@aceshooting/lyra-ui 29.0.2 → 29.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +19 -26
  3. package/design-tokens.json +1 -1
  4. package/dist/cli/migrate-wa.mjs +2 -0
  5. package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +5 -3
  6. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +4 -3
  7. package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +1 -1
  8. package/dist/components/agent-tools/agent-trace/agent-trace.class.d.ts +21 -5
  9. package/dist/components/agent-tools/agent-trace/agent-trace.class.js +14 -11
  10. package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +1 -1
  11. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  12. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +34 -7
  13. package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +25 -11
  14. package/dist/components/agent-tools/eval-result/eval-result-source.js +1 -0
  15. package/dist/components/agent-tools/eval-result/eval-result.class.d.ts +31 -11
  16. package/dist/components/agent-tools/eval-result/eval-result.class.js +29 -15
  17. package/dist/components/agent-tools/eval-result/eval-result.styles.js +1 -1
  18. package/dist/components/agent-tools/eval-result/eval-run-result.d.ts +10 -0
  19. package/dist/components/agent-tools/span-waterfall/span-waterfall.class.d.ts +26 -5
  20. package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +16 -6
  21. package/dist/components/agent-tools/span-waterfall/span-waterfall.d.ts +1 -1
  22. package/dist/components/agent-tools/span-waterfall/span-waterfall.js +1 -1
  23. package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +1 -1
  24. package/dist/components/agent-tools/task-list/task-list.class.d.ts +29 -6
  25. package/dist/components/agent-tools/task-list/task-list.class.js +13 -7
  26. package/dist/components/agent-tools/task-list/task-list.d.ts +1 -1
  27. package/dist/components/agent-tools/task-list/task-list.js +1 -1
  28. package/dist/components/agent-tools/task-list/task-list.styles.js +1 -1
  29. package/dist/components/agent-tools/terminal/terminal.class.d.ts +9 -5
  30. package/dist/components/agent-tools/terminal/terminal.class.js +8 -8
  31. package/dist/components/agent-tools/test-results/test-results.class.d.ts +16 -4
  32. package/dist/components/agent-tools/test-results/test-results.class.js +15 -6
  33. package/dist/components/agent-tools/test-results/test-results.d.ts +1 -0
  34. package/dist/components/agent-tools/test-results/test-results.js +1 -1
  35. package/dist/components/agent-tools/test-results/test-results.styles.js +1 -1
  36. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +7 -4
  37. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +2 -1
  38. package/dist/components/agent-tools/trace-tree/span-projection.js +1 -0
  39. package/dist/components/agent-tools/trace-tree/span-shared.d.ts +29 -0
  40. package/dist/components/agent-tools/trace-tree/span-shared.js +1 -0
  41. package/dist/components/agent-tools/trace-tree/span.d.ts +5 -35
  42. package/dist/components/agent-tools/trace-tree/span.js +1 -1
  43. package/dist/components/agent-tools/trace-tree/trace-tree.class.d.ts +27 -5
  44. package/dist/components/agent-tools/trace-tree/trace-tree.class.js +19 -9
  45. package/dist/components/agent-tools/trace-tree/trace-tree.d.ts +1 -1
  46. package/dist/components/agent-tools/trace-tree/trace-tree.js +1 -1
  47. package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +1 -1
  48. package/dist/components/charts/chart/bar-chart.class.d.ts +5 -1
  49. package/dist/components/charts/chart/box-plot.class.d.ts +2 -2
  50. package/dist/components/charts/chart/box-plot.class.js +3 -3
  51. package/dist/components/charts/chart/bubble-chart.class.d.ts +5 -1
  52. package/dist/components/charts/chart/chart-prepared-data.d.ts +9 -0
  53. package/dist/components/charts/chart/chart-prepared-data.js +1 -0
  54. package/dist/components/charts/chart/chart-spatial-data.js +2 -0
  55. package/dist/components/charts/chart/chart-sync.js +1 -1
  56. package/dist/components/charts/chart/chart-table-sampling.js +1 -1
  57. package/dist/components/charts/chart/chart.class.d.ts +56 -6
  58. package/dist/components/charts/chart/chart.class.js +18 -8
  59. package/dist/components/charts/chart/chart.styles.js +1 -1
  60. package/dist/components/charts/chart/doughnut-chart.class.d.ts +5 -1
  61. package/dist/components/charts/chart/histogram-buckets.d.ts +1 -1
  62. package/dist/components/charts/chart/histogram-buckets.js +1 -1
  63. package/dist/components/charts/chart/histogram.class.d.ts +19 -4
  64. package/dist/components/charts/chart/histogram.class.js +1 -1
  65. package/dist/components/charts/chart/line-chart.class.d.ts +5 -1
  66. package/dist/components/charts/chart/lite-chart.class.d.ts +51 -11
  67. package/dist/components/charts/chart/lite-chart.class.js +33 -27
  68. package/dist/components/charts/chart/lite-chart.styles.js +1 -1
  69. package/dist/components/charts/chart/pie-chart.class.d.ts +5 -1
  70. package/dist/components/charts/chart/polar-area-chart.class.d.ts +5 -1
  71. package/dist/components/charts/chart/radar-chart.class.d.ts +5 -1
  72. package/dist/components/charts/chart/scatter-chart.class.d.ts +5 -1
  73. package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +6 -3
  74. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +6 -5
  75. package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +1 -1
  76. package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +8 -0
  77. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  78. package/dist/components/conversation/code-block/code-block-base.class.d.ts +5 -3
  79. package/dist/components/conversation/code-block/code-block-base.class.js +1 -1
  80. package/dist/components/conversation/code-block/code-block-core.class.d.ts +4 -1
  81. package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
  82. package/dist/components/conversation/code-block/code-block-shared.d.ts +6 -4
  83. package/dist/components/conversation/code-block/code-block-shared.js +3 -2
  84. package/dist/components/conversation/code-block/code-block.class.d.ts +11 -4
  85. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  86. package/dist/components/conversation/code-block/code-block.d.ts +1 -1
  87. package/dist/components/conversation/code-block/code-block.styles.js +1 -1
  88. package/dist/components/conversation/code-block/shiki-types.d.ts +2 -0
  89. package/dist/components/conversation/code-block/shiki-types.js +1 -1
  90. package/dist/components/conversation/markdown/markdown-base.class.d.ts +6 -4
  91. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  92. package/dist/components/conversation/markdown/markdown-code-header.d.ts +2 -2
  93. package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
  94. package/dist/components/conversation/markdown/markdown-core.class.d.ts +8 -3
  95. package/dist/components/conversation/markdown/markdown-progressive.js +2 -2
  96. package/dist/components/conversation/markdown/markdown-shared.d.ts +5 -10
  97. package/dist/components/conversation/markdown/markdown-shared.js +5 -5
  98. package/dist/components/conversation/markdown/markdown-streaming-tail.js +1 -1
  99. package/dist/components/conversation/markdown/markdown.class.d.ts +17 -10
  100. package/dist/components/conversation/markdown/markdown.class.js +1 -1
  101. package/dist/components/conversation/markdown/markdown.styles.js +1 -1
  102. package/dist/components/conversation/model-select/model-select.class.d.ts +4 -3
  103. package/dist/components/conversation/model-select/model-select.class.js +3 -2
  104. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  105. package/dist/components/conversation/model-settings-panel/model-settings-panel.class.d.ts +2 -1
  106. package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +2 -1
  107. package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +1 -1
  108. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -2
  109. package/dist/components/conversation/prompt-input/prompt-input.class.js +2 -1
  110. package/dist/components/conversation/prompt-input/prompt-input.styles.js +1 -1
  111. package/dist/components/conversation/prompt-queue/prompt-queue.class.d.ts +10 -2
  112. package/dist/components/conversation/prompt-queue/prompt-queue.class.js +15 -6
  113. package/dist/components/conversation/prompt-queue/prompt-queue.styles.js +1 -1
  114. package/dist/components/conversation/realtime-session/realtime-session.class.d.ts +3 -1
  115. package/dist/components/conversation/realtime-session/realtime-session.class.js +2 -1
  116. package/dist/components/conversation/realtime-session/realtime-session.styles.js +1 -1
  117. package/dist/components/conversation/streaming-text/markdown-detection.d.ts +2 -0
  118. package/dist/components/conversation/streaming-text/markdown-detection.js +4 -1
  119. package/dist/components/conversation/streaming-text/streaming-text-base.class.d.ts +6 -2
  120. package/dist/components/conversation/streaming-text/streaming-text-base.class.js +3 -3
  121. package/dist/components/conversation/streaming-text/streaming-text-core.class.js +1 -1
  122. package/dist/components/conversation/streaming-text/streaming-text.class.js +1 -0
  123. package/dist/components/conversation/thread-list/thread-list.class.d.ts +34 -4
  124. package/dist/components/conversation/thread-list/thread-list.class.js +22 -15
  125. package/dist/components/conversation/thread-list/thread-list.d.ts +1 -1
  126. package/dist/components/conversation/thread-list/thread-list.js +1 -1
  127. package/dist/components/conversation/thread-list/thread-list.styles.js +1 -1
  128. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +6 -2
  129. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +3 -2
  130. package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +1 -1
  131. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +3 -2
  132. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -2
  133. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  134. package/dist/components/data/calendar/calendar.class.d.ts +5 -2
  135. package/dist/components/data/calendar/calendar.class.js +1 -1
  136. package/dist/components/data/data-grid/data-grid-processing.js +2 -2
  137. package/dist/components/data/data-grid/data-grid.class.d.ts +22 -8
  138. package/dist/components/data/data-grid/data-grid.class.js +20 -19
  139. package/dist/components/data/data-grid/data-grid.styles.js +1 -1
  140. package/dist/components/data/document-library/document-library.class.d.ts +31 -4
  141. package/dist/components/data/document-library/document-library.class.js +25 -12
  142. package/dist/components/data/document-library/document-library.styles.js +1 -1
  143. package/dist/components/data/file-tree/file-tree.class.d.ts +30 -6
  144. package/dist/components/data/file-tree/file-tree.class.js +4 -3
  145. package/dist/components/data/file-tree/file-tree.d.ts +1 -0
  146. package/dist/components/data/file-tree/file-tree.js +1 -1
  147. package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +31 -6
  148. package/dist/components/data/flow-canvas/flow-canvas.class.js +40 -19
  149. package/dist/components/data/flow-canvas/flow-canvas.styles.js +1 -1
  150. package/dist/components/data/flow-canvas/flow-model.js +1 -1
  151. package/dist/components/data/flow-canvas/flow-source.js +1 -0
  152. package/dist/components/data/flow-canvas/flow-types.d.ts +4 -2
  153. package/dist/components/data/flow-canvas/flow-viewport-index.js +1 -0
  154. package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +9 -3
  155. package/dist/components/data/flow-minimap/flow-minimap.class.js +11 -2
  156. package/dist/components/data/flow-minimap/flow-minimap.styles.js +1 -1
  157. package/dist/components/data/funnel/funnel.class.d.ts +7 -3
  158. package/dist/components/data/funnel/funnel.class.js +2 -2
  159. package/dist/components/data/heatmap/calendar-grid.d.ts +1 -1
  160. package/dist/components/data/heatmap/calendar-grid.js +1 -1
  161. package/dist/components/data/heatmap/heatmap-grid-navigation.js +1 -1
  162. package/dist/components/data/heatmap/heatmap-limits.d.ts +1 -1
  163. package/dist/components/data/heatmap/heatmap-matrix-source-controller.js +1 -0
  164. package/dist/components/data/heatmap/heatmap-matrix-source.d.ts +5 -0
  165. package/dist/components/data/heatmap/heatmap-matrix-source.js +1 -0
  166. package/dist/components/data/heatmap/heatmap-scale.d.ts +0 -16
  167. package/dist/components/data/heatmap/heatmap-scale.js +1 -1
  168. package/dist/components/data/heatmap/heatmap.class.d.ts +40 -11
  169. package/dist/components/data/heatmap/heatmap.class.js +26 -6
  170. package/dist/components/data/heatmap/heatmap.styles.js +1 -1
  171. package/dist/components/data/pagination/pagination.class.js +1 -1
  172. package/dist/components/data/sequence-strip/sequence-strip-item.d.ts +17 -0
  173. package/dist/components/data/sequence-strip/sequence-strip-source-controller.js +1 -0
  174. package/dist/components/data/sequence-strip/sequence-strip-source.d.ts +5 -0
  175. package/dist/components/data/sequence-strip/sequence-strip-source.js +1 -0
  176. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +24 -19
  177. package/dist/components/data/sequence-strip/sequence-strip.class.js +23 -4
  178. package/dist/components/data/sequence-strip/sequence-strip.styles.js +1 -1
  179. package/dist/components/data/sparkline/sparkline.class.d.ts +17 -4
  180. package/dist/components/data/sparkline/sparkline.class.js +3 -3
  181. package/dist/components/data/sparkline/sparkline.styles.js +1 -1
  182. package/dist/components/data/table/table.class.d.ts +14 -10
  183. package/dist/components/data/table/table.class.js +17 -16
  184. package/dist/components/data/timeline/timeline.class.d.ts +5 -2
  185. package/dist/components/data/timeline/timeline.class.js +1 -1
  186. package/dist/components/data/tree/tree-item.class.js +1 -1
  187. package/dist/components/data/tree/tree-owner-controller.js +1 -1
  188. package/dist/components/data/tree/tree.class.d.ts +28 -6
  189. package/dist/components/data/tree/tree.class.js +3 -3
  190. package/dist/components/data/tree/tree.d.ts +1 -0
  191. package/dist/components/data/tree/tree.js +1 -1
  192. package/dist/components/data/word-cloud/word-cloud.class.d.ts +17 -7
  193. package/dist/components/data/word-cloud/word-cloud.class.js +6 -4
  194. package/dist/components/data/word-cloud/word-cloud.styles.js +1 -1
  195. package/dist/components/forms/catalog-picker-base.d.ts +1 -1
  196. package/dist/components/forms/catalog-picker-base.js +6 -6
  197. package/dist/components/forms/catalog-picker-base.styles.js +1 -1
  198. package/dist/components/forms/combobox/combobox.class.d.ts +7 -3
  199. package/dist/components/forms/combobox/combobox.class.js +1 -1
  200. package/dist/components/forms/combobox/option.class.d.ts +4 -2
  201. package/dist/components/forms/combobox/option.class.js +2 -2
  202. package/dist/components/forms/country-picker/country-picker.class.d.ts +3 -1
  203. package/dist/components/forms/country-picker/country-picker.class.js +1 -1
  204. package/dist/components/forms/currency-picker/currency-picker.class.d.ts +2 -0
  205. package/dist/components/forms/currency-picker/currency-picker.class.js +1 -1
  206. package/dist/components/forms/currency-picker/currency-presentation.js +1 -1
  207. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +6 -2
  208. package/dist/components/forms/emoji-picker/emoji-picker.class.js +3 -2
  209. package/dist/components/forms/emoji-picker/emoji-picker.styles.js +1 -1
  210. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +8 -2
  211. package/dist/components/forms/locale-picker/locale-picker.class.js +5 -4
  212. package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -1
  213. package/dist/components/forms/select/select.class.d.ts +11 -3
  214. package/dist/components/forms/select/select.class.js +4 -4
  215. package/dist/components/forms/time-zone-picker/time-zone-picker.class.d.ts +2 -0
  216. package/dist/components/forms/time-zone-picker/time-zone-picker.class.js +1 -1
  217. package/dist/components/forms/token-input/token-input.class.d.ts +6 -1
  218. package/dist/components/forms/token-input/token-input.class.js +15 -13
  219. package/dist/components/forms/unit-picker/unit-picker.class.d.ts +2 -0
  220. package/dist/components/forms/unit-picker/unit-picker.class.js +1 -1
  221. package/dist/components/layout/app-rail/app-rail.class.d.ts +1 -1
  222. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  223. package/dist/components/layout/command-palette/command-palette.class.d.ts +5 -2
  224. package/dist/components/layout/command-palette/command-palette.class.js +2 -1
  225. package/dist/components/layout/command-palette/command-palette.styles.js +1 -1
  226. package/dist/components/layout/menu/menu-item.class.d.ts +2 -2
  227. package/dist/components/layout/menu/menu-item.class.js +2 -2
  228. package/dist/components/layout/menu/menu.class.d.ts +1 -1
  229. package/dist/components/layout/menu/menu.class.js +1 -1
  230. package/dist/components/layout/menubar/menubar.class.d.ts +1 -1
  231. package/dist/components/layout/menubar/menubar.class.js +1 -1
  232. package/dist/components/layout/reorder-list/reorder-item.class.d.ts +2 -2
  233. package/dist/components/layout/reorder-list/reorder-item.class.js +2 -2
  234. package/dist/components/layout/reorder-list/reorder-list.class.d.ts +1 -1
  235. package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
  236. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +13 -9
  237. package/dist/components/layout/virtual-list/virtual-list.class.js +21 -17
  238. package/dist/components/media/av-player/av-cue-index.js +1 -0
  239. package/dist/components/media/av-player/av-cue-source.d.ts +13 -0
  240. package/dist/components/media/av-player/av-cue-source.js +1 -0
  241. package/dist/components/media/av-player/av-metadata.d.ts +2 -2
  242. package/dist/components/media/av-player/av-metadata.js +1 -1
  243. package/dist/components/media/av-player/av-player-cue-source-controller.js +1 -0
  244. package/dist/components/media/av-player/av-player.class.d.ts +34 -12
  245. package/dist/components/media/av-player/av-player.class.js +15 -10
  246. package/dist/components/media/flag/flag.class.js +1 -1
  247. package/dist/components/media/flag/language-map.js +1 -1
  248. package/dist/components/media/lightbox/lightbox-source.js +1 -0
  249. package/dist/components/media/lightbox/lightbox-types.d.ts +15 -0
  250. package/dist/components/media/lightbox/lightbox.class.d.ts +22 -21
  251. package/dist/components/media/lightbox/lightbox.class.js +6 -4
  252. package/dist/components/media/lightbox/lightbox.styles.js +1 -1
  253. package/dist/components/media/map/map-geojson-diff.d.ts +6 -6
  254. package/dist/components/media/map/map-geojson-diff.js +1 -1
  255. package/dist/components/media/map/map-loader.d.ts +5 -1
  256. package/dist/components/media/map/map.class.d.ts +24 -6
  257. package/dist/components/media/map/map.class.js +2 -2
  258. package/dist/components/media/map/map.styles.js +1 -1
  259. package/dist/components/media/video-playlist/video-playlist.class.d.ts +2 -1
  260. package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
  261. package/dist/components/overlays/chip/chip.class.d.ts +1 -1
  262. package/dist/components/overlays/chip/chip.class.js +1 -1
  263. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +30 -8
  264. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +22 -8
  265. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +1 -1
  266. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  267. package/dist/components/retrieval/graph/graph-source-composition.js +1 -0
  268. package/dist/components/retrieval/graph/graph-source-controller.js +1 -0
  269. package/dist/components/retrieval/graph/graph-spatial-controller.js +2 -2
  270. package/dist/components/retrieval/graph/graph-spatial-model.js +1 -0
  271. package/dist/components/retrieval/graph/graph-spatial.js +1 -1
  272. package/dist/components/retrieval/graph/graph.class.d.ts +31 -6
  273. package/dist/components/retrieval/graph/graph.class.js +26 -5
  274. package/dist/components/retrieval/graph/graph.d.ts +1 -1
  275. package/dist/components/retrieval/graph/graph.js +1 -1
  276. package/dist/components/retrieval/graph/graph.styles.js +1 -1
  277. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +33 -4
  278. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +27 -17
  279. package/dist/components/retrieval/ingestion-queue/ingestion-queue.d.ts +1 -1
  280. package/dist/components/retrieval/ingestion-queue/ingestion-queue.js +1 -1
  281. package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +1 -1
  282. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +27 -4
  283. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +29 -14
  284. package/dist/components/retrieval/knowledge-base/knowledge-base.styles.js +1 -1
  285. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +17 -3
  286. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +15 -10
  287. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +1 -1
  288. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +24 -5
  289. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +17 -10
  290. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.d.ts +1 -1
  291. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.js +1 -1
  292. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +1 -1
  293. package/dist/components/retrieval/mind-map/mind-map-layout.js +1 -1
  294. package/dist/components/retrieval/mind-map/mind-map-model.js +1 -0
  295. package/dist/components/retrieval/mind-map/mind-map.class.d.ts +27 -4
  296. package/dist/components/retrieval/mind-map/mind-map.class.js +11 -7
  297. package/dist/components/retrieval/mind-map/mind-map.d.ts +1 -0
  298. package/dist/components/retrieval/mind-map/mind-map.js +1 -1
  299. package/dist/components/retrieval/mind-map/mind-map.styles.js +1 -1
  300. package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +24 -2
  301. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +17 -3
  302. package/dist/components/retrieval/neighbor-list/neighbor-list.d.ts +1 -1
  303. package/dist/components/retrieval/neighbor-list/neighbor-list.js +1 -1
  304. package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +1 -1
  305. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +8 -4
  306. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +11 -7
  307. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.styles.js +1 -1
  308. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +12 -6
  309. package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +30 -17
  310. package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
  311. package/dist/components/retrieval/retrieval-results/retrieval-results-model.js +1 -0
  312. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +46 -5
  313. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +31 -9
  314. package/dist/components/retrieval/retrieval-results/retrieval-results.d.ts +1 -1
  315. package/dist/components/retrieval/retrieval-results/retrieval-results.js +1 -1
  316. package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +1 -1
  317. package/dist/components/utility/diff-view/diff-view.class.d.ts +16 -8
  318. package/dist/components/utility/diff-view/diff-view.class.js +3 -2
  319. package/dist/components/utility/diff-view/diff-view.styles.js +1 -1
  320. package/dist/components/utility/json-viewer/json-viewer.class.d.ts +31 -3
  321. package/dist/components/utility/json-viewer/json-viewer.class.js +13 -4
  322. package/dist/components/utility/json-viewer/json-viewer.d.ts +1 -0
  323. package/dist/components/utility/json-viewer/json-viewer.js +1 -1
  324. package/dist/components/utility/json-viewer/json-viewer.styles.js +1 -1
  325. package/dist/components/utility/mention-popover/mention-popover.class.d.ts +6 -4
  326. package/dist/components/utility/mention-popover/mention-popover.class.js +6 -5
  327. package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +34 -7
  328. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +9 -7
  329. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +28 -4
  330. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +12 -11
  331. package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +3 -1
  332. package/dist/components/viewers/geojson-view/geojson-viewer.class.js +17 -16
  333. package/dist/components/viewers/geojson-view/geojson-viewer.d.ts +1 -1
  334. package/dist/components/viewers/geojson-view/geojson-viewer.js +1 -1
  335. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +31 -5
  336. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +11 -8
  337. package/dist/components/viewers/table-viewer-shared.js +19 -3
  338. package/dist/components/viewers/viewer-search-limits.js +1 -1
  339. package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +35 -3
  340. package/dist/components/viewers/xml-viewer/xml-viewer.class.js +20 -5
  341. package/dist/components/viewers/xml-viewer/xml-viewer.d.ts +1 -1
  342. package/dist/components/viewers/xml-viewer/xml-viewer.js +1 -1
  343. package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +1 -1
  344. package/dist/countries.js +1 -1
  345. package/dist/data-sources.d.ts +34 -0
  346. package/dist/data-sources.js +1 -0
  347. package/dist/events.d.ts +51 -7
  348. package/dist/framework-types.d.ts +1 -1
  349. package/dist/internal/accessibility-visibility.d.ts +4 -2
  350. package/dist/internal/accessibility-visibility.js +1 -1
  351. package/dist/internal/accessible-text-controller.js +1 -1
  352. package/dist/internal/anchor-target.js +2 -2
  353. package/dist/internal/catalog-picker.d.ts +1 -7
  354. package/dist/internal/catalog-picker.js +1 -1
  355. package/dist/internal/collection-snapshot.js +1 -1
  356. package/dist/internal/default-strings/agent-tools.generated.js +1 -1
  357. package/dist/internal/default-strings/charts.generated.js +1 -1
  358. package/dist/internal/default-strings/conversation.generated.js +1 -1
  359. package/dist/internal/default-strings/data.generated.js +1 -1
  360. package/dist/internal/default-strings/forms.generated.js +1 -1
  361. package/dist/internal/default-strings/layout.generated.js +1 -1
  362. package/dist/internal/default-strings/media.generated.js +1 -1
  363. package/dist/internal/default-strings/retrieval.generated.js +1 -1
  364. package/dist/internal/default-strings/shared.generated.js +1 -1
  365. package/dist/internal/default-strings/utility.generated.js +1 -1
  366. package/dist/internal/delimited-data.js +1 -1
  367. package/dist/internal/fixed-containing-block.js +1 -1
  368. package/dist/internal/flow-scene-envelope.js +1 -0
  369. package/dist/internal/graph-scene-controller.js +1 -0
  370. package/dist/internal/hierarchy-source-controller.js +1 -0
  371. package/dist/internal/hierarchy-source-view.js +29 -0
  372. package/dist/internal/hierarchy-source-view.styles.js +1 -0
  373. package/dist/internal/inherited-attribute-hub.d.ts +6 -0
  374. package/dist/internal/inherited-attribute-hub.js +1 -1
  375. package/dist/internal/intl-cache.js +1 -1
  376. package/dist/internal/keyed-index.js +1 -0
  377. package/dist/internal/localization-types.d.ts +1 -1
  378. package/dist/internal/localization.js +2 -2
  379. package/dist/internal/lyra-element.d.ts +2 -2
  380. package/dist/internal/lyra-element.js +3 -2
  381. package/dist/internal/native-modal-context.js +1 -1
  382. package/dist/internal/option-selection.js +1 -1
  383. package/dist/internal/package-metadata.js +1 -1
  384. package/dist/internal/positioner.js +1 -1
  385. package/dist/internal/resource-loader.d.ts +2 -0
  386. package/dist/internal/resource-loader.js +1 -1
  387. package/dist/internal/scoped-definitions.generated.js +1 -1
  388. package/dist/internal/search-haystack.js +1 -0
  389. package/dist/internal/selection-catalog.d.ts +5 -0
  390. package/dist/internal/selection-catalog.js +1 -1
  391. package/dist/internal/shiki-language-sources.js +1 -0
  392. package/dist/internal/source-page-controller.js +1 -0
  393. package/dist/internal/source-page-scope.js +1 -0
  394. package/dist/internal/source-request-controller.js +1 -0
  395. package/dist/internal/source-window-controller.js +1 -0
  396. package/dist/internal/spatial-source-controller.js +1 -0
  397. package/dist/internal/text-quote.d.ts +2 -6
  398. package/dist/internal/text-quote.js +1 -1
  399. package/dist/internal/theme-watcher.js +1 -1
  400. package/dist/internal/virtual-list-composition.js +1 -0
  401. package/dist/lyra.d.ts +1 -1
  402. package/dist/lyra.js +1 -1
  403. package/dist/testing/interaction-drivers.js +1 -1
  404. package/dist/testing/lyra-tag-event-map.js +1 -1
  405. package/dist/units.js +1 -1
  406. package/dist/utilities/data-preparation.d.ts +56 -0
  407. package/dist/utilities/data-preparation.js +1 -0
  408. package/dist/utilities/data-spatial.d.ts +26 -0
  409. package/dist/utilities/data-spatial.js +1 -0
  410. package/dist/utilities/index.d.ts +1 -1
  411. package/dist/utilities/index.js +1 -1
  412. package/llms/components/lr-activity-feed.md +7 -2
  413. package/llms/components/lr-agent-trace.md +49 -9
  414. package/llms/components/lr-agent-workspace.md +15 -8
  415. package/llms/components/lr-av-player.md +180 -10
  416. package/llms/components/lr-bar-chart.md +1 -1
  417. package/llms/components/lr-box-plot.md +8 -0
  418. package/llms/components/lr-bubble-chart.md +1 -1
  419. package/llms/components/lr-calendar.md +26 -3
  420. package/llms/components/lr-chart.md +310 -23
  421. package/llms/components/lr-chat-viewport.md +6 -0
  422. package/llms/components/lr-code-block-core.md +12 -7
  423. package/llms/components/lr-code-block.md +23 -9
  424. package/llms/components/lr-combobox.md +27 -15
  425. package/llms/components/lr-command-palette.md +16 -3
  426. package/llms/components/lr-country-picker.md +23 -6
  427. package/llms/components/lr-csv-viewer.md +95 -12
  428. package/llms/components/lr-currency-picker.md +23 -3
  429. package/llms/components/lr-data-grid.md +24 -6
  430. package/llms/components/lr-dataset-viewer.md +92 -11
  431. package/llms/components/lr-dialog.md +1 -1
  432. package/llms/components/lr-diff-view.md +19 -6
  433. package/llms/components/lr-document-library.md +60 -5
  434. package/llms/components/lr-doughnut-chart.md +1 -1
  435. package/llms/components/lr-embedding-explorer.md +89 -9
  436. package/llms/components/lr-emoji-picker.md +7 -2
  437. package/llms/components/lr-eval-dataset.md +56 -7
  438. package/llms/components/lr-eval-result.md +89 -4
  439. package/llms/components/lr-export-button.md +1 -1
  440. package/llms/components/lr-file-tree.md +60 -6
  441. package/llms/components/lr-flag.md +5 -2
  442. package/llms/components/lr-flow-canvas.md +152 -14
  443. package/llms/components/lr-flow-minimap.md +32 -4
  444. package/llms/components/lr-funnel.md +14 -0
  445. package/llms/components/lr-geojson-viewer.md +27 -10
  446. package/llms/components/lr-graph.md +43 -7
  447. package/llms/components/lr-heatmap.md +161 -5
  448. package/llms/components/lr-histogram.md +55 -9
  449. package/llms/components/lr-ingestion-queue.md +54 -3
  450. package/llms/components/lr-json-viewer.md +87 -7
  451. package/llms/components/lr-knowledge-base-admin.md +60 -4
  452. package/llms/components/lr-knowledge-base.md +121 -9
  453. package/llms/components/lr-knowledge-graph-explorer.md +106 -11
  454. package/llms/components/lr-lightbox.md +42 -6
  455. package/llms/components/lr-line-chart.md +28 -5
  456. package/llms/components/lr-lite-chart.md +96 -31
  457. package/llms/components/lr-locale-picker.md +6 -4
  458. package/llms/components/lr-map.md +67 -8
  459. package/llms/components/lr-markdown-core.md +10 -5
  460. package/llms/components/lr-markdown.md +23 -6
  461. package/llms/components/lr-mention-popover.md +11 -6
  462. package/llms/components/lr-mind-map.md +91 -10
  463. package/llms/components/lr-model-select.md +8 -4
  464. package/llms/components/lr-model-settings-panel.md +10 -2
  465. package/llms/components/lr-navigation-menu.md +1 -1
  466. package/llms/components/lr-neighbor-list.md +69 -2
  467. package/llms/components/lr-pie-chart.md +1 -1
  468. package/llms/components/lr-polar-area-chart.md +1 -1
  469. package/llms/components/lr-prompt-input.md +9 -2
  470. package/llms/components/lr-prompt-queue.md +11 -3
  471. package/llms/components/lr-radar-chart.md +1 -1
  472. package/llms/components/lr-rag-eval-dashboard.md +9 -2
  473. package/llms/components/lr-realtime-session.md +6 -2
  474. package/llms/components/lr-reorder-list.md +4 -0
  475. package/llms/components/lr-retrieval-compare.md +9 -4
  476. package/llms/components/lr-retrieval-results.md +104 -6
  477. package/llms/components/lr-scatter-chart.md +1 -1
  478. package/llms/components/lr-select.md +20 -10
  479. package/llms/components/lr-sequence-strip.md +92 -2
  480. package/llms/components/lr-span-waterfall.md +78 -8
  481. package/llms/components/lr-sparkline.md +42 -11
  482. package/llms/components/lr-spreadsheet-viewer.md +109 -14
  483. package/llms/components/lr-streaming-text-core.md +4 -2
  484. package/llms/components/lr-streaming-text.md +5 -1
  485. package/llms/components/lr-table.md +96 -115
  486. package/llms/components/lr-task-list.md +93 -9
  487. package/llms/components/lr-terminal.md +9 -0
  488. package/llms/components/lr-test-results.md +77 -3
  489. package/llms/components/lr-thread-list.md +86 -1
  490. package/llms/components/lr-time-zone-picker.md +8 -3
  491. package/llms/components/lr-timeline.md +5 -0
  492. package/llms/components/lr-token-input.md +7 -2
  493. package/llms/components/lr-tool-timeline.md +13 -4
  494. package/llms/components/lr-trace-tree.md +96 -10
  495. package/llms/components/lr-transcript-feed.md +9 -2
  496. package/llms/components/lr-tree.md +87 -15
  497. package/llms/components/lr-unit-picker.md +8 -3
  498. package/llms/components/lr-video-playlist.md +2 -0
  499. package/llms/components/lr-virtual-list.md +17 -8
  500. package/llms/components/lr-voice-picker.md +8 -3
  501. package/llms/components/lr-word-cloud.md +128 -12
  502. package/llms/components/lr-xml-viewer.md +106 -9
  503. package/llms/index.md +1 -1
  504. package/llms/peers.md +1 -1
  505. package/llms/shared/events-and-types.md +725 -264
  506. package/llms/shared/forms-and-accessibility.md +3 -17
  507. package/llms/shared/imports-and-registration.md +3 -17
  508. package/llms/shared/localization-and-rtl.md +0 -2
  509. package/llms/shared/styles-and-tokens.md +27 -36
  510. package/llms/shared/testing-and-utilities.md +4 -5
  511. package/llms/shared.md +770 -349
  512. package/llms.txt +1 -2
  513. package/locales.json +139 -139
  514. package/package.json +13 -4
  515. package/registrations.json +1 -1
  516. package/skills/compose-lyra-interfaces/SKILL.md +6 -8
  517. package/skills/lyra-ui/SKILL.md +20 -51
  518. package/skills/lyra-ui/commands/review.md +16 -33
  519. package/skills/lyra-ui/commands/update.md +6 -5
  520. package/skills/lyra-ui/online-api.md +15 -0
  521. package/skills/lyra-ui/reporting.md +2 -1
