@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
@@ -113,96 +113,565 @@ transcript-feed is the current scroll-follow state; `map.legendOpen` is disclosu
113
113
  component's own steppers; its presence-based `true` default accepts the literal HTML value
114
114
  `"false"`. These true-default properties remain intentional and accept that literal value.
115
115
 
116
+ ### Large collection sources
117
+
118
+ Use `@aceshooting/lyra-ui/data-sources.js` for the type-only collection protocols, and
119
+ `@aceshooting/lyra-ui/utilities/data-preparation.js` for staged numeric preparation. Import the
120
+ specific component's registration separately and check its documented source property before
121
+ binding a provider. A protocol declaration does not imply that every component accepts it.
122
+ Legacy arrays, rolling windows, file previews and display caps retain their documented limits;
123
+ a capped prefix does not provide access to a million-record source.
124
+
125
+ The host owns each source and its indexes, storage and query work. Keep its revision, counts,
126
+ records and returned projections immutable for a request snapshot. Revisions are nonempty strings
127
+ or finite numbers; counts, offsets and record orders are nonnegative safe integers. Nonempty keys
128
+ identify logical records, and `order` is canonical source order independent of query sorting.
129
+ A provider can generate or fetch a requested window without allocating an array for the entire collection.
130
+ Arbitrary work inside a host callback remains the host's responsibility.
131
+
132
+ For components that document these protocols, replace the source, reassign the same source, or
133
+ call keyless `requestUpdate()` to refresh. A changed revision becomes observable at that explicit
134
+ update; it is not polled. Source replacement, rebind, refresh, disconnect and document adoption
135
+ invalidate pending work and source-derived caches. Providers should settle promptly on
136
+ `context.signal` cancellation. Cancellation is advisory: a late reply must still belong to the
137
+ current source identity, revision and request before it can update the view. Page/query changes
138
+ invalidate their dependent work; unrelated presentation updates do not imply a full-source read.
139
+
140
+ Choose the access shape that matches the host's data:
141
+
142
+ - `LyraRangeSource<T>` reads exactly the requested in-bounds range. `LyraIndexedView<T>` also
143
+ accepts the existing `LyraVirtualListIndexedSource<T>` for direct indexed access. Key lookup is
144
+ optional for a generic range; `LyraHierarchyView<T>` requires direct key lookup so navigation
145
+ does not scan the collection.
146
+ - `LyraPageSource<T, Q, Summary>` supplies globally queried pages, stable-key lookup and absolute
147
+ query positions. `page` is zero-based; `locate` returns a zero-based index or `null`.
148
+ `total` describes every query match, not loaded rows; group ranges describe the globally
149
+ ordered query and facets describe the full source catalogue. A declared `Summary` is required
150
+ in each result, while the default `undefined` summary can be omitted.
151
+ - `LyraTabularSource` has separate column metadata and zero-based body rows, using either
152
+ `cellAt` or bounded rectangular `readCells`. `LyraWorkbookSource` names sheets separately.
153
+ Search results use a bounded hit list, `total: null` when the global total is unknown, and
154
+ `exhaustive: true` only when every matching hit is included. A header hit has `row: -1`.
155
+ - `LyraHierarchySource<T, Q, Summary>` returns an immutable visible-preorder projection with
156
+ an opaque `state` token. `rows.count` is the visible logical count; `total` also includes
157
+ collapsed nodes. Row `level`/`position` are one-based and `setSize` is the exact sibling
158
+ count. Optional search and copy capabilities address the full requested source/scope, rather
159
+ than only mounted rows.
160
+ - `LyraGraphSource<N, E>` separates full record paging from bounded scenes and optional overview
161
+ bins. Global node/edge totals, scene coverage and displayed counts have distinct meanings;
162
+ a neighborhood or aggregate scene is not a complete graph layout.
163
+
164
+ Numeric helpers inspect all source positions in bounded chunks. Preparation has total O(n)
165
+ source-read work per pass, plus reducer work, even though each chunk and the retained result are
166
+ bounded. The default `batchSize` is 2,048 and its maximum is 8,192; it must be a positive safe
167
+ integer, with larger safe integers clamped. Helpers yield between chunks and check aborts around
168
+ asynchronous work and before publication. Each read must return an actual array of exactly the
169
+ requested size. Sparse holes are invalid positions; explicit own `undefined` may be classified by
170
+ a generic category selector. Observed count/revision changes, malformed replies, callback errors
171
+ and finite-sum overflow reject preparation. Payload immutability and replayability remain host
172
+ obligations. Results and nested result containers are frozen; source storage is not copied
173
+ wholesale or frozen. Scratch storage is bounded by a chunk and the output budgets. Series handles
174
+ retain their readers for exact lookup; other helper results contain no reader handles. Output
175
+ budget options require positive safe integers (series points require at least four), with larger
176
+ safe integers clamped to their documented maxima.
177
+
178
+ `counts.sourceCount` always counts original positions, `validCount` accepted observations, and
179
+ `invalidCount` the remainder. Displayed samples, categories, bins, words and waveform buckets
180
+ are separate summary sizes. An empty/all-invalid numeric domain is `null`. Preparation limits
181
+ do not change a component's own accepted input budget; check the component's documented route
182
+ before passing a prepared result.
183
+
184
+ - `prepareLyraSeriesData` scans each series once. Finite x/y pairs contribute full domains and
185
+ counts; null/nonfinite/missing coordinates are invalid and remain gaps. The overview retains
186
+ first/last valid points and index-partition y extrema in source order, preserving original x
187
+ and `sourceIndex`. `breakBefore` is true on the first sample and whenever invalid positions
188
+ occur between retained samples, including omitted segments. This overview can omit valid
189
+ segments and is not an exact reconstruction. `maxPointsPerSeries` defaults to 500, requires
190
+ at least 4 and clamps to 1,000. Requested capacity across all series must fit 9,000 samples;
191
+ excess series/capacity rejects. Inputs must share a revision and have unique IDs; the series
192
+ list must be nonempty, although a reader may have zero positions. IDs are nonblank and at
193
+ most 256 UTF-16 code units, labels at most 1,024, with 65,536 combined metadata units.
194
+ The result intentionally retains readers and their backing storage: `getPoint` reads exactly
195
+ one original position, returning a valid pair or `null`, and rejects unknown/out-of-range
196
+ references. The helper does not implement optional `queryRange`; hosts may provide indexed
197
+ refinement for `[startIndex, endIndex)` separately.
198
+ - `prepareLyraCategoryData` scans once into at most 1,000 declared unique categories and one
199
+ result series, using the same ID/label/metadata limits as series preparation. `count` ignores
200
+ `valueOf` entirely; `sum` and `mean` require an own synchronous numeric `valueOf` callback.
201
+ Null/non-string/empty/over-256-unit category IDs and nonfinite amounts are invalid.
202
+ Unknown remaining IDs map to `otherCategoryId` only when that ID names a declared category;
203
+ otherwise they are invalid.
204
+ Other is a real aggregate with its own `categoryCounts`, not a sampled remainder. Means divide
205
+ each category's accepted sum by its accepted count; empty categories have value zero. Selectors
206
+ return scalar values and their computation cost is host-owned. The helper does not build an
207
+ unbounded category-frequency map or accept `host-defined` as a reducer option.
208
+ - `prepareLyraHistogram` uses one pass for explicit finite strictly increasing edges, or two
209
+ replayable passes for automatic `binCount` edges. There are at most 1,000 bins. Bins are
210
+ half-open except the inclusive final upper edge, and `sum(binCounts) + belowCount + aboveCount`
211
+ equals `validCount`. Every finite observation contributes, including explicit-edge outliers;
212
+ the observed `domain` includes those outliers. Constant data gets a finite nonzero display
213
+ interval while its observed domain stays unchanged. Empty/all-invalid automatic results have
214
+ no edges or bins; explicit edges remain with zero bin counts. Unrepresentable distinct edges
215
+ reject.
216
+ - `prepareLyraWordCloud` selects exact global top-K from an already aggregated weighted catalog,
217
+ with `maxWords` default/maximum 150. Ties favor earlier source positions. IDs must be globally
218
+ unique by host contract; bounded duplicate detection covers only retained candidates. Blank
219
+ or over-256-unit IDs/text and negative/nonfinite weights are invalid. `totalWeight` includes
220
+ every valid observation; `retainedWeight` covers only selected words. Chosen text exceeding
221
+ 16,384 UTF-16 units rejects; lower `maxWords` to reduce the result. The bounded heap adds
222
+ O(n log K) reducer work; this helper does not tokenize or compute arbitrary word frequencies.
223
+ - `prepareLyraWaveform` scans once into positional interval maxima, with `maxBuckets`
224
+ default/maximum 65,536. Finite amplitudes clamp to [0, 1]; invalid positions keep their time
225
+ slots and contribute no peak. Each `[startIndex, endIndex)` interval covers original positions.
226
+ `sampleCount` equals `sourceCount`. `firstAmplitude`/`lastAmplitude` refer to original
227
+ endpoints, with `null` for invalid/absent endpoints. `duration` must be finite, nonnegative
228
+ and describe the summarized media interval.
229
+
230
+ For example, a replayable reader can generate a million logical values while allocating only
231
+ the requested chunk. The resulting histogram is a full-source distribution with 100 displayed
232
+ bins; it is not a million-element array.
233
+
234
+ ```ts
235
+ import { prepareLyraHistogram } from '@aceshooting/lyra-ui/utilities/data-preparation.js';
236
+ import type { LyraIndexedInput } from '@aceshooting/lyra-ui/utilities/data-preparation.js';
237
+
238
+ const input: LyraIndexedInput<number> = {
239
+ revision: 'measurements-1',
240
+ count: 1_000_000,
241
+ read(start, count, { signal }) {
242
+ signal.throwIfAborted();
243
+ return Array.from({ length: count }, (_, offset) => (start + offset) % 100);
244
+ },
245
+ };
246
+ const abort = new AbortController();
247
+ const distribution = await prepareLyraHistogram(input, {
248
+ binCount: 100,
249
+ signal: abort.signal,
250
+ });
251
+ console.log(distribution.counts.sourceCount, distribution.binCounts.length);
252
+ ```
253
+
116
254
  ## Exported TypeScript contracts
