kempo-ui 0.4.20 → 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 (569) hide show
  1. package/CHANGELOG.md +18 -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/0007-code-editor-updates/branch-custom-controls.png +0 -0
  265. package/tasks/released/0007-code-editor-updates/branch-toolbar.png +0 -0
  266. package/tasks/released/0007-code-editor-updates/docs-overview.png +0 -0
  267. package/tasks/released/0007-code-editor-updates/form-integration.png +0 -0
  268. package/tasks/released/0007-code-editor-updates/live-builtin-controls.png +0 -0
  269. package/tasks/released/0007-code-editor-updates/live-custom-controls.png +0 -0
  270. package/tasks/released/0007-code-editor-updates/live-toolbar.png +0 -0
  271. package/tasks/released/0007-code-editor-updates/local-builtin-controls.png +0 -0
  272. package/tasks/released/0007-code-editor-updates/local-fixed-builtin.png +0 -0
  273. package/tasks/released/0007-code-editor-updates/theme-selector.png +0 -0
  274. package/tasks/released/0007-code-editor-updates.md +96 -0
  275. package/tests/components/CodeEditor.browser-test.js +0 -42
  276. package/tests/components/HtmlEditor.browser-test.js +0 -88
  277. package/tests/components/MarkdownEditor.browser-test.js +0 -72
  278. package/tests/components/Pagination.browser-test.js +12 -90
  279. package/tests/components/{htmlEditorControls → controls}/Align.browser-test.js +16 -16
  280. package/tests/components/{htmlEditorControls → controls}/Bold.browser-test.js +7 -7
  281. package/tests/components/{htmlEditorControls → controls}/BulletList.browser-test.js +7 -7
  282. package/tests/components/{htmlEditorControls → controls}/CharacterCount.browser-test.js +5 -5
  283. package/tests/components/{htmlEditorControls → controls}/ClearFormatting.browser-test.js +7 -7
  284. package/tests/components/{htmlEditorControls → controls}/CodeBlock.browser-test.js +8 -8
  285. package/tests/components/controls/Control.browser-test.js +147 -0
  286. package/tests/components/{htmlEditorControls → controls}/ControlGroup.browser-test.js +9 -9
  287. package/tests/components/{htmlEditorControls → controls}/ControlSpacer.browser-test.js +4 -4
  288. package/tests/components/{codeEditorControls → controls}/CopyCode.browser-test.js +8 -8
  289. package/tests/components/{htmlEditorControls → controls}/CreateLink.browser-test.js +7 -7
  290. package/tests/components/{htmlEditorControls → controls}/DropdownControl.browser-test.js +8 -8
  291. package/tests/components/{codeEditorControls → controls}/EditorTheme.browser-test.js +4 -4
  292. package/tests/components/{tableControls → controls}/ExportControls.browser-test.js +22 -46
  293. package/tests/components/{tableControls → controls}/FieldSortHide.browser-test.js +14 -26
  294. package/tests/components/{tableControls → controls}/Filters.browser-test.js +15 -27
  295. package/tests/components/{codeEditorControls → controls}/FindReplace.browser-test.js +8 -8
  296. package/tests/components/{codeEditorControls → controls}/FoldAll.browser-test.js +10 -10
  297. package/tests/components/{codeEditorControls → controls}/FontSize.browser-test.js +19 -14
  298. package/tests/components/{htmlEditorControls → controls}/FormatBlock.browser-test.js +9 -9
  299. package/tests/components/{htmlEditorControls → controls}/FormatCode.browser-test.js +17 -18
  300. package/tests/components/{codeEditorControls → controls}/Fullscreen.browser-test.js +11 -32
  301. package/tests/components/{tableControls → controls}/HiddenCount.browser-test.js +4 -4
  302. package/tests/components/{htmlEditorControls → controls}/InlineCode.browser-test.js +7 -7
  303. package/tests/components/{htmlEditorControls → controls}/InsertTable.browser-test.js +7 -7
  304. package/tests/components/{htmlEditorControls → controls}/Italic.browser-test.js +7 -7
  305. package/tests/components/{codeEditorControls → controls}/LanguageSelect.browser-test.js +4 -4
  306. package/tests/components/{codeEditorControls → controls}/Minimap.browser-test.js +8 -8
  307. package/tests/components/{htmlEditorControls → controls}/Mode.browser-test.js +7 -7
  308. package/tests/components/{codeEditorControls → controls}/ModeVisibility.browser-test.js +7 -7
  309. package/tests/components/{htmlEditorControls → controls}/NumberList.browser-test.js +7 -7
  310. package/tests/components/{tableControls → controls}/PaginationControls.browser-test.js +45 -45
  311. package/tests/components/{tableControls → controls}/RecordControls.browser-test.js +24 -60
  312. package/tests/components/{tableControls → controls}/Search.browser-test.js +4 -16
  313. package/tests/components/{htmlEditorControls → controls}/Strikethrough.browser-test.js +7 -7
  314. package/tests/components/{htmlEditorControls → controls}/TextBackgroundColor.browser-test.js +5 -5
  315. package/tests/components/{htmlEditorControls → controls}/TextColor.browser-test.js +5 -5
  316. package/tests/components/{htmlEditorControls → controls}/Underline.browser-test.js +7 -7
  317. package/tests/components/{codeEditorControls → controls}/UndoRedo.browser-test.js +15 -15
  318. package/tests/components/{htmlEditorControls → controls}/WordCount.browser-test.js +5 -5
  319. package/tests/components/{codeEditorControls → controls}/WordWrap.browser-test.js +8 -8
  320. package/dist/components/codeEditorControls/CodeEditorControl.js +0 -17
  321. package/dist/components/codeEditorControls/ControlGroup.js +0 -12
  322. package/dist/components/codeEditorControls/ControlSpacer.js +0 -6
  323. package/dist/components/codeEditorControls/CopyCode.js +0 -9
  324. package/dist/components/codeEditorControls/EditorTheme.js +0 -26
  325. package/dist/components/codeEditorControls/FindReplace.js +0 -7
  326. package/dist/components/codeEditorControls/FoldAll.js +0 -7
  327. package/dist/components/codeEditorControls/FontSize.js +0 -13
  328. package/dist/components/codeEditorControls/FormatCode.js +0 -9
  329. package/dist/components/codeEditorControls/Fullscreen.js +0 -12
  330. package/dist/components/codeEditorControls/LanguageSelect.js +0 -15
  331. package/dist/components/codeEditorControls/Minimap.js +0 -8
  332. package/dist/components/codeEditorControls/Redo.js +0 -7
  333. package/dist/components/codeEditorControls/Undo.js +0 -7
  334. package/dist/components/codeEditorControls/WordWrap.js +0 -8
  335. package/dist/components/htmlEditorControls/AlignCenter.js +0 -12
  336. package/dist/components/htmlEditorControls/AlignJustify.js +0 -12
  337. package/dist/components/htmlEditorControls/AlignLeft.js +0 -12
  338. package/dist/components/htmlEditorControls/AlignRight.js +0 -12
  339. package/dist/components/htmlEditorControls/Bold.js +0 -12
  340. package/dist/components/htmlEditorControls/BulletList.js +0 -12
  341. package/dist/components/htmlEditorControls/CharacterCount.js +0 -18
  342. package/dist/components/htmlEditorControls/ClearFormatting.js +0 -12
  343. package/dist/components/htmlEditorControls/CodeBlock.js +0 -12
  344. package/dist/components/htmlEditorControls/ControlGroup.js +0 -12
  345. package/dist/components/htmlEditorControls/CreateLink.js +0 -15
  346. package/dist/components/htmlEditorControls/DropdownControl.js +0 -57
  347. package/dist/components/htmlEditorControls/FormatBlock.js +0 -12
  348. package/dist/components/htmlEditorControls/FormatCode.js +0 -1
  349. package/dist/components/htmlEditorControls/HtmlEditorControl.js +0 -44
  350. package/dist/components/htmlEditorControls/InlineCode.js +0 -12
  351. package/dist/components/htmlEditorControls/InsertTable.js +0 -15
  352. package/dist/components/htmlEditorControls/Italic.js +0 -12
  353. package/dist/components/htmlEditorControls/Mode.js +0 -9
  354. package/dist/components/htmlEditorControls/NumberList.js +0 -12
  355. package/dist/components/htmlEditorControls/Strikethrough.js +0 -12
  356. package/dist/components/htmlEditorControls/TextBackgroundColor.js +0 -97
  357. package/dist/components/htmlEditorControls/TextColor.js +0 -97
  358. package/dist/components/htmlEditorControls/Underline.js +0 -12
  359. package/dist/components/htmlEditorControls/WordCount.js +0 -18
  360. package/dist/components/markdownEditorControls/Bold.js +0 -11
  361. package/dist/components/markdownEditorControls/BulletList.js +0 -11
  362. package/dist/components/markdownEditorControls/Code.js +0 -11
  363. package/dist/components/markdownEditorControls/FormatBlock.js +0 -30
  364. package/dist/components/markdownEditorControls/Heading.js +0 -11
  365. package/dist/components/markdownEditorControls/Image.js +0 -93
  366. package/dist/components/markdownEditorControls/Italic.js +0 -11
  367. package/dist/components/markdownEditorControls/Link.js +0 -11
  368. package/dist/components/markdownEditorControls/MarkdownEditorControl.js +0 -39
  369. package/dist/components/markdownEditorControls/Menu.js +0 -30
  370. package/dist/components/markdownEditorControls/NumberedList.js +0 -11
  371. package/dist/components/markdownEditorControls/Quote.js +0 -11
  372. package/dist/components/markdownEditorControls/SpeechToText.js +0 -16
  373. package/dist/components/markdownEditorControls/Strikethrough.js +0 -11
  374. package/dist/components/markdownEditorControls/Table.js +0 -80
  375. package/dist/components/paginationControls/FirstPage.js +0 -1
  376. package/dist/components/paginationControls/GotoPage.js +0 -17
  377. package/dist/components/paginationControls/ItemsPerPage.js +0 -15
  378. package/dist/components/paginationControls/LastPage.js +0 -1
  379. package/dist/components/paginationControls/NextPage.js +0 -1
  380. package/dist/components/paginationControls/PageCount.js +0 -1
  381. package/dist/components/paginationControls/PageInfo.js +0 -6
  382. package/dist/components/paginationControls/PaginationButtonControl.js +0 -20
  383. package/dist/components/paginationControls/PaginationControl.js +0 -5
  384. package/dist/components/paginationControls/PrevPage.js +0 -1
  385. package/dist/components/tableControls/DeleteRecord.js +0 -7
  386. package/dist/components/tableControls/DeleteSelected.js +0 -7
  387. package/dist/components/tableControls/Edit.js +0 -18
  388. package/dist/components/tableControls/ExportCSV.js +0 -8
  389. package/dist/components/tableControls/ExportJson.js +0 -8
  390. package/dist/components/tableControls/FieldSortHide.js +0 -25
  391. package/dist/components/tableControls/Filters.js +0 -46
  392. package/dist/components/tableControls/FirstPage.js +0 -9
  393. package/dist/components/tableControls/HiddenCount.js +0 -3
  394. package/dist/components/tableControls/Hide.js +0 -5
  395. package/dist/components/tableControls/LastPage.js +0 -9
  396. package/dist/components/tableControls/NextPage.js +0 -9
  397. package/dist/components/tableControls/PageSelect.js +0 -22
  398. package/dist/components/tableControls/PageSize.js +0 -5
  399. package/dist/components/tableControls/PrevPage.js +0 -9
  400. package/dist/components/tableControls/Search.js +0 -9
  401. package/dist/components/tableControls/ShowAll.js +0 -5
  402. package/dist/components/tableControls/TableControl.js +0 -16
  403. package/docs/src/components/codeEditorControls/CodeEditorControl.js +0 -17
  404. package/docs/src/components/codeEditorControls/ControlGroup.js +0 -12
  405. package/docs/src/components/codeEditorControls/CopyCode.js +0 -9
  406. package/docs/src/components/codeEditorControls/EditorTheme.js +0 -26
  407. package/docs/src/components/codeEditorControls/FindReplace.js +0 -7
  408. package/docs/src/components/codeEditorControls/FoldAll.js +0 -7
  409. package/docs/src/components/codeEditorControls/FontSize.js +0 -13
  410. package/docs/src/components/codeEditorControls/FormatCode.js +0 -9
  411. package/docs/src/components/codeEditorControls/Fullscreen.js +0 -12
  412. package/docs/src/components/codeEditorControls/LanguageSelect.js +0 -15
  413. package/docs/src/components/codeEditorControls/Minimap.js +0 -8
  414. package/docs/src/components/codeEditorControls/Redo.js +0 -7
  415. package/docs/src/components/codeEditorControls/Undo.js +0 -7
  416. package/docs/src/components/codeEditorControls/WordWrap.js +0 -8
  417. package/docs/src/components/htmlEditorControls/AlignCenter.js +0 -12
  418. package/docs/src/components/htmlEditorControls/AlignJustify.js +0 -12
  419. package/docs/src/components/htmlEditorControls/AlignLeft.js +0 -12
  420. package/docs/src/components/htmlEditorControls/AlignRight.js +0 -12
  421. package/docs/src/components/htmlEditorControls/Bold.js +0 -12
  422. package/docs/src/components/htmlEditorControls/BulletList.js +0 -12
  423. package/docs/src/components/htmlEditorControls/CharacterCount.js +0 -18
  424. package/docs/src/components/htmlEditorControls/ClearFormatting.js +0 -12
  425. package/docs/src/components/htmlEditorControls/CodeBlock.js +0 -12
  426. package/docs/src/components/htmlEditorControls/ControlGroup.js +0 -12
  427. package/docs/src/components/htmlEditorControls/ControlSpacer.js +0 -6
  428. package/docs/src/components/htmlEditorControls/CreateLink.js +0 -15
  429. package/docs/src/components/htmlEditorControls/DropdownControl.js +0 -57
  430. package/docs/src/components/htmlEditorControls/FormatBlock.js +0 -12
  431. package/docs/src/components/htmlEditorControls/FormatCode.js +0 -1
  432. package/docs/src/components/htmlEditorControls/HtmlEditorControl.js +0 -44
  433. package/docs/src/components/htmlEditorControls/InlineCode.js +0 -12
  434. package/docs/src/components/htmlEditorControls/InsertTable.js +0 -15
  435. package/docs/src/components/htmlEditorControls/Italic.js +0 -12
  436. package/docs/src/components/htmlEditorControls/Mode.js +0 -9
  437. package/docs/src/components/htmlEditorControls/NumberList.js +0 -12
  438. package/docs/src/components/htmlEditorControls/Strikethrough.js +0 -12
  439. package/docs/src/components/htmlEditorControls/TextBackgroundColor.js +0 -97
  440. package/docs/src/components/htmlEditorControls/TextColor.js +0 -97
  441. package/docs/src/components/htmlEditorControls/Underline.js +0 -12
  442. package/docs/src/components/htmlEditorControls/WordCount.js +0 -18
  443. package/docs/src/components/markdownEditorControls/Bold.js +0 -11
  444. package/docs/src/components/markdownEditorControls/BulletList.js +0 -11
  445. package/docs/src/components/markdownEditorControls/Code.js +0 -11
  446. package/docs/src/components/markdownEditorControls/FormatBlock.js +0 -30
  447. package/docs/src/components/markdownEditorControls/Heading.js +0 -11
  448. package/docs/src/components/markdownEditorControls/Image.js +0 -93
  449. package/docs/src/components/markdownEditorControls/Italic.js +0 -11
  450. package/docs/src/components/markdownEditorControls/Link.js +0 -11
  451. package/docs/src/components/markdownEditorControls/MarkdownEditorControl.js +0 -39
  452. package/docs/src/components/markdownEditorControls/Menu.js +0 -30
  453. package/docs/src/components/markdownEditorControls/NumberedList.js +0 -11
  454. package/docs/src/components/markdownEditorControls/Quote.js +0 -11
  455. package/docs/src/components/markdownEditorControls/SpeechToText.js +0 -16
  456. package/docs/src/components/markdownEditorControls/Strikethrough.js +0 -11
  457. package/docs/src/components/markdownEditorControls/Table.js +0 -80
  458. package/docs/src/components/paginationControls/FirstPage.js +0 -1
  459. package/docs/src/components/paginationControls/GotoPage.js +0 -17
  460. package/docs/src/components/paginationControls/ItemsPerPage.js +0 -15
  461. package/docs/src/components/paginationControls/LastPage.js +0 -1
  462. package/docs/src/components/paginationControls/NextPage.js +0 -1
  463. package/docs/src/components/paginationControls/PageCount.js +0 -1
  464. package/docs/src/components/paginationControls/PageInfo.js +0 -6
  465. package/docs/src/components/paginationControls/PaginationButtonControl.js +0 -20
  466. package/docs/src/components/paginationControls/PaginationControl.js +0 -5
  467. package/docs/src/components/paginationControls/PrevPage.js +0 -1
  468. package/docs/src/components/tableControls/DeleteRecord.js +0 -7
  469. package/docs/src/components/tableControls/DeleteSelected.js +0 -7
  470. package/docs/src/components/tableControls/Edit.js +0 -18
  471. package/docs/src/components/tableControls/ExportCSV.js +0 -8
  472. package/docs/src/components/tableControls/ExportJson.js +0 -8
  473. package/docs/src/components/tableControls/FieldSortHide.js +0 -25
  474. package/docs/src/components/tableControls/Filters.js +0 -46
  475. package/docs/src/components/tableControls/FirstPage.js +0 -9
  476. package/docs/src/components/tableControls/HiddenCount.js +0 -3
  477. package/docs/src/components/tableControls/Hide.js +0 -5
  478. package/docs/src/components/tableControls/LastPage.js +0 -9
  479. package/docs/src/components/tableControls/NextPage.js +0 -9
  480. package/docs/src/components/tableControls/PageSelect.js +0 -22
  481. package/docs/src/components/tableControls/PageSize.js +0 -5
  482. package/docs/src/components/tableControls/PrevPage.js +0 -9
  483. package/docs/src/components/tableControls/Search.js +0 -9
  484. package/docs/src/components/tableControls/ShowAll.js +0 -5
  485. package/docs/src/components/tableControls/TableControl.js +0 -16
  486. package/src/components/codeEditorControls/CodeEditorControl.js +0 -134
  487. package/src/components/codeEditorControls/ControlSpacer.js +0 -23
  488. package/src/components/codeEditorControls/CopyCode.js +0 -37
  489. package/src/components/codeEditorControls/EditorTheme.js +0 -81
  490. package/src/components/codeEditorControls/FindReplace.js +0 -35
  491. package/src/components/codeEditorControls/FoldAll.js +0 -49
  492. package/src/components/codeEditorControls/FontSize.js +0 -45
  493. package/src/components/codeEditorControls/FormatCode.js +0 -37
  494. package/src/components/codeEditorControls/Fullscreen.js +0 -72
  495. package/src/components/codeEditorControls/LanguageSelect.js +0 -74
  496. package/src/components/codeEditorControls/Minimap.js +0 -60
  497. package/src/components/codeEditorControls/Redo.js +0 -35
  498. package/src/components/codeEditorControls/Undo.js +0 -35
  499. package/src/components/codeEditorControls/WordWrap.js +0 -60
  500. package/src/components/htmlEditorControls/AlignCenter.js +0 -63
  501. package/src/components/htmlEditorControls/AlignJustify.js +0 -63
  502. package/src/components/htmlEditorControls/AlignLeft.js +0 -63
  503. package/src/components/htmlEditorControls/AlignRight.js +0 -63
  504. package/src/components/htmlEditorControls/Bold.js +0 -63
  505. package/src/components/htmlEditorControls/BulletList.js +0 -63
  506. package/src/components/htmlEditorControls/CharacterCount.js +0 -75
  507. package/src/components/htmlEditorControls/ClearFormatting.js +0 -63
  508. package/src/components/htmlEditorControls/CodeBlock.js +0 -64
  509. package/src/components/htmlEditorControls/ControlGroup.js +0 -70
  510. package/src/components/htmlEditorControls/ControlSpacer.js +0 -23
  511. package/src/components/htmlEditorControls/CreateLink.js +0 -115
  512. package/src/components/htmlEditorControls/DropdownControl.js +0 -149
  513. package/src/components/htmlEditorControls/FormatBlock.js +0 -106
  514. package/src/components/htmlEditorControls/FormatCode.js +0 -7
  515. package/src/components/htmlEditorControls/HtmlEditorControl.js +0 -164
  516. package/src/components/htmlEditorControls/InlineCode.js +0 -63
  517. package/src/components/htmlEditorControls/InsertTable.js +0 -126
  518. package/src/components/htmlEditorControls/Italic.js +0 -63
  519. package/src/components/htmlEditorControls/Mode.js +0 -68
  520. package/src/components/htmlEditorControls/NumberList.js +0 -63
  521. package/src/components/htmlEditorControls/Strikethrough.js +0 -63
  522. package/src/components/htmlEditorControls/TextBackgroundColor.js +0 -189
  523. package/src/components/htmlEditorControls/TextColor.js +0 -189
  524. package/src/components/htmlEditorControls/Underline.js +0 -63
  525. package/src/components/htmlEditorControls/WordCount.js +0 -76
  526. package/src/components/markdownEditorControls/Bold.js +0 -30
  527. package/src/components/markdownEditorControls/BulletList.js +0 -30
  528. package/src/components/markdownEditorControls/Code.js +0 -39
  529. package/src/components/markdownEditorControls/FormatBlock.js +0 -102
  530. package/src/components/markdownEditorControls/Heading.js +0 -46
  531. package/src/components/markdownEditorControls/Image.js +0 -250
  532. package/src/components/markdownEditorControls/Italic.js +0 -30
  533. package/src/components/markdownEditorControls/Link.js +0 -74
  534. package/src/components/markdownEditorControls/MarkdownEditorControl.js +0 -158
  535. package/src/components/markdownEditorControls/Menu.js +0 -86
  536. package/src/components/markdownEditorControls/NumberedList.js +0 -69
  537. package/src/components/markdownEditorControls/Quote.js +0 -30
  538. package/src/components/markdownEditorControls/SpeechToText.js +0 -65
  539. package/src/components/markdownEditorControls/Strikethrough.js +0 -35
  540. package/src/components/markdownEditorControls/Table.js +0 -165
  541. package/src/components/paginationControls/FirstPage.js +0 -26
  542. package/src/components/paginationControls/GotoPage.js +0 -56
  543. package/src/components/paginationControls/ItemsPerPage.js +0 -44
  544. package/src/components/paginationControls/LastPage.js +0 -26
  545. package/src/components/paginationControls/NextPage.js +0 -26
  546. package/src/components/paginationControls/PageCount.js +0 -10
  547. package/src/components/paginationControls/PageInfo.js +0 -23
  548. package/src/components/paginationControls/PaginationButtonControl.js +0 -76
  549. package/src/components/paginationControls/PaginationControl.js +0 -43
  550. package/src/components/paginationControls/PrevPage.js +0 -26
  551. package/src/components/tableControls/DeleteRecord.js +0 -29
  552. package/src/components/tableControls/DeleteSelected.js +0 -27
  553. package/src/components/tableControls/Edit.js +0 -86
  554. package/src/components/tableControls/ExportCSV.js +0 -71
  555. package/src/components/tableControls/ExportJson.js +0 -55
  556. package/src/components/tableControls/FieldSortHide.js +0 -76
  557. package/src/components/tableControls/Filters.js +0 -113
  558. package/src/components/tableControls/FirstPage.js +0 -65
  559. package/src/components/tableControls/HiddenCount.js +0 -43
  560. package/src/components/tableControls/Hide.js +0 -34
  561. package/src/components/tableControls/LastPage.js +0 -65
  562. package/src/components/tableControls/NextPage.js +0 -65
  563. package/src/components/tableControls/PageSelect.js +0 -101
  564. package/src/components/tableControls/PageSize.js +0 -68
  565. package/src/components/tableControls/PrevPage.js +0 -65
  566. package/src/components/tableControls/Search.js +0 -56
  567. package/src/components/tableControls/ShowAll.js +0 -34
  568. package/src/components/tableControls/TableControl.js +0 -103
  569. package/tests/components/tableControls/TableControl.browser-test.js +0 -300
