@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
@@ -8,7 +8,7 @@
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
10
  - **Optional peers** `maplibre-gl` — see `llms/peers.md`
11
- - **Themeable via** 12 parts, 5 custom properties — see this component's own `@csspart`/`@cssprop` list below
11
+ - **Themeable via** 15 parts, 5 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
14
14
  ---
@@ -31,6 +31,22 @@ operations. Its runtime value is the underlying MapLibre map.
31
31
  style-required failure and makes no tile/style request. Assign a hosted vector/raster style from
32
32
  a provider whose terms fit your application, or an explicitly network-silent style for local
33
33
  geometry.
34
+ - `legendGradient: readonly (readonly [number, string])[] = []` (attribute: false, type
35
+ `LyraMapLegendGradientStop[]`) — renders the legend as a **continuous** gradient bar with endpoint
36
+ captions instead of (or alongside) the discrete `legend` swatches, which is the standard key for a
37
+ choropleth whose `interpolate` fill is itself a continuous ramp. Takes the same `[value, color]`
38
+ stop shape as `choropleth.stops`, so the usual assignment is `map.legendGradient =
39
+ myChoropleth.stops` and the key cannot drift from the layer it describes. Stops are sorted
40
+ ascending, bounded to 64, and filtered to finite values carrying a CSS-parsable color; fewer than
41
+ two usable stops render no bar at all, since a one-stop "gradient" is a flat block that describes
42
+ nothing. Each stop sits at its true proportion of the value range, so the bar shows the ramp the
43
+ expression actually produces rather than evenly spacing unevenly-spaced values. Part names
44
+ (`legend-gradient`, `legend-lo`, `legend-hi`) mirror `lr-heatmap`'s gradient legend, and the bar
45
+ is `aria-hidden`/`inert` with the captions carrying the meaning. Mirrors under RTL
46
+ - `legendGradientLoLabel: string | null = null` (attribute `legend-gradient-lo-label`),
47
+ `legendGradientHiLabel: string | null = null` (attribute `legend-gradient-hi-label`) — override
48
+ the endpoint captions, which otherwise default to the lowest/highest stop value in the component's
49
+ own locale-aware numeric formatting
34
50
  - `legend: readonly LyraMapLegendEntry[] = []` (attribute: false) — immutable defensive snapshots
35
51
  of `LyraMapLegendEntry { readonly color: string; readonly label: string; readonly pattern:
36
52
  LyraMapLegendPattern }`, where `LyraMapLegendPattern` is `'solid' | 'diagonal' | 'dots' |
@@ -42,10 +58,20 @@ omittedCount, truncatedLabelCount, truncated }` result for the latest assignment
42
58
  projection renders a localized visible `1–N of M items` summary rather than silently claiming
43
59
  the bounded rows are complete.
