@aceshooting/lyra-ui 21.0.0 → 21.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 (272) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +6 -3
  3. package/custom-elements.json +1 -1
  4. package/dist/ai/runtime.js +1 -1
  5. package/dist/ai/types.d.ts +13 -5
  6. package/dist/cli/lyra-rename-ledger.mjs +1 -0
  7. package/dist/cli/migrate-wa.mjs +33 -13
  8. package/dist/cli/migration-contract.json +1 -1
  9. package/dist/components/agent-tools/agent-trace/agent-trace.class.d.ts +5 -3
  10. package/dist/components/agent-tools/agent-trace/agent-trace.class.js +3 -2
  11. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +15 -3
  12. package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +3 -3
  13. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +24 -8
  14. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +3 -3
  15. package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +4 -0
  16. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +9 -5
  17. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +2 -2
  18. package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  19. package/dist/components/agent-tools/tool-status.js +2 -2
  20. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +8 -0
  21. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +3 -2
  22. package/dist/components/agent-tools/tool-timeline/tool-timeline.styles.js +1 -1
  23. package/dist/components/agent-tools/trace-tree/span.d.ts +2 -2
  24. package/dist/components/charts/chart/box-plot.class.d.ts +3 -1
  25. package/dist/components/charts/chart/box-plot.class.js +9 -9
  26. package/dist/components/charts/chart/chart-bidi.d.ts +109 -0
  27. package/dist/components/charts/chart/chart-bidi.js +1 -0
  28. package/dist/components/charts/chart/chart.class.d.ts +17 -2
  29. package/dist/components/charts/chart/chart.class.js +10 -8
  30. package/dist/components/charts/chart/histogram.class.js +1 -1
  31. package/dist/components/charts/chart/lite-chart.class.d.ts +24 -5
  32. package/dist/components/charts/chart/lite-chart.class.js +9 -9
  33. package/dist/components/charts/chart/lite-chart.styles.js +1 -1
  34. package/dist/components/conversation/code-block/shiki-dark-theme.d.ts +2 -2
  35. package/dist/components/conversation/code-block/shiki-dark-theme.js +1 -1
  36. package/dist/components/conversation/conversation-item/conversation-item.class.d.ts +18 -2
  37. package/dist/components/conversation/conversation-item/conversation-item.class.js +3 -3
  38. package/dist/components/conversation/conversation-item/conversation-item.styles.js +1 -1
  39. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  40. package/dist/components/conversation/markdown/markdown-core.class.d.ts +3 -1
  41. package/dist/components/conversation/markdown/markdown.class.d.ts +3 -1
  42. package/dist/components/conversation/message-actions/message-actions.class.d.ts +7 -2
  43. package/dist/components/conversation/message-actions/message-actions.class.js +2 -2
  44. package/dist/components/conversation/message-parts/message-parts.class.d.ts +6 -2
  45. package/dist/components/conversation/message-parts/message-parts.class.js +5 -3
  46. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts +3 -2
  47. package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
  48. package/dist/components/conversation/streaming-text/streaming-text-base.class.d.ts +1 -5
  49. package/dist/components/conversation/streaming-text/streaming-text-base.class.js +2 -2
  50. package/dist/components/conversation/streaming-text/streaming-text-core.class.d.ts +7 -1
  51. package/dist/components/conversation/streaming-text/streaming-text-core.class.js +3 -4
  52. package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +7 -1
  53. package/dist/components/conversation/streaming-text/streaming-text.class.js +3 -4
  54. package/dist/components/conversation/thread-list/thread-list.class.d.ts +13 -2
  55. package/dist/components/conversation/thread-list/thread-list.class.js +3 -3
  56. package/dist/components/data/data-grid/data-grid.class.js +1 -1
  57. package/dist/components/data/document-library/document-library.class.js +2 -0
  58. package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -1
  59. package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
  60. package/dist/components/data/flow-node/flow-node.class.d.ts +6 -2
  61. package/dist/components/data/flow-node/flow-node.class.js +6 -2
  62. package/dist/components/data/flow-node/flow-node.styles.js +1 -1
  63. package/dist/components/data/gauge/gauge.styles.js +1 -1
  64. package/dist/components/data/heatmap/heatmap.class.d.ts +3 -0
  65. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  66. package/dist/components/data/heatmap/heatmap.styles.js +1 -1
  67. package/dist/components/data/sparkline/sparkline.class.d.ts +5 -3
  68. package/dist/components/data/stat/stat.class.d.ts +4 -3
  69. package/dist/components/data/table/table.class.d.ts +32 -5
  70. package/dist/components/data/table/table.class.js +3 -2
  71. package/dist/components/forms/button/button.class.d.ts +7 -1
  72. package/dist/components/forms/button/button.styles.js +1 -1
  73. package/dist/components/forms/date-picker/date-input.styles.js +1 -1
  74. package/dist/components/forms/input/input.styles.js +1 -1
  75. package/dist/components/forms/rubric-form/rubric-form.class.js +1 -0
  76. package/dist/components/layout/app-rail/app-rail.class.d.ts +50 -11
  77. package/dist/components/layout/app-rail/app-rail.class.js +2 -2
  78. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  79. package/dist/components/layout/menu/menu.class.d.ts +6 -5
  80. package/dist/components/layout/split-panel/split-panel.class.d.ts +2 -1
  81. package/dist/components/media/flag/language-map.d.ts +8 -0
  82. package/dist/components/media/flag/language-map.js +1 -1
  83. package/dist/components/media/map/map-loader.d.ts +7 -1
  84. package/dist/components/media/map/map.class.d.ts +111 -5
  85. package/dist/components/media/map/map.class.js +3 -3
  86. package/dist/components/media/media-card/media-card.class.d.ts +18 -5
  87. package/dist/components/media/media-card/media-card.class.js +1 -1
  88. package/dist/components/overlays/overlay/popover.class.d.ts +20 -0
  89. package/dist/components/overlays/overlay/popover.class.js +2 -2
  90. package/dist/components/retrieval/graph/graph.class.d.ts +3 -3
  91. package/dist/components/retrieval/graph/graph.class.js +1 -1
  92. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +5 -3
  93. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +3 -2
  94. package/dist/components/retrieval/mind-map/mind-map.class.d.ts +3 -3
  95. package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
  96. package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +4 -1
  97. package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +5 -1
  98. package/dist/components/retrieval/source-picker/source-picker.class.d.ts +4 -1
  99. package/dist/components/retrieval/source-picker/source-picker.class.js +5 -1
  100. package/dist/components/utility/icon/icon.class.d.ts +9 -3
  101. package/dist/components/utility/icon/icon.class.js +1 -1
  102. package/dist/components/utility/mutation-observer/mutation-observer.class.d.ts +14 -8
  103. package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
  104. package/dist/components/viewers/document-viewer/document-viewer.class.d.ts +6 -1
  105. package/dist/components/viewers/document-viewer/document-viewer.class.js +7 -1
  106. package/dist/components/viewers/document-viewer/registry.d.ts +12 -3
  107. package/dist/components/viewers/geojson-view/geojson-view.class.d.ts +13 -5
  108. package/dist/components/viewers/geojson-view/geojson-view.class.js +1 -1
  109. package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +3 -2
  110. package/dist/custom-elements-jsx.d.ts +1 -1
  111. package/dist/events.d.ts +644 -1242
  112. package/dist/internal/anchored-overlay-runtime.d.ts +2 -2
  113. package/dist/internal/cell-range.d.ts +0 -6
  114. package/dist/internal/cell-range.js +1 -1
  115. package/dist/internal/css-token-length.d.ts +7 -0
  116. package/dist/internal/css-token-length.js +1 -0
  117. package/dist/internal/default-strings.generated.d.ts +1 -1
  118. package/dist/internal/default-strings.generated.js +1 -1
  119. package/dist/internal/deferred-focus-return.d.ts +7 -4
  120. package/dist/internal/deferred-focus-return.js +1 -1
  121. package/dist/internal/dev-mode-attribute-warning.d.ts +35 -0
  122. package/dist/internal/dev-mode-attribute-warning.js +1 -1
  123. package/dist/internal/localization-runtime.js +1 -1
  124. package/dist/internal/localization-types.d.ts +1 -1
  125. package/dist/internal/localization.js +2 -2
  126. package/dist/internal/package-metadata.d.ts +1 -1
  127. package/dist/internal/package-metadata.js +1 -1
  128. package/dist/internal/papaparse-loader.d.ts +1 -1
  129. package/dist/internal/papaparse-loader.js +1 -1
  130. package/dist/internal/positioner.d.ts +10 -0
  131. package/dist/internal/positioner.js +1 -1
  132. package/dist/internal/shared-unions.d.ts +2 -1
  133. package/dist/internal/slotted-overlay-controller.d.ts +20 -0
  134. package/dist/internal/slotted-overlay-controller.js +1 -0
  135. package/dist/internal/text-quote.d.ts +1 -1
  136. package/dist/internal/text-quote.js +1 -1
  137. package/dist/internal/theme-observation.d.ts +4 -0
  138. package/dist/internal/theme-observation.js +1 -0
  139. package/dist/internal/theme-watcher.js +1 -1
  140. package/dist/localization.d.ts +6 -1
  141. package/dist/localization.js +1 -1
  142. package/dist/lyra.d.ts +1 -1
  143. package/dist/lyra.js +1 -1
  144. package/dist/svelte.d.ts +1 -1
  145. package/dist/testing/lyra-tag-event-map.js +1 -1
  146. package/dist/translations/ar/agent-tools.js +1 -1
  147. package/dist/translations/cs/agent-tools.js +1 -1
  148. package/dist/translations/da/agent-tools.js +1 -1
  149. package/dist/translations/de/agent-tools.js +1 -1
  150. package/dist/translations/de-CH/agent-tools.js +1 -1
  151. package/dist/translations/es/agent-tools.js +1 -1
  152. package/dist/translations/fa/agent-tools.js +1 -1
  153. package/dist/translations/fi/agent-tools.js +1 -1
  154. package/dist/translations/fr/agent-tools.js +1 -1
  155. package/dist/translations/he/agent-tools.js +1 -1
  156. package/dist/translations/hi/agent-tools.js +1 -1
  157. package/dist/translations/hr/agent-tools.js +1 -1
  158. package/dist/translations/hu/agent-tools.js +1 -1
  159. package/dist/translations/id/agent-tools.js +1 -1
  160. package/dist/translations/it/agent-tools.js +1 -1
  161. package/dist/translations/ja/agent-tools.js +1 -1
  162. package/dist/translations/kk/agent-tools.js +1 -1
  163. package/dist/translations/ko/agent-tools.js +1 -1
  164. package/dist/translations/nb/agent-tools.js +1 -1
  165. package/dist/translations/nl/agent-tools.js +1 -1
  166. package/dist/translations/nn/agent-tools.js +1 -1
  167. package/dist/translations/pl/agent-tools.js +1 -1
  168. package/dist/translations/pt-BR/agent-tools.js +1 -1
  169. package/dist/translations/pt-PT/agent-tools.js +1 -1
  170. package/dist/translations/pt-PT/charts.js +1 -1
  171. package/dist/translations/pt-PT/conversation.js +1 -1
  172. package/dist/translations/pt-PT/data.js +1 -1
  173. package/dist/translations/pt-PT/forms.js +1 -1
  174. package/dist/translations/pt-PT/layout.js +1 -1
  175. package/dist/translations/pt-PT/media.js +1 -1
  176. package/dist/translations/pt-PT/retrieval.js +1 -1
  177. package/dist/translations/pt-PT/shared.js +1 -1
  178. package/dist/translations/pt-PT/utility.js +1 -1
  179. package/dist/translations/pt-PT/viewers.js +2 -2
  180. package/dist/translations/ro/agent-tools.js +1 -1
  181. package/dist/translations/ru/agent-tools.js +1 -1
  182. package/dist/translations/sl/agent-tools.js +1 -1
  183. package/dist/translations/sv/agent-tools.js +1 -1
  184. package/dist/translations/tr/agent-tools.js +1 -1
  185. package/dist/translations/uk/agent-tools.js +1 -1
  186. package/dist/translations/zh-CN/agent-tools.js +1 -1
  187. package/dist/translations/zh-TW/agent-tools.js +1 -1
  188. package/dist/utilities/index.d.ts +1 -1
  189. package/dist/utilities/index.js +1 -1
  190. package/dist/utilities/localization.d.ts +28 -10
  191. package/dist/vue.d.ts +1 -1
  192. package/llms/components/lr-accordion-item.md +2 -344
  193. package/llms/components/lr-accordion.md +2 -344
  194. package/llms/components/lr-app-rail-group.md +2 -721
  195. package/llms/components/lr-app-rail-item.md +2 -721
  196. package/llms/components/lr-app-rail.md +29 -4
  197. package/llms/components/lr-bar-chart.md +2 -87
  198. package/llms/components/lr-box-plot.md +1 -1
  199. package/llms/components/lr-breadcrumb-item.md +2 -67
  200. package/llms/components/lr-bubble-chart.md +2 -87
  201. package/llms/components/lr-button.md +7 -0
  202. package/llms/components/lr-chart.md +4 -5
  203. package/llms/components/lr-chip-group.md +2 -272
  204. package/llms/components/lr-conversation-item.md +20 -2
  205. package/llms/components/lr-date-input.md +2 -457
  206. package/llms/components/lr-date-picker.md +6 -2
  207. package/llms/components/lr-document-library.md +3 -3
  208. package/llms/components/lr-document-viewer.md +14 -5
  209. package/llms/components/lr-doughnut-chart.md +2 -87
  210. package/llms/components/lr-dropdown-item.md +2 -306
  211. package/llms/components/lr-dropdown.md +6 -0
  212. package/llms/components/lr-flag.md +9 -1
  213. package/llms/components/lr-flow-node.md +4 -1
  214. package/llms/components/lr-geojson-view.md +3 -90
  215. package/llms/components/lr-geojson-viewer.md +13 -5
  216. package/llms/components/lr-icon-button.md +4 -1
  217. package/llms/components/lr-icon.md +14 -6
  218. package/llms/components/lr-input.md +9 -2
  219. package/llms/components/lr-lite-chart.md +17 -9
  220. package/llms/components/lr-map.md +87 -2
  221. package/llms/components/lr-markdown-core.md +5 -4
  222. package/llms/components/lr-markdown.md +4 -2
  223. package/llms/components/lr-media-card.md +10 -5
  224. package/llms/components/lr-menu-item.md +2 -306
  225. package/llms/components/lr-menu.md +9 -6
  226. package/llms/components/lr-menubar-item.md +2 -125
  227. package/llms/components/lr-message-actions.md +4 -1
  228. package/llms/components/lr-message-parts.md +14 -5
  229. package/llms/components/lr-mutation-observer.md +12 -6
  230. package/llms/components/lr-navigation-menu-item.md +2 -237
  231. package/llms/components/lr-number-input.md +4 -0
  232. package/llms/components/lr-option.md +2 -712
  233. package/llms/components/lr-pie-chart.md +2 -87
  234. package/llms/components/lr-polar-area-chart.md +2 -87
  235. package/llms/components/lr-popover.md +10 -0
  236. package/llms/components/lr-prompt-input.md +5 -1
  237. package/llms/components/lr-radar-chart.md +2 -87
  238. package/llms/components/lr-reorder-item.md +2 -157
  239. package/llms/components/lr-result-field.md +2 -117
  240. package/llms/components/lr-retrieval-results.md +3 -1
  241. package/llms/components/lr-rubric-form.md +3 -2
  242. package/llms/components/lr-scatter-chart.md +2 -87
  243. package/llms/components/lr-selection-toolbar.md +4 -2
  244. package/llms/components/lr-source-card.md +2 -186
  245. package/llms/components/lr-source-picker.md +3 -1
  246. package/llms/components/lr-sparkline.md +9 -4
  247. package/llms/components/lr-split-panel.md +5 -3
  248. package/llms/components/lr-stat.md +4 -3
  249. package/llms/components/lr-streaming-text-core.md +7 -5
  250. package/llms/components/lr-streaming-text.md +9 -6
  251. package/llms/components/lr-swatch-picker.md +130 -0
  252. package/llms/components/lr-tag.md +2 -177
  253. package/llms/components/lr-thread-list.md +27 -4
  254. package/llms/components/lr-timeline-item.md +2 -120
  255. package/llms/components/lr-toast-item.md +2 -223
  256. package/llms/components/lr-tool-call-block.md +12 -3
  257. package/llms/components/lr-tool-call-chip.md +12 -6
  258. package/llms/components/lr-tool-param-form.md +3 -2
  259. package/llms/components/lr-tool-result-dialog.md +7 -3
  260. package/llms/components/lr-tool-result-view.md +4 -3
  261. package/llms/components/lr-tool-timeline.md +12 -5
  262. package/llms/components/lr-tree-item.md +2 -354
  263. package/llms/index.md +22 -4
  264. package/llms/migration.md +75 -1
  265. package/llms/peers.md +1 -1
  266. package/llms/shared.md +86 -39
  267. package/llms-full.txt +739 -163
  268. package/package.json +6 -6
  269. package/registrations.json +1 -1
  270. package/vscode-css-data.json +1 -1
  271. package/vscode-html-data.json +1 -1
  272. package/web-types.json +1 -1