117
255
 
118
256
  These named interfaces and helper signatures are available to typed integrations. They are grouped by capability so the component sections above can stay focused.
119
257
 
258
+ - **`data-sources-contracts`** — Public collection contracts from `data-sources.js`. These are type-only protocols; each component documents which source inputs it accepts. Inherited fields are repeated to show the complete effective request/row shape.
259
+
260
+ `LyraSourceRevision = string | number`
261
+ `LyraSourceContext {
262
+ readonly revision: LyraSourceRevision;
263
+ readonly locale: string;
264
+ readonly signal: AbortSignal;
265
+ }`
266
+ `LyraSourceRecord<T> {
267
+ readonly key: string;
268
+ readonly value: T;
269
+ readonly order: number;
270
+ }`
271
+ `LyraSourceSearchRequest extends LyraSourceContext {
272
+ readonly revision: LyraSourceRevision;
273
+ readonly locale: string;
274
+ readonly signal: AbortSignal;
275
+ readonly query: string;
276
+ readonly limit: number;
277
+ }`
278
+ `LyraSourceSearchResult<Hit> {
279
+ readonly hits: readonly Hit[];
280
+ readonly total: number | null;
281
+ readonly exhaustive: boolean;
282
+ }`
283
+ `LyraSourceRangeRequest extends LyraSourceContext {
284
+ readonly revision: LyraSourceRevision;
285
+ readonly locale: string;
286
+ readonly signal: AbortSignal;
287
+ readonly offset: number;
288
+ readonly limit: number;
289
+ }`
290
+ `LyraRangeSource<T> {
291
+ readonly count: number;
292
+ read(request: LyraSourceRangeRequest): Promise<readonly T[]>;
293
+ indexOfKey?(key: string, context: LyraSourceContext): Promise<number | null>;
294
+ }`
295
+ `LyraIndexedView<T> = LyraVirtualListIndexedSource<T> | LyraRangeSource<T>`
296
+ `LyraHierarchyView<T> =
297
+ | (LyraVirtualListIndexedSource<T> & {
298
+ keyAt(index: number): string;
299
+ indexOfKey(key: string | number): number;
300
+ })
301
+ | (LyraRangeSource<T> & {
302
+ indexOfKey(key: string, context: LyraSourceContext): Promise<number | null>;
303
+ })`
304
+ `LyraSourceSummary<S> = [S] extends [undefined]
305
+ ? { readonly summary?: undefined }
306
+ : { readonly summary: S }`
307
+ `LyraSourceCell = string | number | boolean | null | undefined`
308
+ `LyraTabularColumn { readonly key: string; readonly label: string; }`
309
+ `LyraTabularHit {
310
+ readonly row: number;
311
+ readonly column: number;
312
+ }`
313
+ `LyraTabularReadRequest extends LyraSourceContext {
314
+ readonly revision: LyraSourceRevision;
315
+ readonly locale: string;
316
+ readonly signal: AbortSignal;
317
+ readonly row: number;
318
+ readonly rowCount: number;
319
+ readonly column: number;
320
+ readonly columnCount: number;
321
+ }`
322
+ `LyraTabularSourceBase {
323
+ readonly revision: LyraSourceRevision;
324
+ readonly rowCount: number;
325
+ readonly columnCount: number;
326
+ columnAt(index: number): LyraTabularColumn;
327
+ rowKeyAt?(index: number): string;
328
+ indexOfRowKey?(key: string): number;
329
+ search?(request: LyraSourceSearchRequest): Promise<LyraSourceSearchResult<LyraTabularHit>>;
330
+ }`
331
+ `LyraTabularSource = LyraTabularSourceBase & (
332
+ | { cellAt(row: number, column: number): LyraSourceCell; readCells?: never }
333
+ | { cellAt?: never; readCells(request: LyraTabularReadRequest): Promise<readonly (readonly LyraSourceCell[])[]> }
334
+ )`
335
+ `LyraWorkbookHit extends LyraTabularHit {
336
+ readonly row: number;
337
+ readonly column: number;
338
+ readonly sheetKey: string;
339
+ }`
340
+ `LyraWorkbookSource {
341
+ readonly revision: LyraSourceRevision;
342
+ readonly sheets: readonly {
343
+ readonly key: string;
344
+ readonly name: string;
345
+ readonly data: LyraTabularSource;
346
+ }[];
347
+ search?(request: LyraSourceSearchRequest): Promise<LyraSourceSearchResult<LyraWorkbookHit>>;
348
+ }`
349
+ `LyraSourceFacet {
350
+ readonly values: readonly { readonly key: string; readonly label: string; readonly count?: number }[];
351
+ readonly total: number;
352
+ readonly unavailableSelected: readonly string[];
353
+ }`
354
+ `LyraSourceGroup {
355
+ readonly key: string;
356
+ readonly label: string;
357
+ readonly startIndex: number;
358
+ readonly itemCount: number;
359
+ }`
360
+ `LyraPageRequest<Q> extends LyraSourceContext {
361
+ readonly revision: LyraSourceRevision;
362
+ readonly locale: string;
363
+ readonly signal: AbortSignal;
364
+ readonly page: number;
365
+ readonly pageSize: number;
366
+ readonly query: Q;
367
+ }`
368
+ `LyraPageResult<T, Summary = undefined> = {
369
+ readonly rows: readonly LyraSourceRecord<T>[];
370
+ readonly total: number;
371
+ readonly groups?: readonly LyraSourceGroup[];
372
+ readonly tags?: LyraSourceFacet;
373
+ } & LyraSourceSummary<Summary>`
374
+ `LyraPageSource<T, Q, Summary = undefined> {
375
+ readonly revision: LyraSourceRevision;
376
+ query(request: LyraPageRequest<Q>): Promise<LyraPageResult<T, Summary>>;
377
+ lookup(keys: readonly string[], context: LyraSourceContext): Promise<readonly LyraSourceRecord<T>[]>;
378
+ locate(key: string, query: Q, context: LyraSourceContext): Promise<number | null>;
379
+ }`
380
+ `LyraHierarchyRow<T> {
381
+ readonly key: string;
382
+ readonly value: T;
383
+ readonly parentKey: string | null;
384
+ readonly level: number;
385
+ readonly position: number;
386
+ readonly setSize: number;
387
+ readonly childCount: number;
388
+ readonly expanded: boolean;
389
+ readonly selected: boolean;
390
+ readonly disabled?: boolean;
391
+ readonly selectionState?: 'none' | 'partial' | 'all';
392
+ }`
393
+ `LyraHierarchyAction =
394
+ | { readonly type: 'reset' }
395
+ | { readonly type: 'toggle'; readonly key: string; readonly expanded: boolean }
396
+ | { readonly type: 'reveal'; readonly key: string }
397
+ | { readonly type: 'select'; readonly key: string; readonly selected: boolean; readonly scope: 'item' | 'subtree' }`
398
+ `LyraHierarchyRequest<Q> extends LyraSourceContext {
399
+ readonly revision: LyraSourceRevision;
400
+ readonly locale: string;
401
+ readonly signal: AbortSignal;
402
+ readonly query: Q;
403
+ readonly state: string | null;
404
+ readonly action: LyraHierarchyAction;
405
+ }`
406
+ `LyraHierarchyProjection<T, Summary = undefined> = {
407
+ readonly state: string;
408
+ readonly total: number;
409
+ readonly rows: LyraHierarchyView<LyraHierarchyRow<T>>;
410
+ readonly focusIndex?: number;
411
+ } & LyraSourceSummary<Summary>`
412
+ `LyraHierarchySource<T, Q, Summary = undefined> {
413
+ readonly revision: LyraSourceRevision;
414
+ project(request: LyraHierarchyRequest<Q>): Promise<LyraHierarchyProjection<T, Summary>>;
415
+ search?(request: LyraSourceSearchRequest): Promise<LyraSourceSearchResult<{ readonly key: string }>>;
416
+ copy?(request: LyraSourceContext & {
417
+ readonly key: string | null;
418
+ readonly scope: 'node' | 'subtree' | 'document';
419
+ readonly maxBytes: number;
420
+ }): Promise<string>;
421
+ }`
422
+ `LyraInspectionNode {
423
+ readonly name: string;
424
+ readonly kind: 'object' | 'array' | 'scalar' | 'element' | 'attribute' | 'text' | 'comment' | 'processing-instruction';
425
+ readonly value?: string;
426
+ readonly path: string;
427
+ }`
428
+ `LyraHierarchyQuery {
429
+ readonly search: string;
430
+ readonly hiddenKinds: readonly string[];
431
+ }`
432
+ `LyraTraceSourceSummary { readonly startMs: number; readonly endMs: number; }`
433
+ `LyraTaskSourceSummary { readonly total: number; readonly completed: number; }`
434
+ `LyraSourceBounds { readonly x: number; readonly y: number; readonly width: number; readonly height: number; }`
435
+ `LyraGraphSourceQuery {
436
+ readonly kind: 'nodes' | 'edges';
437
+ readonly search: string;
438
+ readonly centerKey: string | null;
439
+ readonly direction: 'in' | 'out' | 'both';
440
+ readonly nodeTypes: readonly string[];
441
+ }`
442
+ `LyraGraphRecord<N, E> =
443
+ | { readonly kind: 'node'; readonly value: N }
444
+ | { readonly kind: 'edge'; readonly value: E }`
445
+ `LyraGraphSourceSummary { readonly nodes: number; readonly edges: number; }`
446
+ `LyraGraphSceneRequest extends LyraSourceContext {
447
+ readonly revision: LyraSourceRevision;
448
+ readonly locale: string;
449
+ readonly signal: AbortSignal;
450
+ readonly mode: 'neighborhood' | 'viewport';
451
+ readonly centerKey: string | null;
452
+ readonly bounds: LyraSourceBounds | null;
453
+ readonly nodeLimit: number;
454
+ readonly edgeLimit: number;
455
+ readonly includeKeys: readonly string[];
456
+ }`
457
+ `LyraGraphScene<N, E> {
458
+ readonly nodes: readonly { readonly key: string; readonly value: N; readonly position?: { readonly x: number; readonly y: number; readonly z?: number } }[];
459
+ readonly edges: readonly { readonly key: string; readonly value: E; readonly source: string; readonly target: string }[];
460
+ readonly total: LyraGraphSourceSummary;
461
+ readonly coverage: 'complete' | 'neighborhood' | 'aggregate';
462
+ readonly worldBounds: LyraSourceBounds | null;
463
+ }`
464
+ `LyraGraphOverview {
465
+ readonly bounds: LyraSourceBounds;
466
+ readonly bins: readonly { readonly bounds: LyraSourceBounds; readonly count: number }[];
467
+ }`
468
+ `LyraGraphSource<N, E> {
469
+ readonly revision: LyraSourceRevision;
470
+ readonly records: LyraPageSource<LyraGraphRecord<N, E>, LyraGraphSourceQuery, LyraGraphSourceSummary>;
471
+ scene(request: LyraGraphSceneRequest): Promise<LyraGraphScene<N, E>>;
472
+ overview?(request: LyraSourceContext & { readonly limit: number }): Promise<LyraGraphOverview>;
473
+ }`
474
+
475
+ - **`utilities-data-preparation-contracts`** — Public staged numeric helpers and result contracts from `utilities/data-preparation.js`. Preparation reads the full immutable source in bounded chunks; retained summaries are distinct from source counts. Inherited fields are repeated for reference. Defaulted options may be omitted.
476
+
477
+ `LyraSourceValue<T> = T | PromiseLike<T>`
478
+ `LyraSourceRequest { readonly signal: AbortSignal; }`
479
+ `LyraIndexedInput<T> {
480
+ readonly revision: LyraSourceRevision;
481
+ readonly count: number;
482
+ read(start: number, count: number, request: LyraSourceRequest): LyraSourceValue<readonly T[]>;
483
+ }`
484
+ `LyraPreparationOptions {
485
+ readonly signal?: AbortSignal;
486
+ readonly batchSize?: number;
487
+ }`
488
+ `LyraObservationCounts {
489
+ readonly sourceCount: number;
490
+ readonly validCount: number;
491
+ readonly invalidCount: number;
492
+ }`
493
+ `LyraNumericDomain { readonly min: number; readonly max: number; }`
494
+ `LyraSeriesObservation { readonly x: number; readonly y: number | null; }`
495
+ `LyraSeriesSample extends LyraSeriesObservation {
496
+ readonly x: number;
497
+ readonly y: number | null;
498
+ readonly sourceIndex: number;
499
+ readonly breakBefore: boolean;
500
+ }`
501
+ `LyraPreparedSeries {
502
+ readonly id: string;
503
+ readonly label: string;
504
+ readonly counts: LyraObservationCounts;
505
+ readonly xDomain: LyraNumericDomain | null;
506
+ readonly yDomain: LyraNumericDomain | null;
507
+ readonly samples: readonly LyraSeriesSample[];
508
+ }`
509
+ `LyraSeriesRangeRequest extends LyraSourceRequest {
510
+ readonly signal: AbortSignal;
511
+ readonly seriesId: string;
512
+ readonly startIndex: number;
513
+ readonly endIndex: number;
514
+ readonly maxPoints: number;
515
+ }`
516
+ `LyraSeriesPointRef { readonly seriesId: string; readonly sourceIndex: number; }`
517
+ `LyraPreparedSeriesData {
518
+ readonly kind: 'series';
519
+ readonly revision: LyraSourceRevision;
520
+ readonly series: readonly LyraPreparedSeries[];
521
+ getPoint(ref: LyraSeriesPointRef, request: LyraSourceRequest): LyraSourceValue<LyraSeriesObservation | null>;
522
+ queryRange?(request: LyraSeriesRangeRequest): LyraSourceValue<readonly LyraSeriesSample[]>;
523
+ }`
524
+ `LyraPreparedCategoryData {
525
+ readonly kind: 'categories';
526
+ readonly revision: LyraSourceRevision;
527
+ readonly counts: LyraObservationCounts;
528
+ readonly categories: readonly { readonly id: string; readonly label: string }[];
529
+ readonly categoryCounts: readonly number[];
530
+ readonly series: readonly { readonly id: string; readonly label: string; readonly values: readonly number[] }[];
531
+ readonly aggregation: 'count' | 'sum' | 'mean' | 'host-defined';
532
+ }`
533
+ `LyraHistogramDistribution {
534
+ readonly revision: LyraSourceRevision;
535
+ readonly counts: LyraObservationCounts;
536
+ readonly domain: LyraNumericDomain | null;
537
+ readonly edges: readonly number[];
538
+ readonly binCounts: readonly number[];
539
+ readonly belowCount: number;
540
+ readonly aboveCount: number;
541
+ }`
542
+ `LyraWeightedWord { readonly id: string; readonly text: string; readonly weight: number; }`
543
+ `LyraPreparedWordCloud {
544
+ readonly revision: LyraSourceRevision;
545
+ readonly counts: LyraObservationCounts;
546
+ readonly totalWeight: number;
547
+ readonly retainedWeight: number;
548
+ readonly words: readonly LyraWeightedWord[];
549
+ }`
550
+ `LyraPreparedWaveform {
551
+ readonly revision: LyraSourceRevision;
552
+ readonly counts: LyraObservationCounts;
553
+ readonly sampleCount: number;
554
+ readonly duration: number;
555
+ readonly buckets: readonly { readonly startIndex: number; readonly endIndex: number; readonly maxAmplitude: number }[];
556
+ readonly firstAmplitude: number | null;
557
+ readonly lastAmplitude: number | null;
558
+ }`
559
+ `prepareLyraSeriesData(
560
+ series: readonly { readonly id: string; readonly label: string; readonly input: LyraIndexedInput<LyraSeriesObservation> }[],
561
+ options: LyraPreparationOptions & { readonly maxPointsPerSeries?: number } = {},
562
+ ): Promise<LyraPreparedSeriesData>`
563
+ `prepareLyraCategoryData<T>(
564
+ input: LyraIndexedInput<T>,
565
+ options: LyraPreparationOptions & {
566
+ readonly categories: readonly { readonly id: string; readonly label: string }[];
567
+ readonly seriesId: string;
568
+ readonly seriesLabel: string;
569
+ readonly categoryOf: (value: T, sourceIndex: number) => string | null;
570
+ readonly otherCategoryId?: string;
571
+ } & (
572
+ | { readonly aggregation: 'count'; readonly valueOf?: (value: T, sourceIndex: number) => unknown }
573
+ | { readonly aggregation: 'sum' | 'mean'; readonly valueOf: (value: T, sourceIndex: number) => number | null }
574
+ ),
575
+ ): Promise<LyraPreparedCategoryData>`
576
+ `prepareLyraHistogram(
577
+ input: LyraIndexedInput<number>,
578
+ options: LyraPreparationOptions & ({ readonly edges: readonly number[] } | { readonly binCount: number }),
579
+ ): Promise<LyraHistogramDistribution>`
580
+ `prepareLyraWordCloud(
581
+ input: LyraIndexedInput<LyraWeightedWord>,
582
+ options: LyraPreparationOptions & { readonly maxWords?: number } = {},
583
+ ): Promise<LyraPreparedWordCloud>`
584
+ `prepareLyraWaveform(
585
+ input: LyraIndexedInput<number>,
586
+ options: LyraPreparationOptions & { readonly duration: number; readonly maxBuckets?: number },
587
+ ): Promise<LyraPreparedWaveform>`
588
+
120
589
  - **`ai-adapters-a2ui-contracts`** — AI adapter and runtime contracts.
