@aceshooting/lyra-ui 16.0.0 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/CHANGELOG.md +758 -0
  2. package/README.md +2 -2
  3. package/custom-elements.json +1 -1
  4. package/dist/cli/migration-contract.json +1 -1
  5. package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts +3 -3
  6. package/dist/components/agent-tools/browser-frame/browser-frame.class.js +2 -2
  7. package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -2
  8. package/dist/components/agent-tools/compare-panel/compare-panel.class.js +3 -3
  9. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +37 -13
  10. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  11. package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
  12. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +4 -0
  13. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +2 -2
  14. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -3
  15. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
  16. package/dist/components/charts/chart/chart.class.d.ts +117 -17
  17. package/dist/components/charts/chart/chart.class.js +3 -3
  18. package/dist/components/charts/chart/histogram-bin.d.ts +5 -1
  19. package/dist/components/charts/chart/histogram-bin.js +1 -1
  20. package/dist/components/charts/chart/lite-chart.class.d.ts +9 -0
  21. package/dist/components/conversation/code-block/code-block.styles.js +1 -1
  22. package/dist/components/conversation/message-actions/message-actions.styles.js +1 -1
  23. package/dist/components/conversation/model-select/model-select.class.d.ts +13 -4
  24. package/dist/components/conversation/model-select/model-select.class.js +2 -1
  25. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  26. package/dist/components/conversation/streaming-text/streaming-text-base.class.d.ts +40 -2
  27. package/dist/components/conversation/streaming-text/streaming-text-base.class.js +2 -2
  28. package/dist/components/conversation/streaming-text/streaming-text-core.class.d.ts +27 -3
  29. package/dist/components/conversation/streaming-text/streaming-text-core.class.js +11 -0
  30. package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +31 -3
  31. package/dist/components/conversation/streaming-text/streaming-text.class.js +11 -0
  32. package/dist/components/conversation/suggestion-chips/suggestion-chips.class.d.ts +30 -2
  33. package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js +4 -3
  34. package/dist/components/conversation/suggestion-chips/suggestion-chips.styles.js +1 -1
  35. package/dist/components/conversation/thread-list/thread-list.class.js +1 -1
  36. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  37. package/dist/components/conversation/usage-badge/usage-badge-overlay-runtime.js +1 -1
  38. package/dist/components/conversation/usage-badge/usage-badge.class.d.ts +4 -0
  39. package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +16 -4
  40. package/dist/components/conversation/voice-picker/voice-picker.class.js +2 -1
  41. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  42. package/dist/components/data/context-meter/context-meter.class.d.ts +23 -4
  43. package/dist/components/data/context-meter/context-meter.class.js +10 -7
  44. package/dist/components/data/context-meter/context-meter.styles.js +1 -1
  45. package/dist/components/data/data-grid/data-grid.class.d.ts +5 -2
  46. package/dist/components/data/data-grid/data-grid.class.js +1 -1
  47. package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +32 -5
  48. package/dist/components/data/flow-canvas/flow-canvas.class.js +3 -1
  49. package/dist/components/data/flow-canvas/flow-canvas.styles.js +1 -1
  50. package/dist/components/data/flow-canvas/flow-model.js +1 -1
  51. package/dist/components/data/flow-canvas/flow-types.d.ts +10 -1
  52. package/dist/components/data/gauge/gauge.class.d.ts +15 -2
  53. package/dist/components/data/gauge/gauge.class.js +20 -20
  54. package/dist/components/data/gauge/gauge.styles.js +1 -1
  55. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +14 -5
  56. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +2 -2
  57. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +28 -2
  58. package/dist/components/data/sequence-strip/sequence-strip.class.js +3 -2
  59. package/dist/components/data/sequence-strip/sequence-strip.styles.js +1 -1
  60. package/dist/components/data/table/table.class.d.ts +155 -30
  61. package/dist/components/data/table/table.class.js +6 -4
  62. package/dist/components/data/table/table.styles.js +1 -1
  63. package/dist/components/data/timeline/timeline-item.class.d.ts +9 -1
  64. package/dist/components/data/timeline/timeline-item.class.js +2 -2
  65. package/dist/components/data/word-cloud/word-cloud.class.js +1 -1
  66. package/dist/components/data/word-cloud/word-cloud.styles.js +1 -1
  67. package/dist/components/forms/button/button.class.d.ts +30 -1
  68. package/dist/components/forms/button/button.class.js +2 -2
  69. package/dist/components/forms/checkbox/checkbox.class.d.ts +8 -6
  70. package/dist/components/forms/checkbox/checkbox.class.js +2 -2
  71. package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +7 -5
  72. package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
  73. package/dist/components/forms/color-picker/color-picker.class.d.ts +16 -2
  74. package/dist/components/forms/color-picker/color-picker.class.js +2 -2
  75. package/dist/components/forms/color-picker/color-picker.styles.js +1 -1
  76. package/dist/components/forms/combobox/combobox.class.d.ts +52 -7
  77. package/dist/components/forms/combobox/combobox.class.js +2 -2
  78. package/dist/components/forms/combobox/combobox.styles.js +1 -1
  79. package/dist/components/forms/date-picker/date-input.class.d.ts +4 -0
  80. package/dist/components/forms/date-picker/date-input.class.js +1 -1
  81. package/dist/components/forms/icon-button/icon-button.class.d.ts +20 -3
  82. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  83. package/dist/components/forms/icon-button/icon-button.styles.js +1 -1
  84. package/dist/components/forms/input/input.class.d.ts +5 -2
  85. package/dist/components/forms/input/input.class.js +1 -1
  86. package/dist/components/forms/input/time-input.class.d.ts +4 -0
  87. package/dist/components/forms/input/time-input.class.js +1 -1
  88. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +11 -5
  89. package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
  90. package/dist/components/forms/otp-input/otp-input.class.d.ts +7 -2
  91. package/dist/components/forms/otp-input/otp-input.class.js +2 -2
  92. package/dist/components/forms/radio/radio-button.class.d.ts +2 -1
  93. package/dist/components/forms/radio/radio-group.class.d.ts +9 -4
  94. package/dist/components/forms/radio/radio-group.class.js +1 -1
  95. package/dist/components/forms/radio/radio.class.d.ts +13 -7
  96. package/dist/components/forms/radio/radio.class.js +1 -1
  97. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +16 -6
  98. package/dist/components/forms/rubric-form/rubric-form.class.js +2 -2
  99. package/dist/components/forms/select/select.class.d.ts +50 -13
  100. package/dist/components/forms/select/select.class.js +2 -2
  101. package/dist/components/forms/slider/slider.class.d.ts +4 -2
  102. package/dist/components/forms/slider/slider.class.js +1 -1
  103. package/dist/components/forms/switch/switch.class.d.ts +8 -6
  104. package/dist/components/forms/switch/switch.class.js +1 -1
  105. package/dist/components/forms/textarea/textarea.class.d.ts +5 -3
  106. package/dist/components/forms/textarea/textarea.class.js +1 -1
  107. package/dist/components/forms/time-range/time-range.class.d.ts +12 -7
  108. package/dist/components/forms/time-range/time-range.class.js +1 -1
  109. package/dist/components/forms/time-range/time-range.styles.js +1 -1
  110. package/dist/components/forms/token-input/token-input.class.d.ts +6 -4
  111. package/dist/components/forms/token-input/token-input.class.js +1 -1
  112. package/dist/components/layout/app-rail/app-rail-item.class.d.ts +109 -4
  113. package/dist/components/layout/app-rail/app-rail-item.class.js +34 -29
  114. package/dist/components/layout/app-rail/app-rail-item.styles.js +1 -1
  115. package/dist/components/layout/app-rail/app-rail.class.d.ts +25 -3
  116. package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
  117. package/dist/components/layout/app-rail-group/app-rail-group.class.d.ts +2 -2
  118. package/dist/components/layout/app-rail-group/app-rail-group.class.js +2 -2
  119. package/dist/components/layout/carousel/carousel.class.d.ts +1 -1
  120. package/dist/components/layout/carousel/carousel.class.js +1 -1
  121. package/dist/components/layout/details/accordion.class.d.ts +2 -2
  122. package/dist/components/layout/details/accordion.class.js +2 -2
  123. package/dist/components/layout/filter-bar/filter-bar-register.d.ts +1 -0
  124. package/dist/components/layout/filter-bar/filter-bar-register.js +1 -0
  125. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +153 -16
  126. package/dist/components/layout/filter-bar/filter-bar.class.js +8 -5
  127. package/dist/components/layout/menu/menu-item.class.d.ts +3 -3
  128. package/dist/components/layout/menu/menu-item.class.js +3 -3
  129. package/dist/components/layout/menu/menu.class.d.ts +5 -1
  130. package/dist/components/layout/menu/menu.class.js +2 -2
  131. package/dist/components/layout/reorder-list/reorder-item.styles.js +1 -1
  132. package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
  133. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +107 -2
  134. package/dist/components/layout/virtual-list/virtual-list.class.js +12 -7
  135. package/dist/components/media/attachment-trigger/attachment-trigger.styles.js +1 -1
  136. package/dist/components/media/avatar-group/avatar-group.class.d.ts +12 -1
  137. package/dist/components/media/avatar-group/avatar-group.class.js +2 -2
  138. package/dist/components/media/drop-zone/drop-zone.class.d.ts +32 -11
  139. package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
  140. package/dist/components/media/file-input/file-input.class.d.ts +40 -19
  141. package/dist/components/media/file-input/file-input.class.js +2 -2
  142. package/dist/components/media/map/map.class.d.ts +138 -12
  143. package/dist/components/media/map/map.class.js +25 -20
  144. package/dist/components/media/map/map.styles.js +1 -1
  145. package/dist/components/overlays/callout/callout.styles.js +1 -1
  146. package/dist/components/overlays/dialog/dialog.styles.js +1 -1
  147. package/dist/components/overlays/overlay/dropdown.class.d.ts +13 -3
  148. package/dist/components/overlays/overlay/dropdown.class.js +2 -2
  149. package/dist/components/overlays/overlay/popover.class.d.ts +12 -3
  150. package/dist/components/overlays/overlay/popover.class.js +2 -2
  151. package/dist/components/overlays/rating/rating.class.d.ts +9 -7
  152. package/dist/components/overlays/rating/rating.class.js +1 -1
  153. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +5 -1
  154. package/dist/components/retrieval/citation-badge/citation-badge.class.js +1 -1
  155. package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +1 -1
  156. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +5 -1
  157. package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
  158. package/dist/components/retrieval/graph-legend/graph-legend.styles.js +1 -1
  159. package/dist/components/retrieval/retrieval-value-format.js +1 -1
  160. package/dist/components/retrieval/source-list/source-list.styles.js +1 -1
  161. package/dist/components/utility/copy-button/copy-button.class.d.ts +23 -11
  162. package/dist/components/utility/copy-button/copy-button.class.js +2 -2
  163. package/dist/components/utility/copy-button/copy-button.styles.js +1 -1
  164. package/dist/components/utility/diff-view/diff-view.styles.js +1 -1
  165. package/dist/components/utility/export-button/export-button.class.d.ts +4 -0
  166. package/dist/components/utility/export-button/export-button.class.js +1 -1
  167. package/dist/components/utility/json-viewer/json-viewer.styles.js +1 -1
  168. package/dist/components/utility/known-date/known-date.class.js +1 -1
  169. package/dist/components/utility/mention-popover/mention-popover.class.d.ts +38 -3
  170. package/dist/components/utility/mention-popover/mention-popover.class.js +2 -1
  171. package/dist/components/utility/mention-popover/mention-popover.styles.js +1 -1
  172. package/dist/components/utility/poll-status/poll-status.styles.js +1 -1
  173. package/dist/components/utility/tour/tour.class.d.ts +4 -0
  174. package/dist/components/utility/tour/tour.class.js +1 -1
  175. package/dist/components/utility/tour/tour.styles.js +1 -1
  176. package/dist/components/viewers/document-preview/document-preview.class.js +2 -2
  177. package/dist/components/viewers/docx-viewer/docx-viewer.class.js +2 -2
  178. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -2
  179. package/dist/components/viewers/highlight-layer/highlight-layer.class.js +2 -2
  180. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +2 -2
  181. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +2 -2
  182. package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +2 -2
  183. package/dist/components/viewers/xml-viewer/xml-viewer.class.js +2 -2
  184. package/dist/custom-elements-jsx.d.ts +2 -2
  185. package/dist/events.d.ts +20 -13
  186. package/dist/internal/aggregate-file-limits.d.ts +33 -0
  187. package/dist/internal/aggregate-file-limits.js +1 -0
  188. package/dist/internal/catalog-picker.d.ts +15 -2
  189. package/dist/internal/catalog-picker.js +1 -1
  190. package/dist/internal/debounce-controller.d.ts +14 -0
  191. package/dist/internal/debounce-controller.js +1 -1
  192. package/dist/internal/default-strings.generated.d.ts +1 -1
  193. package/dist/internal/default-strings.generated.js +2 -2
  194. package/dist/internal/focus-navigation.d.ts +45 -0
  195. package/dist/internal/focus-navigation.js +1 -1
  196. package/dist/internal/form-associated.js +1 -1
  197. package/dist/internal/initial-slot-collection.d.ts +30 -0
  198. package/dist/internal/initial-slot-collection.js +1 -0
  199. package/dist/internal/intl-cache.js +1 -1
  200. package/dist/internal/invalid-event-alias.d.ts +46 -0
  201. package/dist/internal/invalid-event-alias.js +1 -1
  202. package/dist/internal/localization-runtime.d.ts +24 -0
  203. package/dist/internal/localization-runtime.js +1 -1
  204. package/dist/internal/localization-types.d.ts +1 -1
  205. package/dist/internal/localization.js +1 -1
  206. package/dist/internal/package-metadata.d.ts +1 -1
  207. package/dist/internal/package-metadata.js +1 -1
  208. package/dist/internal/positioning-strategy.d.ts +3 -1
  209. package/dist/internal/state-part.d.ts +49 -0
  210. package/dist/internal/state-part.js +1 -0
  211. package/dist/internal/variants.styles.js +1 -1
  212. package/dist/lyra.d.ts +1 -1
  213. package/dist/lyra.js +1 -1
  214. package/dist/svelte.d.ts +2 -2
  215. package/dist/testing/index.d.ts +1 -1
  216. package/dist/testing/index.js +1 -1
  217. package/dist/testing/lyra-tag-event-map.d.ts +2 -2
  218. package/dist/testing/lyra-tag-event-map.js +1 -1
  219. package/dist/testing/wait-for-mount.d.ts +46 -0
  220. package/dist/testing/wait-for-mount.js +1 -0
  221. package/dist/theme/theme-bootstrap.js +1 -1
  222. package/dist/theme/theme.d.ts +11 -2
  223. package/dist/theme/theme.js +1 -1
  224. package/dist/translations/ar/layout.js +1 -1
  225. package/dist/translations/ar/retrieval.js +1 -1
  226. package/dist/translations/ar/shared.js +1 -1
  227. package/dist/translations/de/layout.js +1 -1
  228. package/dist/translations/de/retrieval.js +1 -1
  229. package/dist/translations/de/shared.js +1 -1
  230. package/dist/translations/es/layout.js +1 -1
  231. package/dist/translations/es/retrieval.js +1 -1
  232. package/dist/translations/es/shared.js +1 -1
  233. package/dist/translations/fa/layout.js +1 -1
  234. package/dist/translations/fa/retrieval.js +1 -1
  235. package/dist/translations/fa/shared.js +1 -1
  236. package/dist/translations/fr/layout.js +1 -1
  237. package/dist/translations/fr/retrieval.js +1 -1
  238. package/dist/translations/fr/shared.js +1 -1
  239. package/dist/translations/he/layout.js +1 -1
  240. package/dist/translations/he/retrieval.js +1 -1
  241. package/dist/translations/he/shared.js +1 -1
  242. package/dist/translations/it/layout.js +1 -1
  243. package/dist/translations/it/retrieval.js +1 -1
  244. package/dist/translations/it/shared.js +1 -1
  245. package/dist/translations/ja/layout.js +1 -1
  246. package/dist/translations/ja/retrieval.js +1 -1
  247. package/dist/translations/ja/shared.js +1 -1
  248. package/dist/translations/pt-BR/layout.js +1 -1
  249. package/dist/translations/pt-BR/retrieval.js +1 -1
  250. package/dist/translations/pt-BR/shared.js +1 -1
  251. package/dist/translations/ro/agent-tools.d.ts +1 -0
  252. package/dist/translations/ro/agent-tools.js +1 -0
  253. package/dist/translations/ro/charts.d.ts +1 -0
  254. package/dist/translations/ro/charts.js +1 -0
  255. package/dist/translations/ro/conversation.d.ts +1 -0
  256. package/dist/translations/ro/conversation.js +1 -0
  257. package/dist/translations/ro/data.d.ts +1 -0
  258. package/dist/translations/ro/data.js +1 -0
  259. package/dist/translations/ro/forms.d.ts +1 -0
  260. package/dist/translations/ro/forms.js +1 -0
  261. package/dist/translations/ro/layout.d.ts +1 -0
  262. package/dist/translations/ro/layout.js +1 -0
  263. package/dist/translations/ro/media.d.ts +1 -0
  264. package/dist/translations/ro/media.js +1 -0
  265. package/dist/translations/ro/overlays.d.ts +1 -0
  266. package/dist/translations/ro/overlays.js +1 -0
  267. package/dist/translations/ro/retrieval.d.ts +1 -0
  268. package/dist/translations/ro/retrieval.js +1 -0
  269. package/dist/translations/ro/shared.d.ts +1 -0
  270. package/dist/translations/ro/shared.js +1 -0
  271. package/dist/translations/ro/utility.d.ts +1 -0
  272. package/dist/translations/ro/utility.js +1 -0
  273. package/dist/translations/ro/viewers.d.ts +1 -0
  274. package/dist/translations/ro/viewers.js +5 -0
  275. package/dist/translations/ro.d.ts +1 -0
  276. package/dist/translations/ro.js +1 -0
  277. package/dist/translations/ru/layout.js +1 -1
  278. package/dist/translations/ru/retrieval.js +1 -1
  279. package/dist/translations/ru/shared.js +1 -1
  280. package/dist/translations/zh-CN/layout.js +1 -1
  281. package/dist/translations/zh-CN/retrieval.js +1 -1
  282. package/dist/translations/zh-CN/shared.js +1 -1
  283. package/dist/utilities/format.d.ts +17 -0
  284. package/dist/utilities/format.js +1 -1
  285. package/dist/vue.d.ts +2 -2
  286. package/llms/components/lr-app-rail-group.md +87 -10
  287. package/llms/components/lr-app-rail-item.md +88 -11
  288. package/llms/components/lr-app-rail.md +88 -11
  289. package/llms/components/lr-attachment-trigger.md +21 -0
  290. package/llms/components/lr-bar-chart.md +3 -2
  291. package/llms/components/lr-bubble-chart.md +3 -2
  292. package/llms/components/lr-button.md +5 -4
  293. package/llms/components/lr-callout.md +10 -0
  294. package/llms/components/lr-card.md +2 -1
  295. package/llms/components/lr-chart.md +43 -12
  296. package/llms/components/lr-citation-badge.md +7 -1
  297. package/llms/components/lr-code-block.md +21 -0
  298. package/llms/components/lr-color-picker.md +12 -7
  299. package/llms/components/lr-combobox.md +20 -1
  300. package/llms/components/lr-confirm-bar.md +36 -7
  301. package/llms/components/lr-context-meter.md +17 -4
  302. package/llms/components/lr-date-input.md +7 -1
  303. package/llms/components/lr-date-picker.md +6 -0
  304. package/llms/components/lr-dialog.md +21 -0
  305. package/llms/components/lr-doughnut-chart.md +3 -2
  306. package/llms/components/lr-drawer.md +10 -0
  307. package/llms/components/lr-drop-zone.md +16 -7
  308. package/llms/components/lr-dropdown-item.md +7 -0
  309. package/llms/components/lr-entity-chip.md +7 -1
  310. package/llms/components/lr-export-button.md +7 -1
  311. package/llms/components/lr-file-input.md +21 -10
  312. package/llms/components/lr-filter-bar.md +177 -18
  313. package/llms/components/lr-flow-canvas.md +16 -9
  314. package/llms/components/lr-gauge.md +22 -2
  315. package/llms/components/lr-histogram.md +7 -2
  316. package/llms/components/lr-icon-button.md +17 -8
  317. package/llms/components/lr-input.md +3 -1
  318. package/llms/components/lr-line-chart.md +3 -2
  319. package/llms/components/lr-lite-chart.md +13 -0
  320. package/llms/components/lr-locale-picker.md +7 -1
  321. package/llms/components/lr-map.md +63 -6
  322. package/llms/components/lr-mention-popover.md +16 -3
  323. package/llms/components/lr-menu-item.md +7 -0
  324. package/llms/components/lr-menu.md +8 -1
  325. package/llms/components/lr-message-actions.md +10 -0
  326. package/llms/components/lr-model-select.md +8 -3
  327. package/llms/components/lr-native-time-input.md +8 -1
  328. package/llms/components/lr-number-input.md +8 -1
  329. package/llms/components/lr-option.md +19 -0
  330. package/llms/components/lr-otp-input.md +6 -0
  331. package/llms/components/lr-pie-chart.md +3 -2
  332. package/llms/components/lr-polar-area-chart.md +3 -2
  333. package/llms/components/lr-prompt-input.md +2 -2
  334. package/llms/components/lr-radar-chart.md +3 -2
  335. package/llms/components/lr-reorder-item.md +12 -0
  336. package/llms/components/lr-reorder-list.md +12 -0
  337. package/llms/components/lr-scatter-chart.md +3 -2
  338. package/llms/components/lr-select.md +19 -2
  339. package/llms/components/lr-sequence-strip.md +10 -4
  340. package/llms/components/lr-streaming-text-core.md +28 -11
  341. package/llms/components/lr-streaming-text.md +41 -6
  342. package/llms/components/lr-suggestion-chips.md +8 -4
  343. package/llms/components/lr-table.md +47 -10
  344. package/llms/components/lr-textarea.md +1 -1
  345. package/llms/components/lr-time-input.md +7 -1
  346. package/llms/components/lr-tool-call-chip.md +7 -1
  347. package/llms/components/lr-tour.md +7 -1
  348. package/llms/components/lr-usage-badge.md +7 -1
  349. package/llms/components/lr-virtual-list.md +53 -0
  350. package/llms/components/lr-voice-picker.md +7 -3
  351. package/llms/shared.md +175 -19
  352. package/llms/tokens.md +17 -1
  353. package/llms-full.txt +1214 -169
  354. package/package.json +43 -3
  355. package/registrations.json +1 -1
  356. package/vscode-css-data.json +1 -1
  357. package/vscode-html-data.json +1 -1
  358. package/web-types.json +1 -1