@@ -9,7 +9,7 @@
9
9
  - **Release history** [CHANGELOG.md](../../CHANGELOG.md)
10
10
  - **Deprecations** none
11
11
  - **Optional peers** none
12
- - **Themeable via** 12 parts, 8 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
+ - **Themeable via** 14 parts, 8 custom properties — see this component's own `@csspart`/`@cssprop` list below
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
14
14
 
15
15
  ---
@@ -41,6 +41,10 @@ remain nonnegative; placement budgets, font-size limits, and the omitted-word po
41
41
 
42
42
  **Properties:**
43
43
 
44
+ - `preparedWords: LyraPreparedWordCloud | null = null` (property only) — whole-catalog weighted
45
+ summary, taking precedence over `words`. Invalid non-null input shows a localized `error`;
46
+ setting it to `null` restores the current legacy word snapshot without changing the `words`
47
+ getter. See the prepared-catalog contract below.
44
48
  - `words: readonly WordCloudWord[] = []` (attribute: false) — readonly `{ text: string, weight:
45
49
  number, color?: string, group?: string }` snapshots; malformed/hostile records are skipped while
46
50
  later valid records survive. `weight` is normalized once to a finite nonnegative value used by
@@ -84,13 +88,70 @@ number, color?: string, group?: string }` snapshots; malformed/hostile records a
84
88
  derived legend below the cloud; the color key is an accessible list and does not change word
85
89
  activation or palette selection.
86
90
 
91
+ **Prepared weighted catalogs:** `LyraPreparedWordCloud` supplies `revision`, `counts`
92
+ (`sourceCount`, `validCount`, `invalidCount`), `totalWeight`, `retainedWeight`, and readonly
93
+ `words: readonly LyraWeightedWord[]`. Each `LyraWeightedWord` has readonly `id: string`,
94
+ `text: string` and `weight: number`. IDs represent already aggregated catalog entries and must be
95
+ globally unique; distinct IDs may have the same display text. This input is a weighted catalog,
96
+ not a sequence of raw tokens whose frequencies the component computes.
97
+
98
+ The component admits at most 150 selected words, with nonblank IDs/text limited to 256 UTF-16
99
+ units each and selected text totaling at most 16,384 units. Labels and IDs remain exact; they are
100
+ not clipped or admitted through the legacy prefix budget. Retained IDs must be unique. Counts
101
+ must be safe nonnegative integers conserving the complete source (`validCount + invalidCount =
102
+ sourceCount`); selected length cannot exceed `validCount`, and a nonempty valid catalog requires
103
+ a selection. Weights and their totals must be finite and nonnegative; `retainedWeight` must equal
104
+ the sum of selected weights in descriptor order. The full total must include each selected
105
+ weight; when every valid word is selected, full and retained totals must agree within bounded
106
+ floating-point accumulation error. Invalid positions do not enlarge that complete-sum allowance.
107
+ Sparse/accessor-backed descriptor arrays, malformed metadata, oversized selections and
108
+ inconsistent totals fail visibly instead of falling back to `words` or silently dropping values.
109
+ The bounded descriptor cannot independently certify global top-K membership or full-source totals.
110
+
111
+ `part="summary"` reports selected versus full valid word counts, invalid count, and retained versus
112
+ full weight through `wordCloudPreparedSummary`. It remains visible for empty/all-invalid input.
113
+ If placement cannot fit a selected word, the separate existing `limit` reports rendered versus
114
+ selected words; it does not relabel top-K omission or rejected source labels as a layout failure.
115
+ Invalid input uses `part="error"` and `wordCloudPreparedUnavailable`. Numeric values use the
116
+ effective locale; `.strings` overrides apply to visible messages and announcements. Mount,
117
+ reconnect and adoption are quiet; later changed summaries announce politely and invalid-input
118
+ transitions announce assertively through the shared light-DOM sink.
119
+
120
+ The component captures a bounded immutable snapshot of host-authored metadata. After changing a
121
+ mutable descriptor or its revision, assign `preparedWords` again (the same identity is accepted)
122
+ or call unnamed `requestUpdate()`; a coalesced named update does not suppress that refresh.
123
+ Presentation updates reuse the snapshot. Source storage and preparation remain host-owned; the
124
+ component neither reads an original catalog nor starts or cancels its preparation. Replacing or
125
+ clearing `preparedWords` therefore does not abort a helper call already running in application
126
+ code. Theme, pointer and keyboard interactions use the retained words without a full-source pass.
127
+
128
+ `prepareLyraWordCloud(input, options?)` from the granular utilities module performs one complete
129
+ chunked catalog scan and retains the global heaviest `maxWords` (default/max 150, minimum 1), with
130
+ equal weights favoring earlier original positions. `input` is a `LyraIndexedInput<LyraWeightedWord>`
131
+ with stable `revision`, safe `count`, and `read(start, count, { signal })` returning exactly that
132
+ range. Preparation reads at most 8,192 positions per chunk (default 2,048), yields between chunks
133
+ and checks revision/cancellation. All valid source weight contributes to `totalWeight`, including
134
+ omitted candidates. Blank/over-256-unit text or IDs and negative/nonfinite weights count as invalid
135
+ observations; the helper does not shorten them. Chosen labels exceeding 16,384 units reject the
136
+ call: lower `maxWords` rather than clipping selected words. Heavy late entries compete before any
137
+ text budget is applied. With bounded memory the helper detects duplicates only among retained
138
+ candidates; global ID uniqueness remains the caller's input contract. Exact frequency aggregation
139
+ of arbitrary raw tokens belongs to the caller's keyed catalog. The result is immutable.
140
+
87
141
  **Methods:** `refreshTheme(): void` — forces a relayout so the `--lr-font` custom property is
88
142
  re-read from computed style (font-family affects the canvas text measurement layout depends on).
89
143
  The component's theme watcher calls it automatically when inherited theme typography changes; the
90
144
  method remains available for a host theme system that needs an explicit synchronous refresh.
91
145
 
92
- **Events:** `lr-word-activate` (frozen readonly `detail: { text, weight, group }`; fires from the
93
- single SVG pointer surface, or Enter/Space on the current word)
146
+ **Events:** `lr-word-activate` fires from the single SVG pointer surface or Enter/Space on the
147
+ current word. Its frozen readonly detail is typed `{ text: string; weight: number; group?: string;
148
+ id?: string; revision?: LyraSourceRevision }`. With `preparedWords` active, `id` and `revision`
149
+ identify the exact original catalog entry and committed summary; duplicate text never substitutes
150
+ for identity. Actions on the old visible layout retain its revision while a replacement is
151
+ scheduled, and replaced/detached layout objects cannot activate new data. With `preparedWords =
152
+ null`, the existing `{ text, weight, group }` payload is unchanged and has no `id`/`revision` fields.
153
+ `LyraPreparedWordCloud` and `LyraWeightedWord` are type-only exports from the component entry and
154
+ from `@aceshooting/lyra-ui/utilities/data-preparation.js`.
94
155
 
95
156
  **Slots:** none.
96
157
 
@@ -98,8 +159,9 @@ single SVG pointer surface, or Enter/Space on the current word)
98
159
  cursor's word), `live-region` (visually-hidden, `aria-hidden` mirror of the latest announcement;
99
160
  the actual announcement uses the shared light-DOM polite sink),
100
161
  `legend`/`legend-item`/`legend-swatch`/`legend-label` (the optional static color key), and `empty`
101
- (the no-data placeholder), `limit` (localized rendered/received word count), and `legend-limit`
102
- (localized rendered/received explicit-legend count)
162
+ (the no-data placeholder), `limit` (localized rendered/received word count; rendered/selected in
163
+ prepared mode), `legend-limit` (localized rendered/received explicit-legend count),
164
+ `summary` (prepared full/retained counts and weights), and `error` (invalid prepared-input message)
103
165
 
104
166
  **Themeable custom properties:** `--lr-word-cloud-color-1`, `--lr-word-cloud-color-2`,
105
167
  `--lr-word-cloud-color-3`, `--lr-word-cloud-color-4`, `--lr-word-cloud-color-5`,
@@ -126,21 +188,75 @@ through the normal cascade), plus shared tokens (`--lr-font`,
126
188
  </script>
127
189
  ```