121
590
  `A2UiAdapterLimits {
122
- maxComponents: unknown;
123
- maxDepth: unknown;
124
- maxOutputNodes: unknown;
125
- maxChildrenPerComponent: unknown;
126
- maxNodes: unknown;
127
- maxBytes: unknown;
128
- maxStringCharacters: unknown;
591
+ maxComponents: number;
592
+ maxDepth: number;
593
+ maxOutputNodes: number;
594
+ maxChildrenPerComponent: number;
595
+ maxNodes: number;
596
+ maxBytes: number;
597
+ maxStringCharacters: number;
129
598
  }`
130
599
  `A2UiLikeAction {
131
- id: unknown;
132
- payload: unknown;
600
+ id: string;
601
+ payload?: unknown;
133
602
  }`
134
603
  `A2UiLikeComponent {
135
- id: unknown;
136
- type: unknown;
137
- props: unknown;
138
- text: unknown;
139
- children: unknown;
140
- action: unknown;
604
+ id: string;
605
+ type: string;
606
+ props?: Record<string, unknown>;
607
+ text?: string;
608
+ children?: string[];
609
+ action?: A2UiLikeAction;
141
610
  }`
142
611
  `A2UiLikeSurface {
143
- surfaceId: unknown;
144
- rootId: unknown;
145
- components: unknown;
146
- data: unknown;
612
+ surfaceId?: string;
613
+ rootId: string;
614
+ components: A2UiLikeComponent[];
615
+ data?: unknown;
147
616
  }`