@@ -9,7 +9,7 @@
9
9
  - **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
10
10
  - **Deprecations** none
11
11
  - **Optional peers** none
12
- - **Themeable via** 26 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
+ - **Themeable via** 29 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
14
14
 
15
15
  ---
@@ -21,7 +21,43 @@ Dashboard filter row that composes Lyra inputs and removable chips, with reset a
21
21
  Choice option entries must expose string `value` and `label` data fields; malformed entries are
22
22
  omitted independently, while supplied empty strings remain valid. A custom definition requires its
23
23
  adapter and a callable `render`; a rejected definition does not reserve its filter ID. Valid
24
- siblings remain available. Exceptions thrown by an admitted trusted renderer still propagate.
24
+ siblings remain available. Exceptions thrown by an admitted trusted renderer still propagate. A
25
+ chip-only definition requires neither options nor an adapter — a stable filter ID and a label are
26
+ the whole schema, since a malformed `formatValue`/`isEmpty` still has a correct fallback and so is
27
+ guarded where it is used rather than rejected outright.
28
+
29
+ **Lean registration entry.** `components/layout/filter-bar/filter-bar.js` (the default entry)
30
+ eagerly imports every composed control this bar could possibly render — `<lr-select>`,
31
+ `<lr-combobox>`, `<lr-dropdown>` + `<lr-dropdown-item>` (the `'checkbox-menu'` branch),
32
+ `<lr-date-input>`, `<lr-input>`, `<lr-chip>`/`<lr-chip-group>` (the active-filter row), and
33
+ `<lr-button>`/`<lr-spinner>` (the reset action and the loading status) — because `filters` is a
34
+ runtime value it cannot inspect ahead of time. A bar that only ever declares `'select'`/`'text'`
35
+ filters still pays for `<lr-combobox>` and `<lr-date-input>` through that entry: a measured ~69.5 kB
36
+ gzip more than importing only what it uses. A consumer who knows their own filter `type`s ahead of
37
+ time can import `components/layout/filter-bar/filter-bar-register.js` instead, which registers
38
+ `<lr-filter-bar>` and nothing else, then import each composed control's own registration entry for
39
+ the filter `type`s actually declared:
40
+
41
+ | Filter `type` | Registration entry |
42
+ | --- | --- |
43
+ | `'select'` | `components/forms/select/select.js` |
44
+ | `'combobox'` | `components/forms/combobox/combobox.js` |
45
+ | `'checkbox-menu'` | `components/overlays/overlay/dropdown.js` **and** `components/layout/menu/dropdown-item.js` |
46
+ | `'date'` / `'date-range'` | `components/forms/date-picker/date-input.js` |
47
+ | `'text'` | `components/forms/input/input.js` |
48
+ | `'chip'` | none — renders no control |
49
+
50
+ Two more are unconditional regardless of which filter `type`s are declared: `<lr-button>` renders
51
+ the reset action on every bar, and `<lr-chip>`/`<lr-chip-group>` render the active-filter row
52
+ whenever any filter has a value (further gated by `activeFiltersDisplay`, but never provably absent
53
+ for a generic bar) — `components/forms/button/button.js` and `components/overlays/chip/chip.js` +
54
+ `components/overlays/chip/chip-group.js`. `<lr-spinner>`
55
+ (`components/overlays/spinner/spinner.js`) is the one built-in dependency the lean entry omits even
56
+ though every bar could use it: `loading` is a plain boolean any consumer can leave unset entirely,
57
+ unlike a filter `type`, which `filters` always names outright — import it too if the bar ever sets
58
+ `loading`. A filter definition whose `type` has no matching import above renders no usable control
59
+ until something else registers it, the same trade `icon-button-register.js` documents for
60
+ `<lr-icon-button>`'s own `icon`/`src` attribute.
25
61
 