128
190
 
191
+ A complete unique weighted catalog can be prepared without constructing a million-element array.
192
+ The helper's one-time full pass is application work; rendering and interaction consume its bounded
193
+ result. Import the helper directly and cancel obsolete preparation before assigning a result:
194
+
195
+ ```ts
196
+ import '@aceshooting/lyra-ui/components/lr-word-cloud.js';
197
+ import {
198
+ prepareLyraWordCloud,
199
+ type LyraIndexedInput,
200
+ type LyraWeightedWord,
201
+ } from '@aceshooting/lyra-ui/utilities/data-preparation.js';
202
+
203
+ const cloud = document.querySelector('lr-word-cloud')!;
204
+ let pending: AbortController | undefined;
205
+
206
+ async function showCatalog(input: LyraIndexedInput<LyraWeightedWord>): Promise<void> {
207
+ pending?.abort();
208
+ const request = new AbortController();
209
+ pending = request;
210
+ try {
211
+ const prepared = await prepareLyraWordCloud(input, {
212
+ signal: request.signal, maxWords: 150, batchSize: 8192,
213
+ });
214
+ if (pending === request && !request.signal.aborted) cloud.preparedWords = prepared;
215
+ } catch (error) {
216
+ if (!request.signal.aborted) throw error;
217
+ }
218
+ }
219
+
220
+ await showCatalog({
221
+ revision: 'catalog-1',
222
+ count: 1_000_000,
223
+ read(start, count) {
224
+ return Array.from({ length: count }, (_, offset) => {
225
+ const index = start + offset;
226
+ return {
227
+ id: `topic-${index}`,
228
+ text: `Topic ${index}`,
229
+ weight: index === 999_999 ? 1_000_000 : 1,
230
+ };
231
+ });
232
+ },
233
+ });
234
+ // On view disposal, call pending?.abort().
235
+ ```
236
+
237
+ The final heavy entry participates in selection, and equal-weight entries retain original-position
238
+ ties. A changed catalog/revision needs a new preparation pass; ordinary view interactions do not.
239
+
129
240
  The focusable SVG is the single semantic owner: `role="application"` plus an accessible name. An