@@ -124,9 +124,10 @@ letting a consumer that syncs app chrome to the rail's mode pick up the restored
124
124
  the host's re-render has applied. That second pass only acts while focus is still inside the rail
125
125
  or has fallen to `<body>` — focus moved elsewhere in the meantime is never taken back — and
126
126
  focuses the first candidate that can actually hold focus: the trigger, then the element that held
127
- focus when the overlay opened, then the built-in `[part='toggle']` (unavailable under
128
- `hideToggle`), and finally the rail host; when even the host cannot take focus (hidden, or inert —
129
- under an inert ancestor or behind a stacked modal), focus is left where it is. The host
127
+ focus when the overlay opened (none when focus was on `<body>`), then the built-in
128
+ `[part='toggle']` (unavailable under `hideToggle`), then the rail host, and finally
129
+ `focusFallback` when set; when none of them can take focus (the host hidden, or inert — under an
130
+ inert ancestor or behind a stacked modal), focus is left where it is. The host
130
131
  temporarily receives `tabindex="-1"` only when it has no authored tabindex; the temporary
131
132
  attribute is removed once focus moves off the host or the rail disconnects, while a blur caused
132
133
  only by the window or tab losing system focus (the host stays the focused element) leaves it in
@@ -139,7 +140,8 @@ letting a consumer that syncs app chrome to the rail's mode pick up the restored
139
140
  `null`), no external element is a return candidate: a close still returns focus to the built-in
