@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,485 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { demoFunc } from './dees-harness-chat.demo.js';
36
+ import { DeesElement, html, css, customElement, property, cssManager, } from '@design.estate/dees-element';
37
+ import { themeDefaultStyles } from '../../00theme.js';
38
+ import { harnessParseTodos } from '../harness.helpers.js';
39
+ import { DeesHarnessToolRegistry } from '../toolregistry.js';
40
+ import { DeesHarnessMessageList } from '../dees-harness-message-list/dees-harness-message-list.js';
41
+ import { DeesHarnessComposer } from '../dees-harness-composer/dees-harness-composer.js';
42
+ import '../dees-harness-permission-card/dees-harness-permission-card.js';
43
+ import '../dees-harness-status/dees-harness-status.js';
44
+ import '../dees-harness-todos/dees-harness-todos.js';
45
+ import '../dees-harness-usage/dees-harness-usage.js';
46
+ import '../../00group-button/dees-button/dees-button.js';
47
+ import '../../00group-utility/dees-icon/dees-icon.js';
48
+ // stable idle binding for the embedded list — a fresh object literal per
49
+ // render would re-trigger its follow logic on every chat render
50
+ const idleStatus = { type: 'idle' };
51
+ /**
52
+ * The assembled agent chat: optional toolbar, streaming message list,
53
+ * pinned permission queue, status line, and composer. Owns no business
54
+ * logic — consumers feed `.messages`/`.permissions`/`.status` (and stream
55
+ * through `applyDelta()`), and listen for the bubbling harness-* events
56
+ * from the children plus `harness-new-session` / `harness-open-sessions`
57
+ * from the toolbar.
58
+ */
59
+ let DeesHarnessChat = (() => {
60
+ let _classDecorators = [customElement('dees-harness-chat')];
61
+ let _classDescriptor;
62
+ let _classExtraInitializers = [];
63
+ let _classThis;
64
+ let _classSuper = DeesElement;
65
+ let _messages_decorators;
66
+ let _messages_initializers = [];
67
+ let _messages_extraInitializers = [];
68
+ let _permissions_decorators;
69
+ let _permissions_initializers = [];
70
+ let _permissions_extraInitializers = [];
71
+ let _status_decorators;
72
+ let _status_initializers = [];
73
+ let _status_extraInitializers = [];
74
+ let _usage_decorators;
75
+ let _usage_initializers = [];
76
+ let _usage_extraInitializers = [];
77
+ let _todos_decorators;
78
+ let _todos_initializers = [];
79
+ let _todos_extraInitializers = [];
80
+ let _showTodosPanel_decorators;
81
+ let _showTodosPanel_initializers = [];
82
+ let _showTodosPanel_extraInitializers = [];
83
+ let _heading_decorators;
84
+ let _heading_initializers = [];
85
+ let _heading_extraInitializers = [];
86
+ let _subheading_decorators;
87
+ let _subheading_initializers = [];
88
+ let _subheading_extraInitializers = [];
89
+ let _showToolbar_decorators;
90
+ let _showToolbar_initializers = [];
91
+ let _showToolbar_extraInitializers = [];
92
+ let _showRoles_decorators;
93
+ let _showRoles_initializers = [];
94
+ let _showRoles_extraInitializers = [];
95
+ let _disabled_decorators;
96
+ let _disabled_initializers = [];
97
+ let _disabled_extraInitializers = [];
98
+ let _busy_decorators;
99
+ let _busy_initializers = [];
100
+ let _busy_extraInitializers = [];
101
+ let _queuedCount_decorators;
102
+ let _queuedCount_initializers = [];
103
+ let _queuedCount_extraInitializers = [];
104
+ let _composerValue_decorators;
105
+ let _composerValue_initializers = [];
106
+ let _composerValue_extraInitializers = [];
107
+ let _attachments_decorators;
108
+ let _attachments_initializers = [];
109
+ let _attachments_extraInitializers = [];
110
+ let _model_decorators;
111
+ let _model_initializers = [];
112
+ let _model_extraInitializers = [];
113
+ let _modelOptions_decorators;
114
+ let _modelOptions_initializers = [];
115
+ let _modelOptions_extraInitializers = [];
116
+ let _reasoningEffort_decorators;
117
+ let _reasoningEffort_initializers = [];
118
+ let _reasoningEffort_extraInitializers = [];
119
+ let _effortOptions_decorators;
120
+ let _effortOptions_initializers = [];
121
+ let _effortOptions_extraInitializers = [];
122
+ let _toolRegistry_decorators;
123
+ let _toolRegistry_initializers = [];
124
+ let _toolRegistry_extraInitializers = [];
125
+ var DeesHarnessChat = class extends _classSuper {
126
+ static { _classThis = this; }
127
+ static {
128
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
129
+ _messages_decorators = [property({ attribute: false })];
130
+ _permissions_decorators = [property({ attribute: false })];
131
+ _status_decorators = [property({ attribute: false })];
132
+ _usage_decorators = [property({ attribute: false })];
133
+ _todos_decorators = [property({ attribute: false })];
134
+ _showTodosPanel_decorators = [property({ type: Boolean })];
135
+ _heading_decorators = [property()];
136
+ _subheading_decorators = [property()];
137
+ _showToolbar_decorators = [property({ type: Boolean })];
138
+ _showRoles_decorators = [property({ type: Boolean })];
139
+ _disabled_decorators = [property({ type: Boolean })];
140
+ _busy_decorators = [property({ type: Boolean })];
141
+ _queuedCount_decorators = [property({ type: Number })];
142
+ _composerValue_decorators = [property()];
143
+ _attachments_decorators = [property({ attribute: false })];
144
+ _model_decorators = [property()];
145
+ _modelOptions_decorators = [property({ attribute: false })];
146
+ _reasoningEffort_decorators = [property()];
147
+ _effortOptions_decorators = [property({ attribute: false })];
148
+ _toolRegistry_decorators = [property({ attribute: false })];
149
+ __esDecorate(this, null, _messages_decorators, { kind: "accessor", name: "messages", static: false, private: false, access: { has: obj => "messages" in obj, get: obj => obj.messages, set: (obj, value) => { obj.messages = value; } }, metadata: _metadata }, _messages_initializers, _messages_extraInitializers);
150
+ __esDecorate(this, null, _permissions_decorators, { kind: "accessor", name: "permissions", static: false, private: false, access: { has: obj => "permissions" in obj, get: obj => obj.permissions, set: (obj, value) => { obj.permissions = value; } }, metadata: _metadata }, _permissions_initializers, _permissions_extraInitializers);
151
+ __esDecorate(this, null, _status_decorators, { kind: "accessor", name: "status", static: false, private: false, access: { has: obj => "status" in obj, get: obj => obj.status, set: (obj, value) => { obj.status = value; } }, metadata: _metadata }, _status_initializers, _status_extraInitializers);
152
+ __esDecorate(this, null, _usage_decorators, { kind: "accessor", name: "usage", static: false, private: false, access: { has: obj => "usage" in obj, get: obj => obj.usage, set: (obj, value) => { obj.usage = value; } }, metadata: _metadata }, _usage_initializers, _usage_extraInitializers);
153
+ __esDecorate(this, null, _todos_decorators, { kind: "accessor", name: "todos", static: false, private: false, access: { has: obj => "todos" in obj, get: obj => obj.todos, set: (obj, value) => { obj.todos = value; } }, metadata: _metadata }, _todos_initializers, _todos_extraInitializers);
154
+ __esDecorate(this, null, _showTodosPanel_decorators, { kind: "accessor", name: "showTodosPanel", static: false, private: false, access: { has: obj => "showTodosPanel" in obj, get: obj => obj.showTodosPanel, set: (obj, value) => { obj.showTodosPanel = value; } }, metadata: _metadata }, _showTodosPanel_initializers, _showTodosPanel_extraInitializers);
155
+ __esDecorate(this, null, _heading_decorators, { kind: "accessor", name: "heading", static: false, private: false, access: { has: obj => "heading" in obj, get: obj => obj.heading, set: (obj, value) => { obj.heading = value; } }, metadata: _metadata }, _heading_initializers, _heading_extraInitializers);
156
+ __esDecorate(this, null, _subheading_decorators, { kind: "accessor", name: "subheading", static: false, private: false, access: { has: obj => "subheading" in obj, get: obj => obj.subheading, set: (obj, value) => { obj.subheading = value; } }, metadata: _metadata }, _subheading_initializers, _subheading_extraInitializers);
157
+ __esDecorate(this, null, _showToolbar_decorators, { kind: "accessor", name: "showToolbar", static: false, private: false, access: { has: obj => "showToolbar" in obj, get: obj => obj.showToolbar, set: (obj, value) => { obj.showToolbar = value; } }, metadata: _metadata }, _showToolbar_initializers, _showToolbar_extraInitializers);
158
+ __esDecorate(this, null, _showRoles_decorators, { kind: "accessor", name: "showRoles", static: false, private: false, access: { has: obj => "showRoles" in obj, get: obj => obj.showRoles, set: (obj, value) => { obj.showRoles = value; } }, metadata: _metadata }, _showRoles_initializers, _showRoles_extraInitializers);
159
+ __esDecorate(this, null, _disabled_decorators, { kind: "accessor", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
160
+ __esDecorate(this, null, _busy_decorators, { kind: "accessor", name: "busy", static: false, private: false, access: { has: obj => "busy" in obj, get: obj => obj.busy, set: (obj, value) => { obj.busy = value; } }, metadata: _metadata }, _busy_initializers, _busy_extraInitializers);
161
+ __esDecorate(this, null, _queuedCount_decorators, { kind: "accessor", name: "queuedCount", static: false, private: false, access: { has: obj => "queuedCount" in obj, get: obj => obj.queuedCount, set: (obj, value) => { obj.queuedCount = value; } }, metadata: _metadata }, _queuedCount_initializers, _queuedCount_extraInitializers);
162
+ __esDecorate(this, null, _composerValue_decorators, { kind: "accessor", name: "composerValue", static: false, private: false, access: { has: obj => "composerValue" in obj, get: obj => obj.composerValue, set: (obj, value) => { obj.composerValue = value; } }, metadata: _metadata }, _composerValue_initializers, _composerValue_extraInitializers);
163
+ __esDecorate(this, null, _attachments_decorators, { kind: "accessor", name: "attachments", static: false, private: false, access: { has: obj => "attachments" in obj, get: obj => obj.attachments, set: (obj, value) => { obj.attachments = value; } }, metadata: _metadata }, _attachments_initializers, _attachments_extraInitializers);
164
+ __esDecorate(this, null, _model_decorators, { kind: "accessor", name: "model", static: false, private: false, access: { has: obj => "model" in obj, get: obj => obj.model, set: (obj, value) => { obj.model = value; } }, metadata: _metadata }, _model_initializers, _model_extraInitializers);
165
+ __esDecorate(this, null, _modelOptions_decorators, { kind: "accessor", name: "modelOptions", static: false, private: false, access: { has: obj => "modelOptions" in obj, get: obj => obj.modelOptions, set: (obj, value) => { obj.modelOptions = value; } }, metadata: _metadata }, _modelOptions_initializers, _modelOptions_extraInitializers);
166
+ __esDecorate(this, null, _reasoningEffort_decorators, { kind: "accessor", name: "reasoningEffort", static: false, private: false, access: { has: obj => "reasoningEffort" in obj, get: obj => obj.reasoningEffort, set: (obj, value) => { obj.reasoningEffort = value; } }, metadata: _metadata }, _reasoningEffort_initializers, _reasoningEffort_extraInitializers);
167
+ __esDecorate(this, null, _effortOptions_decorators, { kind: "accessor", name: "effortOptions", static: false, private: false, access: { has: obj => "effortOptions" in obj, get: obj => obj.effortOptions, set: (obj, value) => { obj.effortOptions = value; } }, metadata: _metadata }, _effortOptions_initializers, _effortOptions_extraInitializers);
168
+ __esDecorate(this, null, _toolRegistry_decorators, { kind: "accessor", name: "toolRegistry", static: false, private: false, access: { has: obj => "toolRegistry" in obj, get: obj => obj.toolRegistry, set: (obj, value) => { obj.toolRegistry = value; } }, metadata: _metadata }, _toolRegistry_initializers, _toolRegistry_extraInitializers);
169
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
170
+ DeesHarnessChat = _classThis = _classDescriptor.value;
171
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
172
+ }
173
+ static demo = demoFunc;
174
+ static demoGroups = ['Agent Chat'];
175
+ #messages_accessor_storage = __runInitializers(this, _messages_initializers, []);
176
+ get messages() { return this.#messages_accessor_storage; }
177
+ set messages(value) { this.#messages_accessor_storage = value; }
178
+ #permissions_accessor_storage = (__runInitializers(this, _messages_extraInitializers), __runInitializers(this, _permissions_initializers, []));
179
+ get permissions() { return this.#permissions_accessor_storage; }
180
+ set permissions(value) { this.#permissions_accessor_storage = value; }
181
+ #status_accessor_storage = (__runInitializers(this, _permissions_extraInitializers), __runInitializers(this, _status_initializers, { type: 'idle' }));
182
+ get status() { return this.#status_accessor_storage; }
183
+ set status(value) { this.#status_accessor_storage = value; }
184
+ #usage_accessor_storage = (__runInitializers(this, _status_extraInitializers), __runInitializers(this, _usage_initializers, {}));
185
+ get usage() { return this.#usage_accessor_storage; }
186
+ set usage(value) { this.#usage_accessor_storage = value; }
187
+ #todos_accessor_storage = (__runInitializers(this, _usage_extraInitializers), __runInitializers(this, _todos_initializers, []));
188
+ /**
189
+ * Current task list for the side panel. When empty, the panel derives it
190
+ * from the newest todo tool call in `messages` (registry kind 'todo'), so
191
+ * hosts that stream todowrite calls get the sidebar for free.
192
+ */
193
+ get todos() { return this.#todos_accessor_storage; }
194
+ set todos(value) { this.#todos_accessor_storage = value; }
195
+ #showTodosPanel_accessor_storage = (__runInitializers(this, _todos_extraInitializers), __runInitializers(this, _showTodosPanel_initializers, true));
196
+ get showTodosPanel() { return this.#showTodosPanel_accessor_storage; }
197
+ set showTodosPanel(value) { this.#showTodosPanel_accessor_storage = value; }
198
+ #heading_accessor_storage = (__runInitializers(this, _showTodosPanel_extraInitializers), __runInitializers(this, _heading_initializers, ''));
199
+ get heading() { return this.#heading_accessor_storage; }
200
+ set heading(value) { this.#heading_accessor_storage = value; }
201
+ #subheading_accessor_storage = (__runInitializers(this, _heading_extraInitializers), __runInitializers(this, _subheading_initializers, ''));
202
+ get subheading() { return this.#subheading_accessor_storage; }
203
+ set subheading(value) { this.#subheading_accessor_storage = value; }
204
+ #showToolbar_accessor_storage = (__runInitializers(this, _subheading_extraInitializers), __runInitializers(this, _showToolbar_initializers, true));
205
+ get showToolbar() { return this.#showToolbar_accessor_storage; }
206
+ set showToolbar(value) { this.#showToolbar_accessor_storage = value; }
207
+ #showRoles_accessor_storage = (__runInitializers(this, _showToolbar_extraInitializers), __runInitializers(this, _showRoles_initializers, true));
208
+ get showRoles() { return this.#showRoles_accessor_storage; }
209
+ set showRoles(value) { this.#showRoles_accessor_storage = value; }
210
+ #disabled_accessor_storage = (__runInitializers(this, _showRoles_extraInitializers), __runInitializers(this, _disabled_initializers, false));
211
+ get disabled() { return this.#disabled_accessor_storage; }
212
+ set disabled(value) { this.#disabled_accessor_storage = value; }
213
+ #busy_accessor_storage = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _busy_initializers, false));
214
+ get busy() { return this.#busy_accessor_storage; }
215
+ set busy(value) { this.#busy_accessor_storage = value; }
216
+ #queuedCount_accessor_storage = (__runInitializers(this, _busy_extraInitializers), __runInitializers(this, _queuedCount_initializers, 0));
217
+ /** queued-message count while busy; enables the composer's "Steer now" */
218
+ get queuedCount() { return this.#queuedCount_accessor_storage; }
219
+ set queuedCount(value) { this.#queuedCount_accessor_storage = value; }
220
+ #composerValue_accessor_storage = (__runInitializers(this, _queuedCount_extraInitializers), __runInitializers(this, _composerValue_initializers, ''));
221
+ get composerValue() { return this.#composerValue_accessor_storage; }
222
+ set composerValue(value) { this.#composerValue_accessor_storage = value; }
223
+ #attachments_accessor_storage = (__runInitializers(this, _composerValue_extraInitializers), __runInitializers(this, _attachments_initializers, []));
224
+ get attachments() { return this.#attachments_accessor_storage; }
225
+ set attachments(value) { this.#attachments_accessor_storage = value; }
226
+ #model_accessor_storage = (__runInitializers(this, _attachments_extraInitializers), __runInitializers(this, _model_initializers, ''));
227
+ get model() { return this.#model_accessor_storage; }
228
+ set model(value) { this.#model_accessor_storage = value; }
229
+ #modelOptions_accessor_storage = (__runInitializers(this, _model_extraInitializers), __runInitializers(this, _modelOptions_initializers, []));
230
+ get modelOptions() { return this.#modelOptions_accessor_storage; }
231
+ set modelOptions(value) { this.#modelOptions_accessor_storage = value; }
232
+ #reasoningEffort_accessor_storage = (__runInitializers(this, _modelOptions_extraInitializers), __runInitializers(this, _reasoningEffort_initializers, ''));
233
+ get reasoningEffort() { return this.#reasoningEffort_accessor_storage; }
234
+ set reasoningEffort(value) { this.#reasoningEffort_accessor_storage = value; }
235
+ #effortOptions_accessor_storage = (__runInitializers(this, _reasoningEffort_extraInitializers), __runInitializers(this, _effortOptions_initializers, []));
236
+ get effortOptions() { return this.#effortOptions_accessor_storage; }
237
+ set effortOptions(value) { this.#effortOptions_accessor_storage = value; }
238
+ #toolRegistry_accessor_storage = (__runInitializers(this, _effortOptions_extraInitializers), __runInitializers(this, _toolRegistry_initializers, DeesHarnessToolRegistry.default));
239
+ get toolRegistry() { return this.#toolRegistry_accessor_storage; }
240
+ set toolRegistry(value) { this.#toolRegistry_accessor_storage = value; }
241
+ static styles = [
242
+ themeDefaultStyles,
243
+ cssManager.defaultStyles,
244
+ css `
245
+ :host {
246
+ display: flex;
247
+ flex-direction: column;
248
+ min-height: 0;
249
+ height: 100%;
250
+ font-family: var(--dees-font-family);
251
+ color: var(--dees-color-text-primary);
252
+ background: var(--dees-color-bg-primary);
253
+ container-type: inline-size;
254
+ }
255
+
256
+ .chatBody {
257
+ flex: 1;
258
+ min-height: 0;
259
+ display: flex;
260
+ }
261
+
262
+ .todosPanel {
263
+ flex: 0 0 232px;
264
+ min-width: 0;
265
+ overflow-y: auto;
266
+ scrollbar-width: thin;
267
+ scrollbar-color: var(--dees-color-scrollbar-thumb) transparent;
268
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md);
269
+ border-left: 1px solid var(--dees-color-border-subtle);
270
+ background: var(--dees-color-bg-secondary);
271
+ }
272
+
273
+ /* narrow hosts (e.g. a sidebar chat) drop the panel; todo tool cards
274
+ in the transcript still carry the same information */
275
+ @container (max-width: 520px) {
276
+ .todosPanel {
277
+ display: none;
278
+ }
279
+ }
280
+
281
+ .toolbar {
282
+ flex: 0 0 auto;
283
+ display: flex;
284
+ align-items: center;
285
+ gap: var(--dees-spacing-md);
286
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md);
287
+ border-bottom: 1px solid var(--dees-color-border-subtle);
288
+ background: var(--dees-color-bg-secondary);
289
+ }
290
+
291
+ .headingBlock {
292
+ min-width: 0;
293
+ flex: 1;
294
+ }
295
+
296
+ .headingText {
297
+ color: var(--dees-color-text-primary);
298
+ font-size: var(--dees-font-control-size, 13px);
299
+ font-weight: 600;
300
+ overflow: hidden;
301
+ text-overflow: ellipsis;
302
+ white-space: nowrap;
303
+ }
304
+
305
+ .subheadingText {
306
+ margin-top: 1px;
307
+ color: var(--dees-color-text-secondary);
308
+ font-size: var(--dees-font-caption1-size, 11px);
309
+ overflow: hidden;
310
+ text-overflow: ellipsis;
311
+ white-space: nowrap;
312
+ }
313
+
314
+ .toolbarActions {
315
+ display: flex;
316
+ align-items: center;
317
+ gap: var(--dees-spacing-xs);
318
+ flex: 0 0 auto;
319
+ }
320
+
321
+ .chatBody dees-harness-message-list {
322
+ flex: 1;
323
+ min-height: 0;
324
+ }
325
+
326
+ .permissionQueue {
327
+ flex: 0 0 auto;
328
+ display: block;
329
+ padding: 0 var(--dees-spacing-md);
330
+ max-height: 40%;
331
+ overflow-y: auto;
332
+ }
333
+
334
+ .permissionQueue > * + * {
335
+ margin-top: var(--dees-spacing-xs);
336
+ }
337
+
338
+ /* always mounted so the status leave transition can play; the status
339
+ element renders empty when idle, collapsing the row to zero height */
340
+ .statusRow {
341
+ flex: 0 0 auto;
342
+ padding: 0 var(--dees-spacing-md);
343
+ }
344
+
345
+ .statusRow dees-harness-status {
346
+ margin: 0;
347
+ }
348
+
349
+ .composerRow {
350
+ flex: 0 0 auto;
351
+ padding: var(--dees-spacing-sm) var(--dees-spacing-md) var(--dees-spacing-md);
352
+ }
353
+ `,
354
+ ];
355
+ // ---------------------------------------------------------------- methods
356
+ /** Streams an incremental update into the message list. */
357
+ applyDelta(delta) {
358
+ this.listElement?.applyDelta(delta);
359
+ }
360
+ async focusComposer() {
361
+ await this.updateComplete;
362
+ await this.composerElement?.focusPrompt();
363
+ }
364
+ clearComposer() {
365
+ this.composerValue = '';
366
+ this.composerElement?.clear();
367
+ }
368
+ scrollToBottom(force = false) {
369
+ this.listElement?.scrollToBottom(force);
370
+ }
371
+ get effectiveTodos() {
372
+ if (this.todos.length)
373
+ return this.todos;
374
+ // the newest todo call is the current state — an empty write clears
375
+ // the panel instead of falling back to an older list
376
+ for (let index = this.messages.length - 1; index >= 0; index--) {
377
+ const call = this.messages[index]?.toolCall;
378
+ if (!call)
379
+ continue;
380
+ if (this.toolRegistry.resolve(call).kind !== 'todo')
381
+ continue;
382
+ return harnessParseTodos(call.input);
383
+ }
384
+ return [];
385
+ }
386
+ get listElement() {
387
+ const element = this.shadowRoot?.querySelector('dees-harness-message-list');
388
+ return element instanceof DeesHarnessMessageList ? element : undefined;
389
+ }
390
+ get composerElement() {
391
+ const element = this.shadowRoot?.querySelector('dees-harness-composer');
392
+ return element instanceof DeesHarnessComposer ? element : undefined;
393
+ }
394
+ // ----------------------------------------------------------------- render
395
+ render() {
396
+ return html `
397
+ ${this.showToolbar ? this.renderToolbar() : ''}
398
+ <div class="chatBody">
399
+ <dees-harness-message-list
400
+ .messages=${this.messages}
401
+ .status=${idleStatus}
402
+ .showRoles=${this.showRoles}
403
+ .toolRegistry=${this.toolRegistry}
404
+ ></dees-harness-message-list>
405
+ ${this.showTodosPanel && this.effectiveTodos.length
406
+ ? html `
407
+ <aside class="todosPanel">
408
+ <dees-harness-todos heading="Tasks" .todos=${this.effectiveTodos}></dees-harness-todos>
409
+ </aside>
410
+ `
411
+ : ''}
412
+ </div>
413
+ ${this.permissions.length
414
+ ? html `
415
+ <div class="permissionQueue">
416
+ ${this.permissions.map((request) => html `
417
+ <dees-harness-permission-card .request=${request} .busy=${this.disabled}></dees-harness-permission-card>
418
+ `)}
419
+ </div>
420
+ `
421
+ : ''}
422
+ <div class="statusRow">
423
+ <dees-harness-status .status=${this.status}></dees-harness-status>
424
+ </div>
425
+ <div class="composerRow">
426
+ <dees-harness-composer
427
+ .value=${this.composerValue}
428
+ .attachments=${this.attachments}
429
+ .disabled=${this.disabled}
430
+ .busy=${this.busy || this.status.type === 'busy'}
431
+ .queuedCount=${this.queuedCount}
432
+ .model=${this.model}
433
+ .modelOptions=${this.modelOptions}
434
+ .reasoningEffort=${this.reasoningEffort}
435
+ .effortOptions=${this.effortOptions}
436
+ @harness-input=${(event) => {
437
+ this.composerValue = event.detail?.value ?? '';
438
+ }}
439
+ @harness-attachments-change=${(event) => {
440
+ this.attachments = event.detail?.attachments ?? [];
441
+ }}
442
+ @harness-model-change=${(event) => {
443
+ if (event.detail?.model)
444
+ this.model = event.detail.model;
445
+ if (event.detail?.reasoningEffort)
446
+ this.reasoningEffort = event.detail.reasoningEffort;
447
+ }}
448
+ ></dees-harness-composer>
449
+ </div>
450
+ `;
451
+ }
452
+ renderToolbar() {
453
+ return html `
454
+ <div class="toolbar">
455
+ <div class="headingBlock">
456
+ <div class="headingText">${this.heading || 'Agent'}</div>
457
+ ${this.subheading ? html `<div class="subheadingText">${this.subheading}</div>` : ''}
458
+ </div>
459
+ <div class="toolbarActions">
460
+ <dees-harness-usage compact .usage=${this.usage}></dees-harness-usage>
461
+ <dees-button size="sm" type="ghost" title="Conversations" @clicked=${() => this.emit('harness-open-sessions')}>
462
+ <dees-icon icon="lucide:History" iconSize="14"></dees-icon>
463
+ </dees-button>
464
+ <dees-button size="sm" type="ghost" title="New conversation" @clicked=${() => this.emit('harness-new-session')}>
465
+ <dees-icon icon="lucide:SquarePen" iconSize="14"></dees-icon>
466
+ </dees-button>
467
+ </div>
468
+ </div>
469
+ `;
470
+ }
471
+ emit(name) {
472
+ this.dispatchEvent(new CustomEvent(name, { detail: {}, bubbles: true, composed: true }));
473
+ }
474
+ constructor() {
475
+ super(...arguments);
476
+ __runInitializers(this, _toolRegistry_extraInitializers);
477
+ }
478
+ static {
479
+ __runInitializers(_classThis, _classExtraInitializers);
480
+ }
481
+ };
482
+ return DeesHarnessChat = _classThis;
483
+ })();
484
+ export { DeesHarnessChat };
485
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1jaGF0L2RlZXMtaGFybmVzcy1jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFVdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxpRUFBaUUsQ0FBQztBQUN6RSxPQUFPLCtDQUErQyxDQUFDO0FBQ3ZELE9BQU8sNkNBQTZDLENBQUM7QUFDckQsT0FBTyw2Q0FBNkMsQ0FBQztBQUNyRCxPQUFPLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sOENBQThDLENBQUM7QUFRdEQseUVBQXlFO0FBQ3pFLGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsR0FBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFFcEQ7Ozs7Ozs7R0FPRztJQUVVLGVBQWU7NEJBRDNCLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -0,0 +1 @@
1
+ export * from './dees-harness-chat.js';
@@ -0,0 +1,2 @@
1
+ export * from './dees-harness-chat.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1jaGF0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMifQ==
@@ -0,0 +1,65 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import type { IHarnessAttachment } from '../interfaces.js';
3
+ import '../../00group-button/dees-button/dees-button.js';
4
+ import '../../00group-input/dees-input-dropdown/dees-input-dropdown.js';
5
+ import '../../00group-utility/dees-icon/dees-icon.js';
6
+ declare global {
7
+ interface HTMLElementTagNameMap {
8
+ 'dees-harness-composer': DeesHarnessComposer;
9
+ }
10
+ }
11
+ /**
12
+ * Prompt composer: autogrow textarea, attachments (picker / paste /
13
+ * drag-drop with per-file and total size limits), optional model and
14
+ * reasoning-effort dropdowns. Cmd/Ctrl+Enter sends. While busy, Stop is an
15
+ * additional button and Send stays available for queueing; an empty prompt
16
+ * with queued messages offers "Steer now".
17
+ *
18
+ * Controlled component: `value` and `attachments` are owned by the host;
19
+ * the composer emits `harness-input`, `harness-attachments-change`,
20
+ * `harness-attachment-error`, `harness-model-change`, `harness-send`,
21
+ * `harness-steer`, and `harness-abort` (all bubbling + composed).
22
+ */
23
+ export declare class DeesHarnessComposer extends DeesElement {
24
+ static demo: () => TemplateResult<1>;
25
+ static demoGroups: string[];
26
+ accessor value: string;
27
+ accessor placeholder: string;
28
+ accessor disabled: boolean;
29
+ /**
30
+ * busy = a run is in flight. Sending stays available (hosts queue the
31
+ * messages); Stop renders as an additional button. With an empty prompt
32
+ * and queued messages waiting, the primary action becomes "Steer now"
33
+ * (harness-steer) to force the agent to continue with the queue.
34
+ */
35
+ accessor busy: boolean;
36
+ /** number of messages the host has queued while the run is busy */
37
+ accessor queuedCount: number;
38
+ accessor attachments: IHarnessAttachment[];
39
+ accessor maxAttachmentBytes: number;
40
+ accessor maxTotalAttachmentBytes: number;
41
+ accessor model: string;
42
+ accessor modelOptions: string[];
43
+ accessor reasoningEffort: string;
44
+ accessor effortOptions: string[];
45
+ accessor showModelControls: boolean;
46
+ static styles: import("@design.estate/dees-element").CSSResult[];
47
+ focusPrompt(): Promise<void>;
48
+ clear(): void;
49
+ render(): TemplateResult;
50
+ private renderChip;
51
+ private handleTextInput;
52
+ private handleKeydown;
53
+ private autogrow;
54
+ private handleFileInputChange;
55
+ private handlePaste;
56
+ private handleDragOver;
57
+ private handleDragLeave;
58
+ private handleDrop;
59
+ addFiles(fileList: FileList | File[] | null): Promise<void>;
60
+ private send;
61
+ private emitInput;
62
+ private emitAttachments;
63
+ private emitModelChange;
64
+ private emit;
65
+ }
@@ -0,0 +1 @@
1
+ export declare const demoFunc: () => import("@design.estate/dees-element").TemplateResult<1>;
@@ -0,0 +1,55 @@
1
+ import { html } from '@design.estate/dees-element';
2
+ const logEvent = (event) => {
3
+ console.log(event.type, event.detail);
4
+ };
5
+ export const demoFunc = () => html `
6
+ <style>
7
+ .composerDemo {
8
+ display: grid;
9
+ gap: 20px;
10
+ max-width: 680px;
11
+ margin: 40px auto;
12
+ padding: 24px;
13
+ border-radius: var(--dees-radius-xl);
14
+ background: var(--dees-color-bg-primary);
15
+ }
16
+ .composerDemo .label {
17
+ color: var(--dees-color-text-muted);
18
+ font-size: 11px;
19
+ text-transform: uppercase;
20
+ letter-spacing: 0.05em;
21
+ }
22
+ </style>
23
+ <div
24
+ class="composerDemo"
25
+ @harness-send=${logEvent}
26
+ @harness-abort=${logEvent}
27
+ @harness-input=${logEvent}
28
+ @harness-attachments-change=${logEvent}
29
+ @harness-attachment-error=${logEvent}
30
+ @harness-model-change=${logEvent}
31
+ >
32
+ <div class="label">default with model controls (events log to console)</div>
33
+ <dees-harness-composer
34
+ model="gpt-5.5"
35
+ reasoningEffort="high"
36
+ .modelOptions=${['gpt-5.5', 'gpt-5', 'o4-mini']}
37
+ .effortOptions=${['xhigh', 'high', 'medium', 'low']}
38
+ ></dees-harness-composer>
39
+ <div class="label">busy with text (Stop + Send — sends queue while running)</div>
40
+ <dees-harness-composer busy value="Refactor the sitemap job…"></dees-harness-composer>
41
+ <div class="label">busy, empty prompt, 2 queued (Stop + Steer now)</div>
42
+ <dees-harness-composer busy queuedCount="2"></dees-harness-composer>
43
+ <div class="label">disabled</div>
44
+ <dees-harness-composer disabled placeholder="Connect to a project to chat."></dees-harness-composer>
45
+ <div class="label">with pre-filled attachments, no model controls</div>
46
+ <dees-harness-composer
47
+ .showModelControls=${false}
48
+ .attachments=${[
49
+ { id: 'a1', name: 'build.log', mediaType: 'text/plain', size: 5120, kind: 'text' },
50
+ { id: 'a2', name: 'screenshot.png', mediaType: 'image/png', size: 44_000, kind: 'image' },
51
+ ]}
52
+ ></dees-harness-composer>
53
+ </div>
54
+ `;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNvbXBvc2VyLmRlbW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1jb21wb3Nlci9kZWVzLWhhcm5lc3MtY29tcG9zZXIuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFrQixFQUFFLEVBQUU7SUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFvQmQsUUFBUTtxQkFDUCxRQUFRO3FCQUNSLFFBQVE7a0NBQ0ssUUFBUTtnQ0FDVixRQUFROzRCQUNaLFFBQVE7Ozs7OztzQkFNZCxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO3VCQUM5QixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQzs7Ozs7Ozs7OzsyQkFVOUIsS0FBSztxQkFDWDtJQUNiLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBZSxFQUFFO0lBQzNGLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFnQixFQUFFO0NBQ25HOzs7Q0FHTixDQUFDIn0=