148
- `adaptA2UiSurface(/* public names: surface, typeMap, limits */): unknown`
617
+ `adaptA2UiSurface(surface: unknown, typeMap: unknown, limits: Partial<A2UiAdapterLimits> = {}): LyraWidgetDocument | null`
149
618
 
150
619
  - **`ai-adapters-ag-ui-contracts`** — AI adapter and runtime contracts.
151
620
  `AgUiAdapterLimits {
152
- maxBufferedTools: unknown;
153
- maxToolArgumentBytes: unknown;
154
- maxTextDeltaCharacters: unknown;
155
- maxDepth: unknown;
156
- maxNodes: unknown;
157
- maxBytes: unknown;
158
- maxStringCharacters: unknown;
621
+ maxBufferedTools: number;
622
+ maxToolArgumentBytes: number;
623
+ maxTextDeltaCharacters: number;
624
+ maxDepth: number;
625
+ maxNodes: number;
626
+ maxBytes: number;
627
+ maxStringCharacters: number;
159
628
  }`
160
629
  `AgUiLikeEvent {
161
- type: unknown;
162
- eventId: unknown;
163
- runId: unknown;
164
- messageId: unknown;
165
- role: unknown;
166
- delta: unknown;
167
- toolCallId: unknown;
168
- toolCallName: unknown;
169
- result: unknown;
170
- message: unknown;
171
- code: unknown;
172
- snapshot: unknown;
173
- messages: unknown;
630
+ type: string;
631
+ eventId?: string;
632
+ runId?: string;
633
+ messageId?: string;
634
+ role?: string;
635
+ delta?: unknown;
636
+ toolCallId?: string;
637
+ toolCallName?: string;
638
+ result?: unknown;
639
+ message?: string;
640
+ code?: string;
641
+ snapshot?: unknown;
642
+ messages?: unknown[];
174
643
  }`