140
141
  toggle when its own click opened the overlay, otherwise to the element that held focus at open,
141
142
  and the deferred pass still runs over its remaining candidates (that element, the built-in toggle,
142
- then the rail host) — only the trigger candidate depends on the association. The resolved trigger
143
+ the rail host, then `focusFallback`) — only the trigger candidate depends on the association. The
144
+ resolved trigger
143
145
  also receives `aria-expanded` (rendered in both states) and `aria-controls` pointing at the rail's
144
146
  own panel, so an external control announces the overlay's state across the shadow boundary.
145
147
  Because a light-DOM element cannot hold a raw reference into another element's shadow tree,
@@ -151,6 +153,29 @@ letting a consumer that syncs app chrome to the rail's mode pick up the restored
151
153
  label/`htmlFor`-style alternative to assigning `trigger` directly (mirrors `<lr-page-rail>`'s
152
154
  `for`). Resolved against this element's own root (shadow root or document) when the overlay opens
153
155
  and again when it closes. Ignored once `trigger` is itself set.
156
+ - `focusFallback: HTMLElement | string | null = null` (attribute `focus-fallback`) — opt-in
157
+ last-resort target for the mobile overlay's deferred focus return, tried only after every built-in
158
+ target (the `trigger`/`for` association, the element that held focus at open, `[part='toggle']`,
159
+ the rail host) is unavailable — typically the application's main region, for a host that takes the
160
+ navigation, or the region around it, out of the layout as the overlay closes. Accepts an element or
161
+ an id, the same element-or-id shape as `<lr-intersection-observer>`'s `root`; an id (the attribute
162
+ always holds one — an id, not a selector) is resolved like `for`, against the rail's own root
163
+ (shadow root or document), and `''` means unset. Resolved when the deferred pass runs, so
164
+ reassigning it after opening, or re-creating the element under the same id before the pass runs,
165
+ is honored; property and attribute writes set the same value and the last write wins. It never
166
+ outranks a target that can take focus, so it changes no close that already lands, and it is not
167
+ used by the synchronous attempt, by a close caused by leaving `'mobile'` (a breakpoint or
168
+ `forceMode` change), or in the full/icon-only presentations. A target that is missing,
169
+ disconnected, in another document, hidden, inert or under an inert ancestor, `aria-hidden`,
170
+ disabled, or not focusable leaves focus where it is, and so does anything inside this rail
171
+ (unavailable whenever the rail host is). The target needs `tabindex="-1"` (or another way to take
172
+ focus): unlike the host, the rail never adds a tabindex to it. Unset (`null`) reproduces the
173
+ existing behavior exactly.
174
+
175
+ ```html
176
+ <main id="content" tabindex="-1">…</main>
177
+ <lr-app-rail hide-toggle for="menu-button" focus-fallback="content">…</lr-app-rail>
178
+ ```
154
179
  - `resizable: boolean = false` (reflected) — opts a continuously draggable width in for the `'full'`