44
60
  - `choropleth?: LyraMapChoroplethLayer` (attribute: false) — `LyraMapChoroplethLayer { sourceId:
45
- string; geojson: GeoJSON.FeatureCollection; field: string; stops: [number, string][] }` (interpolated
61
+ string; geojson: GeoJSON.FeatureCollection; field: string; stops: [number, string][]; interpolation?:
62
+ 'linear' | 'logarithmic' }` (interpolated
46
63
  fill-color expression from `field`'s value against `stops`; `stops` must contain at least one
47
64
  `[value, color]` pair — an empty array is ignored, leaving whatever fill layer already exists, if
48
- any, untouched, rather than being applied)
65
+ any, untouched, rather than being applied).
66
+ `interpolation` (type `LyraMapChoroplethInterpolation`, default `'linear'`) chooses how the colour
67
+ is interpolated between stops. `'logarithmic'` compresses the ramp, which is what a heavy-tailed
68
+ quantity — price, population, income — needs: on a linear ramp every value below the maximum falls
69
+ into the first colour band, so the map reads as one flat colour plus a couple of outliers. It
70
+ emits maplibre's own `['interpolate', ['exponential', 0.25], …]`, exposing an existing capability
71
+ rather than adding one (maplibre has no `['log']` interpolation type; a sub-1 exponential base is
72
+ the documented way to weight a ramp toward the low end). **`stops` stay in the data's own units
73
+ under either mode**, so the legend keeps reading in real values instead of log units — no
74
+ pre-transforming to log10 and hand-relabelling the legend back
49
75
  - `markers: LyraMapMarker[] = []` (attribute: false) — `LyraMapMarker { id?: string; lngLat:
50
76
  [number, number]; color?: string; label?: string; unsafeHtml?: string }`; an explicit `id` is
51
77
  trimmed and must be nonempty, and the first marker for an explicit ID wins. Markers are reconciled
@@ -80,6 +106,37 @@ GeoJSON.FeatureCollection; tone?: 'accent' | 'success' | 'warning' |
80
106
  persists across a `dataLayers` reassignment gets its GeoJSON updated in place (`setData()`), one
81
107
  that's dropped has its private source/layers removed, and a genuinely new `sourceId` gets new
82
108
  resources — nothing leaks on removal, style change, or disconnect.
109
+ - `maxBounds: LyraMapBounds | null = null` (attribute: false) — box the map may not pan outside,
110
+ `[[west, south], [east, north]]`. Prefer it over calling `map.setMaxBounds()` through the `.map`
111
+ escape hatch: constraining the camera can wedge maplibre-gl at a sub-1 fractional zoom in a wide
112
+ container, leaving `getZoom()` returning `null` permanently, every frame throwing from inside the
113
+ peer's own matrix math, and the canvas never painting again — a blank map, with nothing thrown at
114
+ the call site to attribute it to. This property applies the same call, then reads the camera back
115
+ and reverts (restoring zoom and centre) if it did not survive, so the worst case is an
116
+ unconstrained map plus a dev-mode warning. A malformed box is rejected rather than clamped
117
+
118
+ **Choropleth and `dataLayers` updates are diffed before they reach the peer.** `setData()`
119
+ unconditionally re-tiles and repaints an entire source, which is invisible on a static map and
120
+ expensive on an animated one. When an update changes only feature *properties* — the values driving
121
+ the colour ramp — the component emits maplibre-gl's incremental `updateData()` instead. The fast
122
+ path is deliberately strict, and needs all of: the same feature count, a `string`/`number` `id` on
123
+ every feature in the same order, and geometry that is the **same object** as last time (not merely
124
+ deep-equal). Structurally comparing polygon rings would cost about what the re-tile costs, and a
125
+ false positive would paint stale geometry. Reuse your geometry objects across frames — the
126
+ efficient way to build an animation anyway — and the fast path applies; otherwise it falls back to
127
+ `setData()` with no change in behaviour. Peers predating `updateData()` always take the old path.
128
+
129
+ **Feature properties are tiled, and therefore bounded in numeric magnitude.** MapLibre GL tiles
130
+ every GeoJSON source through a worker into a protobuf vector tile, so a property carrying a huge
131
+ integer throws *inside that worker* — "Given varint doesn't fit into 10 bytes". That throw is not
132
+ catchable by your app and not a rejected promise; it reaches you only as an opaque message on
133
+ `lr-map`'s own error handler, while the rest of the layer still paints, so one bad feature in a
134
+ large collection is invisible until someone walks the data by hand. Both `choropleth.geojson` and
135
+ `dataLayers[].geojson` are now pre-scanned (first 10,000 features) and any numeric property beyond
136
+ `Number.MAX_SAFE_INTEGER` draws a dev-mode warning naming the feature and the property. Carry a
137
+ reduced figure in the feature — a log, a bucket, an index — and keep the exact value in your own
138
+ payload beside the map.
139
+
83
140
  - `label: string = ''` — purpose-specific accessible name for MapLibre's actual focusable canvas.
84
141
  A nonempty host `aria-label` remains on the host and is not duplicated onto the canvas; the canvas
85
142
  uses `label` or the localized map name. An explicitly empty host `aria-label` is preserved as an
@@ -102,13 +159,20 @@ shared `maplibre-gl` import without constructing a map or allocating a WebGL con
102
159
  an element.
103
160
 
104
161
  **Events:** `lr-map-load` (fired once, after the underlying map's own `'load'`), `lr-map-click`
105
- (frozen `detail: { readonly lngLat: readonly [lng, lat], readonly feature? }`; the tuple and any
106
- hit GeoJSON feature are detached and recursively frozen feature is only populated if a
107
- choropleth fill layer exists and was hit)
162
+ (frozen `detail: { readonly lngLat: readonly [lng, lat], readonly feature?, readonly origin?,
163
+ readonly sourceId? }`; the tuple and any hit GeoJSON feature are detached and recursively frozen).
164
+ `feature` resolves against the choropleth fill layer **and** every applied `dataLayers`
165
+ fill/line/circle layer, topmost first — so a shape painted through `dataLayers` is identifiable
166
+ instead of being indistinguishable from empty space. `origin` is `'choropleth'` or `'data-layer'`,
167
+ and `sourceId` carries the authored `dataLayers[].sourceId` for a data-layer hit; both are
168
+ `undefined` whenever `feature` is
108
169
 
109
- **Slots:** none.
170
+ **Slots:** `legend` — custom legend content, rendered inside the legend panel's own layout so it
171
+ stays positioned with the map instead of floating beside it. Supplying it opens the panel even
172
+ when `legend` and `legendGradient` are both empty.
110
173
 
111
- **CSS parts:** `base`, `container`, `legend`, `legend-swatch`, `legend-limit`, `marker`, `popup`,
174
+ **CSS parts:** `base`, `container`, `legend`, `legend-swatch`, `legend-gradient`, `legend-lo`,
175
+ `legend-hi`, `legend-limit`, `marker`, `popup`,
112
176
  `popup-content`, `popup-close-button`, `attribution`, `attribution-toggle`, `error`.
113
177
  `legend` is a localized `role="group"` containing a real list associated to the map canvas with
114
178
  `aria-describedby`; each entry is a `listitem`, decorative swatches are inert/accessibility-hidden,
@@ -36,8 +36,9 @@ support (`highlights`, `activeHighlightId`, `scrollToAnchor()`, the `lr-highligh
36
36
  section above for the full write-up of shared behavior.
37
37
 
38
38
  **Properties:** `content: string = ''`, `tabSize: number = 4` (attribute `tab-size`) — the same
39
- finite-integer-guarded leading-indentation expansion used by `<lr-markdown>`; values outside 1–32
40
- or non-finite values fall back to `4`, independently of rendered code's
39
+ finite-integer-guarded leading-indentation expansion used by `<lr-markdown>`; finite values are
40
+ clamped to `[1, 32]` (`0` becomes `1`, `33` becomes `32`), and only non-finite values (`NaN`,
41
+ `Infinity`) fall back to `4`, independently of rendered code's
41
42
  `--lr-code-block-tab-size`; `marked: LyraMarkedParser | undefined` (readonly, no attribute) — this
