@design.estate/dees-catalog 3.91.0 → 3.93.0

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 (228) hide show
  1. package/dist_bundle/bundle.js +10531 -4765
  2. package/dist_ts_web/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.js +5 -4
  4. package/dist_ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.js +6 -7
  5. package/dist_ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.js +4 -6
  6. package/dist_ts_web/elements/00group-button/dees-button/dees-button.d.ts +6 -0
  7. package/dist_ts_web/elements/00group-button/dees-button/dees-button.demo.js +14 -1
  8. package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +49 -24
  9. package/dist_ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.js +1 -1
  10. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.d.ts +69 -0
  11. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.js +342 -0
  12. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.d.ts +48 -3
  13. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.demo.js +128 -39
  14. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js +663 -190
  15. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/index.d.ts +1 -0
  16. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/index.js +2 -1
  17. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.d.ts +3 -0
  18. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.js +48 -30
  19. package/dist_ts_web/elements/00group-dataview/dees-grouped-list/dees-grouped-list.js +1 -1
  20. package/dist_ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.js +1 -2
  21. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-keys.js +1 -1
  22. package/dist_ts_web/elements/00group-dataview/dees-table/styles.js +1 -1
  23. package/dist_ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.js +9 -9
  24. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +64 -0
  25. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.d.ts +1 -0
  26. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +294 -0
  27. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +485 -0
  28. package/dist_ts_web/elements/00group-harness/dees-harness-chat/index.d.ts +1 -0
  29. package/dist_ts_web/elements/00group-harness/dees-harness-chat/index.js +2 -0
  30. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.d.ts +65 -0
  31. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.d.ts +1 -0
  32. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.js +55 -0
  33. package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.js +589 -0
  34. package/dist_ts_web/elements/00group-harness/dees-harness-composer/index.d.ts +1 -0
  35. package/dist_ts_web/elements/00group-harness/dees-harness-composer/index.js +2 -0
  36. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.d.ts +21 -0
  37. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.demo.d.ts +1 -0
  38. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.demo.js +41 -0
  39. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.js +215 -0
  40. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/index.d.ts +1 -0
  41. package/dist_ts_web/elements/00group-harness/dees-harness-content-blocks/index.js +2 -0
  42. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.d.ts +58 -0
  43. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.demo.d.ts +1 -0
  44. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.demo.js +126 -0
  45. package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +551 -0
  46. package/dist_ts_web/elements/00group-harness/dees-harness-message/index.d.ts +1 -0
  47. package/dist_ts_web/elements/00group-harness/dees-harness-message/index.js +2 -0
  48. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +50 -0
  49. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.demo.d.ts +1 -0
  50. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.demo.js +101 -0
  51. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +424 -0
  52. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/index.d.ts +1 -0
  53. package/dist_ts_web/elements/00group-harness/dees-harness-message-list/index.js +2 -0
  54. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.d.ts +27 -0
  55. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.demo.d.ts +1 -0
  56. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.demo.js +46 -0
  57. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.js +282 -0
  58. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/index.d.ts +1 -0
  59. package/dist_ts_web/elements/00group-harness/dees-harness-permission-card/index.js +2 -0
  60. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.d.ts +24 -0
  61. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.demo.d.ts +1 -0
  62. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.demo.js +32 -0
  63. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.js +241 -0
  64. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/index.d.ts +1 -0
  65. package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/index.js +2 -0
  66. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.d.ts +28 -0
  67. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.d.ts +1 -0
  68. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.js +56 -0
  69. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +279 -0
  70. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/index.d.ts +1 -0
  71. package/dist_ts_web/elements/00group-harness/dees-harness-session-list/index.js +2 -0
  72. package/dist_ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.d.ts +30 -0
  73. package/dist_ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.demo.d.ts +1 -0
  74. package/dist_ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.demo.js +35 -0
  75. package/dist_ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.js +235 -0
  76. package/dist_ts_web/elements/00group-harness/dees-harness-status/index.d.ts +1 -0
  77. package/dist_ts_web/elements/00group-harness/dees-harness-status/index.js +2 -0
  78. package/dist_ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.d.ts +27 -0
  79. package/dist_ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.demo.d.ts +1 -0
  80. package/dist_ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.demo.js +41 -0
  81. package/dist_ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.js +258 -0
  82. package/dist_ts_web/elements/00group-harness/dees-harness-todos/index.d.ts +1 -0
  83. package/dist_ts_web/elements/00group-harness/dees-harness-todos/index.js +2 -0
  84. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +35 -0
  85. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.demo.d.ts +1 -0
  86. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.demo.js +162 -0
  87. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +368 -0
  88. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/index.d.ts +2 -0
  89. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/index.js +3 -0
  90. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.d.ts +5 -0
  91. package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +183 -0
  92. package/dist_ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.d.ts +19 -0
  93. package/dist_ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.demo.d.ts +1 -0
  94. package/dist_ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.demo.js +25 -0
  95. package/dist_ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.js +148 -0
  96. package/dist_ts_web/elements/00group-harness/dees-harness-usage/index.d.ts +1 -0
  97. package/dist_ts_web/elements/00group-harness/dees-harness-usage/index.js +2 -0
  98. package/dist_ts_web/elements/00group-harness/harness.demodata.d.ts +22 -0
  99. package/dist_ts_web/elements/00group-harness/harness.demodata.js +94 -0
  100. package/dist_ts_web/elements/00group-harness/harness.helpers.d.ts +37 -0
  101. package/dist_ts_web/elements/00group-harness/harness.helpers.js +221 -0
  102. package/dist_ts_web/elements/00group-harness/harness.markdown.d.ts +25 -0
  103. package/dist_ts_web/elements/00group-harness/harness.markdown.js +147 -0
  104. package/dist_ts_web/elements/00group-harness/harness.styles.d.ts +9 -0
  105. package/dist_ts_web/elements/00group-harness/harness.styles.js +94 -0
  106. package/dist_ts_web/elements/00group-harness/index.d.ts +18 -0
  107. package/dist_ts_web/elements/00group-harness/index.js +22 -0
  108. package/dist_ts_web/elements/00group-harness/interfaces.d.ts +210 -0
  109. package/dist_ts_web/elements/00group-harness/interfaces.js +11 -0
  110. package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +76 -0
  111. package/dist_ts_web/elements/00group-harness/toolregistry.js +210 -0
  112. package/dist_ts_web/elements/00group-input/dees-input-code/dees-input-code.js +30 -18
  113. package/dist_ts_web/elements/00group-input/dees-input-datepicker/datepicker-popup.js +73 -46
  114. package/dist_ts_web/elements/00group-input/dees-input-datepicker/styles.js +15 -16
  115. package/dist_ts_web/elements/00group-input/dees-input-list/dees-input-list.js +2 -4
  116. package/dist_ts_web/elements/00group-input/dees-input-tags/dees-input-tags.js +36 -15
  117. package/dist_ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.js +5 -4
  118. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/code.block.js +10 -89
  119. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.js +12 -8
  120. package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.js +1 -1
  121. package/dist_ts_web/elements/00group-layout/dees-pagination/dees-pagination.js +27 -12
  122. package/dist_ts_web/elements/00group-layout/dees-settings/dees-settings.js +1 -1
  123. package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +14 -18
  124. package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +6 -7
  125. package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.js +6 -21
  126. package/dist_ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.d.ts +2 -1
  127. package/dist_ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.js +10 -4
  128. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.js +1 -1
  129. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +9 -8
  130. package/dist_ts_web/elements/00group-workspace/dees-workspace/dees-workspace.js +1 -1
  131. package/dist_ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.js +3 -4
  132. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.js +8 -78
  133. package/dist_ts_web/elements/00syntax.d.ts +28 -0
  134. package/dist_ts_web/elements/00syntax.js +98 -0
  135. package/dist_ts_web/elements/00theme.js +26 -14
  136. package/dist_ts_web/elements/index.d.ts +1 -0
  137. package/dist_ts_web/elements/index.js +2 -1
  138. package/dist_watch/bundle.js +234121 -0
  139. package/dist_watch/bundle.js.map +7 -0
  140. package/dist_watch/index.html +28 -0
  141. package/package.json +1 -1
  142. package/readme.hints.md +7 -1
  143. package/readme.md +112 -0
  144. package/readme.playbook.md +10 -0
  145. package/ts_web/00_commitinfo_data.ts +1 -1
  146. package/ts_web/elements/00group-appui/dees-appui/dees-appui.ts +4 -3
  147. package/ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.ts +5 -6
  148. package/ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.ts +3 -5
  149. package/ts_web/elements/00group-button/dees-button/dees-button.demo.ts +13 -0
  150. package/ts_web/elements/00group-button/dees-button/dees-button.ts +42 -22
  151. package/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.ts +1 -1
  152. package/ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.ts +401 -0
  153. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.demo.ts +132 -38
  154. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +649 -187
  155. package/ts_web/elements/00group-dataview/dees-dataview-codebox/index.ts +1 -0
  156. package/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.ts +45 -30
  157. package/ts_web/elements/00group-dataview/dees-grouped-list/dees-grouped-list.ts +1 -1
  158. package/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts +0 -1
  159. package/ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-keys.ts +1 -1
  160. package/ts_web/elements/00group-dataview/dees-table/styles.ts +1 -1
  161. package/ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.ts +9 -9
  162. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +306 -0
  163. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +363 -0
  164. package/ts_web/elements/00group-harness/dees-harness-chat/index.ts +1 -0
  165. package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.ts +56 -0
  166. package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.ts +514 -0
  167. package/ts_web/elements/00group-harness/dees-harness-composer/index.ts +1 -0
  168. package/ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.demo.ts +44 -0
  169. package/ts_web/elements/00group-harness/dees-harness-content-blocks/dees-harness-content-blocks.ts +172 -0
  170. package/ts_web/elements/00group-harness/dees-harness-content-blocks/index.ts +1 -0
  171. package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.demo.ts +129 -0
  172. package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +498 -0
  173. package/ts_web/elements/00group-harness/dees-harness-message/index.ts +1 -0
  174. package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.demo.ts +105 -0
  175. package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +342 -0
  176. package/ts_web/elements/00group-harness/dees-harness-message-list/index.ts +1 -0
  177. package/ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.demo.ts +47 -0
  178. package/ts_web/elements/00group-harness/dees-harness-permission-card/dees-harness-permission-card.ts +225 -0
  179. package/ts_web/elements/00group-harness/dees-harness-permission-card/index.ts +1 -0
  180. package/ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.demo.ts +32 -0
  181. package/ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.ts +195 -0
  182. package/ts_web/elements/00group-harness/dees-harness-reasoning/index.ts +1 -0
  183. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.demo.ts +59 -0
  184. package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +222 -0
  185. package/ts_web/elements/00group-harness/dees-harness-session-list/index.ts +1 -0
  186. package/ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.demo.ts +35 -0
  187. package/ts_web/elements/00group-harness/dees-harness-status/dees-harness-status.ts +187 -0
  188. package/ts_web/elements/00group-harness/dees-harness-status/index.ts +1 -0
  189. package/ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.demo.ts +43 -0
  190. package/ts_web/elements/00group-harness/dees-harness-todos/dees-harness-todos.ts +206 -0
  191. package/ts_web/elements/00group-harness/dees-harness-todos/index.ts +1 -0
  192. package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.demo.ts +166 -0
  193. package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +315 -0
  194. package/ts_web/elements/00group-harness/dees-harness-tool-card/index.ts +2 -0
  195. package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +205 -0
  196. package/ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.demo.ts +25 -0
  197. package/ts_web/elements/00group-harness/dees-harness-usage/dees-harness-usage.ts +96 -0
  198. package/ts_web/elements/00group-harness/dees-harness-usage/index.ts +1 -0
  199. package/ts_web/elements/00group-harness/harness.demodata.ts +113 -0
  200. package/ts_web/elements/00group-harness/harness.helpers.ts +227 -0
  201. package/ts_web/elements/00group-harness/harness.markdown.ts +151 -0
  202. package/ts_web/elements/00group-harness/harness.styles.ts +96 -0
  203. package/ts_web/elements/00group-harness/index.ts +22 -0
  204. package/ts_web/elements/00group-harness/interfaces.ts +203 -0
  205. package/ts_web/elements/00group-harness/toolregistry.ts +264 -0
  206. package/ts_web/elements/00group-input/dees-input-code/dees-input-code.ts +29 -17
  207. package/ts_web/elements/00group-input/dees-input-datepicker/datepicker-popup.ts +72 -45
  208. package/ts_web/elements/00group-input/dees-input-datepicker/styles.ts +14 -15
  209. package/ts_web/elements/00group-input/dees-input-list/dees-input-list.ts +1 -3
  210. package/ts_web/elements/00group-input/dees-input-tags/dees-input-tags.ts +35 -14
  211. package/ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.ts +4 -3
  212. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/code.block.ts +9 -88
  213. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.ts +11 -7
  214. package/ts_web/elements/00group-layout/dees-chips/dees-chips.ts +1 -1
  215. package/ts_web/elements/00group-layout/dees-pagination/dees-pagination.ts +26 -11
  216. package/ts_web/elements/00group-layout/dees-settings/dees-settings.ts +1 -1
  217. package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +13 -17
  218. package/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts +5 -6
  219. package/ts_web/elements/00group-overlay/dees-modal/dees-modal.ts +5 -20
  220. package/ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.ts +10 -3
  221. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.ts +1 -1
  222. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +8 -7
  223. package/ts_web/elements/00group-workspace/dees-workspace/dees-workspace.ts +1 -1
  224. package/ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.ts +2 -3
  225. package/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.ts +7 -77
  226. package/ts_web/elements/00syntax.ts +124 -0
  227. package/ts_web/elements/00theme.ts +25 -13
  228. package/ts_web/elements/index.ts +1 -0