26
62
  **Properties:**
27
63
 
@@ -47,8 +83,20 @@ siblings remain available. Exceptions thrown by an admitted trusted renderer sti
47
83
  - `loading: boolean = false` (reflected) — shows the status spinner and disables reset while leaving
48
84
  filters editable.
49
85
  - `hasActiveFilters: boolean` (read-only) — whether any configured filter currently has a value.
86
+ Drives the reset button's own disabled state; unaffected by `activeFiltersDisplay`.
50
87
  - `invalidFilterIds: readonly string[]` (read-only) — immutable ids of required filters whose
51
88
  values are unset.
89
+ - `activeFiltersDisplay: 'all' | 'changed' | 'hidden' = 'all'` (reflected, attribute
90
+ `active-filters-display`) — which currently-active filters render as removable chips in the row
91
+ below the fields. `'all'` (the default, and this component's only behavior before this property
92
+ existed) shows one chip per non-empty filter, including one sitting at its own `defaultValue`.
93
+ `'changed'` shows a chip only for a filter whose value differs from its own `defaultValue` — so a
94
+ bar whose defaults narrow the view on load does not claim the user narrowed it — and a filter with
95
+ no declared `defaultValue` counts as changed as soon as it has any value at all. `'hidden'` never
96
+ renders the row. Array values compare against `defaultValue` positionally (same length, same entry
97
+ at each index), matching this component's only other array-equality precedent (a custom adapter's
98
+ own `clearValue` comparison); a `'date-range'` value is a single composed string, so it compares
99
+ like any other string. Removing a chip always clears that filter, unaffected by this property.
52
100
 