@@ -62,16 +62,16 @@
62
62
  Toasts are used to notify the user of success or failure.
63
63
  </p>
64
64
 
65
- <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-table</span> <span class="hljs-attr">id</span>=<span class="hljs-string">serverSyncExample</span> <span class="hljs-attr">enable-selection</span> <span class="hljs-attr">request-edit</span> <span class="hljs-attr">request-delete</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">k-tc-edit</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">after</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-tc-edit</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">k-tc-delete-record</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">after</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-tc-delete-record</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">k-tc-delete-selected</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">top</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-tc-delete-selected</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-table</span>&gt;</span><br><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">module</span>&gt;</span><span class="language-javascript"><br> <span class="hljs-keyword">import</span> <span class="hljs-title class_">Toast</span> <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;/src/components/Toast.js&#x27;</span>;<br> <span class="hljs-keyword">await</span> <span class="hljs-variable language_">window</span>.<span class="hljs-property">customElements</span>.<span class="hljs-title function_">whenDefined</span>(<span class="hljs-string">&#x27;k-table&#x27;</span>);<br> <span class="hljs-keyword">const</span> table = <span class="hljs-variable language_">document</span>.<span class="hljs-title function_">getElementById</span>(<span class="hljs-string">&#x27;serverSyncExample&#x27;</span>);<br> <span class="hljs-keyword">const</span> <span class="hljs-title function_">mockServer</span> = (<span class="hljs-params"></span>) =&gt; <span class="hljs-keyword">new</span> <span class="hljs-title class_">Promise</span>(<span class="hljs-function">(<span class="hljs-params">resolve, reject</span>) =&gt;</span> {<br> <span class="hljs-built_in">setTimeout</span>(<span class="hljs-function">() =&gt;</span> {<br> <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() &lt; <span class="hljs-number">0.8</span> ? <span class="hljs-title function_">resolve</span>() : <span class="hljs-title function_">reject</span>();<br> }, <span class="hljs-number">1000</span> + <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() * <span class="hljs-number">2000</span>);<br> });<br> table.<span class="hljs-title function_">setData</span>({<br> <span class="hljs-attr">records</span>: contacts,<br> <span class="hljs-attr">fields</span>: [{<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;name&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Name&#x27;</span><br> }, {<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;email&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Email&#x27;</span><br> }, {<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;birthday&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Birthday&#x27;</span>,<br> <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;date&#x27;</span><br> }, {<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;phoneNumber&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Phone Number&#x27;</span><br> }, {<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;gender&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Gender&#x27;</span>,<br> <span class="hljs-attr">formatter</span>: <span class="hljs-function"><span class="hljs-params">v</span> =&gt;</span> v === <span class="hljs-string">&#x27;m&#x27;</span> ? <span class="hljs-string">&#x27;Male&#x27;</span> : <span class="hljs-string">&#x27;Female&#x27;</span><br> }]<br> });<br> table.<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">&#x27;requestSave&#x27;</span>, <span class="hljs-title function_">async</span> ({<br> <span class="hljs-attr">detail</span>: {<br> approve,<br> reject<br> }<br> }) =&gt; {<br> <span class="hljs-keyword">try</span> {<br> <span class="hljs-keyword">await</span> <span class="hljs-title function_">mockServer</span>();<br> <span class="hljs-title function_">approve</span>();<br> <span class="hljs-title class_">Toast</span>.<span class="hljs-title function_">success</span>(<span class="hljs-string">&#x27;Record saved.&#x27;</span>, {<br> <span class="hljs-attr">timeout</span>: <span class="hljs-number">3000</span><br> });<br> } <span class="hljs-keyword">catch</span> {<br> <span class="hljs-title function_">reject</span>();<br> <span class="hljs-title class_">Toast</span>.<span class="hljs-title function_">error</span>(<span class="hljs-string">&#x27;Save failed. The record remains open for editing.&#x27;</span>, {<br> <span class="hljs-attr">timeout</span>: <span class="hljs-number">5000</span><br> });<br> }<br> });<br> table.<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">&#x27;requestDelete&#x27;</span>, <span class="hljs-title function_">async</span> ({<br> <span class="hljs-attr">detail</span>: {<br> records,<br> approve,<br> reject<br> }<br> }) =&gt; {<br> <span class="hljs-keyword">const</span> count = records.<span class="hljs-property">length</span>;<br> <span class="hljs-keyword">try</span> {<br> <span class="hljs-keyword">await</span> <span class="hljs-title function_">mockServer</span>();<br> <span class="hljs-title function_">approve</span>();<br> <span class="hljs-title class_">Toast</span>.<span class="hljs-title function_">success</span>(count === <span class="hljs-number">1</span> ? <span class="hljs-string">&#x27;1 record deleted.&#x27;</span> : count + <span class="hljs-string">&#x27; records deleted.&#x27;</span>, {<br> <span class="hljs-attr">timeout</span>: <span class="hljs-number">3000</span><br> });<br> } <span class="hljs-keyword">catch</span> {<br> <span class="hljs-title function_">reject</span>();<br> <span class="hljs-title class_">Toast</span>.<span class="hljs-title function_">error</span>(<span class="hljs-string">&#x27;Delete failed. Please try again.&#x27;</span>, {<br> <span class="hljs-attr">timeout</span>: <span class="hljs-number">5000</span><br> });<br> }<br> });<br></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
65
+ <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">k-table</span> <span class="hljs-attr">id</span>=<span class="hljs-string">serverSyncExample</span> <span class="hljs-attr">enable-selection</span> <span class="hljs-attr">request-edit</span> <span class="hljs-attr">request-delete</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">kc-tc-edit</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">after</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">kc-tc-edit</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">kc-tc-delete-record</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">after</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">kc-tc-delete-record</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">kc-tc-delete-selected</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">top</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">kc-tc-delete-selected</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">k-table</span>&gt;</span><br><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">module</span>&gt;</span><span class="language-javascript"><br> <span class="hljs-keyword">import</span> <span class="hljs-title class_">Toast</span> <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;/src/components/Toast.js&#x27;</span>;<br> <span class="hljs-keyword">await</span> <span class="hljs-variable language_">window</span>.<span class="hljs-property">customElements</span>.<span class="hljs-title function_">whenDefined</span>(<span class="hljs-string">&#x27;k-table&#x27;</span>);<br> <span class="hljs-keyword">const</span> table = <span class="hljs-variable language_">document</span>.<span class="hljs-title function_">getElementById</span>(<span class="hljs-string">&#x27;serverSyncExample&#x27;</span>);<br> <span class="hljs-keyword">const</span> <span class="hljs-title function_">mockServer</span> = (<span class="hljs-params"></span>) =&gt; <span class="hljs-keyword">new</span> <span class="hljs-title class_">Promise</span>(<span class="hljs-function">(<span class="hljs-params">resolve, reject</span>) =&gt;</span> {<br> <span class="hljs-built_in">setTimeout</span>(<span class="hljs-function">() =&gt;</span> {<br> <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() &lt; <span class="hljs-number">0.8</span> ? <span class="hljs-title function_">resolve</span>() : <span class="hljs-title function_">reject</span>();<br> }, <span class="hljs-number">1000</span> + <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">random</span>() * <span class="hljs-number">2000</span>);<br> });<br> table.<span class="hljs-title function_">setData</span>({<br> <span class="hljs-attr">records</span>: contacts,<br> <span class="hljs-attr">fields</span>: [{<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;name&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Name&#x27;</span><br> }, {<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;email&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Email&#x27;</span><br> }, {<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;birthday&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Birthday&#x27;</span>,<br> <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;date&#x27;</span><br> }, {<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;phoneNumber&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Phone Number&#x27;</span><br> }, {<br> <span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;gender&#x27;</span>,<br> <span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;Gender&#x27;</span>,<br> <span class="hljs-attr">formatter</span>: <span class="hljs-function"><span class="hljs-params">v</span> =&gt;</span> v === <span class="hljs-string">&#x27;m&#x27;</span> ? <span class="hljs-string">&#x27;Male&#x27;</span> : <span class="hljs-string">&#x27;Female&#x27;</span><br> }]<br> });<br> table.<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">&#x27;requestSave&#x27;</span>, <span class="hljs-title function_">async</span> ({<br> <span class="hljs-attr">detail</span>: {<br> approve,<br> reject<br> }<br> }) =&gt; {<br> <span class="hljs-keyword">try</span> {<br> <span class="hljs-keyword">await</span> <span class="hljs-title function_">mockServer</span>();<br> <span class="hljs-title function_">approve</span>();<br> <span class="hljs-title class_">Toast</span>.<span class="hljs-title function_">success</span>(<span class="hljs-string">&#x27;Record saved.&#x27;</span>, {<br> <span class="hljs-attr">timeout</span>: <span class="hljs-number">3000</span><br> });<br> } <span class="hljs-keyword">catch</span> {<br> <span class="hljs-title function_">reject</span>();<br> <span class="hljs-title class_">Toast</span>.<span class="hljs-title function_">error</span>(<span class="hljs-string">&#x27;Save failed. The record remains open for editing.&#x27;</span>, {<br> <span class="hljs-attr">timeout</span>: <span class="hljs-number">5000</span><br> });<br> }<br> });<br> table.<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">&#x27;requestDelete&#x27;</span>, <span class="hljs-title function_">async</span> ({<br> <span class="hljs-attr">detail</span>: {<br> records,<br> approve,<br> reject<br> }<br> }) =&gt; {<br> <span class="hljs-keyword">const</span> count = records.<span class="hljs-property">length</span>;<br> <span class="hljs-keyword">try</span> {<br> <span class="hljs-keyword">await</span> <span class="hljs-title function_">mockServer</span>();<br> <span class="hljs-title function_">approve</span>();<br> <span class="hljs-title class_">Toast</span>.<span class="hljs-title function_">success</span>(count === <span class="hljs-number">1</span> ? <span class="hljs-string">&#x27;1 record deleted.&#x27;</span> : count + <span class="hljs-string">&#x27; records deleted.&#x27;</span>, {<br> <span class="hljs-attr">timeout</span>: <span class="hljs-number">3000</span><br> });<br> } <span class="hljs-keyword">catch</span> {<br> <span class="hljs-title function_">reject</span>();<br> <span class="hljs-title class_">Toast</span>.<span class="hljs-title function_">error</span>(<span class="hljs-string">&#x27;Delete failed. Please try again.&#x27;</span>, {<br> <span class="hljs-attr">timeout</span>: <span class="hljs-number">5000</span><br> });<br> }<br> });<br></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
66
66
  <k-table
