@aceshooting/lyra-ui 5.0.0 → 5.1.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 (636) hide show
  1. package/README.md +30 -12
  2. package/custom-elements.json +2150 -220
  3. package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +2 -0
  4. package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts.map +1 -1
  5. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +2 -0
  6. package/dist/components/agent-tools/activity-feed/activity-feed.class.js.map +1 -1
  7. package/dist/components/agent-tools/agent-run/agent-run.class.d.ts +1 -0
  8. package/dist/components/agent-tools/agent-run/agent-run.class.d.ts.map +1 -1
  9. package/dist/components/agent-tools/agent-run/agent-run.class.js +1 -0
  10. package/dist/components/agent-tools/agent-run/agent-run.class.js.map +1 -1
  11. package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -0
  12. package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts.map +1 -1
  13. package/dist/components/agent-tools/compare-panel/compare-panel.class.js +2 -0
  14. package/dist/components/agent-tools/compare-panel/compare-panel.class.js.map +1 -1
  15. package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +5 -0
  16. package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts.map +1 -1
  17. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +5 -0
  18. package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
  19. package/dist/components/agent-tools/terminal/terminal.class.d.ts +3 -0
  20. package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
  21. package/dist/components/agent-tools/terminal/terminal.class.js +3 -0
  22. package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
  23. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts +2 -0
  24. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts.map +1 -1
  25. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +2 -0
  26. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js.map +1 -1
  27. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +2 -0
  28. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
  29. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +2 -0
  30. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
  31. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +3 -0
  32. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts.map +1 -1
  33. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +3 -0
  34. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js.map +1 -1
  35. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +1 -0
  36. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts.map +1 -1
  37. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -0
  38. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js.map +1 -1
  39. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +1 -0
  40. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
  41. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +1 -0
  42. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js.map +1 -1
  43. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +2 -0
  44. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts.map +1 -1
  45. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +2 -0
  46. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js.map +1 -1
  47. package/dist/components/charts/chart/chart.class.d.ts +15 -0
  48. package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
  49. package/dist/components/charts/chart/chart.class.js +15 -0
  50. package/dist/components/charts/chart/chart.class.js.map +1 -1
  51. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +2 -0
  52. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts.map +1 -1
  53. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +2 -0
  54. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js.map +1 -1
  55. package/dist/components/conversation/branch-picker/branch-picker.class.d.ts +2 -0
  56. package/dist/components/conversation/branch-picker/branch-picker.class.d.ts.map +1 -1
  57. package/dist/components/conversation/branch-picker/branch-picker.class.js +2 -0
  58. package/dist/components/conversation/branch-picker/branch-picker.class.js.map +1 -1
  59. package/dist/components/conversation/chat-message/chat-message.class.d.ts +5 -1
  60. package/dist/components/conversation/chat-message/chat-message.class.d.ts.map +1 -1
  61. package/dist/components/conversation/chat-message/chat-message.class.js +5 -1
  62. package/dist/components/conversation/chat-message/chat-message.class.js.map +1 -1
  63. package/dist/components/conversation/chat-message/chat-message.styles.d.ts.map +1 -1
  64. package/dist/components/conversation/chat-message/chat-message.styles.js +15 -2
  65. package/dist/components/conversation/chat-message/chat-message.styles.js.map +1 -1
  66. package/dist/components/conversation/code-block/code-block.class.d.ts +4 -0
  67. package/dist/components/conversation/code-block/code-block.class.d.ts.map +1 -1
  68. package/dist/components/conversation/code-block/code-block.class.js +4 -0
  69. package/dist/components/conversation/code-block/code-block.class.js.map +1 -1
  70. package/dist/components/conversation/conversation-item/conversation-item.class.d.ts +2 -0
  71. package/dist/components/conversation/conversation-item/conversation-item.class.d.ts.map +1 -1
  72. package/dist/components/conversation/conversation-item/conversation-item.class.js +2 -0
  73. package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
  74. package/dist/components/conversation/markdown/markdown.class.d.ts +2 -0
  75. package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
  76. package/dist/components/conversation/markdown/markdown.class.js +2 -0
  77. package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
  78. package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts +2 -0
  79. package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts.map +1 -1
  80. package/dist/components/conversation/push-to-talk/push-to-talk.class.js +2 -0
  81. package/dist/components/conversation/push-to-talk/push-to-talk.class.js.map +1 -1
  82. package/dist/components/conversation/stream-status/stream-status.class.d.ts +5 -0
  83. package/dist/components/conversation/stream-status/stream-status.class.d.ts.map +1 -1
  84. package/dist/components/conversation/stream-status/stream-status.class.js +5 -0
  85. package/dist/components/conversation/stream-status/stream-status.class.js.map +1 -1
  86. package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +2 -0
  87. package/dist/components/conversation/streaming-text/streaming-text.class.d.ts.map +1 -1
  88. package/dist/components/conversation/streaming-text/streaming-text.class.js +2 -0
  89. package/dist/components/conversation/streaming-text/streaming-text.class.js.map +1 -1
  90. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +1 -0
  91. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts.map +1 -1
  92. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -0
  93. package/dist/components/conversation/transcript-feed/transcript-feed.class.js.map +1 -1
  94. package/dist/components/data/calendar/calendar.class.d.ts +6 -0
  95. package/dist/components/data/calendar/calendar.class.d.ts.map +1 -1
  96. package/dist/components/data/calendar/calendar.class.js +6 -0
  97. package/dist/components/data/calendar/calendar.class.js.map +1 -1
  98. package/dist/components/data/context-meter/context-meter.class.d.ts +1 -0
  99. package/dist/components/data/context-meter/context-meter.class.d.ts.map +1 -1
  100. package/dist/components/data/context-meter/context-meter.class.js +1 -0
  101. package/dist/components/data/context-meter/context-meter.class.js.map +1 -1
  102. package/dist/components/data/data-grid/data-grid.class.d.ts +1 -0
  103. package/dist/components/data/data-grid/data-grid.class.d.ts.map +1 -1
  104. package/dist/components/data/data-grid/data-grid.class.js +1 -0
  105. package/dist/components/data/data-grid/data-grid.class.js.map +1 -1
  106. package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +3 -1
  107. package/dist/components/data/flow-canvas/flow-canvas.class.d.ts.map +1 -1
  108. package/dist/components/data/flow-canvas/flow-canvas.class.js +3 -1
  109. package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
  110. package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +2 -2
  111. package/dist/components/data/flow-minimap/flow-minimap.class.js +2 -2
  112. package/dist/components/data/flow-node/flow-node.class.d.ts +1 -1
  113. package/dist/components/data/flow-node/flow-node.class.js +1 -1
  114. package/dist/components/data/heatmap/heatmap.class.d.ts +51 -2
  115. package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
  116. package/dist/components/data/heatmap/heatmap.class.js +42 -6
  117. package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
  118. package/dist/components/data/heatmap/heatmap.styles.d.ts.map +1 -1
  119. package/dist/components/data/heatmap/heatmap.styles.js +19 -0
  120. package/dist/components/data/heatmap/heatmap.styles.js.map +1 -1
  121. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +20 -0
  122. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts.map +1 -1
  123. package/dist/components/data/sequence-strip/sequence-strip.class.js +35 -0
  124. package/dist/components/data/sequence-strip/sequence-strip.class.js.map +1 -1
  125. package/dist/components/data/sequence-strip/sequence-strip.styles.d.ts.map +1 -1
  126. package/dist/components/data/sequence-strip/sequence-strip.styles.js +29 -0
  127. package/dist/components/data/sequence-strip/sequence-strip.styles.js.map +1 -1
  128. package/dist/components/data/table/table.class.d.ts +11 -0
  129. package/dist/components/data/table/table.class.d.ts.map +1 -1
  130. package/dist/components/data/table/table.class.js +11 -0
  131. package/dist/components/data/table/table.class.js.map +1 -1
  132. package/dist/components/data/timeline/timeline-item.class.d.ts +17 -0
  133. package/dist/components/data/timeline/timeline-item.class.d.ts.map +1 -1
  134. package/dist/components/data/timeline/timeline-item.class.js +17 -0
  135. package/dist/components/data/timeline/timeline-item.class.js.map +1 -1
  136. package/dist/components/data/timeline/timeline.styles.d.ts.map +1 -1
  137. package/dist/components/data/timeline/timeline.styles.js +6 -3
  138. package/dist/components/data/timeline/timeline.styles.js.map +1 -1
  139. package/dist/components/data/tree/tree-node.class.d.ts +3 -0
  140. package/dist/components/data/tree/tree-node.class.d.ts.map +1 -1
  141. package/dist/components/data/tree/tree-node.class.js +3 -0
  142. package/dist/components/data/tree/tree-node.class.js.map +1 -1
  143. package/dist/components/forms/button/button.class.d.ts +24 -0
  144. package/dist/components/forms/button/button.class.d.ts.map +1 -1
  145. package/dist/components/forms/button/button.class.js +24 -0
  146. package/dist/components/forms/button/button.class.js.map +1 -1
  147. package/dist/components/forms/code-editor/code-editor.class.d.ts +28 -12
  148. package/dist/components/forms/code-editor/code-editor.class.d.ts.map +1 -1
  149. package/dist/components/forms/code-editor/code-editor.class.js +44 -14
  150. package/dist/components/forms/code-editor/code-editor.class.js.map +1 -1
  151. package/dist/components/forms/code-editor/code-editor.styles.d.ts.map +1 -1
  152. package/dist/components/forms/code-editor/code-editor.styles.js +4 -0
  153. package/dist/components/forms/code-editor/code-editor.styles.js.map +1 -1
  154. package/dist/components/forms/combobox/combobox.class.d.ts +10 -0
  155. package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
  156. package/dist/components/forms/combobox/combobox.class.js +16 -0
  157. package/dist/components/forms/combobox/combobox.class.js.map +1 -1
  158. package/dist/components/forms/combobox/option.class.d.ts +3 -3
  159. package/dist/components/forms/combobox/option.class.d.ts.map +1 -1
  160. package/dist/components/forms/combobox/option.class.js +9 -0
  161. package/dist/components/forms/combobox/option.class.js.map +1 -1
  162. package/dist/components/forms/date-picker/date-input.class.d.ts +3 -0
  163. package/dist/components/forms/date-picker/date-input.class.d.ts.map +1 -1
  164. package/dist/components/forms/date-picker/date-input.class.js +3 -0
  165. package/dist/components/forms/date-picker/date-input.class.js.map +1 -1
  166. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +37 -2
  167. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts.map +1 -1
  168. package/dist/components/forms/emoji-picker/emoji-picker.class.js +113 -10
  169. package/dist/components/forms/emoji-picker/emoji-picker.class.js.map +1 -1
  170. package/dist/components/forms/emoji-picker/emoji-picker.styles.d.ts.map +1 -1
  171. package/dist/components/forms/emoji-picker/emoji-picker.styles.js +30 -0
  172. package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
  173. package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -0
  174. package/dist/components/forms/icon-button/icon-button.class.d.ts.map +1 -1
  175. package/dist/components/forms/icon-button/icon-button.class.js +4 -0
  176. package/dist/components/forms/icon-button/icon-button.class.js.map +1 -1
  177. package/dist/components/forms/input/input.class.d.ts +11 -3
  178. package/dist/components/forms/input/input.class.d.ts.map +1 -1
  179. package/dist/components/forms/input/input.class.js +3 -0
  180. package/dist/components/forms/input/input.class.js.map +1 -1
  181. package/dist/components/forms/input/time-input.class.d.ts +12 -0
  182. package/dist/components/forms/input/time-input.class.d.ts.map +1 -1
  183. package/dist/components/forms/input/time-input.class.js +27 -0
  184. package/dist/components/forms/input/time-input.class.js.map +1 -1
  185. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +7 -0
  186. package/dist/components/forms/rubric-form/rubric-form.class.d.ts.map +1 -1
  187. package/dist/components/forms/rubric-form/rubric-form.class.js +7 -0
  188. package/dist/components/forms/rubric-form/rubric-form.class.js.map +1 -1
  189. package/dist/components/forms/select/select.class.d.ts +8 -0
  190. package/dist/components/forms/select/select.class.d.ts.map +1 -1
  191. package/dist/components/forms/select/select.class.js +8 -0
  192. package/dist/components/forms/select/select.class.js.map +1 -1
  193. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +1 -1
  194. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  195. package/dist/components/forms/switch/switch.class.d.ts +6 -0
  196. package/dist/components/forms/switch/switch.class.d.ts.map +1 -1
  197. package/dist/components/forms/switch/switch.class.js +6 -0
  198. package/dist/components/forms/switch/switch.class.js.map +1 -1
  199. package/dist/components/forms/token-input/token-input.class.d.ts +2 -0
  200. package/dist/components/forms/token-input/token-input.class.d.ts.map +1 -1
  201. package/dist/components/forms/token-input/token-input.class.js +2 -0
  202. package/dist/components/forms/token-input/token-input.class.js.map +1 -1
  203. package/dist/components/layout/app-rail/app-rail.class.d.ts +8 -0
  204. package/dist/components/layout/app-rail/app-rail.class.d.ts.map +1 -1
  205. package/dist/components/layout/app-rail/app-rail.class.js +8 -0
  206. package/dist/components/layout/app-rail/app-rail.class.js.map +1 -1
  207. package/dist/components/layout/button-group/button-group.class.d.ts +1 -1
  208. package/dist/components/layout/button-group/button-group.class.js +1 -1
  209. package/dist/components/layout/command-palette/command-palette.class.d.ts +12 -0
  210. package/dist/components/layout/command-palette/command-palette.class.d.ts.map +1 -1
  211. package/dist/components/layout/command-palette/command-palette.class.js +12 -0
  212. package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
  213. package/dist/components/layout/control-group/control-group.class.d.ts +1 -1
  214. package/dist/components/layout/control-group/control-group.class.js +1 -1
  215. package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +7 -0
  216. package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
  217. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +7 -0
  218. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
  219. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +3 -0
  220. package/dist/components/layout/dock-panel/dock-panel.class.d.ts.map +1 -1
  221. package/dist/components/layout/dock-panel/dock-panel.class.js +3 -0
  222. package/dist/components/layout/dock-panel/dock-panel.class.js.map +1 -1
  223. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +2 -0
  224. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts.map +1 -1
  225. package/dist/components/layout/responsive-panel/responsive-panel.class.js +2 -0
  226. package/dist/components/layout/responsive-panel/responsive-panel.class.js.map +1 -1
  227. package/dist/components/layout/scroller/scroller.class.d.ts +2 -2
  228. package/dist/components/layout/scroller/scroller.class.js +2 -2
  229. package/dist/components/layout/segmented/segmented.class.d.ts +6 -0
  230. package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
  231. package/dist/components/layout/segmented/segmented.class.js +6 -0
  232. package/dist/components/layout/segmented/segmented.class.js.map +1 -1
  233. package/dist/components/layout/split/split.class.d.ts +68 -15
  234. package/dist/components/layout/split/split.class.d.ts.map +1 -1
  235. package/dist/components/layout/split/split.class.js +80 -21
  236. package/dist/components/layout/split/split.class.js.map +1 -1
  237. package/dist/components/layout/stepper/stepper.class.d.ts +52 -11
  238. package/dist/components/layout/stepper/stepper.class.d.ts.map +1 -1
  239. package/dist/components/layout/stepper/stepper.class.js +69 -17
  240. package/dist/components/layout/stepper/stepper.class.js.map +1 -1
  241. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +3 -0
  242. package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
  243. package/dist/components/layout/virtual-list/virtual-list.class.js +3 -0
  244. package/dist/components/layout/virtual-list/virtual-list.class.js.map +1 -1
  245. package/dist/components/layout/widget/widget.class.d.ts +6 -0
  246. package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
  247. package/dist/components/layout/widget/widget.class.js +6 -0
  248. package/dist/components/layout/widget/widget.class.js.map +1 -1
  249. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +13 -0
  250. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts.map +1 -1
  251. package/dist/components/media/attachment-chip/attachment-chip.class.js +13 -0
  252. package/dist/components/media/attachment-chip/attachment-chip.class.js.map +1 -1
  253. package/dist/components/media/avatar/avatar.class.d.ts +6 -0
  254. package/dist/components/media/avatar/avatar.class.d.ts.map +1 -1
  255. package/dist/components/media/avatar/avatar.class.js +6 -0
  256. package/dist/components/media/avatar/avatar.class.js.map +1 -1
  257. package/dist/components/media/media-card/media-card.class.d.ts +2 -0
  258. package/dist/components/media/media-card/media-card.class.d.ts.map +1 -1
  259. package/dist/components/media/media-card/media-card.class.js +2 -0
  260. package/dist/components/media/media-card/media-card.class.js.map +1 -1
  261. package/dist/components/media/playback/playback.class.d.ts +2 -0
  262. package/dist/components/media/playback/playback.class.d.ts.map +1 -1
  263. package/dist/components/media/playback/playback.class.js +2 -0
  264. package/dist/components/media/playback/playback.class.js.map +1 -1
  265. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -0
  266. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
  267. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +3 -0
  268. package/dist/components/media/zoomable-frame/zoomable-frame.class.js.map +1 -1
  269. package/dist/components/overlays/badge/badge.class.d.ts +6 -0
  270. package/dist/components/overlays/badge/badge.class.d.ts.map +1 -1
  271. package/dist/components/overlays/badge/badge.class.js +6 -0
  272. package/dist/components/overlays/badge/badge.class.js.map +1 -1
  273. package/dist/components/overlays/callout/callout.class.d.ts +6 -0
  274. package/dist/components/overlays/callout/callout.class.d.ts.map +1 -1
  275. package/dist/components/overlays/callout/callout.class.js +6 -0
  276. package/dist/components/overlays/callout/callout.class.js.map +1 -1
  277. package/dist/components/overlays/chip/chip.class.d.ts +18 -0
  278. package/dist/components/overlays/chip/chip.class.d.ts.map +1 -1
  279. package/dist/components/overlays/chip/chip.class.js +18 -0
  280. package/dist/components/overlays/chip/chip.class.js.map +1 -1
  281. package/dist/components/overlays/dialog/dialog.class.d.ts +6 -0
  282. package/dist/components/overlays/dialog/dialog.class.d.ts.map +1 -1
  283. package/dist/components/overlays/dialog/dialog.class.js +6 -0
  284. package/dist/components/overlays/dialog/dialog.class.js.map +1 -1
  285. package/dist/components/overlays/drawer/drawer.class.d.ts +6 -0
  286. package/dist/components/overlays/drawer/drawer.class.d.ts.map +1 -1
  287. package/dist/components/overlays/drawer/drawer.class.js +6 -0
  288. package/dist/components/overlays/drawer/drawer.class.js.map +1 -1
  289. package/dist/components/overlays/progress/progress-ring.class.d.ts +1 -0
  290. package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
  291. package/dist/components/overlays/progress/progress-ring.class.js +1 -0
  292. package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
  293. package/dist/components/overlays/skeleton/skeleton.class.d.ts +2 -0
  294. package/dist/components/overlays/skeleton/skeleton.class.d.ts.map +1 -1
  295. package/dist/components/overlays/skeleton/skeleton.class.js +2 -0
  296. package/dist/components/overlays/skeleton/skeleton.class.js.map +1 -1
  297. package/dist/components/overlays/spinner/spinner.class.d.ts +4 -0
  298. package/dist/components/overlays/spinner/spinner.class.d.ts.map +1 -1
  299. package/dist/components/overlays/spinner/spinner.class.js +4 -0
  300. package/dist/components/overlays/spinner/spinner.class.js.map +1 -1
  301. package/dist/components/overlays/toast/toast-item.class.d.ts +11 -0
  302. package/dist/components/overlays/toast/toast-item.class.d.ts.map +1 -1
  303. package/dist/components/overlays/toast/toast-item.class.js +11 -0
  304. package/dist/components/overlays/toast/toast-item.class.js.map +1 -1
  305. package/dist/components/overlays/toast/toast.class.d.ts +15 -0
  306. package/dist/components/overlays/toast/toast.class.d.ts.map +1 -1
  307. package/dist/components/overlays/toast/toast.class.js +15 -0
  308. package/dist/components/overlays/toast/toast.class.js.map +1 -1
  309. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +8 -0
  310. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts.map +1 -1
  311. package/dist/components/retrieval/citation-badge/citation-badge.class.js +8 -0
  312. package/dist/components/retrieval/citation-badge/citation-badge.class.js.map +1 -1
  313. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +1 -0
  314. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts.map +1 -1
  315. package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -0
  316. package/dist/components/retrieval/entity-chip/entity-chip.class.js.map +1 -1
  317. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +2 -0
  318. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts.map +1 -1
  319. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +2 -0
  320. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js.map +1 -1
  321. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +1 -0
  322. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts.map +1 -1
  323. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -0
  324. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js.map +1 -1
  325. package/dist/components/utility/diff-view/diff-view.class.d.ts +1 -0
  326. package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
  327. package/dist/components/utility/diff-view/diff-view.class.js +1 -0
  328. package/dist/components/utility/diff-view/diff-view.class.js.map +1 -1
  329. package/dist/components/utility/icon/icon.class.d.ts +1 -0
  330. package/dist/components/utility/icon/icon.class.d.ts.map +1 -1
  331. package/dist/components/utility/icon/icon.class.js +1 -0
  332. package/dist/components/utility/icon/icon.class.js.map +1 -1
  333. package/dist/components/utility/json-viewer/json-viewer.class.d.ts +3 -0
  334. package/dist/components/utility/json-viewer/json-viewer.class.d.ts.map +1 -1
  335. package/dist/components/utility/json-viewer/json-viewer.class.js +3 -0
  336. package/dist/components/utility/json-viewer/json-viewer.class.js.map +1 -1
  337. package/dist/components/utility/known-date/known-date.class.d.ts +11 -0
  338. package/dist/components/utility/known-date/known-date.class.d.ts.map +1 -1
  339. package/dist/components/utility/known-date/known-date.class.js +11 -0
  340. package/dist/components/utility/known-date/known-date.class.js.map +1 -1
  341. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +2 -0
  342. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
  343. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +2 -0
  344. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js.map +1 -1
  345. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +5 -0
  346. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
  347. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +5 -0
  348. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
  349. package/dist/components/viewers/document-compare/document-compare.class.d.ts +1 -1
  350. package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
  351. package/dist/components/viewers/document-preview/document-preview.class.d.ts +3 -0
  352. package/dist/components/viewers/document-preview/document-preview.class.d.ts.map +1 -1
  353. package/dist/components/viewers/document-preview/document-preview.class.js +3 -0
  354. package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
  355. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +2 -0
  356. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
  357. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -0
  358. package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
  359. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +2 -0
  360. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts.map +1 -1
  361. package/dist/components/viewers/html-viewer/html-viewer.class.js +2 -0
  362. package/dist/components/viewers/html-viewer/html-viewer.class.js.map +1 -1
  363. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
  364. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +41 -9
  365. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
  366. package/dist/internal/css-length.d.ts +40 -0
  367. package/dist/internal/css-length.d.ts.map +1 -0
  368. package/dist/internal/css-length.js +72 -0
  369. package/dist/internal/css-length.js.map +1 -0
  370. package/dist/internal/orientation-breakpoint.d.ts +12 -0
  371. package/dist/internal/orientation-breakpoint.d.ts.map +1 -0
  372. package/dist/internal/orientation-breakpoint.js +127 -0
  373. package/dist/internal/orientation-breakpoint.js.map +1 -0
  374. package/dist/lyra.d.ts +2 -2
  375. package/dist/lyra.d.ts.map +1 -1
  376. package/dist/lyra.js.map +1 -1
  377. package/llms/components/lr-accordion-item.md +23 -0
  378. package/llms/components/lr-accordion.md +23 -0
  379. package/llms/components/lr-activity-feed.md +45 -0
  380. package/llms/components/lr-agent-run.md +66 -0
  381. package/llms/components/lr-agent-trace.md +42 -0
  382. package/llms/components/lr-agent-workspace.md +109 -0
  383. package/llms/components/lr-animated-image.md +66 -0
  384. package/llms/components/lr-animation.md +73 -0
  385. package/llms/components/lr-app-rail-item.md +218 -0
  386. package/llms/components/lr-app-rail.md +218 -0
  387. package/llms/components/lr-archive-viewer.md +36 -0
  388. package/llms/components/lr-artifact-panel.md +60 -0
  389. package/llms/components/lr-attachment-chip.md +131 -0
  390. package/llms/components/lr-attachment-trigger.md +90 -0
  391. package/llms/components/lr-audio-visualizer.md +43 -0
  392. package/llms/components/lr-av-player.md +50 -0
  393. package/llms/components/lr-avatar-group.md +69 -0
  394. package/llms/components/lr-avatar.md +69 -0
  395. package/llms/components/lr-badge.md +25 -0
  396. package/llms/components/lr-bar-chart.md +70 -0
  397. package/llms/components/lr-box-plot.md +67 -0
  398. package/llms/components/lr-branch-picker.md +32 -0
  399. package/llms/components/lr-breadcrumb-item.md +30 -0
  400. package/llms/components/lr-breadcrumb.md +30 -0
  401. package/llms/components/lr-browser-frame.md +51 -0
  402. package/llms/components/lr-bubble-chart.md +70 -0
  403. package/llms/components/lr-button-group.md +30 -0
  404. package/llms/components/lr-button.md +89 -0
  405. package/llms/components/lr-calendar-viewer.md +32 -0
  406. package/llms/components/lr-calendar.md +52 -0
  407. package/llms/components/lr-callout.md +37 -0
  408. package/llms/components/lr-card.md +67 -0
  409. package/llms/components/lr-carousel-item.md +29 -0
  410. package/llms/components/lr-carousel.md +43 -0
  411. package/llms/components/lr-chart.md +148 -0
  412. package/llms/components/lr-chat-composer.md +139 -0
  413. package/llms/components/lr-chat-message.md +145 -0
  414. package/llms/components/lr-chat-viewport.md +70 -0
  415. package/llms/components/lr-checkbox-group.md +21 -0
  416. package/llms/components/lr-checkbox.md +79 -0
  417. package/llms/components/lr-checkpoint.md +48 -0
  418. package/llms/components/lr-chip-group.md +152 -0
  419. package/llms/components/lr-chip.md +152 -0
  420. package/llms/components/lr-chunk-inspector.md +66 -0
  421. package/llms/components/lr-citation-badge.md +102 -0
  422. package/llms/components/lr-code-block-core.md +113 -0
  423. package/llms/components/lr-code-block.md +146 -0
  424. package/llms/components/lr-code-editor.md +72 -0
  425. package/llms/components/lr-color-picker.md +21 -0
  426. package/llms/components/lr-combobox.md +196 -0
  427. package/llms/components/lr-command-palette.md +50 -0
  428. package/llms/components/lr-commit-card.md +33 -0
  429. package/llms/components/lr-community-card.md +54 -0
  430. package/llms/components/lr-compare-panel.md +38 -0
  431. package/llms/components/lr-confirm-bar.md +48 -0
  432. package/llms/components/lr-contact-viewer.md +34 -0
  433. package/llms/components/lr-context-inspector.md +50 -0
  434. package/llms/components/lr-context-meter.md +92 -0
  435. package/llms/components/lr-control-group.md +46 -0
  436. package/llms/components/lr-conversation-item.md +118 -0
  437. package/llms/components/lr-copy-button.md +52 -0
  438. package/llms/components/lr-csv-viewer.md +49 -0
  439. package/llms/components/lr-dashboard-grid.md +34 -0
  440. package/llms/components/lr-data-grid.md +47 -0
  441. package/llms/components/lr-dataset-viewer.md +60 -0
  442. package/llms/components/lr-date-input.md +201 -0
  443. package/llms/components/lr-date-picker.md +201 -0
  444. package/llms/components/lr-details.md +23 -0
  445. package/llms/components/lr-dialog.md +185 -0
  446. package/llms/components/lr-diff-view.md +86 -0
  447. package/llms/components/lr-divider.md +28 -0
  448. package/llms/components/lr-dock-panel.md +110 -0
  449. package/llms/components/lr-document-compare.md +22 -0
  450. package/llms/components/lr-document-library.md +21 -0
  451. package/llms/components/lr-document-preview.md +179 -0
  452. package/llms/components/lr-document-viewer.md +84 -0
  453. package/llms/components/lr-docx-viewer.md +63 -0
  454. package/llms/components/lr-doughnut-chart.md +70 -0
  455. package/llms/components/lr-drawer.md +48 -0
  456. package/llms/components/lr-drilldown-panel.md +25 -0
  457. package/llms/components/lr-dropdown-item.md +171 -0
  458. package/llms/components/lr-dropdown.md +24 -0
  459. package/llms/components/lr-ebook-viewer.md +60 -0
  460. package/llms/components/lr-email-viewer.md +51 -0
  461. package/llms/components/lr-emoji-picker.md +71 -0
  462. package/llms/components/lr-empty.md +56 -0
  463. package/llms/components/lr-entity-card.md +64 -0
  464. package/llms/components/lr-entity-chip.md +50 -0
  465. package/llms/components/lr-entity-dossier.md +71 -0
  466. package/llms/components/lr-env-list.md +27 -0
  467. package/llms/components/lr-eval-dataset.md +45 -0
  468. package/llms/components/lr-eval-result.md +45 -0
  469. package/llms/components/lr-evaluation-run.md +50 -0
  470. package/llms/components/lr-export-button.md +104 -0
  471. package/llms/components/lr-file-icon.md +34 -0
  472. package/llms/components/lr-file-input.md +104 -0
  473. package/llms/components/lr-file-tree.md +29 -0
  474. package/llms/components/lr-filter-bar.md +20 -0
  475. package/llms/components/lr-flag.md +122 -0
  476. package/llms/components/lr-flow-canvas.md +112 -0
  477. package/llms/components/lr-flow-controls.md +47 -0
  478. package/llms/components/lr-flow-minimap.md +52 -0
  479. package/llms/components/lr-flow-node.md +56 -0
  480. package/llms/components/lr-flow-run-overlay.md +56 -0
  481. package/llms/components/lr-format-bytes.md +31 -0
  482. package/llms/components/lr-format-date.md +33 -0
  483. package/llms/components/lr-format-number.md +41 -0
  484. package/llms/components/lr-gauge.md +65 -0
  485. package/llms/components/lr-generation-status.md +105 -0
  486. package/llms/components/lr-geojson-view.md +43 -0
  487. package/llms/components/lr-graph-legend.md +64 -0
  488. package/llms/components/lr-graph-query-builder.md +27 -0
  489. package/llms/components/lr-graph.md +224 -0
  490. package/llms/components/lr-grounding-summary.md +57 -0
  491. package/llms/components/lr-handoff-divider.md +27 -0
  492. package/llms/components/lr-heatmap.md +232 -0
  493. package/llms/components/lr-highlight-layer.md +31 -0
  494. package/llms/components/lr-histogram.md +69 -0
  495. package/llms/components/lr-html-viewer.md +30 -0
  496. package/llms/components/lr-icon-button.md +39 -0
  497. package/llms/components/lr-icon.md +36 -0
  498. package/llms/components/lr-image-comparer.md +38 -0
  499. package/llms/components/lr-image-viewer.md +35 -0
  500. package/llms/components/lr-include.md +53 -0
  501. package/llms/components/lr-ingestion-queue.md +60 -0
  502. package/llms/components/lr-input.md +82 -0
  503. package/llms/components/lr-intersection-observer.md +25 -0
  504. package/llms/components/lr-json-viewer.md +98 -0
  505. package/llms/components/lr-kbd.md +74 -0
  506. package/llms/components/lr-knowledge-base.md +64 -0
  507. package/llms/components/lr-knowledge-graph-explorer.md +92 -0
  508. package/llms/components/lr-known-date.md +84 -0
  509. package/llms/components/lr-lightbox.md +79 -0
  510. package/llms/components/lr-line-chart.md +70 -0
  511. package/llms/components/lr-lite-chart.md +143 -0
  512. package/llms/components/lr-live-region.md +105 -0
  513. package/llms/components/lr-map.md +127 -0
  514. package/llms/components/lr-markdown-core.md +70 -0
  515. package/llms/components/lr-markdown.md +171 -0
  516. package/llms/components/lr-media-card.md +106 -0
  517. package/llms/components/lr-memory-panel.md +67 -0
  518. package/llms/components/lr-mention-popover.md +139 -0
  519. package/llms/components/lr-menu-item.md +171 -0
  520. package/llms/components/lr-menu.md +171 -0
  521. package/llms/components/lr-message-actions.md +48 -0
  522. package/llms/components/lr-message-feedback.md +37 -0
  523. package/llms/components/lr-mind-map.md +64 -0
  524. package/llms/components/lr-model-select.md +144 -0
  525. package/llms/components/lr-model-settings-panel.md +99 -0
  526. package/llms/components/lr-mutation-observer.md +27 -0
  527. package/llms/components/lr-neighbor-list.md +56 -0
  528. package/llms/components/lr-node-palette.md +67 -0
  529. package/llms/components/lr-notebook-viewer.md +65 -0
  530. package/llms/components/lr-number-input.md +44 -0
  531. package/llms/components/lr-option.md +196 -0
  532. package/llms/components/lr-page-rail.md +37 -0
  533. package/llms/components/lr-pagination.md +88 -0
  534. package/llms/components/lr-path-strip.md +55 -0
  535. package/llms/components/lr-pdf-viewer.md +78 -0
  536. package/llms/components/lr-phone-input.md +162 -0
  537. package/llms/components/lr-pie-chart.md +70 -0
  538. package/llms/components/lr-playback.md +74 -0
  539. package/llms/components/lr-polar-area-chart.md +70 -0
  540. package/llms/components/lr-policy-summary.md +33 -0
  541. package/llms/components/lr-poll-status.md +71 -0
  542. package/llms/components/lr-popover.md +31 -0
  543. package/llms/components/lr-pptx-viewer.md +35 -0
  544. package/llms/components/lr-progress-bar.md +22 -0
  545. package/llms/components/lr-progress-ring.md +26 -0
  546. package/llms/components/lr-provenance-panel.md +58 -0
  547. package/llms/components/lr-push-to-talk.md +50 -0
  548. package/llms/components/lr-qr-code.md +20 -0
  549. package/llms/components/lr-query-builder.md +21 -0
  550. package/llms/components/lr-radar-chart.md +70 -0
  551. package/llms/components/lr-radio-group.md +25 -0
  552. package/llms/components/lr-radio.md +31 -0
  553. package/llms/components/lr-random-content.md +62 -0
  554. package/llms/components/lr-rating.md +21 -0
  555. package/llms/components/lr-relative-time.md +31 -0
  556. package/llms/components/lr-resize-observer.md +25 -0
  557. package/llms/components/lr-responsive-panel.md +112 -0
  558. package/llms/components/lr-result-card.md +88 -0
  559. package/llms/components/lr-result-field.md +88 -0
  560. package/llms/components/lr-retrieval-results.md +84 -0
  561. package/llms/components/lr-retrieval-search.md +70 -0
  562. package/llms/components/lr-retrieval-trace.md +59 -0
  563. package/llms/components/lr-rubric-form.md +37 -0
  564. package/llms/components/lr-scatter-chart.md +70 -0
  565. package/llms/components/lr-scroller.md +47 -0
  566. package/llms/components/lr-segmented.md +74 -0
  567. package/llms/components/lr-select.md +113 -0
  568. package/llms/components/lr-sequence-strip.md +95 -0
  569. package/llms/components/lr-skeleton.md +53 -0
  570. package/llms/components/lr-slider.md +92 -0
  571. package/llms/components/lr-source-card.md +131 -0
  572. package/llms/components/lr-source-list.md +131 -0
  573. package/llms/components/lr-source-picker.md +63 -0
  574. package/llms/components/lr-span-waterfall.md +42 -0
  575. package/llms/components/lr-sparkline.md +60 -0
  576. package/llms/components/lr-spinner.md +32 -0
  577. package/llms/components/lr-split.md +191 -0
  578. package/llms/components/lr-spreadsheet-viewer.md +47 -0
  579. package/llms/components/lr-stack-trace.md +77 -0
  580. package/llms/components/lr-stat.md +89 -0
  581. package/llms/components/lr-stepper.md +118 -0
  582. package/llms/components/lr-stream-status.md +128 -0
  583. package/llms/components/lr-streaming-text.md +101 -0
  584. package/llms/components/lr-suggestion-chips.md +40 -0
  585. package/llms/components/lr-svg-viewer.md +47 -0
  586. package/llms/components/lr-swatch-picker.md +91 -0
  587. package/llms/components/lr-switch.md +82 -0
  588. package/llms/components/lr-table.md +201 -0
  589. package/llms/components/lr-tabs.md +80 -0
  590. package/llms/components/lr-tag.md +25 -0
  591. package/llms/components/lr-task-list.md +42 -0
  592. package/llms/components/lr-terminal.md +44 -0
  593. package/llms/components/lr-test-results.md +38 -0
  594. package/llms/components/lr-textarea.md +111 -0
  595. package/llms/components/lr-thinking-panel.md +93 -0
  596. package/llms/components/lr-thread-list.md +97 -0
  597. package/llms/components/lr-time-input.md +53 -0
  598. package/llms/components/lr-time-range.md +91 -0
  599. package/llms/components/lr-timeline-item.md +65 -0
  600. package/llms/components/lr-timeline.md +65 -0
  601. package/llms/components/lr-toast-item.md +123 -0
  602. package/llms/components/lr-toast.md +123 -0
  603. package/llms/components/lr-token-input.md +31 -0
  604. package/llms/components/lr-tool-approval-dialog.md +131 -0
  605. package/llms/components/lr-tool-call-chip.md +101 -0
  606. package/llms/components/lr-tool-param-form.md +148 -0
  607. package/llms/components/lr-tool-result-dialog.md +106 -0
  608. package/llms/components/lr-tool-result-view.md +162 -0
  609. package/llms/components/lr-tool-select-dialog.md +124 -0
  610. package/llms/components/lr-tool-timeline.md +56 -0
  611. package/llms/components/lr-tooltip.md +47 -0
  612. package/llms/components/lr-tour.md +100 -0
  613. package/llms/components/lr-trace-tree.md +35 -0
  614. package/llms/components/lr-transcript-feed.md +45 -0
  615. package/llms/components/lr-tree-node.md +133 -0
  616. package/llms/components/lr-tree.md +133 -0
  617. package/llms/components/lr-typing-indicator.md +80 -0
  618. package/llms/components/lr-usage-badge.md +44 -0
  619. package/llms/components/lr-virtual-list.md +145 -0
  620. package/llms/components/lr-voice-picker.md +78 -0
  621. package/llms/components/lr-widget-renderer.md +78 -0
  622. package/llms/components/lr-widget.md +104 -0
  623. package/llms/components/lr-word-cloud.md +112 -0
  624. package/llms/components/lr-xml-viewer.md +58 -0
  625. package/llms/components/lr-zoomable-frame.md +57 -0
  626. package/llms/index.md +301 -0
  627. package/llms/migration.md +86 -0
  628. package/llms/peers.md +41 -0
  629. package/llms/shared.md +321 -0
  630. package/llms/tokens.md +533 -0
  631. package/llms-full.txt +10731 -8563
  632. package/llms.txt +64 -121
  633. package/package.json +14 -2
  634. package/vscode-css-data.json +1424 -185
  635. package/vscode-html-data.json +128 -107
  636. package/web-types.json +853 -118