53
101
  The composed reset action uses `lr-button`'s default `m` size tier, matching the default rendered
54
102
  height of adjacent select, combobox, input, and date fields instead of introducing a shorter action
@@ -77,12 +125,13 @@ action) rendered inside `controls`, next to the reset button. Hidden and claimin
77
125
  space while nothing is slotted.
78
126
 
79
127
  **CSS parts:** `base`, `controls`, `field`, `field-<filterId>`, `end`, `filter-control`,
80
- `filter-control-label`, `filter-control-field`, `filter-control-input`, `filter-control-start`,
81
- `filter-control-end`, `filter-control-listbox`, `filter-control-option`, `filter-control-tags`,
82
- `filter-control-tag`, `filter-control-tag-label`, `filter-control-clear-button`,
83
- `filter-control-expand-button`, `filter-control-expand-icon`, `filter-control-popup`,
84
- `filter-control-error`, `filter-control-hint`, `active-filters`, `chips`, `chip`, `reset-button`,
85
- `status`.
128
+ `filter-control-label`, `filter-control-label-group`, `filter-control-field`,
129
+ `filter-control-input`, `filter-control-start`, `filter-control-end`, `filter-control-listbox`,
130
+ `filter-control-option`, `filter-control-tags`, `filter-control-tag`, `filter-control-tag-label`,
131
+ `filter-control-tag-remove-button`, `filter-control-tag-remove-button-base`,
132
+ `filter-control-clear-button`, `filter-control-expand-button`, `filter-control-expand-icon`,
133
+ `filter-control-popup`, `filter-control-error`, `filter-control-hint`, `active-filters`, `chips`,
134
+ `chip`, `reset-button`, `status`.
86
135
 
87
136
  The `filter-control-*` parts are semantic aliases forwarded from each built-in control's shadow
88
137
  surface. `filter-control-field` consistently reaches the select trigger, combobox container, or
@@ -90,9 +139,23 @@ text/date input wrapper; `filter-control-input` reaches the corresponding displa
90
139
  Listbox/option aliases apply to select and combobox filters, `filter-control-tags`/
91
140
  `filter-control-tag`/`filter-control-tag-label` apply to a `multiple` combobox filter's selected-tag
