@aceshooting/lyra-ui 14.0.0 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/CHANGELOG.md +149 -19
  2. package/custom-elements.json +1 -1
  3. package/dist/components/agent-tools/commit-card/commit-card.class.d.ts +3 -1
  4. package/dist/components/agent-tools/commit-card/commit-card.class.js +2 -2
  5. package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -1
  6. package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +1 -1
  7. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +6 -2
  8. package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +4 -4
  9. package/dist/components/agent-tools/result-card/result-card.class.d.ts +1 -1
  10. package/dist/components/agent-tools/result-card/result-card.class.js +1 -1
  11. package/dist/components/agent-tools/result-card/result-field.class.d.ts +1 -1
  12. package/dist/components/agent-tools/result-card/result-field.class.js +1 -1
  13. package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +1 -1
  14. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
  15. package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
  16. package/dist/components/agent-tools/terminal/terminal.class.js +2 -2
  17. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -2
  18. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
  19. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
  20. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +2 -2
  21. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +4 -4
  22. package/dist/components/agent-tools/trace-tree/span.d.ts +3 -1
  23. package/dist/components/agent-tools/trace-tree/span.js +1 -1
  24. package/dist/components/charts/chart/box-plot.class.d.ts +2 -0
  25. package/dist/components/charts/chart/box-plot.class.js +1 -1
  26. package/dist/components/charts/chart/chart.class.d.ts +6 -1
  27. package/dist/components/charts/chart/chart.class.js +1 -1
  28. package/dist/components/charts/chart/lite-chart.class.d.ts +20 -11
  29. package/dist/components/charts/chart/lite-chart.class.js +10 -8
  30. package/dist/components/conversation/chat-message/chat-message.class.d.ts +4 -3
  31. package/dist/components/conversation/code-block/code-block-core.class.d.ts +4 -3
  32. package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
  33. package/dist/components/conversation/code-block/code-block-shared.d.ts +3 -3
  34. package/dist/components/conversation/code-block/code-block-shared.js +2 -2
  35. package/dist/components/conversation/code-block/code-block.class.d.ts +4 -3
  36. package/dist/components/conversation/code-block/code-block.class.js +1 -1
  37. package/dist/components/conversation/code-block/shiki-types.d.ts +2 -0
  38. package/dist/components/conversation/code-block/shiki-types.js +1 -1
  39. package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
  40. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  41. package/dist/components/conversation/markdown/markdown-core.class.d.ts +1 -1
  42. package/dist/components/conversation/markdown/markdown.class.d.ts +1 -1
  43. package/dist/components/conversation/message-actions/message-actions.class.d.ts +2 -0
  44. package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
  45. package/dist/components/conversation/message-feedback/message-feedback.class.d.ts +3 -1
  46. package/dist/components/conversation/message-feedback/message-feedback.class.js +2 -2
  47. package/dist/components/conversation/message-parts/message-parts.class.d.ts +3 -0
  48. package/dist/components/conversation/model-select/model-select.class.js +3 -3
  49. package/dist/components/conversation/thread-list/thread-list.class.js +1 -1
  50. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +2 -0
  51. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
  52. package/dist/components/conversation/typing-indicator/typing-indicator.class.d.ts +2 -1
  53. package/dist/components/conversation/typing-indicator/typing-indicator.class.js +1 -1
  54. package/dist/components/conversation/usage-badge/usage-badge-overlay-runtime.d.ts +3 -0
  55. package/dist/components/conversation/usage-badge/usage-badge-overlay-runtime.js +1 -0
  56. package/dist/components/conversation/usage-badge/usage-badge.class.d.ts +4 -2
  57. package/dist/components/conversation/usage-badge/usage-badge.class.js +1 -1
  58. package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
  59. package/dist/components/conversation/widget-renderer/resolve.d.ts +4 -6
  60. package/dist/components/conversation/widget-renderer/resolve.js +1 -1
  61. package/dist/components/data/calendar/calendar.class.d.ts +6 -3
  62. package/dist/components/data/calendar/calendar.class.js +1 -1
  63. package/dist/components/data/calendar/calendar.styles.js +1 -1
  64. package/dist/components/data/condition-builder/condition-builder.class.d.ts +3 -1
  65. package/dist/components/data/condition-builder/condition-builder.class.js +15 -1
  66. package/dist/components/data/context-meter/context-meter.class.js +2 -2
  67. package/dist/components/data/data-grid/data-grid.class.d.ts +6 -2
  68. package/dist/components/data/data-grid/data-grid.class.js +1 -1
  69. package/dist/components/data/document-library/document-library.class.d.ts +5 -2
  70. package/dist/components/data/document-library/document-library.class.js +1 -1
  71. package/dist/components/data/file-tree/file-tree.class.d.ts +2 -1
  72. package/dist/components/data/file-tree/file-tree.class.js +1 -1
  73. package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +5 -2
  74. package/dist/components/data/flow-canvas/flow-canvas.styles.js +1 -1
  75. package/dist/components/data/flow-canvas/flow-model.js +1 -1
  76. package/dist/components/data/flow-canvas/flow-types.d.ts +2 -1
  77. package/dist/components/data/funnel/funnel.class.d.ts +1 -0
  78. package/dist/components/data/funnel/funnel.class.js +1 -1
  79. package/dist/components/data/gauge/gauge.class.d.ts +4 -1
  80. package/dist/components/data/gauge/gauge.class.js +6 -6
  81. package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +5 -2
  82. package/dist/components/data/graph-query-builder/graph-query-builder.class.js +15 -1
  83. package/dist/components/data/heatmap/heatmap.class.d.ts +7 -4
  84. package/dist/components/data/heatmap/heatmap.class.js +1 -1
  85. package/dist/components/data/sparkline/sparkline.class.d.ts +2 -1
  86. package/dist/components/data/sparkline/sparkline.class.js +1 -1
  87. package/dist/components/data/stat/stat.class.d.ts +6 -2
  88. package/dist/components/data/stat/stat.class.js +1 -1
  89. package/dist/components/data/table/table.class.d.ts +5 -2
  90. package/dist/components/data/table/table.class.js +2 -2
  91. package/dist/components/data/timeline/timeline.class.d.ts +7 -2
  92. package/dist/components/data/timeline/timeline.class.js +1 -1
  93. package/dist/components/data/timeline/timeline.styles.js +1 -1
  94. package/dist/components/data/tree/tree-item.class.d.ts +3 -1
  95. package/dist/components/data/tree/tree-item.class.js +1 -1
  96. package/dist/components/data/tree/tree.class.d.ts +4 -1
  97. package/dist/components/data/tree/tree.class.js +1 -1
  98. package/dist/components/data/word-cloud/word-cloud-layout.d.ts +2 -1
  99. package/dist/components/data/word-cloud/word-cloud-layout.js +1 -1
  100. package/dist/components/data/word-cloud/word-cloud.class.d.ts +2 -1
  101. package/dist/components/forms/button/button.class.d.ts +5 -3
  102. package/dist/components/forms/button/button.class.js +1 -1
  103. package/dist/components/forms/checkbox/checkbox.class.d.ts +3 -0
  104. package/dist/components/forms/checkbox/checkbox.class.js +1 -1
  105. package/dist/components/forms/code-editor/code-editor.class.d.ts +11 -3
  106. package/dist/components/forms/code-editor/code-editor.class.js +6 -7
  107. package/dist/components/forms/code-editor/code-editor.styles.js +1 -1
  108. package/dist/components/forms/color-picker/color-picker.class.d.ts +5 -1
  109. package/dist/components/forms/color-picker/color-picker.class.js +4 -4
  110. package/dist/components/forms/combobox/combobox.class.d.ts +19 -8
  111. package/dist/components/forms/combobox/combobox.class.js +3 -3
  112. package/dist/components/forms/combobox/option.class.d.ts +4 -0
  113. package/dist/components/forms/combobox/option.class.js +2 -2
  114. package/dist/components/forms/date-picker/calendar-core.d.ts +1 -1
  115. package/dist/components/forms/date-picker/calendar-core.js +1 -1
  116. package/dist/components/forms/date-picker/date-input.class.d.ts +20 -10
  117. package/dist/components/forms/date-picker/date-input.class.js +4 -4
  118. package/dist/components/forms/date-picker/date-picker.class.d.ts +24 -13
  119. package/dist/components/forms/date-picker/date-picker.class.js +7 -7
  120. package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
  121. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +11 -3
  122. package/dist/components/forms/emoji-picker/emoji-picker.class.js +3 -3
  123. package/dist/components/forms/emoji-picker/emoji-types.d.ts +2 -2
  124. package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -2
  125. package/dist/components/forms/icon-button/icon-button.class.js +1 -1
  126. package/dist/components/forms/input/input.class.d.ts +5 -1
  127. package/dist/components/forms/input/input.class.js +1 -1
  128. package/dist/components/forms/input/native-time-input.class.d.ts +3 -0
  129. package/dist/components/forms/input/number-input.class.d.ts +3 -0
  130. package/dist/components/forms/input/time-input.class.d.ts +3 -0
  131. package/dist/components/forms/input/time-input.class.js +1 -1
  132. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -1
  133. package/dist/components/forms/locale-picker/locale-picker.class.js +2 -2
  134. package/dist/components/forms/otp-input/otp-input.class.d.ts +5 -1
  135. package/dist/components/forms/otp-input/otp-input.class.js +1 -1
  136. package/dist/components/forms/phone-input/phone-input.class.d.ts +21 -8
  137. package/dist/components/forms/phone-input/phone-input.class.js +1 -1
  138. package/dist/components/forms/radio/radio-button.class.d.ts +4 -0
  139. package/dist/components/forms/radio/radio-group.class.d.ts +4 -1
  140. package/dist/components/forms/radio/radio-group.class.js +1 -1
  141. package/dist/components/forms/radio/radio.class.d.ts +6 -2
  142. package/dist/components/forms/radio/radio.class.js +1 -1
  143. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +7 -1
  144. package/dist/components/forms/rubric-form/rubric-form.class.js +3 -3
  145. package/dist/components/forms/select/select.class.d.ts +8 -2
  146. package/dist/components/forms/select/select.class.js +2 -2
  147. package/dist/components/forms/slider/slider.class.d.ts +12 -6
  148. package/dist/components/forms/slider/slider.class.js +2 -2
  149. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +4 -0
  150. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  151. package/dist/components/forms/switch/switch.class.d.ts +5 -1
  152. package/dist/components/forms/switch/switch.class.js +1 -1
  153. package/dist/components/forms/textarea/textarea.class.d.ts +3 -0
  154. package/dist/components/forms/textarea/textarea.class.js +1 -1
  155. package/dist/components/forms/time-range/time-range.class.d.ts +3 -0
  156. package/dist/components/forms/time-range/time-range.class.js +1 -1
  157. package/dist/components/forms/token-input/token-input.class.d.ts +8 -2
  158. package/dist/components/forms/token-input/token-input.class.js +2 -2
  159. package/dist/components/forms/token-input/token-input.styles.js +1 -1
  160. package/dist/components/layout/app-rail/app-rail.class.d.ts +3 -1
  161. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  162. package/dist/components/layout/carousel/carousel.class.d.ts +3 -2
  163. package/dist/components/layout/carousel/carousel.class.js +1 -1
  164. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  165. package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +2 -0
  166. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
  167. package/dist/components/layout/details/details.class.d.ts +3 -3
  168. package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -1
  169. package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
  170. package/dist/components/layout/menu/menu-label.class.d.ts +3 -3
  171. package/dist/components/layout/menu/menu.class.d.ts +4 -1
  172. package/dist/components/layout/menu/menu.class.js +1 -1
  173. package/dist/components/layout/multi-split/multi-split.class.d.ts +9 -3
  174. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  175. package/dist/components/layout/multi-split/multi-split.styles.js +1 -1
  176. package/dist/components/layout/reorder-list/reorder-item.class.d.ts +2 -1
  177. package/dist/components/layout/reorder-list/reorder-item.class.js +1 -1
  178. package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
  179. package/dist/components/layout/reorder-list/reorder-owner.js +1 -1
  180. package/dist/components/layout/split-panel/split-panel.class.d.ts +2 -1
  181. package/dist/components/layout/split-panel/split-panel.class.js +1 -1
  182. package/dist/components/layout/tab-group/tab-group.class.d.ts +3 -1
  183. package/dist/components/layout/tab-group/tab-group.class.js +1 -1
  184. package/dist/components/layout/widget/widget.class.d.ts +6 -2
  185. package/dist/components/layout/widget/widget.class.js +1 -1
  186. package/dist/components/media/animation/animation.class.d.ts +3 -2
  187. package/dist/components/media/animation/animation.class.js +1 -1
  188. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +4 -3
  189. package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
  190. package/dist/components/media/av-player/av-metadata.d.ts +3 -2
  191. package/dist/components/media/av-player/av-player.class.d.ts +4 -3
  192. package/dist/components/media/av-player/av-player.class.js +3 -3
  193. package/dist/components/media/av-player/av-player.styles.js +1 -1
  194. package/dist/components/media/avatar/avatar.class.d.ts +2 -1
  195. package/dist/components/media/avatar/avatar.class.js +1 -1
  196. package/dist/components/media/file-input/file-input.class.d.ts +4 -2
  197. package/dist/components/media/file-input/file-input.class.js +1 -1
  198. package/dist/components/media/file-input/file-input.styles.js +1 -1
  199. package/dist/components/media/image-viewer/image-viewer.class.d.ts +2 -1
  200. package/dist/components/media/image-viewer/image-viewer.class.js +1 -1
  201. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  202. package/dist/components/media/map/map.class.d.ts +5 -3
  203. package/dist/components/media/map/map.class.js +1 -1
  204. package/dist/components/media/map/map.styles.js +1 -1
  205. package/dist/components/media/media-card/media-card.class.d.ts +1 -1
  206. package/dist/components/media/media-card/media-card.class.js +1 -1
  207. package/dist/components/media/pan-zoom/pan-zoom.class.js +1 -1
  208. package/dist/components/media/sequence-playback/sequence-playback.class.d.ts +1 -1
  209. package/dist/components/media/sequence-playback/sequence-playback.styles.js +1 -1
  210. package/dist/components/media/video/video.class.d.ts +2 -1
  211. package/dist/components/media/video/video.styles.js +1 -1
  212. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -2
  213. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +2 -2
  214. package/dist/components/overlays/chip/chip-group.class.d.ts +2 -0
  215. package/dist/components/overlays/chip/chip-group.class.js +1 -1
  216. package/dist/components/overlays/dialog/dialog.class.d.ts +2 -0
  217. package/dist/components/overlays/dialog/dialog.class.js +1 -1
  218. package/dist/components/overlays/empty/empty.class.d.ts +2 -0
  219. package/dist/components/overlays/empty/empty.class.js +1 -1
  220. package/dist/components/overlays/kbd/kbd.class.d.ts +2 -0
  221. package/dist/components/overlays/kbd/kbd.class.js +1 -1
  222. package/dist/components/overlays/overlay/popover.class.d.ts +3 -1
  223. package/dist/components/overlays/overlay/popover.class.js +1 -1
  224. package/dist/components/overlays/overlay/tooltip.class.d.ts +3 -1
  225. package/dist/components/overlays/overlay/tooltip.class.js +1 -1
  226. package/dist/components/overlays/rating/rating.class.d.ts +2 -0
  227. package/dist/components/overlays/rating/rating.class.js +1 -1
  228. package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +2 -2
  229. package/dist/components/retrieval/entity-card/entity-card.class.d.ts +5 -2
  230. package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
  231. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +4 -2
  232. package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
  233. package/dist/components/retrieval/graph/graph-canvas.js +1 -1
  234. package/dist/components/retrieval/graph/graph.class.d.ts +9 -7
  235. package/dist/components/retrieval/graph/graph.class.js +1 -1
  236. package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -3
  237. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +2 -0
  238. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +1 -1
  239. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +3 -2
  240. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +7 -3
  241. package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +2 -1
  242. package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +1 -1
  243. package/dist/components/retrieval/source-picker/source-picker.class.d.ts +2 -1
  244. package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
  245. package/dist/components/utility/format/format-number.class.d.ts +3 -1
  246. package/dist/components/utility/format/format-options.js +1 -1
  247. package/dist/components/utility/json-viewer/json-viewer.class.d.ts +3 -2
  248. package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
  249. package/dist/components/utility/known-date/known-date.class.d.ts +9 -5
  250. package/dist/components/utility/known-date/known-date.class.js +2 -2
  251. package/dist/components/utility/known-date/known-date.styles.js +1 -1
  252. package/dist/components/utility/mention-popover/mention-popover.class.d.ts +3 -1
  253. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  254. package/dist/components/utility/poll-status/poll-status.class.d.ts +3 -0
  255. package/dist/components/utility/poll-status/poll-status.styles.js +1 -1
  256. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +1 -0
  257. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
  258. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -1
  259. package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
  260. package/dist/components/viewers/document-preview/document-preview.class.d.ts +4 -2
  261. package/dist/components/viewers/document-preview/document-preview.class.js +1 -1
  262. package/dist/components/viewers/document-preview/document-preview.styles.js +1 -1
  263. package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +3 -2
  264. package/dist/components/viewers/document-viewer/document-viewer.class.js +2 -2
  265. package/dist/components/viewers/document-viewer/registry-ownership.d.ts +1 -0
  266. package/dist/components/viewers/document-viewer/registry-ownership.js +1 -0
  267. package/dist/components/viewers/document-viewer/registry.js +1 -1
  268. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +7 -1
  269. package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +1 -1
  270. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +2 -1
  271. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
  272. package/dist/components/viewers/include/include-resource.js +1 -1
  273. package/dist/components/viewers/include/include.class.d.ts +3 -1
  274. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +4 -2
  275. package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +4 -4
  276. package/dist/components/viewers/notebook-viewer/notebook-viewer.styles.js +1 -1
  277. package/dist/components/viewers/passive-markup.js +1 -1
  278. package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +2 -1
  279. package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
  280. package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +2 -1
  281. package/dist/components/viewers/xml-viewer/xml-viewer.class.js +1 -1
  282. package/dist/components/viewers/xml-viewer/xml-viewer.js +1 -1
  283. package/dist/custom-elements-jsx.d.ts +1 -1
  284. package/dist/internal/aria-reflection.js +1 -1
  285. package/dist/internal/catalog-picker.js +1 -1
  286. package/dist/internal/default-strings.generated.d.ts +1 -1
  287. package/dist/internal/default-strings.generated.js +1 -1
  288. package/dist/internal/dev-mode-attribute-warning.d.ts +3 -0
  289. package/dist/internal/dev-mode-attribute-warning.js +1 -1
  290. package/dist/internal/form-associated.js +1 -1
  291. package/dist/internal/localization-types.d.ts +1 -1
  292. package/dist/internal/localization.js +1 -1
  293. package/dist/internal/lyra-element.js +1 -1
  294. package/dist/internal/native-control-description.d.ts +7 -0
  295. package/dist/internal/native-control-description.js +1 -0
  296. package/dist/internal/option-selection.js +1 -1
  297. package/dist/internal/overlay-order.d.ts +6 -0
  298. package/dist/internal/overlay-order.js +1 -0
  299. package/dist/internal/overlay-stack.d.ts +1 -1
  300. package/dist/internal/overlay-stack.js +1 -1
  301. package/dist/internal/package-metadata.d.ts +1 -1
  302. package/dist/internal/package-metadata.js +1 -1
  303. package/dist/internal/positioner.d.ts +5 -4
  304. package/dist/internal/reactive-property-writes.d.ts +1 -0
  305. package/dist/internal/reactive-property-writes.js +1 -0
  306. package/dist/internal/svg-title.d.ts +3 -0
  307. package/dist/internal/svg-title.js +1 -0
  308. package/dist/svelte.d.ts +1 -1
  309. package/dist/translations/ar.js +1 -1
  310. package/dist/translations/de.js +1 -1
  311. package/dist/translations/es.js +1 -1
  312. package/dist/translations/fa.js +1 -1
  313. package/dist/translations/fr.js +1 -1
  314. package/dist/translations/he.js +1 -1
  315. package/dist/translations/ja.js +1 -1
  316. package/dist/translations/pt-BR.js +1 -1
  317. package/dist/translations/ru.js +1 -1
  318. package/dist/translations/zh-CN.js +1 -1
  319. package/dist/vue.d.ts +1 -1
  320. package/llms/components/lr-accordion-item.md +4 -0
  321. package/llms/components/lr-accordion.md +4 -0
  322. package/llms/components/lr-agent-trace.md +3 -0
  323. package/llms/components/lr-animation.md +4 -0
  324. package/llms/components/lr-app-rail-item.md +4 -2
  325. package/llms/components/lr-app-rail.md +4 -2
  326. package/llms/components/lr-attachment-chip.md +6 -0
  327. package/llms/components/lr-av-player.md +14 -0
  328. package/llms/components/lr-avatar.md +4 -0
  329. package/llms/components/lr-box-plot.md +6 -0
  330. package/llms/components/lr-button.md +11 -3
  331. package/llms/components/lr-calendar-viewer.md +4 -0
  332. package/llms/components/lr-calendar.md +5 -0
  333. package/llms/components/lr-carousel.md +5 -0
  334. package/llms/components/lr-chart.md +13 -4
  335. package/llms/components/lr-chat-message.md +4 -0
  336. package/llms/components/lr-checkbox.md +3 -0
  337. package/llms/components/lr-chip-group.md +3 -0
  338. package/llms/components/lr-chip.md +3 -0
  339. package/llms/components/lr-code-block-core.md +16 -4
  340. package/llms/components/lr-code-block.md +7 -0
  341. package/llms/components/lr-code-editor.md +18 -5
  342. package/llms/components/lr-color-picker.md +9 -0
  343. package/llms/components/lr-combobox.md +35 -4
  344. package/llms/components/lr-command-palette.md +4 -0
  345. package/llms/components/lr-commit-card.md +3 -0
  346. package/llms/components/lr-compare-panel.md +7 -0
  347. package/llms/components/lr-condition-builder.md +5 -0
  348. package/llms/components/lr-conversation-item.md +3 -0
  349. package/llms/components/lr-copy-button.md +6 -0
  350. package/llms/components/lr-dashboard-grid.md +5 -0
  351. package/llms/components/lr-data-grid.md +11 -1
  352. package/llms/components/lr-dataset-viewer.md +3 -2
  353. package/llms/components/lr-date-input.md +46 -6
  354. package/llms/components/lr-date-picker.md +46 -6
  355. package/llms/components/lr-details.md +4 -0
  356. package/llms/components/lr-dialog.md +4 -0
  357. package/llms/components/lr-document-library.md +4 -0
  358. package/llms/components/lr-document-preview.md +7 -1
  359. package/llms/components/lr-document-viewer.md +9 -3
  360. package/llms/components/lr-dropdown-item.md +4 -0
  361. package/llms/components/lr-dropdown.md +3 -0
  362. package/llms/components/lr-ebook-viewer.md +4 -0
  363. package/llms/components/lr-email-viewer.md +5 -0
  364. package/llms/components/lr-emoji-picker.md +17 -3
  365. package/llms/components/lr-empty.md +3 -0
  366. package/llms/components/lr-entity-card.md +3 -0
  367. package/llms/components/lr-entity-chip.md +4 -0
  368. package/llms/components/lr-file-input.md +7 -0
  369. package/llms/components/lr-file-tree.md +5 -1
  370. package/llms/components/lr-filter-bar.md +5 -0
  371. package/llms/components/lr-flow-canvas.md +8 -1
  372. package/llms/components/lr-flow-node.md +2 -1
  373. package/llms/components/lr-flow-run-status.md +1 -1
  374. package/llms/components/lr-format-number.md +4 -0
  375. package/llms/components/lr-funnel.md +4 -0
  376. package/llms/components/lr-gauge.md +4 -0
  377. package/llms/components/lr-generation-metrics.md +5 -0
  378. package/llms/components/lr-graph-query-builder.md +6 -0
  379. package/llms/components/lr-graph.md +8 -2
  380. package/llms/components/lr-heatmap.md +13 -0
  381. package/llms/components/lr-icon-button.md +7 -0
  382. package/llms/components/lr-image-viewer.md +9 -0
  383. package/llms/components/lr-include.md +5 -0
  384. package/llms/components/lr-ingestion-queue.md +4 -0
  385. package/llms/components/lr-input.md +22 -8
  386. package/llms/components/lr-json-viewer.md +4 -0
  387. package/llms/components/lr-kbd.md +3 -0
  388. package/llms/components/lr-knowledge-graph-explorer.md +7 -0
  389. package/llms/components/lr-known-date.md +7 -0
  390. package/llms/components/lr-lite-chart.md +21 -4
  391. package/llms/components/lr-live-region.md +3 -0
  392. package/llms/components/lr-locale-picker.md +6 -0
  393. package/llms/components/lr-map.md +8 -0
  394. package/llms/components/lr-markdown-core.md +4 -0
  395. package/llms/components/lr-markdown.md +8 -4
  396. package/llms/components/lr-media-card.md +5 -2
  397. package/llms/components/lr-mention-popover.md +5 -0
  398. package/llms/components/lr-menu-item.md +4 -0
  399. package/llms/components/lr-menu-label.md +4 -3
  400. package/llms/components/lr-menu.md +4 -0
  401. package/llms/components/lr-message-actions.md +3 -0
  402. package/llms/components/lr-message-feedback.md +4 -0
  403. package/llms/components/lr-message-parts.md +3 -2
  404. package/llms/components/lr-model-select.md +8 -0
  405. package/llms/components/lr-multi-split.md +15 -6
  406. package/llms/components/lr-native-time-input.md +10 -0
  407. package/llms/components/lr-node-palette.md +3 -0
  408. package/llms/components/lr-notebook-viewer.md +4 -1
  409. package/llms/components/lr-number-input.md +12 -1
  410. package/llms/components/lr-option.md +35 -4
  411. package/llms/components/lr-otp-input.md +10 -0
  412. package/llms/components/lr-pan-zoom.md +1 -2
  413. package/llms/components/lr-phone-input.md +20 -5
  414. package/llms/components/lr-poll-status.md +4 -0
  415. package/llms/components/lr-popover.md +3 -0
  416. package/llms/components/lr-popup.md +3 -2
  417. package/llms/components/lr-prompt-studio.md +7 -0
  418. package/llms/components/lr-provenance-panel.md +3 -0
  419. package/llms/components/lr-push-to-talk.md +3 -0
  420. package/llms/components/lr-radio-button.md +13 -4
  421. package/llms/components/lr-radio-group.md +5 -0
  422. package/llms/components/lr-radio.md +9 -0
  423. package/llms/components/lr-rating.md +3 -0
  424. package/llms/components/lr-reorder-item.md +6 -0
  425. package/llms/components/lr-reorder-list.md +6 -0
  426. package/llms/components/lr-result-card.md +3 -0
  427. package/llms/components/lr-result-field.md +3 -0
  428. package/llms/components/lr-rubric-form.md +12 -0
  429. package/llms/components/lr-select.md +9 -0
  430. package/llms/components/lr-sequence-playback.md +4 -0
  431. package/llms/components/lr-slider.md +16 -4
  432. package/llms/components/lr-source-picker.md +4 -0
  433. package/llms/components/lr-span-waterfall.md +3 -0
  434. package/llms/components/lr-sparkline.md +4 -0
  435. package/llms/components/lr-split-panel.md +4 -0
  436. package/llms/components/lr-stack-trace.md +3 -0
  437. package/llms/components/lr-stat.md +10 -0
  438. package/llms/components/lr-subagent-panel.md +3 -2
  439. package/llms/components/lr-svg-viewer.md +3 -0
  440. package/llms/components/lr-swatch-picker.md +4 -0
  441. package/llms/components/lr-switch.md +6 -0
  442. package/llms/components/lr-tab-group.md +4 -0
  443. package/llms/components/lr-table.md +10 -2
  444. package/llms/components/lr-terminal.md +3 -0
  445. package/llms/components/lr-textarea.md +9 -0
  446. package/llms/components/lr-thread-list.md +6 -3
  447. package/llms/components/lr-time-input.md +3 -0
  448. package/llms/components/lr-time-range.md +5 -0
  449. package/llms/components/lr-timeline-item.md +6 -0
  450. package/llms/components/lr-timeline.md +6 -0
  451. package/llms/components/lr-token-input.md +14 -0
  452. package/llms/components/lr-tool-call-chip.md +5 -3
  453. package/llms/components/lr-tool-param-form.md +4 -0
  454. package/llms/components/lr-tool-result-dialog.md +4 -0
  455. package/llms/components/lr-tool-select-dialog.md +4 -0
  456. package/llms/components/lr-tooltip.md +6 -0
  457. package/llms/components/lr-trace-tree.md +3 -0
  458. package/llms/components/lr-transcript-feed.md +3 -0
  459. package/llms/components/lr-tree-item.md +12 -5
  460. package/llms/components/lr-tree.md +12 -5
  461. package/llms/components/lr-typing-indicator.md +3 -0
  462. package/llms/components/lr-usage-badge.md +4 -0
  463. package/llms/components/lr-video.md +8 -2
  464. package/llms/components/lr-virtual-list.md +5 -3
  465. package/llms/components/lr-voice-picker.md +8 -0
  466. package/llms/components/lr-widget-renderer.md +9 -0
  467. package/llms/components/lr-widget.md +4 -2
  468. package/llms/components/lr-word-cloud.md +4 -0
  469. package/llms/components/lr-xml-viewer.md +9 -2
  470. package/llms/components/lr-zoomable-frame.md +6 -3
  471. package/llms-full.txt +4080 -2711
  472. package/package.json +2 -2
  473. package/vscode-css-data.json +1 -1
  474. package/vscode-html-data.json +1 -1
  475. package/web-types.json +1 -1