155
180
  state, exposing a `[part='resizer']` handle clamped to `[minRailWidthPx, maxRailWidthPx]`. `false`
156
181
  (the default) renders no resizer and leaves the fixed-width `--lr-app-rail-width` CSS token
@@ -9,91 +9,6 @@
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** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
12
- - **Themeable via** 16 parts, 37 custom properties — see this component's own `@csspart`/`@cssprop` list below
13
- - **Documented with** `lr-line-chart`, `lr-pie-chart`, `lr-doughnut-chart`, `lr-radar-chart`, `lr-polar-area-chart`, `lr-bubble-chart`, `lr-scatter-chart` (same section below)
12
+ - **Themeable via** 16 parts, 37 custom properties — see `lr-line-chart.md`
13
+ - **Documented with** `lr-line-chart`: see [lr-line-chart.md](./lr-line-chart.md).
14
14
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
15
-
16
- ---
17
-
18
- ## Typed subclasses: `lr-line-chart`, `lr-bar-chart`, `lr-pie-chart`, `lr-doughnut-chart`, `lr-radar-chart`, `lr-polar-area-chart`, `lr-bubble-chart`, `lr-scatter-chart`
19
-
20
- Each is `LyraChart` with a named default `type` — respectively `line`, `bar`, `pie`, `doughnut`,
21
- `radar`, `polarArea`, `bubble`, `scatter`. In parity with the mirrored tags, `type` remains writable
22
- and accepts the full `LyraChartType` vocabulary; the tag name is a convenient default, not a lock.
23
-
24
- Everything else is inherited verbatim from `lr-chart`; each name below has the same type, default,
25
- and behavior there. **See `llms/components/lr-chart.md` for the details, code example, and gotchas
26
- of every entry in these lists.**
27
-
28
- **Properties:** `description`, `grid`, `axes`, `compact`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
29
- (`legend-position`), `hiddenDatums`, `legendMode` (`legend-mode`), `legendDisplay` (`legend-display`),
30
- `max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
31
- `stacked`, `stackedAxes`, `withoutAnimation` (`without-animation`),
32
- `withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
33
- `yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
34
- `tooltipTitleFormatter`, `tooltipFooterFormatter`, `area`, `zoom`,
35
- `height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
36
- (`data-labels`), `stackTotals` (`stack-totals`), `config`, `showDataTable`
37
- (`show-data-table`), `dataTableToggle` (`data-table-toggle`), `chartArea` (readonly), and `chart`.
38
- `type` differs only in its initial value.
39
-
40
- **Methods:** `appendData(label, values, maxPoints?)`, `exportData('csv' | 'png')`, `renderChart()`, `resetZoom()`,
41
- `refreshTheme()`.
42
-
43
- **Events:** `lr-zoom` (`detail: { zoomed: boolean }`), `lr-datum-activate`, `lr-point-click` (`detail: { datasetIndex,
44
- index, label, value }`), `lr-legend-visibility-change-request` (cancelable), and
45
- `lr-legend-visibility-change` (commit; both legend events carry `datasetIndex`, `visible`, and the
46
- complete `hiddenDatasets` snapshot). `lr-before-legend-visibility-change` is a **deprecated** alias
47
- of `lr-legend-visibility-change-request` (removal not before 21.0.0).
48
- Radial category legends additionally emit `lr-datum-visibility-change-request` (cancelable) and
49
- `lr-datum-visibility-change`, carrying `index`, `visible` and the frozen `hiddenDatums` snapshot.
50
- `lr-before-datum-visibility-change` is a **deprecated** alias of `lr-datum-visibility-change-request`
51
- (removal not before 21.0.0).
52
-
53
- **Slots:** default JSON configuration script, `data-table`, `center`.
54
-
55
- **CSS parts:** `base`, `plot`, `canvas`, `legend`, `legend-item`, `legend-item-hidden`, `legend-swatch`,
56
- `reset-zoom-button`, `description`, `notices`, `data-table`, `data-table-toggle`, `data-truncation`, `feature-warning`, `center`, `error` (neutral visible message
57
- rendered in place of `canvas` when the optional `chart.js` peer dependency fails to load; the
58
- failure transition is announced through the shared document-level light-DOM assertive sink — see
59
- `llms/components/lr-chart.md`).
60
-
61
- **Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
62
- `--lr-chart-tick-color`, `--lr-chart-tick-font-size`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
63
- `--lr-chart-tooltip-text`, `--lr-chart-legend-item-hover-bg`,
64
- `--lr-chart-legend-item-active-bg`, `--lr-chart-data-table-button-hover-bg`,
65
- `--lr-chart-data-table-button-active-bg`, `--lr-chart-data-table-toggle-hover-bg`,
66
- `--lr-chart-data-table-toggle-active-bg`, `--lr-chart-reset-zoom-button-hover-bg`,
67
- `--lr-chart-reset-zoom-button-active-bg`, `--lr-chart-canvas-hover-outline-width`, and
68
- `--lr-chart-canvas-hover-outline-color`, `--lr-chart-pattern-step`, plus `--lr-chart-legend-side-max` — all inherited from `LyraChart`, identical in meaning and default (see
69
- `lr-chart` above); each of the eight variants below reads the same set, so one rule retunes them
70
- together. The mirrored hooks are `--border-color-1`,
71
- `--border-color-2`, `--border-color-3`, `--border-color-4`, `--border-color-5`,
72
- `--border-color-6`, `--fill-color-1`, `--fill-color-2`, `--fill-color-3`, `--fill-color-4`,
73
- `--fill-color-5`, `--fill-color-6`, `--border-radius`, `--border-width`, `--grid-border-width`,
74
- `--grid-color`, `--line-border-width`, and `--point-radius`, also identical to the core chart.
75
-
76
- **Optional peer deps:** same as `lr-chart` — `chart.js`, plus `chartjs-plugin-zoom` only once
77
- `zoom` is set, `chartjs-plugin-datalabels` only once `data-labels`/`stack-totals` is set, and
78
- `chartjs-plugin-annotation` only once `annotations` contains a usable entry.
79
-
80
- ```html
81
- <lr-bar-chart></lr-bar-chart>
82
- <lr-pie-chart></lr-pie-chart>
83
- <script>
84
- document.querySelector('lr-bar-chart').labels = ['A', 'B'];
85
- document.querySelector('lr-bar-chart').datasets = [{ label: 'Count', data: [4, 9] }];
86
-
87
- document.querySelector('lr-pie-chart').labels = ['A', 'B', 'C'];
88
- document.querySelector('lr-pie-chart').datasets = [{ label: 'Share', data: [30, 45, 25], color: ['#2563eb', '#16a34a', '#dc2626'] }];
89
- </script>
90
- ```
91
-
92
- **Known gotchas (in addition to the core `lr-chart` list in `llms/components/lr-chart.md`):**
93
- - Changing `type` after construction may rebuild the underlying Chart.js instance; any active zoom
94
- state is reset and announced before the new type renders.
95
- - `lr-bubble-chart` consumes the exported `LyraChartPoint` shape directly. Set `x`/`y`, optional `r`
96
- for bubble radius, and optional `label` for the point-level accessible/event/export label; no
97
- runtime cast is needed.
98
-
99
- ---
@@ -121,7 +121,7 @@ bounded-alternative sampling notice)
121
121
  `--lr-chart-tooltip-text` — same public host-level precedence, token names, and defaults as `lr-chart`