67
67
  id="serverSyncExample"
68
68
  enable-selection
69
69
  request-edit
70
70
  request-delete
71
71
  >
72
- <k-tc-edit slot="after"></k-tc-edit>
73
- <k-tc-delete-record slot="after"></k-tc-delete-record>
74
- <k-tc-delete-selected slot="top"></k-tc-delete-selected>
72
+ <kc-tc-edit slot="after"></kc-tc-edit>
73
+ <kc-tc-delete-record slot="after"></kc-tc-delete-record>
74
+ <kc-tc-delete-selected slot="top"></kc-tc-delete-selected>
75
75
  </k-table>
76
76
  <script type="module">
77
77
  import Toast from '{{pathToRoot}}src/components/Toast.js';
@@ -121,9 +121,9 @@
121
121
  </content>
122
122
  <content location="scripts">
123
123
  <script type="module" src="{{pathToRoot}}src/components/Table.js"></script>
124
- <script type="module" src="{{pathToRoot}}src/components/tableControls/Edit.js"></script>
125
- <script type="module" src="{{pathToRoot}}src/components/tableControls/DeleteRecord.js"></script>
126
- <script type="module" src="{{pathToRoot}}src/components/tableControls/DeleteSelected.js"></script>
124
+ <script type="module" src="{{pathToRoot}}src/components/controls/TcEdit.js"></script>
125
+ <script type="module" src="{{pathToRoot}}src/components/controls/TcDeleteRecord.js"></script>
126
+ <script type="module" src="{{pathToRoot}}src/components/controls/TcDeleteSelected.js"></script>
127
127
  <script type="module" src="{{pathToRoot}}src/components/Toast.js"></script>