175
644
 
176
645
  - **`ai-adapters-ai-sdk-contracts`** — AI adapter and runtime contracts.
177
646
  `adaptAiSdkMessage(message: unknown, limits?: Partial<AiSdkAdapterLimits>): ChatMessage | null`
178
647
  `AiSdkAdapterLimits {
179
- maxParts: unknown;
180
- maxDepth: unknown;
181
- maxNodes: unknown;
182
- maxBytes: unknown;
183
- maxStringCharacters: unknown;
648
+ maxParts: number;
649
+ maxDepth: number;
650
+ maxNodes: number;
651
+ maxBytes: number;
652
+ maxStringCharacters: number;
184
653
  }`
185
654
  `AiSdkLikeMessage {
186
- id: unknown;
187
- role: unknown;
188
- parts: unknown;
189
- metadata: unknown;
655
+ id: string;
656
+ role: string;
657
+ parts?: unknown[];
658
+ metadata?: Record<string, unknown>;
190
659
  }`
191
660
 
192
661
  - **`ai-runtime-contracts`** — AI adapter and runtime contracts.
193
662
  `AgentStreamLimits {
194
- maxMessages: unknown;
195
- maxPartsPerMessage: unknown;
196
- maxTools: unknown;
197
- maxDeltaCharacters: unknown;
198
- maxTextCharactersPerPart: unknown;
199
- maxIdentifierCharacters: unknown;
200
- maxStatusMessageCharacters: unknown;
201
- maxPatchOperations: unknown;
202
- maxSnapshotDepth: unknown;
203
- maxSnapshotNodes: unknown;
204
- maxSnapshotBytes: unknown;
205
- maxRetainedBytes: unknown;
663
+ maxMessages: number;
664
+ maxPartsPerMessage: number;
665
+ maxTools: number;
666
+ maxDeltaCharacters: number;
667
+ maxTextCharactersPerPart: number;
668
+ maxIdentifierCharacters: number;
669
+ maxStatusMessageCharacters: number;
670
+ maxPatchOperations: number;
671
+ maxSnapshotDepth: number;
672
+ maxSnapshotNodes: number;
673
+ maxSnapshotBytes: number;
674
+ maxRetainedBytes: number;
206
675
  }`
207
676
  `AgentStreamState {
208
677
  generation: number;
@@ -214,51 +683,51 @@ These named interfaces and helper signatures are available to typed integrations
214
683
  messages: ChatMessage[];
215
684
  tools: ToolInvocation[];
216
685
  sharedState: unknown;
217
- error?: { message: string; code?: string; };
686
+ error?: { message: string; code?: string };
218
687
  }`
219
- `applySharedStatePatch(/* public names: value, patch */): unknown`
688
+ `applySharedStatePatch(value: unknown, patch: readonly JsonPatchOperation[]): unknown`
220
689
  `createAgentStreamState(limits?: Partial<AgentStreamLimits>): AgentStreamState`
221
- `parseJsonPatch(/* public names: value, limits */): unknown`
690
+ `parseJsonPatch(value: unknown, limits: Partial<AgentStreamLimits> = {}): JsonPatchOperation[] | null`
222
691
  `reduceAgentStreamEvents(state: AgentStreamState, events: readonly AgentStreamEvent[]): AgentStreamState`
223
692
  `reduceAgentStream(state: AgentStreamState, event: AgentStreamEvent): AgentStreamState`
224
693
 
225
694
  - **`ai-snapshot-contracts`** — AI adapter and runtime contracts.
226
- `createProviderSnapshotBudget(/* public names: limits */): unknown`
695
+ `createProviderSnapshotBudget(limits: Partial<ProviderSnapshotLimits> | Readonly<ProviderSnapshotLimits> = {}): ProviderSnapshotBudget`
227
696
  `ProviderSnapshotBudget {
228
- limits: unknown;
229
- bytes: unknown;
230
- nodes: unknown;
697
+ readonly limits: Readonly<ProviderSnapshotLimits>;
698
+ bytes: number;
699
+ nodes: number;
231
700
  }`
232
701
  `ProviderSnapshotLimits {
233
- maxDepth: unknown;
234
- maxNodes: unknown;
235
- maxBytes: unknown;
236
- maxStringCharacters: unknown;
702
+ maxDepth: number;
703
+ maxNodes: number;
704
+ maxBytes: number;
705
+ maxStringCharacters: number;
237
706
  }`
238
- `resolveProviderSnapshotLimits(/* public names: limits */): unknown`
239
- `snapshotProviderValue(/* public names: value, budget */): unknown`
707
+ `resolveProviderSnapshotLimits(limits: Partial<ProviderSnapshotLimits> = {}): Readonly<ProviderSnapshotLimits>`
708
+ `snapshotProviderValue<T = unknown>(value: unknown, budget: ProviderSnapshotBudget = createProviderSnapshotBudget()): ProviderSnapshotResult<T>`
240
709
 
241
710
  - **`ai-types-contracts`** — AI adapter and runtime contracts.
242
711
  `AgentRun {
243
- id: unknown;
244
- status: unknown;
245
- startedAt: unknown;
246
- endedAt: unknown;
247
- model: unknown;
248
- costEstimate: unknown;
249
- steps: unknown;
712
+ id: string;
713
+ status: AgentStatus;
714
+ startedAt?: number;
715
+ endedAt?: number;
716
+ model?: string;
717
+ costEstimate?: number;
718
+ steps: readonly AgentStep[];
250
719
  }`
251
720
  `AgentStatus {
252
- kind: unknown;
253
- message: unknown;
721
+ kind: AgentStatusKind;
722
+ message?: string;
254
723
  }`
255
724
  `AgentStep {
256
- id: unknown;
257
- kind: unknown;
258
- label: unknown;
259
- status: unknown;
260
- startedAt: unknown;
261
- endedAt: unknown;
725
+ id: string;
726
+ kind: string;
727
+ label: string;
728
+ status: AgentStatus;
729
+ startedAt?: number;
730
+ endedAt?: number;
262
731
  }`
263
732
  `AttachmentMessagePart {
264
733
  type: 'attachment';
@@ -279,7 +748,7 @@ These named interfaces and helper signatures are available to typed integrations
279
748
  metadata?: Record<string, unknown>;
280
749
  }`
281
750
  `CancelEventDetail {
282
- reason: unknown;
751
+ reason?: string;
283
752
  }`
284
753
  `ChatMessage {
285
754
  id: string;
@@ -292,17 +761,15 @@ These named interfaces and helper signatures are available to typed integrations
292
761
  metadata?: Record<string, unknown>;
293
762
  }`
294
763
  `Citation {
295
- id: unknown;
296
- chunkId: unknown;
297
- sourceId: unknown;
298
- span: unknown;
299
- start: unknown;
300
- end: unknown;
301
- label: unknown;
302
- locator: unknown;
303
- answerRange: unknown;
304
- quote: unknown;
305
- metadata: unknown;
764
+ id: string;
765
+ chunkId?: string;
766
+ sourceId?: string;
767
+ span?: { start: number; end: number };
768
+ label?: string;
769
+ locator?: DocumentLocator;
770
+ answerRange?: { start: number; end: number };
771
+ quote?: string;
772
+ metadata?: Record<string, unknown>;
306
773
  }`
307
774
  `CitationMessagePart {
308
775
  type: 'citation';
@@ -313,7 +780,7 @@ These named interfaces and helper signatures are available to typed integrations
313
780
  metadata?: Record<string, unknown>;
314
781
  }`
315
782
  `CitationSelectEventDetail {
316
- citation: unknown;
783
+ citation: Citation;
317
784
  }`
