@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,91 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/forms.md — do not edit this file. -->
2
+
3
+ # `lr-swatch-picker`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/forms/swatch-picker/swatch-picker.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSwatchPicker`, also available unregistered from `@aceshooting/lyra-ui/components/forms/swatch-picker/swatch-picker.class.js`
7
+ - **Family** `components/forms/` — 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-swatch-picker`
14
+
15
+ A single-select picker over a small, fixed set of color swatches with the WAI-ARIA APG
16
+ `radiogroup` contract built in: `role="radiogroup"`/`role="radio"`, roving tabindex, automatic
17
+ activation (click or arrow-key move both select immediately, like a native radio group), cyclic
18
+ Arrow/Home/End navigation. First-party invention (no Web Awesome equivalent). Distinct from
19
+ `lr-color-picker`'s freeform native color input — this picks exactly one of N designer-chosen
20
+ named colors, the shape apps otherwise hand-roll as a row of round accent-color buttons.
21
+
22
+ **Properties:**
23
+ - `options: SwatchOption[] = []` (attribute: false) — `SwatchOption { value: string; color: string;
24
+ label: string; icon?: unknown }`; `color` is any CSS color string used as the swatch fill, `label`
25
+ is each swatch's accessible name and `title`. `icon` is an optional custom shape (e.g. a gem
26
+ glyph) rendered *instead of* the plain filled circle; the swatch sets `color: <option color>` so a
27
+ `currentColor`-based SVG picks the option's color up automatically, matching
28
+ `<lr-segmented>`'s `SegmentedItem.icon`.
29
+ - `value: string | null = null` — the currently selected option's `value` (controlled); `null`
30
+ leaves nothing selected while keeping the first swatch tabbable.
31
+ - `label: string = ''` — accessible name copied to the internal `role="radiogroup"`; when empty, a
32
+ host-level `aria-label` is used as a fallback.
33
+
34
+ **Events:** `lr-change` (`detail: { value }`) — fired only when the selected value actually
35
+ changes via click or keyboard (re-selecting the current swatch is a no-op).
36
+
37
+ **Slots:** none.
38
+
39
+ **CSS parts:** `base` (the `role="radiogroup"` root), `swatch` (a single `role="radio"` color
40
+ swatch's interactive hit target, floored at the shared `--lr-icon-button-size` tap size; the
41
+ selected one is `[part='swatch'][aria-checked='true']`), `swatch-fill` (the compact
42
+ `--lr-size-1-5rem` filled circle inside it, rendered when the option has no `icon`), `swatch-icon`
43
+ (the option's `icon` shape, rendered in its place when it has one). Exactly one of
44
+ `swatch-fill`/`swatch-icon` is mounted per swatch, so the two never coexist.
45
+
46
+ **Themeable custom properties:** `--lr-swatch-picker-selected-color` (ring color around the
47
+ selected swatch, defaults to `--lr-color-brand`, themeable independently of the focus ring),
48
+ `--lr-swatch-picker-selected-blur` (default `0` — a crisp ring; set a real length such as `0.4rem`
49
+ for a soft glow. It is the blur radius of `swatch-fill`'s `box-shadow` ring, and of the equivalent
50
+ `drop-shadow()` used for `swatch-icon`, since `box-shadow` can't follow a slotted icon's real
51
+ shape), `--lr-swatch-picker-shine-duration` (default `0s`, a no-op; set a duration such as `1.6s`
52
+ for a looping brighten-and-settle pulse on the selected swatch. It drives a separate
53
+ `filter: brightness()` keyframe rather than `box-shadow`, so it composes with the blur token and
54
+ works identically for a fill and an icon; disabled outright under `prefers-reduced-motion: reduce`,
55
+ which also drops the hover/selection scale transition); plus
56
+ shared tokens — `--lr-color-border`/`-brand`, `--lr-icon-button-size`, `--lr-space-xs`,
57
+ `--lr-size-1-5rem`, `--lr-border-width-thin`/`-thick`, `--lr-radius`, `--lr-transition-fast`,
58
+ `--lr-focus-ring-*`.
59
+
60
+ **Optional peer deps:** none.
61
+
62
+ ```html
63
+ <lr-swatch-picker label="Accent color"></lr-swatch-picker>
64
+ <script type="module">
65
+ const picker = document.querySelector('lr-swatch-picker');
66
+ picker.options = [
67
+ { value: 'blue', color: '#0969da', label: 'Blue' },
68
+ { value: 'green', color: '#1a7f37', label: 'Green' },
69
+ { value: 'purple', color: '#8250df', label: 'Purple' },
70
+ ];
71
+ picker.value = 'green';
72
+ picker.addEventListener('lr-change', (e) => console.log(e.detail.value));
73
+ </script>
74
+ ```
75
+
76
+ **Known gotchas:**
77
+ - arrow-key navigation cycles (past the last swatch wraps to the first, and vice versa) rather than
78
+ clamping, and self-selects on move — arrow-navigating to a swatch immediately updates `value` and
79
+ fires `lr-change`, there's no separate commit step.
80
+ - under RTL (nearest `dir="rtl"` ancestor) `ArrowLeft`/`ArrowRight` swap which direction they move.
81
+ - each swatch's fill comes from its option's `color`, applied through a per-swatch custom property
82
+ set inline on `[part='swatch']` and read by `[part='swatch-fill']`, so a consumer's
83
+ `::part(swatch-fill)` `background-color` rule can still override it.
84
+ - style the selected state through `--lr-swatch-picker-selected-color`/`-selected-blur`/
85
+ `-shine-duration`, not through `::part(swatch)[aria-checked='true']` from outside: the CSS Shadow
86
+ Parts spec only allows a fixed set of pseudo-classes after `::part()`, not arbitrary attribute
87
+ selectors, so that combinator can silently fail to match depending on the engine.
88
+ - the semantic `radiogroup` lives inside shadow DOM. Set `label` (preferred for reactive code) or a
89
+ host `aria-label`; the component deliberately forwards the resulting name to that internal role.
90
+
91
+ ---
@@ -0,0 +1,82 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/forms.md — do not edit this file. -->
2
+
3
+ # `lr-switch`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/forms/switch/switch.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraSwitch`, also available unregistered from `@aceshooting/lyra-ui/components/forms/switch/switch.class.js`
7
+ - **Family** `components/forms/` — 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-switch`
14
+
15
+ A boolean toggle-switch form control. `role="switch"` with `aria-checked` read as an on/off state
16
+ rather than checked/unchecked, and no indeterminate state. Structurally the same idea as
17
+ `<lr-checkbox>` (form-associated via `ElementInternals`, click and Space/Enter both toggle).
18
+ Ships an opt-in `hint`/`errorText` form-control chrome (props + matching named slots + `hint`/`error`
19
+ CSS parts), mirroring `<lr-select>`'s pattern for those two pieces — left unset, neither renders.
20
+ Deliberately no separate top-of-field `label` prop/slot/part: the default slot already is this
21
+ control's visible, clickable label (same as `<lr-checkbox>`).
22
+
23
+ **Properties:**
24
+ - `checked: boolean = false` (reflected)
25
+ - `disabled: boolean = false` (reflected)
26
+ - `required: boolean = false` (reflected — enforced via `internals.setValidity()`)
27
+ - `name: string = ''`
28
+ - `value: string = 'on'` — only contributed to form submission while `checked`
29
+ - `hint: string = ''` — hint text below the switch. Unset: no hint chrome renders.
30
+ - `errorText: string = ''` (attribute `error-text`) — error text below the switch (overridden by
31
+ slotted `error` content). Unset: no error chrome renders.
32
+
33
+ **Events:** `lr-change` (`detail: { checked: boolean }`) — fired on a user toggle (click or
34
+ Space/Enter); not fired for a programmatic `.checked` assignment.
35
+
36
+ **Methods:** `focus(options?)` and `blur()` forward to the internal switch control.
37
+
38
+ **Slots:**
39
+ - default — label text, rendered next to the track. Clicking it toggles the switch, the same as
40
+ clicking a checkbox's associated `<label>`. If left empty, set `aria-label` on the host so the
41
+ control still has an accessible name.
42
+ - `hint` — custom hint content.
43
+ - `error` — custom error content.
44
+
45
+ **CSS parts:** `form-control` (the outer wrapper around the switch, error and hint), `base` (the
46
+ whole interactive control, `role="switch"`), `track` (the pill-shaped background), `thumb` (the
47
+ circular knob that slides across the track), `label` (wrapper around the default slot), `hint` (the
48
+ hint message), `error` (the error message)
49
+
50
+ **Themeable custom properties:** `--lr-switch-track-inline-size` (default `2.25rem`),
51
+ `--lr-switch-track-block-size` (default `1.25rem`), `--lr-switch-thumb-offset` (default
52
+ `2px`) — component-local geometry knobs, set on `:host`, since a fully-rounded pill/thumb needs
53
+ a radius well past the shared `--lr-radius` default — plus shared tokens
54
+ `--lr-space-s`, `--lr-color-border/-brand/-surface/-text`,
55
+ `--lr-transition-fast`, `--lr-focus-ring-width/-color/-offset`, `--lr-opacity-disabled`.
56
+
57
+ **Optional peer deps:** none.
58
+
59
+ ```html
60
+ <lr-switch name="notifications" checked>Enable notifications</lr-switch>
61
+ <script type="module">
62
+ document
63
+ .querySelector('lr-switch')
64
+ .addEventListener('lr-change', (e) => console.log(e.detail.checked));
65
+ </script>
66
+ ```
67
+
68
+ Form-associated the same way as `<lr-checkbox>`: a directly-attached `ElementInternals` with a
69
+ hand-rolled `updateValidity()`, not the shared `FormAssociated` mixin. The thumb animates the
70
+ logical `inset-inline-start` property (not a physical `transform: translateX()`), so the slide
71
+ direction mirrors correctly under `dir="rtl"`.
72
+ Session-history/autofill restoration uses the same explicit `checked`/`unchecked` state tokens as
73
+ checkbox and does not emit `lr-change`.
74
+
75
+ **Known gotchas:**
76
+ - `formResetCallback()` restores `checked` to the value captured from the declarative `checked`
77
+ attribute at first connect (same one-shot-flag capture as `<lr-checkbox>`) — a later `.checked =
78
+ true` property assignment never redefines what `form.reset()` restores to.
79
+ - The rendered `aria-label` is copied from the host's own `aria-label` attribute at render time; with
80
+ neither that nor slotted label text, the control has no accessible name.
81
+
82
+ ---
@@ -0,0 +1,201 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/data.md — do not edit this file. -->
2
+
3
+ # `lr-table`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/data/table/table.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraTable`, also available unregistered from `@aceshooting/lyra-ui/components/data/table/table.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-table`
14
+
15
+ Sort/select-aware data table. Sorting remains consumer-controlled; optional filtering, pagination,
16
+ and loading chrome are built in while remaining controlled at the public API boundary. A
17
+ `columns[].heatValue`-opted-in heat-tint mode paints a shared, normalized color-mix background across
18
+ every tinted cell (auto-derived domain, or overridden via `heatTintScale`); `rowTotal`/`grandTotal`
19
+ add a trailing totals column mirroring `expandedContent`'s leading one — `rowTotal(row)` renders
20
+ per-row, `grandTotal(rows)` renders at its intersection with the footer row — both sharing `footer`'s
21
+ own "consumer computes/renders" contract rather than assuming addition.
22
+
23
+ **Properties:**
24
+ - `columns: TableColumn<T>[] = []` (attribute: false) — `{ key, label, headerCell?, width?,
25
+ minWidth?, maxWidth?, resizable?, sortable?, align?: 'start'|'end', priority?: 'medium'|'low', sticky?: boolean |
26
+ 'start' | 'end', footer?, cellStyle?, heatValue?, cell: (row) => unknown }` —
27
+ `priority` progressively hides that column via a `@container` query as `[part='base']` narrows
28
+ (`'low'` hides first, under a ~900px container width; `'medium'` next, under ~640px; both
29
+ breakpoints are fixed in `table.styles.ts`, not themeable tokens), reversible via
30
+ `[part='reveal-columns-button']`; `sticky` pins that column's header/cells to the logical start
31
+ (`true`/`'start'`) or end edge while the table scrolls horizontally — multiple sticky columns stack
32
+ in logical order (each measures every earlier sticky column's rendered width via
33
+ `--lr-table-sticky-offset`) instead of overlapping at the same edge; `footer` renders a
34
+ sticky-bottom footer cell for that column, computed from every currently-rendered row (post-sort,
35
+ pre-pagination) — e.g. a column total — omit it for a column with no footer value, and a
36
+ `[part='foot']` (`<tfoot>`) only renders at all when at least one column defines `footer`;
37
+ `heatValue(row) => number | null | undefined` opts a column into heat-tint mode: its presence on
38
+ any column is the opt-in signal (no separate boolean), a `null`/`undefined` return excludes that
39
+ cell from both the domain and the tint ("no data", not "zero"), and every `heatValue`-defining
40
+ column shares one normalized `color-mix()` background scale (see `heatTintScale` below) painted
41
+ via the retheme-able `--lr-table-heat-tint-lo`/`-hi` custom properties, matching `lr-heatmap`'s
42
+ own ramp-token convention; `cellStyle` is applied directly to the generated `<td>` via `styleMap` — e.g. a computed heat-tint
43
+ background a `cell()`-returned inner element can't paint into the cell's own padding — omit it for
44
+ no per-cell style override (the default, unchanged output); `editable` enables double-click
45
+ editing, `editValue` supplies the editor value, and `editType` selects `text` or `number`
46
+ `resizable` adds a focusable separator `[part='resize-handle']` and emits `lr-column-resize` with
47
+ the live width in CSS pixels. Drag it, or use logical ArrowLeft/ArrowRight for 10px steps (mirrored
48
+ under RTL), Shift+Arrow for 50px steps, Home for the minimum, and End for an explicit pixel
49
+ `maxWidth`; explicit pixel `minWidth`/`maxWidth` values bound both input paths. The separator
50
+ exposes its current/minimum/bounded-maximum pixel width through ARIA value attributes.
51
+ - `columnsHidden: boolean = false` (attribute `columns-hidden`, reflected) — computed/read-only: true
52
+ when a `priority` column is *actually* hidden right now by the `@container` breakpoints above, or
53
+ `showAllColumns` force-visible mode is currently active. Measured via a `ResizeObserver` on
54
+ `[part='base']` plus a post-render DOM check, so it settles one render cycle after a `columns`/
55
+ `rows`/width change lands — poll for the settled value (e.g. `await el.updateComplete;` twice, or
56
+ `waitUntil()`) rather than assuming a single `updateComplete` covers it. Setting it directly has no
57
+ lasting effect; it's recomputed on the next render or resize. `[part='reveal-columns-button']` now
58
+ renders exactly when `columnsHidden` is true — no longer whenever any column merely *declares* a
59
+ `priority` regardless of whether anything is actually hidden
60
+ - `rows: T[] = []` (attribute: false)
61
+ - `sortKey: string = ''` (attribute `sort-key`)
62
+ - `sortDir: 'asc'|'desc' = 'asc'` (attribute `sort-dir`)
63
+ - `rowKey?: (row: T) => string | number` (attribute: false) — derives each row's stable identity for
64
+ DOM-reconciliation and the delegated row click/keydown lookup; falls back to the row's array index
65
+ when omitted, which is only safe while `rows` never reorders — set it whenever `rows` can be
66
+ sorted/filtered/re-ordered across renders, or selection/click can silently attach to the wrong row
67
+ - `selectedKey: string | number | null = null` (attribute: false) — **single**-selection only
68
+ - `selectionMode: 'none'|'single'|'multiple' = 'none'` (attribute `selection-mode`, reflected) —
69
+ opt-in self-managed row selection; the default remains presentational
70
+ - `selectedKeys: Set<string | number> = new Set()` (attribute: false) — the selected raw row keys
71
+ used by multiple selection
72
+ - `filterable: boolean = false` (attribute `filterable`, reflected) — renders a localized search
73
+ field above the grid
74
+ - `filterText: string = ''` (attribute `filter-text`) — controlled filter text
75
+ - `filter?: (row: T, text: string) => boolean` (attribute: false) — typed predicate used by the
76
+ filter field; when omitted, rows are matched against their JSON representation
77
+ - `filterLabel: string = ''` (attribute `filter-label`) and `filterPlaceholder: string = ''`
78
+ (attribute `filter-placeholder`) — optional localized-label overrides
79
+ - `spellcheck: boolean = true`, `autocapitalize: string = ''`, `autoCorrect: string = ''`
80
+ (attribute `autocorrect`) — forwarded to the filter input and, for a `'text'` (the default)
81
+ `editType`, the inline cell editor; no effect on a `'number'` cell editor. `spellcheck="false"`
82
+ is parsed as `false` via a string-aware converter (Lit's default presence-based boolean
83
+ converter would otherwise treat any attribute value, including the literal string `"false"`, as
84
+ `true`).
85
+ - `loading: boolean = false` (attribute `loading`, reflected) and `loadingLabel: string = ''`
86
+ (attribute `loading-label`) — renders a busy spinner and suppresses the grid while loading
87
+ - `pageSize: number = 0` (attribute `page-size`) — positive values enable controlled pagination;
88
+ zero disables the pagination footer
89
+ - `page: number = 1` (attribute `page`, reflected) — controlled current page
90
+ - `totalItems: number = -1` (attribute `total-items`) — server-side total item count; `-1` derives
91
+ the total from filtered rows
92
+ - `paginationMode: 'client'|'server' = 'client'` (attribute `pagination-mode`, reflected) — client
93
+ mode slices rows; server mode renders the supplied page unchanged
94
+ - Editable columns emit `lr-cell-edit` on commit and never mutate the supplied row object.
95
+ - `groupBy?: (row: T) => string | number` (attribute: false) — inserts a non-focusable full-width
96
+ group row before each group
97
+ - `groupLabel?: (key: string | number, rows: T[]) => unknown` (attribute: false) — custom group
98
+ header content; without it, the group key is rendered as text
99
+ - `expandedContent?: (row: T) => unknown` (attribute: false) — enables a leading expand toggle and
100
+ renders a full-width detail row beneath expanded records
101
+ - `canExpand?: (row: T) => boolean` (attribute: false) — optional per-row gate for expansion
102
+ - `expandedKeys: Set<string | number> = new Set()` (attribute: false) — consumer-controlled expanded
103
+ state; update it in response to `lr-row-expand-toggle`
104
+ - `hasMore: boolean = false` (attribute `has-more`, reflected)
105
+ - `moreLabel: string = 'Load more'` (attribute `more-label`)
106
+ - `emptyHeading: string = 'No data'` (attribute `empty-heading`)
107
+ - `emptyDescription: string = ''` (attribute `empty-description`)
108
+ - `noColumnsHeading: string = 'No columns configured'` (attribute `no-columns-heading`)
109
+ - `noColumnsDescription: string = ''` (attribute `no-columns-description`)
110
+ - `revealColumnsLabel: string = 'Show all columns'` (attribute `reveal-columns-label` — the
111
+ reveal-button's label while `priority`-hidden columns are hidden)
112
+ - `hideColumnsLabel: string = 'Show fewer columns'` (attribute `hide-columns-label` — the same
113
+ button's label once they've been revealed)
114
+ - `showAllColumns: boolean = false` (attribute `show-all-columns`, reflected) — forces responsive
115
+ priority columns visible and is updated by the built-in reveal button
116
+ - `heatTintScale?: { min?: number; max?: number }` (attribute: false) — overrides the auto-derived
117
+ heat-tint domain (min/max of every `heatValue` result across every currently-rendered row —
118
+ post-sort, pre-pagination, the same rows `footer(rows)` already sees). Unset (the default) computes
119
+ the domain automatically from the data, spanning every `heatValue`-defining column together — a
120
+ single shared scale across the whole grid, not one scale per column
121
+ - `rowTotal?: (row: T) => unknown` (attribute: false) — renders a trailing `<td>`
122
+ (`[part='row-total-cell']`) on every body row holding this row's total. Same "consumer
123
+ computes/renders, table only positions" contract as the existing per-column `footer(rows)` — does
124
+ not assume addition, so a non-sum aggregate works identically. Omit for no trailing column at all
125
+ (unchanged output)
126
+ - `grandTotal?: (rows: T[]) => unknown` (attribute: false) — renders the bottom-right cell (row-total
127
+ column × footer row). Only rendered when both `rowTotal` is set **and** at least one column defines
128
+ `footer` — otherwise there is no footer row for it to occupy, and this renders nothing
129
+
130
+ **Events:** `lr-sort` (`detail: { key }`, fired on sortable-header activation), `lr-row-click`
131
+ (`detail: { row }`), `lr-load-more` (fired on the "load more" button), `lr-columns-hidden-change`
132
+ (`detail: { hidden: boolean }`, fired only on a real `columnsHidden` transition),
133
+ `lr-columns-revealed` (`detail: { revealed: boolean }`), and `lr-row-expand-toggle`
134
+ (`detail: { row, key }`; the table does not mutate `expandedKeys`), and
135
+ `lr-selection-change` (`detail: { keys }`) when selection is enabled, `lr-filter-change`
136
+ (`detail: { text }`), and `lr-page-change` (`detail: { page }`) from the controlled
137
+ filter/pagination surfaces, and `lr-cell-edit` (`detail: { row, key, value }`) for editable
138
+ columns, and `lr-column-resize` (`detail: { key, width }`) on every pointer or keyboard resize step.
139
+ The internal filter/cell-editor native inputs' `focus` and `blur` are also re-dispatched from the
140
+ host as bubbling, composed events (the native ones are neither).
141
+
142
+ **Slots:** none — content comes entirely from `columns`/`rows`.
143
+
144
+ **CSS parts:** `base`, `table`, `head`, `header-cell`, `row`, `cell`, `more-button`, `sort-icon` (a
145
+ chevron indicator shown on the active sortable header, rotated per `sortDir`), `reveal-columns-button`
146
+ (shown only when `columnsHidden` is true), `foot` (the `<tfoot>`, only rendered when at least one
147
+ column defines `footer`), `footer-row`, `footer-cell`, `row-total-cell` (each body row's trailing
148
+ `<td>` holding `rowTotal(row)`, rendered only when `rowTotal` is set — the corresponding footer-row
149
+ cell, holding `grandTotal`, is a `footer-cell` instead, matching every other footer cell),
150
+ `expand-toggle-cell`, `row-expand-toggle`,
151
+ `row-expand-icon`, `expanded-row`, `expanded-cell`, `filter-label`, `filter`, `loading`, and
152
+ `pagination`, `cell-editor`, `group-row`, `group-cell`, and `resize-handle` (the focusable column
153
+ separator)
154
+
155
+ **Themeable custom properties:** `--lr-table-max-height` (default `none`; controls the scrollable
156
+ body's `max-block-size`). `--lr-table-heat-tint-lo` (default `var(--lr-color-brand-quiet)`) and
157
+ `--lr-table-heat-tint-hi` (default `var(--lr-color-brand)`) — the `color-mix()` ramp endpoints
158
+ for heat-tint mode's per-cell background, consulted only on columns/rows that define `heatValue`;
159
+ `--lr-table-resize-min-width` (default `var(--lr-size-3rem)`) and
160
+ `--lr-table-resize-handle-opacity` (default `0.12`) control resizable-column behavior.
161
+
162
+ **Optional peer deps:** none.
163
+
164
+ ```html
165
+ <lr-table id="t" sort-key="name" sort-dir="asc"></lr-table>
166
+ <script type="module">
167
+ const t = document.getElementById('t');
168
+ t.columns = [
169
+ { key: 'name', label: 'Name', sortable: true, cell: (r) => r.name },
170
+ { key: 'value', label: 'Value', align: 'end', cell: (r) => r.value },
171
+ ];
172
+ t.rows = [{ name: 'Alpha', value: 1 }, { name: 'Beta', value: 2 }];
173
+ t.rowKey = (r) => r.name;
174
+ t.addEventListener('lr-sort', (e) => console.log('sort by', e.detail.key));
175
+ t.addEventListener('lr-row-click', (e) => console.log('clicked', e.detail.row));
176
+ </script>
177
+ ```
178
+
179
+ **Known gotchas:**
180
+ - only single-row selection is modeled (`selectedKey: string | number | null`);
181
+ there's no bulk-select/checkbox-column API — you must hand-roll a checkbox column entirely inside
182
+ a `cell()` callback if you need multi-select.
183
+ - no `caption`/`aria-label` *property* exists, but a plain `aria-label` HTML attribute set on the
184
+ host **is** forwarded into the shadow-DOM `<table role="grid">` (read via
185
+ `this.getAttribute('aria-label')` at render time — a plain global-attribute read, not a reactive
186
+ Lit `@property`): `<lr-table aria-label="Scores">` gives the grid an accessible name; omit it and
187
+ the shadow table simply has none.
188
+ - Full roving-tabindex grid keyboard pattern (one `tabindex="0"` stop among header cells, one among
189
+ body rows) — Left/Right/Home/End move within the header row, Up/Down/Home/End move within the
190
+ body, Down from the header enters the body's roving stop and Up from the body's first row returns
191
+ to the header, Enter/Space still only sort/activate — a genuine strength versus most siblings in
192
+ this family. A `priority`-hidden header/cell is skipped when computing the visible header stops,
193
+ so arrow-key navigation never strands the roving stop on a hidden column.
194
+ - a `cell()` template can render its own interactive content without it being swallowed by
195
+ row/column activation: clicks and Enter/Space landing on (or bubbling through) anything matching
196
+ `button, a[href], input, select, textarea, [role="button"], [role="combobox"], [role="listbox"],
197
+ [role="slider"]`, **or any custom element** (any tag name containing a hyphen — e.g. a
198
+ `<lr-select>`/`<lr-combobox>` rendered inside a `cell()`), are left alone by the table's own
199
+ delegated `click`/`keydown` handlers instead of triggering `lr-sort`/`lr-row-click`.
200
+
201
+ ---
@@ -0,0 +1,80 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->
2
+
3
+ # `lr-tabs`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/layout/tabs/tabs.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraTabs`, also available unregistered from `@aceshooting/lyra-ui/components/layout/tabs/tabs.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-tabs`
14
+
15
+ A tab strip whose panels are direct light-DOM children, each carrying `slot="<id>"` (the panel's
16
+ stable id) and `label="<text>"` (the tab button's text). One named `<slot>` is rendered per distinct
17
+ `slot` name found among the current children — a child with no `label`, or a name with no matching
18
+ child, simply never produces a tab. Implements the WAI-ARIA APG tabs pattern with automatic
19
+ activation: Left/Right (swapped under RTL) move focus *and* selection together, Home/End jump to the
20
+ first/last enabled tab, and a roving `tabindex` follows whichever tab is currently selected.
21
+
22
+ A tab button's *visible* content can carry a leading icon without ever changing its *accessible
23
+ name* (always exactly `label`'s text): give a tab an extra direct-child sibling of `<lr-tabs>`
24
+ carrying `slot="<id>-icon"` (that sibling's own content — inline SVG, emoji span, a custom icon
25
+ element, anything — is entirely up to the consumer). It renders ahead of the label inside that tab's
26
+ button, wrapped in an `aria-hidden="true"` `[part="tab-icon"]` so it's excluded from accessible-name
27
+ computation regardless of content. A tab with no matching `<id>-icon` sibling renders no icon
28
+ wrapper at all, so existing text-only tabs are unaffected.
29
+
30
+ **Properties:**
31
+ - `active: string = ''` (reflected) — the active tab's `slot`/id; falls back to the first enabled
32
+ tab whenever the current value doesn't resolve to one (including on every children/attribute
33
+ change, tracked via a `MutationObserver`)
34
+ - `accessibleLabel: string | null = null` (attribute `aria-label`) — accessible name applied to the
35
+ `role="tablist"` strip; attribute-reflects from a host-level `aria-label`. Unset, the tablist
36
+ renders without an `aria-label` (there is no localized default name).
37
+
38
+ **Events:** `lr-tabs-change` (`detail: { tabId: string }`) — fired when the active tab changes via
39
+ click or keyboard. Not fired when `active` self-corrects to a valid tab (initial default, or a tab
40
+ disappearing/becoming disabled underneath the current selection).
41
+
42
+ **Slots:** default — direct children with `slot="<id>" label="<text>"` (and optionally `disabled`);
43
+ one becomes each tab's panel. `<id>-icon` — optional sibling direct child supplying a tab's leading
44
+ icon content; excluded from the tab button's accessible name.
45
+
46
+ **CSS parts:** `base` (root wrapper around the tablist and panels), `tablist` (the `role="tablist"`
47
+ row of tab buttons), `tab` (a single tab button), `tab-icon` (the optional leading-icon wrapper
48
+ inside a tab button; only rendered when that tab has a matching `<id>-icon` sibling), `panel` (a
49
+ single `role="tabpanel"` wrapper, one per tab, hidden unless active)
50
+
51
+ **Themeable custom properties:** `--lr-scroll-fade-size` (default `2rem`) — width of the static
52
+ mask fade at each horizontal scroll edge of the tablist. Otherwise shared tokens —
53
+ `--lr-space-xs/-s/-m`, `--lr-color-border/-text-quiet/-text/-brand`, `--lr-transition-fast`,
54
+ `--lr-radius`, `--lr-focus-ring-width/-color/-offset`, `--lr-opacity-disabled`.
55
+
56
+ **Optional peer deps:** none.
57
+
58
+ ```html
59
+ <lr-tabs active="general">
60
+ <div slot="general" label="General">General settings…</div>
61
+ <div slot="advanced" label="Advanced" disabled>Advanced settings…</div>
62
+ </lr-tabs>
63
+ <script type="module">
64
+ document.querySelector('lr-tabs').addEventListener('lr-tabs-change', (e) => console.log(e.detail.tabId));
65
+ </script>
66
+ ```
67
+
68
+ **Known gotchas:**
69
+ - Tabs are rebuilt from direct children via a `MutationObserver` watching `childList` plus
70
+ `attributeFilter: ['slot', 'label', 'disabled']` — not `slotchange` — because a brand-new tab's
71
+ `slot` name has no matching `<slot>` to fire `slotchange` on until this component has already
72
+ rendered one for it, and neither `slotchange` nor any Lit lifecycle hook observes a plain
73
+ attribute edit on a light-DOM child at all.
74
+ - If two children share the same `slot` name, the *first* one wins for the tab button's label
75
+ (matches native slot assignment: both would render into the one panel, but only one label can back
76
+ the button).
77
+ - Left/Right are swapped under RTL (read via `internal/rtl.ts`'s `isRtl()`); Up/Down are not used —
78
+ this is a horizontal strip only.
79
+
80
+ ---
@@ -0,0 +1,25 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/overlays.md — do not edit this file. -->
2
+
3
+ # `lr-tag`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/overlays/badge/tag.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraTag`, also available unregistered from `@aceshooting/lyra-ui/components/overlays/badge/tag.class.js`
7
+ - **Family** `components/overlays/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Documented with** `lr-badge` (same section below)
10
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
11
+
12
+ ---
13
+
14
+ ## `lr-badge` and `lr-tag`
15
+
16
+ Compact status labels. Both expose `variant: 'neutral' | 'brand' | 'success' | 'warning' | 'danger'`.
17
+ The two tags share the same visual contract; `lr-tag` is a semantic alias for migration-friendly
18
+ markup.
19
+
20
+ **Slots:** default content. **CSS parts:** `base`.
21
+
22
+ **Themeable custom properties:** `--lr-badge-background`, `--lr-badge-color`, `--lr-badge-border`
23
+ — the trio each `:host([variant])` rule rewrites (`neutral` defaults to
24
+ `--lr-color-surface`/`-text`/`-border`; the other four to the matching `*-quiet` fill with the loud
25
+ color for text and border). Set one directly on the element for a tint outside the five variants.
@@ -0,0 +1,42 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
2
+
3
+ # `lr-task-list`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/agent-tools/task-list/task-list.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraTaskList`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/task-list/task-list.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-task-list`
14
+
15
+ A live, collapsible tracker for an agent's plan: ordered steps with per-step lifecycle status and one
16
+ level of nested sub-steps, embedded in the transcript. `items` is controlled and never mutated by this
17
+ component. Unlike `<lr-stepper>`'s single-`current` navigation, task-list is a read-only status
18
+ report: several steps may be `running` at once, there is no selection, and status changes are
19
+ announced through an internal `<lr-live-region>`.
20
+
21
+ **Properties:** `items: TaskItem[] = []` (attribute: false) — `TaskItem { id: string; label: string;
22
+ status: TaskStatus; detail?: string; children?: TaskItem[] }` with `TaskStatus = 'pending' |
23
+ 'running' | 'success' | 'error'` (both exported here). `detail` is an optional secondary plain-text
24
+ line; `children` is exactly **one** level of sub-steps — a child's own `children` is ignored with a
25
+ `console.warn`. `label: string = 'Tasks'`, `expanded: boolean = true` (reflected), and
26
+ `collapsible: boolean = true`.
27
+
28
+ **Slots:** `detail-<id>` — dynamic, one per item id (e.g. `slot="detail-step-3"`); rich detail under
29
+ that item's label, typically a `<lr-tool-call-chip>` or file `<lr-chip>`.
30
+
31
+ **Events:** `lr-toggle` — the header was activated, expanding or collapsing the panel. `detail: {
32
+ expanded }`.
33
+
34
+ **CSS parts:** `base`, `header` (a `<button>` when `collapsible`, a plain heading otherwise), `label`,
35
+ `summary` (the visible "N of M completed" summary, top-level items only), `toggle` (the chevron
36
+ indicator, only rendered when `collapsible`), `body` (the list of items, `hidden` while collapsed),
37
+ `item` (`role="listitem"`; carries `data-status`/`data-id`/`data-depth`), `status-icon`, `item-label`,
38
+ `item-detail`, and `item-children` (the nested `role="list"` wrapper around a top-level item's
39
+ children).
40
+
41
+ **Themeable custom properties:** `--lr-task-list-spin` (default `1s linear`) — running-status icon
42
+ spin animation duration/timing.
@@ -0,0 +1,44 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
2
+
3
+ # `lr-terminal`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/agent-tools/terminal/terminal.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraTerminal`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/terminal/terminal.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-terminal`
14
+
15
+ A read-only ANSI console for streamed agent/tool output. Not a PTY: no stdin/keystroke handling, no
16
+ cursor-addressed full-screen apps.
17
+
18
+ **Properties:** `content: string = ''` — initial/replaceable buffer content, parsed for ANSI/SGR
19
+ codes. `maxScrollback: number = 5000` (attribute `max-scrollback`), `follow: boolean = true`
20
+ (reflected) — stick-to-bottom, `wrap: boolean = true` (reflected), `copyable: boolean = true`
21
+ (reflected) and `downloadable: boolean = false` (reflected) toggle the toolbar buttons, `filename:
22
+ string = 'terminal.log'`, `announceOutput: boolean = false` (attribute `announce-output`),
23
+ `accessibleLabel: string = ''` (attribute `aria-label`), `highlights: LyraHighlight[] = []` (attribute:
24
+ false), and `activeHighlightId: string | null = null` (attribute: false). `anchorKinds` is a readonly
25
+ `['page', 'text-quote', 'region']` for the shared anchor-target contract.
26
+
27
+ **Methods:** `write(text)` appends ANSI-parsed text to the buffer. `clear()` empties the buffer.
28
+ `scrollToBottom()` and `scrollToAnchor(anchor)` control scroll position. `search(query)`,
29
+ `searchNext()`, `searchPrevious()`, and `clearSearch()` drive in-buffer text search. `getPlainText()`
30
+ returns the SGR-stripped plain text of the whole buffer.
31
+
32
+ **Events:** `lr-copy` (`detail: { text }`), `lr-download` (`detail: { filename }`),
33
+ `lr-follow-change` (`detail: { following }`), `lr-search-change` (`detail: { query, matchCount,
34
+ activeIndex }`), `lr-highlight-activate` (`detail: { id }`), and `lr-text-select` (`detail: {
35
+ text, anchor, rects }`).
36
+
37
+ **CSS parts:** `base`, `toolbar` (only rendered when copy/download are enabled), `copy-button`,
38
+ `download-button`, `viewport` (the `role="log"` scrollable region), `line` (one rendered line; carries
39
+ `data-line-number`/`data-match`/`data-highlight-tone`), `jump-to-latest` (shown while `follow` is
40
+ disengaged and new output has arrived), and `announcer` (the visually-hidden `role="status"` region
41
+ used when `announce-output` is set).
42
+
43
+ **Themeable custom properties:** `--lr-terminal-height` (default `var(--lr-size-20rem)`) — the
44
+ viewport's block size.
@@ -0,0 +1,38 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/agent-tools.md — do not edit this file. -->
2
+
3
+ # `lr-test-results`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/agent-tools/test-results/test-results.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraTestResults`, also available unregistered from `@aceshooting/lyra-ui/components/agent-tools/test-results/test-results.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-test-results`
14
+
15
+ A pass/fail suite summary with per-status counts, status filter toggles, and per-test rows whose
16
+ failures auto-expand by default and can host rich slotted detail (e.g. a diff or code block)
17
+ alongside the plain failure message.
18
+
19
+ **Properties:** `suites: TestSuiteResult[] = []` (attribute: false) — `TestSuiteResult { id: string;
20
+ name: string; tests: TestCaseResult[] }` and `TestCaseResult { id: string; name: string; status:
21
+ TestStatus; durationMs?: number; message?: string }`, with `TestStatus = 'passed' | 'failed' |
22
+ 'skipped' | 'running'` (all three exported here). `statusFilter: TestStatus[] =
23
+ []` (attribute: false) — empty shows every status; and `autoExpandFailures: boolean = true`
24
+ (attribute `auto-expand-failures`).
25
+
26
+ **Slots:** `detail-{testId}` — rich failure detail for that test, rendered after its plain `message`
27
+ text once the row is expanded.
28
+
29
+ **Events:** `lr-test-select` (`detail: { suiteId: string; testId: string }`, a test row's name was
30
+ activated), `lr-filter-change` (`detail: { statuses: TestStatus[] }` — the complete next filter set; the
31
+ component updates its own `statusFilter` first, then emits),
32
+ and `lr-toggle` (`detail: { id: string; expanded: boolean }`, a row's failure detail was
33
+ expanded/collapsed).
34
+
35
+ **CSS parts:** `base`, `summary` (the status-count strip), `count` (carries `data-status`), `filter`,
36
+ `filter-toggle` (carries `data-status`/`aria-pressed`), `suite`, `suite-header`, `test` (carries
37
+ `data-status`), `test-status`, `test-name`, `test-duration`, `test-expand-toggle`, `failure`
38
+ (hidden while collapsed), and `failure-message`.