92
141
  chips (`filter-control-tag-label` is capped by that control's own `--tag-max-size`), and
93
- expand-button/popup apply to date filters. This lets a consumer theme the composed tier from
142
+ expand-button/popup apply to date filters. `filter-control-tag-remove-button`/
143
+ `filter-control-tag-remove-button-base` reach a selected tag's own remove button and its inner icon
144
+ wrapper — the same reach a standalone `lr-combobox`/`lr-select` consumer already has, now available
145
+ from `lr-filter-bar` too, for a consumer re-skinning filter tags as pills who needs the remove
146
+ target inside one to be stylable. This lets a consumer theme the composed tier from
94
147
  `lr-filter-bar::part(...)` without depending on the built-in control type selected by a filter
95
148
  definition. Custom renderers retain ownership of their own part forwarding.
149
+
150
+ A `multiple` `'combobox'` filter collapses past its own `max-options-visible` (3 by default, an
151
+ `<lr-combobox>` property this component does not forward) into a localized "+N" overflow indicator,
152
+ the same substance as `lr-select`'s own `multiple`-mode overflow chip. The one remaining difference:
153
+ `lr-select`'s overflow chip carries a second, distinguishing `tag-overflow` part
154
+ (`part="tag tag-overflow tag__base"`) so a consumer can style just that chip; `lr-combobox`'s
155
+ overflow chip carries only the plain `tag` part, with no equivalent token to forward as
156
+ `filter-control-tag-overflow`. Adding one is `<lr-combobox>`'s own surface to grow, not something
157
+ `lr-filter-bar`'s `exportparts` can manufacture for a part its composed child never renders — noted
158
+ here as a known, deliberate gap rather than silently undocumented.
96
159
  On a `'checkbox-menu'` filter, `filter-control-field` is the trigger button's own frame — the
97
160
  element inside `<lr-button>` that draws the border, background and radius, not the chrome-less
98
161
  button host, so a `::part(filter-control-field) { border-color: … }` rule works there exactly as it
@@ -101,7 +164,19 @@ a definition `icon` lands), `filter-control-input` is its selection summary, `fi
101
164
  is the trigger's own label text (not a stacked label above the control), `filter-control-listbox` is
102
165
  the dropdown's popup surface, `filter-control-option` is one `role="menuitemcheckbox"` row, and
103
166
  `filter-control-error` is the revealed required message — rendered by the bar itself, because the
104
- composed dropdown has no error chrome of its own.
167
+ composed dropdown has no error chrome of its own. The trigger also renders a `with-caret` disclosure
168
+ chevron, matching `lr-select`'s own — forwarded as `filter-control-expand-icon`, the same name a
169
+ select/combobox/date-input filter's own chevron already uses, so one consumer rule styles every
170
+ filter type's expand icon. `filter-control-label-group` reaches the trigger's own label wrapper —
171
+ the flex row this component lays `filter-control-label` and `filter-control-input` out in, which
172
+ also grows to fill the stretched trigger (via `with-caret`) so its content starts at the leading
173
+ edge instead of centring; no other filter type renders this part, since every other type's label and
174
+ input are two independent elements with no shared wrapper of their own. This component does not
175
+ render a stacked label above a `'checkbox-menu'` field the way every other built-in type does:
176
+ every other type's stacked label is rendered by the composed control itself, and there is no
177
+ equivalent shared "stacked label" template inside `<lr-filter-bar>` for this branch to reuse without
178
+ inventing a new one, so `labelVisibility` keeps its narrower meaning here (whether the trigger's own
179
+ baked-in label text is visible or screen-reader-only).
105
180
 
106
181
  `field` wraps one filter's composed control and its validation spacer inside `controls`; its
107
182
  flex-basis is themeable via `--lr-filter-bar-field-basis` (default `var(--lr-size-12rem)`).
@@ -119,12 +194,17 @@ alone, exactly as before this part existed, rather than risking a `part` attribu
119
194
  space-separated token list fabricates an unrelated second token.
120
195
 
121
196
  A `'select'`, `'combobox'` or `'checkbox-menu'` filter's required `options` entries are
122
- `LyraFilterBarOption { value, label, icon?, searchText? }`. `searchText` is extra text the option
123
- also matches on, forwarded verbatim to `<lr-option>`'s own `search-text`, so a row can keep a short
124
- visible `label` ("Urgent") while still matching a long canonical key ("SEV-1 production outage").
125
- It affects a `'combobox'` filter only: the attribute is written on every choice type's `<lr-option>`,
126
- but `<lr-select>`'s listbox type-ahead matches the option's `label` alone and never reads it, and a
127
- `'checkbox-menu'` has no text entry to match against.
197
+ `LyraFilterBarOption { value, label, icon?, searchText?, disabled? }`. `searchText` is extra text
198
+ the option also matches on, forwarded verbatim to `<lr-option>`'s own `search-text`, so a row can
199
+ keep a short visible `label` ("Urgent") while still matching a long canonical key ("SEV-1
200
+ production outage"). It affects a `'combobox'` filter only: the attribute is written on every
201
+ choice type's `<lr-option>`, but `<lr-select>`'s listbox type-ahead matches the option's `label`
202
+ alone and never reads it, and a `'checkbox-menu'` has no text entry to match against. `disabled`
203
+ marks the option non-actionable: forwarded to `<lr-option disabled>` for `'select'`/`'combobox'`
204
+ and to the composed `<lr-dropdown-item disabled>` for `'checkbox-menu'`, so the row renders
205
+ genuinely disabled (no tab/roving stop, no hover/press affordance) and arrow-key navigation already
206
+ steps past it, since that is the composed control's own existing `disabled` behavior. Omitted or
207
+ `false` renders the option exactly as before this field existed.
128
208
  `icon` is optional Lit content — a status dot, a type glyph, a flag — rendered into the composed
129
209
  `<lr-option>`'s own `start` slot as inert, `aria-hidden` chrome, so it never joins the option's
130
210
  accessible name:
@@ -146,7 +226,9 @@ same-named counterparts (with `combobox`'s `multiple` opting into a multi-value
146
226
  `'date'`/`'date-range'` both map to `<lr-date-input>` (single vs. `mode="range"`), and `'text'` maps
147
227
  to `<lr-input>` for an open-ended free-text query rather than a closed choice set. A `'text'`
148
228
  filter's value is the raw query string, verbatim, and its chip shows exactly that string — the same
149
- text the user typed, not a truncated or normalized form.
229
+ text the user typed, not a truncated or normalized form. `'chip'` is the one type that renders no
230
+ control at all (see **Chip-only filters** below): its value belongs to a widget elsewhere on the
231
+ page, so the bar renders only its active-filter chip and gives it no toolbar cell.
150
232
 
151
233
  Every built-in (non-`'custom'`) filter definition additionally accepts optional `size: LyraSize`,
152
234
  `icon: unknown` and `labelVisibility: 'visible' | 'hidden'` fields, and every one whose composed
@@ -362,12 +444,89 @@ const filters: LyraFilterBarFilterDefinition[] = [
362
444
  The custom renderer returns a Lit `TemplateResult`; the filter bar places it in its
363
445
  `filter-control` part and re-renders it whenever the controlled value or validation state changes.
364
446
 
447
+ ### Chip-only filters
448
+
449
+ Use `type: 'chip'` when the value is already owned by a widget elsewhere on the page — a calendar
450
+ heatmap cell, a map selection, a chart brush — and the bar's job is only to *show* that the filter
451
+ is applied and to let the user take it off. Unlike `type: 'custom'`, which still renders a control
452
+ inside the toolbar, a chip-only filter renders **no control and no toolbar cell at all**: no `field`
453
+ wrapper is emitted for it, so `lr-filter-bar::part(field)` and `::part(field-<filterId>)` never
454
+ match one and a bar whose filters are *all* chip-only shows no empty column — its `controls` row
455
+ still holds the reset button (the "clear all" action such a bar needs), the `end` slot, and the
456
+ loading spinner, exactly like a bar with no filters at all.
457
+
458
+ Everything else is unchanged from any other filter type. The value lives in `value` under its own
459
+ filter ID, rides every `lr-input`/`lr-reset` detail, counts toward `hasActiveFilters` (so it enables
460
+ the reset button) and toward `invalidFilterIds` when the definition is `required`, renders a
461
+ removable active-filter chip subject to `activeFiltersDisplay`, and is cleared both by removing that
462
+ chip and by `reset()`. A `required` chip-only filter is honoured in **bookkeeping only**: it joins
463
+ `invalidFilterIds`, fails `checkValidity()` and moves `lr-validity-change`, but renders no inline
464
+ error, because the bar renders no element of its own for it — the owning widget is responsible for
465
+ its own error affordance. The inherited `placeholder` is inert here for the same reason it is for
466
+ `type: 'custom'`: there is no field to place it in.
467
+
468
+ A chip-only definition adds three optional fields of its own:
469
+
470
+ ```ts
471
+ type: 'chip';
472
+ formatValue?: (value: LyraFilterBarFieldValue, locale: string) => string;
473
+ clearValue?: LyraFilterBarFieldValue;
474
+ isEmpty?: (value: LyraFilterBarFieldValue) => boolean;
475
+ ```
476
+
477
+ `formatValue` produces the chip's text, and its `locale` argument is the bar's `effectiveLocale` —
478
+ the same locale every built-in type's own chip formatting and a custom adapter's `formatValue`
479
+ already receive, and the reason a chip-only value (normally an already-formatted string such as a
480
+ localized date) can be localized by the caller. That output is caller data, so — like a filter's
481
+ own label — the bar never routes it through its own localization. Omitted, the fallback ladder is
482
+ the one a custom adapter's omitted `formatValue` uses: a string array renders as a localized
483
+ conjunction list, anything else renders verbatim through `String(value)`, and an unset value renders
484
+ as the empty string. Verbatim is exact: a chip-only value is never run through the date branch that
485
+ localizes a `'date'`/`'date-range'` chip, so an ISO day is not silently reformatted and a value
486
+ containing a slash is not mangled.
487
+
488
+ `clearValue` is what a chip removal (and `clearFilter()`) writes, defaulting to the empty string —
489
+ what every non-multi built-in type writes. Declare an empty array for an array-valued chip-only
490
+ filter. `isEmpty` overrides the built-in emptiness rule (absent, `false`, the empty string and the
491
+ empty array are empty; everything else is set). **A domain sentinel must pair the two**: declaring
492
+ a sentinel clear value without a matching `isEmpty` leaves the bar reading the "cleared" value as
493
+ still set, so it keeps rendering a chip for it — the identical pairing a custom adapter's own
494
+ `clearValue`/`isEmpty` documents. With the pair declared, the sentinel is never stored in `value`
495
+ (cleared keys are omitted) and an absent key reads back as the sentinel for the owning widget.
496
+
497
+ ```ts
498
+ const filters: LyraFilterBarFilterDefinition[] = [
499
+ { filterId: "query", label: "Query", type: "text" },
500
+ {
501
+ filterId: "day",
502
+ label: "Day",
503
+ type: "chip",
504
+ formatValue: (value, locale) =>
505
+ new Intl.DateTimeFormat(locale, {
506
+ dateStyle: "medium",
507
+ timeZone: "UTC",
508
+ }).format(new Date(`${String(value)}T00:00:00Z`)),
509
+ },
510
+ ];
511
+
512
+ // The calendar heatmap beside the bar owns the value; the bar only shows and removes it.
513
+ heatmap.addEventListener("app-select-day", (event) => {
514
+ const { isoDate } = (event as CustomEvent<{ isoDate: string }>).detail;
515
+ bar.value = { ...bar.value, day: isoDate };
516
+ });
517
+ bar.addEventListener("lr-input", (event) => {
518
+ const { value } = (event as LyraFilterBarInputEvent).detail;
519
+ heatmap.selectedDay = (value["day"] as string | undefined) ?? "";
520
+ });
521
+ ```
522
+
365
523
  **TypeScript:** `LyraFilterBar<Defs extends readonly LyraFilterBarFilterDefinition[] =