318
785
  `DataMessagePart {
319
786
  type: 'data';
@@ -326,11 +793,11 @@ These named interfaces and helper signatures are available to typed integrations
326
793
  metadata?: Record<string, unknown>;
327
794
  }`
328
795
  `DocumentRef {
329
- id: unknown;
330
- name: unknown;
331
- mimeType: unknown;
332
- uri: unknown;
333
- version: unknown;
796
+ id: string;
797
+ name: string;
798
+ mimeType?: string;
799
+ uri?: string;
800
+ version?: string;
334
801
  }`
335
802
  `ErrorMessagePart {
336
803
  type: 'error';
@@ -343,26 +810,24 @@ These named interfaces and helper signatures are available to typed integrations
343
810
  metadata?: Record<string, unknown>;
344
811
  }`
345
812
  `ExportEventDetail {
346
- format: unknown;
813
+ format: string;
347
814
  }`
348
815
  `GroundedClaim {
349
- id: unknown;
350
- text: unknown;
351
- status: unknown;
352
- citationIds: unknown;
353
- answerRange: unknown;
354
- start: unknown;
355
- end: unknown;
356
- confidence: unknown;
357
- explanation: unknown;
816
+ id: string;
817
+ text: string;
818
+ status: GroundedClaimStatus;
819
+ citationIds: readonly string[];
820
+ answerRange?: { start: number; end: number };
821
+ confidence?: number;
822
+ explanation?: string;
358
823
  }`
359
824
  `GroundingAssessment {
360
- supportedClaims: unknown;
361
- unsupportedClaims: unknown;
362
- coverage: unknown;
363
- confidence: unknown;
364
- warnings: unknown;
365
- claims: unknown;
825
+ supportedClaims: number;
826
+ unsupportedClaims: number;
827
+ coverage: number;
828
+ confidence?: number;
829
+ warnings?: readonly string[];
830
+ claims?: readonly GroundedClaim[];
366
831
  }`
367
832
  `MessagePartBase {
368
833
  id: string;
@@ -380,42 +845,42 @@ These named interfaces and helper signatures are available to typed integrations
380
845
  metadata?: Record<string, unknown>;
381
846
  }`
382
847
  `RetrievalChunk {
383
- id: unknown;
384
- text: unknown;
385
- score: unknown;
386
- source: unknown;
387
- metadata: unknown;
388
- rank: unknown;
389
- locator: unknown;
390
- queryId: unknown;
391
- stage: unknown;
392
- traceId: unknown;
393
- scores: unknown;
848
+ id: string;
849
+ text: string;
850
+ score: number;
851
+ source: DocumentRef;
852
+ metadata?: Record<string, unknown>;
853
+ rank?: number;
854
+ locator?: DocumentLocator;
855
+ queryId?: string;
856
+ stage?: string;
857
+ traceId?: string;
858
+ scores?: RetrievalScoreBreakdown;
394
859
  }`
395
860
  `RetrievalProgressEventDetail {
396
- queryId: unknown;
397
- stage: unknown;
398
- progress: unknown;
861
+ queryId: string;
862
+ stage: string;
863
+ progress?: number;
399
864
  }`
400
865
  `RetrievalQuery {
401
- text: unknown;
402
- filters: unknown;
403
- mode: unknown;
404
- scope: unknown;
866
+ text: string;
867
+ filters?: Record<string, unknown>;
868
+ mode: 'vector' | 'keyword' | 'hybrid';
869
+ scope?: string[];
405
870
  }`
406
871
  `RetrievalScoreBreakdown {
407
- dense: unknown;
408
- sparse: unknown;
409
- rerank: unknown;
410
- final: unknown;
872
+ dense?: number;
873
+ sparse?: number;
874
+ rerank?: number;
875
+ final: number;
411
876
  }`
412
877
  `RetryEventDetail {
413
- attempt: unknown;
414
- messageId: unknown;
878
+ attempt: number;
879
+ messageId?: string;
415
880
  }`
416
881
  `RunLifecycleEventDetail {
417
- runId: unknown;
418
- status: unknown;
882
+ runId: string;
883
+ status: AgentStatus;
419
884
  }`
420
885
  `TextMessagePart {
421
886
  type: 'text';
@@ -426,8 +891,8 @@ These named interfaces and helper signatures are available to typed integrations
426
891
  metadata?: Record<string, unknown>;
427
892
  }`
428
893
  `ToolApprovalEventDetail {
429
- invocationId: unknown;
430
- approved: unknown;
894
+ invocationId: string;
895
+ approved: boolean;
431
896
  }`
432
897
  `ToolCallMessagePart {
433
898
  type: 'tool-call';
@@ -438,16 +903,16 @@ These named interfaces and helper signatures are available to typed integrations
438
903
  metadata?: Record<string, unknown>;
439
904
  }`
440
905
  `ToolInvocation {
441
- id: unknown;
442
- name: unknown;
443
- displayName: unknown;
444
- args: unknown;
445
- status: unknown;
446
- result: unknown;
447
- error: unknown;
448
- startedAt: unknown;
449
- endedAt: unknown;
450
- redactedFields: unknown;
906
+ id: string;
907
+ name: string;
908
+ displayName?: string;
909
+ args: Record<string, unknown>;
910
+ status: ToolStatus;
911
+ result?: unknown;
912
+ error?: string;
913
+ startedAt?: number;
914
+ endedAt?: number;
915
+ redactedFields?: readonly string[];
451
916
  }`
452
917
  `ToolResultErrorMessagePart {
453
918
  error: string;
@@ -497,22 +962,22 @@ These named interfaces and helper signatures are available to typed integrations
497
962
  readonly optionalPeers: readonly string[];
498
963
  }`
499
964
  `AutoloaderOptions {
500
- optionalPeers: unknown;
501
- events: unknown;
502
- maxConcurrency: unknown;
503
- maxElements: unknown;
504
- maxRoots: unknown;
505
- maxDepth: unknown;
506
- maxWork: unknown;
965
+ readonly optionalPeers?: AutoloaderOptionalPeers;
966
+ readonly events?: boolean;
967
+ readonly maxConcurrency?: number;
968
+ readonly maxElements?: number;
969
+ readonly maxRoots?: number;
970
+ readonly maxDepth?: number;
971
+ readonly maxWork?: number;
507
972
  }`
508
973
  `AutoloaderTraversalErrorEventDetail {
509
- limit: unknown;
510
- maximum: unknown;
511
- error: unknown;
974
+ readonly limit: RenderedTreeTraversalLimit;
975
+ readonly maximum: number;
976
+ readonly error: Error;
512
977
  }`
513
978
  `discover(root?: LyraDefinitionRoot | undefined, options?: AutoloaderOptions): Promise<readonly AutoloadableTagName[]>`
514
979
  `start(root?: LyraDefinitionRoot | undefined, options?: AutoloaderOptions): Promise<readonly AutoloadableTagName[]>`
515
- `stop(): unknown`
980
+ `stop(): void`
516
981
 
517
982
  - **`custom-elements-jsx-contracts`** — Framework integration type contracts, including the multi-split
518
983
  `for` launcher id and `trigger` element reference.
@@ -829,18 +1294,18 @@ These named interfaces and helper signatures are available to typed integrations
829
1294
 
830
1295
  - **`internal-ansi-contracts`** — Shared utility contracts.
831
1296
  `AnsiStyles {
832
- bold: unknown;
833
- dim: unknown;
834
- italic: unknown;
835
- underline: unknown;
836
- inverse: unknown;
837
- fg: unknown;
838
- bg: unknown;
1297
+ bold: boolean;
1298
+ dim: boolean;
1299
+ italic: boolean;
1300
+ underline: boolean;
1301
+ inverse: boolean;
1302
+ fg?: string;
1303
+ bg?: string;
839
1304
  }`
840
1305
 
841
1306
  - **`internal-canvas-color-contracts`** — Shared utility contracts.
