@aceshooting/lyra-ui 26.0.0 → 27.0.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 (1475) hide show
  1. package/CHANGELOG.md +63 -675
  2. package/README.md +281 -1130
  3. package/design-tokens.json +1 -1
  4. package/dist/ai/types.d.ts +5 -5
  5. package/dist/autoloader.js +1 -1
  6. package/dist/cli/agent-registry.mjs +1 -0
  7. package/dist/cli/component-inventory.mjs +1 -1
  8. package/dist/cli/init-agents.mjs +40 -0
  9. package/dist/cli/is-main-module.mjs +1 -0
  10. package/dist/cli/lyra-rename-ledger.mjs +1 -1
  11. package/dist/cli/lyra-ui.mjs +11 -0
  12. package/dist/cli/migrate-wa.mjs +4 -2
  13. package/dist/cli/migration-contract.json +1 -1
  14. package/dist/cli/migration-renames.mjs +1 -1
  15. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +1 -1
  16. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +2 -2
  17. package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
  18. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +2 -2
  19. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  20. package/dist/components/agent-tools/connector-manager/connector-manager.class.d.ts +4 -2
  21. package/dist/components/agent-tools/connector-manager/connector-manager.class.js +6 -3
  22. package/dist/components/agent-tools/connector-manager/connector-manager.d.ts +1 -1
  23. package/dist/components/agent-tools/connector-manager/connector-manager.js +1 -1
  24. package/dist/components/agent-tools/connector-manager/connector-manager.styles.js +1 -1
  25. package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +2 -2
  26. package/dist/components/agent-tools/context-inspector/context-inspector.class.js +6 -6
  27. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +8 -33
  28. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +27 -4
  29. package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
  30. package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
  31. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
  32. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
  33. package/dist/components/agent-tools/permission-grant/permission-grant.class.d.ts +4 -2
  34. package/dist/components/agent-tools/permission-grant/permission-grant.class.js +6 -3
  35. package/dist/components/agent-tools/permission-grant/permission-grant.d.ts +1 -1
  36. package/dist/components/agent-tools/permission-grant/permission-grant.js +1 -1
  37. package/dist/components/agent-tools/permission-grant/permission-grant.styles.js +1 -1
  38. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +1 -1
  39. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +2 -2
  40. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +3 -1
  41. package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +1 -1
  42. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
  43. package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -2
  44. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  45. package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
  46. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  47. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +15 -9
  48. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
  49. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +2 -2
  50. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +1 -1
  51. package/dist/components/agent-tools/tool-call-block/tool-call-block.styles.js +1 -1
  52. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -7
  53. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
  54. package/dist/components/agent-tools/tool-param-form/tool-param-constraints.js +1 -1
  55. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -5
  56. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
  57. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +2 -5
  58. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  59. package/dist/components/agent-tools/tool-result-view/registry.d.ts +4 -12
  60. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +2 -2
  61. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
  62. package/dist/components/agent-tools/tool-status.d.ts +7 -0
  63. package/dist/components/agent-tools/tool-status.styles.js +1 -0
  64. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
  65. package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +1 -1
  66. package/dist/components/agent-tools/tool-timeline/tool-timeline.js +1 -1
  67. package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
  68. package/dist/components/charts/chart/box-plot.class.d.ts +1 -1
  69. package/dist/components/charts/chart/box-plot.class.js +1 -1
  70. package/dist/components/charts/chart/box-plot.styles.js +1 -1
  71. package/dist/components/charts/chart/chart-surface-shared.js +1 -0
  72. package/dist/components/charts/chart/chart-surface.styles.js +1 -1
  73. package/dist/components/charts/chart/chart-table-sampling.js +1 -1
  74. package/dist/components/charts/chart/chart.class.d.ts +2 -2
  75. package/dist/components/charts/chart/chart.class.js +2 -2
  76. package/dist/components/charts/chart/chart.styles.js +1 -1
  77. package/dist/components/charts/chart/histogram.class.js +1 -1
  78. package/dist/components/charts/chart/lite-chart.class.d.ts +1 -1
  79. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  80. package/dist/components/conversation/catalog-picker-element.d.ts +28 -13
  81. package/dist/components/conversation/catalog-picker-element.js +1 -1
  82. package/dist/components/conversation/catalog-picker-trigger.styles.js +1 -0
  83. package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
  84. package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
  85. package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +1 -1
  86. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  87. package/dist/components/conversation/code-block/code-block-shared.js +1 -1
  88. package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
  89. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  90. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  91. package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
  92. package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
  93. package/dist/components/conversation/model-select/model-select.class.d.ts +7 -34
  94. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  95. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  96. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +7 -2
  97. package/dist/components/conversation/prompt-input/prompt-input.class.js +5 -2
  98. package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
  99. package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
  100. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
  101. package/dist/components/conversation/stream-status/stream-status.class.js +1 -1
  102. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +10 -27
  103. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  104. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  105. package/dist/components/data/condition-builder/condition-builder.class.js +1 -1
  106. package/dist/components/data/data-grid/data-grid.class.js +1 -1
  107. package/dist/components/data/document-library/document-library.class.d.ts +2 -2
  108. package/dist/components/data/document-library/document-library.class.js +2 -2
  109. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +3 -3
  110. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  111. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  112. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -1
  113. package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
  114. package/dist/components/data/table/table.class.d.ts +10 -195
  115. package/dist/components/data/table/table.class.js +2 -2
  116. package/dist/components/data/table/table.styles.js +1 -1
  117. package/dist/components/data/timeline/timeline.class.js +1 -1
  118. package/dist/components/data/tree/tree.class.js +1 -1
  119. package/dist/components/forms/button/button.class.d.ts +3 -3
  120. package/dist/components/forms/button/button.class.js +1 -1
  121. package/dist/components/forms/catalog-picker-base.js +1 -1
  122. package/dist/components/forms/checkbox/checkbox.class.d.ts +13 -34
  123. package/dist/components/forms/checkbox/checkbox.class.js +3 -3
  124. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +3 -3
  125. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  126. package/dist/components/forms/code-editor/code-editor.class.js +1 -1
  127. package/dist/components/forms/color-picker/color-picker.class.js +1 -1
  128. package/dist/components/forms/combobox/combobox.class.d.ts +6 -6
  129. package/dist/components/forms/combobox/combobox.class.js +3 -2
  130. package/dist/components/forms/combobox/option.class.d.ts +3 -0
  131. package/dist/components/forms/combobox/option.class.js +2 -2
  132. package/dist/components/forms/date-picker/date-input.class.d.ts +10 -11
  133. package/dist/components/forms/date-picker/date-input.class.js +4 -3
  134. package/dist/components/forms/date-picker/date-input.styles.js +1 -1
  135. package/dist/components/forms/date-picker/date-picker.class.d.ts +6 -0
  136. package/dist/components/forms/date-picker/date-picker.class.js +1 -1
  137. package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
  138. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  139. package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
  140. package/dist/components/forms/input/input.styles.js +1 -1
  141. package/dist/components/forms/input/time-input.class.d.ts +1 -1
  142. package/dist/components/forms/input/time-input.class.js +1 -1
  143. package/dist/components/forms/input/time-input.styles.js +1 -1
  144. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -5
  145. package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
  146. package/dist/components/forms/otp-input/otp-input.class.js +1 -0
  147. package/dist/components/forms/phone-input/phone-input.class.d.ts +7 -9
  148. package/dist/components/forms/phone-input/phone-input.class.js +6 -5
  149. package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
  150. package/dist/components/forms/radio/radio-group.class.d.ts +4 -4
  151. package/dist/components/forms/radio/radio-group.class.js +1 -1
  152. package/dist/components/forms/radio/radio.class.d.ts +11 -19
  153. package/dist/components/forms/radio/radio.class.js +2 -2
  154. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +3 -5
  155. package/dist/components/forms/rubric-form/rubric-form.class.js +1 -1
  156. package/dist/components/forms/select/select.class.d.ts +5 -7
  157. package/dist/components/forms/select/select.class.js +3 -2
  158. package/dist/components/forms/slider/slider.class.d.ts +3 -3
  159. package/dist/components/forms/slider/slider.class.js +1 -1
  160. package/dist/components/forms/slider/slider.styles.js +1 -1
  161. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  162. package/dist/components/forms/switch/switch.class.d.ts +11 -36
  163. package/dist/components/forms/switch/switch.class.js +2 -2
  164. package/dist/components/forms/textarea/textarea.class.js +1 -0
  165. package/dist/components/forms/textarea/textarea.styles.js +1 -1
  166. package/dist/components/forms/time-range/time-range.class.d.ts +5 -3
  167. package/dist/components/forms/time-range/time-range.class.js +1 -1
  168. package/dist/components/forms/time-range/time-range.styles.js +1 -1
  169. package/dist/components/forms/toggle-group/toggle-group.class.d.ts +2 -2
  170. package/dist/components/forms/toggle-group/toggle-group.class.js +1 -1
  171. package/dist/components/forms/token-input/token-input.class.d.ts +3 -3
  172. package/dist/components/forms/token-input/token-input.class.js +1 -1
  173. package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
  174. package/dist/components/layout/app-rail/app-rail.class.d.ts +2 -2
  175. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  176. package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +1 -1
  177. package/dist/components/layout/card/card.class.js +1 -1
  178. package/dist/components/layout/carousel/carousel.class.js +1 -1
  179. package/dist/components/layout/command-palette/command-palette.class.d.ts +6 -2
  180. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  181. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  182. package/dist/components/layout/details/accordion.class.js +1 -1
  183. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -1
  184. package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
  185. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  186. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -2
  187. package/dist/components/layout/filter-bar/filter-bar.class.js +18 -15
  188. package/dist/components/layout/filter-bar/filter-bar.styles.js +1 -1
  189. package/dist/components/layout/menu/menu.class.d.ts +1 -1
  190. package/dist/components/layout/menu/menu.class.js +1 -1
  191. package/dist/components/layout/multi-split/multi-split.class.d.ts +1 -1
  192. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  193. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
  194. package/dist/components/layout/page/page.class.d.ts +1 -1
  195. package/dist/components/layout/page/page.class.js +1 -1
  196. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +1 -1
  197. package/dist/components/layout/responsive-panel/responsive-panel.class.js +1 -1
  198. package/dist/components/layout/scroller/scroller.class.js +1 -1
  199. package/dist/components/layout/segmented/segmented.class.js +1 -1
  200. package/dist/components/layout/stepper/stepper.class.js +2 -2
  201. package/dist/components/layout/tab-group/tab-group.class.js +1 -1
  202. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +1 -1
  203. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  204. package/dist/components/layout/widget/widget.class.d.ts +1 -1
  205. package/dist/components/layout/widget/widget.class.js +3 -3
  206. package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -0
  207. package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
  208. package/dist/components/media/file-input/file-input.class.d.ts +3 -3
  209. package/dist/components/media/file-input/file-input.class.js +2 -2
  210. package/dist/components/media/file-input/file-intake.d.ts +5 -1
  211. package/dist/components/media/file-input/file-intake.js +1 -1
  212. package/dist/components/media/flag/flag.class.js +1 -1
  213. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  214. package/dist/components/media/lightbox/lightbox.class.js +1 -1
  215. package/dist/components/media/map/map.class.js +2 -2
  216. package/dist/components/media/qr-code/qr-code-loader.js +1 -1
  217. package/dist/components/media/qr-code/qr-code.class.js +1 -1
  218. package/dist/components/media/video/video.class.js +3 -3
  219. package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
  220. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +2 -2
  221. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
  222. package/dist/components/overlays/alert/alert.class.d.ts +3 -3
  223. package/dist/components/overlays/alert/alert.class.js +1 -1
  224. package/dist/components/overlays/badge/badge.class.d.ts +2 -2
  225. package/dist/components/overlays/badge/badge.class.js +1 -1
  226. package/dist/components/overlays/badge/tag.class.d.ts +3 -1
  227. package/dist/components/overlays/badge/tag.class.js +3 -2
  228. package/dist/components/overlays/badge/tag.styles.js +1 -1
  229. package/dist/components/overlays/callout/callout.class.d.ts +2 -2
  230. package/dist/components/overlays/callout/callout.class.js +1 -1
  231. package/dist/components/overlays/chip/chip.class.d.ts +4 -2
  232. package/dist/components/overlays/chip/chip.class.js +2 -2
  233. package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
  234. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  235. package/dist/components/overlays/overlay/overlay-shared.d.ts +9 -0
  236. package/dist/components/overlays/overlay/overlay-shared.js +1 -1
  237. package/dist/components/overlays/overlay/popover.class.d.ts +2 -2
  238. package/dist/components/overlays/overlay/popover.class.js +1 -1
  239. package/dist/components/overlays/overlay/tooltip.class.d.ts +1 -1
  240. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  241. package/dist/components/overlays/progress/progress-bar.class.d.ts +5 -22
  242. package/dist/components/overlays/progress/progress-bar.class.js +4 -4
  243. package/dist/components/overlays/progress/progress-base.d.ts +25 -0
  244. package/dist/components/overlays/progress/progress-base.js +1 -0
  245. package/dist/components/overlays/progress/progress-ring.class.d.ts +3 -24
  246. package/dist/components/overlays/progress/progress-ring.class.js +4 -4
  247. package/dist/components/overlays/rating/rating.class.d.ts +3 -3
  248. package/dist/components/overlays/rating/rating.class.js +1 -1
  249. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +4 -2
  250. package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -4
  251. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +1 -1
  252. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +1 -1
  253. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  254. package/dist/components/retrieval/graph/graph-model.js +1 -1
  255. package/dist/components/retrieval/graph/graph.class.d.ts +1 -3
  256. package/dist/components/retrieval/graph/graph.class.js +1 -1
  257. package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -1
  258. package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
  259. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +1 -1
  260. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -2
  261. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +1 -1
  262. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
  263. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -1
  264. package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
  265. package/dist/components/retrieval/memory-panel/memory-panel.class.js +2 -2
  266. package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
  267. package/dist/components/retrieval/node-palette/node-palette.class.js +1 -1
  268. package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
  269. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +1 -1
  270. package/dist/components/retrieval/research-progress/research-progress.class.d.ts +5 -1
  271. package/dist/components/retrieval/research-progress/research-progress.class.js +3 -3
  272. package/dist/components/retrieval/research-progress/research-progress.d.ts +1 -1
  273. package/dist/components/retrieval/research-progress/research-progress.js +1 -1
  274. package/dist/components/retrieval/research-progress/research-progress.styles.js +1 -1
  275. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +6 -2
  276. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +2 -2
  277. package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
  278. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +2 -2
  279. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +3 -2
  280. package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +3 -3
  281. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +6 -2
  282. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +2 -2
  283. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +1 -1
  284. package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
  285. package/dist/components/utility/copy-button/copy-button.class.js +1 -1
  286. package/dist/components/utility/diff-view/diff-view.class.js +1 -1
  287. package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
  288. package/dist/components/utility/export-button/export-button.class.js +1 -1
  289. package/dist/components/utility/icon/dompurify-loader.js +1 -1
  290. package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
  291. package/dist/components/utility/known-date/known-date.class.js +1 -1
  292. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  293. package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
  294. package/dist/components/utility/random-content/random-content.class.d.ts +1 -1
  295. package/dist/components/utility/random-content/random-content.class.js +1 -1
  296. package/dist/components/utility/tour/tour.class.d.ts +1 -1
  297. package/dist/components/utility/tour/tour.class.js +1 -1
  298. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  299. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +1 -1
  300. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +3 -1
  301. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
  302. package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +3 -1
  303. package/dist/components/viewers/contact-viewer/contact-viewer.class.js +1 -1
  304. package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +2 -2
  305. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -18
  306. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +1 -1
  307. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -2
  308. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -18
  309. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
  310. package/dist/components/viewers/document-preview/document-preview.class.d.ts +1 -1
  311. package/dist/components/viewers/document-preview/document-preview.class.js +3 -16
  312. package/dist/components/viewers/document-viewer/ooxml-part-guard.js +1 -0
  313. package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
  314. package/dist/components/viewers/docx-viewer/docx-resource-guard.js +1 -1
  315. package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +3 -3
  316. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +3 -3
  317. package/dist/components/viewers/ebook-viewer/ebook-loader.js +1 -1
  318. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -1
  319. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -1
  320. package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +1 -1
  321. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +1 -1
  322. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
  323. package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +1 -4
  324. package/dist/components/viewers/geojson-view/geojson-viewer.class.js +1 -1
  325. package/dist/components/viewers/highlight-layer/highlight-layer.class.js +1 -1
  326. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
  327. package/dist/components/viewers/html-viewer/html-viewer.class.js +1 -1
  328. package/dist/components/viewers/html-viewer/html-viewer.styles.js +1 -1
  329. package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
  330. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
  331. package/dist/components/viewers/page-rail/page-rail.class.js +2 -2
  332. package/dist/components/viewers/passive-markup.js +1 -1
  333. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  334. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +2 -2
  335. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  336. package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
  337. package/dist/components/viewers/pptx-viewer/pptx-resource-guard.js +1 -1
  338. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
  339. package/dist/components/viewers/region-highlight-layer.js +15 -2
  340. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
  341. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +4 -18
  342. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +1 -1
  343. package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +1 -1
  344. package/dist/components/viewers/svg-viewer/svg-viewer.class.js +2 -15
  345. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
  346. package/dist/components/viewers/table-viewer-shared.js +15 -1
  347. package/dist/components/viewers/table-viewer-shared.styles.js +1 -0
  348. package/dist/events.d.ts +19 -18
  349. package/dist/framework-types.d.ts +1 -1
  350. package/dist/internal/accessibility-visibility.d.ts +3 -1
  351. package/dist/internal/accessibility-visibility.js +1 -1
  352. package/dist/internal/accessible-text-controller.js +1 -1
  353. package/dist/internal/active-element.d.ts +11 -0
  354. package/dist/internal/active-element.js +1 -1
  355. package/dist/internal/adjacent-runs.js +1 -1
  356. package/dist/internal/approval-wait-until.d.ts +7 -0
  357. package/dist/internal/approval-wait-until.js +1 -0
  358. package/dist/internal/aria-controls.js +1 -1
  359. package/dist/internal/catalog-picker.d.ts +2 -2
  360. package/dist/internal/catalog-picker.js +1 -1
  361. package/dist/internal/composed-tree.d.ts +18 -0
  362. package/dist/internal/composed-tree.js +1 -1
  363. package/dist/internal/copy-feedback.js +1 -0
  364. package/dist/internal/css-length.js +1 -1
  365. package/dist/internal/css-motion-time.js +1 -1
  366. package/dist/internal/css-number.js +1 -0
  367. package/dist/internal/default-strings.generated.js +1 -1
  368. package/dist/internal/deferred-focus-return.d.ts +33 -0
  369. package/dist/internal/deferred-focus-return.js +1 -1
  370. package/dist/internal/fixed-containing-block.js +1 -1
  371. package/dist/internal/form-associated.d.ts +38 -2
  372. package/dist/internal/form-associated.js +1 -1
  373. package/dist/internal/form-control-element.d.ts +13 -0
  374. package/dist/internal/form-control-element.js +1 -0
  375. package/dist/internal/form-control.styles.js +1 -1
  376. package/dist/internal/inherited-attribute-hub.js +1 -1
  377. package/dist/internal/locale-loaders.generated.js +1 -1
  378. package/dist/internal/localization-types.d.ts +1 -1
  379. package/dist/internal/localization.js +1 -1
  380. package/dist/internal/modal-surface-controller.js +1 -1
  381. package/dist/internal/object-guards.js +1 -1
  382. package/dist/internal/optional-peer-capabilities.d.ts +3 -1
  383. package/dist/internal/optional-peer-capabilities.js +1 -1
  384. package/dist/internal/orientation-breakpoint.js +1 -1
  385. package/dist/internal/overlay-manager.d.ts +6 -1
  386. package/dist/internal/overlay-manager.js +1 -1
  387. package/dist/internal/overlay-stack.d.ts +7 -3
  388. package/dist/internal/overlay-stack.js +1 -1
  389. package/dist/internal/package-metadata.js +1 -1
  390. package/dist/internal/persisted-restore.js +1 -1
  391. package/dist/internal/popup-controller.js +1 -0
  392. package/dist/internal/rendered-tree-traversal.d.ts +3 -1
  393. package/dist/internal/rendered-tree-traversal.js +1 -1
  394. package/dist/internal/retry-forwarder.js +1 -0
  395. package/dist/internal/roving-toolbar.js +1 -1
  396. package/dist/internal/scoped-definitions.generated.js +1 -1
  397. package/dist/internal/score-tiers.d.ts +4 -0
  398. package/dist/internal/score-tiers.js +1 -0
  399. package/dist/internal/semantic-variant.d.ts +7 -0
  400. package/dist/internal/semantic-variant.js +1 -0
  401. package/dist/internal/shared-unions.d.ts +1 -1
  402. package/dist/internal/viewer-search.js +1 -1
  403. package/dist/lyra.d.ts +1 -1
  404. package/dist/testing/happy-dom-shims.d.ts +18 -0
  405. package/dist/testing/happy-dom-shims.js +1 -1
  406. package/dist/testing/index.d.ts +1 -1
  407. package/dist/testing/index.js +1 -1
  408. package/llms/components/lr-accordion-item.md +1 -1
  409. package/llms/components/lr-accordion.md +1 -1
  410. package/llms/components/lr-alert.md +2 -2
  411. package/llms/components/lr-app-rail-group.md +1 -1
  412. package/llms/components/lr-app-rail-item.md +1 -1
  413. package/llms/components/lr-app-rail.md +1 -1
  414. package/llms/components/lr-attachment-chip.md +1 -10
  415. package/llms/components/lr-attachment-trigger.md +0 -10
  416. package/llms/components/lr-avatar.md +4 -8
  417. package/llms/components/lr-badge.md +16 -20
  418. package/llms/components/lr-box-plot.md +1 -1
  419. package/llms/components/lr-breadcrumb-item.md +1 -1
  420. package/llms/components/lr-breadcrumb.md +1 -1
  421. package/llms/components/lr-button-group.md +1 -1
  422. package/llms/components/lr-button.md +1 -1
  423. package/llms/components/lr-calendar.md +1 -1
  424. package/llms/components/lr-callout.md +3 -13
  425. package/llms/components/lr-card.md +1 -1
  426. package/llms/components/lr-carousel-item.md +1 -1
  427. package/llms/components/lr-carousel.md +1 -1
  428. package/llms/components/lr-chart.md +5 -7
  429. package/llms/components/lr-checkbox-group.md +1 -1
  430. package/llms/components/lr-checkbox.md +2 -1
  431. package/llms/components/lr-chip.md +3 -17
  432. package/llms/components/lr-chunk-inspector.md +2 -1
  433. package/llms/components/lr-citation-badge.md +2 -2
  434. package/llms/components/lr-code-block.md +0 -10
  435. package/llms/components/lr-code-editor.md +1 -1
  436. package/llms/components/lr-color-picker.md +1 -1
  437. package/llms/components/lr-combobox.md +6 -3
  438. package/llms/components/lr-command-palette.md +5 -2
  439. package/llms/components/lr-commit-card.md +1 -3
  440. package/llms/components/lr-condition-builder.md +1 -1
  441. package/llms/components/lr-confirm-bar.md +7 -13
  442. package/llms/components/lr-connector-manager.md +3 -1
  443. package/llms/components/lr-context-inspector.md +1 -1
  444. package/llms/components/lr-context-meter.md +1 -1
  445. package/llms/components/lr-control-group.md +1 -1
  446. package/llms/components/lr-copy-button.md +8 -10
  447. package/llms/components/lr-country-picker.md +1 -1
  448. package/llms/components/lr-currency-picker.md +1 -1
  449. package/llms/components/lr-dashboard-grid.md +1 -1
  450. package/llms/components/lr-data-grid.md +1 -1
  451. package/llms/components/lr-date-input.md +1 -1
  452. package/llms/components/lr-date-picker.md +11 -4
  453. package/llms/components/lr-details.md +1 -1
  454. package/llms/components/lr-dialog.md +8 -31
  455. package/llms/components/lr-diff-view.md +1 -1
  456. package/llms/components/lr-divider.md +1 -1
  457. package/llms/components/lr-dock-panel.md +1 -1
  458. package/llms/components/lr-document-library.md +1 -1
  459. package/llms/components/lr-drawer.md +1 -13
  460. package/llms/components/lr-drilldown-panel.md +1 -1
  461. package/llms/components/lr-drop-zone.md +4 -0
  462. package/llms/components/lr-dropdown-item.md +1 -1
  463. package/llms/components/lr-ebook-viewer.md +4 -3
  464. package/llms/components/lr-emoji-picker.md +1 -1
  465. package/llms/components/lr-entity-chip.md +2 -2
  466. package/llms/components/lr-env-list.md +1 -1
  467. package/llms/components/lr-eval-dataset.md +4 -19
  468. package/llms/components/lr-export-button.md +3 -3
  469. package/llms/components/lr-file-icon.md +0 -5
  470. package/llms/components/lr-file-input.md +3 -5
  471. package/llms/components/lr-file-tree.md +1 -1
  472. package/llms/components/lr-filter-bar.md +5 -1
  473. package/llms/components/lr-flag.md +1 -2
  474. package/llms/components/lr-flow-canvas.md +1 -1
  475. package/llms/components/lr-flow-controls.md +1 -1
  476. package/llms/components/lr-flow-minimap.md +2 -2
  477. package/llms/components/lr-flow-node.md +1 -1
  478. package/llms/components/lr-flow-run-status.md +1 -1
  479. package/llms/components/lr-format-bytes.md +2 -3
  480. package/llms/components/lr-format-date.md +2 -3
  481. package/llms/components/lr-format-number.md +1 -1
  482. package/llms/components/lr-funnel.md +1 -1
  483. package/llms/components/lr-gauge.md +1 -1
  484. package/llms/components/lr-generation-metrics.md +1 -1
  485. package/llms/components/lr-graph-query-builder.md +1 -1
  486. package/llms/components/lr-heatmap.md +1 -1
  487. package/llms/components/lr-icon-button.md +1 -1
  488. package/llms/components/lr-icon.md +1 -1
  489. package/llms/components/lr-input.md +1 -1
  490. package/llms/components/lr-intersection-observer.md +1 -1
  491. package/llms/components/lr-json-viewer.md +1 -1
  492. package/llms/components/lr-knowledge-graph-explorer.md +2 -2
  493. package/llms/components/lr-known-date.md +1 -1
  494. package/llms/components/lr-lite-chart.md +3 -4
  495. package/llms/components/lr-live-region.md +1 -1
  496. package/llms/components/lr-locale-picker.md +1 -1
  497. package/llms/components/lr-map.md +1 -3
  498. package/llms/components/lr-media-card.md +1 -10
  499. package/llms/components/lr-memory-panel.md +2 -0
  500. package/llms/components/lr-mention-popover.md +3 -3
  501. package/llms/components/lr-menu-item.md +1 -1
  502. package/llms/components/lr-menu-label.md +1 -1
  503. package/llms/components/lr-menu.md +1 -1
  504. package/llms/components/lr-menubar-item.md +1 -1
  505. package/llms/components/lr-menubar.md +1 -1
  506. package/llms/components/lr-message-actions.md +1 -11
  507. package/llms/components/lr-message-parts.md +3 -5
  508. package/llms/components/lr-model-select.md +2 -4
  509. package/llms/components/lr-multi-split.md +1 -1
  510. package/llms/components/lr-mutation-observer.md +2 -2
  511. package/llms/components/lr-native-time-input.md +1 -1
  512. package/llms/components/lr-navigation-menu-item.md +1 -1
  513. package/llms/components/lr-navigation-menu.md +1 -1
  514. package/llms/components/lr-number-input.md +1 -1
  515. package/llms/components/lr-option.md +1 -1
  516. package/llms/components/lr-otp-input.md +1 -1
  517. package/llms/components/lr-page.md +1 -1
  518. package/llms/components/lr-pagination.md +1 -1
  519. package/llms/components/lr-pan-zoom.md +1 -3
  520. package/llms/components/lr-permission-grant.md +3 -1
  521. package/llms/components/lr-phone-input.md +7 -5
  522. package/llms/components/lr-poll-status.md +1 -1
  523. package/llms/components/lr-popover.md +5 -9
  524. package/llms/components/lr-popup.md +1 -3
  525. package/llms/components/lr-progress-bar.md +2 -1
  526. package/llms/components/lr-progress-ring.md +4 -8
  527. package/llms/components/lr-prompt-input.md +3 -1
  528. package/llms/components/lr-prompt-studio.md +4 -4
  529. package/llms/components/lr-radio-button.md +2 -2
  530. package/llms/components/lr-radio-group.md +1 -1
  531. package/llms/components/lr-radio.md +3 -2
  532. package/llms/components/lr-random-content.md +1 -1
  533. package/llms/components/lr-rating.md +2 -3
  534. package/llms/components/lr-relative-time.md +2 -3
  535. package/llms/components/lr-reorder-item.md +1 -1
  536. package/llms/components/lr-reorder-list.md +1 -1
  537. package/llms/components/lr-research-progress.md +2 -0
  538. package/llms/components/lr-resize-observer.md +1 -1
  539. package/llms/components/lr-responsive-panel.md +1 -1
  540. package/llms/components/lr-retrieval-compare.md +2 -0
  541. package/llms/components/lr-retrieval-trace.md +2 -0
  542. package/llms/components/lr-rubric-form.md +1 -1
  543. package/llms/components/lr-scroller.md +1 -1
  544. package/llms/components/lr-segmented.md +1 -1
  545. package/llms/components/lr-select.md +1 -1
  546. package/llms/components/lr-sequence-playback.md +1 -2
  547. package/llms/components/lr-sequence-strip.md +1 -1
  548. package/llms/components/lr-signature-pad.md +1 -1
  549. package/llms/components/lr-skeleton.md +2 -4
  550. package/llms/components/lr-slider.md +1 -1
  551. package/llms/components/lr-sparkline.md +1 -1
  552. package/llms/components/lr-split-panel.md +1 -1
  553. package/llms/components/lr-stat.md +1 -1
  554. package/llms/components/lr-stepper.md +1 -1
  555. package/llms/components/lr-swatch-picker.md +1 -1
  556. package/llms/components/lr-switch.md +2 -1
  557. package/llms/components/lr-tab-group.md +1 -1
  558. package/llms/components/lr-tab-panel.md +1 -1
  559. package/llms/components/lr-tab.md +1 -1
  560. package/llms/components/lr-table.md +3 -3
  561. package/llms/components/lr-task-list.md +3 -3
  562. package/llms/components/lr-test-results.md +2 -4
  563. package/llms/components/lr-textarea.md +1 -1
  564. package/llms/components/lr-time-input.md +1 -1
  565. package/llms/components/lr-time-range.md +5 -4
  566. package/llms/components/lr-time-zone-picker.md +1 -1
  567. package/llms/components/lr-timeline-item.md +1 -1
  568. package/llms/components/lr-timeline.md +1 -1
  569. package/llms/components/lr-toggle-group.md +1 -1
  570. package/llms/components/lr-toggle.md +1 -1
  571. package/llms/components/lr-token-input.md +1 -1
  572. package/llms/components/lr-tool-approval-dialog.md +12 -10
  573. package/llms/components/lr-tool-call-block.md +1 -1
  574. package/llms/components/lr-tool-call-chip.md +1 -3
  575. package/llms/components/lr-tool-result-view.md +3 -3
  576. package/llms/components/lr-tool-timeline.md +2 -2
  577. package/llms/components/lr-tooltip.md +8 -11
  578. package/llms/components/lr-tour.md +2 -2
  579. package/llms/components/lr-tree-item.md +1 -1
  580. package/llms/components/lr-tree.md +1 -1
  581. package/llms/components/lr-unit-picker.md +1 -1
  582. package/llms/components/lr-usage-badge.md +1 -3
  583. package/llms/components/lr-video.md +1 -2
  584. package/llms/components/lr-virtual-list.md +1 -1
  585. package/llms/components/lr-visually-hidden.md +1 -1
  586. package/llms/components/lr-voice-picker.md +1 -1
  587. package/llms/components/lr-widget.md +1 -1
  588. package/llms/components/lr-word-cloud.md +1 -1
  589. package/llms/components/lr-zoomable-frame.md +1 -6
  590. package/llms/migration.md +96 -2
  591. package/llms/peers.md +3 -2
  592. package/llms/shared/ai-and-peers.md +2 -2
  593. package/llms/shared/events-and-types.md +4 -1
  594. package/llms/shared/imports-and-registration.md +2 -2
  595. package/llms/shared/localization-and-rtl.md +18 -18
  596. package/llms/shared/styles-and-tokens.md +1 -1
  597. package/llms/shared/testing-and-utilities.md +44 -43
  598. package/llms/shared.md +71 -67
  599. package/llms.txt +14 -12
  600. package/locales.json +1002 -1002
  601. package/package.json +16 -6879
  602. package/registrations.json +1 -1
  603. package/skills/compose-lyra-interfaces/SKILL.md +60 -0
  604. package/skills/compose-lyra-interfaces/agents/openai.yaml +4 -0
  605. package/skills/compose-lyra-interfaces/references/composition-patterns.md +77 -0
  606. package/skills/lyra-ui/SKILL.md +145 -0
  607. package/skills/lyra-ui/commands/frontend.md +37 -0
  608. package/skills/lyra-ui/commands/migrate.md +44 -0
  609. package/skills/lyra-ui/commands/new-component.md +19 -0
  610. package/skills/lyra-ui/commands/review.md +247 -0
  611. package/skills/lyra-ui/commands/update.md +30 -0
  612. package/skills/lyra-ui/reporting.md +137 -0
  613. package/custom-elements.json +0 -1
  614. package/dist/internal/side-effect-only.d.ts +0 -1
  615. package/dist/translations/am/agent-tools.js +0 -1
  616. package/dist/translations/am/charts.js +0 -1
  617. package/dist/translations/am/conversation.js +0 -1
  618. package/dist/translations/am/data.js +0 -1
  619. package/dist/translations/am/forms.js +0 -1
  620. package/dist/translations/am/layout.js +0 -1
  621. package/dist/translations/am/media.js +0 -1
  622. package/dist/translations/am/overlays.js +0 -1
  623. package/dist/translations/am/retrieval.js +0 -1
  624. package/dist/translations/am/shared.js +0 -1
  625. package/dist/translations/am/utility.js +0 -1
  626. package/dist/translations/am/viewers.js +0 -5
  627. package/dist/translations/am.js +0 -1
  628. package/dist/translations/ar/agent-tools.js +0 -1
  629. package/dist/translations/ar/charts.js +0 -1
  630. package/dist/translations/ar/conversation.js +0 -1
  631. package/dist/translations/ar/data.js +0 -1
  632. package/dist/translations/ar/forms.js +0 -1
  633. package/dist/translations/ar/layout.js +0 -1
  634. package/dist/translations/ar/media.js +0 -1
  635. package/dist/translations/ar/overlays.js +0 -1
  636. package/dist/translations/ar/retrieval.js +0 -1
  637. package/dist/translations/ar/shared.js +0 -1
  638. package/dist/translations/ar/utility.js +0 -1
  639. package/dist/translations/ar/viewers.js +0 -5
  640. package/dist/translations/ar.js +0 -1
  641. package/dist/translations/bho/agent-tools.js +0 -1
  642. package/dist/translations/bho/charts.js +0 -1
  643. package/dist/translations/bho/conversation.js +0 -1
  644. package/dist/translations/bho/data.js +0 -1
  645. package/dist/translations/bho/forms.js +0 -1
  646. package/dist/translations/bho/layout.js +0 -1
  647. package/dist/translations/bho/media.js +0 -1
  648. package/dist/translations/bho/overlays.js +0 -1
  649. package/dist/translations/bho/retrieval.js +0 -1
  650. package/dist/translations/bho/shared.js +0 -1
  651. package/dist/translations/bho/utility.js +0 -1
  652. package/dist/translations/bho/viewers.js +0 -5
  653. package/dist/translations/bho.js +0 -1
  654. package/dist/translations/bn/agent-tools.js +0 -1
  655. package/dist/translations/bn/charts.js +0 -1
  656. package/dist/translations/bn/conversation.js +0 -1
  657. package/dist/translations/bn/data.js +0 -1
  658. package/dist/translations/bn/forms.js +0 -1
  659. package/dist/translations/bn/layout.js +0 -1
  660. package/dist/translations/bn/media.js +0 -1
  661. package/dist/translations/bn/overlays.js +0 -1
  662. package/dist/translations/bn/retrieval.js +0 -1
  663. package/dist/translations/bn/shared.js +0 -1
  664. package/dist/translations/bn/utility.js +0 -1
  665. package/dist/translations/bn/viewers.js +0 -5
  666. package/dist/translations/bn.js +0 -1
  667. package/dist/translations/cs/agent-tools.js +0 -1
  668. package/dist/translations/cs/charts.js +0 -1
  669. package/dist/translations/cs/conversation.js +0 -1
  670. package/dist/translations/cs/data.js +0 -1
  671. package/dist/translations/cs/forms.js +0 -1
  672. package/dist/translations/cs/layout.js +0 -1
  673. package/dist/translations/cs/media.js +0 -1
  674. package/dist/translations/cs/overlays.js +0 -1
  675. package/dist/translations/cs/retrieval.js +0 -1
  676. package/dist/translations/cs/shared.js +0 -1
  677. package/dist/translations/cs/utility.js +0 -1
  678. package/dist/translations/cs/viewers.js +0 -5
  679. package/dist/translations/cs.js +0 -1
  680. package/dist/translations/da/agent-tools.js +0 -1
  681. package/dist/translations/da/charts.js +0 -1
  682. package/dist/translations/da/conversation.js +0 -1
  683. package/dist/translations/da/data.js +0 -1
  684. package/dist/translations/da/forms.js +0 -1
  685. package/dist/translations/da/layout.js +0 -1
  686. package/dist/translations/da/media.js +0 -1
  687. package/dist/translations/da/overlays.js +0 -1
  688. package/dist/translations/da/retrieval.js +0 -1
  689. package/dist/translations/da/shared.js +0 -1
  690. package/dist/translations/da/utility.js +0 -1
  691. package/dist/translations/da/viewers.js +0 -5
  692. package/dist/translations/da.js +0 -1
  693. package/dist/translations/de/agent-tools.js +0 -1
  694. package/dist/translations/de/charts.js +0 -1
  695. package/dist/translations/de/conversation.js +0 -1
  696. package/dist/translations/de/data.js +0 -1
  697. package/dist/translations/de/forms.js +0 -1
  698. package/dist/translations/de/layout.js +0 -1
  699. package/dist/translations/de/media.js +0 -1
  700. package/dist/translations/de/overlays.js +0 -1
  701. package/dist/translations/de/retrieval.js +0 -1
  702. package/dist/translations/de/shared.js +0 -1
  703. package/dist/translations/de/utility.js +0 -1
  704. package/dist/translations/de/viewers.js +0 -5
  705. package/dist/translations/de-CH/agent-tools.js +0 -1
  706. package/dist/translations/de-CH/charts.js +0 -1
  707. package/dist/translations/de-CH/conversation.js +0 -1
  708. package/dist/translations/de-CH/data.js +0 -1
  709. package/dist/translations/de-CH/forms.js +0 -1
  710. package/dist/translations/de-CH/layout.js +0 -1
  711. package/dist/translations/de-CH/media.js +0 -1
  712. package/dist/translations/de-CH/overlays.js +0 -1
  713. package/dist/translations/de-CH/retrieval.js +0 -1
  714. package/dist/translations/de-CH/shared.js +0 -1
  715. package/dist/translations/de-CH/utility.js +0 -1
  716. package/dist/translations/de-CH/viewers.js +0 -1
  717. package/dist/translations/de-CH.js +0 -1
  718. package/dist/translations/de.js +0 -1
  719. package/dist/translations/el/agent-tools.js +0 -1
  720. package/dist/translations/el/charts.js +0 -1
  721. package/dist/translations/el/conversation.js +0 -1
  722. package/dist/translations/el/data.js +0 -1
  723. package/dist/translations/el/forms.js +0 -1
  724. package/dist/translations/el/layout.js +0 -1
  725. package/dist/translations/el/media.js +0 -1
  726. package/dist/translations/el/overlays.js +0 -1
  727. package/dist/translations/el/retrieval.js +0 -1
  728. package/dist/translations/el/shared.js +0 -1
  729. package/dist/translations/el/utility.js +0 -1
  730. package/dist/translations/el/viewers.js +0 -5
  731. package/dist/translations/el.js +0 -1
  732. package/dist/translations/es/agent-tools.js +0 -1
  733. package/dist/translations/es/charts.js +0 -1
  734. package/dist/translations/es/conversation.js +0 -1
  735. package/dist/translations/es/data.js +0 -1
  736. package/dist/translations/es/forms.js +0 -1
  737. package/dist/translations/es/layout.js +0 -1
  738. package/dist/translations/es/media.js +0 -1
  739. package/dist/translations/es/overlays.js +0 -1
  740. package/dist/translations/es/retrieval.js +0 -1
  741. package/dist/translations/es/shared.js +0 -1
  742. package/dist/translations/es/utility.js +0 -1
  743. package/dist/translations/es/viewers.js +0 -5
  744. package/dist/translations/es.js +0 -1
  745. package/dist/translations/fa/agent-tools.js +0 -1
  746. package/dist/translations/fa/charts.js +0 -1
  747. package/dist/translations/fa/conversation.js +0 -1
  748. package/dist/translations/fa/data.js +0 -1
  749. package/dist/translations/fa/forms.js +0 -1
  750. package/dist/translations/fa/layout.js +0 -1
  751. package/dist/translations/fa/media.js +0 -1
  752. package/dist/translations/fa/overlays.js +0 -1
  753. package/dist/translations/fa/retrieval.js +0 -1
  754. package/dist/translations/fa/shared.js +0 -1
  755. package/dist/translations/fa/utility.js +0 -1
  756. package/dist/translations/fa/viewers.js +0 -5
  757. package/dist/translations/fa-AF/agent-tools.js +0 -1
  758. package/dist/translations/fa-AF/charts.js +0 -1
  759. package/dist/translations/fa-AF/conversation.js +0 -1
  760. package/dist/translations/fa-AF/data.js +0 -1
  761. package/dist/translations/fa-AF/forms.js +0 -1
  762. package/dist/translations/fa-AF/layout.js +0 -1
  763. package/dist/translations/fa-AF/media.js +0 -1
  764. package/dist/translations/fa-AF/overlays.js +0 -1
  765. package/dist/translations/fa-AF/retrieval.js +0 -1
  766. package/dist/translations/fa-AF/shared.js +0 -1
  767. package/dist/translations/fa-AF/utility.js +0 -1
  768. package/dist/translations/fa-AF/viewers.js +0 -5
  769. package/dist/translations/fa-AF.js +0 -1
  770. package/dist/translations/fa.js +0 -1
  771. package/dist/translations/fi/agent-tools.js +0 -1
  772. package/dist/translations/fi/charts.js +0 -1
  773. package/dist/translations/fi/conversation.js +0 -1
  774. package/dist/translations/fi/data.js +0 -1
  775. package/dist/translations/fi/forms.js +0 -1
  776. package/dist/translations/fi/layout.js +0 -1
  777. package/dist/translations/fi/media.js +0 -1
  778. package/dist/translations/fi/overlays.js +0 -1
  779. package/dist/translations/fi/retrieval.js +0 -1
  780. package/dist/translations/fi/shared.js +0 -1
  781. package/dist/translations/fi/utility.js +0 -1
  782. package/dist/translations/fi/viewers.js +0 -5
  783. package/dist/translations/fi.js +0 -1
  784. package/dist/translations/fr/agent-tools.js +0 -1
  785. package/dist/translations/fr/charts.js +0 -1
  786. package/dist/translations/fr/conversation.js +0 -1
  787. package/dist/translations/fr/data.js +0 -1
  788. package/dist/translations/fr/forms.js +0 -1
  789. package/dist/translations/fr/layout.js +0 -1
  790. package/dist/translations/fr/media.js +0 -1
  791. package/dist/translations/fr/overlays.js +0 -1
  792. package/dist/translations/fr/retrieval.js +0 -1
  793. package/dist/translations/fr/shared.js +0 -1
  794. package/dist/translations/fr/utility.js +0 -1
  795. package/dist/translations/fr/viewers.js +0 -5
  796. package/dist/translations/fr.js +0 -1
  797. package/dist/translations/gu/agent-tools.js +0 -1
  798. package/dist/translations/gu/charts.js +0 -1
  799. package/dist/translations/gu/conversation.js +0 -1
  800. package/dist/translations/gu/data.js +0 -1
  801. package/dist/translations/gu/forms.js +0 -1
  802. package/dist/translations/gu/layout.js +0 -1
  803. package/dist/translations/gu/media.js +0 -1
  804. package/dist/translations/gu/overlays.js +0 -1
  805. package/dist/translations/gu/retrieval.js +0 -1
  806. package/dist/translations/gu/shared.js +0 -1
  807. package/dist/translations/gu/utility.js +0 -1
  808. package/dist/translations/gu/viewers.js +0 -5
  809. package/dist/translations/gu.js +0 -1
  810. package/dist/translations/ha/agent-tools.js +0 -1
  811. package/dist/translations/ha/charts.js +0 -1
  812. package/dist/translations/ha/conversation.js +0 -1
  813. package/dist/translations/ha/data.js +0 -1
  814. package/dist/translations/ha/forms.js +0 -1
  815. package/dist/translations/ha/layout.js +0 -1
  816. package/dist/translations/ha/media.js +0 -1
  817. package/dist/translations/ha/overlays.js +0 -1
  818. package/dist/translations/ha/retrieval.js +0 -1
  819. package/dist/translations/ha/shared.js +0 -1
  820. package/dist/translations/ha/utility.js +0 -1
  821. package/dist/translations/ha/viewers.js +0 -5
  822. package/dist/translations/ha.js +0 -1
  823. package/dist/translations/he/agent-tools.js +0 -1
  824. package/dist/translations/he/charts.js +0 -1
  825. package/dist/translations/he/conversation.js +0 -1
  826. package/dist/translations/he/data.js +0 -1
  827. package/dist/translations/he/forms.js +0 -1
  828. package/dist/translations/he/layout.js +0 -1
  829. package/dist/translations/he/media.js +0 -1
  830. package/dist/translations/he/overlays.js +0 -1
  831. package/dist/translations/he/retrieval.js +0 -1
  832. package/dist/translations/he/shared.js +0 -1
  833. package/dist/translations/he/utility.js +0 -1
  834. package/dist/translations/he/viewers.js +0 -5
  835. package/dist/translations/he.js +0 -1
  836. package/dist/translations/hi/agent-tools.js +0 -1
  837. package/dist/translations/hi/charts.js +0 -1
  838. package/dist/translations/hi/conversation.js +0 -1
  839. package/dist/translations/hi/data.js +0 -1
  840. package/dist/translations/hi/forms.js +0 -1
  841. package/dist/translations/hi/layout.js +0 -1
  842. package/dist/translations/hi/media.js +0 -1
  843. package/dist/translations/hi/overlays.js +0 -1
  844. package/dist/translations/hi/retrieval.js +0 -1
  845. package/dist/translations/hi/shared.js +0 -1
  846. package/dist/translations/hi/utility.js +0 -1
  847. package/dist/translations/hi/viewers.js +0 -5
  848. package/dist/translations/hi.js +0 -1
  849. package/dist/translations/hr/agent-tools.js +0 -1
  850. package/dist/translations/hr/charts.js +0 -1
  851. package/dist/translations/hr/conversation.js +0 -1
  852. package/dist/translations/hr/data.js +0 -1
  853. package/dist/translations/hr/forms.js +0 -1
  854. package/dist/translations/hr/layout.js +0 -1
  855. package/dist/translations/hr/media.js +0 -1
  856. package/dist/translations/hr/overlays.js +0 -1
  857. package/dist/translations/hr/retrieval.js +0 -1
  858. package/dist/translations/hr/shared.js +0 -1
  859. package/dist/translations/hr/utility.js +0 -1
  860. package/dist/translations/hr/viewers.js +0 -5
  861. package/dist/translations/hr.js +0 -1
  862. package/dist/translations/hu/agent-tools.js +0 -1
  863. package/dist/translations/hu/charts.js +0 -1
  864. package/dist/translations/hu/conversation.js +0 -1
  865. package/dist/translations/hu/data.js +0 -1
  866. package/dist/translations/hu/forms.js +0 -1
  867. package/dist/translations/hu/layout.js +0 -1
  868. package/dist/translations/hu/media.js +0 -1
  869. package/dist/translations/hu/overlays.js +0 -1
  870. package/dist/translations/hu/retrieval.js +0 -1
  871. package/dist/translations/hu/shared.js +0 -1
  872. package/dist/translations/hu/utility.js +0 -1
  873. package/dist/translations/hu/viewers.js +0 -5
  874. package/dist/translations/hu.js +0 -1
  875. package/dist/translations/id/agent-tools.js +0 -1
  876. package/dist/translations/id/charts.js +0 -1
  877. package/dist/translations/id/conversation.js +0 -1
  878. package/dist/translations/id/data.js +0 -1
  879. package/dist/translations/id/forms.js +0 -1
  880. package/dist/translations/id/layout.js +0 -1
  881. package/dist/translations/id/media.js +0 -1
  882. package/dist/translations/id/overlays.js +0 -1
  883. package/dist/translations/id/retrieval.js +0 -1
  884. package/dist/translations/id/shared.js +0 -1
  885. package/dist/translations/id/utility.js +0 -1
  886. package/dist/translations/id/viewers.js +0 -5
  887. package/dist/translations/id.js +0 -1
  888. package/dist/translations/ig/agent-tools.js +0 -1
  889. package/dist/translations/ig/charts.js +0 -1
  890. package/dist/translations/ig/conversation.js +0 -1
  891. package/dist/translations/ig/data.js +0 -1
  892. package/dist/translations/ig/forms.js +0 -1
  893. package/dist/translations/ig/layout.js +0 -1
  894. package/dist/translations/ig/media.js +0 -1
  895. package/dist/translations/ig/overlays.js +0 -1
  896. package/dist/translations/ig/retrieval.js +0 -1
  897. package/dist/translations/ig/shared.js +0 -1
  898. package/dist/translations/ig/utility.js +0 -1
  899. package/dist/translations/ig/viewers.js +0 -5
  900. package/dist/translations/ig.js +0 -1
  901. package/dist/translations/it/agent-tools.js +0 -1
  902. package/dist/translations/it/charts.js +0 -1
  903. package/dist/translations/it/conversation.js +0 -1
  904. package/dist/translations/it/data.js +0 -1
  905. package/dist/translations/it/forms.js +0 -1
  906. package/dist/translations/it/layout.js +0 -1
  907. package/dist/translations/it/media.js +0 -1
  908. package/dist/translations/it/overlays.js +0 -1
  909. package/dist/translations/it/retrieval.js +0 -1
  910. package/dist/translations/it/shared.js +0 -1
  911. package/dist/translations/it/utility.js +0 -1
  912. package/dist/translations/it/viewers.js +0 -5
  913. package/dist/translations/it.js +0 -1
  914. package/dist/translations/ja/agent-tools.js +0 -1
  915. package/dist/translations/ja/charts.js +0 -1
  916. package/dist/translations/ja/conversation.js +0 -1
  917. package/dist/translations/ja/data.js +0 -1
  918. package/dist/translations/ja/forms.js +0 -1
  919. package/dist/translations/ja/layout.js +0 -1
  920. package/dist/translations/ja/media.js +0 -1
  921. package/dist/translations/ja/overlays.js +0 -1
  922. package/dist/translations/ja/retrieval.js +0 -1
  923. package/dist/translations/ja/shared.js +0 -1
  924. package/dist/translations/ja/utility.js +0 -1
  925. package/dist/translations/ja/viewers.js +0 -4
  926. package/dist/translations/ja.js +0 -1
  927. package/dist/translations/jv/agent-tools.js +0 -1
  928. package/dist/translations/jv/charts.js +0 -1
  929. package/dist/translations/jv/conversation.js +0 -1
  930. package/dist/translations/jv/data.js +0 -1
  931. package/dist/translations/jv/forms.js +0 -1
  932. package/dist/translations/jv/layout.js +0 -1
  933. package/dist/translations/jv/media.js +0 -1
  934. package/dist/translations/jv/overlays.js +0 -1
  935. package/dist/translations/jv/retrieval.js +0 -1
  936. package/dist/translations/jv/shared.js +0 -1
  937. package/dist/translations/jv/utility.js +0 -1
  938. package/dist/translations/jv/viewers.js +0 -5
  939. package/dist/translations/jv.js +0 -1
  940. package/dist/translations/kk/agent-tools.js +0 -1
  941. package/dist/translations/kk/charts.js +0 -1
  942. package/dist/translations/kk/conversation.js +0 -1
  943. package/dist/translations/kk/data.js +0 -1
  944. package/dist/translations/kk/forms.js +0 -1
  945. package/dist/translations/kk/layout.js +0 -1
  946. package/dist/translations/kk/media.js +0 -1
  947. package/dist/translations/kk/overlays.js +0 -1
  948. package/dist/translations/kk/retrieval.js +0 -1
  949. package/dist/translations/kk/shared.js +0 -1
  950. package/dist/translations/kk/utility.js +0 -1
  951. package/dist/translations/kk/viewers.js +0 -5
  952. package/dist/translations/kk.js +0 -1
  953. package/dist/translations/kn/agent-tools.js +0 -1
  954. package/dist/translations/kn/charts.js +0 -1
  955. package/dist/translations/kn/conversation.js +0 -1
  956. package/dist/translations/kn/data.js +0 -1
  957. package/dist/translations/kn/forms.js +0 -1
  958. package/dist/translations/kn/layout.js +0 -1
  959. package/dist/translations/kn/media.js +0 -1
  960. package/dist/translations/kn/overlays.js +0 -1
  961. package/dist/translations/kn/retrieval.js +0 -1
  962. package/dist/translations/kn/shared.js +0 -1
  963. package/dist/translations/kn/utility.js +0 -1
  964. package/dist/translations/kn/viewers.js +0 -5
  965. package/dist/translations/kn.js +0 -1
  966. package/dist/translations/ko/agent-tools.js +0 -1
  967. package/dist/translations/ko/charts.js +0 -1
  968. package/dist/translations/ko/conversation.js +0 -1
  969. package/dist/translations/ko/data.js +0 -1
  970. package/dist/translations/ko/forms.js +0 -1
  971. package/dist/translations/ko/layout.js +0 -1
  972. package/dist/translations/ko/media.js +0 -1
  973. package/dist/translations/ko/overlays.js +0 -1
  974. package/dist/translations/ko/retrieval.js +0 -1
  975. package/dist/translations/ko/shared.js +0 -1
  976. package/dist/translations/ko/utility.js +0 -1
  977. package/dist/translations/ko/viewers.js +0 -5
  978. package/dist/translations/ko.js +0 -1
  979. package/dist/translations/ln/agent-tools.js +0 -1
  980. package/dist/translations/ln/charts.js +0 -1
  981. package/dist/translations/ln/conversation.js +0 -1
  982. package/dist/translations/ln/data.js +0 -1
  983. package/dist/translations/ln/forms.js +0 -1
  984. package/dist/translations/ln/layout.js +0 -1
  985. package/dist/translations/ln/media.js +0 -1
  986. package/dist/translations/ln/overlays.js +0 -1
  987. package/dist/translations/ln/retrieval.js +0 -1
  988. package/dist/translations/ln/shared.js +0 -1
  989. package/dist/translations/ln/utility.js +0 -1
  990. package/dist/translations/ln/viewers.js +0 -5
  991. package/dist/translations/ln.js +0 -1
  992. package/dist/translations/ml/agent-tools.js +0 -1
  993. package/dist/translations/ml/charts.js +0 -1
  994. package/dist/translations/ml/conversation.js +0 -1
  995. package/dist/translations/ml/data.js +0 -1
  996. package/dist/translations/ml/forms.js +0 -1
  997. package/dist/translations/ml/layout.js +0 -1
  998. package/dist/translations/ml/media.js +0 -1
  999. package/dist/translations/ml/overlays.js +0 -1
  1000. package/dist/translations/ml/retrieval.js +0 -1
  1001. package/dist/translations/ml/shared.js +0 -1
  1002. package/dist/translations/ml/utility.js +0 -1
  1003. package/dist/translations/ml/viewers.js +0 -5
  1004. package/dist/translations/ml.js +0 -1
  1005. package/dist/translations/mr/agent-tools.js +0 -1
  1006. package/dist/translations/mr/charts.js +0 -1
  1007. package/dist/translations/mr/conversation.js +0 -1
  1008. package/dist/translations/mr/data.js +0 -1
  1009. package/dist/translations/mr/forms.js +0 -1
  1010. package/dist/translations/mr/layout.js +0 -1
  1011. package/dist/translations/mr/media.js +0 -1
  1012. package/dist/translations/mr/overlays.js +0 -1
  1013. package/dist/translations/mr/retrieval.js +0 -1
  1014. package/dist/translations/mr/shared.js +0 -1
  1015. package/dist/translations/mr/utility.js +0 -1
  1016. package/dist/translations/mr/viewers.js +0 -5
  1017. package/dist/translations/mr.js +0 -1
  1018. package/dist/translations/ms/agent-tools.js +0 -1
  1019. package/dist/translations/ms/charts.js +0 -1
  1020. package/dist/translations/ms/conversation.js +0 -1
  1021. package/dist/translations/ms/data.js +0 -1
  1022. package/dist/translations/ms/forms.js +0 -1
  1023. package/dist/translations/ms/layout.js +0 -1
  1024. package/dist/translations/ms/media.js +0 -1
  1025. package/dist/translations/ms/overlays.js +0 -1
  1026. package/dist/translations/ms/retrieval.js +0 -1
  1027. package/dist/translations/ms/shared.js +0 -1
  1028. package/dist/translations/ms/utility.js +0 -1
  1029. package/dist/translations/ms/viewers.js +0 -5
  1030. package/dist/translations/ms.js +0 -1
  1031. package/dist/translations/my/agent-tools.js +0 -1
  1032. package/dist/translations/my/charts.js +0 -1
  1033. package/dist/translations/my/conversation.js +0 -1
  1034. package/dist/translations/my/data.js +0 -1
  1035. package/dist/translations/my/forms.js +0 -1
  1036. package/dist/translations/my/layout.js +0 -1
  1037. package/dist/translations/my/media.js +0 -1
  1038. package/dist/translations/my/overlays.js +0 -1
  1039. package/dist/translations/my/retrieval.js +0 -1
  1040. package/dist/translations/my/shared.js +0 -1
  1041. package/dist/translations/my/utility.js +0 -1
  1042. package/dist/translations/my/viewers.js +0 -5
  1043. package/dist/translations/my.js +0 -1
  1044. package/dist/translations/nb/agent-tools.js +0 -1
  1045. package/dist/translations/nb/charts.js +0 -1
  1046. package/dist/translations/nb/conversation.js +0 -1
  1047. package/dist/translations/nb/data.js +0 -1
  1048. package/dist/translations/nb/forms.js +0 -1
  1049. package/dist/translations/nb/layout.js +0 -1
  1050. package/dist/translations/nb/media.js +0 -1
  1051. package/dist/translations/nb/overlays.js +0 -1
  1052. package/dist/translations/nb/retrieval.js +0 -1
  1053. package/dist/translations/nb/shared.js +0 -1
  1054. package/dist/translations/nb/utility.js +0 -1
  1055. package/dist/translations/nb/viewers.js +0 -5
  1056. package/dist/translations/nb.js +0 -1
  1057. package/dist/translations/ne/agent-tools.js +0 -1
  1058. package/dist/translations/ne/charts.js +0 -1
  1059. package/dist/translations/ne/conversation.js +0 -1
  1060. package/dist/translations/ne/data.js +0 -1
  1061. package/dist/translations/ne/forms.js +0 -1
  1062. package/dist/translations/ne/layout.js +0 -1
  1063. package/dist/translations/ne/media.js +0 -1
  1064. package/dist/translations/ne/overlays.js +0 -1
  1065. package/dist/translations/ne/retrieval.js +0 -1
  1066. package/dist/translations/ne/shared.js +0 -1
  1067. package/dist/translations/ne/utility.js +0 -1
  1068. package/dist/translations/ne/viewers.js +0 -5
  1069. package/dist/translations/ne.js +0 -1
  1070. package/dist/translations/nl/agent-tools.js +0 -1
  1071. package/dist/translations/nl/charts.js +0 -1
  1072. package/dist/translations/nl/conversation.js +0 -1
  1073. package/dist/translations/nl/data.js +0 -1
  1074. package/dist/translations/nl/forms.js +0 -1
  1075. package/dist/translations/nl/layout.js +0 -1
  1076. package/dist/translations/nl/media.js +0 -1
  1077. package/dist/translations/nl/overlays.js +0 -1
  1078. package/dist/translations/nl/retrieval.js +0 -1
  1079. package/dist/translations/nl/shared.js +0 -1
  1080. package/dist/translations/nl/utility.js +0 -1
  1081. package/dist/translations/nl/viewers.js +0 -5
  1082. package/dist/translations/nl.js +0 -1
  1083. package/dist/translations/nn/agent-tools.js +0 -1
  1084. package/dist/translations/nn/charts.js +0 -1
  1085. package/dist/translations/nn/conversation.js +0 -1
  1086. package/dist/translations/nn/data.js +0 -1
  1087. package/dist/translations/nn/forms.js +0 -1
  1088. package/dist/translations/nn/layout.js +0 -1
  1089. package/dist/translations/nn/media.js +0 -1
  1090. package/dist/translations/nn/overlays.js +0 -1
  1091. package/dist/translations/nn/retrieval.js +0 -1
  1092. package/dist/translations/nn/shared.js +0 -1
  1093. package/dist/translations/nn/utility.js +0 -1
  1094. package/dist/translations/nn/viewers.js +0 -5
  1095. package/dist/translations/nn.js +0 -1
  1096. package/dist/translations/om/agent-tools.js +0 -1
  1097. package/dist/translations/om/charts.js +0 -1
  1098. package/dist/translations/om/conversation.js +0 -1
  1099. package/dist/translations/om/data.js +0 -1
  1100. package/dist/translations/om/forms.js +0 -1
  1101. package/dist/translations/om/layout.js +0 -1
  1102. package/dist/translations/om/media.js +0 -1
  1103. package/dist/translations/om/overlays.js +0 -1
  1104. package/dist/translations/om/retrieval.js +0 -1
  1105. package/dist/translations/om/shared.js +0 -1
  1106. package/dist/translations/om/utility.js +0 -1
  1107. package/dist/translations/om/viewers.js +0 -5
  1108. package/dist/translations/om.js +0 -1
  1109. package/dist/translations/or/agent-tools.js +0 -1
  1110. package/dist/translations/or/charts.js +0 -1
  1111. package/dist/translations/or/conversation.js +0 -1
  1112. package/dist/translations/or/data.js +0 -1
  1113. package/dist/translations/or/forms.js +0 -1
  1114. package/dist/translations/or/layout.js +0 -1
  1115. package/dist/translations/or/media.js +0 -1
  1116. package/dist/translations/or/overlays.js +0 -1
  1117. package/dist/translations/or/retrieval.js +0 -1
  1118. package/dist/translations/or/shared.js +0 -1
  1119. package/dist/translations/or/utility.js +0 -1
  1120. package/dist/translations/or/viewers.js +0 -5
  1121. package/dist/translations/or.js +0 -1
  1122. package/dist/translations/pa/agent-tools.js +0 -1
  1123. package/dist/translations/pa/charts.js +0 -1
  1124. package/dist/translations/pa/conversation.js +0 -1
  1125. package/dist/translations/pa/data.js +0 -1
  1126. package/dist/translations/pa/forms.js +0 -1
  1127. package/dist/translations/pa/layout.js +0 -1
  1128. package/dist/translations/pa/media.js +0 -1
  1129. package/dist/translations/pa/overlays.js +0 -1
  1130. package/dist/translations/pa/retrieval.js +0 -1
  1131. package/dist/translations/pa/shared.js +0 -1
  1132. package/dist/translations/pa/utility.js +0 -1
  1133. package/dist/translations/pa/viewers.js +0 -5
  1134. package/dist/translations/pa.js +0 -1
  1135. package/dist/translations/pcm/agent-tools.js +0 -1
  1136. package/dist/translations/pcm/charts.js +0 -1
  1137. package/dist/translations/pcm/conversation.js +0 -1
  1138. package/dist/translations/pcm/data.js +0 -1
  1139. package/dist/translations/pcm/forms.js +0 -1
  1140. package/dist/translations/pcm/layout.js +0 -1
  1141. package/dist/translations/pcm/media.js +0 -1
  1142. package/dist/translations/pcm/overlays.js +0 -1
  1143. package/dist/translations/pcm/retrieval.js +0 -1
  1144. package/dist/translations/pcm/shared.js +0 -1
  1145. package/dist/translations/pcm/utility.js +0 -1
  1146. package/dist/translations/pcm/viewers.js +0 -5
  1147. package/dist/translations/pcm.js +0 -1
  1148. package/dist/translations/pl/agent-tools.js +0 -1
  1149. package/dist/translations/pl/charts.js +0 -1
  1150. package/dist/translations/pl/conversation.js +0 -1
  1151. package/dist/translations/pl/data.js +0 -1
  1152. package/dist/translations/pl/forms.js +0 -1
  1153. package/dist/translations/pl/layout.js +0 -1
  1154. package/dist/translations/pl/media.js +0 -1
  1155. package/dist/translations/pl/overlays.js +0 -1
  1156. package/dist/translations/pl/retrieval.js +0 -1
  1157. package/dist/translations/pl/shared.js +0 -1
  1158. package/dist/translations/pl/utility.js +0 -1
  1159. package/dist/translations/pl/viewers.js +0 -5
  1160. package/dist/translations/pl.js +0 -1
  1161. package/dist/translations/pnb/agent-tools.js +0 -1
  1162. package/dist/translations/pnb/charts.js +0 -1
  1163. package/dist/translations/pnb/conversation.js +0 -1
  1164. package/dist/translations/pnb/data.js +0 -1
  1165. package/dist/translations/pnb/forms.js +0 -1
  1166. package/dist/translations/pnb/layout.js +0 -1
  1167. package/dist/translations/pnb/media.js +0 -1
  1168. package/dist/translations/pnb/overlays.js +0 -1
  1169. package/dist/translations/pnb/retrieval.js +0 -1
  1170. package/dist/translations/pnb/shared.js +0 -1
  1171. package/dist/translations/pnb/utility.js +0 -1
  1172. package/dist/translations/pnb/viewers.js +0 -5
  1173. package/dist/translations/pnb.js +0 -1
  1174. package/dist/translations/ps/agent-tools.js +0 -1
  1175. package/dist/translations/ps/charts.js +0 -1
  1176. package/dist/translations/ps/conversation.js +0 -1
  1177. package/dist/translations/ps/data.js +0 -1
  1178. package/dist/translations/ps/forms.js +0 -1
  1179. package/dist/translations/ps/layout.js +0 -1
  1180. package/dist/translations/ps/media.js +0 -1
  1181. package/dist/translations/ps/overlays.js +0 -1
  1182. package/dist/translations/ps/retrieval.js +0 -1
  1183. package/dist/translations/ps/shared.js +0 -1
  1184. package/dist/translations/ps/utility.js +0 -1
  1185. package/dist/translations/ps/viewers.js +0 -5
  1186. package/dist/translations/ps.js +0 -1
  1187. package/dist/translations/pt-BR/agent-tools.js +0 -1
  1188. package/dist/translations/pt-BR/charts.js +0 -1
  1189. package/dist/translations/pt-BR/conversation.js +0 -1
  1190. package/dist/translations/pt-BR/data.js +0 -1
  1191. package/dist/translations/pt-BR/forms.js +0 -1
  1192. package/dist/translations/pt-BR/layout.js +0 -1
  1193. package/dist/translations/pt-BR/media.js +0 -1
  1194. package/dist/translations/pt-BR/overlays.js +0 -1
  1195. package/dist/translations/pt-BR/retrieval.js +0 -1
  1196. package/dist/translations/pt-BR/shared.js +0 -1
  1197. package/dist/translations/pt-BR/utility.js +0 -1
  1198. package/dist/translations/pt-BR/viewers.js +0 -5
  1199. package/dist/translations/pt-BR.js +0 -1
  1200. package/dist/translations/pt-PT/agent-tools.js +0 -1
  1201. package/dist/translations/pt-PT/charts.js +0 -1
  1202. package/dist/translations/pt-PT/conversation.js +0 -1
  1203. package/dist/translations/pt-PT/data.js +0 -1
  1204. package/dist/translations/pt-PT/forms.js +0 -1
  1205. package/dist/translations/pt-PT/layout.js +0 -1
  1206. package/dist/translations/pt-PT/media.js +0 -1
  1207. package/dist/translations/pt-PT/overlays.js +0 -1
  1208. package/dist/translations/pt-PT/retrieval.js +0 -1
  1209. package/dist/translations/pt-PT/shared.js +0 -1
  1210. package/dist/translations/pt-PT/utility.js +0 -1
  1211. package/dist/translations/pt-PT/viewers.js +0 -5
  1212. package/dist/translations/pt-PT.js +0 -1
  1213. package/dist/translations/ro/agent-tools.js +0 -1
  1214. package/dist/translations/ro/charts.js +0 -1
  1215. package/dist/translations/ro/conversation.js +0 -1
  1216. package/dist/translations/ro/data.js +0 -1
  1217. package/dist/translations/ro/forms.js +0 -1
  1218. package/dist/translations/ro/layout.js +0 -1
  1219. package/dist/translations/ro/media.js +0 -1
  1220. package/dist/translations/ro/overlays.js +0 -1
  1221. package/dist/translations/ro/retrieval.js +0 -1
  1222. package/dist/translations/ro/shared.js +0 -1
  1223. package/dist/translations/ro/utility.js +0 -1
  1224. package/dist/translations/ro/viewers.js +0 -5
  1225. package/dist/translations/ro.js +0 -1
  1226. package/dist/translations/ru/agent-tools.js +0 -1
  1227. package/dist/translations/ru/charts.js +0 -1
  1228. package/dist/translations/ru/conversation.js +0 -1
  1229. package/dist/translations/ru/data.js +0 -1
  1230. package/dist/translations/ru/forms.js +0 -1
  1231. package/dist/translations/ru/layout.js +0 -1
  1232. package/dist/translations/ru/media.js +0 -1
  1233. package/dist/translations/ru/overlays.js +0 -1
  1234. package/dist/translations/ru/retrieval.js +0 -1
  1235. package/dist/translations/ru/shared.js +0 -1
  1236. package/dist/translations/ru/utility.js +0 -1
  1237. package/dist/translations/ru/viewers.js +0 -5
  1238. package/dist/translations/ru.js +0 -1
  1239. package/dist/translations/sd/agent-tools.js +0 -1
  1240. package/dist/translations/sd/charts.js +0 -1
  1241. package/dist/translations/sd/conversation.js +0 -1
  1242. package/dist/translations/sd/data.js +0 -1
  1243. package/dist/translations/sd/forms.js +0 -1
  1244. package/dist/translations/sd/layout.js +0 -1
  1245. package/dist/translations/sd/media.js +0 -1
  1246. package/dist/translations/sd/overlays.js +0 -1
  1247. package/dist/translations/sd/retrieval.js +0 -1
  1248. package/dist/translations/sd/shared.js +0 -1
  1249. package/dist/translations/sd/utility.js +0 -1
  1250. package/dist/translations/sd/viewers.js +0 -5
  1251. package/dist/translations/sd.js +0 -1
  1252. package/dist/translations/sl/agent-tools.js +0 -1
  1253. package/dist/translations/sl/charts.js +0 -1
  1254. package/dist/translations/sl/conversation.js +0 -1
  1255. package/dist/translations/sl/data.js +0 -1
  1256. package/dist/translations/sl/forms.js +0 -1
  1257. package/dist/translations/sl/layout.js +0 -1
  1258. package/dist/translations/sl/media.js +0 -1
  1259. package/dist/translations/sl/overlays.js +0 -1
  1260. package/dist/translations/sl/retrieval.js +0 -1
  1261. package/dist/translations/sl/shared.js +0 -1
  1262. package/dist/translations/sl/utility.js +0 -1
  1263. package/dist/translations/sl/viewers.js +0 -5
  1264. package/dist/translations/sl.js +0 -1
  1265. package/dist/translations/su/agent-tools.js +0 -1
  1266. package/dist/translations/su/charts.js +0 -1
  1267. package/dist/translations/su/conversation.js +0 -1
  1268. package/dist/translations/su/data.js +0 -1
  1269. package/dist/translations/su/forms.js +0 -1
  1270. package/dist/translations/su/layout.js +0 -1
  1271. package/dist/translations/su/media.js +0 -1
  1272. package/dist/translations/su/overlays.js +0 -1
  1273. package/dist/translations/su/retrieval.js +0 -1
  1274. package/dist/translations/su/shared.js +0 -1
  1275. package/dist/translations/su/utility.js +0 -1
  1276. package/dist/translations/su/viewers.js +0 -5
  1277. package/dist/translations/su.js +0 -1
  1278. package/dist/translations/sv/agent-tools.js +0 -1
  1279. package/dist/translations/sv/charts.js +0 -1
  1280. package/dist/translations/sv/conversation.js +0 -1
  1281. package/dist/translations/sv/data.js +0 -1
  1282. package/dist/translations/sv/forms.js +0 -1
  1283. package/dist/translations/sv/layout.js +0 -1
  1284. package/dist/translations/sv/media.js +0 -1
  1285. package/dist/translations/sv/overlays.js +0 -1
  1286. package/dist/translations/sv/retrieval.js +0 -1
  1287. package/dist/translations/sv/shared.js +0 -1
  1288. package/dist/translations/sv/utility.js +0 -1
  1289. package/dist/translations/sv/viewers.js +0 -5
  1290. package/dist/translations/sv.js +0 -1
  1291. package/dist/translations/sw/agent-tools.js +0 -1
  1292. package/dist/translations/sw/charts.js +0 -1
  1293. package/dist/translations/sw/conversation.js +0 -1
  1294. package/dist/translations/sw/data.js +0 -1
  1295. package/dist/translations/sw/forms.js +0 -1
  1296. package/dist/translations/sw/layout.js +0 -1
  1297. package/dist/translations/sw/media.js +0 -1
  1298. package/dist/translations/sw/overlays.js +0 -1
  1299. package/dist/translations/sw/retrieval.js +0 -1
  1300. package/dist/translations/sw/shared.js +0 -1
  1301. package/dist/translations/sw/utility.js +0 -1
  1302. package/dist/translations/sw/viewers.js +0 -5
  1303. package/dist/translations/sw.js +0 -1
  1304. package/dist/translations/ta/agent-tools.js +0 -1
  1305. package/dist/translations/ta/charts.js +0 -1
  1306. package/dist/translations/ta/conversation.js +0 -1
  1307. package/dist/translations/ta/data.js +0 -1
  1308. package/dist/translations/ta/forms.js +0 -1
  1309. package/dist/translations/ta/layout.js +0 -1
  1310. package/dist/translations/ta/media.js +0 -1
  1311. package/dist/translations/ta/overlays.js +0 -1
  1312. package/dist/translations/ta/retrieval.js +0 -1
  1313. package/dist/translations/ta/shared.js +0 -1
  1314. package/dist/translations/ta/utility.js +0 -1
  1315. package/dist/translations/ta/viewers.js +0 -5
  1316. package/dist/translations/ta.js +0 -1
  1317. package/dist/translations/te/agent-tools.js +0 -1
  1318. package/dist/translations/te/charts.js +0 -1
  1319. package/dist/translations/te/conversation.js +0 -1
  1320. package/dist/translations/te/data.js +0 -1
  1321. package/dist/translations/te/forms.js +0 -1
  1322. package/dist/translations/te/layout.js +0 -1
  1323. package/dist/translations/te/media.js +0 -1
  1324. package/dist/translations/te/overlays.js +0 -1
  1325. package/dist/translations/te/retrieval.js +0 -1
  1326. package/dist/translations/te/shared.js +0 -1
  1327. package/dist/translations/te/utility.js +0 -1
  1328. package/dist/translations/te/viewers.js +0 -5
  1329. package/dist/translations/te.js +0 -1
  1330. package/dist/translations/th/agent-tools.js +0 -1
  1331. package/dist/translations/th/charts.js +0 -1
  1332. package/dist/translations/th/conversation.js +0 -1
  1333. package/dist/translations/th/data.js +0 -1
  1334. package/dist/translations/th/forms.js +0 -1
  1335. package/dist/translations/th/layout.js +0 -1
  1336. package/dist/translations/th/media.js +0 -1
  1337. package/dist/translations/th/overlays.js +0 -1
  1338. package/dist/translations/th/retrieval.js +0 -1
  1339. package/dist/translations/th/shared.js +0 -1
  1340. package/dist/translations/th/utility.js +0 -1
  1341. package/dist/translations/th/viewers.js +0 -5
  1342. package/dist/translations/th.js +0 -1
  1343. package/dist/translations/tl/agent-tools.js +0 -1
  1344. package/dist/translations/tl/charts.js +0 -1
  1345. package/dist/translations/tl/conversation.js +0 -1
  1346. package/dist/translations/tl/data.js +0 -1
  1347. package/dist/translations/tl/forms.js +0 -1
  1348. package/dist/translations/tl/layout.js +0 -1
  1349. package/dist/translations/tl/media.js +0 -1
  1350. package/dist/translations/tl/overlays.js +0 -1
  1351. package/dist/translations/tl/retrieval.js +0 -1
  1352. package/dist/translations/tl/shared.js +0 -1
  1353. package/dist/translations/tl/utility.js +0 -1
  1354. package/dist/translations/tl/viewers.js +0 -5
  1355. package/dist/translations/tl.js +0 -1
  1356. package/dist/translations/tr/agent-tools.js +0 -1
  1357. package/dist/translations/tr/charts.js +0 -1
  1358. package/dist/translations/tr/conversation.js +0 -1
  1359. package/dist/translations/tr/data.js +0 -1
  1360. package/dist/translations/tr/forms.js +0 -1
  1361. package/dist/translations/tr/layout.js +0 -1
  1362. package/dist/translations/tr/media.js +0 -1
  1363. package/dist/translations/tr/overlays.js +0 -1
  1364. package/dist/translations/tr/retrieval.js +0 -1
  1365. package/dist/translations/tr/shared.js +0 -1
  1366. package/dist/translations/tr/utility.js +0 -1
  1367. package/dist/translations/tr/viewers.js +0 -5
  1368. package/dist/translations/tr.js +0 -1
  1369. package/dist/translations/uk/agent-tools.js +0 -1
  1370. package/dist/translations/uk/charts.js +0 -1
  1371. package/dist/translations/uk/conversation.js +0 -1
  1372. package/dist/translations/uk/data.js +0 -1
  1373. package/dist/translations/uk/forms.js +0 -1
  1374. package/dist/translations/uk/layout.js +0 -1
  1375. package/dist/translations/uk/media.js +0 -1
  1376. package/dist/translations/uk/overlays.js +0 -1
  1377. package/dist/translations/uk/retrieval.js +0 -1
  1378. package/dist/translations/uk/shared.js +0 -1
  1379. package/dist/translations/uk/utility.js +0 -1
  1380. package/dist/translations/uk/viewers.js +0 -5
  1381. package/dist/translations/uk.js +0 -1
  1382. package/dist/translations/ur/agent-tools.js +0 -1
  1383. package/dist/translations/ur/charts.js +0 -1
  1384. package/dist/translations/ur/conversation.js +0 -1
  1385. package/dist/translations/ur/data.js +0 -1
  1386. package/dist/translations/ur/forms.js +0 -1
  1387. package/dist/translations/ur/layout.js +0 -1
  1388. package/dist/translations/ur/media.js +0 -1
  1389. package/dist/translations/ur/overlays.js +0 -1
  1390. package/dist/translations/ur/retrieval.js +0 -1
  1391. package/dist/translations/ur/shared.js +0 -1
  1392. package/dist/translations/ur/utility.js +0 -1
  1393. package/dist/translations/ur/viewers.js +0 -5
  1394. package/dist/translations/ur.js +0 -1
  1395. package/dist/translations/uz/agent-tools.js +0 -1
  1396. package/dist/translations/uz/charts.js +0 -1
  1397. package/dist/translations/uz/conversation.js +0 -1
  1398. package/dist/translations/uz/data.js +0 -1
  1399. package/dist/translations/uz/forms.js +0 -1
  1400. package/dist/translations/uz/layout.js +0 -1
  1401. package/dist/translations/uz/media.js +0 -1
  1402. package/dist/translations/uz/overlays.js +0 -1
  1403. package/dist/translations/uz/retrieval.js +0 -1
  1404. package/dist/translations/uz/shared.js +0 -1
  1405. package/dist/translations/uz/utility.js +0 -1
  1406. package/dist/translations/uz/viewers.js +0 -5
  1407. package/dist/translations/uz.js +0 -1
  1408. package/dist/translations/vi/agent-tools.js +0 -1
  1409. package/dist/translations/vi/charts.js +0 -1
  1410. package/dist/translations/vi/conversation.js +0 -1
  1411. package/dist/translations/vi/data.js +0 -1
  1412. package/dist/translations/vi/forms.js +0 -1
  1413. package/dist/translations/vi/layout.js +0 -1
  1414. package/dist/translations/vi/media.js +0 -1
  1415. package/dist/translations/vi/overlays.js +0 -1
  1416. package/dist/translations/vi/retrieval.js +0 -1
  1417. package/dist/translations/vi/shared.js +0 -1
  1418. package/dist/translations/vi/utility.js +0 -1
  1419. package/dist/translations/vi/viewers.js +0 -5
  1420. package/dist/translations/vi.js +0 -1
  1421. package/dist/translations/yo/agent-tools.js +0 -1
  1422. package/dist/translations/yo/charts.js +0 -1
  1423. package/dist/translations/yo/conversation.js +0 -1
  1424. package/dist/translations/yo/data.js +0 -1
  1425. package/dist/translations/yo/forms.js +0 -1
  1426. package/dist/translations/yo/layout.js +0 -1
  1427. package/dist/translations/yo/media.js +0 -1
  1428. package/dist/translations/yo/overlays.js +0 -1
  1429. package/dist/translations/yo/retrieval.js +0 -1
  1430. package/dist/translations/yo/shared.js +0 -1
  1431. package/dist/translations/yo/utility.js +0 -1
  1432. package/dist/translations/yo/viewers.js +0 -5
  1433. package/dist/translations/yo.js +0 -1
  1434. package/dist/translations/zh-CN/agent-tools.js +0 -1
  1435. package/dist/translations/zh-CN/charts.js +0 -1
  1436. package/dist/translations/zh-CN/conversation.js +0 -1
  1437. package/dist/translations/zh-CN/data.js +0 -1
  1438. package/dist/translations/zh-CN/forms.js +0 -1
  1439. package/dist/translations/zh-CN/layout.js +0 -1
  1440. package/dist/translations/zh-CN/media.js +0 -1
  1441. package/dist/translations/zh-CN/overlays.js +0 -1
  1442. package/dist/translations/zh-CN/retrieval.js +0 -1
  1443. package/dist/translations/zh-CN/shared.js +0 -1
  1444. package/dist/translations/zh-CN/utility.js +0 -1
  1445. package/dist/translations/zh-CN/viewers.js +0 -5
  1446. package/dist/translations/zh-CN.js +0 -1
  1447. package/dist/translations/zh-TW/agent-tools.js +0 -1
  1448. package/dist/translations/zh-TW/charts.js +0 -1
  1449. package/dist/translations/zh-TW/conversation.js +0 -1
  1450. package/dist/translations/zh-TW/data.js +0 -1
  1451. package/dist/translations/zh-TW/forms.js +0 -1
  1452. package/dist/translations/zh-TW/layout.js +0 -1
  1453. package/dist/translations/zh-TW/media.js +0 -1
  1454. package/dist/translations/zh-TW/overlays.js +0 -1
  1455. package/dist/translations/zh-TW/retrieval.js +0 -1
  1456. package/dist/translations/zh-TW/shared.js +0 -1
  1457. package/dist/translations/zh-TW/utility.js +0 -1
  1458. package/dist/translations/zh-TW/viewers.js +0 -5
  1459. package/dist/translations/zh-TW.js +0 -1
  1460. package/dist/translations/zu/agent-tools.js +0 -1
  1461. package/dist/translations/zu/charts.js +0 -1
  1462. package/dist/translations/zu/conversation.js +0 -1
  1463. package/dist/translations/zu/data.js +0 -1
  1464. package/dist/translations/zu/forms.js +0 -1
  1465. package/dist/translations/zu/layout.js +0 -1
  1466. package/dist/translations/zu/media.js +0 -1
  1467. package/dist/translations/zu/overlays.js +0 -1
  1468. package/dist/translations/zu/retrieval.js +0 -1
  1469. package/dist/translations/zu/shared.js +0 -1
  1470. package/dist/translations/zu/utility.js +0 -1
  1471. package/dist/translations/zu/viewers.js +0 -5
  1472. package/dist/translations/zu.js +0 -1
  1473. package/vscode-css-data.json +0 -1
  1474. package/vscode-html-data.json +0 -1
  1475. package/web-types.json +0 -1