@@ -0,0 +1,363 @@
1
+ import { demoFunc } from './dees-harness-chat.demo.js';
2
+ import {
3
+ DeesElement,
4
+ html,
5
+ css,
6
+ customElement,
7
+ type TemplateResult,
8
+ property,
9
+ cssManager,
10
+ } from '@design.estate/dees-element';
11
+ import { themeDefaultStyles } from '../../00theme.js';
12
+ import type {
13
+ IHarnessAttachment,
14
+ IHarnessMessage,
15
+ IHarnessPermissionRequest,
16
+ IHarnessStatus,
17
+ IHarnessTodoItem,
18
+ IHarnessUsage,
19
+ THarnessStreamDelta,
20
+ } from '../interfaces.js';
21
+ import { harnessParseTodos } from '../harness.helpers.js';
22
+ import { DeesHarnessToolRegistry } from '../toolregistry.js';
23
+ import { DeesHarnessMessageList } from '../dees-harness-message-list/dees-harness-message-list.js';
24
+ import { DeesHarnessComposer } from '../dees-harness-composer/dees-harness-composer.js';
25
+ import '../dees-harness-permission-card/dees-harness-permission-card.js';
26
+ import '../dees-harness-status/dees-harness-status.js';
27
+ import '../dees-harness-todos/dees-harness-todos.js';
28
+ import '../dees-harness-usage/dees-harness-usage.js';
29
+ import '../../00group-button/dees-button/dees-button.js';
30
+ import '../../00group-utility/dees-icon/dees-icon.js';
31
+
32
+ declare global {
33
+ interface HTMLElementTagNameMap {
34
+ 'dees-harness-chat': DeesHarnessChat;
35
+ }
36
+ }
37
+
38
+ // stable idle binding for the embedded list — a fresh object literal per
39
+ // render would re-trigger its follow logic on every chat render
40
+ const idleStatus: IHarnessStatus = { type: 'idle' };
41
+
42
+ /**
43
+ * The assembled agent chat: optional toolbar, streaming message list,
44
+ * pinned permission queue, status line, and composer. Owns no business
45
+ * logic — consumers feed `.messages`/`.permissions`/`.status` (and stream
46
+ * through `applyDelta()`), and listen for the bubbling harness-* events
47
+ * from the children plus `harness-new-session` / `harness-open-sessions`
48
+ * from the toolbar.
49
+ */
50
+ @customElement('dees-harness-chat')
51
+ export class DeesHarnessChat extends DeesElement {
52
+ public static demo = demoFunc;
53
+ public static demoGroups = ['Agent Chat'];
54
+
55
+ @property({ attribute: false })
56
+ accessor messages: IHarnessMessage[] = [];
57
+
58
+ @property({ attribute: false })
59
+ accessor permissions: IHarnessPermissionRequest[] = [];
60
+
61
+ @property({ attribute: false })
62
+ accessor status: IHarnessStatus = { type: 'idle' };
63
+
64
+ @property({ attribute: false })
65
+ accessor usage: IHarnessUsage = {};
66
+
67
+ /**
68
+ * Current task list for the side panel. When empty, the panel derives it
69
+ * from the newest todo tool call in `messages` (registry kind 'todo'), so
70
+ * hosts that stream todowrite calls get the sidebar for free.
71
+ */
72
+ @property({ attribute: false })
73
+ accessor todos: IHarnessTodoItem[] = [];
74
+
75
+ @property({ type: Boolean })
76
+ accessor showTodosPanel: boolean = true;
77
+
78
+ @property()
79
+ accessor heading: string = '';
80
+
81
+ @property()
82
+ accessor subheading: string = '';
83
+
84
+ @property({ type: Boolean })
85
+ accessor showToolbar: boolean = true;
86
+
87
+ @property({ type: Boolean })
88
+ accessor showRoles: boolean = true;
89
+
90
+ @property({ type: Boolean })
91
+ accessor disabled: boolean = false;
92
+
93
+ @property({ type: Boolean })
94
+ accessor busy: boolean = false;
95
+
96
+ /** queued-message count while busy; enables the composer's "Steer now" */
97
+ @property({ type: Number })
98
+ accessor queuedCount: number = 0;
99
+
100
+ @property()
101
+ accessor composerValue: string = '';
102
+
103
+ @property({ attribute: false })
104
+ accessor attachments: IHarnessAttachment[] = [];
105
+
106
+ @property()
107
+ accessor model: string = '';
108
+
109
+ @property({ attribute: false })
110
+ accessor modelOptions: string[] = [];
111
+
112
+ @property()
113
+ accessor reasoningEffort: string = '';
114
+
115
+ @property({ attribute: false })
116
+ accessor effortOptions: string[] = [];
117
+
118
+ @property({ attribute: false })
119
+ accessor toolRegistry: DeesHarnessToolRegistry = DeesHarnessToolRegistry.default;
120
+
121
+ public static styles = [
122
+ themeDefaultStyles,
123
+ cssManager.defaultStyles,
124
+ css`
125
+ :host {
126
+ display: flex;
127
+ flex-direction: column;
128
+ min-height: 0;
129
+ height: 100%;
130
+ font-family: var(--dees-font-family);
131
+ color: var(--dees-color-text-primary);
132
+ background: var(--dees-color-bg-primary);
133
+ container-type: inline-size;
134
+ }
135
+
136
+ .chatBody {
137
+ flex: 1;
138
+ min-height: 0;
139
+ display: flex;
140
+ }
141
+
142
+ .todosPanel {
143
+ flex: 0 0 232px;
144
+ min-width: 0;
145
+ overflow-y: auto;
146
+ scrollbar-width: thin;
147
+ scrollbar-color: var(--dees-color-scrollbar-thumb) transparent;
148
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md);
149
+ border-left: 1px solid var(--dees-color-border-subtle);
150
+ background: var(--dees-color-bg-secondary);
151
+ }
152
+
153
+ /* narrow hosts (e.g. a sidebar chat) drop the panel; todo tool cards
154
+ in the transcript still carry the same information */
155
+ @container (max-width: 520px) {
156
+ .todosPanel {
157
+ display: none;
158
+ }
159
+ }
160
+
161
+ .toolbar {
162
+ flex: 0 0 auto;
163
+ display: flex;
164
+ align-items: center;
165
+ gap: var(--dees-spacing-md);
166
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md);
167
+ border-bottom: 1px solid var(--dees-color-border-subtle);
168
+ background: var(--dees-color-bg-secondary);
169
+ }
170
+
171
+ .headingBlock {
172
+ min-width: 0;
173
+ flex: 1;
174
+ }
175
+
176
+ .headingText {
177
+ color: var(--dees-color-text-primary);
178
+ font-size: var(--dees-font-control-size, 13px);
179
+ font-weight: 600;
180
+ overflow: hidden;
181
+ text-overflow: ellipsis;
182
+ white-space: nowrap;
183
+ }
184
+
185
+ .subheadingText {
186
+ margin-top: 1px;
187
+ color: var(--dees-color-text-secondary);
188
+ font-size: var(--dees-font-caption1-size, 11px);
189
+ overflow: hidden;
190
+ text-overflow: ellipsis;
191
+ white-space: nowrap;
192
+ }
193
+
194
+ .toolbarActions {
195
+ display: flex;
196
+ align-items: center;
197
+ gap: var(--dees-spacing-xs);
198
+ flex: 0 0 auto;
199
+ }
200
+
201
+ .chatBody dees-harness-message-list {
202
+ flex: 1;
203
+ min-height: 0;
204
+ }
205
+
206
+ .permissionQueue {
207
+ flex: 0 0 auto;
208
+ display: block;
209
+ padding: 0 var(--dees-spacing-md);
210
+ max-height: 40%;
211
+ overflow-y: auto;
212
+ }
213
+
214
+ .permissionQueue > * + * {
215
+ margin-top: var(--dees-spacing-xs);
216
+ }
217
+
218
+ /* always mounted so the status leave transition can play; the status
219
+ element renders empty when idle, collapsing the row to zero height */
220
+ .statusRow {
221
+ flex: 0 0 auto;
222
+ padding: 0 var(--dees-spacing-md);
223
+ }
224
+
225
+ .statusRow dees-harness-status {
226
+ margin: 0;
227
+ }
228
+
229
+ .composerRow {
230
+ flex: 0 0 auto;
231
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md) var(--dees-spacing-md);
232
+ }
233
+ `,
234
+ ];
235
+
236
+ // ---------------------------------------------------------------- methods
237
+
238
+ /** Streams an incremental update into the message list. */
239
+ public applyDelta(delta: THarnessStreamDelta): void {
240
+ this.listElement?.applyDelta(delta);
241
+ }
242
+
243
+ public async focusComposer(): Promise<void> {
244
+ await this.updateComplete;
245
+ await this.composerElement?.focusPrompt();
246
+ }
247
+
248
+ public clearComposer(): void {
249
+ this.composerValue = '';
250
+ this.composerElement?.clear();
251
+ }
252
+
253
+ public scrollToBottom(force = false): void {
254
+ this.listElement?.scrollToBottom(force);
255
+ }
256
+
257
+ public get effectiveTodos(): IHarnessTodoItem[] {
258
+ if (this.todos.length) return this.todos;
259
+ // the newest todo call is the current state — an empty write clears
260
+ // the panel instead of falling back to an older list
261
+ for (let index = this.messages.length - 1; index >= 0; index--) {
262
+ const call = this.messages[index]?.toolCall;
263
+ if (!call) continue;
264
+ if (this.toolRegistry.resolve(call).kind !== 'todo') continue;
265
+ return harnessParseTodos(call.input);
266
+ }
267
+ return [];
268
+ }
269
+
270
+ private get listElement(): DeesHarnessMessageList | undefined {
271
+ const element = this.shadowRoot?.querySelector('dees-harness-message-list');
272
+ return element instanceof DeesHarnessMessageList ? element : undefined;
273
+ }
274
+
275
+ private get composerElement(): DeesHarnessComposer | undefined {
276
+ const element = this.shadowRoot?.querySelector('dees-harness-composer');
277
+ return element instanceof DeesHarnessComposer ? element : undefined;
278
+ }
279
+
280
+ // ----------------------------------------------------------------- render
281
+
282
+ public render(): TemplateResult {
283
+ return html`
284
+ ${this.showToolbar ? this.renderToolbar() : ''}
285
+ <div class="chatBody">
286
+ <dees-harness-message-list
287
+ .messages=${this.messages}
288
+ .status=${idleStatus}
289
+ .showRoles=${this.showRoles}
290
+ .toolRegistry=${this.toolRegistry}
291
+ ></dees-harness-message-list>
292
+ ${this.showTodosPanel && this.effectiveTodos.length
293
+ ? html`
294
+ <aside class="todosPanel">
295
+ <dees-harness-todos heading="Tasks" .todos=${this.effectiveTodos}></dees-harness-todos>
296
+ </aside>
297
+ `
298
+ : ''}
299
+ </div>
300
+ ${this.permissions.length
301
+ ? html`
302
+ <div class="permissionQueue">
303
+ ${this.permissions.map(
304
+ (request) => html`
305
+ <dees-harness-permission-card .request=${request} .busy=${this.disabled}></dees-harness-permission-card>
306
+ `,
307
+ )}
308
+ </div>
309
+ `
310
+ : ''}
311
+ <div class="statusRow">
312
+ <dees-harness-status .status=${this.status}></dees-harness-status>
313
+ </div>
314
+ <div class="composerRow">
315
+ <dees-harness-composer
316
+ .value=${this.composerValue}
317
+ .attachments=${this.attachments}
318
+ .disabled=${this.disabled}
319
+ .busy=${this.busy || this.status.type === 'busy'}
320
+ .queuedCount=${this.queuedCount}
321
+ .model=${this.model}
322
+ .modelOptions=${this.modelOptions}
323
+ .reasoningEffort=${this.reasoningEffort}
324
+ .effortOptions=${this.effortOptions}
325
+ @harness-input=${(event: CustomEvent<{ value: string }>) => {
326
+ this.composerValue = event.detail?.value ?? '';
327
+ }}
328
+ @harness-attachments-change=${(event: CustomEvent<{ attachments: IHarnessAttachment[] }>) => {
329
+ this.attachments = event.detail?.attachments ?? [];
330
+ }}
331
+ @harness-model-change=${(event: CustomEvent<{ model?: string; reasoningEffort?: string }>) => {
332
+ if (event.detail?.model) this.model = event.detail.model;
333
+ if (event.detail?.reasoningEffort) this.reasoningEffort = event.detail.reasoningEffort;
334
+ }}
335
+ ></dees-harness-composer>
336
+ </div>
337
+ `;
338
+ }
339
+
340
+ private renderToolbar(): TemplateResult {
341
+ return html`
342
+ <div class="toolbar">
343
+ <div class="headingBlock">
344
+ <div class="headingText">${this.heading || 'Agent'}</div>
345
+ ${this.subheading ? html`<div class="subheadingText">${this.subheading}</div>` : ''}
346
+ </div>
347
+ <div class="toolbarActions">
348
+ <dees-harness-usage compact .usage=${this.usage}></dees-harness-usage>
349
+ <dees-button size="sm" type="ghost" title="Conversations" @clicked=${() => this.emit('harness-open-sessions')}>
350
+ <dees-icon icon="lucide:History" iconSize="14"></dees-icon>
351
+ </dees-button>
352
+ <dees-button size="sm" type="ghost" title="New conversation" @clicked=${() => this.emit('harness-new-session')}>
353
+ <dees-icon icon="lucide:SquarePen" iconSize="14"></dees-icon>
354
+ </dees-button>
355
+ </div>
356
+ </div>
357
+ `;
358
+ }
359
+
360
+ private emit(name: string): void {
361
+ this.dispatchEvent(new CustomEvent(name, { detail: {}, bubbles: true, composed: true }));
362
+ }
363
+ }
@@ -0,0 +1 @@
1
+ export * from './dees-harness-chat.js';
@@ -0,0 +1,56 @@
1
+ import { html } from '@design.estate/dees-element';
2
+
3
+ const logEvent = (event: CustomEvent) => {
4
+ console.log(event.type, event.detail);
5
+ };
6
+
7
+ export const demoFunc = () => html`
8
+ <style>
9
+ .composerDemo {
10
+ display: grid;
11
+ gap: 20px;
12
+ max-width: 680px;
13
+ margin: 40px auto;
14
+ padding: 24px;
15
+ border-radius: var(--dees-radius-xl);
16
+ background: var(--dees-color-bg-primary);
17
+ }
18
+ .composerDemo .label {
19
+ color: var(--dees-color-text-muted);
20
+ font-size: 11px;
21
+ text-transform: uppercase;
22
+ letter-spacing: 0.05em;
23
+ }
24
+ </style>
25
+ <div
26
+ class="composerDemo"
27
+ @harness-send=${logEvent}
28
+ @harness-abort=${logEvent}
29
+ @harness-input=${logEvent}
30
+ @harness-attachments-change=${logEvent}
31
+ @harness-attachment-error=${logEvent}
32
+ @harness-model-change=${logEvent}
33
+ >
34
+ <div class="label">default with model controls (events log to console)</div>
35
+ <dees-harness-composer
36
+ model="gpt-5.5"
37
+ reasoningEffort="high"
38
+ .modelOptions=${['gpt-5.5', 'gpt-5', 'o4-mini']}
39
+ .effortOptions=${['xhigh', 'high', 'medium', 'low']}
40
+ ></dees-harness-composer>
41
+ <div class="label">busy with text (Stop + Send — sends queue while running)</div>
42
+ <dees-harness-composer busy value="Refactor the sitemap job…"></dees-harness-composer>
43
+ <div class="label">busy, empty prompt, 2 queued (Stop + Steer now)</div>
44
+ <dees-harness-composer busy queuedCount="2"></dees-harness-composer>
45
+ <div class="label">disabled</div>
46
+ <dees-harness-composer disabled placeholder="Connect to a project to chat."></dees-harness-composer>
47
+ <div class="label">with pre-filled attachments, no model controls</div>
48
+ <dees-harness-composer
49
+ .showModelControls=${false}
50
+ .attachments=${[
51
+ { id: 'a1', name: 'build.log', mediaType: 'text/plain', size: 5120, kind: 'text' as const },
52
+ { id: 'a2', name: 'screenshot.png', mediaType: 'image/png', size: 44_000, kind: 'image' as const },
53
+ ]}
54
+ ></dees-harness-composer>
55
+ </div>
56
+ `;