842
- `resolveCanvasColor(/* public names: scope, color, fallback */): unknown`
843
- `resolveCanvasColors(/* public names: scope, colors, fallback */): unknown`
1307
+ `resolveCanvasColor(scope: Element, color: string, fallback: string): string`
1308
+ `resolveCanvasColors(scope: Element, colors: Iterable<string>, fallback: string): string[]`
844
1309
 
845
1310
  - **`internal-document-tokens-contracts`** — Shared utility contracts.
846
1311
  `adoptLyraTokens(root: Document | ShadowRoot): void`
@@ -853,21 +1318,21 @@ These named interfaces and helper signatures are available to typed integrations
853
1318
  scope. Reads inline styles only and logs nothing.
854
1319
 
855
1320
  - **`internal-localization-runtime-contracts`** — Shared utility contracts.
856
- `getLyraLocaleDirection(/* public names: locale */): unknown`
857
- `getLyraLocale(): unknown`
858
- `getRegisteredLyraLocaleKeys(/* public names: locale */): unknown`
859
- `getRegisteredLyraLocales(): unknown`
1321
+ `getLyraLocaleDirection(locale: string): LyraLocaleDirection`
1322
+ `getLyraLocale(): string`
1323
+ `getRegisteredLyraLocaleKeys(locale: string): readonly string[]`
1324
+ `getRegisteredLyraLocales(): readonly string[]`
860
1325
  `registerLyraLocale(locale: string, strings: LyraLocaleStrings, meta?: LyraLocaleMeta): void`
861
- `resolveLyraDirection(/* public names: host */): unknown`
862
- `resolveLyraLocale(/* public names: host */): unknown`
863
- `setLyraLocale(/* public names: locale */): unknown`
864
- `subscribeLyraLocaleRegistry(/* public names: listener */): unknown`
1326
+ `resolveLyraDirection(host: Element): 'ltr' | 'rtl'`
1327
+ `resolveLyraLocale(host: Element): string`
1328
+ `setLyraLocale(locale: string): void`
1329
+ `subscribeLyraLocaleRegistry(listener: () => void): () => void`
865
1330
  `registerLyraLocaleDelta(locale: string, parent: string, strings: LyraLocaleStrings, meta?: LyraLocaleMeta): void`
866
1331
 
867
1332
  - **`internal-localization-types-contracts`** — Shared utility contracts.
868
1333
  `LyraLocaleMeta {
869
- dir: unknown;
870
- name: unknown;
1334
+ dir?: LyraLocaleDirection;
1335
+ name?: string;
871
1336
  }`
872
1337
 
873
1338
  - **`internal-localization-contracts`** — Shared utility contracts.
@@ -875,87 +1340,83 @@ These named interfaces and helper signatures are available to typed integrations
875
1340
 
876
1341
  - **`internal-node-type-style-contracts`** — Shared utility contracts.
877
1342
  `LyraNodeTypeStyle {
878
- id: unknown;
879
- label: unknown;
880
- color: unknown;
881
- shape: unknown;
1343
+ readonly id: string;
1344
+ readonly label: string;
1345
+ readonly color?: string;
1346
+ readonly shape?: 'circle' | 'square' | 'diamond';
882
1347
  }`
883
1348
 
884
1349
  - **`internal-registered-animation-contracts`** — Shared utility contracts.
885
1350
  `RegisteredAnimationSpec {
886
- keyframes: unknown;
887
- rtlKeyframes: unknown;
888
- durationProperties: unknown;
889
- easingProperties: unknown;
890
- fallbackDuration: unknown;
891
- fallbackEasing: unknown;
892
- options: unknown;
1351
+ keyframes: Keyframe[];
1352
+ rtlKeyframes?: Keyframe[];
1353
+ durationProperties: readonly string[];
1354
+ easingProperties?: readonly string[];
1355
+ fallbackDuration?: number;
1356
+ fallbackEasing?: string;
1357
+ options?: KeyframeAnimationOptions;
893
1358
  }`
894
1359
 
895
1360
  - **`internal-text-viewer-target-contracts`** — Shared utility contracts.
896
1361
  `LyraSearchChangeDetail {
897
- query: unknown;
898
- matchCount: unknown;
899
- matchCountExact: unknown;
900
- activeIndex: unknown;
1362
+ query: string;
1363
+ matchCount: number;
1364
+ matchCountExact: boolean;
1365
+ activeIndex: number;
901
1366
  }`
902
1367
  `LyraTextViewerTarget {
903
- search: unknown;
904
- query: unknown;
905
- searchNext: unknown;
906
- searchPrevious: unknown;
907
- clearSearch: unknown;
908
- highlights: unknown;
909
- activeHighlightId: unknown;
910
- anchor: unknown;
911
- anchorKinds: unknown;
912
- scrollToAnchor: unknown;
913
- target: unknown;
1368
+ search(query: string): Promise<number>;
1369
+ searchNext(): Promise<boolean>;
1370
+ searchPrevious(): Promise<boolean>;
1371
+ clearSearch(): void;
1372
+ highlights: readonly LyraHighlight[];
1373
+ activeHighlightId: string | null;
1374
+ anchor: LyraAnchor | string | null;
1375
+ readonly anchorKinds: readonly LyraAnchorKind[];
1376
+ scrollToAnchor(target: LyraAnchor | string): Promise<boolean>;
914
1377
  }`
915
1378
 
916
1379
  - **`ssr-contracts`** — Shared utility contracts.
917
- `buildLyraSsrStaticSafety(/* public names: tags, tagCapabilities, auditedStaticSafeTags */): unknown`
1380
+ `buildLyraSsrStaticSafety(tags: readonly string[], tagCapabilities: Readonly<Record<string, LyraSsrTagCapabilities>>, auditedStaticSafeTags: readonly string[]): LyraSsrStaticSafetyResult`
918
1381
  Fail-closed classifier behind `LYRA_SSR_STATIC_SAFETY`/`getLyraSsrStaticSafety`: a tag present in
919
1382
  neither a non-empty `tagCapabilities` entry nor `auditedStaticSafeTags` is reported in the result's
920
1383
  `unaudited` list instead of silently defaulting to `'static-safe'`. Pure and fixture-friendly --
921
1384
  `scripts/check-ssr.mjs` calls it with the real inventory, tests call it with small fixture lists.
922
- `deriveLyraSsrStaticSafety(/* public names: capabilities */): unknown`
1385
+ `deriveLyraSsrStaticSafety(capabilities: LyraSsrTagCapabilities): LyraSsrStaticSafety`
923
1386
  Derives static safety from one tag's capability record: any `'after-hydration'`/`'client-only'`
924
1387
  entry makes it `'hydration-required'`; an empty record defaults to `'static-safe'`. That empty-
925
1388
  record default is only valid for a record already known to reflect a completed review (as
926
1389
  `LYRA_SSR_TAG_CAPABILITIES` entries do) -- `buildLyraSsrStaticSafety()` does not rely on it for a
927
1390
  tag missing from that record entirely, which it instead routes through `auditedStaticSafeTags`.
928
- `diagnoseLyraHydration(/* public names: root */): unknown`
929
- `getLyraSsrMode(/* public names: tagName */): unknown`
930
- `getLyraSsrStaticSafety(/* public names: tagName */): unknown`
1391
+ `diagnoseLyraHydration(root?: ParentNode): Promise<readonly LyraHydrationDiagnostic[]>`
1392
+ `getLyraSsrMode(tagName: string): LyraSsrMode | undefined`
1393
+ `getLyraSsrStaticSafety(tagName: string): LyraSsrStaticSafety | undefined`
931
1394
  Returns the static-safety classification for a `render-and-hydrate` Lyra tag, or `undefined` for a
932
1395
  tag outside that tier. See "SSR and declarative shadow DOM" above for the full write-up.
