@design.estate/dees-catalog 3.91.0 → 3.92.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 +10381 -4788
  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 +55 -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 +183 -0
  27. package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +412 -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 +233948 -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 +110 -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 +193 -0
  163. package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +301 -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,41 @@
1
+ import { html } from '@design.estate/dees-element';
2
+ // 1×1 px png (red) as a stand-in for tool screenshot output
3
+ const tinyPngBase64 = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==';
4
+ const demoBlocks = [
5
+ { type: 'text', text: 'Query returned 3 rows. Full result set embedded below.' },
6
+ { type: 'image', data: tinyPngBase64, mimeType: 'image/png' },
7
+ {
8
+ type: 'resource',
9
+ resource: {
10
+ uri: 'file:///srv/reports/summary.csv',
11
+ mimeType: 'text/csv',
12
+ text: 'id,name,status\n1,alpha,ok\n2,beta,ok\n3,gamma,degraded',
13
+ },
14
+ },
15
+ {
16
+ type: 'resource_link',
17
+ uri: 'https://example.com/dashboards/deploy-42',
18
+ name: 'deploy-42',
19
+ title: 'Deploy #42 dashboard',
20
+ description: 'Grafana panel for the deploy window',
21
+ mimeType: 'text/html',
22
+ size: 12_480,
23
+ },
24
+ ];
25
+ export const demoFunc = () => html `
26
+ <style>
27
+ .blocksDemo {
28
+ display: grid;
29
+ gap: 16px;
30
+ max-width: 640px;
31
+ margin: 40px auto;
32
+ padding: 24px;
33
+ border-radius: var(--dees-radius-xl);
34
+ background: var(--dees-color-bg-secondary);
35
+ }
36
+ </style>
37
+ <div class="blocksDemo">
38
+ <dees-harness-content-blocks .blocks=${demoBlocks}></dees-harness-content-blocks>
39
+ </div>
40
+ `;
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNvbnRlbnQtYmxvY2tzLmRlbW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1jb250ZW50LWJsb2Nrcy9kZWVzLWhhcm5lc3MtY29udGVudC1ibG9ja3MuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsNERBQTREO0FBQzVELE1BQU0sYUFBYSxHQUFHLGtHQUFrRyxDQUFDO0FBRXpILE1BQU0sVUFBVSxHQUEyQjtJQUN6QyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLHdEQUF3RCxFQUFFO0lBQ2hGLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7SUFDN0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixRQUFRLEVBQUU7WUFDUixHQUFHLEVBQUUsaUNBQWlDO1lBQ3RDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLElBQUksRUFBRSx5REFBeUQ7U0FDaEU7S0FDRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsR0FBRyxFQUFFLDBDQUEwQztRQUMvQyxJQUFJLEVBQUUsV0FBVztRQUNqQixLQUFLLEVBQUUsc0JBQXNCO1FBQzdCLFdBQVcsRUFBRSxxQ0FBcUM7UUFDbEQsUUFBUSxFQUFFLFdBQVc7UUFDckIsSUFBSSxFQUFFLE1BQU07S0FDYjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7OzJDQWFTLFVBQVU7O0NBRXBELENBQUMifQ==
@@ -0,0 +1,215 @@
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-content-blocks.demo.js';
36
+ import { DeesElement, html, css, customElement, property, cssManager, } from '@design.estate/dees-element';
37
+ import { themeDefaultStyles } from '../../00theme.js';
38
+ import { harnessFormatBytes } from '../harness.helpers.js';
39
+ import { harnessMonoStyles } from '../harness.styles.js';
40
+ import '../../00group-utility/dees-icon/dees-icon.js';
41
+ /**
42
+ * Structural renderer for MCP CallToolResult content blocks: text, image,
43
+ * audio, embedded resources, and resource links keep their nature instead of
44
+ * being flattened to strings.
45
+ */
46
+ let DeesHarnessContentBlocks = (() => {
47
+ let _classDecorators = [customElement('dees-harness-content-blocks')];
48
+ let _classDescriptor;
49
+ let _classExtraInitializers = [];
50
+ let _classThis;
51
+ let _classSuper = DeesElement;
52
+ let _blocks_decorators;
53
+ let _blocks_initializers = [];
54
+ let _blocks_extraInitializers = [];
55
+ var DeesHarnessContentBlocks = class extends _classSuper {
56
+ static { _classThis = this; }
57
+ static {
58
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
59
+ _blocks_decorators = [property({ attribute: false })];
60
+ __esDecorate(this, null, _blocks_decorators, { kind: "accessor", name: "blocks", static: false, private: false, access: { has: obj => "blocks" in obj, get: obj => obj.blocks, set: (obj, value) => { obj.blocks = value; } }, metadata: _metadata }, _blocks_initializers, _blocks_extraInitializers);
61
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
62
+ DeesHarnessContentBlocks = _classThis = _classDescriptor.value;
63
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
64
+ }
65
+ static demo = demoFunc;
66
+ static demoGroups = ['Agent Chat'];
67
+ #blocks_accessor_storage = __runInitializers(this, _blocks_initializers, []);
68
+ get blocks() { return this.#blocks_accessor_storage; }
69
+ set blocks(value) { this.#blocks_accessor_storage = value; }
70
+ static styles = [
71
+ themeDefaultStyles,
72
+ cssManager.defaultStyles,
73
+ harnessMonoStyles,
74
+ css `
75
+ :host {
76
+ display: grid;
77
+ gap: var(--dees-spacing-sm);
78
+ font-family: var(--dees-font-family);
79
+ }
80
+
81
+ .textBlock {
82
+ color: var(--dees-color-text-primary);
83
+ white-space: pre-wrap;
84
+ overflow-wrap: anywhere;
85
+ font-size: var(--dees-font-control-size-sm, 12px);
86
+ line-height: 1.5;
87
+ }
88
+
89
+ img {
90
+ display: block;
91
+ max-width: 100%;
92
+ max-height: 420px;
93
+ border-radius: var(--dees-radius-md);
94
+ border: 1px solid var(--dees-color-border-subtle);
95
+ }
96
+
97
+ audio {
98
+ width: 100%;
99
+ }
100
+
101
+ .resourceLink {
102
+ display: flex;
103
+ align-items: center;
104
+ gap: var(--dees-spacing-sm);
105
+ padding: var(--dees-spacing-xs) var(--dees-spacing-sm);
106
+ border: 1px solid var(--dees-color-border-subtle);
107
+ border-radius: var(--dees-radius-md);
108
+ corner-shape: var(--dees-corner-shape);
109
+ background: var(--dees-color-bg-tertiary);
110
+ color: var(--dees-color-text-primary);
111
+ text-decoration: none;
112
+ font-size: var(--dees-font-control-size-sm, 12px);
113
+ }
114
+
115
+ .resourceLink:hover {
116
+ background: var(--dees-color-hover);
117
+ }
118
+
119
+ .resourceLink dees-icon {
120
+ color: var(--dees-color-accent-primary);
121
+ }
122
+
123
+ .resourceInfo {
124
+ min-width: 0;
125
+ }
126
+
127
+ .resourceName {
128
+ overflow: hidden;
129
+ text-overflow: ellipsis;
130
+ white-space: nowrap;
131
+ font-weight: 500;
132
+ }
133
+
134
+ .resourceMeta {
135
+ margin-top: 1px;
136
+ color: var(--dees-color-text-secondary);
137
+ font-size: var(--dees-font-caption1-size, 11px);
138
+ overflow: hidden;
139
+ text-overflow: ellipsis;
140
+ white-space: nowrap;
141
+ }
142
+
143
+ .resourceUri {
144
+ color: var(--dees-color-text-muted);
145
+ font-size: var(--dees-font-caption1-size, 11px);
146
+ font-family: var(--dees-font-family-mono);
147
+ overflow-wrap: anywhere;
148
+ }
149
+ `,
150
+ ];
151
+ render() {
152
+ return html `${this.blocks.map((block) => this.renderBlock(block))}`;
153
+ }
154
+ renderBlock(block) {
155
+ switch (block.type) {
156
+ case 'text':
157
+ return html `<div class="textBlock">${block.text}</div>`;
158
+ case 'image':
159
+ return html `<img src=${`data:${block.mimeType};base64,${block.data}`} alt="tool result image" />`;
160
+ case 'audio':
161
+ return html `<audio controls src=${`data:${block.mimeType};base64,${block.data}`}></audio>`;
162
+ case 'resource': {
163
+ const resource = block.resource;
164
+ if (resource.text !== undefined) {
165
+ return html `
166
+ <div>
167
+ <div class="resourceUri">${resource.uri}</div>
168
+ <pre class="harness-mono">${resource.text}</pre>
169
+ </div>
170
+ `;
171
+ }
172
+ return html `
173
+ <a
174
+ class="resourceLink"
175
+ href=${`data:${resource.mimeType ?? 'application/octet-stream'};base64,${resource.blob ?? ''}`}
176
+ download
177
+ >
178
+ <dees-icon icon="lucide:FileDown" iconSize="16"></dees-icon>
179
+ <div class="resourceInfo">
180
+ <div class="resourceName">${resource.uri}</div>
181
+ <div class="resourceMeta">${resource.mimeType ?? 'binary resource'}</div>
182
+ </div>
183
+ </a>
184
+ `;
185
+ }
186
+ case 'resource_link':
187
+ return html `
188
+ <a class="resourceLink" href=${block.uri} target="_blank" rel="noopener noreferrer">
189
+ <dees-icon icon="lucide:Link" iconSize="16"></dees-icon>
190
+ <div class="resourceInfo">
191
+ <div class="resourceName">${block.title || block.name}</div>
192
+ <div class="resourceMeta">
193
+ ${[block.description, block.mimeType, block.size !== undefined ? harnessFormatBytes(block.size) : '']
194
+ .filter(Boolean)
195
+ .join(' · ') || block.uri}
196
+ </div>
197
+ </div>
198
+ </a>
199
+ `;
200
+ default:
201
+ return html ``;
202
+ }
203
+ }
204
+ constructor() {
205
+ super(...arguments);
206
+ __runInitializers(this, _blocks_extraInitializers);
207
+ }
208
+ static {
209
+ __runInitializers(_classThis, _classExtraInitializers);
210
+ }
211
+ };
212
+ return DeesHarnessContentBlocks = _classThis;
213
+ })();
214
+ export { DeesHarnessContentBlocks };
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNvbnRlbnQtYmxvY2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaGFybmVzcy9kZWVzLWhhcm5lc3MtY29udGVudC1ibG9ja3MvZGVlcy1oYXJuZXNzLWNvbnRlbnQtYmxvY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakUsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyw4Q0FBOEMsQ0FBQztBQVF0RDs7OztHQUlHO0lBRVUsd0JBQXdCOzRCQURwQyxhQUFhLENBQUMsNkJBQTZCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7Ozt3Q0FBbkIsU0FBUSxXQUFXOzs7O2tDQUl0RCxRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDL0IsdUtBQVMsTUFBTSw2QkFBTixNQUFNLHVGQUE4QjtZQUwvQyw2S0ErSUM7Ozs7UUE5SVEsTUFBTSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDdkIsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRzFDLHlFQUEwQyxFQUFFLEVBQUM7UUFBN0MsSUFBUyxNQUFNLDRDQUE4QjtRQUE3QyxJQUFTLE1BQU0sa0RBQThCO1FBRXRDLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsa0JBQWtCO1lBQ2xCLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLGlCQUFpQjtZQUNqQixHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTJFRjtTQUNGLENBQUM7UUFFSyxNQUFNO1lBQ1gsT0FBTyxJQUFJLENBQUEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEUsQ0FBQztRQUVPLFdBQVcsQ0FBQyxLQUEyQjtZQUM3QyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxNQUFNO29CQUNULE9BQU8sSUFBSSxDQUFBLDBCQUEwQixLQUFLLENBQUMsSUFBSSxRQUFRLENBQUM7Z0JBQzFELEtBQUssT0FBTztvQkFDVixPQUFPLElBQUksQ0FBQSxZQUFZLFFBQVEsS0FBSyxDQUFDLFFBQVEsV0FBVyxLQUFLLENBQUMsSUFBSSxFQUFFLDZCQUE2QixDQUFDO2dCQUNwRyxLQUFLLE9BQU87b0JBQ1YsT0FBTyxJQUFJLENBQUEsdUJBQXVCLFFBQVEsS0FBSyxDQUFDLFFBQVEsV0FBVyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQztnQkFDN0YsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO29CQUNoQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO29CQUNoQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7d0JBQ2hDLE9BQU8sSUFBSSxDQUFBOzt5Q0FFb0IsUUFBUSxDQUFDLEdBQUc7MENBQ1gsUUFBUSxDQUFDLElBQUk7O1dBRTVDLENBQUM7b0JBQ0osQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQTs7O21CQUdBLFFBQVEsUUFBUSxDQUFDLFFBQVEsSUFBSSwwQkFBMEIsV0FBVyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRTs7Ozs7MENBS2hFLFFBQVEsQ0FBQyxHQUFHOzBDQUNaLFFBQVEsQ0FBQyxRQUFRLElBQUksaUJBQWlCOzs7U0FHdkUsQ0FBQztnQkFDSixDQUFDO2dCQUNELEtBQUssZUFBZTtvQkFDbEIsT0FBTyxJQUFJLENBQUE7eUNBQ3NCLEtBQUssQ0FBQyxHQUFHOzs7MENBR1IsS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSTs7a0JBRWpELENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt5QkFDbEcsTUFBTSxDQUFDLE9BQU8sQ0FBQzt5QkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUc7Ozs7U0FJbEMsQ0FBQztnQkFDSjtvQkFDRSxPQUFPLElBQUksQ0FBQSxFQUFFLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUM7Ozs7OztZQTlJVSx1REFBd0I7Ozs7O1NBQXhCLHdCQUF3QiJ9
@@ -0,0 +1 @@
1
+ export * from './dees-harness-content-blocks.js';
@@ -0,0 +1,2 @@
1
+ export * from './dees-harness-content-blocks.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1oYXJuZXNzL2RlZXMtaGFybmVzcy1jb250ZW50LWJsb2Nrcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDIn0=
@@ -0,0 +1,58 @@
1
+ import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
2
+ import type { IHarnessMessage, IHarnessUsage } from '../interfaces.js';
3
+ import { DeesHarnessToolRegistry } from '../toolregistry.js';
4
+ import '../dees-harness-reasoning/dees-harness-reasoning.js';
5
+ import '../dees-harness-tool-card/dees-harness-tool-card.js';
6
+ import '../../00group-utility/dees-icon/dees-icon.js';
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'dees-harness-message': DeesHarnessMessage;
10
+ }
11
+ }
12
+ /**
13
+ * One conversation message. The `message` property object is the source of
14
+ * truth; the streaming fast path (`appendTextDelta` etc.) mutates that same
15
+ * object and re-renders only this element, so a later wholesale property
16
+ * re-assignment by the host is idempotent.
17
+ */
18
+ export declare class DeesHarnessMessage extends DeesElement {
19
+ static demo: () => TemplateResult<1>;
20
+ static demoGroups: string[];
21
+ accessor message: IHarnessMessage;
22
+ accessor showRole: boolean;
23
+ accessor showTimestamp: boolean;
24
+ /** parse markdown during streaming (throttled); plain text otherwise */
25
+ accessor markdownWhileStreaming: boolean;
26
+ accessor toolRegistry: DeesHarnessToolRegistry;
27
+ /**
28
+ * When true at first render, the entry animation is skipped permanently
29
+ * for this element (initial-batch rendering). Captured once in
30
+ * firstUpdated — later property changes must not restart the animation.
31
+ */
32
+ accessor suppressEntry: boolean;
33
+ accessor renderedMarkdownHtml: string;
34
+ static styles: import("@design.estate/dees-element").CSSResult[];
35
+ private markdownParseToken;
36
+ private lastParsedText;
37
+ private markdownThrottleTimeout;
38
+ private highlightJs;
39
+ get markdownActive(): boolean;
40
+ /** Appends a text delta, mutating the shared message object. */
41
+ appendTextDelta(delta: string): void;
42
+ /** Appends to (or creates) a reasoning part by id. */
43
+ appendReasoningDelta(partId: string, delta: string, startedAt?: number): void;
44
+ /** Marks a reasoning part as ended. */
45
+ endReasoning(partId: string, endedAt?: number): void;
46
+ /** Ends the stream: final markdown parse, usage/error attach. */
47
+ endStream(usage?: IHarnessUsage, error?: string): void;
48
+ render(): TemplateResult;
49
+ private renderText;
50
+ private renderAttachments;
51
+ firstUpdated(changedProperties: Map<string, any>): void;
52
+ updated(changedProperties: Map<string, any>): Promise<void>;
53
+ private scheduleThrottledParse;
54
+ private parseMarkdown;
55
+ /** Lazy hljs pass over rendered fences; runs only after the final parse. */
56
+ private highlightCodeFences;
57
+ disconnectedCallback(): Promise<void>;
58
+ }
@@ -0,0 +1 @@
1
+ export declare const demoFunc: () => import("@design.estate/dees-element").TemplateResult<1>;
@@ -0,0 +1,126 @@
1
+ import { html } from '@design.estate/dees-element';
2
+ const markdownSample = [
3
+ '## Findings',
4
+ '',
5
+ 'The failing test compares against a **stale fixture**. Two options:',
6
+ '',
7
+ '1. Regenerate the fixture from the current schema',
8
+ '2. Pin the schema version in the test setup',
9
+ '',
10
+ '| Option | Effort | Risk |',
11
+ '| --- | --- | --- |',
12
+ '| Regenerate | low | drifts again |',
13
+ '| Pin version | medium | stays honest |',
14
+ '',
15
+ '```typescript',
16
+ 'const fixture = await loadFixture({ schemaVersion: 3 });',
17
+ 'expect(result).toEqual(fixture);',
18
+ '```',
19
+ '',
20
+ 'I recommend pinning — see [the docs](https://example.com/docs).',
21
+ ].join('\n');
22
+ const streamSource = 'Let me look at the build output. The bundler resolved the entry, but the **css tokens** were emitted twice — once from the theme and once from the component. Deduplicating the emission fixes the double-border artifact you saw.';
23
+ const startStreamingDemo = (event) => {
24
+ const container = event.target.closest('.messageDemo');
25
+ const target = container?.querySelector('#streamingMessage');
26
+ if (!target)
27
+ return;
28
+ target.message = {
29
+ id: 'streaming-demo',
30
+ role: 'assistant',
31
+ text: '',
32
+ createdAt: Date.now(),
33
+ streaming: true,
34
+ };
35
+ target.requestUpdate();
36
+ let offset = 0;
37
+ const interval = setInterval(() => {
38
+ const chunk = streamSource.slice(offset, offset + 6);
39
+ offset += 6;
40
+ if (!chunk) {
41
+ clearInterval(interval);
42
+ target.endStream({ inputTokens: 412, outputTokens: 96, totalTokens: 508 });
43
+ return;
44
+ }
45
+ target.appendTextDelta(chunk);
46
+ }, 40);
47
+ };
48
+ export const demoFunc = () => html `
49
+ <style>
50
+ .messageDemo {
51
+ display: grid;
52
+ gap: 16px;
53
+ max-width: 720px;
54
+ margin: 40px auto;
55
+ padding: 24px;
56
+ border-radius: var(--dees-radius-xl);
57
+ background: var(--dees-color-bg-primary);
58
+ }
59
+ </style>
60
+ <div class="messageDemo">
61
+ <dees-harness-message
62
+ .message=${{
63
+ id: 'u1',
64
+ role: 'user',
65
+ text: 'Why does the badge render with a double border in dark mode?',
66
+ createdAt: Date.now() - 90_000,
67
+ attachments: [
68
+ {
69
+ id: 'a1',
70
+ name: 'screenshot.png',
71
+ mediaType: 'image/png',
72
+ size: 48_213,
73
+ kind: 'image',
74
+ },
75
+ {
76
+ id: 'a2',
77
+ name: 'build.log',
78
+ mediaType: 'text/plain',
79
+ size: 5_120,
80
+ kind: 'text',
81
+ truncated: true,
82
+ },
83
+ ],
84
+ }}
85
+ showTimestamp
86
+ ></dees-harness-message>
87
+ <dees-harness-message
88
+ .message=${{
89
+ id: 'a1',
90
+ role: 'assistant',
91
+ text: markdownSample,
92
+ createdAt: Date.now() - 60_000,
93
+ reasoning: [
94
+ {
95
+ id: 'r1',
96
+ text: 'Compare fixture timestamps against the schema migration dates first.',
97
+ startedAt: Date.now() - 64_000,
98
+ endedAt: Date.now() - 61_500,
99
+ },
100
+ ],
101
+ usage: { inputTokens: 1200, outputTokens: 340, totalTokens: 1540 },
102
+ }}
103
+ ></dees-harness-message>
104
+ <dees-harness-message
105
+ .message=${{
106
+ id: 'e1',
107
+ role: 'assistant',
108
+ text: '',
109
+ createdAt: Date.now() - 30_000,
110
+ error: 'The model endpoint returned 429 — retry in 20s.',
111
+ }}
112
+ ></dees-harness-message>
113
+ <dees-button @clicked=${startStreamingDemo}>Simulate streaming</dees-button>
114
+ <dees-harness-message
115
+ id="streamingMessage"
116
+ .message=${{
117
+ id: 'streaming-demo',
118
+ role: 'assistant',
119
+ text: 'Press “Simulate streaming” above.',
120
+ createdAt: Date.now(),
121
+ markdown: false,
122
+ }}
123
+ ></dees-harness-message>
124
+ </div>
125
+ `;
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLW1lc3NhZ2UuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLW1lc3NhZ2UvZGVlcy1oYXJuZXNzLW1lc3NhZ2UuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsTUFBTSxjQUFjLEdBQUc7SUFDckIsYUFBYTtJQUNiLEVBQUU7SUFDRixxRUFBcUU7SUFDckUsRUFBRTtJQUNGLG1EQUFtRDtJQUNuRCw2Q0FBNkM7SUFDN0MsRUFBRTtJQUNGLDRCQUE0QjtJQUM1QixxQkFBcUI7SUFDckIscUNBQXFDO0lBQ3JDLHlDQUF5QztJQUN6QyxFQUFFO0lBQ0YsZUFBZTtJQUNmLDBEQUEwRDtJQUMxRCxrQ0FBa0M7SUFDbEMsS0FBSztJQUNMLEVBQUU7SUFDRixpRUFBaUU7Q0FDbEUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFYixNQUFNLFlBQVksR0FBRyxvT0FBb08sQ0FBQztBQUUxUCxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQy9DLE1BQU0sU0FBUyxHQUFJLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4RSxNQUFNLE1BQU0sR0FBRyxTQUFTLEVBQUUsYUFBYSxDQUFxQixtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pGLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTztJQUNwQixNQUFNLENBQUMsT0FBTyxHQUFHO1FBQ2YsRUFBRSxFQUFFLGdCQUFnQjtRQUNwQixJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3JCLFNBQVMsRUFBRSxJQUFJO0tBQ2hCLENBQUM7SUFD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