@aceshooting/lyra-ui 9.1.1 → 10.0.1

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 (578) hide show
  1. package/CHANGELOG.md +597 -0
  2. package/custom-elements.json +1 -1
  3. package/dist/cli/migrate-wa.mjs +52 -0
  4. package/dist/cli/migration-contract.json +1 -1
  5. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
  6. package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +0 -16
  7. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +1 -1
  8. package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.styles.js +7 -5
  9. package/dist/components/agent-tools/agent-run/agent-run.class.js +2 -2
  10. package/dist/components/agent-tools/agent-run/agent-run.styles.js +0 -13
  11. package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +7 -4
  12. package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +7 -5
  13. package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +0 -3
  14. package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +3 -5
  15. package/dist/components/agent-tools/commit-card/commit-card.styles.js +0 -10
  16. package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +11 -6
  17. package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +0 -46
  18. package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +0 -7
  19. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +2 -2
  20. package/dist/components/agent-tools/prompt-studio/prompt-studio.styles.js +0 -15
  21. package/dist/components/agent-tools/result-card/result-card.styles.js +0 -7
  22. package/dist/components/agent-tools/result-card/result-field.styles.js +0 -5
  23. package/dist/components/agent-tools/schema-viewer/schema-viewer.styles.js +0 -3
  24. package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +0 -15
  25. package/dist/components/agent-tools/stack-trace/stack-trace.styles.js +0 -20
  26. package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
  27. package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +0 -3
  28. package/dist/components/agent-tools/task-list/task-list.styles.js +0 -15
  29. package/dist/components/agent-tools/terminal/terminal.class.d.ts +11 -6
  30. package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
  31. package/dist/components/agent-tools/terminal/terminal.styles.js +0 -46
  32. package/dist/components/agent-tools/test-results/test-results.class.js +2 -2
  33. package/dist/components/agent-tools/test-results/test-results.styles.js +0 -5
  34. package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +0 -41
  35. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +0 -41
  36. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +0 -30
  37. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +6 -6
  38. package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +0 -5
  39. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +0 -20
  40. package/dist/components/agent-tools/tool-result-view/tool-result-view.styles.js +0 -4
  41. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +0 -21
  42. package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +7 -31
  43. package/dist/components/charts/chart/box-plot.styles.js +0 -20
  44. package/dist/components/charts/chart/chart-colors.d.ts +1 -1
  45. package/dist/components/charts/chart/chart-colors.js +1 -1
  46. package/dist/components/charts/chart/chart-core-loader.d.ts +1 -0
  47. package/dist/components/charts/chart/chart-core-loader.js +1 -1
  48. package/dist/components/charts/chart/chart-feature-loader.d.ts +35 -0
  49. package/dist/components/charts/chart/chart-feature-loader.js +1 -1
  50. package/dist/components/charts/chart/chart.class.d.ts +93 -0
  51. package/dist/components/charts/chart/chart.class.js +3 -3
  52. package/dist/components/charts/chart/chart.styles.js +0 -27
  53. package/dist/components/charts/chart/lite-chart.class.d.ts +20 -1
  54. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  55. package/dist/components/charts/chart/lite-chart.styles.js +0 -27
  56. package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +20 -0
  57. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +3 -1
  58. package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +3 -0
  59. package/dist/components/conversation/audio-visualizer/audio-visualizer.styles.js +0 -7
  60. package/dist/components/conversation/branch-picker/branch-picker.styles.js +0 -3
  61. package/dist/components/conversation/chat-composer/chat-composer.styles.js +0 -51
  62. package/dist/components/conversation/chat-message/chat-message.styles.js +7 -35
  63. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  64. package/dist/components/conversation/chat-viewport/chat-viewport.styles.js +0 -33
  65. package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
  66. package/dist/components/conversation/checkpoint/checkpoint.styles.js +0 -3
  67. package/dist/components/conversation/code-block/code-block-shared.d.ts +5 -2
  68. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  69. package/dist/components/conversation/code-block/code-block.styles.js +4 -95
  70. package/dist/components/conversation/code-block/code-loader.d.ts +11 -0
  71. package/dist/components/conversation/code-block/code-loader.js +1 -1
  72. package/dist/components/conversation/code-block/shiki-types.d.ts +12 -0
  73. package/dist/components/conversation/code-block/shiki-types.js +1 -1
  74. package/dist/components/conversation/conversation-item/conversation-item.styles.js +8 -54
  75. package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
  76. package/dist/components/conversation/generation-metrics/generation-metrics.styles.js +0 -17
  77. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  78. package/dist/components/conversation/markdown/markdown.styles.js +0 -41
  79. package/dist/components/conversation/message-actions/message-actions.styles.js +0 -3
  80. package/dist/components/conversation/message-feedback/message-feedback.styles.js +0 -35
  81. package/dist/components/conversation/message-parts/message-parts.class.d.ts +1 -1
  82. package/dist/components/conversation/message-parts/message-parts.styles.js +0 -5
  83. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  84. package/dist/components/conversation/model-select/model-select.styles.js +12 -47
  85. package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +0 -6
  86. package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -0
  87. package/dist/components/conversation/prompt-input/prompt-input.styles.js +0 -10
  88. package/dist/components/conversation/push-to-talk/push-to-talk.styles.js +0 -8
  89. package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -11
  90. package/dist/components/conversation/stream-status/stream-status.styles.js +0 -16
  91. package/dist/components/conversation/streaming-text/streaming-text.styles.js +0 -15
  92. package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +0 -5
  93. package/dist/components/conversation/thread-list/thread-list.styles.js +0 -23
  94. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +16 -4
  95. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  96. package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +0 -1
  97. package/dist/components/conversation/typing-indicator/typing-indicator.styles.js +0 -23
  98. package/dist/components/conversation/usage-badge/usage-badge.styles.js +0 -3
  99. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  100. package/dist/components/conversation/voice-picker/voice-picker.styles.js +9 -29
  101. package/dist/components/conversation/widget-renderer/resolve.d.ts +2 -0
  102. package/dist/components/conversation/widget-renderer/resolve.js +1 -1
  103. package/dist/components/data/calendar/calendar.class.d.ts +15 -2
  104. package/dist/components/data/calendar/calendar.class.js +2 -2
  105. package/dist/components/data/calendar/calendar.styles.js +2 -28
  106. package/dist/components/data/condition-builder/condition-builder.class.d.ts +10 -6
  107. package/dist/components/data/condition-builder/condition-builder.class.js +2 -2
  108. package/dist/components/data/condition-builder/condition-builder.styles.js +0 -6
  109. package/dist/components/data/context-meter/context-meter.styles.js +0 -24
  110. package/dist/components/data/data-grid/data-grid.class.js +3 -3
  111. package/dist/components/data/data-grid/data-grid.styles.js +0 -22
  112. package/dist/components/data/document-library/document-library.class.js +2 -2
  113. package/dist/components/data/document-library/document-library.styles.js +0 -4
  114. package/dist/components/data/env-list/env-list.class.js +1 -1
  115. package/dist/components/data/env-list/env-list.styles.js +7 -4
  116. package/dist/components/data/file-tree/file-tree.class.d.ts +12 -0
  117. package/dist/components/data/flow-canvas/flow-canvas.styles.js +12 -19
  118. package/dist/components/data/flow-controls/flow-controls.class.js +2 -2
  119. package/dist/components/data/flow-controls/flow-controls.styles.js +3 -36
  120. package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
  121. package/dist/components/data/flow-minimap/flow-minimap.styles.js +0 -9
  122. package/dist/components/data/flow-node/flow-node.styles.js +0 -23
  123. package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
  124. package/dist/components/data/flow-run-status/flow-run-status.styles.js +0 -7
  125. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +0 -7
  126. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
  127. package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +0 -10
  128. package/dist/components/data/heatmap/heatmap-scale.d.ts +20 -0
  129. package/dist/components/data/heatmap/heatmap-scale.js +1 -1
  130. package/dist/components/data/heatmap/heatmap.class.d.ts +84 -1
  131. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  132. package/dist/components/data/heatmap/heatmap.styles.js +0 -54
  133. package/dist/components/data/pagination/pagination.styles.js +23 -46
  134. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +34 -1
  135. package/dist/components/data/sequence-strip/sequence-strip.class.js +5 -2
  136. package/dist/components/data/sequence-strip/sequence-strip.styles.js +14 -20
  137. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  138. package/dist/components/data/stat/stat.styles.js +0 -67
  139. package/dist/components/data/table/table.class.d.ts +42 -3
  140. package/dist/components/data/table/table.class.js +4 -4
  141. package/dist/components/data/table/table.styles.js +20 -91
  142. package/dist/components/data/timeline/timeline-item.styles.js +0 -30
  143. package/dist/components/data/timeline/timeline.class.d.ts +89 -1
  144. package/dist/components/data/timeline/timeline.class.js +2 -2
  145. package/dist/components/data/timeline/timeline.styles.js +111 -31
  146. package/dist/components/data/tree/tree-item.styles.js +1 -28
  147. package/dist/components/data/tree/tree.class.js +2 -2
  148. package/dist/components/data/tree/tree.styles.js +0 -6
  149. package/dist/components/data/word-cloud/word-cloud.styles.js +0 -5
  150. package/dist/components/forms/button/button.class.js +1 -1
  151. package/dist/components/forms/button/button.styles.js +0 -105
  152. package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
  153. package/dist/components/forms/checkbox/checkbox.class.js +1 -1
  154. package/dist/components/forms/checkbox/checkbox.styles.js +0 -39
  155. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +21 -2
  156. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  157. package/dist/components/forms/checkbox-group/checkbox-group.styles.js +0 -18
  158. package/dist/components/forms/code-editor/code-editor.styles.js +0 -30
  159. package/dist/components/forms/color-picker/color-picker.class.js +2 -2
  160. package/dist/components/forms/color-picker/color-picker.styles.js +0 -69
  161. package/dist/components/forms/combobox/combobox.class.js +2 -2
  162. package/dist/components/forms/combobox/combobox.styles.js +22 -111
  163. package/dist/components/forms/combobox/option.styles.js +7 -1
  164. package/dist/components/forms/date-picker/date-input.class.js +1 -1
  165. package/dist/components/forms/date-picker/date-input.styles.js +12 -67
  166. package/dist/components/forms/date-picker/date-picker.class.d.ts +1 -0
  167. package/dist/components/forms/date-picker/date-picker.class.js +22 -20
  168. package/dist/components/forms/date-picker/date-picker.styles.js +36 -29
  169. package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +6 -3
  170. package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
  171. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +8 -1
  172. package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
  173. package/dist/components/forms/emoji-picker/emoji-picker.styles.js +3 -41
  174. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  175. package/dist/components/forms/icon-button/icon-button.styles.js +0 -16
  176. package/dist/components/forms/input/input.styles.js +0 -54
  177. package/dist/components/forms/input/number-input.styles.d.ts +4 -5
  178. package/dist/components/forms/input/number-input.styles.js +0 -11
  179. package/dist/components/forms/input/time-input-shared.d.ts +11 -0
  180. package/dist/components/forms/input/time-input-shared.js +1 -1
  181. package/dist/components/forms/input/time-input.class.d.ts +11 -2
  182. package/dist/components/forms/input/time-input.class.js +1 -1
  183. package/dist/components/forms/input/time-input.styles.js +0 -6
  184. package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
  185. package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -26
  186. package/dist/components/forms/otp-input/otp-input.class.js +3 -3
  187. package/dist/components/forms/otp-input/otp-input.styles.js +0 -16
  188. package/dist/components/forms/phone-input/phone-input.class.d.ts +9 -1
  189. package/dist/components/forms/phone-input/phone-input.class.js +2 -2
  190. package/dist/components/forms/phone-input/phone-input.styles.js +0 -37
  191. package/dist/components/forms/radio/radio-button.styles.js +1 -30
  192. package/dist/components/forms/radio/radio-group.styles.js +0 -4
  193. package/dist/components/forms/radio/radio.styles.js +0 -44
  194. package/dist/components/forms/rubric-form/rubric-form.styles.js +0 -5
  195. package/dist/components/forms/select/select.class.js +1 -1
  196. package/dist/components/forms/select/select.styles.js +14 -114
  197. package/dist/components/forms/slider/slider.styles.js +0 -55
  198. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +0 -11
  199. package/dist/components/forms/swatch-picker/swatch-picker.class.js +2 -2
  200. package/dist/components/forms/swatch-picker/swatch-picker.styles.js +0 -77
  201. package/dist/components/forms/switch/switch.class.d.ts +3 -0
  202. package/dist/components/forms/switch/switch.class.js +1 -1
  203. package/dist/components/forms/switch/switch.styles.js +0 -37
  204. package/dist/components/forms/textarea/textarea.styles.js +0 -28
  205. package/dist/components/forms/time-range/time-range.styles.js +12 -84
  206. package/dist/components/forms/token-input/token-input.class.d.ts +23 -9
  207. package/dist/components/forms/token-input/token-input.class.js +1 -1
  208. package/dist/components/forms/token-input/token-input.styles.js +1 -54
  209. package/dist/components/layout/app-rail/app-rail-item.class.js +2 -2
  210. package/dist/components/layout/app-rail/app-rail-item.styles.js +0 -13
  211. package/dist/components/layout/app-rail/app-rail.class.d.ts +5 -0
  212. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  213. package/dist/components/layout/app-rail/app-rail.styles.js +0 -46
  214. package/dist/components/layout/button-group/button-group.styles.js +0 -6
  215. package/dist/components/layout/card/card.class.d.ts +12 -0
  216. package/dist/components/layout/card/card.styles.js +3 -11
  217. package/dist/components/layout/carousel/carousel.styles.js +0 -1
  218. package/dist/components/layout/command-palette/command-palette.class.d.ts +8 -0
  219. package/dist/components/layout/command-palette/command-palette.class.js +3 -1
  220. package/dist/components/layout/command-palette/command-palette.styles.js +1 -13
  221. package/dist/components/layout/control-group/control-group.styles.js +0 -7
  222. package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +6 -25
  223. package/dist/components/layout/details/accordion.class.d.ts +13 -0
  224. package/dist/components/layout/details/accordion.class.js +1 -1
  225. package/dist/components/layout/details/details.class.js +1 -1
  226. package/dist/components/layout/details/details.styles.js +0 -12
  227. package/dist/components/layout/dock-panel/dock-panel.styles.js +0 -45
  228. package/dist/components/layout/drilldown-panel/drilldown-panel.class.d.ts +2 -0
  229. package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
  230. package/dist/components/layout/drilldown-panel/drilldown-panel.styles.js +0 -4
  231. package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
  232. package/dist/components/layout/filter-bar/filter-bar.styles.js +0 -9
  233. package/dist/components/layout/menu/menu-item.class.d.ts +5 -0
  234. package/dist/components/layout/menu/menu-item.class.js +1 -1
  235. package/dist/components/layout/menu/menu-item.styles.js +0 -49
  236. package/dist/components/layout/menu/menu-label.styles.js +0 -2
  237. package/dist/components/layout/menu/menu.styles.js +0 -18
  238. package/dist/components/layout/multi-split/multi-split.styles.js +0 -63
  239. package/dist/components/layout/page/page.class.d.ts +4 -0
  240. package/dist/components/layout/page/page.class.js +1 -1
  241. package/dist/components/layout/reorder-list/reorder-item.styles.js +0 -4
  242. package/dist/components/layout/responsive-panel/responsive-panel.styles.js +0 -27
  243. package/dist/components/layout/scroller/scroller.styles.js +0 -20
  244. package/dist/components/layout/segmented/segmented.class.d.ts +7 -1
  245. package/dist/components/layout/segmented/segmented.class.js +1 -1
  246. package/dist/components/layout/segmented/segmented.styles.js +69 -37
  247. package/dist/components/layout/split-panel/split-panel.styles.js +1 -7
  248. package/dist/components/layout/stepper/stepper.class.d.ts +8 -1
  249. package/dist/components/layout/stepper/stepper.class.js +1 -1
  250. package/dist/components/layout/stepper/stepper.styles.js +140 -41
  251. package/dist/components/layout/tab-group/tab-group.class.d.ts +4 -1
  252. package/dist/components/layout/tab-group/tab-group.styles.js +9 -75
  253. package/dist/components/layout/tab-group/tab.styles.js +0 -2
  254. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +4 -4
  255. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  256. package/dist/components/layout/virtual-list/virtual-list.styles.js +0 -68
  257. package/dist/components/layout/widget/widget.class.d.ts +5 -1
  258. package/dist/components/layout/widget/widget.class.js +1 -1
  259. package/dist/components/layout/widget/widget.styles.js +97 -40
  260. package/dist/components/media/animated-image/animated-image.class.d.ts +3 -0
  261. package/dist/components/media/animated-image/animated-image.class.js +1 -1
  262. package/dist/components/media/animated-image/animated-image.styles.js +0 -28
  263. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +1 -1
  264. package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
  265. package/dist/components/media/attachment-chip/attachment-chip.styles.js +0 -31
  266. package/dist/components/media/attachment-trigger/attachment-trigger.class.js +3 -3
  267. package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +0 -40
  268. package/dist/components/media/av-player/av-player.class.d.ts +5 -6
  269. package/dist/components/media/av-player/av-player.class.js +1 -1
  270. package/dist/components/media/av-player/av-player.styles.js +0 -45
  271. package/dist/components/media/avatar/avatar.styles.js +3 -16
  272. package/dist/components/media/file-icon/file-icon.class.d.ts +1 -2
  273. package/dist/components/media/file-icon/file-icon.class.js +1 -1
  274. package/dist/components/media/file-input/file-input.class.d.ts +12 -0
  275. package/dist/components/media/file-input/file-input.styles.js +3 -24
  276. package/dist/components/media/flag/flag.class.d.ts +20 -0
  277. package/dist/components/media/flag/flag.class.js +4 -2
  278. package/dist/components/media/flag/flag.styles.js +7 -1
  279. package/dist/components/media/flag/language-map.d.ts +10 -0
  280. package/dist/components/media/flag/language-map.js +1 -1
  281. package/dist/components/media/image-comparer/image-comparer.styles.js +4 -33
  282. package/dist/components/media/image-viewer/image-viewer.class.js +0 -2
  283. package/dist/components/media/image-viewer/image-viewer.styles.js +7 -27
  284. package/dist/components/media/lightbox/lightbox.class.js +0 -2
  285. package/dist/components/media/lightbox/lightbox.styles.js +0 -21
  286. package/dist/components/media/map/map-loader.d.ts +19 -1
  287. package/dist/components/media/map/map-loader.js +1 -1
  288. package/dist/components/media/map/map.class.d.ts +141 -1
  289. package/dist/components/media/map/map.class.js +15 -3
  290. package/dist/components/media/map/map.styles.js +20 -17
  291. package/dist/components/media/media-card/media-card.class.d.ts +14 -3
  292. package/dist/components/media/media-card/media-card.class.js +1 -1
  293. package/dist/components/media/media-card/media-card.styles.js +2 -28
  294. package/dist/components/media/pan-zoom/pan-zoom.styles.js +0 -3
  295. package/dist/components/media/qr-code/qr-code.class.d.ts +3 -2
  296. package/dist/components/media/qr-code/qr-code.class.js +2 -2
  297. package/dist/components/media/qr-code/qr-code.styles.js +0 -3
  298. package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +2 -0
  299. package/dist/components/media/sequence-playback/sequence-playback.class.js +2 -1
  300. package/dist/components/media/sequence-playback/sequence-playback.styles.js +0 -19
  301. package/dist/components/media/video/video.class.d.ts +23 -2
  302. package/dist/components/media/video/video.class.js +3 -3
  303. package/dist/components/media/video/video.styles.js +4 -2
  304. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
  305. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
  306. package/dist/components/media/zoomable-frame/zoomable-frame.styles.js +0 -5
  307. package/dist/components/overlays/alert/alert.styles.js +4 -2
  308. package/dist/components/overlays/badge/badge.styles.js +4 -48
  309. package/dist/components/overlays/badge/tag.styles.js +0 -14
  310. package/dist/components/overlays/callout/callout.styles.js +0 -11
  311. package/dist/components/overlays/chip/chip-group.styles.js +0 -18
  312. package/dist/components/overlays/chip/chip.styles.js +6 -69
  313. package/dist/components/overlays/dialog/confirm.d.ts +1 -4
  314. package/dist/components/overlays/dialog/confirm.js +1 -1
  315. package/dist/components/overlays/dialog/dialog.class.d.ts +12 -9
  316. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  317. package/dist/components/overlays/dialog/dialog.styles.js +0 -43
  318. package/dist/components/overlays/drawer/drawer.class.d.ts +2 -2
  319. package/dist/components/overlays/drawer/drawer.styles.js +0 -9
  320. package/dist/components/overlays/empty/empty.styles.js +0 -12
  321. package/dist/components/overlays/kbd/kbd.styles.js +0 -8
  322. package/dist/components/overlays/overlay/dropdown.class.d.ts +1 -6
  323. package/dist/components/overlays/overlay/dropdown.class.js +2 -2
  324. package/dist/components/overlays/overlay/overlay.styles.js +0 -28
  325. package/dist/components/overlays/overlay/popover.class.d.ts +9 -1
  326. package/dist/components/overlays/overlay/popover.class.js +2 -2
  327. package/dist/components/overlays/overlay/tooltip.class.d.ts +10 -0
  328. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  329. package/dist/components/overlays/popup/popup.class.d.ts +1 -0
  330. package/dist/components/overlays/popup/popup.class.js +1 -1
  331. package/dist/components/overlays/popup/popup.styles.js +0 -15
  332. package/dist/components/overlays/progress/progress-ring.class.d.ts +9 -1
  333. package/dist/components/overlays/progress/progress-ring.class.js +3 -3
  334. package/dist/components/overlays/progress/progress.styles.js +0 -21
  335. package/dist/components/overlays/rating/rating.styles.js +0 -25
  336. package/dist/components/overlays/skeleton/skeleton.styles.js +0 -4
  337. package/dist/components/overlays/spinner/spinner.styles.js +0 -3
  338. package/dist/components/overlays/toast/toast-item.styles.js +3 -45
  339. package/dist/components/retrieval/chunk-inspector/chunk-inspector.styles.js +0 -35
  340. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +2 -2
  341. package/dist/components/retrieval/citation-badge/citation-badge.class.js +3 -3
  342. package/dist/components/retrieval/citation-badge/citation-badge.styles.js +0 -20
  343. package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +0 -8
  344. package/dist/components/retrieval/community-card/community-card.class.d.ts +1 -0
  345. package/dist/components/retrieval/community-card/community-card.styles.js +0 -6
  346. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +8 -12
  347. package/dist/components/retrieval/entity-card/entity-card.class.d.ts +4 -3
  348. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  349. package/dist/components/retrieval/entity-card/entity-card.styles.js +0 -12
  350. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +10 -4
  351. package/dist/components/retrieval/entity-chip/entity-chip.class.js +3 -3
  352. package/dist/components/retrieval/entity-chip/entity-chip.styles.js +6 -9
  353. package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +19 -5
  354. package/dist/components/retrieval/graph/graph.class.d.ts +5 -0
  355. package/dist/components/retrieval/graph/graph.class.js +1 -1
  356. package/dist/components/retrieval/graph/graph.styles.js +0 -30
  357. package/dist/components/retrieval/graph-legend/graph-legend.styles.js +0 -3
  358. package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +0 -25
  359. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +2 -0
  360. package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +0 -7
  361. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +20 -6
  362. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -2
  363. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +0 -16
  364. package/dist/components/retrieval/mind-map/mind-map.class.d.ts +5 -3
  365. package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
  366. package/dist/components/retrieval/mind-map/mind-map.styles.js +0 -2
  367. package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -2
  368. package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
  369. package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +0 -30
  370. package/dist/components/retrieval/node-palette/node-palette.styles.js +0 -11
  371. package/dist/components/retrieval/path-strip/path-strip.styles.js +0 -10
  372. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +12 -3
  373. package/dist/components/retrieval/provenance-panel/provenance-panel.styles.js +0 -2
  374. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +3 -2
  375. package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +2 -2
  376. package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +0 -28
  377. package/dist/components/retrieval/retrieval-search/retrieval-search.styles.js +0 -4
  378. package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +0 -2
  379. package/dist/components/retrieval/source-card/source-card.styles.js +0 -13
  380. package/dist/components/retrieval/source-list/source-list.styles.js +0 -7
  381. package/dist/components/retrieval/source-picker/source-picker.styles.js +0 -7
  382. package/dist/components/utility/copy-button/copy-button.styles.js +0 -10
  383. package/dist/components/utility/diff-view/diff-view.styles.js +0 -14
  384. package/dist/components/utility/export-button/export-button.styles.js +0 -22
  385. package/dist/components/utility/icon/icon.styles.js +0 -6
  386. package/dist/components/utility/json-viewer/json-viewer.styles.js +2 -48
  387. package/dist/components/utility/known-date/known-date.class.d.ts +7 -3
  388. package/dist/components/utility/known-date/known-date.styles.js +10 -51
  389. package/dist/components/utility/live-region/live-region.styles.js +0 -4
  390. package/dist/components/utility/mention-popover/mention-popover.styles.js +0 -25
  391. package/dist/components/utility/poll-status/poll-status.styles.js +0 -4
  392. package/dist/components/utility/random-content/random-content.class.d.ts +22 -0
  393. package/dist/components/utility/random-content/random-content.class.js +3 -2
  394. package/dist/components/utility/random-content/random-content.styles.js +6 -13
  395. package/dist/components/utility/tour/tour.class.d.ts +4 -2
  396. package/dist/components/utility/tour/tour.class.js +3 -3
  397. package/dist/components/utility/tour/tour.styles.js +0 -13
  398. package/dist/components/utility/visually-hidden/visually-hidden.styles.js +0 -5
  399. package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
  400. package/dist/components/viewers/archive-viewer/archive-viewer.styles.d.ts +2 -2
  401. package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +0 -10
  402. package/dist/components/viewers/csv-viewer/csv-viewer.class.js +1 -1
  403. package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +0 -19
  404. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +1 -1
  405. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +0 -15
  406. package/dist/components/viewers/document-compare/document-compare.styles.js +0 -3
  407. package/dist/components/viewers/document-preview/document-preview.styles.js +0 -25
  408. package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +2 -1
  409. package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
  410. package/dist/components/viewers/document-viewer/document-viewer.styles.js +0 -5
  411. package/dist/components/viewers/docx-viewer/docx-viewer.styles.js +0 -17
  412. package/dist/components/viewers/ebook-viewer/ebook-viewer.styles.js +0 -4
  413. package/dist/components/viewers/email-viewer/email-viewer.styles.js +0 -7
  414. package/dist/components/viewers/geojson-view/geojson-view.styles.js +0 -5
  415. package/dist/components/viewers/highlight-layer/highlight-layer.styles.js +0 -3
  416. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
  417. package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +0 -38
  418. package/dist/components/viewers/page-rail/page-rail.class.js +1 -1
  419. package/dist/components/viewers/page-rail/page-rail.styles.js +0 -13
  420. package/dist/components/viewers/pdf-viewer/pdf-loader.d.ts +13 -2
  421. package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
  422. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +32 -2
  423. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  424. package/dist/components/viewers/pdf-viewer/pdf-viewer.styles.js +1 -27
  425. package/dist/components/viewers/pptx-viewer/pptx-viewer.styles.js +0 -3
  426. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +1 -1
  427. package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +0 -14
  428. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +0 -7
  429. package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +2 -24
  430. package/dist/custom-elements-jsx.d.ts +56 -37
  431. package/dist/events.d.ts +43 -33
  432. package/dist/internal/agent-status-variants.d.ts +18 -0
  433. package/dist/internal/agent-status-variants.js +1 -0
  434. package/dist/internal/announcer.d.ts +8 -3
  435. package/dist/internal/announcer.js +1 -1
  436. package/dist/internal/autoloader-manifest.js +1 -1
  437. package/dist/internal/canvas-color.d.ts +16 -0
  438. package/dist/internal/canvas-color.js +1 -1
  439. package/dist/internal/catalog-picker.d.ts +0 -1
  440. package/dist/internal/catalog-picker.js +1 -1
  441. package/dist/internal/default-strings.generated.d.ts +1 -0
  442. package/dist/internal/default-strings.generated.js +1 -1
  443. package/dist/internal/dev-mode-attribute-warning.d.ts +27 -4
  444. package/dist/internal/dev-mode-attribute-warning.js +1 -1
  445. package/dist/internal/localization-runtime.js +1 -1
  446. package/dist/internal/localization-types.d.ts +1 -1
  447. package/dist/internal/localization.js +1 -1
  448. package/dist/internal/lyra-element.d.ts +13 -0
  449. package/dist/internal/lyra-element.js +1 -1
  450. package/dist/internal/media-controller.js +1 -1
  451. package/dist/internal/package-metadata.d.ts +1 -1
  452. package/dist/internal/package-metadata.js +1 -1
  453. package/dist/internal/scroll-overflow.d.ts +35 -13
  454. package/dist/internal/scroll-overflow.js +1 -1
  455. package/dist/internal/sizes.styles.js +0 -2
  456. package/dist/internal/specialist-tokens.styles.js +6 -11
  457. package/dist/internal/text-highlights.d.ts +4 -1
  458. package/dist/internal/text-highlights.js +1 -1
  459. package/dist/internal/tokens/palette.styles.js +0 -15
  460. package/dist/internal/tokens.styles.js +19 -113
  461. package/dist/lyra.d.ts +8 -5
  462. package/dist/styles/reservations.css +82 -0
  463. package/dist/svelte.d.ts +56 -37
  464. package/dist/translations/ar.js +1 -1
  465. package/dist/translations/de.js +1 -1
  466. package/dist/translations/es.js +1 -1
  467. package/dist/translations/fa.js +1 -1
  468. package/dist/translations/fr.js +1 -1
  469. package/dist/translations/he.js +1 -1
  470. package/dist/translations/ja.js +1 -1
  471. package/dist/translations/pt-BR.js +1 -1
  472. package/dist/translations/ru.js +1 -1
  473. package/dist/translations/zh-CN.js +1 -1
  474. package/dist/vue.d.ts +56 -37
  475. package/llms/components/lr-accordion-item.md +12 -3
  476. package/llms/components/lr-accordion.md +11 -2
  477. package/llms/components/lr-agent-eval-dashboard.md +1 -1
  478. package/llms/components/lr-agent-trace.md +3 -1
  479. package/llms/components/lr-agent-workspace.md +20 -0
  480. package/llms/components/lr-artifact-panel.md +10 -4
  481. package/llms/components/lr-attachment-chip.md +7 -4
  482. package/llms/components/lr-attachment-trigger.md +7 -4
  483. package/llms/components/lr-av-player.md +3 -1
  484. package/llms/components/lr-avatar.md +6 -6
  485. package/llms/components/lr-bar-chart.md +4 -3
  486. package/llms/components/lr-box-plot.md +1 -1
  487. package/llms/components/lr-browser-frame.md +7 -3
  488. package/llms/components/lr-bubble-chart.md +4 -3
  489. package/llms/components/lr-calendar.md +9 -2
  490. package/llms/components/lr-card.md +24 -0
  491. package/llms/components/lr-chart.md +32 -8
  492. package/llms/components/lr-chat-viewport.md +7 -2
  493. package/llms/components/lr-checkbox-group.md +13 -5
  494. package/llms/components/lr-checkbox.md +5 -2
  495. package/llms/components/lr-checkpoint.md +6 -2
  496. package/llms/components/lr-combobox.md +5 -2
  497. package/llms/components/lr-command-palette.md +4 -1
  498. package/llms/components/lr-confirm-bar.md +7 -3
  499. package/llms/components/lr-context-meter.md +12 -11
  500. package/llms/components/lr-conversation-item.md +7 -4
  501. package/llms/components/lr-details.md +11 -2
  502. package/llms/components/lr-dialog.md +15 -10
  503. package/llms/components/lr-dock-panel.md +7 -10
  504. package/llms/components/lr-document-preview.md +6 -1
  505. package/llms/components/lr-document-viewer.md +3 -2
  506. package/llms/components/lr-doughnut-chart.md +4 -3
  507. package/llms/components/lr-drawer.md +3 -3
  508. package/llms/components/lr-entity-card.md +3 -3
  509. package/llms/components/lr-entity-chip.md +1 -1
  510. package/llms/components/lr-entity-dossier.md +4 -1
  511. package/llms/components/lr-file-input.md +2 -2
  512. package/llms/components/lr-flag.md +20 -5
  513. package/llms/components/lr-heatmap.md +28 -0
  514. package/llms/components/lr-histogram.md +3 -1
  515. package/llms/components/lr-icon.md +1 -1
  516. package/llms/components/lr-json-schema-viewer.md +2 -1
  517. package/llms/components/lr-knowledge-graph-explorer.md +8 -3
  518. package/llms/components/lr-known-date.md +4 -2
  519. package/llms/components/lr-line-chart.md +4 -3
  520. package/llms/components/lr-lite-chart.md +16 -6
  521. package/llms/components/lr-map.md +72 -8
  522. package/llms/components/lr-markdown-core.md +3 -2
  523. package/llms/components/lr-media-card.md +28 -12
  524. package/llms/components/lr-message-parts.md +2 -1
  525. package/llms/components/lr-model-select.md +9 -10
  526. package/llms/components/lr-model-settings-panel.md +9 -9
  527. package/llms/components/lr-neighbor-list.md +1 -1
  528. package/llms/components/lr-notebook-viewer.md +6 -3
  529. package/llms/components/lr-option.md +5 -2
  530. package/llms/components/lr-pdf-viewer.md +62 -2
  531. package/llms/components/lr-pie-chart.md +4 -3
  532. package/llms/components/lr-polar-area-chart.md +4 -3
  533. package/llms/components/lr-popover.md +5 -0
  534. package/llms/components/lr-progress-ring.md +8 -1
  535. package/llms/components/lr-prompt-studio.md +1 -1
  536. package/llms/components/lr-provenance-panel.md +4 -2
  537. package/llms/components/lr-qr-code.md +1 -1
  538. package/llms/components/lr-radar-chart.md +4 -3
  539. package/llms/components/lr-rag-eval-dashboard.md +2 -2
  540. package/llms/components/lr-random-content.md +13 -0
  541. package/llms/components/lr-reorder-item.md +6 -1
  542. package/llms/components/lr-reorder-list.md +6 -1
  543. package/llms/components/lr-responsive-panel.md +11 -7
  544. package/llms/components/lr-scatter-chart.md +4 -3
  545. package/llms/components/lr-sequence-strip.md +16 -2
  546. package/llms/components/lr-slider.md +12 -5
  547. package/llms/components/lr-sparkline.md +1 -1
  548. package/llms/components/lr-suggestion-chips.md +7 -2
  549. package/llms/components/lr-swatch-picker.md +5 -5
  550. package/llms/components/lr-switch.md +5 -2
  551. package/llms/components/lr-table.md +30 -4
  552. package/llms/components/lr-terminal.md +3 -1
  553. package/llms/components/lr-thread-list.md +8 -8
  554. package/llms/components/lr-time-input.md +6 -1
  555. package/llms/components/lr-timeline-item.md +24 -0
  556. package/llms/components/lr-timeline.md +25 -1
  557. package/llms/components/lr-token-input.md +7 -2
  558. package/llms/components/lr-tool-approval-dialog.md +7 -8
  559. package/llms/components/lr-tool-call-chip.md +5 -1
  560. package/llms/components/lr-tool-param-form.md +14 -12
  561. package/llms/components/lr-tool-result-dialog.md +11 -9
  562. package/llms/components/lr-tool-result-view.md +7 -6
  563. package/llms/components/lr-tool-select-dialog.md +18 -16
  564. package/llms/components/lr-trace-tree.md +3 -1
  565. package/llms/components/lr-usage-badge.md +4 -1
  566. package/llms/components/lr-video-playlist.md +1 -1
  567. package/llms/components/lr-virtual-list.md +22 -14
  568. package/llms/components/lr-voice-picker.md +8 -5
  569. package/llms/components/lr-widget-renderer.md +3 -3
  570. package/llms/components/lr-widget.md +1 -1
  571. package/llms/components/lr-word-cloud.md +6 -2
  572. package/llms/peers.md +12 -2
  573. package/llms/shared.md +70 -2
  574. package/llms-full.txt +1143 -285
  575. package/package.json +17 -5
  576. package/vscode-css-data.json +37 -2
  577. package/vscode-html-data.json +401 -44
  578. package/web-types.json +299 -55