130
241
  authored host `aria-label` is forwarded to that SVG and wins by attribute presence; when it is
131
242
  absent, the SVG uses an auto-computed localized name such as `"Word cloud of 12 words"` / `"Word
132
243
  cloud of 1 word"`, counting only words actually rendered. An authored host `role` remains on the
133
244
  host and does not replace the SVG's application role. When records are omitted, the SVG references
134
- the visible localized `[part="limit"]` rendered/received summary.
245
+ the visible localized `[part="limit"]` rendered/received summary. In prepared mode it also
246
+ references the full-catalog `summary`; host-authored description references remain composed with
247
+ these internal descriptions.
135
248
 
136
249
  **Known gotchas:**
137
250
 
138
251
  - capped at 150 words (`MAX_WORDS` in `word-cloud-layout.ts`, mirroring `lr-sparkline`'s
139
252
  `MAX_POINTS` input-sample guard) — a one-pass bounded top-K scan retains the **heaviest** 150 and
140
- counts the rest without cloning/sorting/spreading the full input. A pathological input can exhaust the
141
- spiral search's radius bound and get dropped the same way; blank/whitespace-only `text` is dropped
142
- during boundary normalization. Omitted diagnostics retain at most 32 records, while a separate
143
- complete count drives one deduplicated `console.warn` and the rendered disclosure — nothing throws.
253
+ counts the rest without cloning/sorting/spreading the full admitted legacy input. The legacy
254
+ `words` boundary still inspects at most 10,000 positions and applies its text budgets; use
255
+ `preparedWords` for a complete-catalog summary. A pathological input can exhaust the spiral
256
+ search's radius bound and be omitted from either route. Legacy blank text is dropped during
257
+ boundary normalization; malformed prepared input instead shows `error`. Omitted placement
258
+ diagnostics retain at most 32 records, while a separate complete count drives one deduplicated
259
+ `console.warn` and the rendered disclosure.
144
260
  - each word's spiral search tests at most 4,096 candidate positions. Together with the 150-word and
