@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
@@ -1 +1 @@
1
- import{focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{chartLegendPositionStyles}from"./chart-surface.styles.js";const styles=css` [part='base'] { position: relative; inline-size: 100%; min-inline-size: 0; block-size: 100%; box-sizing: border-box; display: grid; grid-template-areas: 'plot' 'legend' 'warning' 'table-toggle' 'table'; grid-template-columns: minmax(0, 1fr); align-items: start; } .config-slot { display: none; } [part='notices'] { grid-area: warning; display: grid; gap: var(--lr-space-2xs); } [part='feature-warning'], [part='data-truncation'] { margin: 0; padding: var(--lr-space-xs); color: var(--lr-color-warning); font-size: var(--lr-font-size-sm); overflow-wrap: anywhere; } ${chartLegendPositionStyles("warning")} [part='data-table'] button { font: inherit; color: inherit; border: 0; border-radius: var(--lr-radius); background: transparent; padding: var(--lr-space-2xs); cursor: pointer; } [part='data-table'] button:hover { background: var(--lr-chart-data-table-button-hover-bg, var(--lr-color-brand-quiet)); } [part='data-table'] button:active { background: var( --lr-chart-data-table-button-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } [part='data-table'] button:focus-visible { ${focusRing} } [part='center'] { position: absolute; transform: translate(-50%, -50%); pointer-events: none; text-align: center; } [part='reset-zoom-button'] { position: absolute; inset-block-start: var(--lr-space-xs); inset-inline-end: var(--lr-space-xs); font: inherit; font-size: var(--lr-font-size-xs); padding: var(--lr-size-0-15rem) var(--lr-size-0-5rem); border: var(--lr-border-width-thin) solid var(--lr-color-border); border-radius: var(--lr-radius); background: var(--lr-color-surface); color: var(--lr-color-text); max-inline-size: calc(100% - var(--lr-space-xs) - var(--lr-space-xs)); white-space: normal; overflow-wrap: anywhere; cursor: pointer; } [part='reset-zoom-button']:hover { background: var(--lr-chart-reset-zoom-button-hover-bg, var(--lr-color-brand-quiet)); } [part='reset-zoom-button']:active { background: var( --lr-chart-reset-zoom-button-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } [part='reset-zoom-button']:focus-visible { ${focusRing} } [part='data-table-toggle']:hover { background: var(--lr-chart-data-table-toggle-hover-bg, var(--lr-color-brand-quiet)); } [part='data-table-toggle']:active { background: var( --lr-chart-data-table-toggle-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } `;export{styles};
1
+ import{focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{chartLegendPositionStyles}from"./chart-surface.styles.js";const styles=css` [part='base'] { position: relative; inline-size: 100%; min-inline-size: 0; block-size: 100%; box-sizing: border-box; display: grid; grid-template-areas: 'plot' 'legend' 'warning' 'table-toggle' 'table'; grid-template-columns: minmax(0, 1fr); align-items: start; } .config-slot { display: none; } [part='notices'] { grid-area: warning; display: grid; gap: var(--lr-space-2xs); } [part='feature-warning'], [part='data-truncation'], [part='limit'] { margin: 0; padding: var(--lr-space-xs); color: var(--lr-color-warning); font-size: var(--lr-font-size-sm); overflow-wrap: anywhere; } ${chartLegendPositionStyles("warning")} [part='data-table'] button { font: inherit; color: inherit; border: 0; border-radius: var(--lr-radius); background: transparent; padding: var(--lr-space-2xs); cursor: pointer; } [part='data-table'] button:hover { background: var(--lr-chart-data-table-button-hover-bg, var(--lr-color-brand-quiet)); } [part='data-table'] button:active { background: var( --lr-chart-data-table-button-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } [part='data-table'] button:focus-visible { ${focusRing} } [part='center'] { position: absolute; transform: translate(-50%, -50%); pointer-events: none; text-align: center; } [part='reset-zoom-button'] { position: absolute; inset-block-start: var(--lr-space-xs); inset-inline-end: var(--lr-space-xs); font: inherit; font-size: var(--lr-font-size-xs); padding: var(--lr-size-0-15rem) var(--lr-size-0-5rem); border: var(--lr-border-width-thin) solid var(--lr-color-border); border-radius: var(--lr-radius); background: var(--lr-color-surface); color: var(--lr-color-text); max-inline-size: calc(100% - var(--lr-space-xs) - var(--lr-space-xs)); white-space: normal; overflow-wrap: anywhere; cursor: pointer; } [part='reset-zoom-button']:hover { background: var(--lr-chart-reset-zoom-button-hover-bg, var(--lr-color-brand-quiet)); } [part='reset-zoom-button']:active { background: var( --lr-chart-reset-zoom-button-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } [part='reset-zoom-button']:focus-visible { ${focusRing} } [part='data-table-toggle']:hover { background: var(--lr-chart-data-table-toggle-hover-bg, var(--lr-color-brand-quiet)); } [part='data-table-toggle']:active { background: var( --lr-chart-data-table-toggle-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } `;export{styles};
@@ -1,7 +1,11 @@
1
- import{LyraChart,type LyraChartType}from'./chart.class.js';
1
+ export type{LyraChartPreparedData,LyraChartSourcePointSelectDetail,LyraChartSourceCategorySelectDetail,LyraPreparedSeriesData,LyraPreparedCategoryData,LyraSeriesPointRef}from'./chart.class.js';import{LyraChart,type LyraChartType}from'./chart.class.js';
2
2
  /**
3
3
  * `<lr-doughnut-chart>` — `<lr-chart>` with a `"doughnut"` default and the mirrored writable type.
4
4
  *
5
+ * Prepared-data compatibility follows the current writable type: line accepts series, bar
6
+ * accepts series/categories, radial category types accept categories. Spatial types require
7
+ * their own source route and reject these prepared kinds.
8
+ *
5
9
  * @customElement lr-doughnut-chart
6
10
  * @status stable
7
11
  * @since 4.0.0
@@ -1 +1 @@
1
- import{type HistogramBucket}from'./histogram-bin.js';interface HistogramBucketSource{readonly bins:number;readonly values:readonly number[];}export declare function binnedBuckets(el:HistogramBucketSource):HistogramBucket[];export{};
1
+ import type{LyraHistogramDistribution}from'../../../utilities/data-preparation.js';import{type HistogramBucket}from'./histogram-bin.js';interface HistogramBucketSource{readonly distribution?:LyraHistogramDistribution|null;readonly bins:number;readonly values:readonly number[];}export declare function binnedBuckets(el:HistogramBucketSource):HistogramBucket[];export{};
@@ -1 +1 @@
1
- import{binValues,normalizeHistogramBinCount}from"./histogram-bin.js";const bucketCache=new WeakMap;function binnedBuckets(el){const bins=normalizeHistogramBinCount(el.bins),locale=el.effectiveLocale,cached=bucketCache.get(el);if(cached&&cached.values===el.values&&cached.bins===bins&&cached.locale===locale)return cached.buckets;const buckets=binValues(el.values,bins,locale);return bucketCache.set(el,{values:el.values,bins,locale,buckets}),buckets}export{binnedBuckets};
1
+ import{sourceCount,sourceRevision}from"../../../internal/source-request-controller.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{resolveActiveOrExplicitLocale}from"../../../internal/localization-runtime.js";import{binValues,normalizeHistogramBinCount}from"./histogram-bin.js";function own(value,key){if(value===null||typeof value!="object")throw new TypeError("Invalid distribution");const descriptor=Object.getOwnPropertyDescriptor(value,key);if(!descriptor||!("value"in descriptor))throw new TypeError("Invalid distribution");return descriptor.value}function snapshotHistogramDistribution(value){const revision=sourceRevision(own(value,"revision")),rawCounts=own(value,"counts"),source=sourceCount(own(rawCounts,"sourceCount")),valid=sourceCount(own(rawCounts,"validCount")),invalid=sourceCount(own(rawCounts,"invalidCount"));if(valid>source||invalid!==source-valid)throw new TypeError("Invalid counts");const rawEdges=own(value,"edges"),rawBins=own(value,"binCounts");if(!Array.isArray(rawEdges)||!Array.isArray(rawBins))throw new TypeError("Invalid bins");const edgeLength=sourceCount(own(rawEdges,"length")),binLength=sourceCount(own(rawBins,"length"));if(edgeLength>1001||binLength>1e3||edgeLength!==0&&edgeLength<2||binLength!==Math.max(0,edgeLength-1))throw new TypeError("Invalid bins");const edges=[],binCounts=[];for(let index=0;index<edgeLength;index++){const edge=own(rawEdges,index);if(typeof edge!="number"||!Number.isFinite(edge)||index>0&&edge<=edges[index-1])throw new TypeError("Invalid edge");edges.push(edge)}let remainder=valid;for(let index=0;index<binLength;index++){const count=sourceCount(own(rawBins,index));if(count>remainder)throw new TypeError("Invalid bin count");remainder-=count,binCounts.push(count)}const belowCount=sourceCount(own(value,"belowCount")),aboveCount=sourceCount(own(value,"aboveCount"));if(belowCount>remainder||aboveCount!==remainder-belowCount||!edges.length&&valid!==0)throw new TypeError("Invalid outliers");const rawDomain=own(value,"domain");let domain=null;if(valid){const min=own(rawDomain,"min"),max=own(rawDomain,"max");if(typeof min!="number"||typeof max!="number"||!Number.isFinite(min)||!Number.isFinite(max)||min>max)throw new TypeError("Invalid domain");if(belowCount>0!=min<edges[0]||aboveCount>0!=max>edges.at(-1))throw new TypeError("Invalid outlier domain");for(let index=0;index<binLength;index++){if(binCounts[index]===0)continue;const lo=edges[index],hi=edges[index+1];if(lo>max||(index===binLength-1?hi<min:hi<=min))throw new TypeError("Populated bin outside domain")}const partition=point=>{if(point<edges[0])return-1;if(point>edges[edgeLength-1])return binLength;let index=0;for(;index<binLength-1&&point>=edges[index+1];)index++;return index},partitionCount=index=>index<0?belowCount:index===binLength?aboveCount:binCounts[index],minPartition=partition(min),maxPartition=partition(max);if(partitionCount(minPartition)===0||partitionCount(maxPartition)===0||min!==max&&minPartition===maxPartition&&partitionCount(minPartition)<2)throw new TypeError("Unrepresented domain extrema");domain=Object.freeze({min,max})}else if(rawDomain!==null)throw new TypeError("Invalid empty domain");return Object.freeze({revision,counts:Object.freeze({sourceCount:source,validCount:valid,invalidCount:invalid}),domain,edges:Object.freeze(edges),binCounts:Object.freeze(binCounts),belowCount,aboveCount})}function distributionBuckets(distribution,locale){return Object.freeze(distribution.binCounts.map((count,index)=>{const lo=distribution.edges[index],hi=distribution.edges[index+1],width=hi-lo,formatter=getNumberFormat(resolveActiveOrExplicitLocale(locale),{maximumFractionDigits:Math.min(20,Math.max(0,1-Math.floor(Math.log10(width))))||0}),range=formatter.formatRange,label=range?range.call(formatter,lo,hi):`${formatter.format(lo)}–${formatter.format(hi)}`;return Object.freeze({label:`⁦${label}⁩`,count})}))}const distributionCache=new WeakMap,distributionGenerations=new WeakMap;function invalidateHistogramBuckets(el){distributionGenerations.set(el,{}),distributionCache.delete(el)}const bucketCache=new WeakMap;function binnedBuckets(el){const locale=el.effectiveLocale,distribution=el.distribution;if(distribution!=null){const generation=distributionGenerations.get(el),cached2=distributionCache.get(el);if(cached2?.source===distribution&&cached2.locale===locale)return cached2.buckets;let buckets2;try{buckets2=distributionBuckets(snapshotHistogramDistribution(distribution),locale)}catch{buckets2=[]}return el.distribution===distribution&&distributionGenerations.get(el)===generation&&distributionCache.set(el,{source:distribution,locale,buckets:buckets2}),buckets2}const bins=normalizeHistogramBinCount(el.bins),cached=bucketCache.get(el);if(cached&&cached.values===el.values&&cached.bins===bins&&cached.locale===locale)return cached.buckets;const buckets=binValues(el.values,bins,locale);return bucketCache.set(el,{values:el.values,bins,locale,buckets}),buckets}export{binnedBuckets,distributionBuckets,invalidateHistogramBuckets,snapshotHistogramDistribution};
@@ -1,4 +1,4 @@
1
- import type{PropertyValues}from'lit';import{LyraChart,type LyraChartConfiguration}from'./chart.class.js';export{binnedBuckets}from'./histogram-buckets.js';
1
+ import type{PropertyValues}from'lit';import{LyraChart,type LyraChartConfiguration}from'./chart.class.js';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraHistogramDistribution}from'../../../utilities/data-preparation.js';export type{LyraHistogramDistribution}from'../../../utilities/data-preparation.js';import type{LyraChartPreparedData}from'./chart-prepared-data.js';export{binnedBuckets}from'./histogram-buckets.js';
2
2
  /**
3
3
  * `<lr-histogram>` — bins `values` into `bins` equal-width buckets and
4
4
  * renders them as a bar chart. Chart.js has no built-in histogram
@@ -7,6 +7,13 @@ import type{PropertyValues}from'lit';import{LyraChart,type LyraChartConfiguratio
7
7
  * Public collection properties take bounded, clone-owned readonly snapshots. Create a new
8
8
  * collection and reassign it after changes; mutating the assigned array does not update the view.
9
9
  *
10
+ * `distribution` supplies exact pre-binned whole-source counts without retaining raw samples.
11
+ * It takes precedence over values, bins and inherited preparedData. The plot/table/CSV contain
12
+ * only bins; the visible and accessible summary also reports invalid and out-of-range counts.
13
+ * Bin intervals are half-open except the final inclusive upper edge. Bins must fit maxRecords
14
+ * and the inherited table budget; incompatible distributions are visibly rejected, never sampled.
15
+ * Inherited preparedData without distribution is incompatible with histogram bin semantics.
16
+ *
10
17
  * @customElement lr-histogram
11
18
  * @status stable
12
19
  * @since 4.0.0
@@ -19,17 +26,25 @@ protected static readonly appendOrderedCollectionProperties:readonly string[];st
19
26
  values:readonly number[];
20
27
  /** Dataset label used for the legend, tooltip, table, and summary. */
21
28
  seriesLabel:string;
29
+ /** Exact bounded distribution, normally from prepareLyraHistogram. Property-only; null keeps
30
+ * the raw rolling-window route. At most 1,000 bins; maxRecords must admit every bin. A bounded
31
+ * own-data snapshot is taken on assignment or explicit requestUpdate(); accessors are rejected.
32
+ * Reassign or explicitly refresh after mutating a descriptor. Raw append calls are inactive
33
+ * while supplied, and assignment cancels any unfinished raw append. */
34
+ get distribution():LyraHistogramDistribution|null;set distribution(value:LyraHistogramDistribution|null);private _distribution;private distributionDirty;private distributionSnapshot?;private distributionProjection?;private distributionLocale?;private distributionLabel?;private refreshDistribution;protected preparedDataInput():LyraChartPreparedData|null;protected willUpdate(changed:PropertyValues):void;private readonly sampleBatches;private sampleTimer?;private committingSamples;
22
35
  /**
23
36
  * Appends raw finite samples to `values`, keeping a rolling window of the newest `maxSamples`
24
37
  * samples (at most 10,000, the `values` snapshot bound, which is also the default). The inherited
25
38
  * signature is retained so histogram remains substitutable for `LyraChart`; its category label
26
- * has no meaning for rebinned samples.
39
+ * has no meaning for rebinned samples. Invalid-heavy batches finish in bounded asynchronous
40
+ * chunks, in call order; assigning values or disconnecting cancels unfinished appends.
41
+ * Queued arrays remain caller-owned and must stay unchanged until their batch is applied.
27
42
  */
28
- appendSamples(values:readonly(number|null)[],maxSamples?:number):void;private normalizedConfig?;protected normalizeEffectiveConfig(config:LyraChartConfiguration|undefined):LyraChartConfiguration|undefined;
43
+ appendSamples(values:readonly(number|null)[],maxSamples?:number):void;private cancelSampleBatches;requestUpdate(name?:PropertyKey,oldValue?:unknown,options?:Parameters<LyraElement['requestUpdate']>[2]):void;disconnectedCallback():void;private continueSampleBatch;private normalizedConfig?;protected normalizeEffectiveConfig(config:LyraChartConfiguration|undefined):LyraChartConfiguration|undefined;
29
44
  /**
30
45
  * Inherited `LyraChart` signature, retained so histogram stays substitutable for its base class;
31
46
  * `_label` has no meaning for rebinned samples and is ignored. Prefer the histogram-specific
32
47
  * `appendSamples(values, maxSamples?)` alongside it — same behavior, without the unused label
33
48
  * parameter.
34
49
  */
35
- appendData(_label:string,values:(number|null)[],maxPoints?:number):void;protected chartContentChanged(changed:PropertyValues):boolean;}declare global{interface HTMLElementTagNameMap{'lr-histogram':LyraHistogram;}}
50
+ appendData(_label:string,values:(number|null)[],maxPoints?:number):void;protected inputLimitMessage():string;protected chartContentChanged(changed:PropertyValues):boolean;}declare global{interface HTMLElementTagNameMap{'lr-histogram':LyraHistogram;}}
@@ -1 +1 @@
1
- import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{property}from"lit/decorators.js";import{LyraChart}from"./chart.class.js";import{lockChartType}from"./chart-type-lock.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{specialistTokens}from"../../../internal/specialist-host-tokens.styles.js";import{normalizeHistogramBinCount}from"./histogram-bin.js";import{styles}from"./histogram.styles.js";import{chartSurfaceStyles}from"./chart-surface.styles.js";import{binnedBuckets}from"./histogram-buckets.js";import{binnedBuckets as binnedBuckets2}from"./histogram-buckets.js";import{bidiStyles}from"./chart-bidi.js";import{LYRA_DEFAULT_histogramFrequency}from"../../../internal/default-strings/charts.generated.js";const MAX_HISTOGRAM_SAMPLES=1e4;class LyraHistogram extends LyraChart{constructor(){super(...arguments),this.type="bar",this.bins=10,this.values=[],this.seriesLabel=""}static{this.defaultStrings={...super.defaultStrings,histogramFrequency:LYRA_DEFAULT_histogramFrequency}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["values"])}static{this.appendOrderedCollectionProperties=Object.freeze(["values"])}static{this.styles=[LyraElement.styles,specialistTokens,chartSurfaceStyles,styles,srOnly,bidiStyles]}appendSamples(values,maxSamples=0){const appended=values.filter(value=>typeof value=="number"&&Number.isFinite(value)),requested=Number.isFinite(maxSamples)?Math.max(0,Math.floor(maxSamples)):0,limit=requested>0?Math.min(requested,MAX_HISTOGRAM_SAMPLES):MAX_HISTOGRAM_SAMPLES;this.values=[...this.values,...appended].slice(-limit)}normalizeEffectiveConfig(config){if(!config)return;if(this.normalizedConfig?.source===config)return this.normalizedConfig.value;const normalized={...config};return delete normalized.type,delete normalized.data,this.normalizedConfig={source:config,value:normalized},normalized}appendData(_label,values,maxPoints=0){this.appendSamples(values,maxPoints)}chartContentChanged(changed){return super.chartContentChanged(changed)||["values","bins","seriesLabel"].some(name=>changed.has(name))}}__decorate([property({converter:{fromAttribute:value=>normalizeHistogramBinCount(value)}})],LyraHistogram.prototype,"bins",void 0),__decorate([property({attribute:!1})],LyraHistogram.prototype,"values",void 0),__decorate([property({attribute:"series-label"})],LyraHistogram.prototype,"seriesLabel",void 0);const derivedCache=new WeakMap;function derivedSeries(el,label){const buckets=binnedBuckets(el);let cached=derivedCache.get(el);return(cached?.buckets!==buckets||cached.label!==label)&&(cached={buckets,label,labels:Object.freeze(buckets.map(b=>b.label.replace(/^\u2066|\u2069$/gu,""))),datasets:Object.freeze([Object.freeze({label,data:Object.freeze(buckets.map(b=>b.count))})])},derivedCache.set(el,cached)),cached}Object.defineProperty(LyraHistogram.prototype,"labels",{configurable:!0,enumerable:!0,get(){return derivedSeries(this,this.seriesLabel||this.localize("histogramFrequency")).labels},set(_v){}}),Object.defineProperty(LyraHistogram.prototype,"datasets",{configurable:!0,enumerable:!0,get(){return derivedSeries(this,this.seriesLabel||this.localize("histogramFrequency")).datasets},set(_v){}}),lockChartType(LyraHistogram,"bar");export{LyraHistogram,binnedBuckets2 as binnedBuckets};
1
+ import{__decorate}from"tslib";import{collectionSupport,publicCollectionTruncation}from"../../../internal/collection-snapshot.js";import{property}from"lit/decorators.js";import{LyraChart,projectChartSeries}from"./chart.class.js";import{lockChartType}from"./chart-type-lock.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{specialistTokens}from"../../../internal/specialist-host-tokens.styles.js";import{normalizeHistogramBinCount}from"./histogram-bin.js";import{styles}from"./histogram.styles.js";import{chartSurfaceStyles}from"./chart-surface.styles.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{binnedBuckets,distributionBuckets,invalidateHistogramBuckets,snapshotHistogramDistribution}from"./histogram-buckets.js";import{binnedBuckets as binnedBuckets2}from"./histogram-buckets.js";import{bidiStyles}from"./chart-bidi.js";import{LYRA_DEFAULT_histogramDistributionRange,LYRA_DEFAULT_histogramDistributionSummary,LYRA_DEFAULT_histogramFrequency,LYRA_DEFAULT_histogramInputLimit}from"../../../internal/default-strings/charts.generated.js";import{LYRA_DEFAULT_chartSummarySeparator}from"../../../internal/default-strings/shared.generated.js";const MAX_HISTOGRAM_SAMPLES=1e4,incompatibleDistribution=Object.freeze({});class LyraHistogram extends LyraChart{constructor(){super(...arguments),this.type="bar",this.bins=10,this.values=[],this.seriesLabel="",this._distribution=null,this.distributionDirty=!0,this.sampleBatches=[],this.committingSamples=!1}static{this.defaultStrings={...super.defaultStrings,chartSummarySeparator:LYRA_DEFAULT_chartSummarySeparator,histogramDistributionRange:LYRA_DEFAULT_histogramDistributionRange,histogramDistributionSummary:LYRA_DEFAULT_histogramDistributionSummary,histogramFrequency:LYRA_DEFAULT_histogramFrequency,histogramInputLimit:LYRA_DEFAULT_histogramInputLimit}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["values"])}static{this.appendOrderedCollectionProperties=Object.freeze(["values"])}static{this.styles=[LyraElement.styles,specialistTokens,chartSurfaceStyles,styles,srOnly,bidiStyles]}get distribution(){return this._distribution}set distribution(value){const old=this._distribution;this._distribution=value,this.requestUpdate("distribution",old)}refreshDistribution(){if(this.distributionDirty&&(this.distributionDirty=!1,this.distributionSnapshot=void 0,this.distributionProjection=void 0,this._distribution!=null))try{const snapshot=snapshotHistogramDistribution(this._distribution),buckets=distributionBuckets(snapshot,this.effectiveLocale),count=snapshot.counts.validCount-snapshot.belowCount-snapshot.aboveCount;this.distributionProjection=Object.freeze({kind:"categories",revision:snapshot.revision,aggregation:"count",counts:Object.freeze({sourceCount:count,validCount:count,invalidCount:0}),categories:Object.freeze(buckets.map((bucket,index)=>Object.freeze({id:`bin${index}`,label:bucket.label.replace(/^\u2066|\u2069$/gu,"")}))),categoryCounts:snapshot.binCounts,series:Object.freeze([Object.freeze({id:"histogram",label:this.seriesLabel||this.localize("histogramFrequency"),values:snapshot.binCounts})])}),this.distributionSnapshot=snapshot}catch{}}preparedDataInput(){return this.refreshDistribution(),this._distribution!=null?this.distributionProjection??incompatibleDistribution:this.preparedData==null?null:incompatibleDistribution}willUpdate(changed){const locale=this.effectiveLocale,label=this.seriesLabel||this.localize("histogramFrequency");(locale!==this.distributionLocale||label!==this.distributionLabel)&&(this.distributionLocale=locale,this.distributionLabel=label,this.distributionDirty=!0,this._distribution!=null&&super.requestUpdate("preparedData",void 0)),super.willUpdate(changed)}emitPreparedSourceSelection(_datasetIndex,_index){}preparedSummary(){const snapshot=this.distributionSnapshot;if(!snapshot)return;const format=getNumberFormat(this.effectiveLocale),summary=this.localize("histogramDistributionSummary",void 0,{validCount:format.format(snapshot.counts.validCount),invalidCount:format.format(snapshot.counts.invalidCount),belowCount:format.format(snapshot.belowCount),aboveCount:format.format(snapshot.aboveCount)});return snapshot.domain?[summary,this.localize("histogramDistributionRange",void 0,{min:format.format(snapshot.domain.min),max:format.format(snapshot.domain.max)})].join(this.localize("chartSummarySeparator")):summary}appendSamples(values,maxSamples=0){if(this._distribution!=null||!Array.isArray(values))return;const requested=Number.isFinite(maxSamples)?Math.max(0,Math.floor(maxSamples)):0,limit=requested>0?Math.min(requested,MAX_HISTOGRAM_SAMPLES):MAX_HISTOGRAM_SAMPLES;this.sampleBatches.push({source:values,limit,newest:[],cursor:values.length-1}),this.sampleBatches.length===1&&this.continueSampleBatch()}cancelSampleBatches(){clearTimeout(this.sampleTimer),this.sampleTimer=void 0,this.sampleBatches&&(this.sampleBatches.length=0)}requestUpdate(name,oldValue,options){(name==="values"&&!this.committingSamples||name==="distribution"||name===void 0&&this._distribution!=null)&&this.cancelSampleBatches(),(name===void 0||["distribution","seriesLabel","locale","strings"].includes(String(name)))&&(this.distributionDirty=!0,invalidateHistogramBuckets(this),name!==void 0&&this._distribution!=null&&super.requestUpdate("preparedData",void 0),name==="distribution"&&this._distribution==null&&super.requestUpdate("preparedData",void 0)),super.requestUpdate(name,oldValue,options)}disconnectedCallback(){this.cancelSampleBatches(),super.disconnectedCallback()}continueSampleBatch(){const batch=this.sampleBatches[0];if(!batch)return;const end=Math.max(-1,batch.cursor-1e4);for(;batch.cursor>end&&batch.newest.length<batch.limit;batch.cursor--){let value;try{value=batch.source[batch.cursor]}catch{if(this.sampleBatches[0]!==batch)return;continue}if(this.sampleBatches[0]!==batch)return;typeof value=="number"&&Number.isFinite(value)&&batch.newest.push(value)}if(batch.cursor<0||batch.newest.length===batch.limit){for(let index=this.values.length-1;index>=0&&batch.newest.length<batch.limit;index--)batch.newest.push(this.values[index]);batch.newest.reverse(),this.sampleBatches.shift(),this.committingSamples=!0;try{this.withStreamedTableUpdate(()=>{this.values=batch.newest})}finally{this.committingSamples=!1}}this.sampleBatches.length&&(this.sampleTimer=setTimeout(()=>{this.sampleTimer=void 0,this.continueSampleBatch()},0))}normalizeEffectiveConfig(config){if(!config)return;if(this.normalizedConfig?.source===config)return this.normalizedConfig.value;const normalized={...config};return delete normalized.type,delete normalized.data,this.normalizedConfig={source:config,value:normalized},normalized}appendData(_label,values,maxPoints=0){this.appendSamples(values,maxPoints)}inputLimitMessage(){return this._distribution!=null?this.preparedSummary()??"":publicCollectionTruncation(this,"values")?this.localize("histogramInputLimit"):super.inputLimitMessage()}chartContentChanged(changed){return super.chartContentChanged(changed)||["values","bins","seriesLabel","distribution"].some(name=>changed.has(name))}}__decorate([property({converter:{fromAttribute:value=>normalizeHistogramBinCount(value)}})],LyraHistogram.prototype,"bins",void 0),__decorate([property({attribute:!1})],LyraHistogram.prototype,"values",void 0),__decorate([property({attribute:"series-label"})],LyraHistogram.prototype,"seriesLabel",void 0),__decorate([property({attribute:!1})],LyraHistogram.prototype,"distribution",null);const derivedCache=new WeakMap;function derivedSeries(el,label){const buckets=binnedBuckets(el);let cached=derivedCache.get(el);return(cached?.buckets!==buckets||cached.label!==label)&&(cached={buckets,label,labels:Object.freeze(buckets.map(b=>b.label.replace(/^\u2066|\u2069$/gu,""))),datasets:Object.freeze([projectChartSeries({label,data:Object.freeze(buckets.map(b=>b.count))})])},derivedCache.set(el,cached)),cached}Object.defineProperty(LyraHistogram.prototype,"labels",{configurable:!0,enumerable:!0,get(){return derivedSeries(this,this.seriesLabel||this.localize("histogramFrequency")).labels},set(_v){}}),Object.defineProperty(LyraHistogram.prototype,"datasets",{configurable:!0,enumerable:!0,get(){return derivedSeries(this,this.seriesLabel||this.localize("histogramFrequency")).datasets},set(_v){}}),lockChartType(LyraHistogram,"bar");export{LyraHistogram,binnedBuckets2 as binnedBuckets};
@@ -1,7 +1,11 @@
1
- import{LyraChart,type LyraChartType}from'./chart.class.js';
1
+ export type{LyraChartPreparedData,LyraChartSourcePointSelectDetail,LyraChartSourceCategorySelectDetail,LyraPreparedSeriesData,LyraPreparedCategoryData,LyraSeriesPointRef}from'./chart.class.js';import{LyraChart,type LyraChartType}from'./chart.class.js';
2
2
  /**
3
3
  * `<lr-line-chart>` — `<lr-chart>` with a `"line"` default and the mirrored writable type.
4
4
  *
5
+ * Prepared-data compatibility follows the current writable type: line accepts series, bar
6
+ * accepts series/categories, radial category types accept categories. Spatial types require
7
+ * their own source route and reject these prepared kinds.
8
+ *
5
9
  * @customElement lr-line-chart
6
10
  * @status stable
7
11
  * @since 4.0.0
@@ -1,4 +1,4 @@
1
- import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import'../../utility/live-region/live-region.class.js';import{type LyraChartChromeLegendPosition}from'./chart-chrome.js';import type{LyraChartDatumActivateDetail,LyraChartFormatter}from'./chart.class.js';export interface LyraLiteChartSeries{readonly label:string;readonly data:readonly(number|null)[];
1
+ import{type LyraChartPreparedData,type LyraChartSourcePointSelectDetail,type LyraChartSourceCategorySelectDetail}from'./chart-prepared-data.js';import type{LyraSeriesPointRef}from'../../../utilities/data-preparation.js';export type{LyraChartPreparedData,LyraChartSourcePointSelectDetail,LyraChartSourceCategorySelectDetail}from'./chart-prepared-data.js';export type{LyraPreparedSeriesData,LyraPreparedCategoryData,LyraSeriesPointRef}from'../../../utilities/data-preparation.js';import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import'../../utility/live-region/live-region.class.js';import{type LyraChartChromeLegendPosition}from'./chart-chrome.js';import type{LyraChartDatumActivateDetail,LyraChartFormatter}from'./chart.class.js';export interface LyraLiteChartSeries{readonly label:string;readonly data:readonly(number|null)[];
2
2
  /** A CSS color. Invalid values and `url()` paint servers fall back to the semantic categorical
3
3
  * color keyed by dataset index. */