@@ -21,8 +21,37 @@ Mirrors the `<wa-date-picker>`/`<wa-date-input>` 3.11 public API under `lr-`. Bo
21
21
  components are **experimental since 3.8**. Values use ISO 8601: `YYYY-MM-DD` (single) or
22
22
  `YYYY-MM-DD/YYYY-MM-DD` (range).
23
23
 
24
- The ISO model is proleptic Gregorian in every locale, including years `0000`–`0099` (no JavaScript
25
- `Date` 1900 remap). Month/day names and visible day/week digits follow the effective locale while
24
+ For `lr-date-input`, host `aria-describedby` targets resolve in the host's root and describe the
25
+ native combobox input through element references, before its existing error and hint descriptions.
26
+ Replacement, removal, reinsertion, newly resolved IDs, reconnect, and adoption update those
27
+ relationships. Removing `label`, `hint`, or `error-text` safely omits that copy while preserving
28
+ `null` property readback; later supplied values render normally.
29
+
30
+ `lr-date-input`'s `clearLabel`, `openLabel`, and `dialogLabel` retain their initial defaults (`''`,
31
+ `''`, and `'Choose date'`). Omitted labels localize; explicitly supplied text, built-in English
32
+ labels, and empty strings win over `.strings`. Attribute removal restores localization while
33
+ preserving `null` readback. The composed calendar applies the same range endpoint and
34
+ inclusive-length admission rules as the standalone picker.
35
+
36
+ An authored host `aria-label` names an enclosing calendar group. Individual month and selection
37
+ grids retain their distinct generated period names; changing or removing the purpose label updates
38
+ the group without changing a caller-authored host role. Removing the `value` attribute renders an
39
+ empty selection safely while preserving `null` readback; a subsequent valid value works normally.
40
+
41
+ Live constraints repair roving state without moving focus from an unrelated control. If a focused
42
+ cell becomes unavailable, focus recovers onto an enabled cell. Explicit distant bounds seed the
43
+ bounded automatic search within the permitted domain; a genuinely empty domain has no enabled roving
44
+ stop. Selected day and range-endpoint buttons retain their foreground/background pairing during
45
+ hover and press; author state-token overrides remain available. Month/year/decade state buttons
46
+ retain the common typography, padding, border reset, and minimum action size.
47
+
48
+ The `calendar-core.ts` helper `formatISO()` returns an empty string for invalid dates or years
49
+ outside `0000`–`9999`, so generated ISO anchors never advertise an unsupported signed or five-digit
50
+ year.
51
+
52
+ The ISO model is proleptic Gregorian in every locale and supports years `0000`–`9999`, including
53
+ `0000`–`0099` without JavaScript's `Date` 1900 remap. Navigation anchors remain within that domain;
54
+ moving past either boundary leaves a valid roving stop and does not change the selected value. Month/day names and visible day/week digits follow the effective locale while
26
55
  formatters explicitly select the Gregorian calendar. `lr-date-input` uses locale `formatRange()`