42
43
  instance's isolated peer-neutral configurable parser; `htmlMode: 'sanitize' | 'escape' | 'trusted' =
43
44
  'sanitize'` (attribute `html-mode`), `gfm: boolean = true`, `linkTarget: string | null = '_blank'` (attribute
@@ -30,13 +30,18 @@ final.
30
30
  - `mimeType: string = ''` (attribute `mime-type`) — drives auto-detection when `kind` is unset.
31
31
  - `filename: string = ''` — shown in the file-chip fallback, used as the download link's suggested
32
32
  filename, and folded into the accessible name.
33
- - `alt: string = ''` — alt text for the image case (and reused as a video label fallback). Falls
34
- back to `filename`, then a generic per-kind description.
35
- - `accessibleLabel: string = ''` (attribute `aria-label`) a declarative attribute names the host
36
- as a whole while its nested button/link keeps a purpose-specific localized action name. A
37
- property-only assignment can override the nested action when no host label is present. Image alt
38
- text and the native video's own purpose label remain independent; an explicitly empty host still
39
- leaves every interactive descendant named.
33
+ - `alt?: string` — alt text for the image case (and reused as a video label fallback). Unset falls
34
+ back to `filename`, then a generic per-kind description. An explicit `alt=""` survives to the
35
+ rendered `<img alt="">`, which is the HTML idiom for a decorative image same contract as
36
+ `<lr-image-viewer>` and `<lr-document-preview>`. The `<video>` case is deliberately outside that
37
+ carve-out: an empty `alt` there still falls through to `filename`/the generic description, because
38
+ an empty accessible name would leave an interactive player unnamed rather than mark it decorative.
39
+ - `accessibleLabel: string | null = null` (attribute `aria-label`) — a declarative attribute names
40
+ the host as a whole while its nested button/link keeps a purpose-specific localized action name. A
41
+ property-only assignment can override the nested action when no host label is present. An explicit
42
+ empty string behaves like the unset `null` default — both fall through to the generated
43
+ purpose-specific name. Image alt text and the native video's own purpose label remain independent;
44
+ an explicitly empty host still leaves every interactive descendant named.
40
45
  - `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"16rem"`); once set,
41
46
  overrides the `--lr-media-card-max-height` custom property for this instance only (applied
42
47
  inline on `[part="base"]`, so it reliably wins over a `:host{}`-declared default from outside the
@@ -102,12 +107,23 @@ sizing), `--lr-focus-ring-*`, `--lr-transition-fast`.
102
107
  **Optional peer deps:** none.
103
108
 
104
109
  ```html
105
- <lr-media-card kind="image" src="https://example.com/photo.jpg" alt="Screenshot" filename="photo.jpg"
106
- @lr-media-open=${(e) => openLightbox(e.detail.src)}
107
- ></lr-media-card>
108
- <lr-media-card kind="file" src="https://example.com/report.pdf" filename="report.pdf"
109
- @lr-before-media-download=${(e) => shouldUseNativeDownload || e.preventDefault()}
110
+ <lr-media-card
111
+ id="image-card"
112
+ kind="image"
113
+ src="https://example.com/photo.jpg"
114
+ alt="Screenshot"
115
+ filename="photo.jpg"
110
116
  ></lr-media-card>
117
+ <lr-media-card id="file-card" kind="file" src="https://example.com/report.pdf" filename="report.pdf">
118
+ </lr-media-card>
119
+ <script type="module">
120
+ document
121
+ .getElementById("image-card")
122
+ .addEventListener("lr-media-open", (e) => openLightbox(e.detail.src));
123
+ document
124
+ .getElementById("file-card")
125
+ .addEventListener("lr-before-media-download", (e) => shouldUseNativeDownload || e.preventDefault());
126
+ </script>
111
127
  ```
112
128
 
113
129
  **Safe-URL checking.** `src` is validated by internal sink-specific helpers before it's
@@ -74,7 +74,8 @@ import "@aceshooting/lyra-ui/components/conversation/message-parts/message-parts
74
74
  - `lr-copy` event — Passthrough from rendered JSON content.
75
75
  - `lr-highlight-activate` event — Passthrough from rendered Markdown.
76
76
  - `lr-link-click` event — Passthrough from rendered Markdown.
77
- - `lr-preview-request` event — Cancelable passthrough from a rendered attachment.
77
+ - `lr-preview-request` event — Passthrough from a rendered attachment. Not cancelable as of 10.0.0:
78
+ `<lr-attachment-chip>` dropped the flag, since it owns no preview default action to veto.
78
79
  - `lr-remove` event — Passthrough from a rendered attachment.
79
80
  - `lr-render-error` event — Passthrough from rendered Markdown, tool-result, or widget content.
80
81
  - `lr-retry` event — Passthrough from a rendered attachment.
@@ -225,19 +225,18 @@ shared tokens — `--lr-space-xs/-s`, `--lr-color-border/-surface/-brand/-brand-
225
225
  **Optional peer deps:** none.
226
226
 