@@ -0,0 +1,77 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
2
+
3
+ # `lr-stack-trace`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/agent-tools/stack-trace/stack-trace.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraStackTrace`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/stack-trace/stack-trace.class.js`
7
+ - **Family** `components/agent-tools/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-stack-trace`
14
+
15
+ Parses common V8/JS-TS, Firefox/Safari, and Python stack traces into a leading message plus
16
+ activatable frames, splitting chained/caused-by errors (`Caused by:`, `[cause]:`, Python's "direct
17
+ cause"/"During handling" separators) into separate groups. Frames matching `internalPatterns` fold
18
+ behind a count-labeled toggle. Falls back to verbatim raw text when nothing parses. First-party
19
+ invention (no Web Awesome equivalent).
20
+
21
+ **Properties:**
22
+ - `trace: string = ''` — the raw stack trace text to parse and render.
23
+ - `collapseInternal: boolean = true` (attribute: `collapse-internal`) — folds runs of internal
24
+ frames behind a toggle.
25
+ - `internalPatterns: (string | RegExp)[] = DEFAULT_INTERNAL_PATTERNS` (attribute: false) —
26
+ file-path substrings/`RegExp`s that mark a frame as internal.
27
+ - `copyable: boolean = true` — shows a copy-to-clipboard button for the raw trace text.
28
+ - `maxHeight: string = ''` (attribute: `max-height`) — caps the rendered block size and enables an
29
+ internal scrollbar once content exceeds it (any valid CSS length). Empty string (the default)
30
+ grows with content.
31
+
32
+ **Events:**
33
+ - `lr-frame-select` (`detail: { file?: string; line?: number; column?: number; raw: string }`) —
34
+ a frame was activated. `column` is always undefined for Python frames, which carry no column
35
+ information.
36
+ - `lr-copy` (`detail: { text: string }`) — the raw, unparsed trace text, fired on copy-button
37
+ activation regardless of whether the clipboard write actually succeeded.
38
+
39
+ **Slots:** none.
40
+
41
+ **CSS parts:** `base` (the root wrapper; respects `max-height`), `message` (the leading error
42
+ message text for a group), `group` (one chained-error group of frames), `frame` (a single frame
43
+ button; carries `data-internal` for internal frames), `frame-function` (the frame's function
44
+ name), `frame-location` (the frame's `file:line:col` text), `internal-toggle` (the collapse/expand
45
+ toggle for a run of internal frames), `raw` (the verbatim fallback when zero structured frames
46
+ parsed), `copy-button` (only rendered while `copyable`).
47
+
48
+ **Themeable custom properties:** `--lr-stack-trace-max-height` (default `none`),
49
+ `--lr-stack-trace-font` (default `var(--lr-font-mono)`), plus shared tokens
50
+ `--lr-color-border`/`-surface`/`-text`/`-text-quiet`/`-brand`, `--lr-radius`,
51
+ `--lr-border-width-thin`, `--lr-space-xs`/`-s`/`-2xs`, `--lr-font-size-sm`/`-xs`,
52
+ `--lr-font-weight-bold`/`-semibold`, `--lr-focus-ring-*`.
53
+
54
+ **Optional peer deps:** none.
55
+
56
+ ```html
57
+ <lr-stack-trace></lr-stack-trace>
58
+ <script type="module">
59
+ const stackTrace = document.querySelector('lr-stack-trace');
60
+ stackTrace.trace = 'TypeError: boom\n at doThing (/app/src/util.js:10:5)';
61
+ stackTrace.addEventListener('lr-frame-select', (e) => console.log(e.detail.file, e.detail.line));
62
+ </script>
63
+ ```
64
+
65
+ The package root also exports the pure `parseStackTrace(trace: string, internalPatterns: (string |
66
+ RegExp)[]): StackGroup[]` helper (plus `DEFAULT_INTERNAL_PATTERNS`, and the `StackFrame`/
67
+ `StackGroup` types) — the same parsing function this component's own `willUpdate()` calls, exposed
68
+ standalone so a consumer can parse or unit-test traces without instantiating the element at all.
69
+
70
+ **Known gotchas:**
71
+ - an internal-frame run only collapses behind the `internal-toggle` when it is two or more
72
+ consecutive internal frames; a single isolated internal frame renders as a normal `frame` button
73
+ (there is nothing useful to fold).
74
+ - when `trace` doesn't match any of the supported formats, `parseStackTrace()` returns `[]` and the
75
+ component renders the text verbatim in a `raw` part instead of silently dropping content.
76
+
77
+ ---
@@ -0,0 +1,89 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/data.md — do not edit this file. -->
2
+
3
+ # `lr-stat`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/data/stat/stat.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraStat`, also available unregistered from `@aceshooting/lyra-ui/components/data/stat/stat.class.js`
7
+ - **Family** `components/data/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-stat`
14
+
15
+ KPI/stat card — value + unit + label + optional icon/trend/caption.
16
+
17
+ **Properties:**
18
+ - `label: string = ''`
19
+ - `value: string = ''`
20
+ - `unit: string = ''`
21
+ - `href?: string` — when it resolves to a safe URL, the root is a real whole-stat `<a>`; unsafe
22
+ URL schemes keep the stat non-interactive
23
+ - `target?: string` / `rel?: string` — forwarded to the anchor while `href` is active
24
+ - `variant: 'neutral'|'success'|'warning'|'danger' = 'neutral'` (reflected)
25
+ - `trend: number = NaN` (a `NaN` sentinel hides the trend pill entirely — set an actual number to
26
+ show it)
27
+ - `caption: string = ''`
28
+ - `goodDirection: 'up'|'down' = 'up'` (attribute `good-direction`) — which trend direction counts
29
+ as "good"; inverts arrow/color polarity for cost/latency/error-rate-style metrics where a
30
+ *decrease* is the win.
31
+ - `rows: StatRow[] = []` (attribute: false) — `StatRow { label: string; value: string; exactValue?:
32
+ string }`; rendered as a simple label/value breakdown list (`[part="rows"]`/`[part="row"]`/
33
+ `[part="row-label"]`/`[part="row-value"]`) beneath the caption, hidden entirely when empty. A row's
34
+ optional `exactValue` mirrors the headline `exactValue`/`exact-value` pattern: rendered as a `title`
35
+ tooltip on that row's `[part="row-value"]` and gives it `tabindex="0"`, independently per row —
36
+ unset rows are unaffected.
37
+ - `emphasis: boolean = false` (reflected) — visual emphasis (e.g. for a "headline" stat in a group):
38
+ a brand-colored accent edge, orthogonal to the status `variant`; status semantics still win over
39
+ it — `emphasis` only additionally tints `[part="value"]` brand-colored when `variant` is still
40
+ `'neutral'`, never overriding an actual `success`/`warning`/`danger` value color
41
+ - `exactValue: string = ''` (attribute `exact-value`) — rendered as a `title` attribute on
42
+ `[part="value"]` for a hover tooltip (e.g. `value="$1.2K" exact-value="$1,204.37"`); also gives
43
+ `[part="value"]` `tabindex="0"` (only when set) so the tooltip is reachable by keyboard focus, not
44
+ just hover
45
+ - `sub: string = ''` — a secondary line distinct from `caption`, e.g. a comparison-period label,
46
+ rendered as `[part="sub"]` between the trend pill and the caption; hidden entirely when unset
47
+ - `prose: boolean = false` (reflected) — CSS-only variant that shrinks/lightens `[part="value"]` and
48
+ hides `[part="unit"]`, for rendering a loading/status message in place of a numeric value
49
+ - `compact: boolean = false` (reflected) — tighter card padding; same convention as `lr-empty`'s and
50
+ `lr-widget`'s `compact`
51
+
52
+ **Events:** none.
53
+
54
+ **Slots:** default (leading icon), `caption` (rich caption content — overrides the `caption`
55
+ attribute when slotted content is provided), `spark` (a sparkline, e.g. `<lr-sparkline
56
+ slot="spark">`, or other compact trend visual — `lr-stat` only reserves the slot and doesn't
57
+ render one itself), `sub` (rich sub-line content — overrides the `sub` attribute when slotted content
58
+ is provided)
59
+
60
+ **CSS parts:** `base` (a `<div>`, or an `<a>` for a safe `href`), `icon`, `label`, `value-row`, `value`, `unit`, `trend`, `sub`, `spark`,
61
+ `caption`, `rows`, `row`, `row-label`, `row-value` — `[part="value"]` gets `aria-labelledby` pairing
62
+ it with `[part="label"]`'s generated id whenever `label` is non-empty (so tabbing straight to the
63
+ `exactValue`-focusable value still announces e.g. "Revenue $1.2K", not just the bare value); each
64
+ `[part="row-value"]` is paired the same way with its own row's `[part="row-label"]`.
65
+
66
+ **Themeable custom properties:** shared tokens only (`--lr-color-success/-warning/-danger` drive
67
+ the `variant`-colored value text and up/down trend pill; `--lr-color-brand` drives `emphasis`'s
68
+ accent edge and value tint).
69
+
70
+ **Optional peer deps:** none.
71
+
72
+ ```html
73
+ <lr-stat label="Active users" value="1,204" trend="4.2" variant="success">
74
+ <svg slot="">...</svg>
75
+ </lr-stat>
76
+ <lr-stat label="Memories" value="128" href="/memories"></lr-stat>
77
+ ```
78
+
79
+ **Known gotchas:**
80
+ - When `href` makes the whole stat a link, exact-value spans keep their hover tooltips but omit
81
+ their own `tabindex` to avoid nesting focus targets inside the anchor.
82
+ - no `aria-live` region wraps `value`/`trend` — an in-place update after first render still isn't
83
+ proactively announced to screen readers. The trend pill's direction/polarity is no longer
84
+ conveyed by icon rotation/color alone, though: a visually-hidden span now spells it out in plain
85
+ language (e.g. "increased 4.2%, good" / "decreased 2%, bad" / "unchanged"), so a screen reader
86
+ landing on the pill (rather than being live-notified of a change) gets the full meaning, not just
87
+ an `aria-hidden` arrow glyph.
88
+
89
+ ---
@@ -0,0 +1,118 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->
2
+
3
+ # `lr-stepper`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/layout/stepper/stepper.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraStepper`, also available unregistered from `@aceshooting/lyra-ui/components/layout/stepper/stepper.class.js`
7
+ - **Family** `components/layout/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-stepper`
14
+
15
+ Ordered multi-step wizard/form navigation: an index/label per step, `current`/`completed`/`disabled`/
16
+ `error` state, and click-to-jump. First-party invention (no Web Awesome equivalent). Fully
17
+ data-driven and controlled, like `lr-table`'s `columns`/`rows` — it never mutates `steps` itself; a
18
+ click, or Enter/Space on a non-disabled step, fires a cancelable `lr-step-select`, and the host
19
+ decides whether/how `steps` changes in response (mirroring `lr-dialog-close`'s cancelable-event
20
+ convention).
21
+
22
+ **Properties:**
23
+ - `steps: StepItem[] = []` (attribute: false) — `StepItem { id: string; label: string; state:
24
+ 'pending' | 'current' | 'completed' | 'disabled' | 'error'; title?: string }`; `title` is an
25
+ optional native tooltip for the step's button (e.g. explaining why a `disabled` step is locked) —
26
+ omit it for no `title` attribute at all, not an empty string. Never mutated by this component.
27
+ Empty (the default) renders nothing.
28
+ - `orientation: 'horizontal' | 'vertical' = 'horizontal'` (reflected) — `'horizontal'` (the default)
29
+ lays steps out in a row (Left/Right, RTL-aware, navigate); `'vertical'` stacks them (Up/Down
30
+ navigate instead, no RTL swap needed). The axis used at/above `orientationBreakpoint` (or always,
31
+ when that's unset).
32
+ - `orientationBreakpoint?: number | string` (attribute `orientation-breakpoint`) — opt-in inline-size
33
+ breakpoint measured on `[part='base']`; unset (the default) means no behavior change at all, and
34
+ no `ResizeObserver` is armed. Below it, `narrowOrientation` becomes the effective axis instead of
35
+ `orientation`. Accepts a bare pixel number (`900`, `orientation-breakpoint="900"`) or a CSS length
36
+ string: `'900px'`, `'56.25rem'`, `'3em'`. Under the default `orientationBreakpointBasis='container'`,
37
+ `rem` resolves against the document root's **computed** font size (the rule a `@container` query
38
+ follows) and `em` against this element's own computed font size. The length is **re-resolved on
39
+ every measurement**, never cached at first render, so a root font-size change moves the crossing
40
+ width with no invalidation step on the consumer's side. Anything that isn't a resolvable length
41
+ behaves exactly as unset (no observation, no `data-effective-orientation`): `''`, `'auto'`,
42
+ garbage, a non-finite number, and deliberately `%`, `vw`/`vh` and `calc()` — a viewport-relative
43
+ threshold would mix reference boxes against a measurement of the element's own allocation. Mirrors
44
+ `<lr-split>`'s identically-named contract, unit handling included.
45
+ - `orientationBreakpointBasis: 'container'|'viewport' = 'container'` (reflected, attribute
46
+ `orientation-breakpoint-basis`) — which box `orientationBreakpoint` is compared against. Unset,
47
+ behavior is identical to before this property existed. `'container'` measures the stepper's own
48
+ `[part='base']` via `ResizeObserver`, comparing strictly `<`; `'viewport'` evaluates
49
+ `matchMedia('(max-width: <breakpoint>)')`, arms no `ResizeObserver`, and compares inclusively
50
+ (`<=`) per native `max-width` semantics. **A stepper given a fixed width in a row layout cannot
51
+ react to that row stacking by measuring itself — its own width never changes — so that case
52
+ requires `'viewport'`.** Relative units also differ by basis: inside a media query they resolve
53
+ against the browser's *initial* font size, ignoring `html { font-size }`, which is precisely why
54
+ `'viewport'` matches a CSS `@media` rule authored with the same length. Mirrors `<lr-split>`'s
55
+ identically-named contract.
56
+ - `narrowOrientation: 'horizontal' | 'vertical' = 'vertical'` (reflected, attribute
57
+ `narrow-orientation`)
58
+ - `effectiveOrientation: 'horizontal' | 'vertical'` (readonly getter) — the live layout/navigation
59
+ axis actually in effect; identical to `orientation` whenever `orientationBreakpoint` is unset or
60
+ doesn't resolve to a length. Also reflected as `data-effective-orientation` (only present while
61
+ `orientationBreakpoint` resolves to a usable length).
62
+ - `accessibleLabel: string | null = null` (attribute `aria-label`) — accessible name applied to the
63
+ `role="tablist"` step strip; attribute-reflects from a host-level `aria-label`. Unset, the
64
+ tablist renders without an `aria-label` (there is no localized default name).
65
+
66
+ **Events:** `lr-step-select` (`detail: { index, id }`) — fired on click, or Enter/Space while
67
+ focused, on a non-`disabled` step. Cancelable, though this component takes no default action of its
68
+ own to prevent (it never mutates `steps`) — `preventDefault()` is available for a host that wants a
69
+ single place to short-circuit its own listener's follow-up work. `lr-stepper-orientation-change`
70
+ (`detail: { orientation }`) — fired only when an enabled `orientationBreakpoint` actually changes
71
+ `effectiveOrientation`.
72
+
73
+ **Slots:** none.
74
+
75
+ **CSS parts:** `base` (root wrapper, `role="tablist"`), `step` (a single step button, `role="tab"`),
76
+ `step-index` (the numbered index chip, shown for `pending`/`current`/`error` steps), `step-check`
77
+ (the completed-checkmark glyph, shown for `completed` steps instead of `step-index`), `step-label`
78
+ (the step's label text).
79
+
80
+ **Themeable custom properties:** shared tokens only — `--lr-space-m`/`-xs`/`-2xs`,
81
+ `--lr-color-text-quiet`/`-text`/`-danger`/`-brand`/`-surface`, `--lr-radius`/`-pill`,
82
+ `--lr-font-size-xs`, `--lr-font-weight-semibold`, `--lr-opacity-disabled`,
83
+ `--lr-focus-ring-*`.
84
+
85
+ **Optional peer deps:** none.
86
+
87
+ ```html
88
+ <lr-stepper></lr-stepper>
89
+ <script type="module">
90
+ const stepper = document.querySelector('lr-stepper');
91
+ stepper.steps = [
92
+ { id: 'account', label: 'Account', state: 'completed' },
93
+ { id: 'billing', label: 'Billing', state: 'current' },
94
+ { id: 'review', label: 'Review', state: 'pending' },
95
+ ];
96
+ stepper.addEventListener('lr-step-select', (e) => console.log(e.detail.index, e.detail.id));
97
+ </script>
98
+ ```
99
+
100
+ **Known gotchas:**
101
+ - `orientationBreakpointBasis='container'` (the default) observes **the stepper's own allocated
102
+ inline size**, so it fits a stepper that is the sole flex/grid item in its measured container. In
103
+ a row where the stepper is a fixed-width sidebar beside another element, its own width never
104
+ changes with the viewport at all, so no container breakpoint can react to that row stacking via a
105
+ CSS `@media` rule. Use `orientationBreakpointBasis='viewport'` for that layout — give the stepper
106
+ and its sibling the same `orientation-breakpoint` and both flip in lockstep with the CSS rule. See
107
+ `<lr-split>`'s own note above for the full explanation of why a shared row can't be inferred from
108
+ one element's measurement, and for a worked example.
109
+ - there's no built-in "step forward/back" method — advancing the wizard is entirely the host's job:
110
+ react to `lr-step-select` (or its own Next/Back buttons) and reassign `steps` with updated
111
+ `state` values.
112
+ - `role="tablist"`/`role="tab"` back the keyboard/focus contract (roving tabindex, arrow-key
113
+ navigation) even though this isn't a `<lr-tabs>`-style panel switcher — there's no associated
114
+ `role="tabpanel"`, since this component renders no panel content of its own.
115
+ - Left/Right (horizontal) and Up/Down (vertical) are mutually exclusive per `orientation` — there's
116
+ no single set of keys that works in both.
117
+
118
+ ---
@@ -0,0 +1,128 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/conversation.md — do not edit this file. -->
2
+
3
+ # `lr-stream-status`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/conversation/stream-status/stream-status.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraStreamStatus`, also available unregistered from `@aceshooting/lyra-ui/components/conversation/stream-status/stream-status.class.js`
7
+ - **Family** `components/conversation/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-stream-status`
14
+
15
+ A compact status indicator for a single streaming connection (SSE, WebSocket, long-poll, …), with
16
+ built-in heartbeat-aware stall detection. First-party invention (no Web Awesome equivalent). The
17
+ host drives `phase` directly for `idle`/`connecting`/`streaming`, and calls the imperative
18
+ `recordActivity()` method on every *semantic* frame received while streaming — a real content
19
+ chunk, never a transport-level keep-alive ping. This component has no payload-inspection logic of
20
+ its own: "ignore heartbeats" is entirely call-site discipline, which is exactly why a connection
21
+ that's only sending keep-alives (no real content) for longer than `stall-threshold-ms` correctly
22
+ reads as stalled.
23
+
24
+ **Properties:**
25
+ - `phase: 'idle' | 'connecting' | 'streaming' | 'stalled' = 'idle'` (reflected) — current
26
+ connection phase. Fully public and directly settable by the host at any time, including a manual
27
+ override to `'stalled'`; the component never fights a host-driven reassignment.
28
+ - `stallThresholdMs: number = 10000` (attribute `stall-threshold-ms`) — how long `phase` may stay
29
+ `'streaming'` with no `recordActivity()` call before the component auto-transitions to
30
+ `'stalled'`. A non-finite or `<= 0` value disables the stall timer entirely (arming becomes a
31
+ no-op, so the phase will never auto-stall). Changing this value while already `'streaming'`
32
+ re-arms the timer immediately against the new value, rather than waiting for the next
33
+ `recordActivity()` call or phase change.
34
+
35
+ **Methods:**
36
+ - `recordActivity(): void` — call on every semantic (non-heartbeat) frame received while
37
+ streaming.
38
+ - While `phase === 'streaming'`: (re)arms the stall timer, pushing the stall deadline
39
+ `stallThresholdMs` further out.
40
+ - While `phase === 'stalled'`: recovers — `phase` becomes `'streaming'` again (firing
41
+ `lr-recover` and arming the timer fresh, via the same transition handling a direct host
42
+ assignment would also go through).
43
+ - While `phase` is `'idle'` or `'connecting'`: a no-op. Safe to call defensively before formally
44
+ flipping to `'streaming'`; it never throws or starts a timer early.
45
+
46
+ **Events:** `lr-stall` (no detail payload) — fires whenever `phase` transitions into `'stalled'`
47
+ from any other phase, whether timer-driven or via a direct host assignment. `lr-recover` (no
48
+ detail payload) — fires whenever `phase` transitions out of `'stalled'` to any other phase,
49
+ whether via `recordActivity()` or a direct host assignment. Neither fires for a same-value
50
+ reassignment, and neither fires for whatever phase the element happens to *mount* with — only a
51
+ later change counts as a transition.
52
+
53
+ **Slots:** default (custom copy shown only while `phase="stalled"`, e.g. "Taking longer than
54
+ usual…" — falls back to a built-in default message when nothing is slotted), `actions` (a
55
+ stop/retry button row; always present in the template regardless of `phase` — its wrapper's
56
+ visibility is driven purely by whether anything is slotted into it, not by `phase`)
57
+
58
+ **CSS parts:** `base`, `indicator`, `message`, `actions`
59
+
60
+ **Themeable custom properties:** shared tokens only — `--lr-color-text-quiet` (idle dot color),
61
+ `--lr-color-brand` (connecting/streaming dot color), `--lr-color-warning` (stalled dot color,
62
+ message text color, stalled border), `--lr-color-warning-quiet` (stalled background tint),
63
+ `--lr-space-s` / `--lr-space-xs` (base gap, stalled padding, actions gap), `--lr-radius`
64
+ (base corner radius), `--lr-transition-base` (background/border-color transitions and the
65
+ streaming pulse animation's cycle length). The component also sets two internal, phase-driven
66
+ custom properties (`--lr-stream-status-dot-color`, `--lr-stream-status-dot-opacity`) on
67
+ `:host`, but its own `:host([phase="..."])` rules outrank a page-level override for every phase
68
+ except the default `idle`, so these aren't a practical external theming hook.
69
+
70
+ **Optional peer deps:** none.
71
+
72
+ ```html
73
+ <lr-stream-status phase="streaming" stall-threshold-ms="8000">
74
+ <span slot="actions"><button>Stop</button></span>
75
+ </lr-stream-status>
76
+ ```
77
+ ```ts
78
+ const status = document.querySelector('lr-stream-status')!;
79
+ status.addEventListener('lr-stall', () => console.warn('stream stalled'));
80
+ status.addEventListener('lr-recover', () => console.info('stream recovered'));
81
+
82
+ // on every real content chunk from the transport (never on a keep-alive ping):
83
+ status.recordActivity();
84
+ ```
85
+
86
+ Internally, the inactivity timer runs only while `phase === 'streaming'`. It's (re)armed whenever
87
+ the phase transitions to `'streaming'` (directly, or via `recordActivity()` recovering from
88
+ `'stalled'`) and on every subsequent `recordActivity()` call while already streaming; it's disarmed
89
+ the instant `phase` becomes anything else, including a host-driven reassignment away from
90
+ `'streaming'` — so a stale timer can never fire a stall transition after the host has already moved
91
+ on. Phase transitions into/out of `'stalled'` are announced through an internal
92
+ `<lr-live-region>` rather than a hand-rolled `aria-live` region: entering `'stalled'` announces
93
+ "Connection stalled." with `mode="assertive"` (a stall can need the user's attention before they
94
+ give up and navigate away). Leaving `'stalled'` always announces with `mode="polite"` (good news
95
+ doesn't need to interrupt), but the *wording* depends on the destination phase: "Connection
96
+ restored." only when leaving `'stalled'` for `'streaming'` (a genuine recovery, typically via
97
+ `recordActivity()`); a neutral "No longer stalled." when the destination is `'idle'`/`'connecting'`
98
+ instead (the host gave up on the stream, which is not the same thing as it recovering — a
99
+ screen-reader user must not be told the opposite of what a sighted user sees). Calling
100
+ `recordActivity()` itself never announces anything, no
101
+ matter how often the host calls it — only the phase *transition* announces, exactly once. The
102
+ decorative indicator dot is `aria-hidden` (a color/motion cue only) and only pulses while
103
+ `phase="streaming"`; `'stalled'` is styled as a warning tone, not danger, since a stall is usually
104
+ recoverable — a host that wants to escalate after N stalls can scope its own CSS off
105
+ `[phase="stalled"]`, or stop rendering this component and show its own danger-styled error state
106
+ instead. The pulse animation is suppressed under `prefers-reduced-motion: reduce`.
107
+
108
+ **Known gotchas:**
109
+ - `recordActivity()` is a plain instance method, not a reactive property — there's nothing to bind
110
+ to in a template; call it directly from streaming/application code on every real chunk received.
111
+ - Never call `recordActivity()` for a heartbeat/keep-alive ping. This component has no
112
+ payload-inspection logic of its own, so a connection that's only sending pings (no real content)
113
+ for longer than `stall-threshold-ms` is *supposed* to read as stalled — that's the entire
114
+ point of the API.
115
+ - Setting `stallThresholdMs` to `0`, a negative number, or a non-finite value disables the stall
116
+ timer outright; the component will stay `'streaming'` forever until the host manually changes
117
+ `phase`.
118
+ - `phase` remains directly settable at all times; assigning `'stalled'` yourself fires `lr-stall`
119
+ and the assertive announcement exactly as if the timer had fired.
120
+ - reconnecting the element while still `phase === 'streaming'` (e.g. a drag-and-drop reparent that
121
+ keeps the same instance) automatically re-arms the stall timer in `connectedCallback` —
122
+ `disconnectedCallback` always disarms it, and disconnect/reconnect fire back-to-back with no
123
+ `updated()` cycle in between, so nothing else would otherwise notice.
124
+ - The `actions` slot's wrapper is always present in the DOM and toggled with the `hidden` attribute
125
+ based on slotted content, not gated by `phase` — content placed there is visible regardless of
126
+ the current phase.
127
+
128
+ ---
@@ -0,0 +1,101 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/conversation.md — do not edit this file. -->
2
+
3
+ # `lr-streaming-text`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/conversation/streaming-text/streaming-text.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraStreamingText`, also available unregistered from `@aceshooting/lyra-ui/components/conversation/streaming-text/streaming-text.class.js`
7
+ - **Family** `components/conversation/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-streaming-text`
14
+
15
+ A token-coalescing incremental text renderer for streaming assistant output, with an optional
16
+ blinking cursor and auto-detected Markdown rendering. First-party invention (no Web Awesome
17
+ equivalent). The host is expected to assign the *entire* current text on every update to `content`,
18
+ not a delta — this component does no accumulation or ordering of its own.
19
+
20
+ **Properties:**
21
+ - `content: string = ''` — the full current text so far.
22
+ - `streaming: boolean = false` (reflected) — shows the blinking cursor after the rendered text;
23
+ reflects so a host can also target `lr-streaming-text[streaming]` in CSS.
24
+ - `coalesceMs: number = 50` (attribute `coalesce-ms`) — trailing-edge coalesce window, in ms, for
25
+ `content` updates (see prose below).
26
+ - `markdown?: boolean` (attribute `markdown`, tri-state via a custom `ComplexAttributeConverter`) —
27
+ `undefined` (attribute absent, the default) auto-detects via `looksLikeMarkdown`; the attribute
28
+ present with no value or `="true"` forces `true`; `markdown="false"` forces `false`. An explicit
29
+ `true`/`false` always wins over the heuristic.
30
+
31
+ **Exported helper:** `looksLikeMarkdown(text: string): boolean` — runs a fixed, ordered list of
32
+ lightweight regexes (ATX heading, fenced code block, `**bold**`, `_italic_`, inline code, bullet
33
+ list item, numbered list item, `[text](url)` link, blockquote) against the whole string and returns
34
+ `true` on the first match. Used internally whenever `markdown` is left unset; exported standalone
35
+ so the heuristic is directly testable without going through the component's render cycle. None of
36
+ the patterns need to be airtight — a false positive just routes ordinary prose harmlessly through
37
+ `<lr-markdown>`; a false negative just shows literal `**`/backticks/etc. as plain text until more
38
+ of the stream arrives.
39
+
40
+ **Events:** none.
41
+
42
+ **Slots:** none — content renders from `content`, not a slot.
43
+
44
+ **CSS parts:** `base`, `cursor` (only rendered while `streaming` is `true`)
45
+
46
+ **Themeable custom properties:** `--lr-streaming-text-cursor-width` (default `0.125rem` — the
47
+ cursor bar's inline size), `--lr-streaming-text-cursor-height` (default `1em`) — both
48
+ component-specific, since no shared "inline cursor bar" token exists, the same pattern
49
+ `<lr-typing-indicator>`'s own `--lr-typing-cursor-width`/`-height` use, plus shared
50
+ `--lr-space-xs` (cursor's `margin-inline-start`) and `--lr-transition-base` (blink animation
51
+ cycle length).
52
+
53
+ **Optional peer deps:** none — internally imports and auto-registers `<lr-markdown>` for
54
+ Markdown-mode rendering (a side-effect import; the host never needs to import or register it
55
+ itself).
56
+
57
+ ```html
58
+ <lr-streaming-text id="out" coalesce-ms="80" streaming></lr-streaming-text>
59
+ <script type="module">
60
+ const out = document.getElementById('out');
61
+ let text = '';
62
+ for await (const token of tokenStream) {
63
+ text += token;
64
+ out.content = text; // always the full string so far, never a delta
65
+ }
66
+ out.streaming = false; // forces the final chunk through immediately; cursor disappears
67
+ </script>
68
+ ```
69
+
70
+ Token-by-token streaming can update `content` far faster than a human can usefully perceive a
71
+ re-render, so updates funnel through `Announcer` (`../../internal/announcer.js`), reused here
72
+ purely as a generic "coalesce rapid calls, flush the latest" timing primitive — with none of that
73
+ class's usual DOM/ARIA plumbing. Within any `coalesce-ms` window, only the *last* `content` value
74
+ assigned actually reaches the rendered DOM. Two cases always bypass the throttle and flush
75
+ immediately: the very first `content` assignment after mount, and any transition of `streaming`
76
+ between `true` and `false` in *either* direction — so the final chunk of a finished stream can
77
+ never be left stranded mid-window, and a stream restarting on a reused element can never keep
78
+ showing the previous stream's stale final content for the length of the window.
79
+
80
+ Rendering itself is never reimplemented here: Markdown mode composes `<lr-markdown>` directly,
81
+ forwarding this component's own `streaming` through as that component's `streaming` hint prop;
82
+ plain-text mode renders into a `white-space: pre-wrap` span instead. The blinking cursor degrades
83
+ to a static, always-visible bar under `prefers-reduced-motion: reduce`. In plain-text mode it sits
84
+ inline at the tail of the final character; in Markdown mode it renders as its own trailing block
85
+ below the rendered content instead of attempting to splice into whatever nested block Markdown
86
+ happens to end with.
87
+
88
+ **Known gotchas:**
89
+ - `content` must always be the complete string so far, never a delta — this component does no
90
+ accumulation of its own.
91
+ - Only the very *first* `content` assignment after mount bypasses `coalesceMs` unconditionally —
92
+ every later assignment is throttled normally except when it lands in the same update as a
93
+ `streaming` transition (either `true → false` or `false → true`), which also forces an immediate
94
+ flush.
95
+ - `markdown="false"` (any string value other than exactly `"false"` is treated as `true` by the
96
+ converter) forces plain-text mode even if the text obviously contains Markdown syntax.
97
+ - Purely presentational: no events, and it does not announce anything to assistive tech itself — a
98
+ host that needs streamed text announced needs `<lr-live-region>` for that (e.g. composed inside
99
+ `<lr-chat-message>`).
100
+
101
+ ---
@@ -0,0 +1,40 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/conversation.md — do not edit this file. -->
2
+
3
+ # `lr-suggestion-chips`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/conversation/suggestion-chips/suggestion-chips.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSuggestionChips`, also available unregistered from `@aceshooting/lyra-ui/components/conversation/suggestion-chips/suggestion-chips.class.js`
7
+ - **Family** `components/conversation/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-suggestion-chips`
14
+
15
+ Starter prompts (empty thread) and follow-up suggestions (after a response) as a horizontally
16
+ scrollable chip row; activation hands the prompt to the host, which decides whether to compose it
17
+ into an input or send it directly. Never writes into a composer or sends anything itself.
18
+ Streaming-friendly: chips render through a keyed `repeat()` on `id`, so replacing follow-ups
19
+ mid-conversation preserves focus on any chip whose `id` survives.
20
+
21
+ **Properties:** `suggestions: ChatSuggestion[] = []` (attribute: false) — `ChatSuggestion { id:
22
+ string; label: string; detail?: string }` (exported here); `detail` is an optional secondary line.
23
+ Empty renders nothing at all. `wrap: boolean = false`
24
+ (reflected) — wraps into multiple rows instead of a single horizontally scrollable line. `label:
25
+ string = ''` — accessible name for the group, defaults to the localized `suggestionsLabel`.
26
+
27
+ **Events:** `lr-suggestion-select` — `detail: { id, label }`.
28
+
29
+ **CSS parts:** `base` (the labeled group), `chip` (each suggestion button), `chip-label` (the primary
30
+ text), `chip-detail` (the secondary line, only rendered when `detail` is set).
31
+
32
+ Keyboard: roving tabindex across chips; ArrowLeft/ArrowRight (direction-aware) plus Home/End;
33
+ Enter/Space activate. Renders inside an internal `lr-scroller` (`orientation="horizontal"`,
34
+ `hide-scrollbar`) unless `wrap` is set.
35
+
36
+ ```html
37
+ <lr-suggestion-chips .suggestions=${followUps}
38
+ @lr-suggestion-select=${(e) => (composer.value = e.detail.label)}></lr-suggestion-chips>
39
+ <lr-chat-composer></lr-chat-composer>
40
+ ```
@@ -0,0 +1,47 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/viewers.md — do not edit this file. -->
2
+
3
+ # `lr-svg-viewer`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/viewers/svg-viewer/svg-viewer.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSvgViewer`, also available unregistered from `@aceshooting/lyra-ui/components/viewers/svg-viewer/svg-viewer.class.js`
7
+ - **Family** `components/viewers/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** `dompurify` — see `llms/peers.md`
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-svg-viewer`
14
+
15
+ Fetches an SVG document, sanitizes it with the optional `dompurify` peer, and renders it inline.
16
+
17
+ **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
18
+ the scrollable body. `zoomable: boolean = false` (reflected) — wraps the rendered content in an
19
+ internal `<lr-zoomable-frame>`. `false` (the default) preserves the exact pre-`zoomable` DOM — an
20
+ inline thumbnail (e.g. in a chat stream) must not unexpectedly grow a focusable zoom-chrome viewport;
21
+ an inspection surface opts in. `highlights: LyraHighlight[] = []` (attribute: false) — display-only
22
+ `region` highlights painted over the rendered SVG. `activeHighlightId: string | null = null`
23
+ (attribute `active-highlight-id`) — the `highlights` entry, if any, currently treated as active
24
+ (`data-active` on its `region-highlight`). `anchorKinds` is a readonly `['region']` (this viewer's
25
+ supported `LyraAnchor.kind` values for the shared anchor-target contract).
26
+
27
+ **Methods:** `scrollToAnchor(target)` — scrolls a `region` highlight (by id, or a `LyraAnchor` matched
28
+ back to its owning `LyraHighlight` by reference) into view; resolves `false` when nothing matches, the
29
+ anchor isn't `region`, or the document isn't loaded yet (no retry loop — a caller invoking this before
30
+ `src` resolves simply gets `false`).
31
+
32
+ **Events:** `lr-render-error` with `detail.error` when fetching or sanitizing fails.
33
+ `lr-highlight-activate` (`detail: { id }`) — a region highlight was clicked or activated via
34
+ Enter/Space.
35
+
36
+ **CSS parts:** `base`, `body`, `svg`, `spinner`, `error`, `highlight-layer` (wrapper around every
37
+ rendered region highlight), `region-highlight` (one region highlight, `data-tone`, `data-active`),
38
+ `frame-viewport`/`frame-content`/`frame-controls`/`frame-zoom-in`/`frame-zoom-out`/`frame-reset`
39
+ (forwarded from the internal `<lr-zoomable-frame>` while `zoomable`).
40
+
41
+ **Themeable custom properties:** `--lr-svg-viewer-max-height` (default `none`) — maximum block size
42
+ of `[part="body"]`; also settable via the `max-height` property, which writes this token inline.
43
+
44
+ **Optional peer dependency:** `dompurify`.
45
+
46
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
47
+ `documentPreviewResourceTooLarge` message instead of the graphic.