366
524
  readonly LyraFilterBarFilterDefinition[]>` — `value` and the `lr-input`/`lr-reset` detail `value`
367
525
  narrow to a record keyed per `filterId`, whose value type follows that filter's own definition (a
368
526
  `'select'`, a non-`multiple` `'combobox'`, `'text'`, `'date'`, and `'date-range'` narrow to
369
527
  `string`; a `'checkbox-menu'` and a `multiple: true` `'combobox'` narrow to `readonly string[]`; a
370
- `'custom'` filter keeps the full unconstrained field value). Declare the schema with `as const
528
+ `'custom'` filter keeps the full unconstrained field value, and so does a `'chip'` filter, whose
529
+ value is owned by a widget this component never renders). Declare the schema with `as const
371
530
  satisfies readonly LyraFilterBarFilterDefinition[]` and type the element as
372
531
  `LyraFilterBar<typeof FILTERS>` to pick it up. Types only; the runtime is unchanged, and an untyped
373
532
  `<lr-filter-bar>` keeps today's `LyraFilterBarValue` (`Readonly<Record<string, string | readonly
@@ -9,7 +9,7 @@
9
9
  - **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
10
10
  - **Deprecations** none
11
11
  - **Optional peers** none
12
- - **Themeable via** 29 parts, 14 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
+ - **Themeable via** 29 parts, 15 custom properties — see this component's own `@csspart`/`@cssprop` list below
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
14
14
 
15
15
  ---