package/CHANGELOG.md CHANGED
@@ -1,5 +1,602 @@
1
1
  # Changelog
2
2
 
3
+ ## 10.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 84a28c2: Fixed `lr-combobox`, `lr-token-input` and `lr-radio-button` declaring a
8
+ `text-overflow: ellipsis` that could never fire.
9
+
10
+ `text-overflow` only applies to content that overflows its line box inline. Each
11
+ of these parts was left at `white-space: normal`, so the text wrapped instead of
12
+ overflowing and the box never had horizontal overflow at any label length --
13
+ `scrollWidth === clientWidth` in every case. `lr-combobox`'s and
14
+ `lr-token-input`'s labels additionally set `overflow-wrap: anywhere`, which put
15
+ the wrap *inside* a word.
16
+
17
+ The visible effect was worst on `lr-combobox`, whose tag caps at
18
+ `--tag-max-size` (80px by default): a selected `Received` rendered as `Receiv/ed`
19
+ across two lines, and a wrapped tag row could overflow a trigger pinned with
20
+ `--lr-combobox-trigger-height`.
21
+
22
+ All three now carry `white-space: nowrap`, matching `lr-select`'s
23
+ `[part='tag-label']`, which has always had it. Content that fits today is
24
+ unchanged; content that used to wrap now truncates, which is what the existing
25
+ declaration asked for.
26
+
27
+ `--tag-max-size` still defaults to 80px on `lr-combobox` against `lr-select`'s
28
+ 12rem. That difference is deliberate for now -- changing it alters default
29
+ rendering rather than fixing a dead declaration -- and is tracked separately.
30
+
31
+ ## 10.0.0
32
+
33
+ ### Major Changes
34
+
35
+ - c640e0a: **10.0.0.** This release removes the members deprecated during 9.x, which is the whole of its
36
+ breaking surface. Everything else in 10.0.0 is additive — no component's default rendering changes,
37
+ and no existing property, event, slot, part or CSS custom property was renamed or repointed.
38
+
39
+ Removed, each with a like-for-like replacement that has shipped since 9.x:
40
+
41
+ - `confirm()`: the `tone` option on `ConfirmOptions` → `variant`. (An earlier draft of this note
42
+ attributed the rename to `<lr-confirm-bar>`; that component's `tone` → `variant` landed in 9.x
43
+ and left no alias, so nothing changes there in 10.0.0. The member removed here is the one on the
44
+ `confirm()` helper in `overlays/dialog/confirm.ts`.)
45
+ - `<lr-swatch-picker>`: `options` → `items`, `label` → `accessibleLabel` (or the host `aria-label`),
46
+ and the `SwatchOption` type → `SwatchPickerItem`.
47
+
48
+ Deliberately **kept**, so migrating consumers are not caught out:
49
+
50
+ - `<lr-icon>`'s `autoWidth` / `auto-width` stays, deprecation notice and all. Web Awesome's own
51
+ pinned manifest still publishes `auto-width` on `wa-icon`, and a mirrored tag owes its whole
52
+ upstream surface — dropping it classifies `wa-icon` as an `unsupported` mapping, which is a
53
+ release blocker. Prefer `canvas="auto"`; the alias goes when upstream's does.
54
+ - The same holds for **seven more** deprecated aliases whose records say `removalNotBefore: 10.0.0`
55
+ and which are therefore, on paper, removable now: the `base` part on `<lr-accordion-item>`,
56
+ `<lr-file-input>`, `<lr-qr-code>`, `<lr-sparkline>` and `<lr-video-playlist>`, and the `label`
57
+ part on `<lr-file-input>` and `<lr-known-date>`. Every one is published by the pinned upstream
58
+ manifest, and removing them was measured against the real comparison pipeline: each produces an
59
+ `unsupported` mapping. `<lr-qr-code>`'s `base` is the sharpest case — `sl-qr-code` publishes it as
60
+ its ONLY part and does not deprecate it at all.
61
+
62
+ That `10.0.0` is not a plan anyone made. Policy requires a removal to clear one whole subsequent
63
+ major, so `10.0.0` is simply the earliest legal value for a deprecation dating to 8.x. The records
64
+ now say so, because read literally they promised a removal that will never happen while upstream
65
+ ships the same names.
66
+
67
+ - `lr-geojson-view` stays. It is a permanent compatibility class for the pre-v9 tag, not a
68
+ deprecation.
69
+ - `base` / `wrapper` on `<lr-switch>` and `<lr-checkbox>` stay pointing at the control owner. They
70
+ are Web Awesome / Shoelace compatibility names, and the library's parity contract is that a
71
+ mirrored name keeps its meaning; `row` (new in this release) names the row wrapper instead.
72
+ - 082b885: **10.0.0.** A set of public-contract corrections that need a major boundary, plus a larger set of
73
+ additive fixes. Breaking items first; each one states what to change if you relied on the old
74
+ behavior.
75
+
76
+ ### Breaking
77
+
78
+ **`<lr-calendar>` derives the week start from the locale.** `firstDayOfWeek` defaulted to a
79
+ hardcoded `1` (Monday) and never consulted the locale — while the very same component already
80
+ threaded `effectiveLocale` through its weekday *label* formatting. Measured, same `en-US` page:
81
+ `<lr-calendar>` rendered `Mon Tue Wed…` while `<lr-date-picker>` rendered `Sun Mon Tue…`. The
82
+ default is now `'auto'`, resolved through the same `resolveFirstDayOfWeek()` contract
83
+ `<lr-date-picker>`/`<lr-date-input>` already use. The type is now exactly
84
+ `'auto' | 'sun' | … | 'sat'`: the bare `0`–`6` integer form is gone rather than kept as a second
85
+ spelling, so there is one way to express a week start instead of two that had to be sanitized and
86
+ wrapped against each other. Replace `first-day-of-week="1"` with `first-day-of-week="mon"` to keep
87
+ the old rendering. There is no `wa-calendar`, so no upstream parity is affected.
88
+
89
+ **`<lr-progress-ring>` gains `show-value`, defaulting to `false`.** A determinate ring rendered its
90
+ percentage unconditionally, with no way to suppress it short of slotting replacement content — while
91
+ its sibling `<lr-progress-bar>` has had opt-in `show-value` all along, and the reference has always
92
+ claimed the two share "the same value contract". They now actually do. Add `show-value` to keep the
93
+ percentage. `aria-valuetext` still carries it either way, so the accessible value is unchanged.
94
+
95
+ **`<lr-media-card>`'s `alt` becomes optional, so a decorative image is expressible.** It was
96
+ `alt: string = ''`, and the render read `this.alt || this.filename || <localized generic>` — so an
97
+ explicit `alt=""` was indistinguishable from an absent one and came out as `alt="Image attachment"`.
98
+ There was no way to mark the image decorative, which is the one thing `alt=""` means in HTML. The
99
+ type is now `alt?: string` and the render uses `??`, matching `<lr-image-viewer>` and
100
+ `<lr-document-preview>`, which already documented that contract. Omitting `alt` is unchanged; only
101
+ the value read back from an unset property differs (`''` becomes `undefined`), so a consumer
102
+ comparing `el.alt === ''` should read `el.alt ?? ''`. The nested `<video controls>` label
103
+ deliberately does NOT follow: an empty `alt` there would leave an interactive player with no
104
+ accessible name, and "decorative" is not a state a media control can be in.
105
+
106
+ **`<lr-attachment-chip>`'s `lr-preview-request` is no longer cancelable.** It was advertised as a
107
+ veto point, but the chip never read `defaultPrevented` and owns no preview default action to
108
+ cancel — its own docs say it "never registers or owns a viewer/overlay" — so `preventDefault()` was
109
+ a no-op. The flag is removed rather than left as a promise the component cannot keep.
110
+
111
+ ### Event vocabulary: one name per event
112
+
113
+ Several events had two spellings. 10.0.0 keeps the canonical name and **removes the old one
114
+ outright** rather than shipping a deprecated alias into a library that has no released consumers
115
+ yet — a dual-emit alias is a permanent tax paid to protect users who do not exist.
116
+
117
+ Rename the listener; the detail object is unchanged in every case.
118
+
119
+ | Removed | Use instead | On |
120
+ |---|---|---|
121
+ | `lr-entity-activate` | `lr-entity-select` | `<lr-entity-card>`, `<lr-entity-chip>`, `<lr-neighbor-list>` |
122
+ | `lr-visible-range-changed` | `lr-visible-range-change` | `<lr-virtual-list>` |
123
+ | `lr-run-select` | `lr-run-change` | `<lr-rag-eval-dashboard>` |
124
+ | `lr-dialog-close` | `lr-close` | `<lr-dialog>`, `<lr-drawer>` |
125
+
126
+ `lr-visible-range-changed` was the only past-tense `-changed` spelling among 58 `-change`-family
127
+ events, so a convention-driven listener silently missed it — on a component embedded in ten viewers.
128
+
129
+ Two deliberate non-removals. `<lr-community-card>` and `<lr-path-strip>` keep `lr-entity-activate`:
130
+ it is their only name and never was an alias. `<lr-accordion>` keeps `lr-expand`/`lr-collapse`,
131
+ which mirror `wa-accordion`'s real event names — removing them would have broken upstream parity
132
+ rather than tidied it. `lr-citation-badge` was also left alone: `lr-citation-select` is an
133
+ established *container*-level event with a richer `{ citation }` detail that containers translate
134
+ its `{ sourceId, index }` into, so unifying there would have delivered two shapes under one name.
135
+
136
+ ### Interaction, focus and visibility corrections
137
+
138
+ A sweep with a CSS-specificity analyzer found rules that were supposed to win losing to another rule
139
+ in the same shadow stylesheet, so their declarations never applied. The code read correctly and the
140
+ tests were green; only a rendered probe showed the difference.
141
+
142
+ - **The keyboard highlight is visible on the selected row again** in `<lr-select>`, `<lr-combobox>`,
143
+ `<lr-model-select>` and `<lr-voice-picker>`. Each had `[aria-selected="true"]` written after the
144
+ active-descendant rule at equal specificity, so arrow-keying onto the already-selected option
145
+ produced no visible highlight at all.
146
+ - **`appearance="filled"` has a focus indicator again** on `<lr-combobox>` and `<lr-date-input>`.
147
+ Both had none: the appearance rule out-ranked `:focus-within`, and the only `outline` in the focus
148
+ rule was `solid transparent`. Both now express appearance as private custom properties, so no
149
+ `[part]` rule can out-rank another and the failure mode is structurally impossible.
150
+ - **Pointer feedback restored** where a state rule or a resting rule was swallowing it:
151
+ `<lr-code-block>`'s line-gutter button (neither hover nor press, ever), `<lr-pagination>`'s page
152
+ input, `<lr-table>`'s sticky sortable header, `<lr-time-range>`'s active preset,
153
+ `<lr-agent-trace>`'s active handoff, `<lr-compare-panel>`'s cast vote, `<lr-flow-canvas>`'s
154
+ selected edge, `<lr-conversation-item>`'s open session, `<lr-option>`, `<lr-entity-chip>` and
155
+ `<lr-approval-queue>`.
156
+ - **Focus rings restored** on `<lr-calendar>`'s today cell, `<lr-sequence-strip>`'s selected cell,
157
+ `<lr-embedding-explorer>`'s selected point, and `<lr-dashboard-grid>`/`<lr-flow-canvas>` cells in a
158
+ collision or drop state.
159
+ - **`hidden` works again** where the component's own stylesheet was defeating the UA default:
160
+ `<lr-flag>` painted a full-size broken image beside its skeleton while loading, `<lr-video>` kept
161
+ the controls play button both painted and focusable behind a poster, and nine components let a
162
+ consumer's `hidden` slotted child stay visible.
163
+ - **Disabled controls look disabled**: `<lr-entity-chip>` and `<lr-approval-queue>` rendered their
164
+ disabled buttons pixel-identical to enabled ones, with a pointer cursor and full hover feedback.
165
+ - **`<lr-random-content>` actually hides** the candidates it is not showing; its rotation was
166
+ previously observable only to assistive technology.
167
+ - **`<lr-video>` keeps captions** for a `<track>` with no `kind` attribute, whose HTML missing-value
168
+ default is `subtitles`.
169
+
170
+ ### Additive
171
+
172
+ - **`lr-search-change` detail is consistent again.** `<lr-terminal>` and `<lr-av-player>` now emit
173
+ the canonical `LyraSearchChangeDetail` including `matchCountExact`, which 18 of 21 emitters already
174
+ did. This matters most on `<lr-terminal>`, which truncates at 10,000 matches and previously had no
175
+ way to signal that its count was a lower bound. `<lr-knowledge-graph-explorer>`'s detail is now exactly
176
+ `{ query, matchCount, matchCountExact }` — `searchQuery` is replaced by the canonical `query`
177
+ rather than carried beside it; it deliberately has no `activeIndex`, being a live node filter
178
+ rather than a cursor-based search. (The `searchQuery` *property* is unaffected.)
179
+ - **`<lr-token-input>` can veto all three mutations.** `lr-add` and `lr-token-edit` are now
180
+ cancelable, matching `lr-remove`, which already was. A vetoed add keeps the typed draft so the user
181
+ can correct it; a vetoed edit leaves the inline editor open with the edited text intact.
182
+ - **`<lr-dialog>`'s close event is `lr-close`** (`DialogCloseReason` detail, cancelable);
183
+ `<lr-drawer>` inherits it. See the removal table above.
184
+ - **`<lr-accordion>` also emits a cancelable `lr-toggle-request`** (`{ collapsed, item }`) alongside
185
+ its upstream-mirroring `lr-expand`/`lr-collapse`, matching the convention
186
+ `<lr-code-block>`/`<lr-chat-message>` use. `preventDefault()` on either vetoes the transition.
187
+ - **`<lr-popover>` gains `disabled`.** Both `<lr-tooltip>` and its own subclass `<lr-dropdown>` had
188
+ it; the base did not. `<lr-dropdown>` now inherits it, with byte-identical behavior.
189
+ - **`<lr-table>` emits `lr-selection-change`** when a `selectionMode` flip to `'single'` coerces a
190
+ multi-row selection down to one key — previously a silent mutation a host mirroring the event could
191
+ not see.
192
+ - **`<lr-command-palette>` re-emits `focus`/`blur`** from its search input; native ones neither bubble
193
+ nor cross the shadow boundary.
194
+ - **`PptxViewerAdapter` and friends are importable.** `pptx-loader.js` had no `package.json#exports`
195
+ entry despite the reference documenting the import, so it failed with
196
+ `ERR_PACKAGE_PATH_NOT_EXPORTED`. A new check now requires every helper module to be classified
197
+ public or internal, closing the same class that stranded `archive-viewer-register.js` in 9.0.0.
198
+ - **`PlaceSync`** is re-exported from `dropdown.class.js`, and ~13 constituent types are re-exported
199
+ from the composite components whose public properties use them.
200
+ - **`<lr-knowledge-graph-explorer>` no longer announces on mount.** A preset `search-query` fired its
201
+ live region before any user action.
202
+
203
+ ### Minor Changes
204
+
205
+ - 357ee35: `<lr-chart>`: declarative reference lines and shaded bands via a new `annotations` property.
206
+
207
+ Marking a threshold, an event year, a regime change or a highlighted period previously meant
208
+ importing `chartjs-plugin-annotation` yourself and wiring it through the raw `config` passthrough —
209
+ the point where a declarative component dropped the user into raw Chart.js, for one of the most
210
+ common things anyone needs on a time series.
211
+
212
+ - `annotations: readonly LyraChartAnnotation[]`, where `LyraChartAnnotation` is
213
+ `{ axis?: 'x' | 'y'; value?: number; from?: number; to?: number; label?: string; tone?: 'neutral'
214
+ | 'brand' | 'success' | 'warning' | 'danger' }`. A finite `value` renders a reference line on that
215
+ axis; a finite `from`/`to` pair renders a band bounded on that axis and spanning the other. `axis`
216
+ defaults to `'y'`.
217
+ - Entries specifying neither a finite value nor a finite range are dropped rather than handed to
218
+ Chart.js, where they render nothing at best; a reversed range is normalized rather than rejected.
219
+ - Tones resolve through the same `getComputedStyle`-then-`resolveCanvasColor` path every other chart
220
+ color takes, since canvas silently ignores an unparseable `strokeStyle`/`fillStyle`.
221
+ - Labelled entries are included in the generated accessible description, mirroring `lr-heatmap`. The
222
+ label is consumer-supplied text and so is not localized; an unlabelled line has no nameable
223
+ meaning to announce beyond a coordinate.
224
+ - The optional `chartjs-plugin-annotation` peer loads on first actual demand, so a page with no
225
+ annotated charts never downloads it. Without it installed the chart still renders and a single
226
+ console warning explains the no-op — the same fail-closed contract `data-labels` uses.
227
+
228
+ On the filed concern about Chart.js's page-wide singleton registry: this plugin is registered
229
+ globally, like `chartjs-plugin-zoom` and unlike `chartjs-plugin-datalabels`. The distinction is that
230
+ datalabels draws on every dataset the moment it is globally registered, whereas annotation draws
231
+ nothing at all unless a chart supplies annotation options — so the registration is unobservable to a
232
+ chart that sets none, covered by an explicit test. It also *has* to be global: registration is what
233
+ installs the plugin's own element types and defaults, and an inline `config.plugins` entry skips
234
+ that, leaving the plugin to throw on missing `borderWidth`/`borderCapStyle` the moment it draws.
235
+ - 8e3f602: `<lr-chart>`: add a logarithmic value axis via a new `scaleType` property.
236
+
237
+ The core loader registered `LinearScale`, `CategoryScale` and `RadialLinearScale` but never
238
+ Chart.js's `LogarithmicScale`, so a logarithmic axis was unreachable — there was no property for it,
239
+ and the raw `config` passthrough could not supply one either, because Chart.js rejects an
240
+ unregistered scale type at construction. Any dataset spanning several orders of magnitude (prices,
241
+ growth, population, latency percentiles, file sizes) could not be charted honestly, since a linear
242
+ axis collapses everything below the maximum into the baseline.
243
+
244
+ - `scaleType: 'linear' | 'logarithmic' = 'linear'` (attribute `scale-type`, type
245
+ `LyraChartScaleType`, exported from the root barrel) targets the **value** axis; the categorical
246
+ axis is never affected. Inherited by `lr-line-chart`, `lr-scatter-chart` and `lr-bar-chart`, and
247
+ applied to the secondary `y2` axis when one is present.
248
+ - `beginAtZero` is not forwarded on a logarithmic axis, since `log(0)` is `-Infinity` and Chart.js
249
+ would otherwise be handed a bound it cannot place.
250
+ - `LogarithmicScale` is registered with the core rather than behind the feature loader: unlike the
251
+ zoom and datalabels plugins it is not a separate package, so it already ships inside the
252
+ `chart.js` module namespace the loader imports and costs no extra download weight.
253
+
254
+ Default is unchanged and covered by an explicit unset test.
255
+ - 744da58: Four consumer-filed defects, plus one the sweep for the same defect class turned up.
256
+
257
+ **`<lr-checkbox-group>`: `value` is settable.** It was a getter with no setter. Reading was fine,
258
+ but `.value=${...}` — the binding every other form control here accepts — compiles to a plain
259
+ property assignment that `readonly` cannot catch at the binding site, so it threw
260
+ "Cannot set property value ... which has only a getter" from inside lit-html during a *later*
261
+ render, blaming framework internals rather than the offending line. Assigning now mirrors the array
262
+ onto the owned checkboxes; it is controlled input, so it emits no `lr-change`, and an assignment
263
+ made before the children exist is applied once they arrive.
264
+
265
+ **`<lr-time-input>`: `valueAsNumber` and `valueAsDate` are settable.** Nobody filed this — sweeping
266
+ the library for the same "public getter a consumer would naturally bind, with no setter" shape found
267
+ it. `<lr-input>`, `<lr-date-picker>`, `<lr-slider>` and `<lr-known-date>` all ship both, and the
268
+ native `<input type="time">` this mirrors accepts both; `<lr-time-input>` was the lone outlier.
269
+ Out-of-range or non-finite figures clear the field rather than wrapping into a different time.
270
+
271
+ **`<lr-map>`: `lr-map-click` resolves `feature` against `dataLayers`, not only the choropleth.**
272
+ Clicking a shape painted through `dataLayers` reported `feature: undefined`, indistinguishable from
273
+ clicking empty ocean — which broke the pattern the two properties invite: choropleth for features
274
+ that have a value, a data layer for features that exist but have none. The detail gains `origin`
275
+ (`'choropleth' | 'data-layer'`) and `sourceId` (the authored `dataLayers[].sourceId`) so a hit is
276
+ attributable.
277
+
278
+ **`<lr-map>`: an untileable numeric feature property is now named up front.** MapLibre GL tiles
279
+ GeoJSON through a worker, where an oversized integer throws "Given varint doesn't fit into 10
280
+ bytes" — uncatchable by the app, invisible except as an opaque message, and with the rest of the
281
+ layer still painting. Sources are pre-scanned and any property beyond `Number.MAX_SAFE_INTEGER`
282
+ draws a dev-mode warning naming the feature and property.
283
+
284
+ **`<lr-heatmap>`: the matrix row-label gutter is configurable, and labels truncate.** It was a
285
+ hardcoded 60px with no measurement, so a longer row label was clipped mid-word by whatever was
286
+ painted beside it on the canvas — which reads as a rendering fault. `rowLabelWidth` now pins a
287
+ width or takes `'auto'` to measure the widest label and size to fit (floored at 60, capped at 40%
288
+ of the host so one label cannot squeeze out the cells it describes), `colLabelHeight` does the same
289
+ for the column band, and a label too wide for the resolved gutter is truncated with an ellipsis
290
+ instead of clipped. The default stays 60: auto-sizing every chart would silently reflow layouts
291
+ whose labels already fit, which is a bigger change than the clipping it fixes.
292
+ - d92bfb2: Two dev-mode defects that shipped in 9.x, plus the per-point chart color cost behind them.
293
+
294
+ **The unknown-attribute diagnostic no longer reports a component's own API as a mistake.**
295
+ Components can now declare a `knownUnobservedAttributes` static for attributes they own without
296
+ observing, and four do. Without it the diagnostic fired on correct markup and on state components
297
+ set on themselves:
298
+
299
+ - `<lr-page disable-sticky="header">` is documented public API read only by
300
+ `:host([disable-sticky~="..."])` rules, so it has no reactive property — authoring it correctly
301
+ drew a warning saying it was wrong.
302
+ - `<lr-animated-image>` (`playing`), `<lr-menu-item>` (`submenu-open`) and `<lr-app-rail>`
303
+ (`mode`, `dragging`) reflect read-only state onto their own host. Each reported its own output
304
+ as an unknown attribute, in every consumer app, the moment that state turned on.
305
+
306
+ **Per-point chart colors are resolved once per distinct color, not once per point.**
307
+ `resolveCanvasColor` inserts a probe element and forces a synchronous style recalculation on every
308
+ call, which `<lr-chart>` paid for each entry of a series' `color`, `segmentColors` and
309
+ `pointColors` arrays — 2,000 probe insertions for a 2,000-point series, before drawing anything.
310
+ The new `resolveCanvasColors` memoizes by color string across the batch, and authored ramps are
311
+ typically a handful of distinct colors repeated across many points. The cache lives for one call,
312
+ so a later draw still picks up live `--lr-*` theme changes.
313
+
314
+ **`<lr-tooltip>` no longer schedules a wasted second render on close.** Its `anchorPositioned`
315
+ reset moved from `updated()` to `willUpdate()`, where it belongs — nothing visible changes, since
316
+ that render already hides the popup via `open`.
317
+ - 19d15f6: Five consumer-reported gaps, several of them follow-ups to the charts/timeline work in this release.
318
+
319
+ **`<lr-chart>`: the formatter now receives the `export` and `spoken` surfaces.** `LyraChartFormatSurface`
320
+ has always declared both and `<lr-lite-chart>` has always emitted them, but `lr-chart` only ever
321
+ passed `visual` and `table` — so one formatter written against the documented contract behaved
322
+ differently depending on which chart rendered it, silently, in exactly the places unit formatting
323
+ matters most. CSV cells now route through `export` and the live announcement through `spoken`. With
324
+ no formatter installed, CSV cells stay the raw machine-readable number (no locale grouping a
325
+ spreadsheet would misparse) and announcements keep their locale format.
326
+
327
+ **`<lr-map>`: choropleth interpolation is selectable.** The fill expression was hard-coded to
328
+ `['interpolate', ['linear'], …]`, so a heavy-tailed quantity — price, population, income — put every
329
+ value below the maximum into the first colour band. `LyraMapChoroplethLayer.interpolation`
330
+ (`'linear' | 'logarithmic'`, default `'linear'`) emits maplibre's own
331
+ `['interpolate', ['exponential', 0.25], …]`, exposing an existing capability rather than adding one.
332
+ **`stops` stay in the data's own units**, so the legend keeps reading in real values instead of log
333
+ units.
334
+
335
+ **`<lr-heatmap>`: a dev-mode warning when `legendStops` and `colorSteps` disagree.** Both are
336
+ deliberate and independent — that independence is what lets a `cellColor` consumer describe a ramp
337
+ the grid no longer uses — but nothing checked they described the same thing, and a legend that
338
+ confidently labels colours the cells never use is worse than no legend. Warning rather than deriving
339
+ one from the other: deriving would silently change what an existing `colorSteps`-only consumer sees
340
+ and would break that escape hatch. Caption-only stops (the `less ▢▢▢▢ more` shape) claim no colour
341
+ and never warn.
342
+
343
+ **`<lr-timeline>`: `collision="stack"` for dense `scale="time"` chronologies.** Coincident items
344
+ overlapped, which is the common case rather than the exception at realistic density. `'stack'` steps
345
+ each colliding item one lane along the cross axis (`--lr-timeline-collision-offset`); an isolated
346
+ item returns to lane 0 rather than inheriting a preceding run's depth. No `'cluster'` mode: collapsing
347
+ items into one expandable marker needs a selection model and click events this deliberately passive
348
+ component does not have.
349
+
350
+ **`<lr-sequence-strip>`: activation and a controlled selection.** The strip read as pickable but had
351
+ no click handling and no event to hook. `lr-item-activate` (`detail: { index, id, item }`) fires on
352
+ click and on Enter/Space at the roving-tabindex focus, and `selectedIndex` marks the current item
353
+ with `aria-current` and `data-selected`. Controlled on purpose: activation does not move the
354
+ selection itself, so the strip cannot drift from a playback index it does not own. The selection is
355
+ drawn as a ring, not a tint — a cell's background is data (its category colour).
356
+
357
+ All five are additive; unset, every component renders as before.
358
+ - b3b9d30: `<lr-flag>`: accept ISO 3166-1 alpha-3 country codes, and render a neutral fallback for codes that
359
+ cannot resolve.
360
+
361
+ Two related consumer reports.
362
+
363
+ **Alpha-3.** `country` took alpha-2 only, while public statistical sources — World Bank, UN, IMF and
364
+ most open-data portals — key country records on alpha-3, so every consumer plotting country-level
365
+ data shipped and maintained its own ~249-row conversion table purely to satisfy this component.
366
+ `country` now accepts either: length alone disambiguates the two code spaces, so no format hint or
367
+ new API is needed. The 249 officially-assigned mappings are packed as a ~1.2 KB fixed-width string
368
+ and expanded into a lookup lazily on the first alpha-3 use, so an alpha-2-only app never pays for
369
+ them. Withdrawn and user-assigned codes deliberately do **not** map to a successor state — a
370
+ dissolved federation has no current flag, so it takes the unresolved path below.
371
+
372
+ **Unresolved ≠ error.** An unresolvable code rendered localized error text into `[part="error"]` and
373
+ reflected `data-error`. That is right for a genuine mistake, but historical and longitudinal
374
+ datasets legitimately contain states with no current ISO code, and in a table or card grid those
375
+ rows want a neutral placeholder occupying the same footprint, not wording that reads to a user as a
376
+ bug. Styling `[part="error"]` could not fix it, because the localized string is contained text
377
+ rather than substitutable content.
378
+
379
+ - A new `fallback` slot renders in place of the flag for an unresolvable code, and a `fallback`
380
+ property takes a placeholder image URL (rendered as `[part="fallback-image"]`) when no slot
381
+ content is supplied.
382
+ - The host now reflects `data-unresolved` separately from `data-error`, so the two cases can be
383
+ styled apart.
384
+
385
+ Both additive: a resolvable code renders exactly as before, covered by an explicit inert-by-default
386
+ test.
387
+ - 990f4d6: `<lr-heatmap>`: support signed data via new `domain` and `midpoint` properties, and stop dropping
388
+ the negative half of a signed dataset.
389
+
390
+ Two related reports. The ramp always spanned the data's own `min`…`max`, so two heatmaps of
391
+ comparable data could not share a scale — each silently normalized to its own extremes — and a
392
+ diverging palette could not be centred: with data running -4.93 to +28.8, the neutral colour landed
393
+ at 15% of the range rather than on zero, painting "no change" onto a substantial decrease.
394
+ Separately, the cell-fill guard was `value < 0 || !Number.isFinite(value)`, so *every* negative
395
+ rendered as no-data, not just the documented `-1` sentinel — indistinguishable from a genuinely
396
+ missing cell, and silent (32.7% of cells in the reporter's dataset).
397
+
398
+ - `domain?: [number, number]` pins the ramp's input domain, so comparable charts can share a scale.
399
+ A reversed pair is normalized; a degenerate or non-finite one falls back to the derived range.
400
+ - `midpoint?: number` anchors a diverging ramp's neutral colour, scaling the two halves
401
+ independently (`lo`→0, `midpoint`→0.5, `hi`→1). A midpoint outside the domain degrades to plain
402
+ normalization rather than distorting the ramp.
403
+ - Setting either one opts into **signed data**, where only a non-finite value is no-data. That
404
+ gating is deliberate: `-1` is the long-documented sentinel and a matrix of counts has no
405
+ meaningful negative, so declaring a domain or midpoint is what disambiguates the two. With
406
+ neither set, behavior is byte-identical to before — covered by an explicit unset-regression test.
407
+ - A structurally absent matrix cell now reads as `NaN` in signed mode (non-finite is no-data in
408
+ both modes), so it stays a hole while a real `-1` beside it renders on the ramp. The default
409
+ mode still resolves an absent cell to `-1`, keeping `valueAt()` and the `lr-cell-click` payload
410
+ unchanged.
411
+ - The accessible cell labels track the painted contract, so a rendered negative is announced with
412
+ its value instead of "no data".
413
+ - `scale="sqrt"` continues to reject negatives — a square root of a negative has no meaning — now
414
+ explicitly rather than as a side effect of the shared guard.
415
+ - 17b540a: `<lr-lite-chart>`: add a base-10 `scale="logarithmic"` value axis.
416
+
417
+ The dependency-free SVG chart does not extend `LyraChart`, so it did not inherit the `scaleType`
418
+ support added for the Chart.js-backed charts, leaving no way to plot data spanning several orders of
419
+ magnitude honestly — a linear axis collapses everything below the maximum into the baseline.
420
+
421
+ - `scale` now accepts `'logarithmic'` alongside `'linear'` and `'sqrt'`, defaulting to `'linear'`.
422
+ - Unlike `'sqrt'` (which compresses bars only, by long-standing design), the logarithmic axis
423
+ applies to **bars, line points and gridlines alike** — a log axis whose gridlines stayed linear
424
+ would misrepresent the plot. All three now resolve through one `valueFraction()` dispatcher so the
425
+ scale can never apply to some marks and not others.
426
+ - Its lower bound is the smallest *positive* datum, not the linear `lo`. `beginAtZero` defaults to
427
+ true, so `lo` is normally `0`, which has no logarithm; deriving the floor from the data is what
428
+ makes a 1…1000 series span three even decades instead of collapsing onto one. Measured: decade
429
+ gaps of 80.7/80.6/80.7px versus linear's 2.2/21.8/217.8px on the same data.
430
+ - Zero and negative values pin to the axis floor rather than reaching the SVG as `-Infinity`, which
431
+ would blank the series — this renderer has no Chart.js-style "drop the point" fallback. A
432
+ degenerate domain falls back to the linear fraction.
433
+
434
+ `'linear'` and `'sqrt'` render exactly as before, covered by an explicit unchanged-default test.
435
+ - 1b0aa52: `<lr-map>`: render a continuous choropleth legend, via a new `legendGradient` property and a
436
+ `legend` slot.
437
+
438
+ `choropleth` builds an interpolated fill expression from `stops` — a continuous ramp — but `legend`
439
+ accepted only `{ color, label, pattern }` rows rendered as discrete swatches, and the component
440
+ exposed no slots. The standard key for a choropleth (a gradient bar with endpoint ticks) could not
441
+ be rendered inside the component that produces the gradient, so a consumer had to draw a second,
442
+ unaligned legend outside the map and keep its stops manually in sync with the layer's.
443
+
444
+ - `legendGradient: readonly (readonly [number, string])[]` takes the same `[value, color]` shape as
445
+ `choropleth.stops`, so the usual assignment is `map.legendGradient = myChoropleth.stops` and the
446
+ key cannot drift from the layer it describes. Stops are sorted ascending, bounded to 64, and
447
+ filtered to finite values with a CSS-parsable color; fewer than two usable stops render no bar,
448
+ since a one-stop "gradient" is a flat block that describes nothing. Each stop sits at its true
449
+ proportion of the value range rather than being evenly spaced.
450
+ - `legendGradientLoLabel` / `legendGradientHiLabel` override the endpoint captions, which otherwise
451
+ default to the lowest/highest stop value in the component's own locale-aware formatting.
452
+ - New `legend-gradient`, `legend-lo` and `legend-hi` parts, named to mirror `lr-heatmap`'s gradient
453
+ legend as the request asked, so one styling vocabulary covers both. The bar is `aria-hidden` and
454
+ `inert`; the captions carry the meaning. It mirrors under RTL like the heatmap's does.
455
+ - A new `legend` slot renders custom legend content inside the panel's own layout, so it stays
456
+ positioned with the map. Supplying it opens the panel even when both legend inputs are empty.
457
+
458
+ All additive: with none of them set the component renders exactly as before, covered by an explicit
459
+ unset test.
460
+ - 1625356: Ship an optional `reservations.css` stylesheet that prevents layout shift from lazy-upgrading
461
+ elements, and document the library's scope boundaries.
462
+
463
+ An undefined custom element is an inline box with no intrinsic size, so every `lr-*` in the initial
464
+ viewport contributes a reflow as its definition loads; components that additionally defer on an
465
+ optional peer (`lr-chart`, `lr-map`, `lr-flag`, `lr-flow-canvas`, `lr-knowledge-graph-explorer`)
466
+ can cost a second shift when the peer resolves. Each is individually well-behaved — the aggregate on
467
+ a first paint is what costs a Cumulative Layout Shift score. Until now every consumer derived its own
468
+ `:not(:defined)` sizing rules per component by measurement, and those rules rotted silently whenever
469
+ a component's default dimensions changed.
470
+
471
+ ```css
472
+ @import "@aceshooting/lyra-ui/reservations.css";
473
+ ```
474
+
475
+ - Reserves each component's intrinsic footprint before upgrade, styling **only** `:not(:defined)`
476
+ elements inside an `@layer lr-reservations`, so it is inert the moment a definition upgrades and
477
+ can never fight a component's own layout. No colors, no `:root` rules.
478
+ - Every reservation is expressed with the **same custom property and fallback token the component's
479
+ own stylesheet uses** (`--lr-chart-height`/`--lr-size-280px`, `--lr-flag-aspect-ratio`,
480
+ `--lr-form-control-height`, …). That is what makes it worth shipping rather than documenting
481
+ measured pixels: the reservations track the components, and theming a component re-themes its
482
+ reservation with it.
483
+ - Reservations target each component's *final* default size rather than its skeleton's, so a
484
+ skeleton-to-content swap stays stable too.
485
+
486
+ `llms/shared.md` gains a matching CLS section with the hand-rolled equivalent for consumers who
487
+ prefer their own rules, plus a new **Scope: what this library does not provide** section stating the
488
+ boundaries explicitly — client-side routing (there is no router and no route outlet; the navigation
489
+ components expose active state as ordinary properties to be driven by the application's own router),
490
+ data fetching/state management, and form-submission orchestration.
491
+ - 870ed4f: `<lr-switch>` and `<lr-checkbox>`: expose the row wrapper as a new `row` CSS part.
492
+
493
+ Both controls render the track/box owner and the rich label as *siblings* inside a wrapper element
494
+ that carried no `part` at all, while `base` names the owner box rather than the row. A consumer
495
+ laying out a column of switches therefore had no selector for "the row": `inline-size: 100%` on any
496
+ part inside it resolved against a shrink-to-fit parent, and because the owner box centers its track
497
+ and its width tracks the label's, a longer label shifted the track's x-position from row to row —
498
+ visibly ragged.
499
+
500
+ `row` names the real wrapper, so `::part(row)` can stretch or align it. `base`/`switch`/`wrapper`
501
+ and `base`/`checkbox` keep their existing nodes and meaning — they are documented Web Awesome /
502
+ Shoelace compatibility names, so repointing them would have broken shipped consumers. This is
503
+ purely additive; an unstyled control renders identically.
504
+ - 8cb3545: Four more consumer-filed defects, two per component.
505
+
506
+ **`<lr-table>`: cell links are themeable.** A column's `cell(row)` renders its TemplateResult inside
507
+ the component's shadow root, so an anchor it returns is unreachable from page CSS — and `::part()`
508
+ cannot select past the first compound selector to reach it either. It computed to the UA default
509
+ link blue, the one colour on the page belonging to no design system. Cells now take
510
+ `--lr-table-cell-color`, and a cell anchor takes `--lr-table-cell-link-color` (brand by default)
511
+ plus `--lr-table-cell-link-hover-color`. `:where()` keeps specificity at zero so an inline style on
512
+ the returned anchor still wins, and `revert` hands the UA default back.
513
+
514
+ **`<lr-table>`: `scroll-mode="page"` makes an uncapped table's sticky header work.** `[part="base"]`
515
+ was unconditionally `overflow: auto`, which makes it the sticky containing block for the header
516
+ whether or not anything can scroll in it — so with no `--lr-table-max-height` the header scrolled
517
+ away with the page, and an uncapped page-scrolling table and a pinned header were mutually
518
+ exclusive. That is a real CSS constraint rather than an oversight: a scroll container clips *both*
519
+ axes. The fix is therefore an explicit opt-in, not a changed default, since dropping the overflow
520
+ unconditionally would cost every uncapped wide table its horizontal scrolling.
521
+
522
+ **`<lr-map>`: a guarded `maxBounds`.** Calling `map.setMaxBounds()` through the `.map` escape hatch
523
+ can wedge maplibre-gl at a sub-1 fractional zoom in a wide container: `getZoom()` returns `null`
524
+ permanently, every frame throws from inside the peer's matrix math, and the canvas never paints
525
+ again — a blank map, with nothing thrown at the call site. The property applies the same call, reads
526
+ the camera back, and reverts if it did not survive, so the worst case is an unconstrained map plus a
527
+ dev-mode warning.
528
+
529
+ **`<lr-map>`: property-only choropleth updates no longer re-tile the whole source.** `setData()`
530
+ re-tiles unconditionally, which is invisible on a static map and expensive on an animated one. When
531
+ an update changes only feature properties, the component now emits maplibre-gl's incremental
532
+ `updateData()`. The fast path requires the same feature count, an addressable `id` per feature, and
533
+ geometry that is the *same object* as last time — a deep compare would cost about what the re-tile
534
+ costs, and a false positive would paint stale geometry. Anything else falls back to `setData()`.
535
+ - 10b7d14: `<lr-timeline>`: position items along a real time axis with the new `scale="time"` mode.
536
+
537
+ The timeline was an evenly-spaced sequence in which `timestamp` was rendered as text but never used
538
+ for placement, so a chronology spanning a long period lost the main thing a timeline conveys — two
539
+ events weeks apart and the next decades later all looked equidistant, and the shape of the history
540
+ was invisible.
541
+
542
+ - `scale: 'flow' | 'time' = 'flow'` (type `LyraTimelineScale`, exported from the root barrel).
543
+ `'flow'` is today's layout, unchanged and still the default. `'time'` positions each item at its
544
+ true proportion of the range.
545
+ - `rangeStart` / `rangeEnd` pin the axis instead of deriving it from the earliest and latest items;
546
+ a reversed or non-finite pair falls back to the derived range.
547
+ - `--lr-timeline-time-extent` (default `var(--lr-size-20rem)`) sets the distance to distribute
548
+ along — `block-size` when vertical, `inline-size` when horizontal. Items are absolutely
549
+ positioned, and a percentage against an auto-sized track would resolve to zero.
550
+ - An item with no parseable `timestamp` — including one supplied only through the `timestamp` slot,
551
+ which carries no machine-readable instant — keeps document order and is spread evenly, so a
552
+ partially-timestamped list degrades instead of stacking every unknown at the origin.
553
+ - Positions are written to each child as a private `--_lr-timeline-item-offset` custom property and
554
+ removed again when switching back to `'flow'`, so the component still never alters its children's
555
+ content or structure.
556
+
557
+ Scope note: this covers the request's preferred option. Items sharing an instant overlap rather than
558
+ being fanned into lanes — the denser case (parallel lanes by category, a brushable/zoomable range,
559
+ per-event click events, collision handling) would change this component's deliberately passive,
560
+ zero-event contract, so it belongs in a sibling component with its own design, not here.
561
+
562
+ ### Patch Changes
563
+
564
+ - c174d2d: Fix three defects found while auditing test coverage:
565
+
566
+ - `<lr-chat-message>`: with `actions-position="outside"`, the slotted actions row is a sibling of
567
+ the bubble rather than a flex item nested inside the footer, so the footer's role-conditional
568
+ auto-margin alignment became a no-op (a box that already fills its container has no spare space
569
+ for `auto` margins to distribute). A user turn's actions stayed pinned to the inline-start edge
570
+ instead of aligning to the inline-end edge next to its own right-aligned bubble. Now aligned via
571
+ `justify-content` on the actions row itself.
572
+ - `<lr-file-input>`: the dropzone collapsed to its own intrinsic content height instead of filling
573
+ a host given a definite block size (e.g. absolutely positioned with `inset: 0` over a sized
574
+ panel) — none of `[part="form-control"]`, `.dropzone`, or `[part~="base"]` propagated the host's
575
+ height down the chain.
576
+ - `<lr-chart>`: a chart whose row count exceeded the 1,000-record rendering budget but whose series
577
+ count did not got its shared `labels` array correctly sampled down, but each series' own
578
+ `data`/`color`/`pointRadius`/`pointColors`/`segmentColors` arrays stayed at full source length —
579
+ a length mismatch handed straight to Chart.js. Row sampling now applies to every series
580
+ regardless of whether the series dimension itself also needed sampling.
581
+ - bf447ca: `<lr-tooltip>`: close a pointer-held tooltip when a re-render replaces its trigger.
582
+
583
+ A list that re-renders — a chat transcript, a log view, anything virtualized — replaces the `for`
584
+ target with a fresh node rather than moving the existing one. The outgoing element is detached
585
+ before it can fire the `mouseleave` that normally closes a resting tooltip, and the incoming element
586
+ is not necessarily under the pointer. `adoptTrigger()` correctly rebound its listeners to the new
587
+ node but let the tooltip inherit the outgoing node's open state, so the tooltip hung open over a
588
+ trigger nobody was pointing at. Reported live as several resting tooltips visible at once with the
589
+ pointer over none of them, via `<lr-copy-button>`'s default `tooltip="full"`.
590
+
591
+ A trigger swap now re-derives the open state from the incoming element: the tooltip stays open only
592
+ while that element is genuinely held — the pointer resting over it (`:hover`) or focus inside it —
593
+ and closes otherwise. Focus-, click- and `manual`-opened tooltips are untouched, and re-rendering a
594
+ row the pointer still rests on leaves its tooltip alone. Verified on Chromium, Firefox and WebKit.
595
+
596
+ The same report's secondary note about a tooltip being clipped inside a scroll container is existing
597
+ behavior with existing API: pass `hoist` (`<lr-copy-button>` already forwards it to its tooltip) to
598
+ render the popup in the top layer and escape the clipping ancestor.
599
+
3
600
  ## 9.1.1
4
601
 
5
602
  ### Patch Changes