933
1396
  `LyraHydrationDiagnostic {
934
- element: unknown;
935
- tag: unknown;
936
- mode: unknown;
937
- status: unknown;
938
- error: unknown;
1397
+ element: Element;
1398
+ tag: string;
1399
+ mode: LyraSsrMode;
1400
+ status: LyraHydrationStatus;
1401
+ error?: unknown;
939
1402
  }`
940
1403
  `LyraLitElementRendererConstructor {
941
- prototype: unknown;
942
- matchesClass: unknown;
943
- constructor: unknown;
944
- tagName: unknown;
945
- attributes: unknown;
1404
+ new (tagName: string): object;
1405
+ readonly prototype: object;
1406
+ matchesClass(constructor: CustomElementConstructor, tagName: string, attributes: Map<string, string>): boolean;
946
1407
  }`
947
1408
  `LyraSsrClientRenderReason {
948
- code: unknown;
949
- detail: unknown;
1409
+ code: LyraSsrClientRenderReasonCode;
1410
+ detail: string;
950
1411
  }`
951
1412
  `LyraSsrStaticSafetyResult {
952
- classification: unknown;
953
- unaudited: unknown;
1413
+ classification: Readonly<Record<string, LyraSsrStaticSafety>>;
1414
+ unaudited: readonly string[];
954
1415
  }`
955
1416
  Return shape of `buildLyraSsrStaticSafety()`: `classification` holds one entry per classified tag
956
1417
  (a tag absent from it was neither capability-bearing nor audited), and a non-empty `unaudited`
957
1418
  means the check must fail closed.
958
- `lyraSsrElementRenderers(/* public names: litElementRenderer */): unknown`
1419
+ `lyraSsrElementRenderers<T extends LyraLitElementRendererConstructor>(litElementRenderer: T): readonly [typeof LyraSsrFallbackRenderer, T]`
959
1420
 
960
1421
  - **`svelte-contracts`** — Framework integration type contracts, including the multi-split
961
1422
  `for` launcher id and `trigger` element reference.
@@ -1585,13 +2046,13 @@ These named interfaces and helper signatures are available to typed integrations
1585
2046
  See "Constructing a validated test event: `createLyraEvent()`" above for the full contract.
1586
2047
 
1587
2048
  - **`testing-happy-dom-shims-contracts`** — Shared utility contracts.
1588
- `installHappyDomFormAssociatedShims(): unknown`
1589
- `installHappyDomShadowFocusShim(): unknown`
1590
- `flattenCascadeLayers(/* public names: css */): unknown`
1591
- `installHappyDomAriaControlsShim(/* public names: proto */): unknown`
1592
- `installHappyDomCascadeLayerShim(/* public names: proto, misbehaves */): unknown`
1593
- `installHappyDomShims(): unknown`
1594
- `installStubInternalsForTest(/* public names: host */): unknown`
2049
+ `installHappyDomFormAssociatedShims(): void`
2050
+ `installHappyDomShadowFocusShim(): () => void`
2051
+ `flattenCascadeLayers(css: string): string`
2052
+ `installHappyDomAriaControlsShim(proto: object | undefined = globalThis.Element?.prototype): void`
2053
+ `installHappyDomCascadeLayerShim(proto: SheetTextMethods | undefined = globalThis.CSSStyleSheet?.prototype, misbehaves: () => boolean = cascadeLayerRulesDropped): () => void`
2054
+ `installHappyDomShims(): void`
2055
+ `installStubInternalsForTest(host: Element): StubElementInternals`
1595
2056
 
1596
2057
  - **`testing-jsdom-shims-contracts`** — Shared utility contracts.
1597
2058
  `JsdomAdoptedStyleSheetsTargets {
@@ -1611,43 +2072,43 @@ These named interfaces and helper signatures are available to typed integrations
1611
2072
  See "jsdom: `installJsdomShims()`" above for the full contract.
1612
2073
 
1613
2074
  - **`testing-interaction-drivers-contracts`** — Shared utility contracts.
1614
- `chooseOption(/* public names: owner, value */): unknown`
1615
- `submitConfirmDecision(/* public names: owner, decision */): unknown`
1616
- `toggleSwitch(/* public names: switchEl */): unknown`
1617
- `activateStep(/* public names: stepper, target */): unknown`
1618
- `chooseSwatch(/* public names: picker, value */): unknown`
1619
- `chooseCurrency(/* public names: picker, code */): unknown`
2075
+ `chooseOption(owner: LyraOptionListElement, value: string): Promise<void>`
2076
+ `submitConfirmDecision(owner: LyraConfirmBar | LyraToolApprovalDialog, decision: ApprovalDecision): Promise<void>`
2077
+ `toggleSwitch(switchEl: LyraSwitch): Promise<void>`
2078
+ `activateStep(stepper: LyraStepper, target: number | string): Promise<void>`
2079
+ `chooseSwatch(picker: LyraSwatchPicker, value: string): Promise<void>`
2080
+ `chooseCurrency(picker: LyraCurrencyPicker, code: string): Promise<void>`
1620
2081
  `PopoverDriverOptions {
1621
- timeoutMs: unknown;
2082
+ timeoutMs?: number;
1622
2083
  }`
1623
2084
  `ClosePopoverOptions {
1624
- via: unknown;
1625
- timeoutMs: unknown;
2085
+ via?: 'escape' | 'trigger';
2086
+ timeoutMs?: number;
1626
2087
  }`
1627
- `openPopover(/* public names: popover, options */): unknown`
1628
- `closePopover(/* public names: popover, options */): unknown`
2088
+ `openPopover(popover: LyraPopover, options: PopoverDriverOptions = {}): Promise<void>`
2089
+ `closePopover(popover: LyraPopover, options: ClosePopoverOptions = {}): Promise<void>`
1629
2090
  See "Driving a component's real activation path: interaction drivers" above for the full contract.
1630
2091
 
1631
2092
  - **`testing-wait-for-mount-contracts`** — Shared utility contracts.
1632
- `waitForLyraElement(/* public names: selector, options */): unknown`
2093
+ `waitForLyraElement<T extends Element = HTMLElement>(selector: string, options: WaitForLyraElementOptions<T> = {}): Promise<T>`
1633
2094
  `WaitForLyraElementOptions {
1634
- root: unknown;
1635
- match: (element: unknown) => unknown;
1636
- timeoutMs: unknown;
2095
+ root?: Node & ParentNode;
2096
+ match?: (element: T) => boolean;
2097
+ timeoutMs?: number;
1637
2098
  }`
1638
- `waitForToast(/* public names: match, options */): unknown`
2099
+ `waitForToast(match?: ToastMatch, options: Omit<WaitForLyraElementOptions<LyraToastItem>, 'match'> = {}): Promise<LyraToastItem>`
1639
2100
  See "Awaiting a lazily registered mount: `waitForLyraElement()` and `waitForToast()`" above for the
1640
2101
  full contract.
1641
2102
 
1642
2103
  - **`theme-gemstones-data-contracts`** — Shared utility contracts.
1643
2104
  `GemstoneAccent {
1644
- key: unknown;
1645
- fill: unknown;
1646
- deep: unknown;
2105
+ key: GemstoneKey;
2106
+ fill: string;
2107
+ deep: string;
1647
2108
  }`
1648
2109
 
1649
2110
  - **`theme-gemstones-contracts`** — Shared utility contracts.
1650
- `gemstoneGlyph(/* public names: color */): unknown`
2111
+ `gemstoneGlyph(color = 'currentColor'): TemplateResult`
1651
2112
  `gemstoneSelectedGlyphStyles: CSSResult` — the shared "selected" halo/shine presentation for a
1652
2113
  rendered `gemstoneGlyph()`, applied via the `data-lr-gemstone-selected` boolean attribute on the
1653
2114
  element wrapping the glyph. `lr-swatch-picker mode="gemstone"` includes this exact stylesheet in