145
261
  512px font-size caps, this bounds placement work even for dense or adversarial layouts; a word
146
262
  that exhausts the search budget is reported through the same skipped-word path.
@@ -148,8 +264,8 @@ the visible localized `[part="limit"]` rendered/received summary.
148
264
  `--lr-font-weight-semibold` and `--lr-font` token values. A consumer-only `::part(word)` font
149
265
  override can still desynchronize measurement from the painted glyph.
150
266
  - rotation (`word-rotation="mixed"`) is genuinely random per layout (`Math.random()`, not seeded), so
151
- which words render rotated changes on every re-layout (any `words`/`minFontSize`/`maxFontSize`/
152
- `scale`/`wordRotation` change) — don't rely on rotation being stable across renders.
267
+ which words render rotated changes on every re-layout (a prepared-input refresh or an effective
268
+ `words`/`minFontSize`/`maxFontSize`/`scale`/`wordRotation` change) — don't rely on rotation being stable across renders.
153
269
  - only one word is ever in the page's tab sequence at a time (the roving cursor on `[part="svg"]`) —
154
270
  there's no way to Tab directly to the Nth word; arrow-key/Home/End your way there, or click it.
155
271
 
@@ -9,7 +9,7 @@
9
9
  - **Release history** [CHANGELOG.md](../../CHANGELOG.md)