@@ -47,14 +47,19 @@ import type {
47
47
  **Properties:**
48
48
 
49
49
  - `nodes: readonly FlowNode[] = []` (attribute: false) — each record has readonly `id`, optional
50
- `type`, `position`, `data`, `accessibleLabel`, `inputs`, and `outputs`. A missing `position` opts
51
- into layered layout. String `data.label` and `data.description` feed the declarative fallback
52
- card. Assignment takes a detached, deeply frozen snapshot of plain arrays/records, omitting blank
53
- ids and later duplicates first-wins before layout, focus, selection, gestures, companion
54
- snapshots, and events. At most the first 10,000 source nodes are retained, with finite nested
55
- depth/entry budgets; reassign `nodes` after changes. Replacing the model cancels node-drag and
56
- connect gestures whose ids belonged to the old model and silently prunes selected ids that no
57
- longer exist.
50
+ `type`, `position`, `data`, `accessibleLabel`, `inputs`, `outputs`, and `disabled`. A missing
51
+ `position` opts into layered layout. String `data.label` and `data.description` feed the
52
+ declarative fallback card. Assignment takes a detached, deeply frozen snapshot of plain
53
+ arrays/records, omitting blank ids and later duplicates first-wins before layout, focus,
54
+ selection, gestures, companion snapshots, and events. At most the first 10,000 source nodes are
55
+ retained, with finite nested depth/entry budgets; reassign `nodes` after changes. Replacing the
56
+ model cancels node-drag and connect gestures whose ids belonged to the old model and silently
57
+ prunes selected ids that no longer exist. `disabled` marks a node non-actionable: it keeps its
58
+ position and card content but cannot be selected/activated by click or keyboard, roving-tabindex
59
+ navigation (arrow keys, Home/End) steps past it, it cannot be dragged even while
60
+ `nodes-draggable`, and it is excluded from starting or receiving a new connection while
61
+ `connectable` (an edge already touching it is left alone). Omitted or `false` renders the node
62
+ exactly as before this field existed.
58
63
  - `edges: readonly FlowEdge[] = []` (attribute: false) — readonly `id`, `source`, `target`, optional
59
64
  handle ids, optional drawn `label`, and optional `tone: LyraVariant`. The canonical brand value is
60
65
  `brand`; the former `accent` value and `FlowEdgeTone` alias are not part of this contract. Blank
@@ -220,5 +225,7 @@ four above. Set it to `transparent` to opt out of the hover treatment.
220
225
  - `part="edge-hit-area"` — The transparent wide pointer target behind an edge.
221
226
  - `part="node-control"` — The visually hidden, roving selection button for a node.
222
227
  - `--lr-flow-canvas-node-selected-outline-color` — Outline color of a selected node. Default: `var(--lr-color-brand)`.
228
+ - `--lr-flow-canvas-node-disabled-opacity` — Opacity of a node whose `FlowNode` entry sets
229
+ `disabled`. Default: `var(--lr-opacity-disabled)`.
223
230
 
224
231
  ---
@@ -42,6 +42,12 @@ explicitly empty labels remain empty and later labels render normally.
42
42
  - `valueText?: string` (attribute `value-text` — overrides both the visible text and the host's
43
43
  `aria-valuetext`; an empty string is treated the same as unset and falls back to the numeric
44
44
  `value` while removing `aria-valuetext`)
45
+ - `showValue: boolean = true` (attribute `show-value`, not reflected) — whether the decorative
46
+ `part="value"` caption renders at all; `show-value="false"` omits it the same way an empty
47
+ `label` already omits `part="label"`. `aria-valuenow`/`aria-valuetext` and the host's accessible
48
+ name are unaffected either way, since the caption itself is always `aria-hidden`. Mirrors
49
+ `<lr-progress-bar>`'s/`<lr-progress-ring>`'s own `showValue` name and meaning; the default here
50
+ is `true` (a gauge's whole purpose is showing the reading it announces) where theirs is `false`.
45
51
  - `variant: LyraProgressVariant = 'brand'` (reflected) — the same shared semantic-tone vocabulary
46
52
  `<lr-progress-bar>` uses (`'neutral'|'brand'|'success'|'warning'|'danger'`). The fallback color
47
53
  whenever `thresholds` is empty or matches nothing.
@@ -58,7 +64,8 @@ explicitly empty labels remain empty and later labels render normally.
58
64
 
59
65
  **Slots:** none.
60
66
 
61
- **CSS parts:** `base` (the `<svg>`), `track`, `fill`, `value`, `label`
67
+ **CSS parts:** `base` (the `<svg>`), `track`, `fill`, `value` (rendered only while `showValue` is
68
+ true), `label` (rendered only while `label` is non-empty)
62
69
 
63
70
  **Themeable custom properties:** `--lr-gauge-fill` (fill stroke; overrides `variant`/`thresholds`
64
71
  entirely and falls back to the effective variant's shared semantic token —
@@ -75,6 +82,15 @@ entirely and falls back to the effective variant's shared semantic token —
75
82
  style="--lr-gauge-fill: var(--lr-color-success)"
76
83
  ></lr-gauge>
77
84
  <lr-gauge shape="linear" value="0.4" max="1" value-text="72°F"></lr-gauge>
85
+ <!-- compact dashboard meter: a slim, captionless, thresholded row -->
86
+ <lr-gauge
87
+ shape="linear"
88
+ size="xs"
89
+ show-value="false"
90
+ aria-label="Spend"
91
+ value="84"
92
+ max="100"
93
+ ></lr-gauge>
78
94
  <!-- automatic threshold coloring: same rule, opposite direction -->
79
95
  <lr-gauge id="cpu" value="82" label="CPU"></lr-gauge>
80
96
  <script>
@@ -118,7 +134,11 @@ entirely and falls back to the effective variant's shared semantic token —
118
134
  - no documented component-specific sizing custom property. The host box is fixed em values
119
135
  (`8em` radial/ring, `12em`/`1.5em` linear) against the host font size, so `size` is the supported
120
136
  way to step it; for a dimension off the ladder, set plain CSS `width`/`height` (or `font-size`)
121
- on the element instead.
137
+ on the element instead. The value/label captions are `em`-sized against that same host font-size,
138
+ so they shrink right along with the frame at a smaller tier or a smaller host `font-size` —
139
+ combine a small tier (or a small host `font-size`) with `show-value="false"` for a slim,
140
+ thresholded dashboard meter, matching `<lr-progress-bar size="xs">`'s footprint but with
141
+ `role="meter"` and one `thresholds` array instead of a hand-written ratio-to-variant mapping.
122
142
  - Divide-by-zero guarded, and radial/linear share one component via the `shape`
123
143
  attribute.
124
144
  - non-finite `value` text remains blank unless `valueText` supplies a truthful fallback; that
@@ -37,9 +37,10 @@ Bins `values` into `bins` equal-width buckets and renders as a bar chart (extend
37
37
  (`index-axis`), `hiddenDatasets`, `hiddenDatums`, `legendPosition` (`legend-position`),
38
38
  `legendMode` (`legend-mode`), `legendDisplay` (`legend-display`), `max`, `min`, `plugins`,
39
39
  `withoutAnimation` (`without-animation`), `withoutLegend` (`without-legend`), `withoutTooltip`
40
- (`without-tooltip`), `valueFormatter`, `formatter`, `area`, `zoom`, `config`, `height`, `xLabel` (`x-label`),
40
+ (`without-tooltip`), `valueFormatter`, `formatter`, `tooltipTitleFormatter`,
41
+ `tooltipFooterFormatter`, `area`, `zoom`, `config`, `height`, `xLabel` (`x-label`),
41
42
  `yLabel` (`y-label`), `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`),
42
- `stacked`, `dataLabels` (`data-labels`), `stackTotals` (`stack-totals`), `showDataTable`
43
+ `stacked`, `stackedAxes`, `dataLabels` (`data-labels`), `stackTotals` (`stack-totals`), `showDataTable`
43
44
  (`show-data-table`), `dataTableToggle` (`data-table-toggle`), `chartArea` (readonly).
44
45
 
45
46
  **Methods:** `resetZoom()`, `refreshTheme()`, and `renderChart()` are inherited; `appendSamples(values,
@@ -103,5 +104,9 @@ their semantics, defaults, and gotchas.
103
104
  - `values`/`bins`/`seriesLabel` changes join the inherited connected-and-visible redraw path. There is no
104
105
  second post-update refresh, so a same-tick disconnect cannot recreate Chart.js on a detached
105
106
  canvas and off-screen sample updates do not repaint it.
107
+ - calling `binValues()` directly (not through `<lr-histogram>`, which always passes its own
108
+ resolved `effectiveLocale`) with an omitted `locale` (or `'auto'`) now resolves to the page's
109
+ active `setLyraLocale()` locale instead of a hardcoded `'en'`, matching `utilities/format.ts`'s
110
+ helpers; an app that never calls `setLyraLocale()` sees no change, and an explicit tag still wins.
106
111
 
107
112
  ---
@@ -69,7 +69,8 @@ button whose purpose isn't generic.
69
69
  Host `aria-haspopup` and `aria-expanded` values are forwarded reactively to the shadow-internal
70
70
  native button. `aria-pressed` (`true`, `false`, `mixed`) supports icon-only toggle actions such as
71
71
  mute, favorite, or pin, and reaches the `<button>` rendering only — a link icon-button (`href` set)
72
- never receives it, since `role="link"` has no pressed state; `aria-current` (`page`, `step`,
72
+ never receives it, since `role="link"` has no pressed state (that carve-out arrived in **16.0.0**;
73
+ earlier versions forwarded it onto the anchor too); `aria-current` (`page`, `step`,
73
74
  `location`, `date`, `time`, `true`, `false`) is global and supports current-item icon buttons such
74
75
  as an active nav/pagination target in both renderings. Both follow attribute
75
76
  changes, removal, and button/link replacement without changing the native role of an enabled
@@ -123,16 +124,24 @@ DOM while at least one top-level slotted element needs the bare-geometry fallbac
123
124
  **Themeable custom properties:** `--lr-icon-button-size` (default `2.5rem`) is the **minimum**
124
125
  tappable inline and block size of the native button — a floor, not a fixed size. Content larger
125
126
  than it grows the button and keeps its own aspect ratio; a small glyph pads out to it. It is a
126
- library-wide token (declared on `:root` by the token layer, and the shared minimum tappable size
127
+ library-wide token (declared on every `lr-*` host by the shared token layer, and the shared minimum tappable size
127
128
  that several other components size their icon-only controls against), so overriding
128
129
  `--lr-theme-icon-button-size` globally resizes all of them together. Keep the resolved value at or
129
- above 24px — see `llms/shared.md`. Lowering the floor for a dense action row (directly via
130
- `--lr-icon-button-size`, or via `--lr-theme-icon-button-size` on an ancestor to reach a
130
+ above 24px — see `llms/shared.md`. **`--lr-icon-button-size` is element-scoped, unlike every other
131
+ token in this section:** the shared token layer re-declares it on every `lr-*` host's own `:host`,
132
+ so a rule that sets `--lr-icon-button-size` on an ancestor wrapper is reset the moment it crosses
133
+ into any intervening `lr-*` component and never reaches a `<lr-icon-button>` composed inside it
134
+ (e.g. one slotted through `<lr-popover>`). The only two levers that actually reach it are: setting
135
+ `--lr-icon-button-size` directly on the icon button element itself, where no intervening component
136
+ sits between the rule and the property; or setting `--lr-theme-icon-button-size` on an ancestor,
137
+ which the shared layer reads through `var()` at every level and which therefore reaches a
131
138
  `<lr-icon-button>` composed inside another component, e.g. `<lr-copy-button>`/
132
- `<lr-message-actions>`) is safe even below 24px: a coarse-pointer/no-hover media rule floors the
133
- RENDERED hit area back at 2.75rem/44px regardless of how far the override lowered it, so the
134
- control stays comfortably tappable the moment the pointer reaching it is a finger rather than a
135
- mouse. `--lr-icon-button-radius` (default `--lr-radius`) is the
139
+ `<lr-message-actions>`. Lowering the floor for a dense action row through either lever is safe even
140
+ below 24px: a coarse-pointer/no-hover media rule floors the RENDERED hit area back at 2.75rem/44px
141
+ regardless of how far the override lowered it, so the control stays comfortably tappable the moment
142
+ the pointer reaching it is a finger rather than a mouse. `--lr-icon-button-radius` (default
143
+ `--lr-radius`) is not re-declared anywhere in the shared layer, so — like every other token below —
144
+ it inherits normally from an ancestor even through an intervening component; it is the
136
145
  `[part='button']` corner radius, retunable without a `::part(button)` rule — the same
137
146
  `--lr-button-radius` pattern; `lr-icon-button` has no `size` tiers, so there is no per-tier gap
138
147
  counterpart to it. The internal control sets `font: inherit`, so an `em`-sized slotted glyph takes
@@ -153,7 +153,9 @@ writes remain valid and read back as booleans. Markup uses `autocorrect="on"` /
153
153
  before. Omitted, `0`, or a non-finite value means no debounce at all: `lr-input-settled` never
154
154
  fires. A pending debounce is flushed immediately by `change`/Enter/blur (so a blur never drops
155
155
  the last keystroke) and cancelled with no stray settle by disconnection, the built-in clear
156
- button, and a programmatic `value` write. Shares its `DebounceController` primitive with
156
+ button, and a programmatic `value` write that changes the value. A write of the value already
157
+ held leaves it pending, so a framework binding that writes the just-typed value back on each
158
+ render (the controlled-input pattern) still settles. Shares its `DebounceController` primitive with
157
159
  `lr-filter-bar`'s own per-filter `debounce` and with `lr-textarea`'s identical property
158
160
  - `name`/`disabled`/`required` (from `FormAssociated`)
159
161
 
@@ -28,9 +28,10 @@ of every entry in these lists.**
28
28
  **Properties:** `description`, `grid`, `axes`, `compact`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
29
29
  (`legend-position`), `hiddenDatums`, `legendMode` (`legend-mode`), `legendDisplay` (`legend-display`),
30
30
  `max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
31
- `stacked`, `withoutAnimation` (`without-animation`),
31
+ `stacked`, `stackedAxes`, `withoutAnimation` (`without-animation`),
32
32
  `withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
33
- `yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`, `area`, `zoom`,
33
+ `yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
34
+ `tooltipTitleFormatter`, `tooltipFooterFormatter`, `area`, `zoom`,
34
35
  `height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
35
36
  (`data-labels`), `stackTotals` (`stack-totals`), `config`, `showDataTable`
36
37
  (`show-data-table`), `dataTableToggle` (`data-table-toggle`), `chartArea` (readonly), and `chart`.
@@ -23,6 +23,19 @@ tooltips (native SVG `<title>`, no positioning JS) — not a full `lr-chart` rep
23
23
  zoom/pan, no pie/doughnut/radar/scatter/bubble types, no horizontal/dual-y-axis, no raw-config
24
24
  passthrough). Not a subclass of `LyraChart`.
25
25
 
26
+ Deliberate omissions, assessed and not implemented: `lr-chart`'s per-series `LyraChartSeries.stack`
27
+ group and per-axis `stackedAxes` have no `lr-lite-chart` counterpart. `stacked` here is already
28
+ chart-wide only (see below) and this component has exactly one value scale — no `y2` — so "an
29
+ unstacked overlay on a second axis," the motivating case for `stackedAxes`, has no equivalent
30
+ shape to express. A per-series stack-group id would also need the hand-rolled SVG bar-geometry
31
+ pass (linear/sqrt/log stack compression, `minBarHeight`) to track independent running offsets per
32
+ group instead of one per category, which is a materially larger, higher-risk change than this
33
+ component's existing single-stack model. `tooltipTitleFormatter`/`tooltipFooterFormatter` are
34
+ similarly absent: this component's hover tooltip is a native SVG `<title>` on each mark — one
35
+ self-contained string per mark, generated by `pointText` — not a Chart.js-style multi-item tooltip
36
+ with separate title/body/footer regions for several datasets sharing a hovered category, so there
37
+ is no "every item in the tooltip" surface to hook a title or footer formatter onto.
38
+
26
39
  **Properties:**
27
40
  - `type: LyraLiteChartType = 'bar'` — `'bar' | 'line'`
28
41
  - `labels: readonly string[] = []` (attribute: false)
@@ -9,7 +9,7 @@
9
9
  - **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
10
10
  - **Deprecations** none
11
11
  - **Optional peers** none
12
- - **Themeable via** 13 parts, 24 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
+ - **Themeable via** 13 parts, 25 custom properties — see this component's own `@csspart`/`@cssprop` list below
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
14
14
 
15
15
  ---
@@ -159,6 +159,12 @@ this listbox together with every other floating surface. `--lr-overlay-radius` r
159
159
  only as the middle arm of this component's own `--lr-locale-picker-radius`, which still wins when
160
160
  set: a component-scoped override outranks the shared family, never the other way round.
161
161
 
162
+ `--lr-positioning-strategy` (16.0.0) — the listbox reads this same cascading `absolute`/`fixed`
163
+ override documented on `<lr-popover>` when it is (re)positioned, falling back to its own `fixed`
164
+ default when nothing is set. There is no per-instance `positioning-strategy` property on
165
+ `<lr-locale-picker>`; set the custom property on `:root`, a theme, or one clipping ancestor to
166
+ change every unset locale picker beneath it.
167
+
162
168
  **Optional peer deps:** none directly — each row's `<lr-flag>` degrades to an empty render (no
163
169
  peer warning duplication; `lr-flag` itself already logs one) when the optional
164
170
  `@aceshooting/lyra-flags` package isn't installed and `showFlags` is left on.