227
227
  ```html
228
- <lr-model-select
229
- provider="openai"
230
- .catalog=${[
231
- { id: 'gpt-4o', label: 'GPT-4o', icon: '✦' },
232
- { id: 'gpt-4o-mini', label: 'GPT-4o mini' },
233
- ]}
234
- value="gpt-4o"
235
- placeholder="Choose a model…"
236
- @lr-change=${(e) => setModel(e.detail.value, e.detail.inCatalog)}
237
- ></lr-model-select>
228
+ <lr-model-select provider="openai" value="gpt-4o" placeholder="Choose a model…"></lr-model-select>
238
229
 
239
230
  <!-- No fixed catalog yet: falls back to free-text entry -->
240
231
  <lr-model-select provider="ollama" placeholder="Type a model id…" allow-custom></lr-model-select>
232
+ <script type="module">
233
+ const select = document.querySelector("lr-model-select");
234
+ select.catalog = [
235
+ { id: "gpt-4o", label: "GPT-4o", icon: "✦" },
236
+ { id: "gpt-4o-mini", label: "GPT-4o mini" },
237
+ ];
238
+ select.addEventListener("lr-change", (e) => setModel(e.detail.value, e.detail.inCatalog));
239
+ </script>
241
240
  ```
242
241
 
243
242
  **Known gotchas:**
@@ -72,15 +72,15 @@ selector label), `temperature-row`, `temperature-label`, `temperature-value`
72
72
  internally (both imported unconditionally as side effects, not optional).
73
73
 
74
74
  ```html
75
- <lr-model-settings-panel
76
- provider="OpenAI"
77
- .catalog=${['gpt-4o', 'gpt-4o-mini', 'gpt-4.1']}
78
- model="gpt-4o"
79
- temperature="0.7"
80
- @lr-change=${(e) => console.log(e.detail)}
81
- ></lr-model-settings-panel>
82
-
83
- <lr-model-settings-panel layout="compact" .catalog=${catalog}></lr-model-settings-panel>
75
+ <lr-model-settings-panel provider="OpenAI" model="gpt-4o" temperature="0.7"></lr-model-settings-panel>
76
+
77
+ <lr-model-settings-panel layout="compact"></lr-model-settings-panel>
78
+ <script type="module">
79
+ const [panel, compactPanel] = document.querySelectorAll("lr-model-settings-panel");
80
+ panel.catalog = ["gpt-4o", "gpt-4o-mini", "gpt-4.1"];
81
+ panel.addEventListener("lr-change", (e) => console.log(e.detail));
82
+ compactPanel.catalog = catalog;
83
+ </script>
84
84
  ```
85
85
 
86
86
  The internal `lr-slider` renders with its own value readout suppressed (`.showValue=${false}`);
@@ -30,7 +30,7 @@ graph data) and never mutates a graph.
30
30
  - `label: string = ''` — fallback name for the stable group. A non-empty host `aria-label` makes
31
31
  the host the sole overall owner; an explicitly empty host label stays empty on the group
32
32
 