128
128
  </content>
129
129
  </page>
package/llms.txt CHANGED
@@ -57,10 +57,11 @@ import { html, css, LitElement } from 'kempo-ui/src/lit-all.min.js';
57
57
  | `<k-calendar>` | `Calendar.js` | Inline month-grid date picker widget; `mode="single"` (default) or `mode="range"`; `value` is ISO `YYYY-MM-DD` (single) or comma-separated pair (range); `min`/`max` bounds; form-associated; fires `change` | [calendar.html](https://dustinpoissant.github.io/kempo-ui/components/calendar.html) |
58
58
  | `<k-card>` | `Card.js` | Bordered container; optional `label` attribute | [card.html](https://dustinpoissant.github.io/kempo-ui/components/card.html) |
59
59
  | `<k-chat>` | `Chat.js` | Chat-room widget; markdown input via embedded `<k-markdown-editor>` (rendered through `marked` with `breaks:true` so single newlines become `<br>`, then run through `sanitizeHtml` so any inline HTML is filtered against the allow-list); default Enter sends / Shift+Enter newline (Slack-style), add `enter-newline` to invert; `show-status` (or `show-status="text"` / `show-status="icons"`) renders iMessage-style `sending`/`delivered`/`read`/`failed` only on the most recent outgoing message (sending/failed always show); methods `addMessage(msg)`, `updateMessage(id, updates)`, `removeMessage(id)`, `clear()`, `send()`; fires `send` with `{id, html, markdown}` | [chat.html](https://dustinpoissant.github.io/kempo-ui/components/chat.html) |
60
- | `<k-code-editor>` | `CodeEditor.js` | Monaco-powered code editor; `value`, `language`, `controls`, `disabled`/`readonly`/`required` attributes; form-associated (full validity + reset/restore/disabled callbacks); theme-aware | [code-editor.html](https://dustinpoissant.github.io/kempo-ui/components/code-editor.html) |
60
+ | `<k-code-editor>` | `CodeEditor.js` | Monaco-powered code editor; `value`, `language`, `controls`, `disabled`/`required` attributes; form-associated (full validity + reset/restore/disabled callbacks); theme-aware; toolbar button controls use the unified `kc-*` prefix and extend `ButtonControl` from `controls/Button.js` | [code-editor.html](https://dustinpoissant.github.io/kempo-ui/components/code-editor.html) |
61
61
  | `<k-color-picker>` | `ColorPicker.js` | Full color picker (hex, rgb, hsl, hsv, alpha); `value` property | [color-picker.html](https://dustinpoissant.github.io/kempo-ui/components/color-picker.html) |
62
62
  | `<k-combobox>` | `Combobox.js` | Searchable dropdown with debounced `search` event, dynamic `setOptions()`, `searching` indicator, keyboard nav; options are strings or `{label, value}` objects | [combobox.html](https://dustinpoissant.github.io/kempo-ui/components/combobox.html) |
63
63
  | `<k-content-slider>` | `ContentSlider.js` | Swipeable carousel | [content-slider.html](https://dustinpoissant.github.io/kempo-ui/components/content-slider.html) |
64
+ | `<k-control-group>` | `ControlGroup.js` | Groups toolbar controls visually; strips child borders/radius/margin and adds right-side separators via `::slotted(*)`; auto-hides when all children are hidden; used internally by CodeEditor, HtmlEditor, and other toolbar-based components | — |
64
65
  | `<k-context>` | `Context.js` | Non-rendering state container; `set(key,value)`, `get(key)`, `delete(key)`, `clear()`, `getData()`; fires `context:create`, `context:set`, `context:delete` | [context.html](https://dustinpoissant.github.io/kempo-ui/components/context.html) |
65
66
  | `<k-dialog>` | `Dialog.js` | Modal dialog with focus trapping; call `.open()` / `.close()` | [dialog.html](https://dustinpoissant.github.io/kempo-ui/components/dialog.html) |
66
67
  | `<k-dropdown>` | `Dropdown.js` | Action menu with keyboard navigation | [dropdown.html](https://dustinpoissant.github.io/kempo-ui/components/dropdown.html) |
@@ -68,14 +69,14 @@ import { html, css, LitElement } from 'kempo-ui/src/lit-all.min.js';
68
69
  | `<k-focus-capture>` | `FocusCapture.js` | Traps keyboard focus within children | [focus-capture.html](https://dustinpoissant.github.io/kempo-ui/components/focus-capture.html) |
69
70
  | `<k-html-editor>` | `HtmlEditor.js` | WYSIWYG rich text editor; `value` property; `controls` attribute (`full`/`normal`/`minimal`/`none`) for built-in toolbars; `disabled`/`readonly`/`required` (Lexical's `setEditable()` + Monaco's `readOnly`); form-associated | [html-editor.html](https://dustinpoissant.github.io/kempo-ui/components/html-editor.html) |
70
71
  | `<k-markdown>` | `Markdown.js` | Renders child markdown text as sanitized HTML in place; `value` attribute (overrides children); `breaks` (single newline → `<br>`); `allowed-tags`/`disallowed-tags`/`scripts-enabled` for sanitization; light DOM render; `renderedHtml` getter | [markdown.html](https://dustinpoissant.github.io/kempo-ui/components/markdown.html) |
71
- | `<k-markdown-editor>` | `MarkdownEditor.js` | Markdown editor with Write/Preview tabs; raw markdown is the form value; rendered with vendored `marked` (full CommonMark + GFM — tables, task lists, fenced code, autolinks, inline HTML) via `renderMarkdown.js`; then sanitized via `sanitizeHtml` using either `allowed-tags` (comma-separated allowlist; pass `*` for everything) OR `disallowed-tags` (denylist) — mutually exclusive, allowlist wins if both set; defaults cover standard markdown output incl. img/hr/table family; `<script>` is always stripped unless `scripts-enabled` attribute is set; iframe/style/etc. are always stripped; `value`, `name`, `placeholder`, `disabled`/`readonly`/`required`, `mode` (`write`/`preview`), `allowed-tags`, `controls` (`'minimal'`/`'normal'`/`'full'`/`'none'` — pre-built toolbar; auto-imports the relevant control modules; user-slotted children override the preset); methods `focus()`, `blur()`, `clear()`, `setMode()`, `togglePreview()`, plus selection helpers `getSelection()`, `replaceSelection()`, `wrapSelection()`, `insertAtCursor()`, `insertLinePrefix()`; `controls-top`/`controls-bottom` slots for toolbar buttons; built-in controls under `markdownEditorControls/` (`k-md-bold`, `k-md-italic`, `k-md-strikethrough` (`~~...~~`), `k-md-heading` w/ `level`, `k-md-code`, `k-md-link`, `k-md-image` w/ `popup` (opens a Dropdown by default — `popup="dialog"` to switch to modal Dialog — for URL + alt text), `k-md-table` (small Dropdown with cols × rows inputs + Create button, inserts a GFM markdown table), `k-md-menu` w/ `label` (toolbar button that opens a Dropdown of slotted child controls; `trigger` slot fully customizes the button content — defaults to a `menu` icon), `k-md-format-block` w/ `tag` (heading picker designed to live inside `k-md-menu` — `h1`-`h6`), `k-md-speech-to-text` w/ `language`/`continuous` (wraps `<k-speech-to-text>`; final transcript is inserted at the cursor when the user stops speaking), `k-md-bullet-list`, `k-md-numbered-list`, `k-md-quote`); extend `MarkdownEditorControl` for custom buttons (incl. ones that insert raw HTML — adjust `allowed-tags` accordingly); fires `input`, `change`, `mode-change` | [markdown-editor.html](https://dustinpoissant.github.io/kempo-ui/components/markdown-editor.html) |
72
+ | `<k-markdown-editor>` | `MarkdownEditor.js` | Markdown editor with Write/Preview tabs; raw markdown is the form value; rendered with vendored `marked` (full CommonMark + GFM — tables, task lists, fenced code, autolinks, inline HTML) via `renderMarkdown.js`; then sanitized via `sanitizeHtml` using either `allowed-tags` (comma-separated allowlist; pass `*` for everything) OR `disallowed-tags` (denylist) — mutually exclusive, allowlist wins if both set; defaults cover standard markdown output incl. img/hr/table family; `<script>` is always stripped unless `scripts-enabled` attribute is set; iframe/style/etc. are always stripped; `value`, `name`, `placeholder`, `disabled`/`readonly`/`required`, `mode` (`write`/`preview`), `allowed-tags`, `controls` (`'minimal'`/`'normal'`/`'full'`/`'none'` — pre-built toolbar; auto-imports the relevant control modules; user-slotted children override the preset); methods `focus()`, `blur()`, `clear()`, `setMode()`, `togglePreview()`, plus selection helpers `getSelection()`, `replaceSelection()`, `wrapSelection()`, `insertAtCursor()`, `insertLinePrefix()`; `controls-top`/`controls-bottom` slots for toolbar buttons; built-in controls under `controls/` with `kc-*` prefix (`kc-bold`, `kc-italic`, `kc-strikethrough` (`~~...~~`), `kc-format-block` w/ `tag` (heading picker — `h1`-`h6`), `kc-inline-code`, `kc-md-link`, `kc-md-image` w/ `popup` (opens a Dropdown by default — `popup="dialog"` to switch to modal Dialog — for URL + alt text), `kc-md-table` (small Dropdown with cols × rows inputs + Create button, inserts a GFM markdown table), `kc-menu` w/ `label` (toolbar button that opens a Dropdown of slotted child controls; `icon` slot customizes the trigger button content), `kc-md-speech-to-text` w/ `language`/`continuous` (wraps `<k-speech-to-text>`; final transcript is inserted at the cursor), `kc-bullet-list`, `kc-number-list`, `kc-quote`); extend `ButtonControl` from `controls/Button.js` for custom buttons; fires `input`, `change`, `mode-changed` | [markdown-editor.html](https://dustinpoissant.github.io/kempo-ui/components/markdown-editor.html) |
72
73
  | `<k-icon>` | `Icon.js` | SVG icon; `name` (looked up in `pathsToIcons`) or `src` (direct URL); `rotation`, `direction`, `animation` attributes | [icon.html](https://dustinpoissant.github.io/kempo-ui/components/icon.html) |
73
74
  | `<k-import>` | `Import.js` | Includes external HTML fragments; `src` attribute | [import.html](https://dustinpoissant.github.io/kempo-ui/components/import.html) |
74
75
  | `<k-main>` | `Main.js` | Layout main; automatically adjusts margins when a `k-aside[main="push"]` opens | — |
75
76
  | `<k-nav>` | `Nav.js` | Navigation bar | [nav.html](https://dustinpoissant.github.io/kempo-ui/components/nav.html) |
76
77
  | `<k-nav-spacer>` | `NavSpacer.js` | Auto-sizing spacer that offsets page content below a fixed `k-nav` bar; default bottom margin of `var(--spacer)` can be overridden with kempo-css margin utilities | [nav-spacer.html](https://dustinpoissant.github.io/kempo-ui/components/nav-spacer.html) |
77
78
  | `<k-photo-viewer>` | `PhotoViewer.js` | Lightbox/gallery viewer | [photo-viewer.html](https://dustinpoissant.github.io/kempo-ui/components/photo-viewer.html) |
78
- | `<k-pagination>` | `Pagination.js` | Pagination interface; tracks current page; `total-items`, `items-per-page`, and `page` attributes; computed `totalPages` getter; `nextPage()`, `previousPage()` methods; fires `page-change` with `{ currentPage, totalPages, itemsPerPage, totalItems }` on any page change (user-initiated or from configuration updates); controls slotted in or via `controls="simple"` (prev/info/next) or `controls="full"` (first/prev/goto-page/next/last/items-per-page); individual control tags: `k-pg-first`, `k-pg-prev`, `k-pg-page-info`, `k-pg-goto-page`, `k-pg-count`, `k-pg-next`, `k-pg-last`, `k-pg-items-per-page`; extend `PaginationControl` for custom controls | [pagination.html](https://dustinpoissant.github.io/kempo-ui/components/pagination.html) |
79
+ | `<k-pagination>` | `Pagination.js` | Pagination interface; tracks current page; `total-items`, `items-per-page`, and `page` attributes; computed `totalPages` getter; `nextPage()`, `previousPage()` methods; fires `page-change` with `{ currentPage, totalPages, itemsPerPage, totalItems }` on any page change (user-initiated or from configuration updates); controls slotted in or via `controls="simple"` (prev/info/next) or `controls="full"` (first/prev/goto-page/next/last/items-per-page); individual control tags: `kc-pg-first`, `kc-pg-prev`, `kc-pg-page-info`, `kc-pg-goto-page`, `kc-pg-count`, `kc-pg-next`, `kc-pg-last`, `kc-pg-items-per-page` (label text is slotted — override with children); extend `Control` from `controls/Control.js` for custom controls | [pagination.html](https://dustinpoissant.github.io/kempo-ui/components/pagination.html) |
79
80
  | `<k-resize>` | `Resize.js` | Resizable pane with drag handle | [resize.html](https://dustinpoissant.github.io/kempo-ui/components/resize.html) |
80
81
  | `<k-segmented-control>` | `SegmentedControl.js` | Button group with one selectable option; accepts custom sub-components as options; `value` property reflects the selected option's value; fires `change` event | [segmented-control.html](https://dustinpoissant.github.io/kempo-ui/components/segmented-control.html) |
81
82
  | `<k-show-more>` | `ShowMore.js` | Truncated content with expand toggle | [show-more.html](https://dustinpoissant.github.io/kempo-ui/components/show-more.html) |
@@ -136,6 +137,39 @@ Base class for custom elements that behave like buttons. The custom element itse
136
137
  - Public event handlers `handleClick` / `handleKeyDown` are arrow class fields — override or reference directly
137
138
  - **Not registered to a tag** — extend it and call `customElements.define()`
138
139
 
140
+ ### Unified Control Architecture (`controls/`)
141
+
142
+ All toolbar controls for CodeEditor, HtmlEditor, MarkdownEditor, Pagination, and Table use the `kc-*` tag prefix and live in `src/components/controls/`. Three base classes:
143
+
144
+ #### Control ← ShadowComponent (`controls/Control.js`, tag `kc-control`)
145
+
146
+ Base for non-button controls (dropdowns, inputs, status displays).
147
+
148
+ - `static requires = ['methodName', ...]` — host must expose these methods; missing → `disabled=true`
149
+ - `static hostMode = 'write'` or `['write', 'code']` — control hides when host's `mode` doesn't match (only checked when `'mode' in host`)
150
+ - `static hostEvents = ['event-name', ...]` — host events that trigger `requestUpdate()`
151
+ - `get host()` — walks shadow boundaries via `getRootNode()` → `closest('[controlled]')` to find the host component
152
+ - `invokeHost(method, ...args)` — safe method call on host
153
+
154
+ #### ButtonControl ← Control (`controls/Button.js`, tag `kc-button`)
155
+
156
+ Base for button-style controls. The host element IS the button (no inner `<button>`).
157
+
158
+ - Sets `role="button"`, `tabindex`, `aria-disabled`
159
+ - `handleAction()` — override point; called on click / Enter / Space
160
+ - Default `render()` returns `<slot></slot>`
161
+
162
+ #### ControlMenu ← Control (`controls/Menu.js`, tag `kc-menu`)
163
+
164
+ Dropdown menu trigger for grouping controls. Renders `<k-dropdown>` with a trigger button.
165
+
166
+ - Slots: `icon` for trigger icon, `label` for trigger text, default slot for menu items
167
+ - `::slotted` unifies menu item styling
168
+
169
+ #### loadControls helper (`controls/loadControls.js`)
170
+
171
+ Parses Lit `TemplateResult.strings` to find `<kc-*>` and `<k-control-group>` tags, converts tag names to PascalCase file paths, and dynamically imports them. Called by host components when `controls` attribute is set.
172
+
139
173
  ---
140
174
 
141
175
  ## Creating a Custom Component
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kempo-ui",
3
- "version": "0.4.20",
3
+ "version": "0.4.21",
4
4
  "type": "module",
5
5
  "description": "A Lit based web-component library",
6
6
  "main": "index.js",
@@ -3,13 +3,13 @@ import ShadowComponent from './ShadowComponent.js';
3
3
  import sanitizeHtml from '../utils/sanitizeHtml.js';
4
4
  import renderMarkdown from '../utils/renderMarkdown.js';
5
5
  import './MarkdownEditor.js';
6
- import './markdownEditorControls/Bold.js';
7
- import './markdownEditorControls/Italic.js';
8
- import './markdownEditorControls/Code.js';
9
- import './markdownEditorControls/Link.js';
10
- import './markdownEditorControls/BulletList.js';
11
- import './markdownEditorControls/NumberedList.js';
12
- import './markdownEditorControls/Quote.js';
6
+ import './controls/Bold.js';
7
+ import './controls/Italic.js';
8
+ import './controls/InlineCode.js';
9
+ import './controls/MdLink.js';
10
+ import './controls/BulletList.js';
11
+ import './controls/NumberList.js';
12
+ import './controls/Quote.js';
13
13
  import './Spinner.js';
14
14
  import './Icon.js';
15
15
 
@@ -247,13 +247,13 @@ export default class Chat extends ShadowComponent {
247
247
  >
248
248
  <div slot="controls-top" class="controls-top">
249
249
  <slot name="controls-top">
250
- <k-md-bold></k-md-bold>
251
- <k-md-italic></k-md-italic>
252
- <k-md-code></k-md-code>
253
- <k-md-link></k-md-link>
254
- <k-md-bullet-list></k-md-bullet-list>
255
- <k-md-numbered-list></k-md-numbered-list>
256
- <k-md-quote></k-md-quote>
250
+ <kc-bold></kc-bold>
251
+ <kc-italic></kc-italic>
252
+ <kc-inline-code></kc-inline-code>
253
+ <kc-md-link></kc-md-link>
254
+ <kc-bullet-list></kc-bullet-list>
255
+ <kc-number-list></kc-number-list>
256
+ <kc-quote></kc-quote>
257
257
  </slot>
258
258
  </div>
259
259
  <div slot="controls-bottom" class="controls-bottom">
@@ -2,6 +2,7 @@ import { html, css } from '../lit-all.min.js';
2
2
  import ShadowComponent from './ShadowComponent.js';
3
3
  import formatCode from '../utils/formatCode.js';
4
4
  import { getCalculatedTheme, subscribeToTheme } from '../utils/theme.js';
5
+ import Control from './controls/Control.js';
5
6
 
6
7
  /*
7
8
  Default CDN URL
@@ -56,6 +57,7 @@ export default class CodeEditor extends ShadowComponent {
56
57
  */
57
58
  connectedCallback() {
58
59
  super.connectedCallback();
60
+ if(!this.hasAttribute('controlled')) this.setAttribute('controlled', '');
59
61
  if(this.hasAttribute('value')){
60
62
  this.value = this.getAttribute('value');
61
63
  }
@@ -161,11 +163,9 @@ export default class CodeEditor extends ShadowComponent {
161
163
  Module Loading
162
164
  */
163
165
  loadControls() {
164
- const modules = this.constructor.controlModules[this.controls];
165
- if(!modules?.length) return;
166
- const loaded = this.constructor.loadedModules;
167
- const base = new URL('./codeEditorControls/', import.meta.url).href;
168
- modules.filter(m => !loaded.has(m)).forEach(m => { loaded.add(m); import(`${base}${m}.js`); });
166
+ const set = this.constructor.controlSets[this.controls];
167
+ if(!set) return;
168
+ Control.load(Object.values(set));
169
169
  }
170
170
 
171
171
  async initMonaco() {
@@ -401,34 +401,29 @@ export default class CodeEditor extends ShadowComponent {
401
401
  /*
402
402
  Rendering
403
403
  */
404
- static loadedModules = new Set();
405
- static controlModules = {
406
- full: ['FormatCode', 'CopyCode', 'EditorTheme', 'Undo', 'Redo', 'WordWrap', 'Minimap', 'FindReplace', 'FontSize', 'FoldAll', 'LanguageSelect', 'Fullscreen', 'ControlGroup', 'ControlSpacer']
407
- };
408
-
409
404
  static controlSets = {
410
405
  full: {
411
406
  topLeft: html`
412
- <k-cec-group>
413
- <k-cec-undo></k-cec-undo>
414
- <k-cec-redo></k-cec-redo>
415
- </k-cec-group>
416
- <k-cec-group>
417
- <k-cec-format-code></k-cec-format-code>
418
- <k-cec-copy-code></k-cec-copy-code>
419
- <k-cec-find-replace></k-cec-find-replace>
420
- </k-cec-group>
421
- <k-cec-group>
422
- <k-cec-word-wrap></k-cec-word-wrap>
423
- <k-cec-minimap></k-cec-minimap>
424
- <k-cec-fold-all></k-cec-fold-all>
425
- </k-cec-group>
426
- <k-cec-font-size></k-cec-font-size>
407
+ <k-control-group>
408
+ <kc-undo></kc-undo>
409
+ <kc-redo></kc-redo>
410
+ </k-control-group>
411
+ <k-control-group>
412
+ <kc-format-code></kc-format-code>
413
+ <kc-copy-code></kc-copy-code>
414
+ <kc-find-replace></kc-find-replace>
415
+ </k-control-group>
416
+ <k-control-group>
417
+ <kc-word-wrap></kc-word-wrap>
418
+ <kc-minimap></kc-minimap>
419
+ <kc-fold-all></kc-fold-all>
420
+ </k-control-group>
421
+ <kc-font-size></kc-font-size>
427
422
  `,
428
423
  topRight: html`
429
- <k-cec-language></k-cec-language>
430
- <k-cec-editor-theme></k-cec-editor-theme>
431
- <k-cec-fullscreen></k-cec-fullscreen>
424
+ <kc-language></kc-language>
425
+ <kc-editor-theme></kc-editor-theme>
426
+ <kc-fullscreen></kc-fullscreen>
432
427
  `,
433
428
  bottomLeft: null,
434
429
  bottomRight: null,
@@ -445,10 +440,9 @@ export default class CodeEditor extends ShadowComponent {
445
440
  }
446
441
  :host([fullscreen]) {
447
442
  position: fixed;
448
- top: 0;
449
- left: 0;
450
- width: 100vw;
451
- height: 100vh;
443
+ inset: 0;
444
+ width: auto;
445
+ height: auto;
452
446
  z-index: 10000;
453
447
  }
454
448
  .toolbar-top,
@@ -1,5 +1,5 @@
1
- import ShadowComponent from '../ShadowComponent.js';
2
- import { html, css } from '../../lit-all.min.js';
1
+ import ShadowComponent from './ShadowComponent.js';
2
+ import { html, css } from '../lit-all.min.js';
3
3
 
4
4
  export default class ControlGroup extends ShadowComponent {
5
5
  static properties = {
@@ -53,8 +53,13 @@ export default class ControlGroup extends ShadowComponent {
53
53
  display: none !important;
54
54
  }
55
55
  ::slotted(*) {
56
- margin-top: -1px;
57
- margin-bottom: -1px;
56
+ border: 0;
57
+ border-right: 1px solid var(--c_border);
58
+ border-radius: 0;
59
+ margin: 0;
60
+ }
61
+ ::slotted(*:last-child) {
62
+ border-right: 0;
58
63
  }
59
64
  `;
60
65
 
@@ -66,5 +71,4 @@ export default class ControlGroup extends ShadowComponent {
66
71
  }
67
72
  }
68
73
 
69
- customElements.define('k-cec-group', ControlGroup);
70
-
74
+ customElements.define('k-control-group', ControlGroup);