10
10
  - **Deprecations** none
11
11
  - **Optional peers** none
12
- - **Themeable via** 20 parts, 12 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
+ - **Themeable via** 27 parts, 12 custom properties — see this component's own `@csspart`/`@cssprop` list below
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
14
14
 
15
15
  ---
@@ -36,11 +36,84 @@ that deferred too can instead import
36
36
  same registration lazily and exports `XML_VIEWER_TAG` (`'lr-xml-viewer'`) as a stable reference to
37
37
  the tag it eventually registers.
38
38
 
39
+ **Complete provider hierarchy:** `treeSource: XmlViewerTreeSource | undefined`
40
+ (attribute: false) takes display precedence over `xml`/`src`. Invalid defined providers fail visibly;
41
+ setting `undefined` restores the current inline XML or normal URL loading. The readonly `source`
42
+ property remains the legacy text-source snapshot described below; it is not the provider input.
43
+ Assigning `xml` still performs synchronous bounded parsing while provider display is active.
44
+ Provider records themselves never enter `DOMParser` or `XMLSerializer`, and provider mode skips
45
+ `src` fetching. Legacy `maxNodes`, `maxRows` and `expandDepth` do not cap the provider's logical
46
+ domain or control its expansion. `maxHeight` constrains the source scroller, whose unset ceiling
47
+ is `var(--lr-size-20rem)`.
48
+
49
+ ```ts
50
+ import type { XmlViewerTreeSource } from
51
+ "@aceshooting/lyra-ui/components/viewers/xml-viewer/xml-viewer.class.js";
52
+ import type { LyraHierarchySource, LyraHierarchyQuery, LyraInspectionNode } from
53
+ "@aceshooting/lyra-ui/data-sources.js";
54
+ ```
55
+
56
+ `XmlViewerTreeSource` is `LyraHierarchySource<LyraInspectionNode, LyraHierarchyQuery>`.
57
+ Its immutable `revision` is a nonempty string or finite number. `project(request)` receives
58
+ revision, locale, abort signal, previous opaque `state` (initially `null`),
59
+ `{ search: searchQuery, hiddenKinds: [] }` and reset/toggle/reveal actions. It returns
60
+ `{ state, total, rows, focusIndex? }`, where `total` includes collapsed nodes and `rows.count`
61
+ is the complete visible preorder; both are safe nonnegative integers with `rows.count <= total`.
62
+ The nonempty state token is at most 65,536 UTF-16 units. Rows support indexed
63
+ `itemAt`/`keyAt`/`indexOfKey`, or asynchronous `read` with required `indexOfKey`; no key lookup scans
64
+ the logical hierarchy. Each row supplies unique `key`, `parentKey`, one-based `level`/`position`,
65
+ exact sibling `setSize`, `childCount`, `expanded`, `selected`, and optional
66
+ `disabled`/`selectionState`.
67
+
68
+ The closed own-data inspection value has string `name`, string `path` equal to the row key,
69
+ optional string `value`, and `kind` from `'object' | 'array' | 'scalar' | 'element' | 'attribute' |
70
+ 'text' | 'comment' | 'processing-instruction'`. Keys are nonblank and keys/display fields are each
71
+ at most 65,536 UTF-16 units. Current/staged normalized rows, the retained focused row and projection
72
+ state share 2,000,000 payload units; oversized rows/pages fail without clipping. At most 301 rows
73
+ mount; four 100-row pages plus at most one focused row are cached. Range reads request at most
74
+ 100 rows with two physical reads pending; projection calls serialize with only the latest intent
75
+ queued. The provider owns global key uniqueness, immutable snapshots and expansion. Logical ARIA
76
+ depth/sibling counts remain exact while visual indentation clamps at 32 levels.
77
+
78
+ `revealSourceKey(key: string): Promise<boolean>` opens provider ancestors and focuses the exact
79
+ returned key, resolving `false` for absent, invalid, failed, obsolete or unset-source requests.
80
+ Compact arbitrary keys avoid depth-sized ancestor paths. For shared `node-path` anchors, providers
81
+ must instead expose canonical `JSON.stringify(path)` keys: at most 256 total segments, consisting
82
+ of safe nonnegative numeric segments and an optional terminal nonempty `'@attribute'`, with total key length
83
+ at most 65,536 units. Attribute anchors resolve their exact attribute key. Source highlights paint
84
+ only exact admitted matching keys and preserve bounded highlight/action admission; no global
85
+ highlight scan or fallback to a parent is performed.
86
+
87
+ Source `search(query)` delegates to optional global `search({ revision, locale, signal, query,
88
+ limit })`, returning `{ hits: [{ key }], total, exhaustive }`. It counts nodes across the complete
89
+ hierarchy, retains at most 10,000 hits/2,000,000 key units, and accepts queries up to 4,096 units.
90
+ `total` is a known global total or `null`; `exhaustive` means every global hit was returned.
91
+ XML search reveals its first returned hit; next/previous reveal retained keys without repeating
92
+ global search. `lr-search-change` retains `{ query, matchCount, matchCountExact, activeIndex }`;
93
+ unavailable, partial, invalid and over-budget results never claim exactness. `search-status`
94
+ discloses unavailable/partial results.
95
+
96
+ Copy controls require `copyable` and callable provider `copy`. Requests include revision, locale,
97
+ signal, `maxBytes`, and `key`/`scope`: document uses `null`/`'document'`, containers `'subtree'`,
98
+ leaves `'node'`. Complete text must fit normalized `maxBytes` in UTF-8; loaded rows are never
99
+ serialized as a substitute. Provider/byte rejection gives localized feedback without clipboard
100
+ error events; current platform writes retain `lr-copy`, `lr-copy-error` and clipboard-only
101
+ `lr-error` outcomes. Source failures also use the guarded `lr-render-error` contract.
102
+
103
+ Reassign even the same source, or call a keyless `requestUpdate()`, after revision/state changes.
104
+ Locale, reconnect and adoption refresh provider authority; replacement, query changes and lifecycle
105
+ cancellation revoke older search, reveal, highlight and copy effects. Named presentation updates
106
+ reuse admitted data. Ignored aborts retain physical request permits until settlement. Source-only
107
+ parts are `source-list`, `source-row`, `source-toggle`, `source-label`, `source-status`,
108
+ `source-error` and `search-status`; `tag`, `attribute`, `attribute-name`, `attribute-value`, `text`,
109
+ `comment`, `pi`, `copy-button` and `highlight-action` remain aliases on source content where applicable.
110
+ The following parsed-document/search limits describe the legacy `xml`/`src` route.
111
+
39
112
  **Properties:** `src: string = ''` — URL to fetch and parse; ignored once `xml` is set. `xml?:
40
113
  string` (property only) — raw XML text to parse and render; wins over `src`, and setting it parses