33
- **Events:** `lr-entity-activate` (`detail: { entityId }`, a row's node button was activated),
33
+ **Events:** `lr-entity-select` (`detail: { entityId }`, a row's node button was activated),
34
34
  `lr-node-expand` (`detail: { nodeId }`, a row's expand button was activated — deliberately the same
35
35
  name and detail shape as `lr-graph`'s own event, so one host handler serves both).
36
36
 
@@ -120,9 +120,12 @@ each tone's highlighted-cell background. `--lr-notebook-viewer-highlight-active-
120
120
  `text/plain`).
121
121
 
122
122
  ```html
123
- <lr-notebook-viewer .notebook=${result} max-height="30rem"
124
- @lr-load=${(e) => console.log(e.detail.cellCount, 'cells')}
125
- ></lr-notebook-viewer>
123
+ <lr-notebook-viewer max-height="30rem"></lr-notebook-viewer>
124
+ <script type="module">
125
+ const viewer = document.querySelector("lr-notebook-viewer");
126
+ viewer.notebook = result;
127
+ viewer.addEventListener("lr-load", (e) => console.log(e.detail.cellCount, "cells"));
128
+ </script>
126
129
  ```
127
130
 
128
131
  A notebook major version outside 4.0–4.5, an invalid shape, or more than 2,000 cells renders a
@@ -337,7 +337,10 @@ box visibly (nothing is clipped or made unreachable), so leave it unset there.
337
337
  plain-text contract even when a separate WA `label` override is present.
338
338
 
339
339
  **Events:** `lr-option-change` — bubbles when the option's label or selectable data changes so
340
- its parent `lr-combobox` or `lr-select` can refresh its normalized option rows.
340
+ its parent `lr-combobox` or `lr-select` can refresh its normalized option rows. It is a private
341
+ child-to-parent refresh signal, not a picker event: the owning `lr-combobox`/`lr-select` consumes
342
+ it and stops it, so it never reaches a listener on the picker host (whose own contract is
343
+ `lr-change`/`lr-input`/`change`/`input`). Listen on the `<lr-option>` itself to observe it.
341
344
 
342
345
  **Slots:** default (visible label), `start`/`end` (WA adornments), and `prefix`/`suffix` (Shoelace
343
346
  aliases). `start` and `prefix` project into one leading wrapper; `end` and `suffix` project into one
@@ -433,6 +436,6 @@ synchronous and fires no `input`/`change`/`lr-change` event.
433
436
 
434
437
  **Additional API surface:**
435
438
 
436
- - `part="tag-label"` — The wrapping/ellipsis-safe selected-tag label.
439
+ - `part="tag-label"` — The selected-tag label. Kept on one line and truncated with an ellipsis at `--tag-max-size` (default `var(--lr-size-5rem)`), rather than wrapped. Note that `lr-select`'s tag of the same name defaults to `var(--lr-size-12rem)`, so the same `--tag-max-size` value yields a wider tag there.
437
440
 
438
441
  ---
@@ -32,7 +32,9 @@ current page and
32
32
  `zoom: number = 1` is clamped to `0.25`–`4`. `maxHeight: string = ''` (attribute `max-height`) is a
33
33
  CSS length that, once set, overrides `--lr-pdf-viewer-height` — the block size of the virtualized
34
34
  page list — declaratively, writing it inline on `[part="base"]`; invalid CSS `max-height` values,
35
- declaration breaks, and `url()` are ignored. `anchorKinds: readonly LyraAnchorKind[] = ['page',
35
+ declaration breaks, and `url()` are ignored. `workerSrc: string = ''` (attribute `worker-src`) is the
36
+ URL of the PDF.js web worker chunk — see **Configuring the PDF.js worker** below.
37
+ `anchorKinds: readonly LyraAnchorKind[] = ['page',
36
38
  'text-quote', 'region']` (this viewer's supported `LyraAnchor.kind` values for the shared
37
39
  anchor-target contract). The other inherited anchor-target properties are `highlights:
38
40
  LyraHighlight[] = []` (property only; reassign after mutation), `activeHighlightId: string | null =
@@ -49,7 +51,8 @@ nonnegative dimensions.
49
51
  - `lr-load` — `detail: { pageCount }` — the document reached `ready`. `page` is reset to `1` first.
50
52
  - `lr-page-change` — `detail: { page, pageCount }` — fired for scroll-driven page crossings as well
51
53
  as `page` assignments and `nextPage()`/`previousPage()`/`goToPage()`.
52
- - `lr-zoom-change` — `detail: { zoom }`.
54
+ - `lr-zoom-change` — `detail: { zoom }` — fired for `zoom` assignments as well as
55
+ `zoomIn()`/`zoomOut()`. Never fired for the initial `1`, only for a transition away from it.
53
56
  - `lr-search-change` — `detail: { query, matchCount, matchCountExact, activeIndex }` — from `search()`/`searchNext()`/
54
57
  `searchPrevious()`/`clearSearch()` and effective-locale re-evaluation. A `src` change invalidates document-relative matches and emits
55
58
  the canonical reset `{ query: '', matchCount: 0, matchCountExact: true, activeIndex: -1 }`.
@@ -64,6 +67,30 @@ nonnegative dimensions.
64
67
  `pageViewerSnapshot` (`identity`, `status`, `page`, `pageCount`). `identity` changes for every load,
65
68
  including same-count replacements.
66
69
 
70
+ **`lr-page-change`/`lr-zoom-change` are state broadcasts, not user-intent signals.** This differs
71
+ deliberately from the same-named `<lr-pagination>` event and from `<lr-pan-zoom>`'s `lr-zoom-change`,
72
+ and the distinction is worth internalizing before wiring a handler. Pagination and pan-zoom are
73
+ *controlled*: pagination never mutates its own `page`, so its event is a request the host applies,
74
+ and pan-zoom's `zoom` is bound by a parent, so echoing a programmatic write back would feed a loop.
75
+ This viewer instead *owns* `page` and `zoom` — scrolling the page list changes `page` with no
76
+ consumer action at all — so there is no useful "the user did this" subset to isolate, and every
77
+ accepted transition is announced identically: scrolling, `nextPage()`/`previousPage()`/`goToPage()`,
78
+ `zoomIn()`/`zoomOut()`, anchor resolution, the reset to page 1 when a new `src` finishes loading,
79
+ and a plain `viewer.page = 3` / `viewer.zoom = 2` assignment. A handler that mirrors the event back
80
+ into the property it came from is therefore idempotent rather than looping, but it is also
81
+ redundant — read the property, or `pageViewerSnapshot`, instead.
82
+
83
+ A write that clamps or rounds back onto the value already in effect is not a transition and stays
84
+ silent: on a 3-page document already showing page 1, `viewer.page = -7` and `viewer.page = 1.4` both
85
+ settle on page 1 and emit nothing, and `viewer.zoom = 999` at 4× emits nothing.
86
+
87
+ For page-addressed integrations prefer the atomic `pageViewerSnapshot` /
88
+ `lr-page-viewer-state-change` channel over this pair: it carries page, count, load status and
89
+ document `identity` together, and a late subscriber can read the current value synchronously instead
90
+ of having missed the announcement. `<lr-page-rail>` binds that channel for any viewer exposing
91
+ `pageViewerSnapshot` — including this one — and falls back to `lr-load`/`lr-page-change` only for
92
+ older structural sources that do not.
93
+
67
94
  **Methods:** `nextPage()`, `previousPage()`, `zoomIn()`, and `zoomOut()` update the corresponding
68
95
  controlled state within its supported range. `getPageText(page)` resolves the raw reading-order text
69
96
  of one page (per-page LRU-cached, 64 pages), rejecting on no loaded document or an out-of-range page.
@@ -121,6 +148,39 @@ a PDF is opened. An absent `pdfjs-dist` fails closed and renders
121
148
  `[part="error"]` with the localized `pdfViewerMissingLibrary` message — there is no partial PDF
122
149
  rendering without it.
123
150
 
151
+ **Configuring the PDF.js worker.** PDF.js renders in a web worker and rejects every document with
152
+ `No "GlobalWorkerOptions.workerSrc" specified.` until it has been told where that worker lives. The
153
+ worker is a separate file inside the peer (`pdfjs-dist/build/pdf.worker.min.mjs`) that only the
154
+ application's own bundler can turn into a real URL — a bare package specifier does not resolve in a
155
+ browser without an import map, and resolving it against this library's own module URL would point
156
+ into `@aceshooting/lyra-ui`'s files, where no worker exists. So a bundled application supplies it,
157
+ either way round:
158
+
159
+ ```ts
160
+ // 1. Per element, through the public property/attribute.
161
+ import workerUrl from 'pdfjs-dist/build/pdf.worker.min.mjs?worker&url'; // Vite; see your bundler
162
+ const viewer = document.querySelector('lr-pdf-viewer');
163
+ viewer.workerSrc = workerUrl;
164
+ // or, declaratively: <lr-pdf-viewer worker-src="/assets/pdf.worker.min.mjs"></lr-pdf-viewer>
165
+
166
+ // 2. Once for the whole application, on PDF.js's own singleton, before any viewer loads a document.
167
+ import { GlobalWorkerOptions } from 'pdfjs-dist';
168
+ GlobalWorkerOptions.workerSrc = workerUrl;
169
+ ```
170
+
171
+ `workerSrc` accepts a document-relative URL (resolved against the document base) as well as an
172
+ absolute one; only `http:`, `https:`, `blob:` and `file:` URLs are accepted, and anything else — a
173
+ `javascript:` or `data:` URL in particular — is ignored rather than handed to `new Worker()`.
174
+
175
+ `GlobalWorkerOptions` is PDF.js's process-wide singleton and the PDF.js module itself is loaded once
176
+ per page, so `workerSrc` is applied only while that singleton is still unset. Two consequences worth
177
+ knowing before reaching for the per-element form: a worker the application configured itself is never
178
+ overwritten, and when several viewers carry different `workerSrc` values only the first one to load
179
+ PDF.js takes effect for the whole page. Assigning `workerSrc` after PDF.js has already loaded is not
180
+ silently dropped — it is re-applied on the next load — but it still cannot displace an
181
+ already-configured worker. Option 2 above is the right choice for an application that wants one
182
+ explicit worker everywhere.
183
+
124
184
  Remote resources are capped at 25 MB; exceeding it surfaces the localized
125
185
  `documentPreviewResourceTooLarge` message instead of the PDF.
126
186
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/charts/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `chart.js`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
10
+ - **Optional peers** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
11
11
  - **Themeable via** 15 parts, 33 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Documented with** `lr-line-chart`, `lr-bar-chart`, `lr-doughnut-chart`, `lr-radar-chart`, `lr-polar-area-chart`, `lr-bubble-chart`, `lr-scatter-chart` (same section below)
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
@@ -25,7 +25,8 @@ and behavior there. **See `llms/components/lr-chart.md` for the details, code ex
25
25
  of every entry in these lists.**
26
26
 
27
27
  **Properties:** `description`, `grid`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
28
- (`legend-position`), `max`, `min`, `plugins`, `stacked`, `withoutAnimation` (`without-animation`),
28
+ (`legend-position`), `max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
29
+ `stacked`, `withoutAnimation` (`without-animation`),
29
30
  `withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
30
31
  `yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`, `area`, `zoom`,
31
32
  `height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
@@ -66,7 +67,7 @@ together. The mirrored hooks are `--border-color-1`,
66
67
  `zoom` is set, and `chartjs-plugin-datalabels` only once `data-labels`/`stack-totals` is set.
67
68
 
68
69
  ```html
69
- <lr-bar-chart legend></lr-bar-chart>
70
+ <lr-bar-chart></lr-bar-chart>
70
71
  <lr-pie-chart></lr-pie-chart>
71
72
  <script>
72
73
  document.querySelector('lr-bar-chart').labels = ['A', 'B'];
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/charts/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `chart.js`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
10
+ - **Optional peers** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
11
11
  - **Themeable via** 15 parts, 33 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Documented with** `lr-line-chart`, `lr-bar-chart`, `lr-pie-chart`, `lr-doughnut-chart`, `lr-radar-chart`, `lr-bubble-chart`, `lr-scatter-chart` (same section below)
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
@@ -25,7 +25,8 @@ and behavior there. **See `llms/components/lr-chart.md` for the details, code ex
25
25
  of every entry in these lists.**
26
26
 
27
27
  **Properties:** `description`, `grid`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
28
- (`legend-position`), `max`, `min`, `plugins`, `stacked`, `withoutAnimation` (`without-animation`),
28
+ (`legend-position`), `max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
29
+ `stacked`, `withoutAnimation` (`without-animation`),
29
30
  `withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
30
31
  `yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`, `area`, `zoom`,
31
32
  `height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
@@ -66,7 +67,7 @@ together. The mirrored hooks are `--border-color-1`,
66
67
  `zoom` is set, and `chartjs-plugin-datalabels` only once `data-labels`/`stack-totals` is set.
67
68
 
68
69
  ```html
69
- <lr-bar-chart legend></lr-bar-chart>
70
+ <lr-bar-chart></lr-bar-chart>
70
71
  <lr-pie-chart></lr-pie-chart>
71
72
  <script>
72
73
  document.querySelector('lr-bar-chart').labels = ['A', 'B'];
@@ -52,6 +52,11 @@ A click-triggered, light-dismiss floating surface positioned with the shared Flo
52
52
  attribute wins by presence, including `aria-label=""`; only when it is absent does the property
53
53
  or localized "Popover" ("Menu" when `popupRole` is `menu`) fallback apply
54
54
  - `popupRole: 'dialog'|'menu' = 'dialog'` (attribute `popup-role`)
55
+ - `disabled: boolean = false` (reflected, new in 10.0.0) — prevents opening the popover; pointer,
56
+ keyboard, and programmatic `show()`/`open = true` are all refused while set. Becoming disabled also
57
+ closes an already-open popover, and initial `disabled` plus `open` normalizes closed in either
58
+ attribute order. `lr-dropdown` now inherits this from `lr-popover` rather than declaring its own;
59
+ its consumer-facing behavior is unchanged
55
60
 
56
61
  To preserve the previous Lyra-shaped defaults explicitly, use
57
62
  `placement="bottom-start" distance="4" without-arrow`; origin-aware migration emits those tokens.
@@ -20,6 +20,7 @@ A circular progress indicator with the same value contract as `lr-progress-bar`.
20
20
  **Properties:** `value: number = 0` (reflected), `max: number = 100`, `indeterminate: boolean = false`
21
21
  (reflected), `variant: LyraProgressVariant = 'brand'` (reflected, added in 9.0.0 — matches sibling
22
22
  `lr-progress-bar`'s semantic-palette vocabulary: `neutral`/`brand`/`success`/`warning`/`danger`),
23
+ `showValue: boolean = false` (attribute `show-value`),
23
24
  `label: string = ''` (the mapped accessible-name property), and
24
25
  `accessibleLabel: string = ''` (attribute `accessible-label`; a Lyra compatibility
25
26
  accessible-name spelling retained by this progress component, while several sibling components use
@@ -29,7 +30,13 @@ visible default-slot text when supplied, then the localized "Progress". Non-fini
29
30
  `value`/`max` are normalized (`max <= 0` falls
30
31
  back to `100`, `value` clamps to `[0, max]`) rather than producing NaN geometry.
31
32
  **Slots:** default — replaces the built-in center label, which otherwise renders the rounded
32
- percentage (and nothing at all while `indeterminate`).
33
+ percentage **only when `show-value` is set** (and nothing at all while `indeterminate`).
34
+ **Breaking in 10.0.0:** a determinate ring used to render its percentage unconditionally, with no way
35
+ to suppress it short of slotting replacement content. It now gains `showValue`/`show-value` defaulting
36
+ to `false`, exactly matching `lr-progress-bar` — which is what "the same value contract as
37
+ `lr-progress-bar`" above has always claimed but did not deliver. Add `show-value` to keep the
38
+ percentage. `aria-valuetext` still carries it regardless, mirroring `lr-progress-bar`'s own
39
+ independence there, so the accessible value is unaffected.
33
40
  Its accessible text uses the same visibility filtering, forwarding-slot mutation/reassignment
34
41
  tracking, and explicit-empty host-label precedence as `lr-progress-bar`.
35
42
  **Live members:** `indicator: SVGCircleElement | null` returns the rendered indicator circle (or
@@ -27,7 +27,7 @@ persistence.
27
27
  `versions: readonly PromptStudioVersion[] = []` is a property-only host-controlled input;
28
28
  empty/blank message and version ids are omitted and later duplicates use deterministic first-wins
29
29
  identity before rendering, editing, focus, selection, and events;
30
- `selectedVersionId: string = ''` (attribute `selected-version-id`); `label: string = ''`;
30
+ `selectedVersionId: string | null = null` (attribute `selected-version-id`); `label: string = ''`;
31
31
  `heading: string = ''` — visible toolbar heading, falling back to the localized Prompt Studio
32
32
  label when unset;
33
33
  `running: boolean = false`, `disabled: boolean = false`, and `reorderable: boolean = false`
@@ -35,8 +35,10 @@ chip` row, one `lr-path-strip` per relationship, `lr-community-card`, `lr-chunk-
35
35
  **Events:** `lr-toggle` (`detail: { section, expanded }`, a section header was toggled —
36
36
  `section` is `'entities' | 'relationships' | 'communities' | 'chunks'`). Because the panel is a
37
37
  conduit, every affordance it renders also reaches a listener on the panel itself, and all are
38
- part of its typed event map: `lr-entity-activate` (`detail: { entityId, occurrenceIndex? }`, from an entity chip, community
39
- card member, or path-strip node), `lr-entity-open` (`detail: { entityId }`, an entity chip double-click or
38
+ part of its typed event map: `lr-entity-select` (`detail: { entityId }`, from an entity chip),
39
+ `lr-entity-activate` (`detail: { entityId, occurrenceIndex? }`, from a community card member or
40
+ path-strip node — the only name either one emits, and the only one carrying `occurrenceIndex`),
41
+ `lr-entity-open` (`detail: { entityId }`, an entity chip double-click or
40
42
  Space), `lr-drill` (`detail: { communityId }`, a community card's title, drill button, or overflow chip), and
41
43
  `lr-relation-activate` (`detail: { relation, sourceNodeId?, targetNodeId?, occurrenceIndex }`, a relationship path-strip
42
44
  edge), plus `lr-chunk-open` (`detail: { chunkId, sourceId, anchor? }`) and `lr-expand`
@@ -6,7 +6,7 @@
6
6
  - **Class** `LyraQrCode`, also available unregistered from `@aceshooting/lyra-ui/components/media/qr-code/qr-code.class.js`
7
7
  - **Family** `components/media/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
- - **Deprecated part** `base` since `8.2.3`; use part `::part(qr-code)`; removal not before `10.0.0` — The qr-code part names the rendered code wrapper explicitly; base remains on that same node during the compatibility window.
9
+ - **Deprecated part** `base` since `8.2.3`; use part `::part(qr-code)`; removal not before `10.0.0` — The qr-code part names the rendered code wrapper explicitly; base remains on that same node during the compatibility window. That version is a policy floor, not a plan: `wa-qr-code` still publishes `base` as a deprecated part and `sl-qr-code` still publishes it as its only, undeprecated part, so this alias stays for as long as either upstream ships it.
10
10
  - **Optional peers** `qrcode` — see `llms/peers.md`
11
11
  - **Themeable via** 6 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/charts/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `chart.js`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
10
+ - **Optional peers** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
11
11
  - **Themeable via** 15 parts, 33 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Documented with** `lr-line-chart`, `lr-bar-chart`, `lr-pie-chart`, `lr-doughnut-chart`, `lr-polar-area-chart`, `lr-bubble-chart`, `lr-scatter-chart` (same section below)
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
@@ -25,7 +25,8 @@ and behavior there. **See `llms/components/lr-chart.md` for the details, code ex
25
25
  of every entry in these lists.**
26
26
 
27
27
  **Properties:** `description`, `grid`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
28
- (`legend-position`), `max`, `min`, `plugins`, `stacked`, `withoutAnimation` (`without-animation`),
28
+ (`legend-position`), `max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
29
+ `stacked`, `withoutAnimation` (`without-animation`),
29
30
  `withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
30
31
  `yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`, `area`, `zoom`,
31
32
  `height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
@@ -66,7 +67,7 @@ together. The mirrored hooks are `--border-color-1`,
66
67
  `zoom` is set, and `chartjs-plugin-datalabels` only once `data-labels`/`stack-totals` is set.
67
68
 
68
69
  ```html
69
- <lr-bar-chart legend></lr-bar-chart>
70
+ <lr-bar-chart></lr-bar-chart>
70
71
  <lr-pie-chart></lr-pie-chart>
71
72
  <script>
72
73
  document.querySelector('lr-bar-chart').labels = ['A', 'B'];
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `7.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `chart.js`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
10
+ - **Optional peers** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
11
11
  - **Themeable via** 13 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -36,7 +36,7 @@ duplicates are omitted first-wins before metric fallback, slice derivation/filte
36
36
  history, counts, rendering, or actions.
37
37
 
38
38
  **Events:** `lr-metric-change` (`{ metricId }`), `lr-slice-change` (`{ slice }`), and
39
- `lr-run-select` (`{ run }`). All are controlled intents; the component does not mutate the
39
+ `lr-run-change` (`{ run }`). All are controlled intents; the component does not mutate the
40
40
  corresponding selection properties.
41
41
 
42
42
  **CSS parts:** `base`, `heading`, `slices`, `slice`, `slice-selected`, `metrics`, `metric`,
@@ -101,3 +101,16 @@ behavior warning; direct SVG candidates and the documented animation vocabulary
101
101
  used (a11y-tree inconsistencies across engines).
102
102
  - Slot/focus microtasks and autoplay never queue new selection work while detached; reconnecting
103
103
  starts again from current state rather than replaying stale work.
104
+ - Non-selected candidates are hidden by the component's own `::slotted([hidden])` rule, not by the
105
+ UA's. `::slotted(*)` sets `display: inline-block` on every candidate, and an author-origin
106
+ declaration always beats the user-agent `[hidden] { display: none }` — so the rule that restores
107
+ the native meaning of `hidden` is load-bearing, and an author overriding `display` on
108
+ `::slotted` content from outside must keep the hidden case at `display: none`.
109
+ `hidden="until-found"` is exempted, exactly as the UA rule exempts it.
110
+ - **Before script runs, the first candidate is the one that shows.** Selection happens after the
111
+ first client render and works by setting `hidden`/`aria-hidden` on light-DOM siblings, which Lit
112
+ hydration never compares, so a server renderer can never produce it. Every candidate after the
113
+ first is therefore hidden by CSS until a selection has been applied: a server-rendered page — or
114
+ one whose script never runs — paints one candidate rather than the whole pool. Randomness itself
115
+ cannot survive SSR (there is no shared seed), so order the pool if a specific candidate should be
116
+ the pre-hydration one. With `items > 1` the pre-hydration paint is still a single candidate.
@@ -57,11 +57,16 @@ is pending.
57
57
  between rows.
58
58
 
59
59
  ```html
60
- <lr-reorder-list label="Form fields" @lr-reorder=${(e) => console.log(e.detail.order)}>
60
+ <lr-reorder-list label="Form fields">
61
61
  <lr-reorder-item value="name">Name</lr-reorder-item>
62
62
  <lr-reorder-item value="email">Email</lr-reorder-item>
63
63
  <lr-reorder-item value="phone">Phone</lr-reorder-item>
64
64
  </lr-reorder-list>
65
+ <script type="module">
66
+ document
67
+ .querySelector("lr-reorder-list")
68
+ .addEventListener("lr-reorder", (e) => console.log(e.detail.order));
69
+ </script>
65
70
  ```
66
71
 
67
72
  **Known gotchas:**