27
56
  for range presentation and normalizes locale digits plus bidi marks before parsing, so its own
28
57
  Arabic/Persian display round-trips to the same ISO value.
@@ -50,12 +79,20 @@ Inline month-grid calendar, not form-associated (used standalone or embedded ins
50
79
  tell them apart. A reversed preset normalizes; a malformed one is ignored rather than clearing the
51
80
  current value, so a bad entry in a config-driven list never reads as "the user picked nothing".
52
81
  Non-array runtime assignments normalize to the empty collection, and null/non-object entries in
53
- an otherwise valid array are omitted from the rendered row rather than aborting the calendar.
82
+ an otherwise valid array are omitted from the rendered row rather than aborting the calendar. Empty and
83
+ whitespace-only labels are also omitted, preserving named siblings. Explicit endpoints clamp to
84
+ `min`/`max` before admission. Both endpoints must be selectable, and the inclusive length must
85
+ satisfy `minRange`/`maxRange`; invalid outcomes render disabled and do not emit value events.
86
+ Interior dates need not all be enabled. A same-day manual completion obeys those same inclusive
87
+ length limits. Long preset labels wrap in narrow allocations, including unbroken text and RTL.
54
88
  The active button carries `aria-pressed="true"` and `data-active`. Deliberately the same
55
89
  `label`/`start`/`end` shape as `<lr-time-range>`'s `TimeRangePreset`, so the library has one
56
90
  preset vocabulary rather than two — the only difference is the unit (ISO dates, not numbers)
57
91
  - `appliedPreset: LyraDateRangePreset | undefined` (read-only, new in 11.1.0) — the preset whose
58
- button produced the current `value`, or `undefined` when the range was picked by hand. Read it
92
+ button produced the current `value`, or `undefined` when the range was picked by hand, cleared, or changed externally.
93
+ `clear()` removes identity before synchronous `input`/`change` listeners run; an external value
94
+ change removes identity silently. An accepted preset retains its exact caller-owned source
95
+ identity through its own update. Read it
59
96
  inside your own `change`/`input` handler. It exists because a dashboard filter has to persist
60
97
  *which* preset is active rather than the pair it froze to: "Last 7 days" must still mean the last
61
98
  7 days after tomorrow's reload. That fact is not recoverable from `value` — re-deriving it by
@@ -91,8 +128,11 @@ Inline month-grid calendar, not form-associated (used standalone or embedded ins
91
128
  - `weekdayFormat: 'narrow'|'short'|'long' = 'short'` (attribute `weekday-format`, reflected)
92
129
  - `withOutsideDays: boolean = false` and `withWeekNumbers: boolean = false` (reflected)
93
130
 
94
- Lyra retains the additive `previousLabel`/`nextLabel` localized accessible-label overrides and
95
- the `selection` range getter.
131
+ Lyra retains the additive `previousLabel`/`nextLabel` accessible-label overrides and the `selection`
132
+ range getter. Their initial readback remains `'Previous month'` and `'Next month'`; omitted labels
133
+ localize, while explicit text, the built-in English labels, and empty strings win over locale and
134
+ `.strings` copy. Removing either label attribute restores localized omission while preserving
135
+ `null` property readback.
96
136
 
97
137
  **Methods:** `clear()`, `focus(options?)`, `goToToday()`, and
98
138
  `goToDate(date: string | Date)`. Valid navigation dates are clamped to `min`/`max`; invalid values
@@ -21,8 +21,37 @@ Mirrors the `<wa-date-picker>`/`<wa-date-input>` 3.11 public API under `lr-`. Bo
21
21
  components are **experimental since 3.8**. Values use ISO 8601: `YYYY-MM-DD` (single) or
22
22
  `YYYY-MM-DD/YYYY-MM-DD` (range).
23
23
 
24
- The ISO model is proleptic Gregorian in every locale, including years `0000`–`0099` (no JavaScript
25
- `Date` 1900 remap). Month/day names and visible day/week digits follow the effective locale while
24
+ For `lr-date-input`, host `aria-describedby` targets resolve in the host's root and describe the
25
+ native combobox input through element references, before its existing error and hint descriptions.
26
+ Replacement, removal, reinsertion, newly resolved IDs, reconnect, and adoption update those
27
+ relationships. Removing `label`, `hint`, or `error-text` safely omits that copy while preserving
28
+ `null` property readback; later supplied values render normally.
29
+
30
+ `lr-date-input`'s `clearLabel`, `openLabel`, and `dialogLabel` retain their initial defaults (`''`,
31
+ `''`, and `'Choose date'`). Omitted labels localize; explicitly supplied text, built-in English
32
+ labels, and empty strings win over `.strings`. Attribute removal restores localization while
33
+ preserving `null` readback. The composed calendar applies the same range endpoint and
34
+ inclusive-length admission rules as the standalone picker.
35
+
36
+ An authored host `aria-label` names an enclosing calendar group. Individual month and selection
37
+ grids retain their distinct generated period names; changing or removing the purpose label updates
38
+ the group without changing a caller-authored host role. Removing the `value` attribute renders an
39
+ empty selection safely while preserving `null` readback; a subsequent valid value works normally.
40
+
41
+ Live constraints repair roving state without moving focus from an unrelated control. If a focused
42
+ cell becomes unavailable, focus recovers onto an enabled cell. Explicit distant bounds seed the
43
+ bounded automatic search within the permitted domain; a genuinely empty domain has no enabled roving
44
+ stop. Selected day and range-endpoint buttons retain their foreground/background pairing during
45
+ hover and press; author state-token overrides remain available. Month/year/decade state buttons
46
+ retain the common typography, padding, border reset, and minimum action size.
47
+
48
+ The `calendar-core.ts` helper `formatISO()` returns an empty string for invalid dates or years
49
+ outside `0000`–`9999`, so generated ISO anchors never advertise an unsupported signed or five-digit
50
+ year.
51
+
52
+ The ISO model is proleptic Gregorian in every locale and supports years `0000`–`9999`, including
53
+ `0000`–`0099` without JavaScript's `Date` 1900 remap. Navigation anchors remain within that domain;
54
+ moving past either boundary leaves a valid roving stop and does not change the selected value. Month/day names and visible day/week digits follow the effective locale while
26
55
  formatters explicitly select the Gregorian calendar. `lr-date-input` uses locale `formatRange()`
27
56
  for range presentation and normalizes locale digits plus bidi marks before parsing, so its own
28
57
  Arabic/Persian display round-trips to the same ISO value.
@@ -50,12 +79,20 @@ Inline month-grid calendar, not form-associated (used standalone or embedded ins
50
79
  tell them apart. A reversed preset normalizes; a malformed one is ignored rather than clearing the
51
80
  current value, so a bad entry in a config-driven list never reads as "the user picked nothing".
52
81
  Non-array runtime assignments normalize to the empty collection, and null/non-object entries in
53
- an otherwise valid array are omitted from the rendered row rather than aborting the calendar.
82
+ an otherwise valid array are omitted from the rendered row rather than aborting the calendar. Empty and
83
+ whitespace-only labels are also omitted, preserving named siblings. Explicit endpoints clamp to
84
+ `min`/`max` before admission. Both endpoints must be selectable, and the inclusive length must
85
+ satisfy `minRange`/`maxRange`; invalid outcomes render disabled and do not emit value events.
86
+ Interior dates need not all be enabled. A same-day manual completion obeys those same inclusive
87
+ length limits. Long preset labels wrap in narrow allocations, including unbroken text and RTL.
54
88
  The active button carries `aria-pressed="true"` and `data-active`. Deliberately the same
55
89
  `label`/`start`/`end` shape as `<lr-time-range>`'s `TimeRangePreset`, so the library has one
56
90
  preset vocabulary rather than two — the only difference is the unit (ISO dates, not numbers)
57
91
  - `appliedPreset: LyraDateRangePreset | undefined` (read-only, new in 11.1.0) — the preset whose
58
- button produced the current `value`, or `undefined` when the range was picked by hand. Read it
92
+ button produced the current `value`, or `undefined` when the range was picked by hand, cleared, or changed externally.
93
+ `clear()` removes identity before synchronous `input`/`change` listeners run; an external value
94
+ change removes identity silently. An accepted preset retains its exact caller-owned source
95
+ identity through its own update. Read it
59
96
  inside your own `change`/`input` handler. It exists because a dashboard filter has to persist
60
97
  *which* preset is active rather than the pair it froze to: "Last 7 days" must still mean the last
61
98
  7 days after tomorrow's reload. That fact is not recoverable from `value` — re-deriving it by
@@ -91,8 +128,11 @@ Inline month-grid calendar, not form-associated (used standalone or embedded ins
91
128
  - `weekdayFormat: 'narrow'|'short'|'long' = 'short'` (attribute `weekday-format`, reflected)
92
129
  - `withOutsideDays: boolean = false` and `withWeekNumbers: boolean = false` (reflected)
93
130
 
94
- Lyra retains the additive `previousLabel`/`nextLabel` localized accessible-label overrides and
95
- the `selection` range getter.
131
+ Lyra retains the additive `previousLabel`/`nextLabel` accessible-label overrides and the `selection`
132
+ range getter. Their initial readback remains `'Previous month'` and `'Next month'`; omitted labels
133
+ localize, while explicit text, the built-in English labels, and empty strings win over locale and
134
+ `.strings` copy. Removing either label attribute restores localized omission while preserving
135
+ `null` property readback.
96
136
 
97
137
  **Methods:** `clear()`, `focus(options?)`, `goToToday()`, and
98
138
  `goToDate(date: string | Date)`. Valid navigation dates are clamped to `min`/`max`; invalid values
@@ -24,6 +24,10 @@ and animated panel. The two components intentionally keep distinct vocabularies:
24
24
  use `expanded`, `label`, and `expand()`/`collapse()`/`toggle()`, while `open`, `summary`, and
25
25
  `show()`/`hide()` belong only to Details.
26
26
 
27
+ `lr-toggle` reports the direction and source of an accepted Details transition. Accordion
28
+ coordinates only its direct `lr-accordion-item` children; Details retains independent state and
29
+ optional grouping through a shared non-empty `name`.
30
+
27
31
  **Breaking in 9.0.0:** an accordion coordinates direct `lr-accordion-item` children only. Direct
28
32
  `lr-details` panels used to be accepted as well; they are not any more. A `lr-details` slotted into
29
33
  an accordion today is ordinary content owning its own disclosure lifecycle — the group applies
@@ -18,6 +18,10 @@
18
18
 
19
19
  General-purpose modal/overlay plus a promise-based confirmation helper built on top of it.
20
20
 
21
+ Removing `label` safely omits its fallback title. Open dialog and drawer names follow supported name
22
+ and exclusion attribute changes on direct unslotted headings, while host naming retains precedence;
23
+ nested and `slot=""` headings remain outside automatic discovery.
24
+
21
25
  ### `lr-dialog`
22
26
 
23
27
  A modal/overlay: `role="dialog"`, focus-trapped while open, dismissible via Escape or (opt-in) a
@@ -20,6 +20,10 @@ Controlled searchable and filterable document inventory with versions, tags, own
20
20
  sorting, and bulk selection. It composes the table's bounded 100-row default, so a large document
21
21
  collection stays reachable through pagination without mounting an unbounded grid.
22
22
 
23
+ Own `tags: undefined` is treated like omitted tags; malformed tag arrays and entries remain invalid.
24
+ Removing `search-term` clears search filtering without rewriting its `null` property readback; an
25
+ explicitly empty query also clears filtering and a later query applies normally.
26
+
23
27
  **9.0 migration:** `lr-filter-change.detail.text` is now `searchTerm`, backed by the public
24
28
  `searchTerm`/`search-term` axis. Replace `sortDirection: 'ascending'|'descending'` with
25
29
  `sortDir: 'asc'|'desc'`; document sorting now uses the same cancelable `lr-sort-request` followed
@@ -20,6 +20,9 @@ A format-dispatching viewer for one document/attachment, plus the visual state m
20
20
  server-side conversion a host app runs in front of it. First-party invention (no Web Awesome
21
21
  equivalent).
22
22
 
23
+ Fitting images remain centered; overflowing nonzoomable images begin inside the reachable body
24
+ scroll range, so their top and bottom are available.
25
+
23
26
  Format dispatch is intentionally minimal: only `text/*`/`application/json` (a plain, scrollable
24
27
  `<pre>` — no syntax highlighting; compose `<lr-code-block>` yourself via the `unsupported` slot for
25
28
  that) and `image/*` (a contained `<img>`) render inline. Everything else — PDF, office documents,
@@ -55,7 +58,10 @@ image path — and the generic fallback simply omits `[part="download-link"]` en
55
58
  still in progress. Validated per-sink before use — see the URL-safety note above; an unsafe/
56
59
  malformed value is treated as if `src` were unusable for that sink, never passed to `fetch()`/
57
60
  `<img>`/the anchor.
58
- - `mimeType: string = ''` (attribute `mime-type`) — drives format dispatch (see above).
61
+ - `mimeType: string = ''` (attribute `mime-type`) — drives format dispatch using the case-insensitive
62
+ MIME essence before parameters. For example, `application/json; charset=utf-8` renders as text.
63
+ Attribute removal retains `null` readback and is interpreted as an absent format by the renderer;
64
+ an explicitly empty attribute remains empty, and later valid values restore dispatch.
59
65
  - `filename: string = ''` — shown in the header and used as the download link's suggested filename.
60
66
  - `alt?: string` — image description. When omitted, the filename/localized image-preview fallback
61
67
  is used; an explicit empty string keeps a decorative preview's `alt=""` intact.
@@ -20,6 +20,11 @@ A dialog-hosted, format-dispatching full viewer for one document or attachment.
20
20
  renderer registry and falls back to `<lr-document-preview>` when no renderer matches the file's MIME
21
21
  type. First-party invention.
22
22
 
23
+ MIME matching uses the case-insensitive essence before parameters and ignores outer whitespace. An
24
+ extensionless `application/*+xml` file selects the XML renderer when it is registered, including a
25
+ value such as ` APPLICATION/ATOM+XML ; charset=utf-8 `. Exact registry keys retain precedence,
26
+ filename extensions remain a fallback, and the renderer receives the original MIME value.
27
+
23
28
  A host `aria-label` names the nested dialog by attribute presence, including an explicitly empty
24
29
  value, without suppressing the visible `name` heading.
25
30
 
@@ -35,9 +40,10 @@ value, without suppressing the visible `name` heading.
35
40
  anchors/highlights, and download; the scalar `name`, `mimeType`, `src`, `anchor`, `highlights`,
36
41
  and `alt` properties resume their legacy behavior when `payload` is reset to `undefined`.
37
42
  - `registry?: DocumentRendererRegistry` (attribute: false) — optional per-instance registry
38
- override. A native map assignment is copied behind a frozen readonly facade; definition records
39
- are cloned and frozen while callback identities are retained. Later source-map or definition
40
- mutation is not observed. When unset, the
43
+ override. Assign either a native map or the result of `createDocumentRendererRegistry()`; both
44
+ use the same bounded snapshot behind a frozen readonly facade. Definition records are cloned and
45
+ frozen while callback identities are retained. Later source-map or definition mutation is not
46
+ observed. Reassigning the same source or retained snapshot leaves the snapshot unchanged. When unset, the
41
47
  instance owns an immutable snapshot of the built-ins registered when it was constructed. A later
42
48
  module import/registration cannot mutate an existing viewer. A throwing consumer matcher or
43
49
  renderer is contained as the localized error state rather than escaping the update.
@@ -22,6 +22,10 @@ The inline semantic menu mapped from Shoelace's `sl-menu`, plus its action-row e
22
22
  wrapping keyboard navigation, type-ahead, and one canonical selection event. It deliberately has no
23
23
  trigger, positioned popup, root open state, placement API, or overlay lifecycle.
24
24
 
25
+ Removing or disabling the remembered active item repairs the roving stop without taking focus from
26
+ outside controls or the menu's header/footer. If the changed item held actual focus, focus moves to
27
+ a valid survivor or through the existing owner dismissal path when none remain.
28
+
25
29
  For a menu button or other anchored overlay, compose the semantic controller inside
26
30
  `<lr-dropdown>`:
27
31
 
@@ -25,6 +25,9 @@ consumer-supplied `lr-menu` in the default slot becomes that contained engine in
25
25
  wrapped in another menu. This supports both Web Awesome's direct-item shape and Shoelace's
26
26
  consumer-menu shape.
27
27
 
28
+ An open lr-dropdown repositions when its effective host or inherited text direction changes,
29
+ preserving open state without emitting lifecycle events.
30
+
28
31
  **Direct mapped items.** `<lr-dropdown-item>` is the Web Awesome-compatible name for the same row
29
32
  implementation as `<lr-menu-item>`. Direct mapped items receive this dropdown's `size` and use its
30
33
  contained roving-focus, type-ahead, disabled-skipping, selection, and submenu controller; a
@@ -22,6 +22,10 @@ chapter content. A usable book exposes `ready`, `renderTo()`, and `destroy()`, a
22
22
  exposes `display()`, `prev()`, `next()`, `on()`, and `annotations.highlight()`/`remove()`; an absent
23
23
  required capability is terminal. Navigation and spine data are optional.
24
24
 
25
+ Genuine native `Selection`/`Range` objects from the current chapter iframe are accepted through
26
+ platform accessors, including across document realms. Arbitrary peer-owned accessors remain
27
+ uninvoked, and callbacks from replaced or disconnected books cannot emit stale selections.
28
+
25
29
  **Properties:** `src: string = ''` and `name: string = ''`. A plain `aria-label` attribute on the
26
30
  host overrides the reading region's accessible name — by attribute presence, so an explicitly empty
27
31
  `aria-label=""` still wins over `name`. (There is no matching JS property: the `accessibleLabel`
@@ -29,6 +29,11 @@ An attachment with no filename uses the localized `emailViewerUnnamedAttachment`
29
29
  `lr-attachment-open` detail. The fallback resolves while rendering, so changing the locale or
30
30
  per-instance `strings` after the message loads updates it without reparsing the message.
31
31
 
32
+ When `foldQuotes` is enabled, `search(query)` reveals matching supported plain-text and HTML quoted
33
+ replies before navigating. Reveal uses the shared text index's Unicode normalization, whitespace
34
+ collapse, soft-hyphen removal, locale matching, and query/work bounds, so padded or normalized
35
+ queries reveal the same quote as ordinary matching text. Folding remains opt-in.
36
+
32
37
  Parser output is admitted through a bounded direct-data projection: malformed optional fields,
33
38
  recipients, and attachment entries are omitted without discarding later valid siblings. Accepted
34
39
  string, `Uint8Array`, and `ArrayBuffer` attachment bytes are copied before use, and every
@@ -24,6 +24,17 @@ supplied (an explicit empty array still counts as supplied and skips the auto-lo
24
24
  When the filtered set reaches 200 items, the grid automatically windows its visible rows while
25
25
  preserving the full option count through `aria-setsize`/`aria-posinset`.
26
26
 
27
+ Removing `label`, `hint`, or `error-text` treats the removed value as absent for rendering while
28
+ preserving native attribute-removal property readback. Host `aria-describedby` references resolve in
29
+ the host root onto the value-owning listbox before its local error/hint guidance. Target
30
+ replacement, removal, reinsertion, reconnect, and adoption keep that relationship current. The
31
+ search input keeps its separate description ownership.
32
+
33
+ `form.reset()` restores the default value and pristine interaction feedback. Required constraints
34
+ and persistent custom validity remain in force; a required-empty value remains invalid. Composing
35
+ key events (`isComposing` or legacy key code 229) remain with text editing and do not navigate or
36
+ pick an emoji.
37
+
27
38
  Ships the same opt-in `label`/`hint`/`errorText` form-control chrome as `lr-select`/
28
39
  `lr-color-picker` (props + matching named slots + `form-control`/`form-control-label`/`hint`/
29
40
  `error` CSS parts) — left unset, none of that chrome renders.
@@ -35,11 +46,14 @@ can override size-tier fallbacks; a value set directly on the element still wins
35
46
  (`custom-error`), `disabled`, and `required`, plus
36
47
  `groups: readonly EmojiPickerGroup[] = []` (attribute: false) — readonly `EmojiPickerGroup { key,
37
48
  label, emojis: readonly EmojiPickerItem[] }`, readonly `EmojiPickerItem { emoji, name,
38
- shortcodes? }`; assignment captures a bounded frozen owned snapshot. The search field matches
49
+ shortcodes? }`; assignment captures a bounded frozen owned snapshot, including the current contents
50
+ of reused source item objects. Earlier snapshots remain frozen and unchanged; in-place source edits
51
+ become visible only after an explicit `groups` assignment. The search field matches
39
52
  `name` and every `shortcodes` entry, case-insensitively. Consumer group labels render verbatim.
40
53
  Groups returned by the built-in loader carry private provenance, letting their fixed emojibase
41
- headings follow `registerLyraLocale()`/`.strings` without exposing localization keys as consumer
42
- data. Empty (the default, before the auto-loader
54
+ headings follow `registerLyraLocale()`/`.strings` through filtering and windowed rendering, including
55
+ same-locale `.strings` changes, without exposing localization keys as consumer data. Caller-authored
56
+ headings remain literal even when their keys match built-in groups. Empty (the default, before the auto-loader
43
57
  resolves) renders just the search input and the empty state. `accessibleLabel` (`aria-label`)
44
58
  forwards a host-supplied accessible name to the internal `role="listbox"` grid. Only omission falls
45
59
  back to the visible label or localized default; an explicit `aria-label=""` remains empty.
@@ -18,6 +18,9 @@
18
18
 
19
19
  First-party "no data" state (no Web Awesome equivalent).
20
20
 
21
+ Removing `heading` or `description` safely omits that text; explicit empty values remain empty and
22
+ later values restore the corresponding content.
23
+
21
24
  **Properties:**
22
25
 
23
26
  - `heading: string = ''`
@@ -21,6 +21,9 @@ degree, community chip, plus a built-in "focus in graph" action. Never fetches o
21
21
  itself — `lr-entity-select` is a request a host routes into `lr-graph`'s own
22
22
  `focusNode(id, options?)`.
23
23
 
24
+ The host `aria-level` attribute overrides the internal title heading live. Changing or removing it
25
+ updates that heading without another property change; omission or an empty override uses level 3.
26
+
24
27
  **Properties:**
25
28
 
26
29
  - `entity: LyraEntity | null = null` (attribute: false) — `LyraEntity { id: string; label: string;
@@ -20,6 +20,10 @@ An inline `@entity` mention for agent prose: flow content, keyboard-focusable, w
20
20
  preview popover. The knowledge-graph sibling of `lr-citation-badge`, reusing its interaction
21
21
  contract wholesale. Carries ids through events only — no entity data resolution, no navigation.
22
22
 
23
+ Removing `text` or `type` leaves the property readback as `null` and treats it as absent when
24
+ deriving the button name. Explicit empty strings stay empty, and later valid values restore the
25
+ corresponding label/type text.
26
+
23
27
  **Properties:**
24
28
 
25
29
  - `entityId: string = ''` (attribute `entity-id`)
@@ -20,6 +20,13 @@
20
20
  A form-associated drag-drop + click-to-browse file dropzone. It stores and renders raw `File[]`;
21
21
  no client-side CSV/XLSX/etc. parsing is performed (that's left entirely to the host).
22
22
 
23
+ Removing `label` or `hint` consumes it as absent without changing the property's `null` readback. An
24
+ explicit empty string remains empty. Text chrome and label/description associations disappear when
25
+ no corresponding slot or explicit presence hint remains, and a later value restores them. Removing
26
+ the label leaves the localized dropzone instruction available. Disabled file removal buttons,
27
+ including fieldset disablement, retain resting foreground and background under hover and press;
28
+ enabled buttons retain pointer feedback.
29
+
23
30
  **Properties:**
24
31
 
25
32
  - `multiple: boolean = false` (reflected)
@@ -19,8 +19,12 @@
19
19
  A file-explorer preset over `<lr-tree>` + `<lr-file-icon>`: path-keyed nodes with
20
20
  git-status/diff-count badges, lazy directory loading, and select/open events.
21
21
 
22
+ An unreadable optional field rejects only that file record; it cannot reserve the path against a
23
+ later valid occurrence. Valid siblings retain their source order within the existing depth and
24
+ inspected-position budgets.
25
+
22
26
  **Properties:** `nodes: readonly FileTreeNode[] = []` (attribute: false; clone-owned/frozen,
23
- cycle-safe snapshot omitting empty/blank paths and retaining the first duplicate path, bounded to
27
+ cycle-safe snapshot omitting empty/blank paths and retaining the first successfully admitted occurrence of each path, bounded to
24
28
  the first 10,000 inspected source positions across 64 descendant levels; reassign after changes),
25
29
  `selectedPath: string | null = null` (attribute `selected-path`), and `label?: string` — an
26
30
  accessible-name override for the internal `<lr-tree>`, where omission reads back `undefined` and falls
@@ -18,6 +18,11 @@
18
18
 
19
19
  Dashboard filter row that composes Lyra inputs and removable chips, with reset and loading states.
20
20
 
21
+ Choice option entries must expose string `value` and `label` data fields; malformed entries are
22
+ omitted independently, while supplied empty strings remain valid. A custom definition requires its
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.
25
+
21
26
  **Properties:**
22
27
 
23
28
  - `filters: readonly LyraFilterBarFilterDefinition[] = []` (attribute: false) — filter schema in
@@ -22,6 +22,13 @@ connect interaction. It is readonly by default; opt into editor gestures with `n
22
22
  `connectable`, and `droppable`. The component snapshots model inputs instead of retaining mutable
23
23
  caller aliases, and reports edit intent for the host to apply.
24
24
 
25
+ Input/output handle IDs are reserved only after their complete handle record is admitted; unreadable
26
+ optional labels cannot suppress a later valid handle with the same ID.
27
+
28
+ Horizontal RTL reflects the coordinate plane while authored cards, generated `lr-flow-node` cards,
29
+ native portable fallback cards and SVG edge labels retain readable content. Explicit physical model
30
+ coordinates remain unchanged.
31
+
25
32
  Flow records and companion payloads are readonly public contracts. Consumers that need the types
26
33
  without registering a component can import them from the side-effect-free module:
27
34
 
@@ -80,7 +87,7 @@ import type {
80
87
  - `decorations: FlowRunDecorations | null = null` (attribute: false) —
81
88
  `Record<nodeOrEdgeId, FlowRunDecoration>`, where `FlowRunDecoration` has `status` plus optional
82
89
  `progress`, `durationMs`, and `detail`; assignment is detached, deeply frozen, bounded to 10,000
83
- keys plus finite nested depth/entry budgets, and invalid status entries are omitted. Reassign the
90
+ keys plus finite nested depth/entry budgets, and invalid statuses and records with unreadable `status`, `progress`, `durationMs` or `detail` fields are omitted independently, retaining valid neighbors. Reassign the
84
91
  record after changes. Usually supplied by `lr-flow-run-status`.
85
92
  - `accessibleLabel: string | null = null` (attribute `aria-label`)
86
93
  - `viewport` (readonly getter) — a frozen `{ x, y, zoom }` snapshot
@@ -39,7 +39,8 @@ owns none of that.
39
39
  previews; the border, background, shadow and the `selected`/`status="running"` treatments all stay
40
40
  - `inputs: readonly FlowHandle[] = [{ id: 'in' }]`, `outputs: readonly FlowHandle[] = [{ id: 'out'
41
41
  }]` (attribute: false) — detached, frozen snapshots of at most the first 10,000 readonly
42
- `{ id, label? }` handles; blank ids and later duplicates are omitted first-valid/first-wins;
42
+ `{ id, label? }` handles; blank ids and later duplicates are omitted first-valid/first-wins
43
+ (a record rejected for an unreadable optional label does not reserve its ID);
43
44
  reassign a collection after changes
44
45
  - `orientation: 'horizontal' | 'vertical' = 'horizontal'` (reflected) — which physical edge handles
45
46
  render on; mirrors the adopting canvas's own `orientation`
@@ -26,7 +26,7 @@ poll, or time anything — pure pushed state; `durationMs` is host-computed.
26
26
  - `for: string = ''` — id of the target `lr-flow-canvas`; empty resolves to the nearest ancestor
27
27
  - `decorations: FlowRunDecorations = {}` (attribute: false) — a detached, deeply frozen readonly
28
28
  record bounded to 10,000 keys plus finite nested depth/entry budgets and pushed onto the resolved
29
- canvas; invalid status entries are omitted, and consumers reassign the record after changes
29
+ canvas; invalid statuses and records with unreadable `status`, `progress`, `durationMs` or `detail` fields are omitted independently, retaining valid neighbors, and consumers reassign the record after changes
30
30
  - `hideSummary: boolean = false` (attribute `hide-summary`) — omits the "{done} of {total} steps
31
31
  complete" strip, keeping only the decoration push
32
32
  - `label: string = ''` — accessible name for the summary strip
@@ -18,6 +18,10 @@
18
18
 
19
19
  `Intl.NumberFormat` output.
20
20
 
21
+ Removing `currency` preserves the removal readback while formatting with the declared USD fallback.
22
+ An explicitly blank currency also keeps its existing USD formatting fallback, and a later valid
23
+ currency takes effect normally.
24
+
21
25
  Shared by all four formatters (`lr-format-number`, `lr-format-date`, `lr-format-bytes`,
22
26
  `lr-relative-time`): each is text-only — a `display: inline` host with **no CSS parts, no events, and
23
27
  no themeable custom properties of its own** — rendering one formatted string into its shadow root.
@@ -21,6 +21,10 @@ bar whose length is that stage's share of the **first** stage, read top-to-botto
21
21
  drop-off. It sits beside `lr-gauge` and `lr-heatmap` as an analytics primitive rather than a general
22
22
  chart type.
23
23
 
24
+ When a positive finite stage value divided by a positive finite baseline overflows to `Infinity`,
25
+ the main or comparison data fill clamps to 100%. Nonfinite input normalization, nonpositive-baseline
26
+ behavior, percentage and drop-off text, and overflow border styling keep their existing rules.
27
+
24
28
  It is deliberately not a sorted bar chart: it normalizes to the first stage rather than to the data
25
29
  maximum, draws no value axis, and reads as stage-to-stage retention rather than category comparison.
26
30
  Reach for `lr-bar-chart`/`lr-lite-chart` when you actually want a value axis and category comparison.
@@ -18,6 +18,10 @@
18
18
 
19
19
  Dependency-free SVG radial, full-circle ring, or linear meter (no charting library).
20
20
 
21
+ Removing `label` omits the visible SVG label in radial, linear, and ring shapes and restores the
22
+ localized gauge name unless `aria-label` is authored. The property retains removal `null`;
23
+ explicitly empty labels remain empty and later labels render normally.
24
+
21
25
  **Properties:**
22
26
 
23
27
  - `value: number = 0`
@@ -20,6 +20,11 @@ A compact, ticking status readout shown alongside an in-progress AI response: el
20
20
  count, and token-throughput, plus a built-in Stop button. First-party invention (no Web Awesome
21
21
  equivalent). Renders as e.g. `12.3s · 340 tokens · 27 tok/s [Stop]`.
22
22
 
23
+ The host handles `lr-stop` by stopping its own producer and setting `status` to `complete`. A
24
+ restart supplies a fresh `startedAt`, resets its token count, and retires the previous producer
25
+ timer. The live example wires this lifecycle on mount, so its first Stop and every Restart take
26
+ effect immediately.
27
+
23
28
  **9.0 identity migration:** `lr-generation-status` → `lr-generation-metrics`,
24
29
  `LyraGenerationStatus` → `LyraGenerationMetrics`, and `LyraGenerationStatusEventMap` →
25
30
  `LyraGenerationMetricsEventMap`. The old tag, class, event-map name, registration route, and
@@ -19,6 +19,12 @@
19
19
  Form-associated editor for a typed graph relationship/path query, including entity anchors,
20
20
  relationship and node-type filters, hop limits, validation, and saved queries.
21
21
 
22
+ When the DOM cannot provide `activeElement`, the builder skips focus restoration while chip removal
23
+ and saved-query updates continue normally. Each minimum/maximum-hop select choice updates the query
24
+ once and emits one `lr-input` with the complete `{ value: GraphQuery }` snapshot. Native value
25
+ events, prefixed value aliases and listbox show/hide lifecycle events from those child selects are
26
+ contained. Programmatic query assignments remain silent.
27
+
22
28
  The normalized `value` present at the first update is the form reset default. Later property writes
23
29
  and user edits change only the live query; `form.reset()` restores that initial model, clears
24
30
  interaction/touched state and the save-name draft, and retains a caller-set custom validity message
@@ -18,6 +18,12 @@
18
18
 
19
19
  A force-directed node-link diagram with pan/zoom/drag, built on `d3-force`.
20
20
 
21
+ A zero-width canvas link paints neither a stroke nor an arrowhead; its relationship remains in the
22
+ nonvisual topology summary.
23
+
24
+ In both renderers, roving navigation transfers real focus through nodes, operable links, then
25
+ community hulls; zero-width, fully transparent, and dangling links remain outside that focus order.
26
+
21
27
  **Properties:**
22
28
 
23
29
  - `nodes: LyraGraphNode[] = []` (attribute: false) — readonly `LyraGraphNode { id: string; label?: string;
@@ -111,7 +117,7 @@ camera; `getNodePosition(id)` returns the current `{ x, y }` in graph-local draw
111
117
  **Events:** `lr-node-click` (`detail: { nodeId, x, y }`, where `x` and `y` are the clicked node's current
112
118
  local drawing coordinates), `lr-link-click` (`detail: { sourceNodeId, targetNodeId,
113
119
  linkId? }`; the optional `linkId` is the stable `LyraGraphLink.id` supplied by the caller), `lr-node-enter`/
114
- `lr-node-leave` (`detail: { nodeId }`, hover start/end, suppressed while dragging/panning),
120
+ `lr-node-leave` (`detail: { nodeId }`, hover start/end, suppressed while dragging/panning; canvas emits once per hit-identity transition or exit),
115
121
  `lr-link-enter`/`lr-link-leave` (`detail: { sourceNodeId, targetNodeId, linkId? }`, same hover contract),
116
122
  `lr-node-expand` (`detail: { nodeId }`, a node was double-activated — native `dblclick`, or two
117
123
  Enter/Space activations within 500ms — regardless of `LyraGraphNode.expandable`), `lr-community-click`
@@ -222,7 +228,7 @@ localized `part="error"` alert. Install with
222
228
  force on the new midpoint and nudges the simulation via `alpha(0.1).restart()`, in addition to
223
229
  resizing the rendered `viewBox` — both branches apply independently, so setting `width` and
224
230
  `chargeStrength` in the same synchronous batch retunes both, not just one.
225
- - zoom is bounded via `minZoom`/`maxZoom` (`d3-zoom`'s `.scaleExtent(...)`, live-reactive); pan/
231
+ - zoom is bounded via `minZoom`/`maxZoom` (`d3-zoom`'s `.scaleExtent(...)`, live-reactive in both SVG and canvas); pan/
226
232
  zoom/drag are still pointer-only with no keyboard equivalent. Links (`<line part="link">`) are now
227
233
  keyboard-operable too (`tabindex="0"`, `role="button"`, `aria-label`, Enter/Space), matching nodes.
228
234
  - while the `d3-force`/`d3-drag`/`d3-zoom`/`d3-selection` peers are resolving, the host shows an
@@ -33,6 +33,19 @@ Full canvas redraws pause while the host is outside the viewport. Data, locale,
33
33
  DPR invalidations remain pending and coalesce into one redraw when the heatmap intersects again;
34
34
  environments without `IntersectionObserver` retain eager drawing.
35
35
 
36
+ Focus-only updates repaint a bounded neighborhood around the old and new cells, restoring all
37
+ intersected neighboring fills and overlays while preserving the focus-ring geometry. Calendar axis
38
+ pixels intersected by the repaint are restored too.
39
+
40
+ Changing `domain` or `midpoint` without replacing matrix data preserves absent and nullish cells as
41
+ no data in paint, accessible text, callbacks, and cell events. Missing values still use `-1` in
42
+ default unsigned mode and `NaN` in signed mode; supplied negative signed values remain data.
43
+
44
+ Invalid authored ramp colors retain the default endpoint fallback. The public `resolveRgb()` helper
45
+ likewise preserves its supplied fallback bytes. These authoring diagnostics are once-per-color
46
+ development warnings and remain silent in production; the separate missing-canvas runtime warning is
47
+ unchanged.
48
+
36
49
  Set `accessibleCells: true` (`accessible-cells`) to opt into a semantic grid backed by a bounded
37
50
  window of native buttons. It retains the complete `aria-rowcount`/`aria-colcount` and arrow-key
38
51
  navigation model without mounting one node per cell. Buttons use localized `aria-label`s, explicit
@@ -22,6 +22,13 @@ slot when a form action is required. Because it is not form-associated, an ances
22
22
  `<fieldset disabled>` does not disable it and it is absent from `form.elements`; set `disabled`
23
23
  directly on each icon button.
24
24
 
25
+ External descriptions follow the current source element identity when an element with the same ID
26
+ replaces it, when a source is removed or reinserted, and when the control reconnects or moves to
27
+ another document. Host-root lookup and ordering follow the current `aria-describedby` list,
28
+ including unresolved IDs and duplicates. Switching between native button and anchor modes keeps the
29
+ relationship on the current action. Existing accessible names and `aria-controls` relationships
30
+ retain their separate contracts.
31
+
25
32
  Its public `--lr-icon-button-*` theme inputs stay undeclared on the host, so an ancestor theme
26
33
  wrapper can override the built-in fallbacks; a value set directly on the element still wins.
27
34
 
@@ -21,6 +21,15 @@ landing surface for `region`-anchored citations. Distinct from `<lr-svg-viewer>`
21
21
  documents) and `<lr-image-comparer>` (before/after slotted surfaces). Adopts `DocumentAnchorTarget`
22
22
  with `anchorKinds: ['region']` only — no text selection is bound.
23
23
 
24
+ Disabled fit, rotate and annotate controls retain their resting paint on hover and press. Enabled
25
+ controls keep their token-driven feedback.
26
+
27
+ The annotation wrapper displays the shared token-driven focus ring in keyboard modality. The ring
28
+ sits inside the wrapper so an image filling the scroll viewport cannot clip it. Annotation commands
29
+ apply when that wrapper itself owns keyboard input. Enter on a highlight button activates that
30
+ highlight without starting or committing an annotation, whether or not a draft exists; wrapper arrow
31
+ commands retain physical image-coordinate semantics in both directions.
32
+
24
33
  **Properties:** `src: string = ''`, `name: string = ''`, `alt?: string`,
25
34
  `fit: LyraImageFit = 'contain' | 'width' | 'actual'` (reflected; invalid writes normalize to
26
35
  `contain`), `zoom: number = 1` (reflected), `minZoom: number = 0.5` (attribute