4
4
  readonly color?:string;}export type LyraLiteChartType='bar'|'line';
@@ -17,7 +17,7 @@ export type LyraLiteChartLayout='fit'|'scroll';export type LyraLiteChartExportFo
17
17
  * so `datasetIndex` and `seriesLabel` are `null` for `kind: 'total'`. */
18
18
  export interface LyraLiteChartTableCellContext{kind:LyraLiteChartTableCellKind;datasetIndex:number|null;index:number;label:string;seriesLabel:string|null;}
19
19
  /** Formats one finite numeric value in the built-in multi-series accessible table. */
20
- export type LyraLiteChartTableCellFormatter=(value:number,context:LyraLiteChartTableCellContext)=>string;export interface LyraLiteChartEventMap{'lr-datum-activate':CustomEvent<LyraChartDatumActivateDetail<'bar'|'point',number|null>>;
20
+ export type LyraLiteChartTableCellFormatter=(value:number,context:LyraLiteChartTableCellContext)=>string;export interface LyraLiteChartEventMap{'lr-source-point-select':CustomEvent<LyraChartSourcePointSelectDetail>;'lr-source-category-select':CustomEvent<LyraChartSourceCategorySelectDetail>;'lr-datum-activate':CustomEvent<LyraChartDatumActivateDetail<'bar'|'point',number|null>>;
21
21
  /** A bar/point was activated by pointer or keyboard. */
22
22
  'lr-point-activate':CustomEvent<{datasetIndex:number;index:number;label:string|undefined;value:number|null;}>;}
23
23
  /**
@@ -87,7 +87,17 @@ export type LyraLiteChartTableCellFormatter=(value:number,context:LyraLiteChartT
87
87
  * per mark (`pointText`), not a multi-item tooltip with separate regions for several datasets
88
88
  * sharing a hovered category.
89
89
  *
90
+ * Prepared inputs replace legacy normalization with bounded whole-source summaries. Series use
91
+ * original numeric x coordinates and original source indices, and reject stacking. Generated lists
92
+ * and synchronous CSV/SVG export contain only the displayed summary/refinement. CSV keeps its
93
+ * label/series columns and writes each independently indexed observation on its own row, with
94
+ * original index and coordinates in the label. barX/barSlotWidth apply only to legacy/categories.
95
+ *
90
96
  * @customElement lr-lite-chart
97
+ * @event lr-source-point-select - A prepared observation was activated; detail contains revision,
98
+ * seriesId, sourceIndex and point { x, y }.
99
+ * @event lr-source-category-select - A prepared category was activated; detail contains revision,
100
+ * seriesId, categoryId, value and observationCount.
91
101
  * @event lr-datum-activate - Fired when a bar/point is activated. The
92
102
  * normalized detail includes `kind`, `datasetIndex`, `index`, `label`, and
93
103
  * `value` across the chart family.
@@ -96,7 +106,7 @@ export type LyraLiteChartTableCellFormatter=(value:number,context:LyraLiteChartT
96
106
  * number, label: string | undefined, value: number | null }` — same shape
97
107
  * as `lr-chart`'s `lr-point-activate`.
98
108
  * @csspart base - The host's flex layout wrapper.
99
- * @csspart description - The visually hidden accessible chart description, when set.
109
+ * @csspart description - Accessible chart summary; also the visible prepared-input loading/error message.
100
110
  * @csspart grid-line - Each horizontal gridline.
101
111
  * @csspart axis-label - Each axis tick label.
102
112
  * @csspart axis-title - The x/y axis title text, when set.
@@ -128,8 +138,9 @@ export type LyraLiteChartTableCellFormatter=(value:number,context:LyraLiteChartT
128
138
  * `data-list` when there is more than one dataset so a screen-reader user hears series grouping
129
139
  * rather than one flattened N×M sequence.
130
140
  * @csspart table - The generated semantic table inside the `data-table` container.
131
- * @csspart data-truncation - Explanation shown when built-in marks/data alternatives sample more
132
- * than 1,000 records.
141
+ * @csspart limit - Explanation shown when admission retains only part of the supplied input.
142
+ * @csspart data-truncation - Explanation shown when built-in marks/data alternatives sample
143
+ * the retained input within the record and width budgets.
133
144
  * @slot data-table - An optional consumer-provided complete/paginated accessible data alternative.
134
145
  * @cssprop [--lr-chart-height=var(--lr-size-280px)] - Consumer-owned chart height. The `height`
135
146
  * property supplies only a private fallback, so this public token always wins when set.
@@ -164,7 +175,31 @@ export type LyraLiteChartTableCellFormatter=(value:number,context:LyraLiteChartT
164
175
  * @status stable
165
176
  * @since 4.0.0
166
177
  */
167
- export declare class LyraLiteChart extends LyraElement<LyraLiteChartEventMap>{protected static collectionSupport:import("../../../internal/lyra-element.js").LyraCollectionSupport;protected static readonly ownedCollectionProperties:readonly string[];static styles:import("lit").CSSResultGroup[];type:LyraLiteChartType;labels:readonly string[];private _datasets;private datasetsSource;
178
+ export declare class LyraLiteChart extends LyraElement<LyraLiteChartEventMap>{protected static collectionSupport:import("../../../internal/lyra-element.js").LyraCollectionSupport;protected static readonly ownedCollectionProperties:readonly string[];static styles:import("lit").CSSResultGroup[];type:LyraLiteChartType;private _preparedData;
179
+ /**
180
+ * Property-only immutable whole-source summary. Takes precedence over labels and datasets.
181
+ * Series require line/bar; categories require bar.
182
+ * All render entries (including gap separators) must fit aggregate maxRecords, with two slots
183
+ * reserved for an isolated exact-point overlay. Rectangular table cells stay at most 1,000;
184
+ * semantic samples plus the overlay stay at most 9,000. Four samples without gaps need at
185
+ * least six maxRecords slots; each line gap needs another slot. Oversized summaries fail visibly.
186
+ * Ordered series use original numeric x positions and reject stacked=true. barX and
187
+ * barSlotWidth and category synchronization affect only legacy/category data. CSV exports one displayed observation per
188
+ * row with source index and coordinates in its label; other series cells remain empty.
189
+ * Reassign or explicitly requestUpdate after changing a host-authored descriptor/revision.
190
+ */
191
+ get preparedData():LyraChartPreparedData|null;set preparedData(value:LyraChartPreparedData|null);private preparedDirty;private preparedActive;private preparedChanged;private preparedInvalid;private preparedPending;private preparedRequestFailed;private announcedPreparedInvalid;private preparedBaseModel?;private preparedModel?;private preparedEffective?;private readonly preparedRequests;private refreshPreparedModel;
192
+ /**
193
+ * Resolves one original source position and adds a bounded isolated overlay. Returns false for
194
+ * missing, invalid, canceled or obsolete points. It never interprets sourceIndex as a peer index
195
+ * or scans the original source. An optional queryRange refines a bounded index neighborhood
196
+ * around the revealed point; no source index is inferred from an x coordinate.
197
+ */
198
+ revealSourcePoint(ref:LyraSeriesPointRef):Promise<boolean>;private get displayDatasets();private get displayLabels();private datumLabel;private preparedX;private preparedDescription;labels:readonly string[];
199
+ /** Maximum sampled records across all series, bounded to 2–1,000 (default 1,000).
200
+ * Fit layouts also respect the measured width. Sampling retains endpoints and bucket extrema;
201
+ * callbacks and events continue to use source indexes. */
202
+ maxRecords:number;private _datasets;private datasetsTruncated;private readonly datasetsSources;
168
203
  /**
169
204
  * Series with an array `data` payload. Malformed entries are dropped without hiding siblings.
170
205
  * A bounded, clone-owned readonly snapshot: each series keeps its first 10,000 values (fewer
@@ -240,7 +275,7 @@ barWidth:number;
240
275
  * derived slot; a non-finite, zero or negative value falls back to it too, and a finite value is
241
276
  * capped so the whole category run stays within 1,000,000px. */
242
277
  barSlotWidth?:number;
243
- /** Caps how many x-axis category labels render text once `this.labels.length` exceeds it,
278
+ /** Caps how many x-axis category labels render text once `this.displayLabels.length` exceeds it,
244
279
  * decimating roughly evenly while always keeping the first and last label. `'auto'` derives a
245
280
  * deterministic cap from the resolved plot width and widest rendered category label using the
246
281
  * same width estimate as label ellipsis. Bars themselves always render regardless — only the
@@ -343,20 +378,25 @@ selectedIndices:readonly number[];private hostAccessibleLabel;
343
378
  /** Accessible chart name. A host `aria-label` wins. */
344
379
  label:string|null;
345
380
  /** Optional accessible chart description. */
346
- description:string|null;private forcedColorPatternId;private descriptionId;private plotWidth;private plotHeight;private fitMeasurementAvailable;private activeMarkIndex;private syncPlot;private syncCategoryPositions;private svgEl?;private liveRegion?;private resizeObserver?;private resizeObserverDocument?;private resizeObserverTarget?;private resizeObserverGeneration;private axisTitleTargets;private axisTitleFrame?;private axisTitleFits;private categoryLabelFits;private forcedColorsQuery?;private forcedColorsWindow?;private refocusMarkAfterUpdate;private refocusChartAfterUpdate;private readonly announcements;private lastDataTruncationAnnouncement;private isMounting;
381
+ description:string|null;private forcedColorPatternId;private descriptionId;private plotWidth;private plotHeight;private fitMeasurementAvailable;private _activeMarkIndex;private get activeMarkIndex();private set activeMarkIndex(value);private syncPlot;private syncCategoryPositions;private svgEl?;private liveRegion?;private resizeObserver?;private resizeObserverDocument?;private resizeObserverTarget?;private resizeObserverGeneration;private axisTitleTargets;private axisTitleFrame?;private axisTitleFits;private readonly themeWatcher;private refocusMarkAfterUpdate;private refocusChartAfterUpdate;private readonly announcements;private lastDataTruncationAnnouncement;private isMounting;
347
382
  /**
348
383
  * Appends one streamed category to every series and keeps a rolling window of the newest
349
384
  * `maxPoints` categories. The window never exceeds the `datasets` bound (10,000 values per
350
385
  * series, fewer when more than four series share 45,000 values), which is also the default.
351
386
  * This is a controlled convenience method: it replaces `labels`/`datasets` with new arrays, so a
352
387
  * host can listen for the property update or continue treating the chart as a normal controlled
353
- * component. Missing series values become `null` rather than shifting alignment.
388
+ * component. Work is O(retained window). Missing series values become `null` rather than shifting alignment.
389
+ * Visually hidden multi-series table formatting coalesces until idle (at most 250 ms); visible
390
+ * tables, single-series lists, keyboard summaries and exports always use current data.
391
+ * Inactive while preparedData is supplied.
354
392
  */
355
393
  appendData(label:string,values:(number|null)[],maxPoints?:number):void;
356
394
  /**
357
395
  * Returns a spreadsheet-safe CSV snapshot over the complete canonical record domain: the
358
396
  * greatest of the label count and every series' data count. Missing labels and values become
359
- * empty aligned cells, so a longer or ragged series is never truncated or shifted.
397
+ * empty aligned cells, so a longer or ragged series is never truncated or shifted. Prepared
398
+ * ordered series export each displayed observation on a separate row, with original index
399
+ * and coordinates in its label and empty cells for other series. No source read is started.
360
400
  */
361
401
  exportData(format:LyraLiteChartExportFormat):string;attributeChangedCallback(name:string,oldValue:string|null,value:string|null):void;
362
402
  /**
@@ -365,4 +405,4 @@ exportData(format:LyraLiteChartExportFormat):string;attributeChangedCallback(nam
365
405
  * Duplicate labels choose the first eligible recipient category; unique labels are recommended.
366
406
  * Peer updates are visual only and never move focus, announce, activate or select data.
367
407
  */
368
- syncGroup:string;private readonly chartSync;connectedCallback():void;private armResizeObserver;disconnectedCallback():void;adoptedCallback():void;private readonly onForcedColorsChange;private armForcedColorsWatcher;private disarmForcedColorsWatcher;private resetResizeObserver;protected firstUpdated(changed:PropertyValues):void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private fitAxisTitles;private fitOneCategoryLabel;private fitCategoryLabels;private syncAxisTitleTargets;private queueAxisTitleFit;private colorFor;private get effectiveType();private forcedColors;private markPaint;private legendEncoding;private markDash;private renderForcedColorPatterns;private resolvePointText;private formatTableCell;private tableTotalAt;private recordCount;private recordSample;private recordSampleMemo?;private marksMemo?;private generatedDataIsSampled;private dataTruncationMessage;private hasCustomDataTable;private interactiveMarks;private awaitingFitMeasurement;private refreshFitMeasurementAvailability;private markIndexMap;private normalizedMarkIndex;private markSummary;private dataTableRows?;requestUpdate(...args:Parameters<LyraElement['requestUpdate']>):void;private renderDataTableRows;private dataListMemo?;private dataListItems;private markAnnouncement;private markListItem;private onMarkFocus;private focusMark;private barValueToY;private valueFraction;private logDomainFloor;private smallestPositive?;private effectiveMinBarHeight;private roundedBarPath;private domain;private emitPoint;private emitNearestLinePoint;private publishSyncMark;private syncPresentation;private onPointKeyDown;private formatValueAxisTick;private renderGrid;private renderBars;private renderLines;render():TemplateResult;private resolvedValueAxisGutter;private widestEstimatedCategoryLabel;private visibleLabelIndexes;private fixedBarSlotWidth;private displayCategoryLabel;private renderChart;}declare global{interface HTMLElementTagNameMap{'lr-lite-chart':LyraLiteChart;}}
408
+ syncGroup:string;private readonly chartSync;connectedCallback():void;private armResizeObserver;disconnectedCallback():void;adoptedCallback():void;private resetResizeObserver;protected firstUpdated(changed:PropertyValues):void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private fitAxisTitles;private fitOneCategoryLabel;private fitCategoryBatch;private fitCategoryLabels;private syncAxisTitleTargets;private queueAxisTitleFit;private colorFor;private get effectiveType();private forcedColorsMemo?;private forcedColors;private markPaint;private legendEncoding;private markDash;private renderForcedColorPatterns;private resolvePointText;private formatTableCell;private tableTotalAt;private recordCount;private recordSample;private recordSampleMemo?;private marksMemo?;private generatedDataIsSampled;private inputLimitMessage;private dataTruncationMessage;private hasCustomDataTable;private interactiveMarks;private awaitingFitMeasurement;private refreshFitMeasurementAvailability;private markIndexMap;private normalizedMarkIndex;private markSummary;private dataTableRows?;private deferredTableRows?;private cancelDeferredTable?;private deferredTableGeneration;private streamingTableUpdate;private clearDeferredTable;private deferStreamedTable;requestUpdate(...args:Parameters<LyraElement['requestUpdate']>):void;private renderDataTableRows;private dataListMemo?;private dataListItems;private markAnnouncement;private markListItem;private onMarkFocus;private focusMark;private barValueToY;private valueFraction;private logDomainFloor;private smallestPositive?;private effectiveMinBarHeight;private roundedBarPath;private domain;private emitPoint;private emitNearestLinePoint;private publishSyncMark;private syncPresentation;private onPointKeyDown;private formatValueAxisTick;private renderGrid;private renderBars;private renderLines;render():TemplateResult;private resolvedValueAxisGutter;private widestEstimatedCategoryLabel;private visibleLabelIndexes;private fixedBarSlotWidth;private displayCategoryLabel;private renderChart;}declare global{interface HTMLElementTagNameMap{'lr-lite-chart':LyraLiteChart;}}