package/README.md CHANGED
@@ -42,152 +42,90 @@ and no runtime dependency on either project.
42
42
 
43
43
  ## Highlights
44
44
 
45
- | Area | Features and reference |
46
- | --- | --- |
47
- | Looks and branding | Lyra, shadcn, Material, data, terminal and high contrast compose with independent surface, density, mode and accent choices. Optional sheets and runtime definitions load only when imported; see [styling setup](./llms/shared/styles-and-tokens.md#composing-looks-surfaces-and-density). |
48
- | Theme builder | The [documentation editor](./llms/shared/styles-and-tokens.md#documentation-theme-builder) previews real controls, imports and exports validated presets, and provides contrast diagnostics and typography, motion, shape, elevation and chart-palette controls. It adds no application dependency. |
49
- | Navigation | [Menubar](./llms/components/lr-menubar.md), [navigation menu](./llms/components/lr-navigation-menu.md), [context menu](./llms/components/lr-context-menu.md), and [app-rail](./llms/components/lr-app-rail.md) sidebar controls with external launchers, shortcuts, resizing, and persistence. [Multi-split](./llms/components/lr-multi-split.md) exposes pane actions and optional launcher ARIA/focus association. |
50
- | Toggle controls | [Toggle](./llms/components/lr-toggle.md) and [toggle group](./llms/components/lr-toggle-group.md) provide pressed-button state, single or multiple selection, keyboard navigation, and joined styling. |
51
- | Markdown and streaming | [Markdown](./llms/components/lr-markdown.md) supports optional code-block headers with exact-source copying, progressive streaming, GFM table scrollers and column alignment, and themed read-only task checkboxes. |
52
- | Tool results | [Tool-call blocks](./llms/components/lr-tool-call-block.md) provide expandable summaries and result presentation with controlled disclosure state. |
53
- | Popup placement | [Tooltip](./llms/components/lr-tooltip.md), [select](./llms/components/lr-select.md), [combobox](./llms/components/lr-combobox.md), [locale-picker](./llms/components/lr-locale-picker.md), navigation-menu and app-rail labels support opt-in `top-layer` placement above sibling stacking contexts. |
54
- | Progress and refresh | Task lists, traces and research progress distinguish incomplete work from failure. [Poll-status](./llms/components/lr-poll-status.md) offers `with-refresh`; [random-content](./llms/components/lr-random-content.md) offers `with-next` and `restart()`. [Knowledge-graph-explorer](./llms/components/lr-knowledge-graph-explorer.md) exposes `fit()`, `resetView()` and `focusNode()`. |
55
- | Languages | 66 optional complete message catalogs plus built-in English. The [`locales.json` manifest](./locales.json) lists canonical tags, authored source spellings, import paths and structural coverage. Import a [whole catalog](./llms/shared.md#ready-made-catalogs-aceshootinglyra-uitranslationslocalejs) (`@aceshooting/lyra-ui/translations/<locale>.js`) or only the [family slices](./llms/shared.md#smaller-catalogs-aceshootinglyra-uitranslationslocalefamilyjs) the application renders. |
56
- | Typography | [Typography utilities](./llms/shared.md#typography) apply a shared scale and reading styles to native content alongside custom elements. |
57
-
58
- The [release roadmap](../../docs/roadmap.md#roadmap-index-and-release-status) tracks v24 styling,
59
- localization, cleanup and qualification work, then the separate website and consumer rollout after
60
- v24 publication.
61
-
62
- For new apps, use the [Lyra signature starter](./llms/shared/styles-and-tokens.md#lyra-signature-starter):
63
- Shadcn, glass, Emerald, theme-aware spotlights, compact gemstones and country-flag language controls.
64
- The recipe preserves saved choices and explicit branding and covers first paint, persistence and
65
- accessible controls. The built-in profile is Shadcn/Glass/Emerald/System with comfortable density;
66
- saved choices override each axis independently. To retain the earlier appearance, select
67
- `look: 'lyra'`, `surface: 'solid'`, and `accent: null` explicitly. Clearing an accent with `null`
68
- remains supported; `resetLyraStyle()` restores Emerald.
69
-
70
- See the [changelog](CHANGELOG.md) for version-by-version changes and historical upgrade notes.
45
+ - **Composable looks.** Lyra, shadcn, Material, data, terminal and high contrast combine with independent
46
+ surface, density, mode and accent choices; the built-in profile is Shadcn/Glass/Emerald/System with
47
+ comfortable density ([styling setup](./llms/shared/styles-and-tokens.md#composing-looks-surfaces-and-density),
48
+ [signature starter](./llms/shared/styles-and-tokens.md#lyra-signature-starter)).
49
+ - **Conversation and agent UI.** Progressive [Markdown](./llms/components/lr-markdown.md) and expandable
50
+ [tool-call blocks](./llms/components/lr-tool-call-block.md).
51
+ - **Languages and typography.** 66 optional catalogs in `@aceshooting/lyra-translations` plus built-in English
52
+ ([`locales.json`](./locales.json), [import guide](./llms/shared/localization-and-rtl.md#ready-made-catalogs-aceshootinglyra-translationslocalejs)) and
53
+ [typography utilities](./llms/shared.md#typography).
54
+
55
+ The [roadmap](../../docs/roadmap.md#roadmap-index-and-release-status) tracks upcoming work; the
56
+ [changelog](CHANGELOG.md) and [archive](../../docs/changelog) hold per-version changes and older upgrade notes.
71
57
 
72
58
  ## Upgrading to v23
73
59
 
74
- V23 removes eligible compatibility APIs deprecated before v22. Use the
75
- [migration guide](./llms/migration.md) and the `lyra-v21` migration profile to update older usage;
76
- review semantic changes that the codemod cannot safely rewrite. APIs first deprecated in v22
77
- remain available throughout v23, and upstream-mirrored names remain supported.
60
+ Compatibility APIs deprecated before v22 were removed; use the [migration guide](./llms/migration.md) and the `lyra-v21` profile ([notes](../../docs/changelog/v23.md)).
78
61
 
79
- Unsized textarea, code-block, code-block-core and code-editor components now follow their content.
80
- Where a layout needs them to fill a definite-height container, set `block-size: 100%` on the
81
- component itself. Details panels also use natural sizing in ordinary block containers. Auto-growing
82
- textareas keep content scrollable when their allocated height shrinks.
62
+ ## Upgrading to v24
83
63
 
84
- Cancelled agent-run steps now appear as neutral incomplete steps in the default task list, with
85
- a polite incomplete announcement instead of a failed-step announcement. The run itself keeps its
86
- cancelled status and retry behavior.
64
+ Theme/preset facade, nested registration routes and `ssr-loader.js` were removed; follow the [v23-to-v24 guide](./llms/shared/v23-to-v24-migration.md) and run the CLI with `--origin=lyra-v22` ([notes](../../docs/changelog/v24.md)).
87
65
 
88
- ## Upgrading to v24
66
+ ## Upgrading to v27
67
+
68
+ V27 is a major release; each change below has a migration note in the [changelog](CHANGELOG.md). Run `npx lyra-ui-migrate --origin=lyra-v26 --check src` first.
89
69
 
90
- V24 removes eligible v22 compatibility APIs while retaining component tags and the eight mirrored
91
- upstream spellings. Import constructors from their registration-free family `.class.js` paths and
92
- register tags through `components/lr-<tag>.js`; the duplicate nested registration routes and
93
- `ssr-loader.js` are removed. For browser hydration import `hydration.js` before Lit, then chosen
94
- registrations. Server rendering uses `ssr.js` and, when needed, `ssr/all.js`; see the
95
- [SSR examples](#ssr--declarative-shadow-dom).
96
-
97
- The old theme and preset facade, `data-lr-theme-preset`, and fixed `themes/shadcn.css` are also
98
- removed. Use `setLyraStyle()` from `theme.js` with independent look, surface, density, mode and
99
- accent choices. Theme calls and saved data need semantic review: the former `surface` color maps to
100
- `accentBackground`, while the new `surface` selects a treatment. Saved v1 preferences remain
101
- readable. The [style guide](./llms/shared/styles-and-tokens.md#composing-looks-surfaces-and-density)
102
- documents the current API.
103
-
104
- Run the installed, version-matched CLI with `--origin=lyra-v22` and review its report. The
105
- [v23-to-v24 migration guide](./llms/shared/v23-to-v24-migration.md) gives the project sequence,
106
- import and SSR replacements, theme semantics, event-detail changes and historical profile rules.
107
- The generated [`llms/migration.md`](./llms/migration.md) has per-component `wa-*`/`sl-*` mappings.
70
+ - **Package split.** Locale catalogs moved to [`@aceshooting/lyra-translations`](../lyra-translations)
71
+ (`@aceshooting/lyra-ui/translations/<locale>.js` becomes `@aceshooting/lyra-translations/<locale>.js`; the
72
+ pseudo-locales stay here) and editor data to [`@aceshooting/lyra-ide`](../lyra-ide)
73
+ (the `custom-elements.json` export is now `@aceshooting/lyra-ide/custom-elements.json`). Install
74
+ them at the same version; `loadLyraLocale()` needs `lyra-translations`.
75
+ - **Agent tools.** `ToolCallStatus` and `ToolResultStatus` are replaced by one `ToolStatus` union.
76
+ `lr-task-list` and `lr-prompt-studio` default `heading-level` to `none`; set `3` / `2` to keep headings.
77
+ - **Copy controls** show feedback for 1500 ms; set `feedback-duration="1000"` on `lr-copy-button` to keep the old timing.
78
+ - **Text fields.** `lr-phone-input`'s string `autoCorrect` is now the boolean `autocorrect`.
79
+ - **Charts** over the row budget keep every series and thin only rows.
108
80
 
109
81
  ## Quick Start
110
82
 
111
- Paste this prompt into Claude or Codex:
83
+ **Use with AI coding agents.** AI coding agents: run `npx lyra-ui init-agents` (add `--agent <name>` if not auto-detected) to install the
84
+ Lyra UI skill for yourself; it prints the installed paths and the step that makes your agent load it
85
+ (add `--json` for machine-readable output).
112
86
 
113
- ```text
114
- Install the Lyra UI skill from GitHub aceshooting/lyra-ui. Start a Lit app with Vite+ and lyra-ui, following the skill.
87
+ Humans: install the package, then run it.
88
+
89
+ ```bash
90
+ npm i @aceshooting/lyra-ui && npx lyra-ui init-agents
115
91
  ```
116
92
 
93
+ In a terminal it asks which agents (Claude Code, Codex, OpenCode, Cursor, Gemini CLI, GitHub Copilot, Amp,
94
+ Windsurf) to set up; agents and CI get the detected defaults. It installs the bundled `lyra-ui` and
95
+ `compose-lyra-interfaces` skills into the shared `.agents/skills/` plus a link for agents with their own
96
+ directory (Claude Code: `.claude/skills/`), as symlinks into `node_modules` so upgrades refresh them
97
+ (`--copy`, `--dry-run`, `--agents claude,opencode|all`, `--force`), and adds a short marked block to
98
+ `AGENTS.md` (and `CLAUDE.md` if present). Re-running is safe. Prefer a marketplace? `/plugin marketplace add
99
+ aceshooting/lyra-ui` then `/plugin install lyra-ui@aceshooting` (Claude Code), or `codex plugin marketplace
100
+ add aceshooting/lyra-ui` then `codex plugin add lyra-ui@aceshooting` (Codex).
101
+
117
102
  ## Install
118
103
 
119
104
  ```bash
120
105
  npm install @aceshooting/lyra-ui
121
- # runtime dependencies: Lit and Floating UI are installed transitively with this package
122
- # optional peer: @aceshooting/lyra-flags, only needed for <lr-flag>
123
- # optional peer: libphonenumber-js, only when creating a <lr-phone-input>
124
- # adapter with loadLibphonenumberAdapter(); it is never imported by lyra-ui
125
- # and international E.164 input works without it
126
- # optional peer: d3-force, d3-drag, d3-zoom, d3-selection, only needed for <lr-graph>
127
- # optional peer: chart.js, only needed for the <lr-*-chart>/<lr-histogram> family
128
- # optional peer: chartjs-plugin-zoom, only when that family's zoom feature is enabled
129
- # optional peer: chartjs-plugin-datalabels, only when data-labels or stack-totals is enabled
130
- # optional peer: @sgratzl/chartjs-chart-boxplot, only needed for <lr-box-plot>
131
- # optional peers: mammoth and dompurify, only needed for <lr-docx-viewer>
132
- # — Mammoth converts DOCX files to semantic HTML instead of pixel-exact Word page layout.
133
- # optional peer: maplibre-gl, only needed for <lr-map> — lr-map styles the
134
- # generated canvas, markers, popups, and controls inside its shadow root.
135
- # Lyra supports MapLibre v5 and v6. v5's standard build includes its worker;
136
- # v6 is ESM-only, requires WebGL2, and also needs its module-worker URL
137
- # configured for your bundler before the first map is constructed.
138
- # <lr-map> requires an explicit `mapStyle`; it never initiates an implicit
139
- # request to a third-party tile service when that property is absent.
140
106
  ```
141
107
 
142
- For example, Vite consumers using MapLibre v6 configure its self-contained worker once:
143
-
144
- ```js
145
- import { setWorkerUrl } from "maplibre-gl";
146
- import workerUrl from "maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url";
108
+ Lit and Floating UI install transitively; everything else is an optional peer, installed only for the components that need it (full map: [`llms/peers.md`](./llms/peers.md)): `@aceshooting/lyra-flags`
109
+ (`<lr-flag>`), `@aceshooting/lyra-translations` (non-English locales, `loadLyraLocale()`), `libphonenumber-js`
110
+ (`<lr-phone-input>` adapter; E.164 input works without it), `d3-force`/`d3-drag`/`d3-zoom`/`d3-selection`
111
+ (`<lr-graph>`), `chart.js` plus optional `chartjs-plugin-zoom`, `chartjs-plugin-datalabels` and
112
+ `@sgratzl/chartjs-chart-boxplot` (chart family), `mammoth` and `dompurify` (`<lr-docx-viewer>`), and
113
+ `maplibre-gl` v5 or v6 (`<lr-map>`).
147
114
 
148
- setWorkerUrl(workerUrl);
149
- ```
150
-
151
- Webpack, esbuild, Rollup, and direct-browser ESM use different worker URL forms; follow
152
- [MapLibre's ESM installation guide](https://maplibre.org/maplibre-gl-js/docs/#esm) for the matching
153
- setup.
115
+ `<lr-map>` requires an explicit `mapStyle` and never requests a third-party tile service implicitly. MapLibre v6
116
+ is ESM-only, needs WebGL2, and needs its worker URL set before the first map is built (Vite shown; other
117
+ bundlers: [MapLibre's ESM guide](https://maplibre.org/maplibre-gl-js/docs/#esm)):
118
+ `import workerUrl from "maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url"; setWorkerUrl(workerUrl);`.
154
119
 
155
120
  ## Usage
156
121
 
157
- Register components from tree-shakeable, granular per-component entry points:
122
+ Register components from granular entry points; the tag-shaped path is the canonical, stable import:
158
123
 
159
124
  ```js
160
125
  import "@aceshooting/lyra-ui/components/lr-combobox.js";
161
126
  import "@aceshooting/lyra-ui/components/lr-option.js";
162
127
  ```
163
128
 
164
- The tag-shaped path is stable even if Lyra later reorganizes its internal family folders. Family
165
- barrel paths remain supported, while tag-shaped paths are the canonical per-component registration
166
- imports. Nested per-component registration routes have been retired; use the stable tag path or the
167
- registration-free family `.class.js` route.
168
-
169
- Application-shell and media components have the same granular shape:
170
-
171
- ```js
172
- import "@aceshooting/lyra-ui/components/lr-page.js";
173
- import "@aceshooting/lyra-ui/components/lr-video.js";
174
- import "@aceshooting/lyra-ui/components/lr-video-playlist.js";
175
- ```
176
-
177
- Native time input, pan/zoom, split panels, and alerts also have granular registrations:
178
-
179
- ```js
180
- import "@aceshooting/lyra-ui/components/lr-native-time-input.js";
181
- import "@aceshooting/lyra-ui/components/lr-pan-zoom.js";
182
- import "@aceshooting/lyra-ui/components/lr-split-panel.js";
183
- import "@aceshooting/lyra-ui/components/lr-alert.js";
184
- ```
185
-
186
- These component entry points register their tags. For a class-only import (for subclassing or
187
- type-directed composition), use the matching `.class.js` entry, such as
188
- `@aceshooting/lyra-ui/components/overlays/empty/empty.class.js`; class-only entries do not touch the
189
- custom-element registry.
190
-
191
129
  ```html
192
130
  <lr-combobox label="Fruit" clearable>
193
131
  <lr-option value="a">Apple</lr-option>
@@ -195,222 +133,65 @@ custom-element registry.
195
133
  </lr-combobox>
196
134
  ```
197
135
 
198
- Each of the eleven families also has an entry point that registers every element in it —
199
- `@aceshooting/lyra-ui/components/forms`, `.../components/overlays`, and so on for `agent-tools`,
200
- `charts`, `conversation`, `data`, `layout`, `media`, `retrieval`, `utility` and `viewers`:
201
-
202
- ```js
203
- import "@aceshooting/lyra-ui/components/forms"; // every form control
204
- import "@aceshooting/lyra-ui/components/lr-input.js"; // just <lr-input>
205
- ```
206
-
207
- A family entry point is **side-effectful by design**: importing it registers every tag in that
208
- family — including the peer-gated tags `all.js` leaves out (see below), whose optional peers still
209
- load lazily, on first use. Reach for one when you genuinely use most of a family and want a single
210
- import; reach for the granular path — which is what every example in these docs uses — when you
211
- don't, because a barrel cannot be tree-shaken down to the two elements you actually render.
212
-
213
- …or pull the whole library:
214
-
215
- ```js
216
- import "@aceshooting/lyra-ui/all.js";
217
- ```
218
-
219
- > **Registration is explicit.** The package root is a side-effect-free export surface for
220
- > library helpers and types; it does not export component classes or define custom elements.
221
- > Import a registration-free class from its tag's family path when subclassing, or import a
222
- > component registration entry, family entry, or `@aceshooting/lyra-ui/all.js` to define tags.
223
- > An unregistered tag remains inert even when the import and build succeed.
224
-
225
- `all.js` registers 293 tags — every component **except** the 15 inventory-designated
226
- optional-peer-family tags: `<lr-chart>` and its 8 typed subclasses, `<lr-box-plot>`,
227
- `<lr-histogram>`, `<lr-map>`, `<lr-graph>`, `<lr-knowledge-graph-explorer>`, and
228
- `<lr-geojson-viewer>` (see Install above). Those always require their own explicit subpath import,
229
- even when pulling the rest of the library in bulk:
230
-
231
- ```js
232
- import "@aceshooting/lyra-ui/components/lr-chart.js";
233
- import "@aceshooting/lyra-ui/components/lr-map.js";
234
- import "@aceshooting/lyra-ui/components/lr-graph.js";
235
- ```
136
+ - **Class-only:** the registration-free `.class.js` entry (for example `components/overlays/empty/empty.class.js`) for subclassing.
137
+ - **Family entries** (`@aceshooting/lyra-ui/components/forms`, likewise `overlays`, `agent-tools`, `charts`,
138
+ `conversation`, `data`, `layout`, `media`, `retrieval`, `utility`, `viewers`) register every tag in the family;
139
+ they are side-effectful and cannot be tree-shaken, so prefer granular paths.
140
+ - **Everything:** `import "@aceshooting/lyra-ui/all.js"` registers 293 tags — every component **except** the 15 optional-peer
141
+ tags (`<lr-chart>` and typed subclasses, `<lr-box-plot>`, `<lr-histogram>`, `<lr-map>`, `<lr-graph>`,
142
+ `<lr-knowledge-graph-explorer>`, `<lr-geojson-viewer>`), which need their own subpath import.
143
+ `<lr-flag>` with `country`/`language` also needs `@aceshooting/lyra-ui/components/media/flag/flag-peer.js` once.
236
144
 
237
- Prefer granular per-component imports to keep the bundle proportional to the components you use.
238
- Use `all.js` when bulk registration is appropriate for the application.
145
+ > **Registration is explicit.** The package root is side-effect-free and exports helpers and types, not
146
+ > component classes; an unregistered tag stays inert even when the import and build succeed.
239
147
 
240
- `all.js` registers `<lr-flag>` without pulling in the optional flag asset graph. If a
241
- flag uses `country` or `language`, also import the peer registration entry once:
242
-
243
- ```js
244
- import "@aceshooting/lyra-ui/components/media/flag/flag-peer.js";
245
- ```
246
-
247
- Passing a pre-resolved `src` does not require that entry.
148
+ Full rules: [`llms/shared/imports-and-registration.md`](./llms/shared/imports-and-registration.md#importing-and-registering-components).
248
149
 
249
150
  ### Optional autoloader and CDN entry
250
151
 
251
- Applications that receive arbitrary Lyra markup can opt into the inventory-driven autoloader
252
- instead of registering the whole library up front. The manual entry is side-effect-free and loads
253
- only known tags already present below the supplied root:
254
-
255
- ```ts
256
- import { discover, start, stop } from "@aceshooting/lyra-ui/autoloader.js";
257
- import { allDefined } from "@aceshooting/lyra-ui/utilities/defined.js";
258
-
259
- await discover(document); // one scan
260
- await start(document); // initial scan, then watch dynamic/Turbo-style replacements
261
- await allDefined(document);
262
- stop();
263
- ```
264
-
265
- `discover()` and `start()` traverse caller-owned open shadow roots and honor scoped custom-element
266
- registries. While a discovered element is importing and completing its first update, the loader
267
- owns a `data-lr-autoload-pending` marker on it; `AUTOLOADER_PENDING_ATTRIBUTE` exports that exact
268
- name for application FOUCE rules. Set `{ events: true }` to receive bubbling/composed
269
- `lr-autoload-preload`, `lr-autoload-loaded`, `lr-autoload-error`, and
270
- `lr-autoload-traversal-error` events. A rejected import is reported, its marker is cleared, and a
271
- later discovery can retry it.
272
-
273
- Traversal is iterative and bounded per discovery operation: `maxElements` defaults to `10_000`,
274
- `maxRoots` to `2_000`, `maxDepth` to `256`, and `maxWork` to `100_000`; `maxConcurrency` defaults
275
- to `16` definition/first-update tasks. Invalid limits throw `RangeError`. `discover()` and the
276
- initial `start()` preflight the currently rendered tree and reject a traversal-limit failure before
277
- loading it. Shadow content rendered by a successfully loaded element is then bounded cumulatively; a
278
- failure there rejects after that parent definition, without starting the over-limit descendants. A
279
- watched insertion emits `lr-autoload-traversal-error` with `{ limit, maximum, error }` when events
280
- are enabled, and later bounded discovery work remains available.
281
-
282
- Optional-peer tags are skipped by default. Opt in only after installing every peer named by that
283
- tag's package metadata:
284
-
285
- ```ts
286
- await start(document, {
287
- optionalPeers: ["dompurify", "postal-mime"],
288
- events: true,
289
- });
290
- ```
291
-
292
- Use `optionalPeers: 'all'` only when the complete optional-peer set is installed. The separate
293
- side-effect entry auto-starts for direct-browser/CDN use and reads the same policy from its own
294
- script element:
152
+ For arbitrary server/CMS markup, the side-effect-free autoloader registers only known tags already present under
153
+ a root; optional-peer tags are skipped unless named in `optionalPeers`. Traversal is bounded and inert in Node.
295
154
 
296
- ```html
297
- <script
298
- type="module"
299
- src="https://esm.sh/@aceshooting/lyra-ui/autoloader-cdn.js"
300
- data-lyra-autoloader
301
- data-lyra-optional-peers="dompurify,postal-mime"
302
- data-lyra-autoload-events
303
- ></script>
304
- ```
155
+ Use `discover(document)` for one scan, or `start(document, { optionalPeers: ["dompurify"], events: true })` to scan and
156
+ then watch replacements (`stop()` ends it), from `@aceshooting/lyra-ui/autoloader.js`.
305
157
 
306
- Both autoloader entries are safe to import in Node: without a browser document they resolve inertly
307
- and create no DOM globals. `allDefined()` waits for currently rendered, inventory-known tags and
308
- their first updates, including tags produced by those updates; unknown `lr-*` names are ignored.
309
- It does not load anything itself, so call it after explicit imports, `discover()`, or `start()`.
158
+ `autoloader-cdn.js` auto-starts for direct-browser use. Limits, events, `allDefined()`:
159
+ [`imports-and-registration.md`](./llms/shared/imports-and-registration.md#optional-autoloader).
310
160
 
311
161
  ### External modal interop
312
162
 
313
- When a third-party modal opens above an active Lyra dialog or drawer, suspend Lyra's document-level
314
- modal ownership for that connected external root:
315
-
316
- ```ts
317
- import { suspendLyraModalsFor } from "@aceshooting/lyra-ui/utilities/overlay-manager.js";
318
-
319
- const externalModal = document.querySelector<HTMLElement>("#vendor-modal")!;
320
- const release = suspendLyraModalsFor(externalModal);
321
- // Call when the third-party modal closes. Calling it twice is safe.
322
- release();
323
- ```
324
-
325
- The handle is document-scoped and nestable. While at least one handle is active, Lyra yields Escape
326
- and Tab routing and leaves only the external modal paths non-inert, without discarding its own stack
327
- or focus-return targets. Disconnecting the external root or adopting it into another document
328
- releases the suspension automatically.
329
-
330
- Imperative toast (a drop-in for `react-hot-toast`):
331
-
332
- ```js
333
- import { toast } from "@aceshooting/lyra-ui/components/overlays/toast/toaster.js";
334
- toast({ message: "Saved", variant: "success" });
335
- ```
163
+ When a third-party modal opens above a Lyra dialog or drawer, suspend Lyra's modal ownership for that external
164
+ root with `suspendLyraModalsFor(root)` from `@aceshooting/lyra-ui/utilities/overlay-manager.js`. It returns a
165
+ release function (safe to call twice); the handle is document-scoped, nestable and released on disconnect.
336
166
 
337
167
  ## For AI agents / LLMs
338
168
 
339
- **Using this library from a consuming project?** The package ships a reference written for coding
340
- assistants, split by component and topic so a lookup can skip unrelated parts of the catalog:
341
-
342
- | Need | Read |
343
- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
344
- | Which component to use, and its import path | [`llms/index.md`](./llms/index.md) |
345
- | One component's full API | `llms/components/<tag>.md` — path derived from the tag, no search needed |
346
- | One shared-guide topic (imports, v23-to-v24 migration, forms, styles, localization, frameworks, AI, or testing) | `llms/shared/<topic>.md` — linked from [`llms.txt`](./llms.txt) |
347
- | Combined shared reference for tools requiring one document | [`llms/shared.md`](./llms/shared.md) |
348
- | Design tokens | [`llms/tokens.md`](./llms/tokens.md) |
349
- | Which optional peer a component needs | [`llms/peers.md`](./llms/peers.md) |
350
- | `wa-*`/`sl-*` migration classifications and safe codemod rules | [`llms/migration.md`](./llms/migration.md) |
351
- | Everything, concatenated (large; repository archive) | [repository reference archive](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms-full.txt) |
352
-
353
- [`llms.txt`](./llms.txt) is the short entry index over all of the above. Family files, the focused
354
- shared-topic files, and the introductory sources are authored; `llms/shared.md` is their generated
355
- combined compatibility route. `pnpm run llms` combines them with the generated index,
356
- per-component pages, tokens, peers, and migration reference. CI freshness-checks the derived
357
- artifacts against `custom-elements.json` and the authored sources.
358
-
359
- **Claude Code users:** this repo is also a plugin marketplace — installing the `lyra-ui` plugin gives
360
- Claude the same reference as a skill, plus the `/lyra-ui:review`, `/lyra-ui:migrate` and
361
- `/lyra-ui:update` commands.
362
-
363
- **Contributing to this repo itself?** See [`AGENTS.md`](https://github.com/aceshooting/lyra-ui/blob/main/AGENTS.md) instead — that's a
364
- contributor guide for agents working _on_ lyra-ui, not the same document as the above.
169
+ [`llms.txt`](./llms.txt) is the entry index: [`llms/index.md`](./llms/index.md) routes a tag to its import path,
170
+ `llms/components/<tag>.md` is one component's API, `llms/shared/<topic>.md` (combined as
171
+ [`llms/shared.md`](./llms/shared.md)) covers cross-cutting topics, and [`llms/tokens.md`](./llms/tokens.md),
172
+ [`llms/peers.md`](./llms/peers.md) and [`llms/migration.md`](./llms/migration.md) cover tokens, optional peers and
173
+ `wa-*`/`sl-*` rules; `llms-full.txt` concatenates everything. Family files and `llms/shared/*.md` are authored, the rest
174
+ is generated by `pnpm run llms`. `npx lyra-ui init-agents` installs the bundled skills; the `lyra-ui@aceshooting`
175
+ marketplace plugin ships the same content. Contributing to this repo? See
176
+ [`AGENTS.md`](https://github.com/aceshooting/lyra-ui/blob/main/AGENTS.md).
365
177
 
366
178
  ## Migrating from Web Awesome or Shoelace
367
179
 
368
- The "Mirrors" column records a design/API relationship, not blanket permission to rename a tag.
369
- Every pinned Web Awesome and Shoelace component has a machine-readable migration classification:
370
- `exact`, `rewritten`, `warning-required`, `conceptual-only`, or `unsupported`. Only `exact` and fully
371
- specified `rewritten` mappings are changed automatically. The other three remain untouched and are
372
- reported with their source location, so an incomplete migration cannot leave inert public members
373
- behind while appearing to have succeeded.
374
-
375
- Where the two upstreams disagree on a name for the same thing, Lyra accepts both spellings rather
376
- than forcing a rewrite. The clear button is the clearest case: Web Awesome spells it `with-clear`,
377
- Shoelace spells it `clearable`, and `<lr-input>`, `<lr-select>` and `<lr-combobox>` each honour both.
378
- Neither spelling is deprecated, and neither needs rewriting in either direction — whichever one your
379
- markup already carries keeps working.
380
-
381
- The same compatibility rule applies when the upstreams disagree on a property's write type.
382
- `lr-input.autocorrect` and `lr-textarea.autocorrect` always read as booleans, matching Web Awesome.
383
- Input also accepts Shoelace's `'off'`/`'on'` property writes; Textarea accepts its wider string
384
- surface, normalizing `'off'`/`'false'` to `false` and other strings to `true`. Both render the native
385
- attribute canonically as `autocorrect="off"` or `autocorrect="on"`.
386
-
387
- Icon tags and attributes can be renamed mechanically, but icon names are a separate vocabulary.
388
- Lyra's dependency-free default library contains only `add`, `check`, `close`, `search`, `menu`,
389
- `chevron-left`, `chevron-right`, `chevron-down`, `calendar`, `command`, and `trash`; any other
390
- migrated `<wa-icon>`, `<sl-icon>`, or `<sl-icon-button>` name renders no glyph. The migration CLI
391
- reports `BEHAVIOR_REVIEW_REQUIRED` for those tags. Replace each name explicitly or register the
392
- required vocabulary with `registerIconLibrary('default', { resolver })`.
393
-
394
- `lr-option` likewise keeps live/default selection separate: the `selected` attribute initializes
395
- `defaultSelected` and the parent control's reset default (property writes intentionally do not
396
- reflect), while `selected` is property-only live state. Selecting an option at runtime never
397
- rewrites the declarative default.
180
+ The "Mirrors" column in [Components](#components) records a design/API relationship, not permission to rename a
181
+ tag blindly. Every pinned Web Awesome and Shoelace component has a machine-readable classification (`exact`,
182
+ `rewritten`, `warning-required`, `conceptual-only`, `unsupported`); only `exact` and fully specified `rewritten`
183
+ mappings change automatically, the rest are reported with their source location ([`llms/migration.md`](./llms/migration.md)).
398
184
 
399
- ```html
400
- <sl-button-group label="Actions">
401
- <sl-resize-observer @sl-resize="sync"></sl-resize-observer>
402
- </sl-button-group>
403
-
404
- <!-- becomes -->
405
- <lr-button-group label="Actions">
406
- <lr-resize-observer @lr-resize="sync"></lr-resize-observer>
407
- </lr-button-group>
408
- ```
185
+ - Where upstreams disagree on a name, Lyra accepts both and deprecates neither (`with-clear` and `clearable` both
186
+ work on `<lr-input>`, `<lr-select>`, `<lr-combobox>`); `autocorrect` always reads as a boolean.
187
+ - Icon tags rename mechanically, icon names do not: the default library has only `add`, `check`, `close`,
188
+ `search`, `menu`, `chevron-left`, `chevron-right`, `chevron-down`, `calendar`, `command` and `trash`; other
189
+ names render nothing (`BEHAVIOR_REVIEW_REQUIRED`). Use `registerIconLibrary('default', { resolver })`.
190
+ - `lr-option`: the `selected` attribute initializes `defaultSelected` (the reset default); `selected` is
191
+ property-only live state.
409
192
 
410
- **Automating the safe subset.** The package ships the version-matched `lyra-ui-migrate` CLI. It
411
- reads a compact packaged projection of the validated component inventory, applies only
412
- contract-recorded tag/member/default/registration-import rewrites, and can write a stable JSON
413
- report for CI or human review. Replace `<version>` with the exact Lyra version you are migrating to:
193
+ The version-matched `lyra-ui-migrate` CLI applies only contract-recorded rewrites and writes a JSON report;
194
+ replace `<version>` with the Lyra version you are migrating to:
414
195
 
415
196
  ```bash
416
197
  npx --package @aceshooting/lyra-ui@<version> lyra-ui-migrate --check \
@@ -418,876 +199,246 @@ npx --package @aceshooting/lyra-ui@<version> lyra-ui-migrate --check \
418
199
  npx --package @aceshooting/lyra-ui@<version> lyra-ui-migrate path/to/your/src
419
200
  ```
420
201
 
421
- The supported package identities are `@awesome.me/webawesome` and `@awesome.me/webawesome-pro`
422
- for Web Awesome, plus `@shoelace-style/shoelace`. Directory targets include HTML, standalone CSS,
423
- JavaScript, TypeScript, JSX, Vue, Svelte, MDX, and Markdown files.
424
-
425
- The report records file, line, column, migration origin, tag/member, action, target, and warning code.
426
- Supported side-effect component deep imports are routed through the target's inventory registration
427
- module. Proven, tier-compatible root registration closures use `@aceshooting/lyra-ui/all.js`;
428
- root-excluded targets receive granular registration imports instead. An automatic-looking tag with
429
- no matching side-effect registration in the scanned target set stays unchanged with
430
- `REGISTRATION_CLOSURE_REQUIRED`; include the registration-owning entry file in the scan rather than
431
- accepting an inert `lr-*` result. A mapped target with optional runtime dependencies adds an
432
- `OPTIONAL_PEER_REQUIRED` entry naming every package the consumer must install. Imports with
433
- bindings, unknown subpaths, dynamic values, aliased component values that use a rewritten member,
434
- unsafe security/default changes, conceptual mappings, and unsupported components remain unchanged
435
- with an actionable warning. An aliased member blocks that mapping across the whole scanned target set
436
- so the codemod never rewrites its registration import while leaving an old member behind. A second
437
- run is byte-idempotent. Comments, prose, unrelated identifiers/packages, and partial strings are not
438
- treated as component uses. `--check` never writes files and exits nonzero while a rewrite or warning
439
- remains.
440
-
441
- The inventory does not treat `dir` or `lang` as component-member drift: both are platform-global
442
- HTML passthrough attributes. It likewise excludes Web Awesome's `did-ssr` hydration marker, which is
443
- upstream runtime bookkeeping rather than an authored member to copy onto a Lyra component.
444
-
445
- The same inventory reviews accessibility behavior separately from static API shape. Every one of
446
- the 145 pinned upstream mappings names an upstream and Lyra behavior profile covering semantics,
447
- naming, keyboard, focus, state, announcements, and motion. It stores the exact missing/additive
448
- comparison and a rationale; an automatic mapping is rejected if its target profile drops a reviewed
449
- behavior. These profiles summarize published public contracts and Lyra's authored contract plus
450
- automated tests. They are not evidence of manual screen-reader, assistive-technology, or human
451
- accessibility review; see [the accessibility evidence statement](https://github.com/aceshooting/lyra-ui/blob/main/docs/accessibility.md).
452
-
453
- Shoelace is now a historical predecessor to Web Awesome, but its component vocabulary remains
454
- familiar to many teams. The table below is a porting guide, not an automatic-rename allowlist; the
455
- inventory classification and codemod report decide which individual uses are mechanically safe:
456
-
457
- | Shoelace | Lyra | Migration note |
458
- | ------------------------------------ | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
459
- | `<sl-button>` | `<lr-button>` | Check `variant`, `appearance`, and loading behavior. |
460
- | `<sl-input>` / `<sl-textarea>` | `<lr-input>` / `<lr-textarea>` | String `autocorrect` property writes remain accepted but read back as booleans; preserve the native editing/form contract and review label/error markup. |
461
- | `<sl-select>` / `<sl-option>` | `<lr-select>` / `<lr-option>` | `defaultSelected`/the `selected` attribute is the reset default; live `selected` is property-only. Review option and value events. |
462
- | `<sl-dialog>` / `<sl-drawer>` | `<lr-dialog>` / `<lr-drawer>` | Review close reasons, focus behavior, and slots. |
463
- | `<sl-card>` / `<sl-badge>` | `<lr-card>` / `<lr-badge>` | Review appearance tokens and dismiss events. |
464
- | `<sl-alert>` | `<lr-alert>` | Closed by default, with the same properties, slots, lifecycle, parts, and identity-preserving `toast()` contract under the `lr-` prefix. |
465
- | `<sl-spinner>` / `<sl-progress-bar>` | `<lr-spinner>` / `<lr-progress-bar>` | Built-in status copy is localized through Lyra's runtime. |
466
-
467
- For either migration, start with the codemod report. Update a package import or custom-element prefix
468
- only for an automatic row, or after completing the manual port named by a warning; then run the
469
- component's accessibility story and check its API notes for behavior that cannot be inferred from
470
- the tag name alone. Lyra's own `--lr-theme-*` variables are the only theme inputs it reads. For a
471
- staged Web Awesome migration, map existing values explicitly in application CSS; Lyra does not read
472
- competitor token variables itself.
473
-
474
- Everything else in the tables below — marked `— (extra)` — has no Web Awesome equivalent to
475
- migrate _from_ in the first place, so there's nothing to rename: install the package and import
476
- what you need (see Usage above). That's most of this library, including every dashboard atom
477
- (stat cards, gauges, empty/skeleton states), the whole chart family, the temporal/graph/tree
478
- components, `<lr-map>`, and the entire **Conversation & Agent UI** family (chat messages,
479
- streaming text, tool-call chips/dialogs, citations, model/settings pickers, and more) — Web
480
- Awesome has no chat/agent UI component family at all.
481
-
482
- ### Security boundaries
483
-
484
- Some upstream behavior is intentionally not made automatic:
485
-
486
- - `<lr-include>` sanitizes every fetched or same-page fragment, has no script-executing mode, and
487
- defaults `mode` to `same-origin` instead of `cors`. A migration that depends on cross-origin or
488
- script execution remains unchanged with a location-aware warning. Its post-sanitization
489
- transclusion is network-silent and non-interactive: anchors remain only for resolvable
490
- same-document `#fragment` links (rebased per include instance); every other navigation or
491
- resource attribute, including `href`, `src`, `srcset`, `action`, `ping`, and `poster`, is stripped,
492
- so images do not load. Form-control and custom-element wrappers are unwrapped to safe ordinary
493
- text or children, while controls with no passive content are removed.
494
- - Link-like Lyra controls always contribute `noopener noreferrer` to `rel` whenever `target` is set,
495
- and always strip `opener`. Author `rel` tokens are merged rather than ignored, so `nofollow`, `me`
496
- and `license` survive the rename — `<lr-button>` and `<lr-breadcrumb-item>` therefore support
497
- automatic migration. `<lr-app-rail-item>` still derives `rel` from `target` alone.
498
- - `<lr-zoomable-frame>` rejects active/non-embeddable URL schemes, always renders a sandbox, and
499
- will not combine `allow-scripts` with `allow-same-origin`. `<lr-video>` validates media and
500
- thumbnail URLs and byte-caps remote thumbnail VTT input.
501
-
502
- These are deliberate fail-closed contracts. The migration report records them instead of emitting
503
- markup that appears converted while weakening the application's security boundary.
202
+ It understands `@awesome.me/webawesome`, `@awesome.me/webawesome-pro` and `@shoelace-style/shoelace`, scans HTML, CSS,
203
+ JS/TS, JSX, Vue, Svelte, MDX and Markdown, and is byte-idempotent; `--check` never writes and exits nonzero while a
204
+ rewrite or warning remains. Ambiguous cases stay unchanged with an actionable warning (for example
205
+ `REGISTRATION_CLOSURE_REQUIRED`, `OPTIONAL_PEER_REQUIRED`). Behavior profiles are not manual assistive-technology
206
+ review ([accessibility evidence](https://github.com/aceshooting/lyra-ui/blob/main/docs/accessibility.md)).
504
207
 
505
- ## Theming, internationalization & RTL
208
+ The Shoelace table is a porting guide, not an automatic-rename allowlist:
506
209
 
507
- Every component is built on the same three guarantees, verified across the whole library rather
508
- than opt-in per component:
210
+ | Shoelace | Lyra | Migration note |
211
+ | --- | --- | --- |
212
+ | `<sl-button>` | `<lr-button>` | Check `variant`, `appearance`, and loading behavior. |
213
+ | `<sl-input>` / `<sl-textarea>` | `<lr-input>` / `<lr-textarea>` | String `autocorrect` property writes remain accepted but read back as booleans; preserve the native editing/form contract and review label/error markup. |
214
+ | `<sl-select>` / `<sl-option>` | `<lr-select>` / `<lr-option>` | `defaultSelected`/the `selected` attribute is the reset default; live `selected` is property-only. Review option and value events. |
215
+ | `<sl-dialog>` / `<sl-drawer>` | `<lr-dialog>` / `<lr-drawer>` | Review close reasons, focus behavior, and slots. |
216
+ | `<sl-card>` / `<sl-badge>` | `<lr-card>` / `<lr-badge>` | Review appearance tokens and dismiss events. |
217
+ | `<sl-alert>` | `<lr-alert>` | Closed by default, with the same properties, slots, lifecycle, parts, and identity-preserving `toast()` contract under the `lr-` prefix. |
218
+ | `<sl-spinner>` / `<sl-progress-bar>` | `<lr-spinner>` / `<lr-progress-bar>` | Built-in status copy is localized through Lyra's runtime. |
509
219
 
510
- **Theming.** Components read independent `--lr-theme-*` variables and standalone defaults. Lyra
511
- does not depend on another library's theme or token namespace. For a ready-made light/dark base
512
- theme, import `@aceshooting/lyra-ui/theme.css` once and toggle `.lr-light`/`.lr-dark` (or the
513
- matching `data-lr-theme` attribute) on an ancestor:
220
+ Lyra reads only its own `--lr-theme-*` variables; map existing values in application CSS for a staged migration.
514
221
 
515
- ```css
516
- @import "@aceshooting/lyra-ui/theme.css";
517
- ```
518
-
519
- **Appearance defaults.** Shadcn, Glass, Emerald, System mode and comfortable density are built in.
520
- `theme.css` supplies the document-level profile, including the default look, accent and material;
521
- granular components also carry these visual defaults. Select a different look or accent through
522
- the canonical style API, preserving each valid saved choice at startup:
523
-
524
- ```js
525
- import { setLyraStyle } from '@aceshooting/lyra-ui/theme.js';
526
-
527
- setLyraStyle({}); // Restore saved choices; missing or invalid fields use the built-in profile.
528
- ```
529
-
530
- To retain the earlier Lyra/Solid appearance without an accent:
531
-
532
- ```js
533
- setLyraStyle({ look: 'lyra', surface: 'solid', accent: null });
534
- ```
535
-
536
- `accent: null` clears the accent. `resetLyraStyle()` restores the built-in profile, including
537
- Emerald; pass a field list to reset only those axes. See [The shadcn look](./llms/shared.md#the-shadcn-look--looksshadcncss)
538
- for the look's typography, geometry and contrast adjustments.
539
-
540
- The style API persists the independent look, surface, density, mode and accent choices. See the
541
- [style API guide](./llms/shared/styles-and-tokens.md#composing-looks-surfaces-and-density) for
542
- scoped styling, reset and saved-preference behavior.
543
-
544
- Tooling can consume the DTCG interchange document from `@aceshooting/lyra-ui/design-tokens.json`:
545
- the authored Lyra token tree (not the shadcn default), the look definitions and `defaultStyle`, which
546
- names the look and accent applied by default. The generated `@aceshooting/lyra-ui/design-tokens.css`
547
- entry supplies the resolved default values as explicit light/dark fixture selectors for previews and
548
- design-tool validation; it is not a replacement for the production `theme.css`.
549
-
550
- ```html
551
- <body class="lr-dark">
552
- <lr-button variant="brand">Save</lr-button>
553
- </body>
554
- ```
555
-
556
- **The resolved `--lr-color-*`/`--lr-space-*`/`--lr-radius`/`--lr-shadow-*`/`--lr-font-*` output
557
- layer is declared only on each `lr-*` element's own shadow `:host`** — it is not readable from
558
- plain application CSS or your own custom elements outside any `lr-*` shadow root (a rule like
559
- `body { color: var(--lr-color-text) }` silently resolves to nothing, not an error). Set the
560
- `--lr-theme-*` **input** layer shown below to retheme; see
561
- [Where an override actually reaches](./llms/shared.md#where-an-override-actually-reaches) for
562
- exactly how far each layer inherits.
563
-
564
- Applications can override any `--lr-theme-*` input directly:
565
-
566
- ```css
567
- :root {
568
- --lr-theme-color-surface-default: #101827;
569
- --lr-theme-color-text-normal: #f8fafc;
570
- --lr-theme-color-brand-fill-loud: #60a5fa;
571
- --lr-theme-font-size-m: 1rem;
572
- --lr-theme-border-radius-m: 0.5rem;
573
- }
574
- ```
575
-
576
- `theme.css` declares `@layer lr-base, lr-theme, lr-theme-preset, lr-utilities, lr-overrides` and
577
- puts its own tokens in `lr-theme`, so an _unlayered_ rule of yours — like the `:root` block above —
578
- wins over every Lyra declaration regardless of specificity or which stylesheet the bundler emitted
579
- first. The optional `looks/shadcn.css` stylesheet uses `lr-theme-preset`, and the optional `native.css`
580
- and `utilities.css` assets use `lr-base` and `lr-utilities`; `lr-overrides` remains available for
581
- application rules. If you declare Lyra's layer order yourself, name all five. See [`llms/tokens.md`](./llms/tokens.md) for the complete shared token list.
582
- Component-specific `--lr-*` custom properties remain available for local overrides.
583
-
584
- Canvas components automatically repaint after observable theme attributes, stylesheet/link nodes,
585
- CSSOM changes, adopted stylesheets, and relevant media-query changes. If an application theme engine
586
- changes computed tokens through another mechanism, invalidate the owning browser realm explicitly:
587
-
588
- ```ts
589
- import { invalidateLyraTheme } from "@aceshooting/lyra-ui/utilities/theme.js";
590
-
591
- invalidateLyraTheme(); // global document realm
592
- invalidateLyraTheme(shadowRoot); // realm owning this root, element, or document
593
- ```
222
+ ### Security boundaries
594
223
 
595
- The optional argument selects a realm, not a subtree. Calls are safe during SSR and coalesce into
596
- each connected canvas consumer's normal redraw schedule.
224
+ Some upstream behavior is deliberately not automatic; the report records it instead of emitting markup that weakens a boundary:
597
225
 
598
- **Optional light-DOM styles.** Import either bundle independently when an application wants Lyra's
599
- token vocabulary outside component shadow roots:
226
+ - `<lr-include>` sanitizes every fragment, has no script mode, defaults `mode` to `same-origin`, and strips every
227
+ navigation or resource attribute except same-document `#fragment` anchors. Its post-sanitization transclusion is network-silent and non-interactive: anchors remain only for resolvable same-document `#fragment` links (rebased per include instance); every other navigation or resource attribute, including `href`, `src`, `srcset`, `action`, `ping`, and `poster`, is stripped, so images do not load. Form-control and custom-element wrappers are unwrapped to safe ordinary text or children, while controls with no passive content are removed.
228
+ - Link-like controls always add `noopener noreferrer` to `rel` when `target` is set and strip `opener`; author
229
+ `rel` tokens are merged. `<lr-app-rail-item>` still derives `rel` from `target` alone.
230
+ - `<lr-zoomable-frame>` rejects active/non-embeddable schemes, always sandboxes, and never combines
231
+ `allow-scripts` with `allow-same-origin`; `<lr-video>` validates media and thumbnail URLs and byte-caps VTT input.
600
232
 
601
- ```css
602
- @import "@aceshooting/lyra-ui/native.css";
603
- @import "@aceshooting/lyra-ui/utilities.css";
604
- ```
233
+ ## Theming, internationalization & RTL
605
234
 
606
- `native.css` styles only native descendants of an explicit `.lr-native` scope; it has no root reset
607
- and does not style the scope marker itself. `utilities.css` provides exact, low-specificity `lr-*`
608
- classes for layout, logical sizing, gap/alignment/wrap, prose/text, typography roles and scope
609
- (`lr-typography`, `lr-heading-1`–`4`, `lr-inline-code`), accessible hiding, FOUCE, and `<lr-page>`
610
- mobile/desktop allocation helpers. Both are layered, tokenized, RTL-safe, and optional.
611
- See [`llms/shared.md`](./llms/shared.md#optional-native-styles-and-css-utilities) for the complete
612
- class inventory and override hooks.
613
-
614
- **Frontend quality guarantees.** Every component is designed as a native custom element and tested
615
- for the contract that applies to its shape: semantic roles and accessible names inside shadow DOM,
616
- keyboard navigation, bubbling/composed public events, native form association and validity, logical
617
- CSS for RTL, narrow-container layouts, reduced motion, and forced-colors behavior. Form controls
618
- expose label, hint, error, focus, editing, reset, and validity behavior instead of hiding the useful
619
- native contract behind a private input. Heavy integrations such as Chart.js, MapLibre, D3, Shiki,
620
- Markdown, phone-number metadata, and flag artwork remain optional peer dependencies.
621
-
622
- **Internationalization.** Every built-in string (button labels, status announcements,
623
- `aria-label`s) resolves through a small runtime, in two ways you can combine:
235
+ **Theming.** Components read independent `--lr-theme-*` inputs with standalone defaults. Import
236
+ `@aceshooting/lyra-ui/theme.css` once and toggle `.lr-light`/`.lr-dark` (or `data-lr-theme`) on an ancestor.
237
+ Shadcn, Glass, Emerald, System mode and comfortable density are built in; the style API persists look, surface,
238
+ density, mode and accent independently ([guide](./llms/shared/styles-and-tokens.md#composing-looks-surfaces-and-density)):
239
+
240
+ `setLyraStyle({})` from `@aceshooting/lyra-ui/theme.js` restores saved choices (missing fields use the built-in
241
+ profile); `setLyraStyle({ look: "lyra", surface: "solid", accent: null })` selects the earlier appearance and
242
+ `resetLyraStyle()` restores the built-in profile. The resolved `--lr-color-*`/`--lr-space-*`/... layer exists only
243
+ on each `lr-*` shadow `:host`, so retheme through the `--lr-theme-*` inputs, for example
244
+ `:root { --lr-theme-color-brand-fill-loud: #60a5fa; }` ([where an override reaches](./llms/shared.md#where-an-override-actually-reaches),
245
+ [tokens](./llms/tokens.md)). `theme.css` declares `@layer lr-base, lr-theme, lr-theme-preset, lr-utilities, lr-overrides`,
246
+ so an unlayered rule wins (name all five if you declare the order). Canvas components repaint on observable theme
247
+ changes; otherwise call `invalidateLyraTheme(root?)` from `@aceshooting/lyra-ui/utilities/theme.js`. Optional
248
+ `native.css` and `utilities.css` bring the tokens to light DOM ([details](./llms/shared.md#optional-native-styles-and-css-utilities));
249
+ `design-tokens.json` is the DTCG export for tooling.
250
+
251
+ **Internationalization.** Every built-in string, including `aria-label`s, resolves through one runtime, app-wide or
252
+ per instance; `Intl` formatting uses the resolved locale and consumer data is never altered:
624
253
 
625
254
  ```ts
626
- import {
627
- registerLyraLocale,
628
- setLyraLocale,
629
- } from "@aceshooting/lyra-ui/localization.js";
255
+ import { registerLyraLocale, setLyraLocale } from "@aceshooting/lyra-ui/localization.js";
630
256
 
631
- // App-wide: register translations once, anywhere in the app.
632
257
  registerLyraLocale("fr", { close: "Fermer", retry: "Réessayer" /* ... */ });
633
- setLyraLocale("fr"); // or just set <html lang="fr">/an ancestor `lang` — components pick it up
634
- ```
635
-
636
- The dedicated `localization.js` entry is side-effect-free: it does not register the component
637
- graph. The package root continues to re-export the same runtime for compatibility, but importing
638
- the root remains registration-free. The same entry also carries `bridgeLyraLocale()`,
639
- `subscribeLyraLocale()` and `resolveLyraScopedString()`. Their former utility-scoped entry point was
640
- removed in 23.0.0; use the canonical `localization.js` route.
641
-
642
- ```html
643
- <!-- Per-instance: override specific keys on one element without a global registry. -->
644
- <lr-toast .strings=${{ close: 'Fermer' }}></lr-toast>
258
+ setLyraLocale("fr"); // or set <html lang="fr">; per instance: .strings=${{ close: 'Fermer' }}
645
259
  ```
646
260
 
647
- No rebuild, no per-locale bundle, no per-component API to learn — register the strings once and
648
- every component that uses that key picks it up reactively, including ones added after your app's
649
- first render.
261
+ `localization.js` is side-effect-free; English is the built-in fallback and `@aceshooting/lyra-translations` has
262
+ ready-made catalogs ([guide](./llms/shared/localization-and-rtl.md)).
650
263
 
651
- Lyra's default messages are English fallbacks, while applications own the translated catalog. Date,
652
- number, byte, relative-time, and calendar formatting use the browser's `Intl` APIs and the resolved
653
- locale. Consumer-provided labels, values, file names, and message content are never altered by the
654
- localization layer. The same runtime also covers accessible names, descriptions, validation messages,
655
- live-region announcements, empty states, status labels, and action buttons; use `.strings` for a
656
- component-specific override when needed.
657
-
658
- **RTL.** Set `dir="rtl"` on `<html>` or any ancestor — every component mirrors its layout
659
- automatically via CSS logical properties and swaps directional keyboard navigation (e.g. the arrow
660
- keys in a date grid or a roving-tabindex list) to match. `lang`/`locale` select translations and
661
- `Intl` data but do not silently change writing direction; pair `lang="ar"`, `lang="he"`, or
662
- `lang="fa"` with `dir="rtl"`. Components do not force their own `dir`, so they remain composable
663
- inside mixed-direction layouts.
264
+ **RTL.** `dir="rtl"` on `<html>` or an ancestor mirrors layout (logical CSS) and swaps directional keyboard
265
+ navigation. `lang`/`locale` never change direction: pair `lang="ar"`, `"he"` or `"fa"` with `dir="rtl"`.
664
266
 
665
267
  ## Component status, versioning, and deprecation
666
268
 
667
- Every component carries an explicit `stable` or `experimental` status plus the earliest published
668
- `since` version in the manifest and generated reference. Stable components are production-ready.
669
- Experimental components remain open to design review, but once published their public APIs receive
670
- the same semver protection as stable components; experimental is not permission for a silent minor
671
- release break.
672
-
673
- Deprecation is separate metadata. A deprecated component or member names its replacement,
674
- deprecation version, rationale, and earliest removal version. If deprecated in major version M, it
675
- remains available for the complete M+1 line and cannot be removed before M+2. See
676
- [`llms/shared.md`](./llms/shared.md#component-status-versioning-and-deprecation) for the full policy.
269
+ Every component carries `stable` or `experimental` status and its first published `since` version; both get
270
+ normal semver protection once published. A deprecation names its replacement, version, rationale and earliest
271
+ removal: deprecated in major M, available through the whole M+1 line, removable no earlier than M+2
272
+ ([policy](./llms/shared.md#component-status-versioning-and-deprecation)).
677
273
 
678
274
  ## SSR & Declarative Shadow DOM
679
275
 
680
- Lyra's package root, `all.js`, family entries and granular registration modules are server-safe
681
- under Node 22+. On the server, register the tags your page renders and use the SSR helpers from
682
- `@aceshooting/lyra-ui/ssr.js`. The matrix has two explicit tiers:
276
+ The root, `all.js`, family entries and granular registrations are server-safe on Node 22+. Register the tags a
277
+ page renders and use `@aceshooting/lyra-ui/ssr.js` (`ssr/all.js` registers everything). `render-and-hydrate`
278
+ components emit Declarative Shadow DOM and reuse it on hydration; `client-render` components keep the host,
279
+ attributes and light DOM and create their shadow DOM on upgrade (`LYRA_SSR_SUPPORT_MATRIX` is the per-tag list). Pass
280
+ `elementRenderers: lyraSsrElementRenderers(LitElementRenderer)` to `@lit-labs/ssr`'s `render()`.
683
281
 
684
- - `render-and-hydrate` components emit Declarative Shadow DOM (DSD) and reuse that shadow root and
685
- its nodes during browser hydration.
686
- - `client-render` components preserve the host, serializable attributes, and light DOM in the
687
- server response, then create their shadow DOM when the browser upgrades them. This tier covers
688
- components whose initial render needs light-DOM traversal, layout, canvas, observers, or media
689
- APIs that Lit's intentionally small server DOM does not emulate.
690
-
691
- For an application that intentionally registers the full inventory on the server,
692
- `@aceshooting/lyra-ui/ssr/all.js` provides that side effect plus the SSR helpers. Granular imports
693
- avoid loading unused optional-peer families.
694
-
695
- Configure Lit's server renderer with Lyra's fallback before `LitElementRenderer`:
696
-
697
- ```ts
698
- import '@aceshooting/lyra-ui/components/lr-page.js';
699
- import {
700
- lyraSsrElementRenderers,
701
- LYRA_SSR_SUPPORT_MATRIX,
702
- } from '@aceshooting/lyra-ui/ssr.js';
703
- import { render, LitElementRenderer } from "@lit-labs/ssr";
704
- import { collectResult } from "@lit-labs/ssr/lib/render-result.js";
705
- import { html } from "lit";
706
-
707
- const result = render(html`<lr-page><main>Dashboard</main></lr-page>`, {
708
- elementRenderers: lyraSsrElementRenderers(LitElementRenderer),
709
- });
710
- const markup = await collectResult(result);
711
- ```
712
-
713
- In a browser bundle that hydrates server-rendered markup, make `hydration.js` the first import that
714
- can reach Lit. It installs `@lit-labs/ssr-client/lit-element-hydrate-support.js`; then register the
715
- tags the page uses:
716
-
717
- ```ts
718
- import '@aceshooting/lyra-ui/hydration.js';
719
- import '@aceshooting/lyra-ui/components/lr-page.js';
720
- import {
721
- diagnoseLyraHydration,
722
- getLyraSsrMode,
723
- } from '@aceshooting/lyra-ui/ssr.js';
724
-
725
- const diagnostics = await diagnoseLyraHydration(document);
726
- ```
727
-
728
- Optional-peer families use their granular registration imports as needed. Property bindings cannot
729
- be serialized by a fallback renderer, so express initial fallback state as attributes/light DOM or
730
- assign properties on the client. A `render-and-hydrate` component whose rendering depends on something only a browser can
731
- answer — its own light-DOM children, or a browser global such as `EyeDropper` — reproduces the
732
- server's answer on the hydrating render and corrects itself on the very next update rather than
733
- contradicting the markup it is hydrating, so a slotted override or an eyedropper button appears one
734
- frame after hydration. A browser-only mount (no server markup) is unaffected and still renders the
735
- final result the first time. Layout measurement, observers, canvas, and media playback start after hydration; remote
736
- content remains client-only. CI renders every inventory tag, verifies both tiers, and crawls a real
737
- Chromium DSD response (including `lr-page`) with strict hydration warnings/errors and DOM-identity
738
- checks. The exported matrix is the authoritative per-tag list as components evolve.
282
+ In the browser, make `@aceshooting/lyra-ui/hydration.js` the first import that can reach Lit, then register tags;
283
+ `diagnoseLyraHydration(document)` checks the result. A fallback renderer cannot serialize property bindings, so
284
+ pass initial state as attributes or light DOM. Measurement, observers, canvas and media start after hydration; remote
285
+ content stays client-only ([details](./llms/shared/frameworks-and-ssr.md#ssr-and-declarative-shadow-dom)).
739
286
 
740
287
  ## Framework integration (React, Vue, Angular, Svelte)
741
288
 
742
- Lyra ships plain custom elements with no framework-specific wrapper package, so the friction is the
743
- same friction any custom-element library has with a non-Lit framework, not anything Lyra-specific:
744
-
745
- For tag, property, event, element-ref, and CSS-custom-property types in framework templates, import
746
- the matching opt-in declaration entry once in your application's type graph:
289
+ Lyra ships plain custom elements with no wrapper package. Import the opt-in, types-only declaration entry once for
290
+ template types (it registers nothing): `import type {} from "@aceshooting/lyra-ui/custom-elements-jsx"` (React 19),
291
+ `.../vue` or `.../svelte`.
747
292
 
748
- ```ts
749
- import type {} from "@aceshooting/lyra-ui/custom-elements-jsx"; // React 19 / JSX
750
- import type {} from "@aceshooting/lyra-ui/vue";
751
- import type {} from "@aceshooting/lyra-ui/svelte";
752
- ```
293
+ - Bind object, array and function values as JS properties (Vue `:prop`, Angular `[prop]`); a bare `attr="value"`
294
+ sets only a string attribute. Angular needs `schemas: [CUSTOM_ELEMENTS_SCHEMA]` on any module using `<lr-*>`.
295
+ - Events are native kebab-case `CustomEvent`s: `onlr-change={fn}` (React 19, Svelte 5), `@lr-change="fn"` (Vue),
296
+ `(lr-change)="fn()"` (Angular), or `addEventListener('lr-change', fn)`.
753
297
 
754
- These entry points are generated from the same Custom Elements Manifest as the editor metadata.
755
- They contain types only: they add no runtime wrapper or framework dependency, and they do not
756
- register elements. Keep importing the granular registration modules your application uses, for
757
- example `import '@aceshooting/lyra-ui/components/lr-input.js'`.
758
-
759
- - **Property vs. attribute binding.** A complex-typed property (an object, array, or function — e.g.
760
- `.strings`, `.selectedRows`, `.markers`) must be bound as a JS _property_, not a stringified
761
- attribute. Use Vue's `:prop` binding (or the `.prop` modifier), Angular's `[prop]="value"` template
762
- binding, or a plain property assignment; Svelte's compiler binds to a matching element property
763
- automatically when one exists, so `prop={value}` mostly just works. A bare `attr="value"` or string
764
- interpolation only ever sets a string attribute — fine for `variant="brand"`, wrong for anything
765
- non-string.
766
- - **Angular needs `CUSTOM_ELEMENTS_SCHEMA`.** Angular's template compiler rejects unknown elements
767
- and properties by default. Add `schemas: [CUSTOM_ELEMENTS_SCHEMA]` to the module (or standalone
768
- component) that uses any `<lr-*>` tag so Angular stops trying to resolve it as an Angular
769
- component.
770
- - **Custom events need the framework's DOM event-binding syntax, not its component-event
771
- shorthand.** A framework's usual event shorthand (Vue's `@event` on a _Vue component_, Angular's
772
- `(event)` output binding) is wired for that framework's own event system; a plain custom element's
773
- events are native `CustomEvent`s and need the same binding path used for native DOM events —
774
- `onlr-change={handler}` in React 19, `@lr-change="handler"` in Vue,
775
- `(lr-change)="handler()"` in Angular, or `onlr-change={handler}` in Svelte 5
776
- (`on:lr-change={handler}` remains accepted by Svelte's legacy event-directive syntax). Use
777
- `element.addEventListener('lr-change', handler)` directly when a template binding isn't
778
- available. Lyra's own event names are consistently kebab-case (`lr-change`, `lr-cell-click`,
779
- `lr-selection-change`, …) rather than camelCase, specifically to stay friendly to this binding
780
- path — some other custom-element libraries use camelCase event names, which can silently fail to
781
- bind in an in-DOM (non-compiled) Vue template because HTML attribute/directive names are
782
- case-insensitive there; `addEventListener` works regardless of case either way.
298
+ More: [`llms/shared/frameworks-and-ssr.md`](./llms/shared/frameworks-and-ssr.md#framework-integration).
783
299
 
784
300
  ## Editor autocomplete (VS Code, JetBrains)
785
301
 
786
- TypeScript consumers already get tag/attribute completion for free from the generated
787
- `HTMLElementTagNameMap`. Plain HTML, and in-DOM Vue or Angular templates, don't go through that type
788
- graph, so this package also ships small editor data files generated from `custom-elements.json`:
789
- `vscode-html-data.json` (tag and attribute completion, with slot and CSS-part reference tables in
790
- each tag's hover description) and `vscode-css-data.json` (every `--lr-*` custom property). Point VS Code's
791
- [`html.customData`](https://code.visualstudio.com/docs/languages/html#_html-custom-data) and
792
- [`css.customData`](https://code.visualstudio.com/docs/languages/css#_css-custom-data) settings at
793
- them — typically in a workspace `.vscode/settings.json` so the whole team picks it up:
794
-
795
- ```json
796
- {
797
- "html.customData": [
798
- "./node_modules/@aceshooting/lyra-ui/vscode-html-data.json"
799
- ],
800
- "css.customData": ["./node_modules/@aceshooting/lyra-ui/vscode-css-data.json"]
801
- }
802
- ```
803
-
804
- Both settings accept an array, so add these alongside any other custom-data files the workspace
805
- already references. WebStorm/IntelliJ users get more from the bundled `web-types.json`, with no
806
- extra configuration once the package is installed: tag, attribute, JS property (`.prop=${…}`), DOM
807
- event (`@lr-event=${…}`), slot and custom-property completion. The property and event contributions
808
- matter most here — these are Lit components, so the idiomatic binding style is `.prop=`/`@event=`
809
- rather than attributes, and 865 public members are declared `attribute: false` and reachable no other
810
- way. The VS Code custom-data format defines no properties/events/slots concept, so in
811
- `vscode-html-data.json` those names remain reference prose in each tag's hover description. CSS-part
812
- names are prose in both files.
302
+ TypeScript consumers get completion from `HTMLElementTagNameMap`. For HTML, in-DOM templates and CSS install
303
+ [`@aceshooting/lyra-ide`](../lyra-ide): `web-types.json` works in WebStorm/IntelliJ, and `vscode-html-data.json` /
304
+ `vscode-css-data.json` plug into VS Code's `html.customData` and `css.customData` (setup in its README). In its
305
+ `custom-elements.json`, `cssParts` is flattened but `attributes`/`members`/`events`/`slots`/`cssProperties` list only a
306
+ declaration's own and overridden entries; walk the `superclass` chain or use the resolved `web-types.json`.
813
307
 
814
- Build tools can import the published manifest directly through its explicit package export:
815
-
816
- ```ts
817
- import manifest from '@aceshooting/lyra-ui/custom-elements.json' with { type: 'json' };
818
- ```
819
-
820
- A subclass declaration's `cssParts` is always fully flattened (everything inherited included), but
821
- `attributes`/`members`/`events`/`slots`/`cssProperties` list only a declaration's own entries plus
822
- any inherited entry it overrides — intentional, since a TypeScript/JS consumer already resolves the
823
- rest through the generated `.d.ts` `extends` chain. Reading `custom-elements.json` directly for
824
- those four kinds means walking each declaration's own `superclass` chain, or using the already-
825
- resolved `web-types.json`/`vscode-html-data.json` above instead.
826
-
827
- **Which tags a per-tag entry registers.** Each stable per-tag entry
828
- (`@aceshooting/lyra-ui/components/lr-<name>.js`) can, at import time, define more than one custom
829
- element: importing `lr-table.js` also registers `<lr-empty>`, `<lr-pagination>`, `<lr-skeleton>` and
830
- `<lr-spinner>`, because `lr-table`'s registration entry imports those composed children's own
831
- registration entries before defining `<lr-table>` itself. `custom-elements.json` has no field for
832
- this — it declares one custom element per family source module, not per stable entry specifier —
833
- so build tooling that needs to verify statically "does importing this specifier register that tag"
834
- (a lint rule, a contract test, a bundler safety check) reads the generated `registrations.json`
835
- instead:
836
-
837
- ```ts
838
- import registrations from '@aceshooting/lyra-ui/registrations.json' with { type: 'json' };
839
-
840
- const table = registrations.entries.find((entry) => entry.tag === 'lr-table');
841
- table?.registers; // ['lr-empty', 'lr-pagination', 'lr-skeleton', 'lr-spinner', 'lr-table']
842
- ```
843
-
844
- Each entry's `registers` is derived from the same transitive-import analysis
845
- `scripts/check-component-dependencies.mjs` already performs (not a second hand-maintained list),
846
- covers every published component, and is regenerated by `pnpm run registration-graph`.
308
+ A per-tag entry can register several elements (`components/lr-table.js` also defines `<lr-empty>`, `<lr-pagination>`,
309
+ `<lr-skeleton>` and `<lr-spinner>`); tooling reads `registrations.json` (`entries[].registers`; `pnpm run registration-graph`).
847
310
 
848
311
  ## Components
849
312
 
850
- The catalog below lists all 308 tags in the current Custom Elements Manifest, grouped by
851
- capability. The manifest and live docs are the authoritative sources for the complete generated
852
- API details.
853
-
854
- **Form controls, toasts, sparkline, and flags**
855
-
856
- | Component | Mirrors | Notes |
857
- | -------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
858
- | `<lr-combobox>` + `<lr-option>` | `wa-combobox` / `wa-option` / `sl-option` | Filterable single/multi select, form-associated; options separate live `selected` from attribute-backed/reset `defaultSelected`; `xs`–`xl` sizing; async rich rows and retained selection payloads via `source`/`selectedRows`; virtual scrolling with `max-render` |
859
- | `<lr-select>` | `wa-select` / `sl-select` | Closed-list single-select, button trigger (not a text input, no filtering); form-associated, shares `<lr-option>` with `lr-combobox` |
860
- | `<lr-currency-picker>` | — (extra) | Currency selector with optional name/code/symbol search, grouped catalogs and native validation |
861
- | `<lr-country-picker>` | — (extra) | Country and territory selector with localized names, flags and optional search |
862
- | `<lr-time-zone-picker>` | — (extra) | IANA time-zone selector with an ordered catalog override and optional search |
863
- | `<lr-unit-picker>` | — (extra) | Measurement-unit selector with localized names, symbols and custom unit catalogs |
864
- | `<lr-signature-pad>` | — (extra) | Form-associated drawn signature (pointer, touch or keyboard) submitted as a PNG data URL; SVG strokes survive resizes and screen-density changes |
865
- | `<lr-date-picker>` | `wa-date-picker` | Inline calendar, single + range |
866
- | `<lr-date-input>` | `wa-date-input` | Date field + calendar popover, form-associated |
867
- | `<lr-phone-input>` | — (extra) | Country-aware telephone field with canonical E.164 form values; numbering metadata is supplied through an optional adapter |
868
- | `<lr-toast>` + `<lr-toast-item>` + `toast()` | `wa-toast` / `wa-toast-item` | Stacking notifications |
869
- | `<lr-sparkline>` | `wa-sparkline` | Zero-dependency inline SVG |
870
- | `<lr-textarea>` | `wa-textarea` / `sl-textarea` | Form-associated multiline field with label/hint/error chrome, auto-resize, native editing passthrough, and caret APIs |
871
- | `<lr-input>` | `wa-input` / `sl-input` | Form-associated single-line field (`text`/`password`/`email`/`number`/`time`/`search`/`date`/`datetime-local`/`tel`/`url`) with label/hint/error chrome and a built-in password-visibility toggle |
872
- | `<lr-number-input>` + `<lr-time-input>` | `wa-number-input` / `wa-time-input` | Numeric input and locale-aware segmented time input |
873
- | `<lr-native-time-input>` | — (extra) | Preserved browser-native time field for Lyra 7 compatibility |
874
- | `<lr-color-picker>` | `wa-color-picker` / `sl-color-picker` | Form-associated native color picker with label/hint chrome |
875
- | `<lr-checkbox-group>` | `wa-checkbox-group` | Form-associated group of checkboxes with array values and group validation |
876
- | `<lr-token-input>` | — (extra) | Editable, removable form-associated token list |
877
- | `<lr-icon>` + `<lr-icon-button>` | `wa-icon` / `sl-icon` / `sl-icon-button` | Dependency-free SVG icons and accessible icon-only actions; migrated icon names outside the eleven-name built-in set require a registered library |
878
- | `<lr-button>` | `wa-button` / `sl-button` | Generic action-button primitive (`variant`/`appearance`/`size`/`loading`), owns `type="submit"`/`"reset"` via its browser-resolved form owner, including an external owner named by `form` |
879
- | `<lr-toggle>` + `<lr-toggle-group>` | — (extra) | Two-state pressed button and a one-tab-stop group with multiple or zero-or-one single selection |
880
- | `<lr-radio>` + `<lr-radio-group>` | `wa-radio` / `wa-radio-group` / `sl-radio` / `sl-radio-group` | Form-associated single-choice controls with roving arrow-key navigation and group validation; Lyra's group `name` defaults empty while Shoelace defaults to `option`, so the codemod inserts `name="option"` (set it for a manual rename) |
881
- | `<lr-radio-button>` | `sl-radio-button` | The same single-choice control rendered as a button; a `LyraRadio` subclass, so a `<lr-radio-group>` accepts either tag and consecutive siblings collapse into one segmented control |
882
- | `<lr-otp-input>` | `wa-otp-input` | Form-associated one-time-code field — presentational segments over one real input, so paste, SMS autofill and mobile keyboards work natively and the control stays one tab stop |
883
- | `<lr-spinner>` | `wa-spinner` / `sl-spinner` | Localized indeterminate busy indicator with reduced-motion support |
884
- | `<lr-progress-bar>` + `<lr-progress-ring>` | `wa-progress-bar` / `wa-progress-ring` / `sl-progress-bar` / `sl-progress-ring` | Determinate or indeterminate progress indicators |
885
- | `<lr-flag>` | — (extra) | Country/language flags for i18n pickers — needs the optional peer `@aceshooting/lyra-flags` |
886
- | `<lr-locale-picker>` | — (extra) | Closed-list locale switcher over the library's own locale registry (`getRegisteredLyraLocales()`) or an explicit `locales` catalog; selecting a row calls `setLyraLocale()` unless `lr-change-request` is cancelled |
887
-
888
- **Additional media and interaction primitives**
889
-
890
- | Component | Mirrors | Notes |
891
- | -------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------- |
892
- | `<lr-animated-image>` | `wa-animated-image` / `sl-animated-image` | Animated image playback with a captured still frame and reduced-motion support |
893
- | `<lr-animation>` | `wa-animation` / `sl-animation` | Web Animations API wrapper for declarative preset or custom animations |
894
- | `<lr-avatar-group>` | — (extra) | Responsive avatar grouping with a localized overflow indicator |
895
- | `<lr-include>` | `wa-include` / `sl-include` | Loads sanitized HTML or text content from a URL |
896
- | `<lr-known-date>` | `wa-known-date` | Form-associated date entry control with separate day, month, and year fields |
897
- | `<lr-lightbox>` | — (extra) | Full-screen modal image viewer with navigation and pan/zoom |
898
- | `<lr-qr-code>` | `wa-qr-code` / `sl-qr-code` | Canvas QR renderer; needs the optional peer `qrcode` |
899
- | `<lr-random-content>` | `wa-random-content` | Random, unique, or sequential slotted-content selection with autoplay |
900
- | `<lr-timeline>` + `<lr-timeline-item>` | — (extra) | Vertical or horizontal chronological event layout |
901
- | `<lr-tour>` | — (extra) | Anchored onboarding tour with spotlight, keyboard navigation, and focus management |
902
-
903
- **Dashboard atoms**
904
-
905
- | Component | Mirrors | Notes |
906
- | ---------------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
907
- | `<lr-empty>` | — (extra) | Generic empty/no-data state |
908
- | `<lr-skeleton>` | `wa-skeleton` / `sl-skeleton` | Loading placeholder (pulse/sheen) |
909
- | `<lr-scroller>` | `wa-scroller` | Responsive overflow surface with optional navigation controls |
910
- | `<lr-resize-observer>` | `wa-resize-observer` / `sl-resize-observer` | Lifecycle-managed ResizeObserver for slotted elements |
911
- | `<lr-intersection-observer>` | `wa-intersection-observer` | Lifecycle-managed IntersectionObserver for slotted elements |
912
- | `<lr-mutation-observer>` | `wa-mutation-observer` / `sl-mutation-observer` | Lifecycle-managed MutationObserver for slotted elements |
913
- | `<lr-stat>` | — (extra) | KPI/stat card with trend pill and an optional breakdown row list; either can carry an `exactValue` shown as a hover/focus tooltip alongside the rounded/formatted display value |
914
- | `<lr-data-grid>` | `wa-data-grid` | Virtualized client/server data grid with sorting, filtering, grouping, selection, column controls, tree/detail rows, paging, CSV export, and the complete experimental 3.11 public surface |
915
- | `<lr-table>` | — (extra) | Sort/select-aware data table with optional controlled filtering, client/server-friendly pagination, loading state, consumer-owned inline editing, expandable rows, sticky columns, and responsive `priority` columns |
916
- | `<lr-pagination>` | `wa-pagination` | Controlled previous/next and validated page-jump navigation with a localized range summary, loading/empty states, RTL icons, and container-responsive stacking |
917
- | `<lr-gauge>` | — (extra) | Radial, full-circle ring, or linear meter with a per-instance fill token |
918
- | `<lr-export-button>` | — (extra) | Injection-safe CSV/JSON downloads plus event-handled custom format descriptors and controlled busy state |
919
- | `<lr-copy-button>` | `wa-copy-button` / `sl-copy-button` | Standalone icon-only copy-to-clipboard button for a plain text value, no positioning opinion |
920
- | `<lr-multi-split>` | — (extra) | Resizable multi-panel layout; one pane can opt into responsive `collapse` (`"start"`/`"end"`) to a fixed-width rail, then a floating overlay card, as the split's container narrows |
921
- | `<lr-split-panel>` | `wa-split-panel` / `sl-split-panel` | Exact two-pane split contract with named `start`/`end` content, percent/pixel positioning, primary-pane sizing, snapping, constraints, and an accessible divider |
922
- | `<lr-widget>` | — (extra) | Card shell with collapsible header, fullscreen, and customizable chrome |
923
- | `<lr-word-cloud>` | — (extra) | Zero-dependency SVG word/tag cloud, spiral-placed by weight |
924
- | `<lr-badge>` + `<lr-tag>` | `wa-badge` / `wa-tag` / `sl-badge` / `sl-tag` | Compact semantic status labels |
925
- | `<lr-alert>` | `sl-alert` | Closed-by-default inline alert with timed dismissal, countdown, and identity-preserving toast promotion |
926
- | `<lr-callout>` | `wa-callout` | Dismissible inline status, warning, and error message surface |
927
- | `<lr-divider>` | `wa-divider` / `sl-divider` | Horizontal or vertical semantic separator |
928
- | `<lr-rating>` | `wa-rating` / `sl-rating` | Keyboard-accessible star rating slider |
929
-
930
- **Temporal & graph**
931
-
932
- | Component | Mirrors | Notes |
933
- | ------------------------------ | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
934
- | `<lr-time-range>` | — (extra) | Two-handle brush/scrubber over a numeric domain |
935
- | `<lr-sequence-playback>` | — (extra) | Play/pause sequence index stepper over `itemCount`, with `currentIndex` and `lr-sequence-step` |
936
- | `<lr-heatmap>` | — (extra) | DPR-aware Canvas heatmap with matrix and calendar (`mode="calendar"`) layouts, `fit-to-width` responsive scaling |
937
- | `<lr-funnel>` | — (extra) | Dependency-free conversion funnel: each stage a bar sized as its share of the FIRST stage, labelled with both its absolute value and its share, with per-stage drop-off and an optional comparison series normalized to its own first stage; plain HTML, so the accessible representation is the chart itself |
938
- | `<lr-sequence-strip>` | — (extra) | Compact, one-thin-cell-per-item strip visualizing a sequence of categorical states with an optional secondary per-cell marker — pure CSS/flex, no chart.js/SVG/canvas; a named roving `role="list"` whose `role="listitem"` cells support Arrow/Home/End navigation and controlled activation through click or Enter/Space (`lr-item-activate`) |
939
- | `<lr-graph>` | — (extra) | Force-directed node-link diagram with pan/zoom/drag, directed/styled relationship links, and rich accessible metadata — needs the optional peer deps `d3-force`, `d3-drag`, `d3-zoom`, `d3-selection` |
940
- | `<lr-tree>` + `<lr-tree-item>` | `wa-tree` / `wa-tree-item` / `sl-tree` / `sl-tree-item` | Expand/collapse hierarchy with structured icon/label/description/badge rows, optional richer accessible labels, and APG tree keyboard navigation |
941
-
942
- **Flow canvas — workflow & DAG diagramming**
943
-
944
- | Component | Mirrors | Notes |
945
- | ---------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
946
- | `<lr-flow-canvas>` | — (extra) | Pannable/zoomable DAG workflow canvas — positions node cards, draws SVG edges, and runs a shared layered auto-layout for unpositioned nodes; readonly (viewer) by default, opt into editor gestures individually via `nodes-draggable`/`connectable`/`droppable`; a controlled component, never mutates `nodes`/`edges` itself |
947
- | `<lr-flow-node>` | — (extra) | The default workflow node card — header/body/toolbar chrome, tool-lifecycle `status` tones, and named connection-handle elements edges anchor to; purely presentational, used as `lr-flow-canvas`'s default card, a slotted override, or standalone |
948
- | `<lr-flow-minimap>` | — (extra) | Corner overview map of a `lr-flow-canvas` — scaled node rectangles plus a draggable viewport rectangle; resolves its target canvas via `for` (or the nearest ancestor) and reads geometry only from the canvas's `registerCompanion()` snapshots, never `nodes` directly |
949
- | `<lr-flow-controls>` | — (extra) | The canvas's zoom-in/zoom-out, fit, and interaction-lock button cluster; drives only view state on a resolved `for` canvas, never touches `nodes`/`edges` |
950
- | `<lr-node-palette>` | — (extra) | Searchable, categorized node library for workflow editors — drag an item onto a canvas or place it by keyboard, emitting `lr-palette-place`/`lr-select`; never creates nodes or touches a canvas's data itself |
951
- | `<lr-flow-run-status>` | — (extra) | Execution-state companion for a `lr-flow-canvas` — pushes a `FlowRunDecorations` map into the resolved canvas and renders a compact "{done} of {total} steps complete" run-summary strip; pure pushed state, never executes or polls anything |
952
-
953
- **Knowledge graph & RAG exploration**
954
-
955
- | Component | Mirrors | Notes |
956
- | ------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
957
- | `<lr-graph-legend>` | — (extra) | Node-type legend for a paired `lr-graph` — one swatch/label/count row per node type, doubling as visibility filters via `lr-visibility-change`; never reads or writes a graph directly |
958
- | `<lr-entity-card>` | — (extra) | Knowledge-graph entity dossier card — type badge, description, key/value property rows, degree, community chip, and a built-in "focus in graph" action (`lr-entity-select`); never fetches or focuses a graph itself |
959
- | `<lr-entity-chip>` | — (extra) | Inline `@entity` mention for agent prose — flow content, keyboard-focusable, with a hover/focus preview popover; the knowledge-graph sibling of `lr-citation-badge`, carrying ids through events only |
960
- | `<lr-neighbor-list>` | — (extra) | One entity's relationship rows — relation, direction, neighbor — with per-row navigate and expand-in-graph affordances; never computes neighbors itself or mutates a graph |
961
- | `<lr-path-strip>` | — (extra) | Compact, horizontally scrollable node → relation → node chain rendering "why A connects to B" (GraphRAG local-search reasoning paths); one-dimensional and presentational, no path finding |
962
- | `<lr-community-card>` | — (extra) | GraphRAG community/cluster summary card — label, LLM summary excerpt, member count, member chips with overflow, and a drill-in action (`lr-drill`); doesn't own community rendering or membership fetching |
963
- | `<lr-chunk-inspector>` | — (extra) | Ranked retrieved-chunks list — relevance score bars with tier tones, expandable chunk text, and a `lr-chunk-open` deep-link event that lands a chunk in `lr-document-viewer`; never fetches, ranks, or dedupes |
964
- | `<lr-source-picker>` | — (extra) | Checkbox tree/list scoping which sources ground the next answer — tri-state folders, select-all, type icons, search; deliberately not form-associated, an immediate app-state scoping panel wired through `lr-selection-change` |
965
- | `<lr-provenance-panel>` | — (extra) | Sectioned grounding-breakdown disclosure panel for one answer (Entities / Relationships / Communities / Text chunks), composing `lr-entity-chip`/`lr-path-strip`/`lr-community-card`/`lr-chunk-inspector`; pure projection and event conduit, no fetching |
966
- | `<lr-mind-map>` | — (extra) | Radial expandable topic tree (NotebookLM-style mind map) — zero-dependency SVG with a closed-form radial layout; hierarchy only, no cross-links, force simulation, communities, or edge labels (that's `lr-graph`) |
967
- | `<lr-knowledge-graph-explorer>` | — (extra) | Orchestration-level surface for exploring a knowledge graph — the `lr-graph` canvas plus entity search, type filters, neighborhood expansion, pinned nodes, path finding between pins, and a details overlay; composes `lr-graph`, `lr-graph-legend`, `lr-entity-card`, `lr-neighbor-list`, `lr-path-strip`, and `lr-popover.showAt()` rather than re-implementing graph rendering itself |
968
- | `<lr-graph-query-builder>` | — (extra) | Editor for a single typed relationship/path filter (`GraphQuery`) over a knowledge graph — start/end entity anchors, relationship-type and node-type pickers with a removable active-filter chip display, a traversal direction, a min/max hop range, validation, and a host-persisted saved-query list; a serializable query model for GraphRAG workflows |
969
- | `<lr-entity-dossier>` | — (extra) | Full entity detail surface — a persistent header (`lr-entity-card` plus a confidence `lr-stat`) above an `lr-tab-group` strip for Relationships (`lr-neighbor-list`), Supporting chunks (`lr-chunk-inspector`), and Provenance (`lr-provenance-panel`); pure layout, never fetches or mutates graph/document state |
970
- | `<lr-embedding-explorer>` | — (extra) | Accessible SVG projection of host-provided embedding points with cluster coloring and a visible cluster legend, roving keyboard focus, and `lr-point-select`; it never filters points, computes embeddings, or owns dimensionality reduction |
971
-
972
- **Retrieval & grounding**
973
-
974
- | Component | Mirrors | Notes |
975
- | ------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
976
- | `<lr-retrieval-search>` | — (extra) | Query bar for a retrieval/RAG surface — query text, an active-filter/scope chip row, a vector/keyword/hybrid mode selector, and loading/error/empty status feedback; fully controlled, emits `lr-search` only and never performs retrieval itself |
977
- | `<lr-retrieval-results>` | — (extra) | Orchestration-level ranked-chunk-list surface — deduplication, optional grouping by source, multi-selection, pagination/infinite loading, and a compact/expanded presentation switch; composes an `lr-chunk-inspector` per row and an internal `lr-virtual-list` for large result sets |
978
- | `<lr-retrieval-trace>` | — (extra) | Retrieval pipeline's stage timeline (query rewriting, embedding, retrieval, reranking, filtering) rendered through `lr-span-waterfall`, plus a disclosure list exposing each stage's evidence (chunks via `lr-chunk-inspector`, free-form text, and/or metadata); never fetches or computes retrieval results itself |
979
- | `<lr-grounding-summary>` | — (extra) | Claim-level scorecard for one generated answer — supported/unsupported claim counts, citation coverage, an optional confidence score, warnings, and (when supplied) a list of evidence citations; composes `lr-stat` and `lr-citation-badge`, pure projection and event conduit |
980
- | `<lr-claim-evidence>` | — (extra) | One claim's support verdict, score, citations, and evidence excerpts, with typed citation activation for opening the original source |
981
- | `<lr-context-inspector>` | — (extra) | Inspection view of the exact context assembled for a model call — per-segment token estimates via `lr-context-meter`, source attribution via `lr-citation-badge`, copy/export affordances, and truncation-boundary/redaction-marker rendering; pure projection, never fetches, estimates, or redacts itself |
982
- | `<lr-rag-answer>` | — (extra) | Grounded answer surface composing sanitized Markdown, claim-level grounding summary, citation badges, and source cards; controlled, localized, and emits citation/retry events without fetching data |
983
- | `<lr-retrieval-compare>` | — (extra) | Side-by-side comparison of retrieval runs, including latency, hit count, score, and overlapping source identifiers; controlled and computation-free |
984
- | `<lr-rag-eval-dashboard>` | — (extra) | Aggregate RAG quality scorecard for groundedness, citation coverage, relevance, recall, latency, and cost, with per-case drill-in events |
985
-
986
- **Knowledge base & document management**
987
-
988
- | Component | Mirrors | Notes |
989
- | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
990
- | `<lr-knowledge-base>` | — (extra) | Source list for a retrieval knowledge base — sync status, indexing health, permissions, and per-row create/sync/pause/delete affordances; a controlled data view that never syncs or indexes anything itself, only presents `sources` and emits request-only events |
991
- | `<lr-ingestion-queue>` | — (extra) | Controlled list of documents moving through an ingestion pipeline (upload → text extraction → chunking → embedding → indexing), each row showing its stage, progress, chunk/embedding counts, and a retry or cancel affordance; presentation only, virtualizes above `virtualizeAt` items |
992
- | `<lr-document-library>` | — (extra) | Searchable, filterable inventory of documents with versions, tags, owners, freshness, and bulk selection; composes `lr-table` for the grid and `lr-input`/`lr-combobox` for search and tag-facet filtering — a controlled data view, no upload/sync/mutation of its own |
993
- | `<lr-document-compare>` | — (extra) | Side-by-side or inline comparison of two document versions, composed from `lr-diff-view` (`view="diff"`, the default) and `lr-document-preview` (`view="side-by-side"`), with proportional scroll sync and matching-highlight activation keeping the two independent preview panes aligned |
994
- | `<lr-knowledge-base-admin>` | — (extra) | Tabbed knowledge-base operations shell composing source management and ingestion queue views; controlled, action-forwarding, and suitable for host-owned settings content |
995
-
996
- **Agent runs & observability**
997
-
998
- | Component | Mirrors | Notes |
999
- | ---------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1000
- | `<lr-agent-run>` | — (extra) | Top-level shell for one `AgentRun` — lifecycle-status badge, elapsed time, current step, model/cost summary, and built-in Cancel/Retry controls in a header, plus `tasks`/`tools`/`reasoning`/`output` composition slots; a shell only, every piece of per-step rendering routes through an existing primitive |
1001
- | `<lr-agent-workspace>` | — (extra) | Responsive controlled AI workspace composing the transcript, composer, agent run, tool timeline, retrieval results, grounding summary, and context inspector, with replaceable message/details/composer slots |
1002
- | `<lr-subagent-panel>` | — (extra) | Parent/child agent hierarchy with lifecycle status, task summaries, and typed selection/cancel events; the host owns orchestration |
1003
- | `<lr-agent-trace>` | — (extra) | Provider-neutral agent/LLM trace view — a span-kind filter row, a handoff quick-jump list, and the full trace hierarchy, all rendered through `lr-trace-tree` over one shared `LyraSpan[]` array |
1004
- | `<lr-mcp-app>` | — (extra) | Sandboxed MCP Apps host with a required resource descriptor containing a non-empty URI and exactly one of HTML or source URL, plus CSP and permission-policy inputs; validates remote URLs, uses a no-referrer frame, and emits ready plus host-authorized request events |
1005
- | `<lr-prompt-studio>` | — (extra) | Versioned prompt editing and testing workspace with variable inputs, controlled run events, and version-selection events |
1006
- | `<lr-json-schema-viewer>` | — (extra) | Read-only, recursively rendered JSON Schema browser for tool inputs, structured outputs, and protocol payloads |
1007
- | `<lr-tool-timeline>` | — (extra) | Chronological list of an agent run's tool/function calls, each rendered through `lr-tool-call-chip` (name/status/duration) and `lr-tool-result-view` (args/result), with per-entry retry counts, sensitive-field redaction, and a shared `lr-tool-approval-dialog` for entries gated behind human approval |
1008
- | `<lr-memory-panel>` | — (extra) | Agent working-memory surface — short-term context and long-term memories, each item's confidence and optional grounding provenance via `lr-provenance-panel`, with add/remove/forget actions gated behind an `lr-confirm-bar` confirmation step |
1009
- | `<lr-policy-summary>` | — (extra) | Read-only list of guardrail, permission, privacy, and tool-policy decisions (`allow`/`deny`/`needs-review`), each with an always-visible, accessible explanation never conveyed by color alone; composes `lr-badge`, with `lr-details` for optional richer detail |
1010
- | `<lr-approval-queue>` | — (extra) | Keyboard-accessible pending human-approval list composing `lr-tool-approval-dialog`; forwards namespaced selection, decision, and close events without owning persistence |
1011
-
1012
- **Dashboards & orchestration**
1013
-
1014
- | Component | Mirrors | Notes |
1015
- | ------------------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1016
- | `<lr-dashboard-grid>` | — (extra) | Responsive, keyboard-accessible widget grid — positions `layout` entries on a CSS Grid, composing `lr-widget` + `lr-widget-renderer` for each cell's default content, with drag/resize/collision handled as controlled events; readonly (viewer) by default, opt into editor gestures via `cells-draggable`/`cells-resizable` |
1017
- | `<lr-filter-bar>` | — (extra) | Row of dashboard filters declared by the host (`filters`) rather than invented by this component — each composes an existing Lyra input (`lr-select`/`lr-combobox`/`lr-date-input`), plus a removable `lr-chip-group` summary and a reset button; controlled, emits a single `lr-input` carrying the full resulting value |
1018
- | `<lr-condition-builder>` | — (extra) | Composable condition builder for tabular/dashboard data — a flat list of field/operator/value rows combined with one AND/OR combinator; fully controlled, distinct from `lr-graph-query-builder`'s typed graph/path queries |
1019
- | `<lr-drilldown-panel>` | — (extra) | Controlled navigation from a chart/table datum to its related evidence, documents, entities, or agent runs — a breadcrumb trail (`lr-breadcrumb`) over `path` plus, per category the current node has content for, the matching existing primitive (`lr-source-card`, `lr-document-preview`, `lr-entity-card`), wrapped in `lr-tab-group` only when more than one category applies |
1020
-
1021
- **Evaluation**
1022
-
1023
- | Component | Mirrors | Notes |
1024
- | --------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1025
- | `<lr-eval-dataset>` | — (extra) | Dataset management for an evaluation suite — a filterable/taggable list of `EvalExample` rows via `lr-table`, an `lr-chip`/`lr-chip-group` tag-based browse filter, and add/remove/import/export affordances; fully controlled, never mutates `examples` or performs I/O itself |
1026
- | `<lr-eval-run>` | — (extra) | Evaluation batch's live progress — an overall `lr-progress-bar` counting terminal (done/error/cancelled) examples against the batch total, plus one `lr-details` disclosure per example showing input/output, an optional `lr-grounding-summary`, and an optional `lr-tool-timeline` |
1027
- | `<lr-eval-result>` | — (extra) | Rubric scoring, human review, and comparison across a single evaluation example's runs — composes `lr-table` for the runs comparison table, `lr-rubric-form` for the selected run's human-review scoring, and `lr-diff-view` to compare a run's output against a baseline run |
1028
- | `<lr-agent-eval-dashboard>` | — (extra) | Evaluation metric dashboard with locale-aware KPI cards, optional trend chart, and selectable run history; controlled and emits metric/run selection events |
1029
-
1030
- **Overlays**
1031
-
1032
- | Component | Mirrors | Notes |
1033
- | ------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
313
+ All 308 tags appear below: the table lists components mirroring a Web Awesome or Shoelace tag, the lists after it the
314
+ original ones. Purpose and import path: [`llms/index.md`](./llms/index.md); full APIs: `llms/components/<tag>.md`
315
+ and the [live docs](https://aceshooting.github.io/lyra-ui/).
316
+
317
+ | Component | Mirrors | Notes |
318
+ | --- | --- | --- |
319
+ | `<lr-combobox>` + `<lr-option>` | `wa-combobox` / `wa-option` / `sl-option` | Filterable single/multi select, form-associated; options separate live `selected` from attribute-backed/reset `defaultSelected`; `xs`–`xl` sizing; async rich rows and retained selection payloads via `source`/`selectedRows`; virtual scrolling with `max-render` |
320
+ | `<lr-select>` | `wa-select` / `sl-select` | Closed-list single-select, button trigger (not a text input, no filtering); form-associated, shares `<lr-option>` with `lr-combobox` |
321
+ | `<lr-date-picker>` | `wa-date-picker` | Inline calendar, single + range |
322
+ | `<lr-date-input>` | `wa-date-input` | Date field + calendar popover, form-associated |
323
+ | `<lr-toast>` + `<lr-toast-item>` + `toast()` | `wa-toast` / `wa-toast-item` | Stacking notifications |
324
+ | `<lr-sparkline>` | `wa-sparkline` | Zero-dependency inline SVG |
325
+ | `<lr-textarea>` | `wa-textarea` / `sl-textarea` | Form-associated multiline field with label/hint/error chrome, auto-resize, native editing passthrough, and caret APIs |
326
+ | `<lr-input>` | `wa-input` / `sl-input` | Form-associated single-line field (`text`/`password`/`email`/`number`/`time`/`search`/`date`/`datetime-local`/`tel`/`url`) with label/hint/error chrome and a built-in password-visibility toggle |
327
+ | `<lr-number-input>` + `<lr-time-input>` | `wa-number-input` / `wa-time-input` | Numeric input and locale-aware segmented time input |
328
+ | `<lr-color-picker>` | `wa-color-picker` / `sl-color-picker` | Form-associated native color picker with label/hint chrome |
329
+ | `<lr-checkbox-group>` | `wa-checkbox-group` | Form-associated group of checkboxes with array values and group validation |
330
+ | `<lr-icon>` + `<lr-icon-button>` | `wa-icon` / `sl-icon` / `sl-icon-button` | Dependency-free SVG icons and accessible icon-only actions; migrated icon names outside the eleven-name built-in set require a registered library |
331
+ | `<lr-button>` | `wa-button` / `sl-button` | Generic action-button primitive (`variant`/`appearance`/`size`/`loading`), owns `type="submit"`/`"reset"` via its browser-resolved form owner, including an external owner named by `form` |
332
+ | `<lr-radio>` + `<lr-radio-group>` | `wa-radio` / `wa-radio-group` / `sl-radio` / `sl-radio-group` | Form-associated single-choice controls with roving arrow-key navigation and group validation; Lyra's group `name` defaults empty while Shoelace defaults to `option`, so the codemod inserts `name="option"` (set it for a manual rename) |
333
+ | `<lr-radio-button>` | `sl-radio-button` | The same single-choice control rendered as a button; a `LyraRadio` subclass, so a `<lr-radio-group>` accepts either tag and consecutive siblings collapse into one segmented control |
334
+ | `<lr-otp-input>` | `wa-otp-input` | Form-associated one-time-code field — presentational segments over one real input, so paste, SMS autofill and mobile keyboards work natively and the control stays one tab stop |
335
+ | `<lr-spinner>` | `wa-spinner` / `sl-spinner` | Localized indeterminate busy indicator with reduced-motion support |
336
+ | `<lr-progress-bar>` + `<lr-progress-ring>` | `wa-progress-bar` / `wa-progress-ring` / `sl-progress-bar` / `sl-progress-ring` | Determinate or indeterminate progress indicators |
337
+ | `<lr-animated-image>` | `wa-animated-image` / `sl-animated-image` | Animated image playback with a captured still frame and reduced-motion support |
338
+ | `<lr-animation>` | `wa-animation` / `sl-animation` | Web Animations API wrapper for declarative preset or custom animations |
339
+ | `<lr-include>` | `wa-include` / `sl-include` | Loads sanitized HTML or text content from a URL |
340
+ | `<lr-known-date>` | `wa-known-date` | Form-associated date entry control with separate day, month, and year fields |
341
+ | `<lr-qr-code>` | `wa-qr-code` / `sl-qr-code` | Canvas QR renderer; needs the optional peer `qrcode` |
342
+ | `<lr-random-content>` | `wa-random-content` | Random, unique, or sequential slotted-content selection with autoplay |
343
+ | `<lr-skeleton>` | `wa-skeleton` / `sl-skeleton` | Loading placeholder (pulse/sheen) |
344
+ | `<lr-scroller>` | `wa-scroller` | Responsive overflow surface with optional navigation controls |
345
+ | `<lr-resize-observer>` | `wa-resize-observer` / `sl-resize-observer` | Lifecycle-managed ResizeObserver for slotted elements |
346
+ | `<lr-intersection-observer>` | `wa-intersection-observer` | Lifecycle-managed IntersectionObserver for slotted elements |
347
+ | `<lr-mutation-observer>` | `wa-mutation-observer` / `sl-mutation-observer` | Lifecycle-managed MutationObserver for slotted elements |
348
+ | `<lr-data-grid>` | `wa-data-grid` | Virtualized client/server data grid with sorting, filtering, grouping, selection, column controls, tree/detail rows, paging, CSV export, and the complete experimental 3.11 public surface |
349
+ | `<lr-pagination>` | `wa-pagination` | Controlled previous/next and validated page-jump navigation with a localized range summary, loading/empty states, RTL icons, and container-responsive stacking |
350
+ | `<lr-copy-button>` | `wa-copy-button` / `sl-copy-button` | Standalone icon-only copy-to-clipboard button for a plain text value, no positioning opinion |
351
+ | `<lr-split-panel>` | `wa-split-panel` / `sl-split-panel` | Exact two-pane split contract with named `start`/`end` content, percent/pixel positioning, primary-pane sizing, snapping, constraints, and an accessible divider |
352
+ | `<lr-badge>` + `<lr-tag>` | `wa-badge` / `wa-tag` / `sl-badge` / `sl-tag` | Compact semantic status labels |
353
+ | `<lr-alert>` | `sl-alert` | Closed-by-default inline alert with timed dismissal, countdown, and identity-preserving toast promotion |
354
+ | `<lr-callout>` | `wa-callout` | Dismissible inline status, warning, and error message surface |
355
+ | `<lr-divider>` | `wa-divider` / `sl-divider` | Horizontal or vertical semantic separator |
356
+ | `<lr-rating>` | `wa-rating` / `sl-rating` | Keyboard-accessible star rating slider |
357
+ | `<lr-tree>` + `<lr-tree-item>` | `wa-tree` / `wa-tree-item` / `sl-tree` / `sl-tree-item` | Expand/collapse hierarchy with structured icon/label/description/badge rows, optional richer accessible labels, and APG tree keyboard navigation |
1034
358
  | `<lr-popover>` + `<lr-tooltip>` + `<lr-dropdown>` | `wa-popover` / `wa-tooltip` / `wa-dropdown` / `sl-tooltip` / `sl-dropdown` | Floating UI-positioned, RTL-aware overlay primitives with light dismiss and trigger ARIA wiring; `focus` activation opens only on keyboard focus (a deliberate narrowing of the upstream behaviour); call `show()` for scripted reveals |
1035
- | `<lr-popup>` | `wa-popup` / `sl-popup` | The low-level anchored-positioning primitive the three above are built on — placement, flip/shift, arrow and virtual anchoring, with no dismiss, focus or ARIA policy of its own |
1036
- | `<lr-context-menu>` | — (extra) | Right-click, press-and-hold and Shift+F10 action menu over any region, built from `lr-menu` items |
1037
-
1038
- **Charts**
1039
-
1040
- | Component | Mirrors | Notes |
1041
- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
1042
- | `<lr-chart>` | `wa-chart` | Core Chart.js wrapper (`LyraChartSeries`-based, plus raw `config` passthrough) with bounded `appendData()` streaming and `exportData('csv' | 'png')`— needs`chart.js`, plus `chartjs-plugin-zoom`when`zoomable`is enabled and`chartjs-plugin-datalabels`when`data-labels`/`stack-totals` is enabled |
359
+ | `<lr-popup>` | `wa-popup` / `sl-popup` | The low-level anchored-positioning primitive the three above are built on — placement, flip/shift, arrow and virtual anchoring, with no dismiss, focus or ARIA policy of its own |
360
+ | `<lr-chart>` | `wa-chart` | Core Chart.js wrapper (`LyraChartSeries`-based, plus raw `config` passthrough) with bounded `appendData()` streaming and `exportData('csv' |
1043
361
  | `<lr-bar-chart>`, `<lr-line-chart>`, `<lr-pie-chart>`, `<lr-doughnut-chart>`, `<lr-scatter-chart>`, `<lr-bubble-chart>`, `<lr-radar-chart>`, `<lr-polar-area-chart>` | `wa-bar-chart` / `wa-line-chart` / `wa-pie-chart` / `wa-doughnut-chart` / `wa-scatter-chart` / `wa-bubble-chart` / `wa-radar-chart` / `wa-polar-area-chart` | Typed `<lr-chart>` subclasses with tag-specific defaults and the full writable `LyraChartType` vocabulary — same optional peer deps as `<lr-chart>` |
1044
- | `<lr-box-plot>` | — (extra) | Box-and-whisker chart from precomputed five-number summaries — needs `chart.js` and `@sgratzl/chartjs-chart-boxplot` |
1045
- | `<lr-histogram>` | — (extra) | Bins raw values (`binValues()`) and renders a bar chart — same optional peer deps as `<lr-chart>` |
1046
- | `<lr-lite-chart>` | — (extra) | Dependency-free bar/line chart (plain SVG/DOM) with bounded `appendData()` streaming and `exportData('csv' | 'svg')` — **no optional peer deps**, for projects that forbid a charting dependency outright |
1047
-
1048
- **Map & file-input**
1049
-
1050
- | Component | Mirrors | Notes |
1051
- | ----------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1052
- | `<lr-map>` | — (extra) | maplibre-gl wrapper with declarative legend, choropleth GeoJSON layer, and point markers (via `markers` property), plus a raw `map` escape hatch — needs the optional peer `maplibre-gl` and an explicit `mapStyle` (see Install above); no third-party tile style is requested implicitly |
1053
- | `<lr-file-input>` | `wa-file-input` | Drag-drop + click-to-browse file dropzone, emits raw `File[]` (no CSV/XLSX parsing — that's host-specific) |
1054
- | `<lr-drop-zone>` | — (extra) | Drag-and-drop region wrapper with no file input of its own: makes any region (a composer, a whole viewport) a drop target with a themeable drag-over overlay, `accept`/size/count limits, and the same `File[]` events as `<lr-file-input>` |
1055
-
1056
- **Conversation & Agent UI — chat/agent product building blocks**
1057
-
1058
- Web Awesome has no chat/agent UI component family at all, so every component in this table is
1059
- original to lyra-ui (`— (extra)`) — there's nothing to migrate from. See
1060
- [repository reference archive](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms-full.txt) for the full API (properties, events, parts, tokens) behind
1061
- each one-liner below.
1062
-
1063
- | Component | Mirrors | Notes |
1064
- | -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1065
- | `<lr-chat-message>` | — (extra) | Role-based (`user`/`assistant`/`system`) message bubble shell; avatar/badges header, status-aware footer (built-in retry on `status="failed"`), attachments strip — renders no message content itself, just the chrome around a slotted body |
1066
- | `<lr-message-parts>` | — (extra) | Provider-neutral renderer for ordered text, reasoning, tool-call, tool-result, citation, file, and declarative widget parts |
1067
- | `<lr-chat-viewport>` | — (extra) | Transcript scroll container: stick-to-bottom while an answer streams, a "jump to latest" pill, and an unread divider; auto-detects slotted `<lr-chat-message>` children vs. a single nested `<lr-virtual-list>` (virtual mode) and defers scrolling to it |
1068
- | `<lr-prompt-input>` | — (extra) | Composite multimodal prompt surface for text, attachments, source selection, and send/stop behavior; deliberately event-submitted rather than a native successful form control |
1069
- | `<lr-prompt-queue>` | — (extra) | Controlled queue of pending prompts with reorder, edit, remove, and submit-next request events |
1070
- | `<lr-selection-toolbar>` | — (extra) | Contextual toolbar for actions on selected transcript text, positioned from a host-supplied selection rectangle |
1071
- | `<lr-realtime-session>` | — (extra) | Voice/realtime session controller surface that visualizes connection and speaking state and emits connect, disconnect, mute, and interrupt requests |
1072
- | `<lr-message-actions>` | — (extra) | Per-message action toolbar for `<lr-chat-message>`'s `actions` slot — opt-in copy/regenerate/edit/feedback built-ins plus a default slot for custom controls (e.g. a slotted `<lr-branch-picker>`); `role="toolbar"` with APG roving-tabindex across every stop |
1073
- | `<lr-message-feedback>` | — (extra) | Thumbs up/down for one assistant message with an optional inline reason-chips + free-text comment disclosure; emits, never persists — the host reflects a prior rating back via `rating` |
1074
- | `<lr-branch-picker>` | — (extra) | The "‹ 2 / 5 ›" navigator across regenerated/edited message variants; pure controlled (`lr-branch-change`, never mutates its own `index`) — same contract `<lr-pagination>` establishes for `page`; renders nothing while `count < 2` |
1075
- | `<lr-typing-indicator>` | — (extra) | Purely presentational "assistant is responding" cue; `dots`/`pulse`/`cursor` variants |
1076
- | `<lr-streaming-text>` | — (extra) | Token-coalescing incremental text renderer for streamed output; auto-detects Markdown (or force via `markdown`), optional blinking cursor |
1077
- | `<lr-streaming-text-core>` | — (extra) | Build-lean `<lr-streaming-text>` variant with identical behaviour for a consumer whose `languages` map covers every fenced-code language it streams, or that renders no fenced code |
1078
- | `<lr-thinking-panel>` | — (extra) | Collapsible panel for an agent's intermediate reasoning transcript; `live` mode auto-scrolls (stick-to-bottom) while streaming, `post-hoc` doesn't |
1079
- | `<lr-activity-feed>` | — (extra) | Append-only streaming log of granular agent actions ("Searching the web…"), collapsing to a localized "Completed N steps" summary once the run ends; virtualizes above `virtualizeAt` entries, shares the `follow`/`lr-follow-change` stick-to-bottom contract |
1080
- | `<lr-task-list>` | — (extra) | Live, collapsible tracker for an agent's plan — ordered steps with per-step lifecycle status and one level of nested sub-steps; controlled `items`, mirrors `<lr-stepper>`'s `steps` contract but read-only (several steps can be `running` at once, no selection) |
1081
- | `<lr-generation-metrics>` | — (extra) | Ticking elapsed-time / token-count / throughput readout with explicit `idle`/`running`/`complete` status and a built-in Stop button while running |
1082
- | `<lr-stream-status>` | — (extra) | Compact transport-health indicator (`idle`/`connecting`/`streaming`/`stalled`) with heartbeat-aware stall detection via `recordActivity()` |
1083
- | `<lr-checkpoint>` | — (extra) | Inline conversation restore-point marker between messages; its Restore affordance confirms inline, then hands the host a `lr-restore` event — persists and restores nothing itself |
1084
- | `<lr-handoff-divider>` | — (extra) | Labeled separator marking control transfer between agents in a transcript ("Transferred to Research Agent"), with an optional agent avatar; purely presentational, announced once via an internal `<lr-live-region>` on connect |
1085
- | `<lr-markdown>` | `wa-markdown` | Sanitized Markdown → HTML (GFM tables, fenced code, links); lazy-loads the optional peers `marked` + `dompurify` |
1086
- | `<lr-code-block>` | — (extra) | Fenced code display with a copy button, optional line numbers, lazy-loaded `shiki` grammars, and built-in GreyCat/GCL highlighting |
1087
- | `<lr-artifact-panel>` | — (extra) | Shell around one agent-generated artifact — title/kind header, preview↔code toggle, version navigation with restore, a streaming indicator, and built-in copy/download actions; renders none of the artifact itself, content is slotted |
1088
- | `<lr-live-region>` | — (extra) | Throttled/coalesced ARIA live-region announcer for streaming UIs, built on the reusable internal `Announcer` engine |
1089
- | `<lr-chat-composer>` | — (extra) | Auto-resizing message `<textarea>` + built-in send/stop button; form-associated, Enter-to-send with Shift+Enter/IME handling |
1090
- | `<lr-suggestion-chips>` | — (extra) | Starter prompts (empty thread) or follow-up suggestions (after a response) as a horizontally scrollable chip row; activation hands the prompt to the host — never composes or sends anything itself |
1091
- | `<lr-emoji-picker>` | — (extra) | Searchable, keyboard-navigable, form-associated emoji picker; ships no emoji data of its own (`groups` is consumer-suppliable) with an optional convenience auto-loader for a default set |
1092
- | `<lr-attachment-chip>` | — (extra) | Pre-send or sent file chip with thumbnail/size/upload-progress/retry; derives metadata from a real `File` or from persisted server metadata |
1093
- | `<lr-attachment-trigger>` | — (extra) | Attach-file affordance for a composer's leading slot; a single icon button, or a `<lr-menu>` when more than one capability (`files`/`image`/`camera`/`audio`) is configured |
1094
- | `<lr-mention-popover>` | — (extra) | Caret-anchored `@`-mention/`/`-command autocomplete popover for a host-owned `<textarea>`/`<input>`; never takes DOM focus itself |
1095
- | `<lr-tool-call-block>` | — (extra) | Inline collapsible tool call: status-aware "Used …" header with duration, expanding in place to arguments and result or error; used by `lr-message-parts` `tool-display="block"` |
1096
- | `<lr-tool-call-chip>` | — (extra) | Compact inline pill for one tool/function call mid-conversation; status-aware glyph/color, optional hover/focus detail tooltip |
1097
- | `<lr-tool-result-view>` + `registerToolRenderer()` | — (extra) | Dispatches a tool call's result to a host-registered renderer (by tool name or shape `matches()`), falling back to `<lr-json-viewer>` |
1098
- | `<lr-tool-result-dialog>` | — (extra) | Full tool-call detail overlay: status/duration header plus a consumer-assembled `body` slot (typically a `<lr-tab-group>` of Input/Preview/JSON/Raw) |
1099
- | `<lr-tool-approval-dialog>` | — (extra) | Human-in-the-loop approve/deny gate for one proposed tool call, with an optional inline JSON argument editor before approving |
1100
- | `<lr-confirm-bar>` | — (extra) | Inline, non-modal approve/deny block for one proposed action — the in-flow sibling of `<lr-tool-approval-dialog>` for confirmations that shouldn't hijack focus; same `lr-approve-request`/`lr-deny-request` event shapes and localization keys as the dialog |
1101
- | `<lr-tool-param-form>` | — (extra) | Renders one form control per property of a flat JSON Schema object, for ad hoc tool invocation or approval-time argument editing |
1102
- | `<lr-change-review>` | — (extra) | Experimental multi-file diff review with controlled per-hunk keep/discard decisions. |
1103
- | `<lr-agent-question>` | — (extra) | Experimental structured questions with flat MCP form elicitation and explicit response events. |
1104
- | `<lr-permission-rules>` | — (extra) | Experimental controlled permission rules with visible host-defined scopes. |
1105
- | `<lr-permission-grant>` | — (extra) | Experimental allow-once, session and deny decisions for host-owned permission requests. |
1106
- | `<lr-connector-manager>` | — (extra) | Experimental connection-state presentation and actions for MCP servers and connectors. |
1107
- | `<lr-background-runs>` | — (extra) | Experimental background-run status, open and cancellation requests. |
1108
- | `<lr-research-progress>` | — (extra) | Experimental ordered research steps with completion and source counts. |
1109
- | `<lr-budget-meter>` | — (extra) | Experimental finite budget usage, unavailable limits and over-budget presentation. |
1110
- | `<lr-tool-select-dialog>` | — (extra) | Category-grouped, filterable, searchable dialog for picking which agent tools are enabled in a conversation |
1111
- | `<lr-command-palette>` | — (extra) | Searchable command menu with groups, keyboard navigation, async-friendly registration, and `mod+k` opening |
1112
- | `<lr-widget-renderer>` | — (extra) | Renders an agent-streamed declarative JSON widget tree through an immutable allowlisted `type -> lyra tag` registry created with `createWidgetTypeRegistry()`; mapped nodes are real elements with props assigned as JS properties (never `innerHTML`), reused by key across a re-resolve |
1113
- | `<lr-json-viewer>` | — (extra) | Collapsible, copyable tree view for an arbitrary JSON value; path-keyed expand state survives a streamed in-place `data` patch |
1114
- | `<lr-citation-badge>` | — (extra) | Inline `[n]` citation marker with a hover/focus preview popover and confidence/verification-status coloring |
1115
- | `<lr-source-list>` + `<lr-source-card>` | — (extra) | Collapsible "Sources" panel for one chat message, grouping per-source cards with an excerpt + "Show more" full-text toggle |
1116
- | `<lr-conversation-item>` | — (extra) | Selectable chat-history row with inline rename; usable standalone or as `<lr-virtual-list>`'s `renderItem()` payload |
1117
- | `<lr-virtual-list>` | — (extra) | Generic windowed/virtualized list host — renders only the viewport's rows as real DOM, for a multi-thousand-row history sidebar |
1118
- | `<lr-thread-list>` | — (extra) | Conversation sidebar — grouped, searchable chat-session list with pin/archive/delete/rename affordances; data mode renders `<lr-conversation-item>` rows through an internal `<lr-virtual-list>`, slotted mode renders host-supplied items as-is |
1119
- | `<lr-app-rail>` + `<lr-app-rail-item>` + `<lr-app-rail-group>` | — (extra) | Responsive navigation rail: `full` ↔ `icon-only` ↔ `mobile` overlay, tracked off live viewport-width breakpoints; the item provides an accessible icon/label link or button, and the group gathers items under an optional collapsible heading; doubles as the app sidebar with floating/inset `frame`, mode-aware `toggle()`, opt-in `hotkey`, and `<lr-page>` composition |
1120
- | `<lr-page>` | `wa-page` | Responsive application shell with header, navigation, aside, main, footer, and mobile navigation state under one page-level layout contract |
1121
- | `<lr-navigation-menu>` + `<lr-navigation-menu-item>` | — (extra) | Disclosure-pattern site navigation bar with flyout panels |
1122
- | `<lr-menubar>` + `<lr-menubar-item>` | — (extra) | APG application menubar with roving title focus, RTL-aware traversal, nested `<lr-menu>` panels, typeahead, shortcut-detail slots, and controlled selection events |
1123
- | `<lr-responsive-panel>` | — (extra) | The same slotted content docked inline in normal layout flow (desktop) or as a fullscreen/bottom-sheet overlay (mobile) |
1124
- | `<lr-dock-panel>` | — (extra) | Single panel docked to one edge of its container, drag/keyboard-resizable and collapsible — the single-edge counterpart to `<lr-multi-split>`'s multi-sibling-panel case |
1125
- | `<lr-model-select>` | — (extra) | Provider/model picker: closed dropdown over a fixed `catalog`, or a filterable free-text combobox when there isn't one (or `allow-custom` is set) |
1126
- | `<lr-model-settings-panel>` | — (extra) | Fixed `<lr-model-select>` + `<lr-slider>` composition for picking a model and tuning its sampling temperature in one `lr-change` |
1127
- | `<lr-voice-picker>` | — (extra) | TTS voice selector over a host-supplied `catalog`, mirroring `lr-model-select`'s closed-dropdown/free-text-combobox dual mode and form-association verbatim, extended with a standalone preview button that plays a `previewUrl` or defers to the host's own TTS |
1128
- | `<lr-audio-visualizer>` | — (extra) | Presentational canvas-drawn voice-activity visualization (bars or waveform), the LiveKit-BarVisualizer counterpart — driven by a `MediaStream`, a numeric `level` (e.g. from `<lr-push-to-talk>`'s `lr-level`), or `state` alone for ambient animation |
1129
- | `<lr-push-to-talk>` | — (extra) | Mic capture button owning the full `getUserMedia` + `MediaRecorder` lifecycle (permission, recording, optional chunked streaming, teardown) — native browser APIs only, no SDK; `mode="hold"` (press-and-hold) or `mode="toggle"` |
1130
- | `<lr-transcript-feed>` | — (extra) | Live captions for an in-progress voice session — speaker-grouped entries, interim-vs-final styling with in-place `id`-keyed upgrades, and the same stick-to-bottom `follow`/`lr-follow-change` contract `lr-terminal` uses |
1131
- | `<lr-slider>` | `wa-slider` / `sl-range` | Numeric range control (e.g. an LLM "temperature" setting), form-associated, mirrors native `<input type="range">` semantics; Lyra's tooltip defaults off while `sl-range` defaults to `top`, so the codemod inserts `tooltip="top"` (set it for a manual rename) |
1132
- | `<lr-context-meter>` | — (extra) | Segmented bar/ring occupancy meter for a token budget or context window, split across labeled categories |
1133
- | `<lr-usage-badge>` | — (extra) | Compact, static resource strip for one message or run — tokens in/out, cost, latency, with a hover/focus tooltip breakdown; purely formatting, renders nothing at all when every segment is unset |
1134
- | `<lr-dialog>` + `confirm()` | `wa-dialog` / `sl-dialog` | General-purpose modal/overlay (focus-trapped, Escape/backdrop-dismissible, scroll-locking, dialog stacking); `confirm()` is a promise-based `window.confirm()` replacement built on it |
1135
- | `<lr-drawer>` | `wa-drawer` / `sl-drawer` | Modal panel anchored to the logical start/end edge or top/bottom, sharing dialog focus, dismissal, stacking, and scroll-lock behavior |
1136
- | `<lr-carousel>` | `wa-carousel` / `sl-carousel` | Accessible slotted-slide carousel with keyboard navigation, indicators, looping, and reduced-motion-aware autoplay |
1137
- | `<lr-carousel-item>` | `wa-carousel-item` / `sl-carousel-item` | Optional semantic slide wrapper for carousel content |
1138
- | `<lr-button-group>` | `wa-button-group` / `sl-button-group` | Responsive semantic grouping for related action controls |
1139
- | `<lr-control-group>` | — (extra) | Responsive layout wrapper for a row of mixed form controls and action buttons, centered rather than stretched (unlike `<lr-button-group>`) |
1140
- | `<lr-reorder-list>` + `<lr-reorder-item>` | — (extra) | Generic flat-list reorder primitive: per-row move-up/move-down buttons plus a Ctrl/Cmd+Arrow keyboard shortcut, emitting the full new order on every move |
1141
- | `<lr-image-comparer>` | `wa-comparison` / `sl-image-comparer` | Before/after slotted surfaces with a keyboard-accessible range divider |
1142
- | `<lr-pan-zoom>` | — (extra) | Bounded zoom and scrollable panning for slotted content or an image source, preserving Lyra 7's former zoomable-frame behavior |
1143
- | `<lr-zoomable-frame>` | `wa-zoomable-frame` | Sandboxed iframe preview with safe URL forwarding, discrete zoom levels, optional controls/interaction, and same-origin theme synchronization |
1144
- | `<lr-tab-group>` + `<lr-tab>` + `<lr-tab-panel>` | `wa-tab-group` / `wa-tab` / `wa-tab-panel` / `sl-tab-group` / `sl-tab` / `sl-tab-panel` | Tab strip with `placement` (logical `start`/`end` turn it vertical) and `activation="auto"`/`"manual"`; composed from the upstream `<lr-tab>`/`<lr-tab-panel>` child pairs |
1145
- | `<lr-checkbox>` | `wa-checkbox` / `sl-checkbox` | Boolean form control, `role="checkbox"` with a visual/`indeterminate` mixed state |
1146
- | `<lr-switch>` | `wa-switch` / `sl-switch` | Boolean toggle-switch form control, `role="switch"` on/off semantics |
1147
- | `<lr-menu>` | `sl-menu` | Inline semantic menu controller with real roving focus and typeahead (not a listbox); the mechanical rename stays inline, while an anchored menu button composes it inside `<lr-dropdown>` |
1148
- | `<lr-menu-item>` | `sl-menu-item` | Focusable action row owned by `<lr-menu>`, including checkbox items, nested submenus, and the canonical parent `lr-select` event |
1149
- | `<lr-menu-label>` | `sl-menu-label` | Non-interactive section heading inside `<lr-menu>`; `role="presentation"`, never a focus stop |
1150
- | `<lr-dropdown-item>` | `wa-dropdown-item` | Drop-in naming alias for `<lr-menu-item>`, including checkbox items and roving focus |
1151
- | `<lr-chip>` + `<lr-chip-group>` | — (extra) | Content-agnostic label pill (tag/filter/scope indicator) and a flex-wrap group with a "+N" overflow indicator |
1152
- | `<lr-kbd>` | — (extra) | Keyboard-shortcut chip; renders platform-appropriate glyphs (⌘ vs. Ctrl) from a single `"mod+k"`-style `keys` string |
1153
- | `<lr-visually-hidden>` | `sl-visually-hidden` | Hides content from sight while leaving it in the accessibility tree; reveals itself while focus is inside, which is what makes it usable for skip links |
1154
- | `<lr-result-card>` + `<lr-result-field>` | — (extra) | Small bordered card + label/value row shell, for giving custom `lr-tool-result-view` renderers a consistent look with no bespoke box |
1155
- | `<lr-document-preview>` | — (extra) | Format-dispatching document/attachment viewer (`text/*`/JSON inline, `image/*` inline, else a download fallback) plus a host-driven async-conversion status shell |
1156
- | `<lr-document-viewer>` | — (extra) | Dialog-hosted, format-dispatching full document viewer with a pluggable renderer registry |
1157
- | `<lr-svg-viewer>` | — (extra) | Optional-DOMPurify sanitized inline SVG document viewer |
1158
- | `<lr-image-viewer>` | — (extra) | Full pan/zoom raster-image viewer with labeled region highlights and opt-in region annotation — the landing surface for `region`-anchored citations; distinct from `<lr-svg-viewer>` (vector documents) and `<lr-image-comparer>` (before/after) |
1159
- | `<lr-highlight-layer>` | — (extra) | Presentational overlay that paints highlight rectangles (percent-of-box coordinates) over positioned content and owns their activation/flash styling and keyboard access — the shared overlay engine behind `<lr-svg-viewer>`, `<lr-image-viewer>`, and `<lr-pdf-viewer>` |
1160
- | `<lr-html-viewer>` | — (extra) | Optional-DOMPurify sanitized inline HTML document viewer |
1161
- | `<lr-xml-viewer>` | — (extra) | Collapsible, copyable `DOMParser`-based tree view for XML documents, mirroring `<lr-json-viewer>`'s UX (`expand-depth`, `copyable`, path-keyed expand state) for elements, attributes, comments, CDATA, and processing instructions; imperative `search()`/`searchNext()` like the other anchor-target viewers |
1162
- | `<lr-dataset-viewer>` | — (extra) | Optional-PapaParse accessible TSV/PSV/delimited dataset table viewer |
1163
- | `<lr-contact-viewer>` | — (extra) | vCard contact viewer with support for multiple contacts and common fields |
1164
- | `<lr-pdf-viewer>` | — (extra) | Optional-PDF.js renderer with pagination, zoom, selectable text, and virtualized page canvases |
1165
- | `<lr-page-rail>` | — (extra) | Virtualized vertical thumbnail rail for page-addressed documents with per-page highlight heat markers — **wired** mode tracks a live `PageThumbnailSource` (e.g. `lr-pdf-viewer`) or **mediated** mode binds `page-count`/`page` directly |
1166
- | `<lr-av-player>` | — (extra) | Audio/video player on a native `<audio>`/`<video>` element with a cue transcript synced to `currentTime`, `time-range` anchor/highlight support, an optional dependency-free waveform, and playback-rate control; virtualizes its transcript through `<lr-virtual-list>` |
1167
- | `<lr-video>` | `wa-video` | Native-video-backed player with standard/full/none control presets, slotted control icons, visibility-aware autoplay, captions, fullscreen, and capped thumbnail-VTT previews |
1168
- | `<lr-video-playlist>` | `wa-video-playlist` | Direct-child video playlist with full/standard/none control forwarding, previous/next/index navigation, immutable selected-video metadata, safe one-player-at-a-time switching, automatic advancement, and explicit repeat modes |
1169
- | `<lr-notebook-viewer>` | — (extra) | Read-only Jupyter notebook (nbformat 4.x) renderer composing existing components per cell — Markdown cells through `<lr-markdown>`, code cells through `<lr-code-block>`, rich outputs preferring image/HTML/JSON/plain-text in order; optional-DOMPurify sanitizes raw HTML/SVG output |
1170
- | `<lr-spreadsheet-viewer>` | — (extra) | Optional-SheetJS `.xlsx`/`.xls` workbook viewer with sheet tabs and virtualized rows |
1171
- | `<lr-csv-viewer>` | — (extra) | Optional-PapaParse CSV viewer with quoted-field support and virtualized rows |
1172
- | `<lr-geojson-viewer>` | — (extra) | Document-registry bridge that renders a fetched `.geojson`/`application/geo+json` file through `<lr-map>`'s `dataLayers` (falls back to `<lr-json-viewer>` without the optional `maplibre-gl` peer); use the canonical `<lr-geojson-viewer>` tag; the old tag was removed in 23.0.0 |
1173
- | `<lr-docx-viewer>` | — (extra) | Optional-Mammoth DOCX viewer that renders sanitized semantic HTML |
1174
- | `<lr-email-viewer>` | — (extra) | Optional-PostalMime `.eml` viewer with sanitized HTML and plain-text fallback |
1175
- | `<lr-calendar-viewer>` | — (extra) | Optional-ical.js `.ics` viewer for event summaries and times |
1176
- | `<lr-archive-viewer>` | — (extra) | Dependency-free bounded ZIP central-directory metadata viewer; lists entry names and declared sizes without inflating or previewing entry content |
1177
- | `<lr-ebook-viewer>` | — (extra) | Renders `.epub` ebooks with the optional `epubjs` peer |
1178
- | `<lr-pptx-viewer>` | — (extra) | Best-effort client-side `.pptx` viewer with a persistent fidelity notice |
1179
- | `<lr-file-icon>` | — (extra) | File-format badge showing an unlocalized format token or glyph, with a localized accessible name and MIME/filename fallback metadata |
1180
- | `<lr-media-card>` | — (extra) | Lightweight inline preview for one already-sent image/video/file attachment inside a rendered chat message |
1181
- | `<lr-avatar>` | `wa-avatar` / `sl-avatar` | Small, fixed-size identity marker — image, or an initials fallback with `lr-chip`-style tone recoloring |
1182
- | `<lr-card>` | `wa-card` / `sl-card` | Generic bordered content container (`header`/`media`/`footer`/`actions` slots) — a direct `<lr-*>` counterpart to `wa-card` |
1183
- | `<lr-stepper>` | — (extra) | Ordered multi-step wizard navigation — label + index, current/completed/locked/error state, click-to-jump, data-driven and controlled |
1184
- | `<lr-segmented>` | — (extra) | Single-select text/icon button row with the WAI-ARIA APG `radiogroup` contract built in (roving tabindex, automatic activation) |
1185
- | `<lr-swatch-picker>` | — (extra) | Single-select picker over a fixed set of color swatches — `radiogroup` semantics (roving tabindex, automatic activation), themeable selection ring |
1186
- | `<lr-diff-view>` | — (extra) | Real two-string line diff (LCS-aligned), rendered as interleaved unified-diff output |
1187
- | `<lr-commit-card>` | — (extra) | Compact commit summary — subject, author/time, diffstat, per-file changes — that links file rows out to a diff view |
1188
- | `<lr-poll-status>` | — (extra) | "Next scheduled refresh" countdown with a built-in pause control and live-region announcements |
1189
- | `<lr-code-block-core>` | — (extra) | Build-lean `lr-code-block` variant for a consumer whose `languages` map already covers every language it renders — never references shiki's full ~200-language table |
1190
- | `<lr-code-editor>` | — (extra) | Dependency-free form-associated multiline code editor with line numbers and selection APIs |
1191
- | `<lr-terminal>` | — (extra) | Read-only ANSI console for streamed agent/tool output; not a PTY — no stdin/keystroke handling, no cursor-addressed full-screen apps |
1192
- | `<lr-stack-trace>` | — (extra) | Parses common V8/JS-TS, Firefox/Safari, and Python stack traces into a leading message plus activatable frames, folding `internalPatterns`-matching frames (`node_modules/`, `node:internal`, …) behind a count-labeled toggle; falls back to verbatim text when nothing parses |
1193
- | `<lr-trace-tree>` | — (extra) | Collapsible span hierarchy for one agent/LLM trace (Langfuse/LangSmith run-tree style) — kind icon, name, status, an inline duration bar on the shared trace time scale, optional tokens/cost columns; consumes the same `LyraSpan[]` as `<lr-span-waterfall>` |
1194
- | `<lr-span-waterfall>` | — (extra) | Horizontal-timeline projection of the same `LyraSpan[]` `<lr-trace-tree>` consumes — a time axis, one row per span in start order, status-toned bars (Langfuse timeline / Temporal event-history style) |
1195
- | `<lr-test-results>` | — (extra) | Pass/fail suite summary with per-status counts, status filter toggles, and per-test rows whose failures auto-expand by default and can host rich slotted detail (a diff or code block) alongside the plain failure message |
1196
- | `<lr-env-list>` | — (extra) | Masked key/value list for environment variables and secrets, with per-row reveal and copy; masking is presentational only, not a security boundary |
1197
- | `<lr-file-tree>` | — (extra) | File-explorer preset over `<lr-tree>` + `<lr-file-icon>` — path-keyed nodes with git-status/diff-count badges, lazy directory loading, and select/open events |
1198
- | `<lr-browser-frame>` | — (extra) | Presentational "agent computer" viewport — a screenshot/frame stream (or slotted live media), read-only URL display, action-ping overlays, and take-over/stop affordances; no automation transport, take-over is an event |
1199
- | `<lr-compare-panel>` | — (extra) | Side-by-side A/B output comparison with a winner vote (LMSYS-arena / LangSmith-pairwise style) — two slotted panes, a vote bar, synchronized reading |
1200
- | `<lr-rubric-form>` | — (extra) | Configurable annotation rubric (LangSmith annotation-queue style) — score/category/comment keys with a submit-and-next flow; each key routes to an existing sibling control (`<lr-segmented>`/`<lr-slider>`, `<lr-select>`/`<lr-checkbox-group>`, `<lr-textarea>`) |
1201
- | `<lr-calendar>` | — (extra) | Responsive month calendar with event markers and agenda mode |
1202
- | `<lr-details>` + `<lr-accordion>` + `<lr-accordion-item>` | `wa-details` / `wa-accordion` / `wa-accordion-item` / `sl-details` | Native disclosure and coordinated accordion panels |
1203
- | `<lr-breadcrumb>` + `<lr-breadcrumb-item>` | `wa-breadcrumb` / `wa-breadcrumb-item` / `sl-breadcrumb` / `sl-breadcrumb-item` | Responsive navigation trail |
1204
- | `<lr-format-number>` + `<lr-format-date>` + `<lr-format-bytes>` + `<lr-relative-time>` | `wa-format-*` / `wa-relative-time` / `sl-format-*` / `sl-relative-time` | Locale-aware formatting primitives |
1205
- | `<lr-markdown-core>` | — (extra) | Build-lean `lr-markdown` variant for a consumer whose `languages` map already covers every language it renders — never references shiki's full ~200-language table |
362
+ | `<lr-file-input>` | `wa-file-input` | Drag-drop + click-to-browse file dropzone, emits raw `File[]` (no CSV/XLSX parsing — that's host-specific) |
363
+ | `<lr-markdown>` | `wa-markdown` | Sanitized Markdown → HTML (GFM tables, fenced code, links); lazy-loads the optional peers `marked` + `dompurify` |
364
+ | `<lr-page>` | `wa-page` | Responsive application shell with header, navigation, aside, main, footer, and mobile navigation state under one page-level layout contract |
365
+ | `<lr-slider>` | `wa-slider` / `sl-range` | Numeric range control (e.g. an LLM "temperature" setting), form-associated, mirrors native `<input type="range">` semantics; Lyra's tooltip defaults off while `sl-range` defaults to `top`, so the codemod inserts `tooltip="top"` (set it for a manual rename) |
366
+ | `<lr-dialog>` + `confirm()` | `wa-dialog` / `sl-dialog` | General-purpose modal/overlay (focus-trapped, Escape/backdrop-dismissible, scroll-locking, dialog stacking); `confirm()` is a promise-based `window.confirm()` replacement built on it |
367
+ | `<lr-drawer>` | `wa-drawer` / `sl-drawer` | Modal panel anchored to the logical start/end edge or top/bottom, sharing dialog focus, dismissal, stacking, and scroll-lock behavior |
368
+ | `<lr-carousel>` | `wa-carousel` / `sl-carousel` | Accessible slotted-slide carousel with keyboard navigation, indicators, looping, and reduced-motion-aware autoplay |
369
+ | `<lr-carousel-item>` | `wa-carousel-item` / `sl-carousel-item` | Optional semantic slide wrapper for carousel content |
370
+ | `<lr-button-group>` | `wa-button-group` / `sl-button-group` | Responsive semantic grouping for related action controls |
371
+ | `<lr-image-comparer>` | `wa-comparison` / `sl-image-comparer` | Before/after slotted surfaces with a keyboard-accessible range divider |
372
+ | `<lr-zoomable-frame>` | `wa-zoomable-frame` | Sandboxed iframe preview with safe URL forwarding, discrete zoom levels, optional controls/interaction, and same-origin theme synchronization |
373
+ | `<lr-tab-group>` + `<lr-tab>` + `<lr-tab-panel>` | `wa-tab-group` / `wa-tab` / `wa-tab-panel` / `sl-tab-group` / `sl-tab` / `sl-tab-panel` | Tab strip with `placement` (logical `start`/`end` turn it vertical) and `activation="auto"`/`"manual"`; composed from the upstream `<lr-tab>`/`<lr-tab-panel>` child pairs |
374
+ | `<lr-checkbox>` | `wa-checkbox` / `sl-checkbox` | Boolean form control, `role="checkbox"` with a visual/`indeterminate` mixed state |
375
+ | `<lr-switch>` | `wa-switch` / `sl-switch` | Boolean toggle-switch form control, `role="switch"` on/off semantics |
376
+ | `<lr-menu>` | `sl-menu` | Inline semantic menu controller with real roving focus and typeahead (not a listbox); the mechanical rename stays inline, while an anchored menu button composes it inside `<lr-dropdown>` |
377
+ | `<lr-menu-item>` | `sl-menu-item` | Focusable action row owned by `<lr-menu>`, including checkbox items, nested submenus, and the canonical parent `lr-select` event |
378
+ | `<lr-menu-label>` | `sl-menu-label` | Non-interactive section heading inside `<lr-menu>`; `role="presentation"`, never a focus stop |
379
+ | `<lr-dropdown-item>` | `wa-dropdown-item` | Drop-in naming alias for `<lr-menu-item>`, including checkbox items and roving focus |
380
+ | `<lr-visually-hidden>` | `sl-visually-hidden` | Hides content from sight while leaving it in the accessibility tree; reveals itself while focus is inside, which is what makes it usable for skip links |
381
+ | `<lr-video>` | `wa-video` | Native-video-backed player with standard/full/none control presets, slotted control icons, visibility-aware autoplay, captions, fullscreen, and capped thumbnail-VTT previews |
382
+ | `<lr-video-playlist>` | `wa-video-playlist` | Direct-child video playlist with full/standard/none control forwarding, previous/next/index navigation, immutable selected-video metadata, safe one-player-at-a-time switching, automatic advancement, and explicit repeat modes |
383
+ | `<lr-avatar>` | `wa-avatar` / `sl-avatar` | Small, fixed-size identity marker — image, or an initials fallback with `lr-chip`-style tone recoloring |
384
+ | `<lr-card>` | `wa-card` / `sl-card` | Generic bordered content container (`header`/`media`/`footer`/`actions` slots) — a direct `<lr-*>` counterpart to `wa-card` |
385
+ | `<lr-details>` + `<lr-accordion>` + `<lr-accordion-item>` | `wa-details` / `wa-accordion` / `wa-accordion-item` / `sl-details` | Native disclosure and coordinated accordion panels |
386
+ | `<lr-breadcrumb>` + `<lr-breadcrumb-item>` | `wa-breadcrumb` / `wa-breadcrumb-item` / `sl-breadcrumb` / `sl-breadcrumb-item` | Responsive navigation trail |
387
+ | `<lr-format-number>` + `<lr-format-date>` + `<lr-format-bytes>` + `<lr-relative-time>` | `wa-format-*` / `wa-relative-time` / `sl-format-*` / `sl-relative-time` | Locale-aware formatting primitives |
388
+
389
+ **Original components, by area:**
390
+ - **Form controls, toasts, sparkline, and flags:** `<lr-currency-picker>`, `<lr-country-picker>`, `<lr-time-zone-picker>`, `<lr-unit-picker>`, `<lr-signature-pad>`, `<lr-phone-input>`, `<lr-native-time-input>`, `<lr-token-input>`, `<lr-toggle>`, `<lr-toggle-group>`, `<lr-flag>`, `<lr-locale-picker>`.
391
+ - **Additional media and interaction primitives:** `<lr-avatar-group>`, `<lr-lightbox>`, `<lr-timeline>`, `<lr-timeline-item>`, `<lr-tour>`.
392
+ - **Dashboard atoms:** `<lr-empty>`, `<lr-stat>`, `<lr-table>`, `<lr-gauge>`, `<lr-export-button>`, `<lr-multi-split>`, `<lr-widget>`, `<lr-word-cloud>`.
393
+ - **Temporal & graph:** `<lr-time-range>`, `<lr-sequence-playback>`, `<lr-heatmap>`, `<lr-funnel>`, `<lr-sequence-strip>`, `<lr-graph>`.
394
+ - **Flow canvas:** `<lr-flow-canvas>`, `<lr-flow-node>`, `<lr-flow-minimap>`, `<lr-flow-controls>`, `<lr-node-palette>`, `<lr-flow-run-status>`.
395
+ - **Knowledge graph & RAG exploration:** `<lr-graph-legend>`, `<lr-entity-card>`, `<lr-entity-chip>`, `<lr-neighbor-list>`, `<lr-path-strip>`, `<lr-community-card>`, `<lr-chunk-inspector>`, `<lr-source-picker>`, `<lr-provenance-panel>`, `<lr-mind-map>`, `<lr-knowledge-graph-explorer>`, `<lr-graph-query-builder>`, `<lr-entity-dossier>`, `<lr-embedding-explorer>`.
396
+ - **Retrieval & grounding:** `<lr-retrieval-search>`, `<lr-retrieval-results>`, `<lr-retrieval-trace>`, `<lr-grounding-summary>`, `<lr-claim-evidence>`, `<lr-context-inspector>`, `<lr-rag-answer>`, `<lr-retrieval-compare>`, `<lr-rag-eval-dashboard>`.
397
+ - **Knowledge base & document management:** `<lr-knowledge-base>`, `<lr-ingestion-queue>`, `<lr-document-library>`, `<lr-document-compare>`, `<lr-knowledge-base-admin>`.
398
+ - **Agent runs & observability:** `<lr-agent-run>`, `<lr-agent-workspace>`, `<lr-subagent-panel>`, `<lr-agent-trace>`, `<lr-mcp-app>`, `<lr-prompt-studio>`, `<lr-json-schema-viewer>`, `<lr-tool-timeline>`, `<lr-memory-panel>`, `<lr-policy-summary>`, `<lr-approval-queue>`.
399
+ - **Dashboards & orchestration:** `<lr-dashboard-grid>`, `<lr-filter-bar>`, `<lr-condition-builder>`, `<lr-drilldown-panel>`.
400
+ - **Evaluation:** `<lr-eval-dataset>`, `<lr-eval-run>`, `<lr-eval-result>`, `<lr-agent-eval-dashboard>`.
401
+ - **Overlays:** `<lr-context-menu>`.
402
+ - **Charts:** `<lr-box-plot>`, `<lr-histogram>`, `<lr-lite-chart>`.
403
+ - **Map & file-input:** `<lr-map>`, `<lr-drop-zone>`.
404
+ - **Conversation & Agent UI:** `<lr-chat-message>`, `<lr-message-parts>`, `<lr-chat-viewport>`, `<lr-prompt-input>`, `<lr-prompt-queue>`, `<lr-selection-toolbar>`, `<lr-realtime-session>`, `<lr-message-actions>`, `<lr-message-feedback>`, `<lr-branch-picker>`, `<lr-typing-indicator>`, `<lr-streaming-text>`, `<lr-streaming-text-core>`, `<lr-thinking-panel>`, `<lr-activity-feed>`, `<lr-task-list>`, `<lr-generation-metrics>`, `<lr-stream-status>`, `<lr-checkpoint>`, `<lr-handoff-divider>`, `<lr-code-block>`, `<lr-artifact-panel>`, `<lr-live-region>`, `<lr-chat-composer>`, `<lr-suggestion-chips>`, `<lr-emoji-picker>`, `<lr-attachment-chip>`, `<lr-attachment-trigger>`, `<lr-mention-popover>`, `<lr-tool-call-block>`, `<lr-tool-call-chip>`, `<lr-tool-result-view>`, `<lr-tool-result-dialog>`, `<lr-tool-approval-dialog>`, `<lr-confirm-bar>`, `<lr-tool-param-form>`, `<lr-change-review>`, `<lr-agent-question>`, `<lr-permission-rules>`, `<lr-permission-grant>`, `<lr-connector-manager>`, `<lr-background-runs>`, `<lr-research-progress>`, `<lr-budget-meter>`, `<lr-tool-select-dialog>`, `<lr-command-palette>`, `<lr-widget-renderer>`, `<lr-json-viewer>`, `<lr-citation-badge>`, `<lr-source-list>`, `<lr-source-card>`, `<lr-conversation-item>`, `<lr-virtual-list>`, `<lr-thread-list>`, `<lr-app-rail>`, `<lr-app-rail-item>`, `<lr-app-rail-group>`, `<lr-navigation-menu>`, `<lr-navigation-menu-item>`, `<lr-menubar>`, `<lr-menubar-item>`, `<lr-responsive-panel>`, `<lr-dock-panel>`, `<lr-model-select>`, `<lr-model-settings-panel>`, `<lr-voice-picker>`, `<lr-audio-visualizer>`, `<lr-push-to-talk>`, `<lr-transcript-feed>`, `<lr-context-meter>`, `<lr-usage-badge>`, `<lr-control-group>`, `<lr-reorder-list>`, `<lr-reorder-item>`, `<lr-pan-zoom>`, `<lr-chip>`, `<lr-chip-group>`, `<lr-kbd>`, `<lr-result-card>`, `<lr-result-field>`, `<lr-document-preview>`, `<lr-document-viewer>`, `<lr-svg-viewer>`, `<lr-image-viewer>`, `<lr-highlight-layer>`, `<lr-html-viewer>`, `<lr-xml-viewer>`, `<lr-dataset-viewer>`, `<lr-contact-viewer>`, `<lr-pdf-viewer>`, `<lr-page-rail>`, `<lr-av-player>`, `<lr-notebook-viewer>`, `<lr-spreadsheet-viewer>`, `<lr-csv-viewer>`, `<lr-geojson-viewer>`, `<lr-docx-viewer>`, `<lr-email-viewer>`, `<lr-calendar-viewer>`, `<lr-archive-viewer>`, `<lr-ebook-viewer>`, `<lr-pptx-viewer>`, `<lr-file-icon>`, `<lr-media-card>`, `<lr-stepper>`, `<lr-segmented>`, `<lr-swatch-picker>`, `<lr-diff-view>`, `<lr-commit-card>`, `<lr-poll-status>`, `<lr-code-block-core>`, `<lr-code-editor>`, `<lr-terminal>`, `<lr-stack-trace>`, `<lr-trace-tree>`, `<lr-span-waterfall>`, `<lr-test-results>`, `<lr-env-list>`, `<lr-file-tree>`, `<lr-browser-frame>`, `<lr-compare-panel>`, `<lr-rubric-form>`, `<lr-calendar>`, `<lr-markdown-core>`.
1206
405
 
1207
406
  ### Citation → document recipe
1208
407
 
1209
- Wiring a `<lr-citation-badge>` click to open a `<lr-document-viewer>` at the cited passage, flashed:
1210
-
1211
- ```html
1212
- <p>
1213
- …revenue grew 12%<lr-citation-badge
1214
- index="1"
1215
- source-id="doc-1"
1216
- ></lr-citation-badge
1217
- >.
1218
- </p>
1219
- <lr-document-viewer id="dv"></lr-document-viewer>
1220
- ```
408
+ On `lr-citation-activate` from a `<lr-citation-badge>`, load the source into a `<lr-document-viewer>` and anchor it:
1221
409
 
1222
410
  ```js
1223
- const SOURCES = {
1224
- "doc-1": {
1225
- name: "annual_report.pdf",
1226
- mimeType: "application/pdf",
1227
- src: "/files/annual_report.pdf",
1228
- highlight: {
1229
- id: "cite-1",
1230
- tone: "accent",
1231
- anchor: {
1232
- kind: "text-quote",
1233
- quote: "revenue grew 12% year over year",
1234
- prefix: "Overall ",
1235
- suffix: ", driven",
1236
- page: 12,
1237
- },
1238
- },
1239
- },
1240
- };
1241
411
  document.addEventListener("lr-citation-activate", (e) => {
1242
- const s = SOURCES[e.detail.sourceId];
1243
- if (!s) return;
412
+ const s = SOURCES[e.detail.sourceId]; // { name, mimeType, src, highlight: { id, tone, anchor } }
1244
413
  const dv = document.getElementById("dv");
1245
- Object.assign(dv, { name: s.name, mimeType: s.mimeType, src: s.src });
1246
- dv.highlights = [s.highlight];
1247
- // Assigning the identical anchor again does not re-scroll, so a repeat click jumps explicitly.
1248
- if (dv.anchor === s.highlight.id) void dv.scrollToAnchor(s.highlight.id);
1249
- else dv.anchor = s.highlight.id; // scroll + activate + flash once the pdf loads
414
+ Object.assign(dv, { name: s.name, mimeType: s.mimeType, src: s.src, highlights: [s.highlight] });
415
+ if (dv.anchor === s.highlight.id) void dv.scrollToAnchor(s.highlight.id); // same anchor: jump explicitly
416
+ else dv.anchor = s.highlight.id; // scroll, activate and flash once loaded
1250
417
  dv.open = true;
1251
418
  });
1252
- document.getElementById("dv").addEventListener("lr-anchor-result", (e) => {
1253
- if (!e.detail.found) console.warn("citation passage not found");
1254
- });
1255
419
  ```
1256
420
 
1257
- The reverse direction ("select a passage → cite it") is the same wiring inverted: listen for
1258
- `lr-text-select` on the viewer and hand `detail.anchor` to the host's citation store.
421
+ An anchor is `{ kind: "text-quote", quote, prefix, suffix, page }`; `lr-anchor-result` reports `detail.found`. The reverse
422
+ direction listens for `lr-text-select` on the viewer and hands `detail.anchor` to the citation store.
1259
423
 
1260
424
  ## Known limitations
1261
425
 
1262
- A non-exhaustive list of gaps a new consumer should know about before adopting:
1263
-
1264
- - `<lr-map>` requires an explicit `mapStyle`. Omitting it produces a localized configuration
1265
- failure and initiates no implicit request to a third-party tile provider.
1266
- - `<lr-file-input>`'s paste-from-clipboard support (`paste`, on by default) depends on
1267
- `clipboardData.files`, which some browsers populate only for image data.
1268
- - The document viewers that fetch a remote resource (`<lr-archive-viewer>`, `<lr-calendar-viewer>`,
1269
- `<lr-contact-viewer>`, `<lr-csv-viewer>`, `<lr-dataset-viewer>`, `<lr-docx-viewer>`,
1270
- `<lr-document-preview>`, `<lr-ebook-viewer>`, `<lr-email-viewer>`, `<lr-html-viewer>`,
1271
- `<lr-pdf-viewer>`, `<lr-pptx-viewer>`, `<lr-spreadsheet-viewer>`, `<lr-svg-viewer>`) cap
1272
- what they will read: 25 MB per resource (enforced while streaming, so it holds even when the server
1273
- omits `Content-Length`), and — for `<lr-csv-viewer>`, `<lr-dataset-viewer>` and
1274
- `<lr-spreadsheet-viewer>`, which parse tabular data — 10,000 rows and 1,000 columns. Exceeding a
1275
- cap surfaces the localized `documentPreviewResourceTooLarge` message instead of the document. These
1276
- caps are **not** currently overridable per component. One path is exempt because it never fetches the
1277
- bytes itself: `<lr-document-preview>` caps only its text/JSON fetch, leaving the `image` path
1278
- (which hands `src` straight to an `<img>`) uncapped.
426
+ - `<lr-map>` requires an explicit `mapStyle` (no implicit tile-provider request); `<lr-file-input>` paste support
427
+ depends on `clipboardData.files`, which some browsers populate only for images.
428
+ - Viewers that fetch a remote resource cap what they read at 25 MB (enforced while streaming) and, for the tabular
429
+ viewers (`<lr-csv-viewer>`, `<lr-dataset-viewer>`, `<lr-spreadsheet-viewer>`), 10,000 rows and 1,000 columns; the
430
+ localized `documentPreviewResourceTooLarge` message replaces the document and caps are not overridable.
431
+ `<lr-document-preview>` caps only its text/JSON fetch, not the `image` path.
1279
432
 
1280
433
  ## Development
1281
434
 
1282
- Run from the repo root (this package is part of a pnpm workspace):
435
+ From the repo root (a pnpm workspace; contributor contract in `AGENTS.md`):
1283
436
 
1284
437
  ```bash
1285
- pnpm install
1286
- pnpm test # @web/test-runner + Playwright (Chromium) + axe a11y
1287
- pnpm lint # contract-policy + tsc --noEmit + public type-surface tests
1288
- pnpm build # tsc → dist/ (ESM + .d.ts)
1289
- pnpm manifest # custom-elements.json
1290
- pnpm docs # Storybook docs site, demos this package + lyra-flags together
438
+ pnpm install && pnpm build # tsc → dist/ (ESM + .d.ts)
439
+ pnpm test # @web/test-runner + Playwright (Chromium) + axe
440
+ pnpm lint # contract-policy + tsc --noEmit + type-surface tests
441
+ pnpm manifest # custom-elements.json
1291
442
  ```
1292
443
 
1293
444
  ## License