41
114
  synchronously. Assigning `undefined` relinquishes inline authority and immediately resumes an
42
115
  already configured `src`, or exposes idle when none exists. `source: LyraXmlViewerSource` is the
43
- readonly discriminated effective authority (`{ kind: 'inline', value }`, `{ kind: 'url', url }`, or
116
+ readonly discriminated legacy text authority (`{ kind: 'inline', value }`, `{ kind: 'url', url }`, or
44
117
  `null`). `name: string = ''` — accessible label. `expandDepth?: number` (attribute
45
118
  `expand-depth`) — elements at or beyond this nesting depth (root = 0) start collapsed, so only the
46
119
  levels above it start expanded; unset, nothing auto-collapses. `copyable:
@@ -51,7 +124,23 @@ contract) — each numeric path segment is the 0-based index within the parent's
51
124
  and an optional trailing string segment `'@attrName'` addresses one existing, nonempty-named
52
125
  attribute. Invalid CSS `max-height` values, declaration breaks, and `url()` are ignored.
53
126
 
54
- **Methods:** `search(query)` resolves the match count via a case-insensitive substring search over
127
+ Configurable limits:
128
+
129
+ - `maxNodes: number = 50000` (attribute `max-nodes`) — parsed document nodes;
130
+ effective range 1–500,000.
131
+ - `maxRows: number = 5000` (attribute `max-rows`) — displayed tree rows;
132
+ effective range 1–50,000.
133
+ - `maxBytes: number = 26214400` (attribute `max-bytes`) — UTF-8 XML input bytes, default 25 MiB;
134
+ effective range 1–262,144,000 bytes (250 MiB).
135
+
136
+ Limits truncate finite fractions and clamp to their effective ranges; non-finite inputs use the
137
+ stated defaults. Inline and fetched XML pass byte/node/depth preflight before `DOMParser`, then
138
+ parsed-document node/depth validation. The depth ceiling remains 256. Changing `maxNodes` or
139
+ `maxBytes` revalidates the effective source; changing `maxRows` changes the rendered window.
140
+ An inline `xml` assignment parses synchronously. Fetched XML yields between preflight and parsing,
141
+ with source-generation checks after the yield; the parse itself remains synchronous.
142
+
143
+ **Legacy search methods:** `search(query)` resolves the match count via a case-insensitive substring search over
55
144
  every element's tag name, attribute names/values, and own text (empty/whitespace query behaves like
56
145
  `clearSearch()`), accepting at most 4,096 query code units and scanning at most 4,000,000 code
57
146
  units while retaining 10,000 matches; `searchNext()`/`searchPrevious()` advance/step back through matches (wrapping);
@@ -107,6 +196,12 @@ only while the viewer and its composed ancestors are exposed to the accessibilit
107
196
  The spinner always includes visible localized loading text alongside its decorative ring; the text
108
197
  remains understandable without CSS or animation and the ring stops under reduced motion.
109
198
 
199
+ With `treeSource` set, additional CSS parts are `source-list` (bounded provider virtual viewport), `source-row` (flat
200
+ logical tree item and focus owner), `source-label` (row content), `source-toggle` (expand/collapse
201
+ or retry button), `source-status` (loading, full-source count or empty text), and `source-error`
202
+ (localized projection or row failure).
203
+ `search-status` discloses unavailable or partial global provider search.
204
+
110
205
  **Themeable custom properties:** `--lr-xml-viewer-max-height` (default `none`) — maximum block size
111
206
  of the scrollable body; also settable via the `max-height` property.
112
207
  `--lr-xml-viewer-active-match-color` (default `var(--lr-color-warning)`) — the solid outline on the
@@ -154,9 +249,11 @@ viewer.copyable = true;
154
249
  await viewer.search(query);
155
250
  ```
156
251
 
157
- Node cap: 50,000 — exceeding it renders the localized `xmlViewerTooManyNodes` error instead of the
158
- tree. A collapsed element's child count includes element, text, comment, CDATA, and processing-
159
- instruction children rather than only element descendants. Expanded rendering stops after 5,000
160
- rows and shows a localized `limit` notice; collapse state and the parsed document remain intact.
161
- Search still counts the complete parsed document, while a `node-path` outside the rendered window
162
- reports `found: false` until it can be rendered.
252
+ By default, the node cap is 50,000 and expanded rendering stops after 5,000 rows; configure these
253
+ with `maxNodes` and `maxRows`. Node/byte/depth rejection displays a localized error and emits
254
+ `lr-render-error` instead of rendering the tree. A collapsed element's child count includes element,
255
+ text, comment, CDATA, and processing-instruction children rather than only element descendants.
256
+ Reaching the rendered-row budget shows the existing localized `limit` notice; collapse state and
257
+ the parsed document remain intact. Search still visits the complete admitted document within its
258
+ separate search budgets, while a `node-path` outside the rendered window reports `found: false`
259
+ until it can be rendered.
package/llms/index.md CHANGED
@@ -250,7 +250,7 @@ Optional peers: `llms/peers.md`. Safe `wa-*`/`sl-*` migration: `llms/migration.m
250
250
  - `lr-highlight-layer` · lr-highlight-layer.js · `stable` since `4.0.0` — a presentational overlay that paints highlight rectangles (percent-of-box coordinates) over positioned content and owns their activation,...
251
251
  - `lr-page-rail` · lr-page-rail.js · `stable` since `4.0.0` — a virtualized vertical thumbnail rail for page-addressed documents, with per-page highlight heat markers.
252
252
  - `lr-notebook-viewer` · lr-notebook-viewer.js · `stable` since `4.0.0` — read-only Jupyter notebook (nbformat 4.x) renderer, composing existing components per cell.
253
- - `lr-xml-viewer` · lr-xml-viewer.js · `stable` since `4.0.0` — collapsible, copyable, `DOMParser`-based tree view for XML documents, mirroring `lr-json-viewer`'s UX (`expand-depth`, `copyable`, struct...
253
+ - `lr-xml-viewer` · lr-xml-viewer.js · `stable` since `4.0.0` — Property-only treeSource takes display precedence over xml/src without parsing provider records.
254
254
  - `lr-document-compare` · lr-document-compare.js · `stable` since `4.1.0` — side-by-side or inline comparison of two document versions, composed entirely from two existing primitives rather than reimplementing eit...
255
255
  - `lr-geojson-viewer` · lr-geojson-viewer.js · `stable` since `9.0.0` — document-registry bridge rendering a fetched GeoJSON file through `<lr-map>`'s `dataLayers`.
256
256
 
package/llms/peers.md CHANGED
@@ -39,7 +39,7 @@ for the page.
39
39
  |---|---|---|
40
40
  | `@aceshooting/lyra-flags` | `^2.3.0` | _(loaded by a shared internal module)_ |
41
41
  | `@aceshooting/lyra-map` | `^1.1.0` | `lr-geojson-viewer`, `lr-map` |
42
- | `@aceshooting/lyra-translations` | `^29.0.2` | _(not referenced by any component)_ |
42
+ | `@aceshooting/lyra-translations` | `^29.1.0` | _(not referenced by any component)_ |
43
43
  | `@aiden0z/pptx-renderer` | `^1.3.0` | `lr-pptx-viewer` |
44
44
  | `@sgratzl/chartjs-chart-boxplot` | `^4.0.0` | `lr-box-plot` |
45
45
  | `chart.js` | `^4.0.1` | `lr-bar-chart`, `lr-box-plot`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-scatter-chart` |