@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,131 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/retrieval.md — do not edit this file. -->
2
+
3
+ # `lr-source-list`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/retrieval/source-list/source-list.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSourceList`, also available unregistered from `@aceshooting/lyra-ui/components/retrieval/source-list/source-list.class.js`
7
+ - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Documented with** `lr-source-card` (same section below)
10
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
11
+
12
+ ---
13
+
14
+ ## `lr-source-list` / `lr-source-card`
15
+
16
+ A collapsible "Sources" panel for one chat message (`lr-source-list`) that groups a set of
17
+ `lr-source-card` entries. First-party invention (no Web Awesome equivalent). Cards are meant to be
18
+ direct light-DOM children of the list (plain composition — no `.items` array prop, the same shape
19
+ `<lr-split>`'s panels take), though `lr-source-card` renders and functions fine standalone.
20
+
21
+ ### `lr-source-list`
22
+
23
+ **Properties:**
24
+ - `expanded: boolean = false` (reflected) — whether the card list is currently shown. Starts
25
+ collapsed by default so a message's sources don't eat vertical space until asked for.
26
+ - `label: string = ''` — header text used when `label-plural` isn't set, e.g. `"Sources"`.
27
+ - `labelPlural: string = ''` (attribute `label-plural`) — fully consumer-built, already-pluralized
28
+ header summary, e.g. `"3 sources"` or `"1 source"`; this component never counts or pluralizes on
29
+ its own. Takes precedence over `label` when both are set. If neither is set, the header falls back
30
+ to the literal word `"Sources"`.
31
+
32
+ **Getters:** `sourceCount: number` — read-only, live-updated count of the currently-slotted children,
33
+ handy for building a `label-plural` string reactively, e.g. `` list.labelPlural = `${list.sourceCount} sources` ``.
34
+
35
+ **Events:** `lr-toggle` (`detail: { expanded: boolean }`) — the header was activated, expanding or
36
+ collapsing the list.
37
+
38
+ **Slots:** default — `<lr-source-card>` elements (or any content, though the card pairing is the
39
+ intended usage).
40
+
41
+ **CSS parts:** `base` (outer container), `header` (the clickable `<button>` toggling `expanded`),
42
+ `toggle` (the chevron indicator inside the header), `list` (wrapper around the default slot, `hidden`
43
+ while collapsed).
44
+
45
+ **Themeable custom properties:** shared tokens only — `--lr-color-border`, `--lr-color-surface`,
46
+ `--lr-color-text`, `--lr-color-brand` / `-brand-quiet`, `--lr-radius`, `--lr-space-xs`/`-s`/
47
+ `-m`, `--lr-transition-fast`, `--lr-focus-ring-*`.
48
+
49
+ **Optional peer deps:** none.
50
+
51
+ ### `lr-source-card`
52
+
53
+ **Properties:**
54
+ - `sourceId: string = ''` (attribute `source-id`) — stable identifier matching a
55
+ `<lr-citation-badge>` elsewhere on the page.
56
+ - `title: string = ''` — the source's display title, e.g. a filename. Falls back to `"Untitled
57
+ source"` when empty.
58
+ - `page?: string | number` — optional page reference, e.g. `12` or `"iv"`, rendered as-is (never
59
+ parsed/validated as a number), appended to the title as `" — p. {page}"`.
60
+ - `href?: string` — optional URL, echoed back (unopened) in `lr-open`'s detail.
61
+
62
+ **Events:**
63
+ - `lr-expand` (`detail: { sourceId: string; expanded: boolean }`) — the per-card "Show
64
+ more"/"Show less" toggle was activated. Unrelated to the parent `lr-source-list`'s own
65
+ expand/collapse, which only ever hides/shows the *set* of cards, never a single card's own content.
66
+ - `lr-open` (`detail: { sourceId: string; href?: string }`) — the title was activated. This
67
+ component never navigates on its own (a controlled component, the same convention
68
+ `<lr-tool-call-chip>`'s `lr-tool-call-chip-select` follows); a listener decides what "open"
69
+ means.
70
+
71
+ **Slots:** `excerpt` (a short preview; when left empty, the `excerpt` part collapses away entirely —
72
+ its wrapper is `hidden`, not just visually empty), `full` (the complete source text/chunk, hidden
73
+ behind the "Show more"/"Show less" toggle — when left empty, no toggle renders at all; removing all
74
+ `full`-slotted content while expanded auto-collapses it back).
75
+
76
+ **CSS parts:** `base` (outer container), `title` (the clickable title/page heading, a `<button>`),
77
+ `excerpt` (wrapper around the `excerpt` slot, `hidden` when the slot has no assigned content), `full`
78
+ (wrapper around the `full` slot, `hidden` while collapsed), `toggle` (the "Show more"/"Show less"
79
+ button — only rendered when the `full` slot has content).
80
+
81
+ **Themeable custom properties:** shared tokens only — `--lr-color-border`, `--lr-color-surface`,
82
+ `--lr-color-text` / `-text-quiet`, `--lr-color-brand`, `--lr-radius`, `--lr-space-xs`/`-s`,
83
+ `--lr-focus-ring-*`.
84
+
85
+ **Optional peer deps:** none.
86
+
87
+ ```html
88
+ <lr-source-list label-plural="2 sources">
89
+ <lr-source-card source-id="doc-1" title="annual_report.pdf" page="12">
90
+ <span slot="excerpt">Revenue grew 12% year over year...</span>
91
+ <span slot="full">Revenue grew 12% year over year, driven primarily by...</span>
92
+ </lr-source-card>
93
+ <lr-source-card source-id="doc-2" title="q3_notes.md">
94
+ <span slot="excerpt">No matching full-text chunk for this source.</span>
95
+ </lr-source-card>
96
+ </lr-source-list>
97
+ <script type="module">
98
+ // Elsewhere, a <lr-citation-badge>'s activation handler can scroll to and
99
+ // highlight the matching card -- neither component needs extra API surface
100
+ // for that, only source-id to be targeted by:
101
+ document.addEventListener('lr-citation-activate', (e) => {
102
+ const card = document.querySelector(`lr-source-card[source-id="${e.detail.sourceId}"]`);
103
+ card?.scrollIntoView({ behavior: 'smooth', block: 'center' });
104
+ });
105
+ </script>
106
+ ```
107
+
108
+ `lr-source-list` removes the card list from the accessibility tree (not just visually hides it)
109
+ while collapsed, via the native `hidden` attribute on `[part="list"]` — a screen reader user tabbing
110
+ past the header never lands on off-screen source cards they can't currently see. Both components
111
+ track slot presence in JS state (`slottedCount` on the list, `hasFullSlot` on the card) rather than
112
+ relying on CSS `:empty`, since a `[part]` wrapper always contains a literal `<slot>` child regardless
113
+ of assigned content; both also reconcile that state in `firstUpdated()` as a fallback for slot-
114
+ forwarding scenarios or engines that don't fire `slotchange` for content already present at parse
115
+ time.
116
+
117
+ **Known gotchas:**
118
+ - This library has no built-in i18n/pluralization (the same stance `<lr-empty>`'s plain
119
+ `description` prop takes) — `lr-source-list`'s header text is entirely consumer-supplied via
120
+ `label`/`label-plural`; there's no automatic "N sources" string generation beyond the literal
121
+ `"Sources"` fallback.
122
+ - `lr-source-card`'s own expand/collapse (`full` slot, `lr-expand` event) is completely
123
+ independent of the parent list's `expanded`/`lr-toggle` — collapsing the list doesn't reset an
124
+ individual card's `fullExpanded` state, and there is no cross-talk between the two components at
125
+ all beyond DOM nesting.
126
+ - `lr-source-card` actively strips a bare host-level `title` attribute right after Lit syncs it into
127
+ the `title` property — otherwise the whole card would grow an unsolicited native tooltip repeating
128
+ the title text on hover. Set `title` only as a property/attribute meant to become the rendered
129
+ heading; don't rely on it surviving as a DOM attribute afterward.
130
+
131
+ ---
@@ -0,0 +1,63 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/retrieval.md — do not edit this file. -->
2
+
3
+ # `lr-source-picker`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/retrieval/source-picker/source-picker.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSourcePicker`, also available unregistered from `@aceshooting/lyra-ui/components/retrieval/source-picker/source-picker.class.js`
7
+ - **Family** `components/retrieval/` — 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-source-picker`
14
+
15
+ A checkbox tree/list scoping which sources ground the next answer: tri-state folders, select-all,
16
+ type icons, search. **Not `FormAssociated`, deliberately**: this is a scoping panel, not a form
17
+ control — the selection is immediate app state consumed by the next retrieval call, exactly the
18
+ stance `lr-tool-select-dialog` already takes.
19
+
20
+ **Properties:**
21
+ - `sources: LyraSourceEntry[] = []` (attribute: false) — `LyraSourceEntry { id: string; label:
22
+ string; mimeType?: string; name?: string; children?: LyraSourceEntry[] }`; flat (no `children`) or
23
+ a tree — presence of `children` makes a row a group/folder with tri-state select
24
+ - `selectedIds: string[] = []` (attribute: false) — controlled; the host assigns this back from
25
+ `lr-sources-change`
26
+ - `showSelectAll: boolean = true` (attribute `show-select-all`)
27
+ - `searchable: boolean = true`
28
+ - `label: string = ''`
29
+ - `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the tree's computed
30
+ accessible name; wins over `label` and the localized default, and attribute-reflects from a
31
+ host-level `aria-label` so plain markup gets ARIA-name forwarding
32
+
33
+ **Events:** `lr-sources-change` (`detail: { selectedIds }`, the complete updated leaf-id array,
34
+ fired after every toggle including select-all).
35
+
36
+ **Slots:** none.
37
+
38
+ **CSS parts:** `base`, `search` (the built-in filter `lr-input`, only when `searchable`),
39
+ `select-all` (only when `showSelectAll`), `summary` ("{selected} of {total} selected"), `tree`
40
+ (`role="tree"`), `item` (`role="treeitem"`), `checkbox` (tri-state glyph), `icon` (the
41
+ `lr-file-icon` type badge), `label`, `empty` (`noData` when `sources` is empty, `noMatches` when a
42
+ filter empties the tree).
43
+
44
+ **Themeable custom properties:** shared tokens only.
45
+
46
+ **Optional peer deps:** none.
47
+
48
+ ```html
49
+ <lr-source-picker></lr-source-picker>
50
+ <script>
51
+ const picker = document.querySelector('lr-source-picker');
52
+ picker.sources = [
53
+ { id: 'folder-1', label: 'Reports', children: [{ id: 'doc-1', label: 'Q3.pdf', mimeType: 'application/pdf' }] },
54
+ ];
55
+ picker.addEventListener('lr-sources-change', (e) => (retrievalScope = e.detail.selectedIds));
56
+ </script>
57
+ ```
58
+
59
+ **Known gotchas:**
60
+ - Deliberately not form-associated — `lr-sources-change` is the only wiring; there's no
61
+ `name`/`value`/`FormData` participation the way a genuine form control would have.
62
+
63
+ ---
@@ -0,0 +1,42 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
2
+
3
+ # `lr-span-waterfall`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/agent-tools/span-waterfall/span-waterfall.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSpanWaterfall`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/span-waterfall/span-waterfall.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-span-waterfall`
14
+
15
+ The horizontal-timeline projection of the same `LyraSpan[]` `<lr-trace-tree>` consumes: a time
16
+ axis, one row per span in start order, status-toned bars (Langfuse timeline / Temporal
17
+ event-history style).
18
+
19
+ **Properties:** `spans: LyraSpan[] = []` (attribute: false) — `LyraSpan { id: string; parentId?:
20
+ string; name: string; kind: 'agent' | 'llm' | 'tool' | 'retriever' | 'embedding' | 'other';
21
+ startMs: number; endMs?: number; status: 'pending' | 'running' | 'success' | 'error' | 'denied';
22
+ tokensIn?: number; tokensOut?: number; costText?: string; detail?: string }`, exported from
23
+ `trace-tree/span.ts`. `startMs`/`endMs` are milliseconds **relative to the trace start**, not
24
+ wall-clock timestamps; `endMs` is absent while the span is still running. `costText` is preformatted
25
+ by the host (e.g. `"$0.0012"`) and rendered verbatim, never parsed or summed. One flat array powers
26
+ both this component (timeline projection via `startMs`/`endMs`) and `lr-trace-tree` (hierarchy
27
+ projection via `parentId`) — never two shapes. `activeSpanId: string | null = null`
28
+ (attribute `active-span-id`), `viewStartMs: number | null = null` (attribute `view-start-ms`) and
29
+ `viewEndMs: number | null = null` (attribute `view-end-ms`) — override the auto-computed time
30
+ window, `hideAxis: boolean = false` (attribute `hide-axis`), and `label: string = ''`.
31
+
32
+ **Events:** `lr-span-select` — `detail: { id: string }`, a bar/row was activated (click, Enter,
33
+ Space).
34
+
35
+ **CSS parts:** `base`, `axis` (the time-ruler row, hidden when `hideAxis`), `tick`, `tick-label`,
36
+ `row`, `name` (the row's name gutter), `bar-track`, `bar` (the interactive, focusable status-toned
37
+ bar), `meta` (secondary row info, shown inline under 480px), `status-text`, `duration`, `empty` (shown
38
+ when `spans` is empty), and `live-region`.
39
+
40
+ **Themeable custom properties:** `--lr-span-waterfall-name-width` (default `8rem`) and
41
+ `--lr-span-waterfall-stripe-speed` (a `running` span's striped-bar animation duration; defaults to
42
+ `--lr-transition-ambient`).
@@ -0,0 +1,60 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/data.md — do not edit this file. -->
2
+
3
+ # `lr-sparkline`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/data/sparkline/sparkline.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSparkline`, also available unregistered from `@aceshooting/lyra-ui/components/data/sparkline/sparkline.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-sparkline`
14
+
15
+ Zero-dependency inline SVG trend chart (mirrors `<wa-sparkline>`).
16
+
17
+ **Properties:**
18
+ - `values: number[] = []`
19
+ - `type: 'line' | 'bar' | 'area' = 'line'`
20
+ - `min?: number` (defaults to data minimum)
21
+ - `max?: number` (defaults to data maximum)
22
+ - `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the localized
23
+ generated summary on the internal SVG
24
+
25
+ **Events:** none.
26
+
27
+ **Slots:** none.
28
+
29
+ **CSS parts:** `line`, `area`, `bar`
30
+
31
+ **Themeable custom properties:** `--lr-color-brand` (pure CSS cascade, no JS/`getComputedStyle`
32
+ bridging needed), `--lr-sparkline-stroke-width` (default `1.5` — stroke width of the line/area
33
+ path), and `--lr-sparkline-area-opacity` (default `0.15` — fill opacity of the area under the
34
+ line, `type="area"` only).
35
+
36
+ **Optional peer deps:** none.
37
+
38
+ ```html
39
+ <lr-sparkline type="area"></lr-sparkline>
40
+ <script>
41
+ document.querySelector('lr-sparkline').values = [3, 5, 4, 8, 6, 9, 7];
42
+ </script>
43
+ ```
44
+
45
+ **Known gotchas:**
46
+ - The semantic `role="img"` and accessible name live on the SVG that owns the graphic. The generated
47
+ summary is localized, formats the last value with `effectiveLocale`, and can be replaced through
48
+ `accessibleLabel`/host `aria-label`. It remains a concise summary rather than a tabular fallback.
49
+ - flat data (every value equal, so the auto-computed range spans zero) now renders a centered
50
+ midline/mid-height bars instead of collapsing every point to the bottom edge, and a single-value
51
+ series renders a visible flat line (a zero-length path was previously invisible). **Every** `type`
52
+ (`line`/`area`/`bar`) decimates a `values` array past 500 points down to at most 500 plotted
53
+ samples — evenly sampled by index, always keeping the first and last value exactly, not
54
+ aggregated/averaged. `type="bar"` caps at 500 rendered `<rect>`s directly; `line`/`area` cap the
55
+ point count baked into the single `<path>`'s `d` string instead (an uncapped path string also
56
+ grows unbounded, even though the element count stays at one `<path>`). Auto `min`/`max` is still
57
+ scanned from the *full* pre-decimation `values` array, so a real extreme value that decimation
58
+ happens to drop can't silently narrow the rendered scale.
59
+
60
+ ---
@@ -0,0 +1,32 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/overlays.md — do not edit this file. -->
2
+
3
+ # `lr-spinner`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/overlays/spinner/spinner.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSpinner`, also available unregistered from `@aceshooting/lyra-ui/components/overlays/spinner/spinner.class.js`
7
+ - **Family** `components/overlays/` — 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-spinner`
14
+
15
+ An indeterminate busy indicator with a localized `role="status"` name.
16
+
17
+ **Properties:** `labelPlacement: 'none' | 'after' = 'none'` (attribute `label-placement`, reflected)
18
+ and `accessibleLabel: string | null = null` (attribute **`aria-label`**, not `accessible-label`) —
19
+ names `[part="base"]`'s `role="status"`; unset falls back to the localized "Loading…".
20
+
21
+ **Events:** none.
22
+
23
+ **Slots:** default — optional label text. `label-placement="after"` renders it inline next to the
24
+ indicator; `'none'` (the default) keeps it visually clipped but still in the DOM.
25
+
26
+ **CSS parts:** `base` (the `role="status"` wrapper), `spinner` (the animated ring; `aria-hidden`),
27
+ `label` (the default-slot wrapper).
28
+
29
+ **Themeable custom properties:** `--lr-spinner-size` (default `--lr-size-1-25rem` — both
30
+ dimensions), `--lr-spinner-track-width` (default `--lr-border-width-medium` — ring thickness),
31
+ `--lr-spinner-duration` (default `800ms` — one full rotation; the animation is dropped entirely
32
+ under `prefers-reduced-motion: reduce`). The ring colors come from `--lr-color-brand`/`-brand-quiet`.
@@ -0,0 +1,191 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->
2
+
3
+ # `lr-split`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/layout/split/split.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSplit`, also available unregistered from `@aceshooting/lyra-ui/components/layout/split/split.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-split`
14
+
15
+ Resizable panels for dashboard layouts. Direct **light-DOM children are the panels**; a divider is
16
+ auto-inserted between each adjacent pair.
17
+
18
+ **Properties:**
19
+ - `sizes: number[] = []` (attribute: false — percentages per panel, auto-computed equally if
20
+ omitted/mismatched)
21
+ - `defaultSizes: number[] = []` (attribute: false) — initialization-only fallback: a valid restored
22
+ `storageKey` layout wins first; otherwise a valid `defaultSizes` wins over equal distribution.
23
+ Later reassignment never overwrites live drag/persisted state — set it once, at mount.
24
+ - `min: number = 10` (min % per panel)
25
+ - `orientation: 'horizontal'|'vertical' = 'horizontal'` (reflected) — the axis used at/above
26
+ `orientationBreakpoint` (or always, when that's unset).
27
+ - `orientationBreakpoint?: number | string` (attribute `orientation-breakpoint`) — opt-in inline-size
28
+ breakpoint measured on `[part='base']`; unset (the default) means no behavior change at all, and
29
+ no `ResizeObserver` is armed. Below it, `narrowOrientation` becomes the effective axis instead of
30
+ `orientation`. Accepts a bare pixel number (`900`, `orientation-breakpoint="900"`) or a CSS length
31
+ string: `'900px'`, `'56.25rem'`, `'3em'`. Under the default `orientationBreakpointBasis='container'`,
32
+ `rem` resolves against the document root's **computed** font size (the rule a `@container` query
33
+ follows) and `em` against this element's own computed font size. The length is **re-resolved on
34
+ every measurement**, never cached at first render, so a root font-size change moves the crossing
35
+ width with no invalidation step on the consumer's side. Anything that isn't a resolvable length
36
+ behaves exactly as unset (no observation, no `data-effective-orientation`): `''`, `'auto'`,
37
+ garbage, a non-finite number, and deliberately `%`, `vw`/`vh` and `calc()` — a viewport-relative
38
+ threshold would mix reference boxes against a measurement of the element's own allocation. For a
39
+ genuinely viewport-relative breakpoint set `orientationBreakpointBasis='viewport'` instead.
40
+ - `orientationBreakpointBasis: 'container'|'viewport' = 'container'` (reflected, attribute
41
+ `orientation-breakpoint-basis`) — which box `orientationBreakpoint` is compared against. Unset,
42
+ behavior is identical to before this property existed. `'container'` measures this component's own
43
+ `[part='base']` via `ResizeObserver` and compares strictly `<`. `'viewport'` evaluates
44
+ `matchMedia('(max-width: <breakpoint>)')` and arms no `ResizeObserver` for the orientation feature
45
+ at all, so the shared observer stays armed only for `collapse`; its comparison is inclusive (`<=`),
46
+ because that is what native `max-width` means — deliberate, so the crossing point matches a CSS
47
+ `@media` rule authored with the same length exactly.
48
+ **`rem`/`em` mean different things under the two bases, and this is the reason `'viewport'` exists.**
49
+ Inside a media query, relative units resolve against the browser's *initial* font size and ignore
50
+ any `html { font-size }` override; under `'container'` they resolve against live computed font
51
+ sizes. The two agree unless an app re-points the root font size. So when the breakpoint must stay
52
+ in lockstep with a CSS `@media` rule, `'viewport'` is the exact match — the browser evaluates the
53
+ same query, live, across browser zoom and user font-size preferences, with no px re-derivation.
54
+ - `narrowOrientation: 'horizontal'|'vertical' = 'vertical'` (reflected, attribute `narrow-orientation`)
55
+ - `effectiveOrientation: 'horizontal'|'vertical'` (readonly getter) — the live resize/layout axis
56
+ actually in effect; identical to `orientation` whenever `orientationBreakpoint` is unset or
57
+ doesn't resolve to a length. Also reflected as `data-effective-orientation` (only present while
58
+ `orientationBreakpoint` resolves to a usable length).
59
+ - `storageKey?: string` (attribute `storage-key` — persists sizes to `localStorage` under
60
+ `` `lr-split:${key}:${panelCount}` ``, scoped by panel count so a stale layout for a different
61
+ panel count is ignored)
62
+ - `panelConstraints: (PanelConstraint | null)[] = []` (attribute: false) — `PanelConstraint { minPx?:
63
+ number; maxPx?: number; minPercent?: number; maxPercent?: number }`, index-aligned with `sizes`; a
64
+ `null`/missing entry (or an omitted bound within an entry) leaves that side of that panel purely
65
+ percent-based (the existing `min`-only behavior). Combining a px and a percent bound on the same
66
+ side resolves to the stricter one (larger for min, smaller for max) via a native CSS `max()`/`min()`
67
+ in the rendered `clamp()` flex-basis. `sizes`, the `lr-resize` payload, and localStorage persistence
68
+ stay percent-based regardless — only the effective drag/keyboard clamp bounds (and the rendered
69
+ `flex-basis`, via a native CSS `clamp()` so a constrained panel stays pinned between its bounds
70
+ across container resizes with no extra `ResizeObserver`) change for a constrained panel.
71
+ - `collapse: 'start'|'end'|'none' = 'none'` (reflected) — opt-in responsive collapse for one panel:
72
+ `'start'`/`'end'` is a *logical* position (RTL-aware, matching CSS logical properties — the panel at
73
+ the document's visual leading/trailing edge, not a raw array index). `lr-split` only owns the
74
+ width-collapse mechanics/state signaling below; it renders no icon-only UI itself — the collapsing
75
+ panel's own slotted content is expected to adapt itself (e.g. via its own `@container` query reading
76
+ the panel's clamped width or `data-collapse-state`, see below).
77
+ - `railWidth: string = '3.5rem'` (attribute `rail-width`) — the fixed CSS length the collapsing panel
78
+ clamps to in `'rail'` state.
79
+ - `railBreakpoint: number = 640` (attribute `rail-breakpoint`, px) — below this container width (a
80
+ `ResizeObserver` on `[part='base']`, active only while `collapse !== 'none'`), the collapsing panel
81
+ switches from its normal drag-resizable percent width to the fixed `railWidth`.
82
+ - `floatBreakpoint: number = 400` (attribute `float-breakpoint`, px) — below this narrower container
83
+ width, the collapsing panel instead becomes an absolutely-positioned overlay ("floating card") on
84
+ top of the other pane(s), removed from the normal flex flow; the sibling(s) take the full width.
85
+ - `collapseState: 'wide'|'rail'|'floating'` (reflected, attribute `collapse-state`) — a public
86
+ accessor with force/auto semantics mirroring `<lr-app-rail>`'s `mode`: normally derived
87
+ automatically from the measured container width, but assigning it a concrete value pins it there
88
+ (stopping automatic breakpoint tracking) — useful for a consumer-driven toggle (e.g. a button that
89
+ forces `'floating'` regardless of width). Assigning the write-only `'auto'` sentinel releases the
90
+ pin and immediately re-derives the state from the current measured width; the getter never returns
91
+ `'auto'`.
92
+ - `open: boolean = false` (reflected) — whether the `'floating'` collapse state's drawer is shown.
93
+ While `collapseState` is `'floating'` and `open` is `false` (the default), the collapsing panel
94
+ renders nothing (`hidden`, out of the accessibility tree) instead of the always-visible overlay
95
+ card this state rendered before `open` existed. Setting `open = true` reveals it as a
96
+ focus-trapped floating panel with a `[part="backdrop"]` scrim; Escape or a backdrop click set
97
+ `open` back to `false`. Leaving `'floating'` while `open` is still `true` also closes it, the same
98
+ way `<lr-app-rail>` closes its mobile overlay when leaving `'mobile'` while open.
99
+
100
+ `collapse`'s three resulting states — `'wide'` (default, today's plain layout) / `'rail'` / `'floating'`
101
+ — are exposed as: a `data-collapse-state` attribute on both the host and the collapsing panel element
102
+ itself (absent for `'wide'`/`collapse="none"`); and the `lr-split-collapse-change` event below. The
103
+ divider adjacent to the collapsed panel is drag/keyboard-disabled (`aria-disabled="true"`) while
104
+ collapsed. `collapse="none"` (the default) is byte-for-byte identical to pre-collapse-feature behavior.
105
+
106
+ `dividerLabel?: (index: number, panelCount: number) => string` (attribute: false) customizes the
107
+ localized accessible label generated for each auto-inserted divider.
108
+
109
+ **Events:** `lr-resize` (`detail: { sizes }`, fired on every drag step/release **and** every
110
+ keyboard step), `lr-split-collapse-change` (`detail: { state: 'wide'|'rail'|'floating' }`, fired only
111
+ on a real `collapse`-state transition, never on every resize/render),
112
+ `lr-split-constraints-invalid` (`detail: SplitConstraintIssueDetail`, fired once when the configured
113
+ panel minimums/maximums cannot fit the track; the infeasible set is rejected for interaction and a
114
+ normalized percent minimum is used instead), `lr-split-orientation-change` (`detail: { orientation }`,
115
+ fired only when an enabled `orientationBreakpoint` actually changes `effectiveOrientation`)
116
+
117
+ **Slots:** default (each direct child element is one panel).
118
+
119
+ **CSS parts:** `base` (`position: relative`, so the `'floating'` state can anchor to it), `divider`
120
+ (carries `aria-disabled="true"` and is drag/keyboard-inert while its adjacent panel is collapsed),
121
+ `backdrop` (the `'floating'` drawer's scrim — only rendered while `collapseState === 'floating'` and
122
+ `open`)
123
+
124
+ **Themeable custom properties:** `--lr-split-overlay-color` (default `var(--lr-color-overlay)`) —
125
+ the `'floating'` drawer's `[part='backdrop']` scrim; scoped to `[part='base']`, not the viewport.
126
+ Otherwise shared tokens only.
127
+
128
+ **Optional peer deps:** none.
129
+
130
+ ```html
131
+ <lr-split storage-key="dashboard-main" min="15">
132
+ <div>Panel A</div>
133
+ <div>Panel B</div>
134
+ <div>Panel C</div>
135
+ </lr-split>
136
+ ```
137
+
138
+ Keyboard: focus a divider (`Tab`), then `ArrowRight`/`ArrowLeft` (horizontal) or
139
+ `ArrowDown`/`ArrowUp` (vertical) to resize by a fixed 2% step — RTL-aware for horizontal layouts
140
+ (under `direction: rtl`, the forward/backward keys and drag-delta sign both swap so they still track
141
+ the visually-adjacent panel).
142
+
143
+ **Known gotchas:**
144
+ - `panelCount` now reacts to `slotchange` (not just the initial `connectedCallback()` read), and
145
+ `ensureSizes()` rebalances existing sizes proportionally when a panel is added or removed after
146
+ mount instead of discarding the whole layout — a conditionally-shown side panel no longer leaves
147
+ `panelCount`/`sizes`/divider count stale.
148
+ - divider `aria-valuemax` is now computed per adjacent pair (`sizes[i] + sizes[i+1] - min`) rather
149
+ than a blanket `100 - min`, so it's accurate for 3+-panel layouts too, not just exactly two panels
150
+ — this formula still only accounts for the plain percent `min`, though: with `panelConstraints`
151
+ set, a panel's real achievable range can be narrower (or expressed in px) than what
152
+ `aria-valuemin`/`aria-valuemax` report. Each divider also now has its own `aria-label` ("Resize
153
+ divider between panel N and panel N+1") distinguishing it from any other divider in a
154
+ multi-divider layout.
155
+ - infeasible aggregate constraints (for example, three panels with `min=40`) are reported through
156
+ `lr-split-constraints-invalid`; interaction rejects that set and uses a normalized percent minimum
157
+ with aggregate slack, so the divider remains operable instead of silently freezing.
158
+ - concurrent drags are tracked per `pointerId` (not a single scalar), so a multi-touch drag on two
159
+ different dividers moves both independently instead of the second pointer clobbering the first's
160
+ drag state; `pointercancel`/`lostpointercapture` (not just `pointerup`) both end a drag.
161
+ - `localStorage.getItem`/`setItem` calls are now both wrapped in their own `try`/`catch` (in addition
162
+ to the `JSON.parse` result already being caught), so a blocked or quota-exceeded store fails
163
+ silently instead of throwing from inside a `pointerup`/`keydown` handler. A persisted layout whose
164
+ panel count no longer matches, or whose sizes are already below the current `min` floor, is
165
+ rejected rather than restored.
166
+ - Pointer-drag lifecycle (pointer capture, window-listener cleanup on both drag-end and
167
+ `disconnectedCallback`) is solid and safe to rely on.
168
+ - `orientationBreakpoint` shares its `[part='base']` `ResizeObserver` with `collapse` (one observer,
169
+ not two) — arming logic covers either feature being opted into independently.
170
+ - **Picking a basis.** `orientationBreakpointBasis='container'` (the default) observes the
171
+ component's own allocated inline size, so it fits a component that is the sole flex/grid item in
172
+ the container being measured. It does **not** fit a component sitting beside a fixed-width sibling
173
+ in a row that stacks via a CSS `@media` rule: while the row is a row, this element's width shrinks
174
+ with the viewport; the instant the row stacks (a pure-CSS event no component can observe) it jumps
175
+ to the *full* row width — wider than it was just before the transition. Because the measured width
176
+ is not monotonic across that transition, no single container threshold both stays wide while the
177
+ row is a row and goes narrow exactly when it stacks. A fixed-width sibling is worse still: its own
178
+ width never changes with the viewport at all, so no container breakpoint on it can react to the
179
+ stacking.
180
+ That layout is what `orientationBreakpointBasis='viewport'` is for. Give every sibling the same
181
+ `orientation-breakpoint` and `orientation-breakpoint-basis='viewport'` and they flip together, in
182
+ lockstep with the CSS rule that stacks the row:
183
+ ```html
184
+ <lr-stepper orientation-breakpoint="56.25rem" orientation-breakpoint-basis="viewport"></lr-stepper>
185
+ <lr-split orientation-breakpoint="56.25rem" orientation-breakpoint-basis="viewport"></lr-split>
186
+ <style>@media (max-width: 56.25rem) { .shell { flex-direction: column; } }</style>
187
+ ```
188
+ A consumer-side `matchMedia()` controller driving the `orientation` attribute directly is still
189
+ supported and still correct — it is simply no longer required for this case.
190
+
191
+ ---
@@ -0,0 +1,47 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/viewers.md — do not edit this file. -->
2
+
3
+ # `lr-spreadsheet-viewer`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/viewers/spreadsheet-viewer/spreadsheet-viewer.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSpreadsheetViewer`, also available unregistered from `@aceshooting/lyra-ui/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js`
7
+ - **Family** `components/viewers/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** `xlsx` — see `llms/peers.md`
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-spreadsheet-viewer`
14
+
15
+ Fetches and renders `.xlsx` and `.xls` workbooks with the optional `xlsx` (SheetJS) peer. Multiple
16
+ worksheets render through a `<lr-tabs>` switcher, and body rows use `<lr-virtual-list>`.
17
+
18
+ Adopts `DocumentAnchorTarget`: a `cell-range` anchor addresses one sheet's raw grid, 1-based, with
19
+ its header row included, resolving the target sheet from the anchor's own `sheet` field (falling
20
+ back to a `Sheet!`-prefixed `range`, then the active sheet); `scrollToAnchor()` switches
21
+ `<lr-tabs>`'s active tab first when needed, then scrolls the addressed row/column into view.
22
+ `highlights` paint as a focusable `part="cell-highlight"`.
23
+
24
+ **Properties:** `src` and `name` are strings. `anchorKinds` is a readonly `['cell-range']` (this
25
+ viewer's supported `LyraAnchor.kind` values for the shared anchor-target contract).
26
+
27
+ **Methods:** `search(query)` resolves the match count across every sheet's stringified cell values,
28
+ ordered sheet then row then column, switching tabs as navigation crosses sheets (empty/whitespace
29
+ query behaves like `clearSearch()`); `searchNext()`/`searchPrevious()` advance/step back through
30
+ matches (wrapping, resolving `false` when there are none); `clearSearch()` clears the query,
31
+ matches, and painted marks.
32
+
33
+ **Events:** `lr-render-error` with `detail.error` when fetching or parsing fails.
34
+ `lr-highlight-activate` (`detail: { id }`) — a `highlights` cell was clicked or activated via
35
+ Enter/Space. `lr-anchor-result` (`detail: { found }`) — fired after an `anchor` assignment or a
36
+ `scrollToAnchor()` call. `lr-search-change` (`detail: { query, matchCount, activeIndex }`) — from
37
+ `search()`/`searchNext()`/`searchPrevious()`/`clearSearch()`.
38
+
39
+ **CSS parts:** `base`, `tabs`, `sheet`, `header-row`, `data-row`, `cell`, `cell-highlight` (a cell
40
+ covered by a `highlights` entry), `rows`, `spinner`, and `error`.
41
+
42
+ **Optional peer dependency:** install `xlsx` with `pnpm add https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz`. The official CDN matches the
43
+ `.xlsx` and `.xls` MIME types and filename extensions.
44
+
45
+ Remote resources are capped at 25 MB, and each parsed sheet at 10,000 rows and 1,000 columns;
46
+ exceeding any of these surfaces the localized `documentPreviewResourceTooLarge` message instead of
47
+ the workbook.