122
122
  (also `getComputedStyle`-resolved and CSS-color-validated on every draw; invalid expressions use
123
123
  concrete semantic fallbacks rather than retaining a prior canvas paint), but declared in its own stylesheet, not a
124
- re-export: `lr-box-plot` has no `zoom`, so no `reset-zoom-button` chrome exists here. A `BoxPlotSeries`
124
+ re-export: `lr-box-plot` has no `zoom`, so no `reset-zoom-button` chrome exists here. A `LyraBoxPlotSeries`
125
125
  that sets no `color` is assigned an entry from the same `--lr-color-chart-1..8` ramp `lr-chart` uses,
126
126
  so `--lr-theme-color-chart-*` retheming reaches box plots too. That resolved color then layers two
127
127
  further per-series override tokens for the canvas paint, each wrapping modulo 8 like the underlying
@@ -9,71 +9,6 @@
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** 7 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
13
- - **Documented with** `lr-breadcrumb` (same section below)
12
+ - **Themeable via** 7 parts, 2 custom properties — see `lr-breadcrumb.md`
13
+ - **Documented with** `lr-breadcrumb`: see [lr-breadcrumb.md](./lr-breadcrumb.md).
14
14
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
15
-
16
- ---
17
-
18
- ## `lr-breadcrumb` and `lr-breadcrumb-item`
19
-
20
- Responsive navigation trail primitives.
21
-
22
- **`lr-breadcrumb` properties:** `label?: string` names the trail; omitting it reads back `undefined`
23
- and falls back to the localized `"Breadcrumb"`, while an explicitly empty string stays empty.
24
- `accessibleLabel?: string` (attribute **`aria-label`**) overrides both, with the same
25
- omitted-versus-explicitly-empty distinction. The
26
- shadow-root `<nav>` landmark never inherits a host attribute on its own, so the value is copied onto
27
- it. **Fixed in 9.0.0:** the property used to be declared but never read — only the literal host
28
- `aria-label` attribute reached the landmark, so `el.accessibleLabel = 'Docs trail'` type-checked and
29
- did nothing. Both spellings now work, with an authored host attribute still winning (including an
30
- explicitly empty `aria-label=""`, which stays empty rather than falling back).
31
-
32
- **`lr-breadcrumb-item` properties:** `href: string = ''` (URL-sanitized; an unsafe scheme renders the
33
- non-link form; assigning `undefined` clears it and reads back as the canonical `''`),
34
- `target?: LyraBreadcrumbItemTarget`, and `current: boolean = false` (reflected — renders a
35
- `<span aria-current="page">` instead of an `<a>`, even when `href` is set). A target derives
36
- the mandatory `noopener noreferrer` floor. `rel: string = 'noreferrer noopener'` is independently
37
- settable: author tokens are preserved, `opener` is stripped, and any target force-adds the floor. Each item
38
- sets `role="listitem"` on itself. A non-current item without `href` renders a native button. A host
39
- `aria-label` is forwarded to either non-current native owner by attribute presence, including an
40
- explicitly empty value; when absent, the default slot supplies its name.
41
-
42
- **`lr-breadcrumb-item` methods:** `click(): void` activates the internal native link or button. It
43
- is a no-op for the current-page label.
44
-
45
- Changing `href` or `current` while that native owner has focus transfers focus across the link,
46
- button, and programmatically focusable current-page label. External focus is preserved.
47
-
48
- **Slots:** breadcrumb's default slot takes `lr-breadcrumb-item` children and its `separator` slot is
49
- copied to every item without an item-level override. Both breadcrumb and item `separator` slots are
50
- decorative-only: their rendered content is inert and hidden from assistive technology, so it must not
51
- provide interactive behavior, a focus target, or form state. Generated shared copies omit identifiers,
52
- ID-reference relationships, form associations, and submission attributes. Source text, attributes,
53
- and compatible subtrees update live; identity-compatible clone nodes are patched in place instead of
54
- being disconnected and recreated. The first owned breadcrumb item is determined independently of
55
- separator sources or other auxiliary siblings, so it never renders a leading separator. An item's default slot is
56
- its label; `start`/`prefix` and `end`/`suffix` are the two upstream adornment vocabularies, and
57
- `separator` overrides the `/` fallback.
58
-
59
- **CSS parts:** breadcrumb `base` and `breadcrumb` are aliases on the same `<nav>`; `list` is the
60
- `role="list"` flex row wrapping the slotted items; item `base` (the `<a>`, `<button>`, or current
61
- `<span>`), `label`,
62
- `separator`, and the alias pairs `start`/`prefix` and `end`/`suffix`.
63
- Interactive link/button bases retain a 24px minimum target in both axes even with empty content;
64
- the inert current-page label remains content-sized.
65
-
66
- **Themeable custom properties:** `--lr-breadcrumb-current-color` (default
67
- `var(--lr-color-text-quiet)`) — text color of the current-page item (`current`/`aria-current="page"`).
68
- It is an inline `var()` fallback at the point of use rather than a `:host` declaration, so it can be
69
- set on the item, on `<lr-breadcrumb>`, or on any ancestor above the trail:
70
- `::part(base)[aria-current='page']` is invalid CSS (Shadow Parts forbids an attribute selector after
71
- `::part()`), so tinting the current item previously meant overriding the library-wide
72
- `--lr-color-text-quiet` token and repainting everything else that read it. Unset, it falls back to
73
- that token.
74
- `--lr-breadcrumb-item-active-bg` independently themes a non-current link/button's pressed fill;
75
- unset, it retains the former transparent active mix.
76
-
77
- **Additional API surface:**
78
-
79
- - `part="separator"` — Decorative separator shown before non-first items.
@@ -9,91 +9,6 @@
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** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
12
- - **Themeable via** 16 parts, 37 custom properties — see this component's own `@csspart`/`@cssprop` list below
13
- - **Documented with** `lr-line-chart`, `lr-bar-chart`, `lr-pie-chart`, `lr-doughnut-chart`, `lr-radar-chart`, `lr-polar-area-chart`, `lr-scatter-chart` (same section below)
12
+ - **Themeable via** 16 parts, 37 custom properties — see `lr-line-chart.md`
13
+ - **Documented with** `lr-line-chart`: see [lr-line-chart.md](./lr-line-chart.md).
14
14
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
15
-
16
- ---
17
-
18
- ## Typed subclasses: `lr-line-chart`, `lr-bar-chart`, `lr-pie-chart`, `lr-doughnut-chart`, `lr-radar-chart`, `lr-polar-area-chart`, `lr-bubble-chart`, `lr-scatter-chart`
19
-
20
- Each is `LyraChart` with a named default `type` — respectively `line`, `bar`, `pie`, `doughnut`,
21
- `radar`, `polarArea`, `bubble`, `scatter`. In parity with the mirrored tags, `type` remains writable
22
- and accepts the full `LyraChartType` vocabulary; the tag name is a convenient default, not a lock.
23
-
24
- Everything else is inherited verbatim from `lr-chart`; each name below has the same type, default,
25
- and behavior there. **See `llms/components/lr-chart.md` for the details, code example, and gotchas
26
- of every entry in these lists.**
27
-
28
- **Properties:** `description`, `grid`, `axes`, `compact`, `indexAxis` (`index-axis`), `label`, `hiddenDatasets`, `legendPosition`
29
- (`legend-position`), `hiddenDatums`, `legendMode` (`legend-mode`), `legendDisplay` (`legend-display`),
30
- `max`, `min`, `plugins`, `scaleType` (`scale-type`), `annotations`,
31
- `stacked`, `stackedAxes`, `withoutAnimation` (`without-animation`),
32
- `withoutLegend` (`without-legend`), `withoutTooltip` (`without-tooltip`), `xLabel` (`x-label`),
33
- `yLabel` (`y-label`), plus additive `labels`, `datasets`, `valueFormatter`, `formatter`,
34
- `tooltipTitleFormatter`, `tooltipFooterFormatter`, `area`, `zoom`,
35
- `height`, `y2Label` (`y2-label`), `beginAtZero` (`begin-at-zero`), `dataLabels`
36
- (`data-labels`), `stackTotals` (`stack-totals`), `config`, `showDataTable`
37
- (`show-data-table`), `dataTableToggle` (`data-table-toggle`), `chartArea` (readonly), and `chart`.
38
- `type` differs only in its initial value.
39
-
40
- **Methods:** `appendData(label, values, maxPoints?)`, `exportData('csv' | 'png')`, `renderChart()`, `resetZoom()`,
41
- `refreshTheme()`.
42
-
43
- **Events:** `lr-zoom` (`detail: { zoomed: boolean }`), `lr-datum-activate`, `lr-point-click` (`detail: { datasetIndex,
44
- index, label, value }`), `lr-legend-visibility-change-request` (cancelable), and
45
- `lr-legend-visibility-change` (commit; both legend events carry `datasetIndex`, `visible`, and the
46
- complete `hiddenDatasets` snapshot). `lr-before-legend-visibility-change` is a **deprecated** alias
47
- of `lr-legend-visibility-change-request` (removal not before 21.0.0).
48
- Radial category legends additionally emit `lr-datum-visibility-change-request` (cancelable) and
49
- `lr-datum-visibility-change`, carrying `index`, `visible` and the frozen `hiddenDatums` snapshot.
50
- `lr-before-datum-visibility-change` is a **deprecated** alias of `lr-datum-visibility-change-request`
51
- (removal not before 21.0.0).
52
-
53
- **Slots:** default JSON configuration script, `data-table`, `center`.
54
-
55
- **CSS parts:** `base`, `plot`, `canvas`, `legend`, `legend-item`, `legend-item-hidden`, `legend-swatch`,
56
- `reset-zoom-button`, `description`, `notices`, `data-table`, `data-table-toggle`, `data-truncation`, `feature-warning`, `center`, `error` (neutral visible message
57
- rendered in place of `canvas` when the optional `chart.js` peer dependency fails to load; the
58
- failure transition is announced through the shared document-level light-DOM assertive sink — see
59
- `llms/components/lr-chart.md`).
60
-
61
- **Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
62
- `--lr-chart-tick-color`, `--lr-chart-tick-font-size`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
63
- `--lr-chart-tooltip-text`, `--lr-chart-legend-item-hover-bg`,
64
- `--lr-chart-legend-item-active-bg`, `--lr-chart-data-table-button-hover-bg`,
65
- `--lr-chart-data-table-button-active-bg`, `--lr-chart-data-table-toggle-hover-bg`,
66
- `--lr-chart-data-table-toggle-active-bg`, `--lr-chart-reset-zoom-button-hover-bg`,
67
- `--lr-chart-reset-zoom-button-active-bg`, `--lr-chart-canvas-hover-outline-width`, and
68
- `--lr-chart-canvas-hover-outline-color`, `--lr-chart-pattern-step`, plus `--lr-chart-legend-side-max` — all inherited from `LyraChart`, identical in meaning and default (see
69
- `lr-chart` above); each of the eight variants below reads the same set, so one rule retunes them
70
- together. The mirrored hooks are `--border-color-1`,
71
- `--border-color-2`, `--border-color-3`, `--border-color-4`, `--border-color-5`,
72
- `--border-color-6`, `--fill-color-1`, `--fill-color-2`, `--fill-color-3`, `--fill-color-4`,
73
- `--fill-color-5`, `--fill-color-6`, `--border-radius`, `--border-width`, `--grid-border-width`,
74
- `--grid-color`, `--line-border-width`, and `--point-radius`, also identical to the core chart.
75
-
76
- **Optional peer deps:** same as `lr-chart` — `chart.js`, plus `chartjs-plugin-zoom` only once
77
- `zoom` is set, `chartjs-plugin-datalabels` only once `data-labels`/`stack-totals` is set, and
78
- `chartjs-plugin-annotation` only once `annotations` contains a usable entry.
79
-
80
- ```html
81
- <lr-bar-chart></lr-bar-chart>
82
- <lr-pie-chart></lr-pie-chart>
83
- <script>
84
- document.querySelector('lr-bar-chart').labels = ['A', 'B'];
85
- document.querySelector('lr-bar-chart').datasets = [{ label: 'Count', data: [4, 9] }];
86
-
87
- document.querySelector('lr-pie-chart').labels = ['A', 'B', 'C'];
88
- document.querySelector('lr-pie-chart').datasets = [{ label: 'Share', data: [30, 45, 25], color: ['#2563eb', '#16a34a', '#dc2626'] }];
89
- </script>
90
- ```
91
-
92
- **Known gotchas (in addition to the core `lr-chart` list in `llms/components/lr-chart.md`):**
93
- - Changing `type` after construction may rebuild the underlying Chart.js instance; any active zoom
94
- state is reset and announced before the new type renders.
95
- - `lr-bubble-chart` consumes the exported `LyraChartPoint` shape directly. Set `x`/`y`, optional `r`
96
- for bubble radius, and optional `label` for the point-level accessible/event/export label; no
97
- runtime cast is needed.
98
-
99
- ---
@@ -204,6 +204,13 @@ plus Shoelace aliases `prefix` → `start` and `suffix` → `end`.
204
204
  In a constrained button the default label ellipsizes and each adornment wrapper is capped at 40%
205
205
  of the control. Fixed icons remain visible while unbroken labels or metadata cannot widen the row.
206
206
 
207
+ A detected icon-only label (the `icon-button` state) has no text to ellipsize, so it does not clip
208
+ paint. A glow drawn around the glyph extends past the label box instead of being cut to a square,
209
+ for example `gemstoneSelectedGlyphStyles`' drop-shadow halo on a `data-lr-gemstone-selected`
210
+ wrapper. A text label keeps the truncation clip, even beside a glowing glyph. The `start`/`end`
211
+ wrappers always clip, so put a glowing glyph in the default slot on its own. Hit area, focus ring,
212
+ and label box are unchanged.
213
+
207
214
  **CSS parts:** `base` (compatibility name for the internal control; use `button`),
208
215
  `button` (the internal native `<button>`, or an `<a>` when `href` resolves to a safe link; it is
209
216
  the same node as `base`), `label`, `start`/`prefix` (the same wrapper), `end`/`suffix` (the same
@@ -187,11 +187,10 @@ structured points retain their y-value formatting.
187
187
  axes, `'r'` for a radar/polar-area ring, and `undefined` where there is no axis at all (a
188
188
  pie/doughnut slice). Two value axes usually exist precisely because they carry different units,
189
189
  so without it one formatter cannot render a secondary axis correctly. `datasetIndex`, `index`,
190
- `label` and `seriesLabel` now reach the `tick`, `tooltip`, `legend` and `visual` surfaces as well
191
- as the `table`, `export` and `spoken` ones they always reached, and indexes are reported in
192
- source space — the same space the data table, the CSV export and `lr-point-click` use. Every one
193
- of these fields was `undefined` before, so no existing formatter changes behaviour. A
194
- `stackTotals`/`tableTotals` stack total is the exception in the other direction: it is a sum
190
+ `label` and `seriesLabel` reach the `tooltip`, `legend`, `visual`, `table`, `export` and `spoken`
191
+ surfaces, with indexes in source space — the same space the data table, the CSV export and
192
+ `lr-point-click` use. A `tick` call carries `axis` but none of those four. A
193
+ `stackTotals`/`tableTotals` stack total is also an exception: it is a sum
195
194
  *across* the stack's datasets, so it carries `statistic: 'total'`, the category `index`/`label`
196
195
  and the stack's own `axis`, but no `datasetIndex` and no `seriesLabel` — naming the topmost
197
196
  series would make a unit-switching formatter render that one series' unit for a cross-series