@aceshooting/lyra-ui 11.0.0 → 11.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 (48) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/custom-elements.json +1 -1
  3. package/dist/components/charts/chart/lite-chart.class.d.ts +32 -0
  4. package/dist/components/charts/chart/lite-chart.class.js +17 -4
  5. package/dist/components/charts/chart/lite-chart.styles.js +29 -0
  6. package/dist/components/data/table/table.class.d.ts +19 -0
  7. package/dist/components/data/table/table.class.js +3 -3
  8. package/dist/components/forms/date-picker/date-input.class.d.ts +12 -1
  9. package/dist/components/forms/date-picker/date-input.class.js +4 -2
  10. package/dist/components/forms/date-picker/date-picker.class.d.ts +30 -4
  11. package/dist/components/forms/date-picker/date-picker.class.js +4 -4
  12. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +1 -1
  13. package/dist/custom-elements-jsx.d.ts +4 -2
  14. package/dist/internal/canvas.js +1 -1
  15. package/dist/internal/package-metadata.d.ts +1 -1
  16. package/dist/internal/package-metadata.js +1 -1
  17. package/dist/svelte.d.ts +4 -2
  18. package/dist/theme.css +32 -0
  19. package/dist/vue.d.ts +4 -2
  20. package/llms/components/lr-agent-eval-dashboard.md +1 -1
  21. package/llms/components/lr-agent-workspace.md +1 -1
  22. package/llms/components/lr-box-plot.md +2 -2
  23. package/llms/components/lr-chart.md +1 -1
  24. package/llms/components/lr-chunk-inspector.md +1 -1
  25. package/llms/components/lr-combobox.md +3 -3
  26. package/llms/components/lr-date-input.md +22 -6
  27. package/llms/components/lr-date-picker.md +21 -5
  28. package/llms/components/lr-entity-dossier.md +1 -1
  29. package/llms/components/lr-eval-run.md +1 -1
  30. package/llms/components/lr-grounding-summary.md +1 -1
  31. package/llms/components/lr-heatmap.md +2 -2
  32. package/llms/components/lr-lite-chart.md +19 -3
  33. package/llms/components/lr-map.md +2 -2
  34. package/llms/components/lr-memory-panel.md +1 -1
  35. package/llms/components/lr-option.md +3 -3
  36. package/llms/components/lr-popover.md +1 -1
  37. package/llms/components/lr-provenance-panel.md +1 -1
  38. package/llms/components/lr-rag-answer.md +1 -1
  39. package/llms/components/lr-rag-eval-dashboard.md +1 -1
  40. package/llms/components/lr-retrieval-results.md +1 -1
  41. package/llms/components/lr-retrieval-trace.md +1 -1
  42. package/llms/peers.md +8 -8
  43. package/llms/tokens.md +12 -0
  44. package/llms-full.txt +48 -16
  45. package/package.json +1 -1
  46. package/vscode-css-data.json +14 -0
  47. package/vscode-html-data.json +16 -2
  48. package/web-types.json +29 -3
package/dist/vue.d.ts CHANGED
@@ -726,7 +726,7 @@ export type LyraDatasetViewerVueProps = LyraVueCustomElement<LyraDatasetViewer,
726
726
  'active-highlight-id'?: LyraDatasetViewer['activeHighlightId'];
727
727
  'max-height'?: LyraDatasetViewer['maxHeight'];
728
728
  }>;
729
- export type LyraDateInputVueProps = LyraVueCustomElement<LyraDateInput, 'accessibleLabel' | 'appearance' | 'assumeInteractionOn' | 'autocapitalize' | 'autocomplete' | 'autoCorrect' | 'clearLabel' | 'customError' | 'dayContent' | 'defaultValue' | 'dialogLabel' | 'disabled' | 'disabledDates' | 'disabledDaysOfWeek' | 'disableFuture' | 'disablePast' | 'distance' | 'enterKeyHint' | 'errorText' | 'firstDayOfWeek' | 'form' | 'hint' | 'inputMode' | 'isDateDisabled' | 'label' | 'locale' | 'max' | 'maxRange' | 'min' | 'minRange' | 'mode' | 'months' | 'name' | 'open' | 'openLabel' | 'pageBy' | 'pill' | 'placeholder' | 'placement' | 'readonly' | 'required' | 'selectionDirection' | 'selectionEnd' | 'selectionStart' | 'size' | 'spellcheck' | 'strings' | 'today' | 'validationTarget' | 'validators' | 'value' | 'valueAsDate' | 'valueAsRange' | 'weekdayFormat' | 'withClear' | 'withHint' | 'withLabel' | 'withOutsideDays' | 'withWeekNumbers', {
729
+ export type LyraDateInputVueProps = LyraVueCustomElement<LyraDateInput, 'accessibleLabel' | 'appearance' | 'assumeInteractionOn' | 'autocapitalize' | 'autocomplete' | 'autoCorrect' | 'clearLabel' | 'customError' | 'dayContent' | 'defaultValue' | 'dialogLabel' | 'disabled' | 'disabledDates' | 'disabledDaysOfWeek' | 'disableFuture' | 'disablePast' | 'distance' | 'enterKeyHint' | 'errorText' | 'firstDayOfWeek' | 'form' | 'hint' | 'inputMode' | 'isDateDisabled' | 'label' | 'locale' | 'max' | 'maxRange' | 'min' | 'minRange' | 'mode' | 'months' | 'name' | 'open' | 'openLabel' | 'pageBy' | 'pill' | 'placeholder' | 'placement' | 'presets' | 'readonly' | 'required' | 'selectionDirection' | 'selectionEnd' | 'selectionStart' | 'size' | 'spellcheck' | 'strings' | 'today' | 'validationTarget' | 'validators' | 'value' | 'valueAsDate' | 'valueAsRange' | 'weekdayFormat' | 'withClear' | 'withHint' | 'withLabel' | 'withOutsideDays' | 'withWeekNumbers', {
730
730
  form: HTMLFormElement | string | null;
731
731
  }, LyraDateInputEventMap, 'blur' | 'change' | 'focus' | 'input' | 'lr-after-hide' | 'lr-after-show' | 'lr-clear' | 'lr-hide' | 'lr-invalid' | 'lr-show', '--hide-duration' | '--lr-date-input-action-active-bg' | '--lr-date-input-action-active-color' | '--lr-date-input-action-active-radius' | '--lr-date-input-action-hover-bg' | '--lr-date-input-action-hover-color' | '--lr-date-input-action-hover-radius' | '--lr-date-input-control-height' | '--lr-date-input-control-min-height' | '--lr-date-input-focus-border-color' | '--lr-date-input-font-size' | '--lr-date-input-gap' | '--lr-date-input-padding-block' | '--lr-date-input-padding-inline' | '--lr-date-input-placeholder-color' | '--lr-date-input-radius' | '--lr-form-control-required-color' | '--lr-form-control-required-content' | '--lr-form-control-required-offset' | '--show-duration', {
732
732
  'aria-label'?: LyraDateInput['accessibleLabel'];
@@ -1169,15 +1169,17 @@ export type LyraLineChartVueProps = LyraVueCustomElement<LyraLineChart, 'annotat
1169
1169
  'y-label'?: LyraLineChart['yLabel'];
1170
1170
  'y2-label'?: LyraLineChart['y2Label'];
1171
1171
  }>;
1172
- export type LyraLiteChartVueProps = LyraVueCustomElement<LyraLiteChart, 'accessibleLabel' | 'barGapRatio' | 'barWidth' | 'barX' | 'beginAtZero' | 'datasets' | 'description' | 'formatter' | 'height' | 'label' | 'labels' | 'layout' | 'legend' | 'legendPosition' | 'legendText' | 'locale' | 'maxLabels' | 'minBarHeight' | 'pointText' | 'roundedBars' | 'scale' | 'selectedIndices' | 'skipZero' | 'stacked' | 'strings' | 'tableCellFormatter' | 'tableTotals' | 'tickFormat' | 'type' | 'valueAxisGutter' | 'withoutValueAxis' | 'xLabel' | 'yLabel', {}, LyraLiteChartEventMap, 'lr-datum-activate' | 'lr-point-click', '--lr-chart-color-1' | '--lr-chart-color-2' | '--lr-chart-color-3' | '--lr-chart-color-4' | '--lr-chart-color-5' | '--lr-chart-color-6' | '--lr-chart-color-7' | '--lr-chart-color-8' | '--lr-chart-grid-color' | '--lr-chart-height' | '--lr-chart-legend-color' | '--lr-chart-legend-side-max' | '--lr-chart-pattern-step' | '--lr-chart-tick-color' | '--lr-lite-chart-selected-outline-color' | '--lr-lite-chart-selected-outline-width', {
1172
+ export type LyraLiteChartVueProps = LyraVueCustomElement<LyraLiteChart, 'accessibleLabel' | 'barGapRatio' | 'barWidth' | 'barX' | 'beginAtZero' | 'datasets' | 'dataTableToggle' | 'description' | 'formatter' | 'height' | 'label' | 'labels' | 'layout' | 'legend' | 'legendPosition' | 'legendText' | 'locale' | 'maxLabels' | 'minBarHeight' | 'pointText' | 'roundedBars' | 'scale' | 'selectedIndices' | 'showDataTable' | 'skipZero' | 'stacked' | 'strings' | 'tableCellFormatter' | 'tableTotals' | 'tickFormat' | 'type' | 'valueAxisGutter' | 'withoutValueAxis' | 'xLabel' | 'yLabel', {}, LyraLiteChartEventMap, 'lr-datum-activate' | 'lr-point-click', '--lr-chart-color-1' | '--lr-chart-color-2' | '--lr-chart-color-3' | '--lr-chart-color-4' | '--lr-chart-color-5' | '--lr-chart-color-6' | '--lr-chart-color-7' | '--lr-chart-color-8' | '--lr-chart-grid-color' | '--lr-chart-height' | '--lr-chart-legend-color' | '--lr-chart-legend-side-max' | '--lr-chart-pattern-step' | '--lr-chart-tick-color' | '--lr-lite-chart-data-table-toggle-active-bg' | '--lr-lite-chart-data-table-toggle-hover-bg' | '--lr-lite-chart-selected-outline-color' | '--lr-lite-chart-selected-outline-width', {
1173
1173
  'accessible-label'?: LyraLiteChart['accessibleLabel'];
1174
1174
  'bar-gap-ratio'?: LyraLiteChart['barGapRatio'];
1175
1175
  'bar-width'?: LyraLiteChart['barWidth'];
1176
1176
  'begin-at-zero'?: LyraLiteChart['beginAtZero'];
1177
+ 'data-table-toggle'?: LyraLiteChart['dataTableToggle'];
1177
1178
  'legend-position'?: LyraLiteChart['legendPosition'];
1178
1179
  'max-labels'?: LyraLiteChart['maxLabels'];
1179
1180
  'min-bar-height'?: LyraLiteChart['minBarHeight'];
1180
1181
  'rounded-bars'?: LyraLiteChart['roundedBars'];
1182
+ 'show-data-table'?: LyraLiteChart['showDataTable'];
1181
1183
  'skip-zero'?: LyraLiteChart['skipZero'];
1182
1184
  'table-totals'?: LyraLiteChart['tableTotals'];
1183
1185
  'value-axis-gutter'?: LyraLiteChart['valueAxisGutter'];
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/agent-tools/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `6.2.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 13 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/conversation/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.2.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom`, `dompurify`, `katex`, `marked`, `shiki` — see `llms/peers.md`
10
+ - **Optional peers** `dompurify`, `katex`, `marked`, `shiki` — see `llms/peers.md`
11
11
  - **Themeable via** 16 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/charts/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `@sgratzl/chartjs-chart-boxplot`, `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
10
+ - **Optional peers** `@sgratzl/chartjs-chart-boxplot`, `chart.js` — see `llms/peers.md`
11
11
  - **Themeable via** 12 parts, 13 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -46,7 +46,7 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
46
46
  - `formatter?: LyraChartFormatter`, `valueFormatter?: LyraChartValueFormatter` — numeric axis,
47
47
  tooltip, table, summary, and export formatting; the context-object formatter takes precedence
48
48
  - `showDataTable: boolean = false` (attribute `show-data-table`) — reveals the accessible data table
49
- - `dataTableToggle: boolean = false` (attribute `data-table-toggle`, new in 10.1.0) — renders a
49
+ - `dataTableToggle: boolean = false` (attribute `data-table-toggle`, new in 11.0.0) — renders a
50
50
  localized disclosure button (`part="data-table-toggle"`) above the data table so a *sighted*
51
51
  reader can reveal the numbers on demand. `showDataTable` alone is all-or-nothing, which left
52
52
  consumers wrapping a duplicated table in their own `<details>`. With the toggle on,
@@ -162,7 +162,7 @@ property).
162
162
  ignored without evaluating script or exposing prototype-pollution keys to the merge.
163
163
  - `showDataTable: boolean = false` (attribute `show-data-table`) — makes the always-available
164
164
  accessible data table visible rather than screen-reader-only
165
- - `dataTableToggle: boolean = false` (attribute `data-table-toggle`, new in 10.1.0) — renders a
165
+ - `dataTableToggle: boolean = false` (attribute `data-table-toggle`, new in 11.0.0) — renders a
166
166
  localized disclosure button (`part="data-table-toggle"`) above the data table so a *sighted*
167
167
  reader can reveal the numbers on demand. `showDataTable` alone is all-or-nothing, which left
168
168
  consumers wrapping a duplicated table in their own `<details>`. With the toggle on,
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 16 parts, 2 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -24,7 +24,7 @@ An `lr-option` row remains bounded by its owning listbox: the default label elli
24
24
  `start`/`end` (or `prefix`/`suffix`) adornment is capped at 40% of the row. Unbroken metadata
25
25
  therefore cannot widen a 320px LTR or RTL picker.
26
26
 
27
- **Adornments in the popup (fixed in 10.1.0).** Before 10.1.0 this paragraph described behavior the
27
+ **Adornments in the popup (fixed in 11.0.0).** Before 11.0.0 this paragraph described behavior the
28
28
  code did not have: `lr-combobox` builds its popup from normalized row *data* rather than from the
29
29
  light-DOM nodes, so a slotted `start`/`end`/`prefix`/`suffix` adornment had nowhere to land and
30
30
  simply never rendered — the documented slots and their documented parts were both dead inside the
@@ -111,7 +111,7 @@ An async `source` row can carry the same two fields (`start`, `end`) alongside i
111
111
  - `maxOptionsVisible: number = 3` (attribute `max-options-visible` — caps how many selected **tags**
112
112
  show before collapsing to `+N`; nothing to do with the suggestion list, see the three-caps note
113
113
  below)
114
- - `visibleOptions?: number` (attribute `visible-options`, new in 10.1.0) — bounds the popup to about
114
+ - `visibleOptions?: number` (attribute `visible-options`, new in 11.0.0) — bounds the popup to about
115
115
  this many suggestion rows, leaving the rest reachable by scrolling. Purely presentational: every
116
116
  row is still rendered. Measured from where row N actually starts rather than computed from a
117
117
  token, because a row's height varies with `sub` lines, adornments and group labels. Unset imposes
@@ -188,7 +188,7 @@ alias. Set the boolean `autocorrect` IDL, or use `autocorrect="on"` / `autocorre
188
188
  `ComboboxSourceRow = { readonly value: string; readonly label: string; readonly sub?: string; readonly icon?: unknown; readonly start?: unknown;
189
189
  readonly end?: unknown; readonly badge?: string |
190
190
  number; accessibleLabel?: string; data?: unknown; dotColor?: string; group?: string; disabled?:
191
- boolean }` — the row shape used by the async `source` path. `start` and `end` (new in 10.1.0) are
191
+ boolean }` — the row shape used by the async `source` path. `start` and `end` (new in 11.0.0) are
192
192
  the async counterparts of `<lr-option>`'s `start`/`end` adornment slots and render as the
193
193
  `option-start` / `option-end` parts, inert and aria-hidden exactly like `icon`. `icon` renders as a decorative leading
194
194
  visual whose rendered subtree stays visible but is inert and hidden from assistive technology;
@@ -8,7 +8,7 @@
8
8
  - **Status** `experimental` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
10
  - **Optional peers** none
11
- - **Themeable via** 20 parts, 20 custom properties — see this component's own `@csspart`/`@cssprop` list below
11
+ - **Themeable via** 22 parts, 20 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Documented with** `lr-date-picker` (same section below)
13
13
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
14
14
 
@@ -34,9 +34,13 @@ Inline month-grid calendar, not form-associated (used standalone or embedded ins
34
34
  **Properties (28):**
35
35
 
36
36
  - `dayContent` (JS only): `LyraDatePickerDayContent | undefined`
37
- - `presets: LyraDateRangePreset[] = []` (JS only, new in 10.1.0) —
38
- `LyraDateRangePreset { label: string; start: string; end: string }`, where `start`/`end` are ISO
39
- `YYYY-MM-DD`. Renders a `[part="presets"]` quick-range button row above the calendar, for the
37
+ - `presets: LyraDateRangePreset[] = []` (JS only, new in 11.0.0) —
38
+ `LyraDateRangePreset { label: string; start?: string; end?: string }`, where `start`/`end` are ISO
39
+ `YYYY-MM-DD`. **Either bound may be omitted (new in 11.1.0)** to mean an OPEN bound, resolving to
40
+ the picker's `min` / `max` respectively — that is how an "All time" preset is expressed. When the
41
+ corresponding `min`/`max` is unset there is nothing to resolve to (a `value` of
42
+ `YYYY-MM-DD/YYYY-MM-DD` has no unbounded spelling), so that preset's button renders **disabled**
43
+ rather than looking live and doing nothing when pressed. Renders a `[part="presets"]` quick-range button row above the calendar, for the
40
44
  dashboard time-filter shape (Today / Last 7 days / Last 30 days / This month / All time).
41
45
  **Range mode only** — a preset names two dates, so it is ignored for a single-date picker rather
42
46
  than rendering a row that cannot do anything; unset renders nothing at all. Applying one commits
@@ -47,6 +51,16 @@ Inline month-grid calendar, not form-associated (used standalone or embedded ins
47
51
  The active button carries `aria-pressed="true"` and `data-active`. Deliberately the same
48
52
  `label`/`start`/`end` shape as `<lr-time-range>`'s `TimeRangePreset`, so the library has one
49
53
  preset vocabulary rather than two — the only difference is the unit (ISO dates, not numbers)
54
+ - `appliedPreset: LyraDateRangePreset | undefined` (read-only, new in 11.1.0) — the preset whose
55
+ button produced the current `value`, or `undefined` when the range was picked by hand. Read it
56
+ inside your own `change`/`input` handler. It exists because a dashboard filter has to persist
57
+ *which* preset is active rather than the pair it froze to: "Last 7 days" must still mean the last
58
+ 7 days after tomorrow's reload. That fact is not recoverable from `value` — re-deriving it by
59
+ string-matching is the mapping table `presets` exists to delete, and it is ambiguous anyway
60
+ (Today and This month coincide on the 1st of a month, and a hand-picked range can equal a
61
+ preset's pair by construction). A property rather than an event detail because `input`/`change`
62
+ here are **native** events, deliberately indistinguishable from a manual selection so existing
63
+ handlers need no special case, and a native `Event` cannot carry a detail without changing type
50
64
  - `disabled: boolean = false` (reflected)
51
65
  - `disabledDates: string | string[] | Date[] = ''` (attribute `disabled-dates`)
52
66
  - `disabledDaysOfWeek: string = ''` (attribute `disabled-days-of-week`)
@@ -214,7 +228,9 @@ capped at 40% and ellipsize unbroken content. Clear and calendar actions retain
214
228
  **Custom states:** `blank`, `disabled`, `open`, and `range`; the shared form-associated mixin also
215
229
  exposes its validity states.
216
230
 
217
- **CSS parts (19):** `clear-button`, `date-input`, `date-picker`, `end`, `expand-button`,
231
+ **CSS parts (21):** `clear-button`, `date-input`, `date-picker`, `presets` and `preset-button`
232
+ (forwarded from the nested `lr-date-picker` via `exportparts`, so the quick-range row is styleable
233
+ from outside — new in 11.1.0), `end`, `expand-button`,
218
234
  `expand-icon`, `form-control`, `form-control-input`, `form-control-label`, `hint`, `input`,
219
235
  `input-wrapper`, `popup`, `range-separator`, `segment`, `segment-literal`, `start`, permanent
220
236
  compatibility name `base` (a nested wrapper inside `date-input`), and permanent compatibility name
@@ -347,7 +363,7 @@ and `dateTimeFormat(locale, options)`.
347
363
  - `--lr-date-picker-nav-active-bg` — Pressed navigation background; defaults to the hover color
348
364
  mixed by `--lr-color-mix-active`.
349
365
  - `--lr-date-picker-preset-hover-bg`, `--lr-date-picker-preset-active-bg`, and
350
- `--lr-date-picker-preset-selected-bg` (new in 10.1.0) — hover, pressed, and
366
+ `--lr-date-picker-preset-selected-bg` (new in 11.0.0) — hover, pressed, and
351
367
  currently-selected paint for a `presets` quick-range button. Defaults are
352
368
  `var(--lr-color-brand-quiet)`, that hover colour mixed by `--lr-color-mix-active`, and
353
369
  `var(--lr-color-brand)` respectively.
@@ -34,9 +34,13 @@ Inline month-grid calendar, not form-associated (used standalone or embedded ins
34
34
  **Properties (28):**
35
35
 
36
36
  - `dayContent` (JS only): `LyraDatePickerDayContent | undefined`
37
- - `presets: LyraDateRangePreset[] = []` (JS only, new in 10.1.0) —
38
- `LyraDateRangePreset { label: string; start: string; end: string }`, where `start`/`end` are ISO
39
- `YYYY-MM-DD`. Renders a `[part="presets"]` quick-range button row above the calendar, for the
37
+ - `presets: LyraDateRangePreset[] = []` (JS only, new in 11.0.0) —
38
+ `LyraDateRangePreset { label: string; start?: string; end?: string }`, where `start`/`end` are ISO
39
+ `YYYY-MM-DD`. **Either bound may be omitted (new in 11.1.0)** to mean an OPEN bound, resolving to
40
+ the picker's `min` / `max` respectively — that is how an "All time" preset is expressed. When the
41
+ corresponding `min`/`max` is unset there is nothing to resolve to (a `value` of
42
+ `YYYY-MM-DD/YYYY-MM-DD` has no unbounded spelling), so that preset's button renders **disabled**
43
+ rather than looking live and doing nothing when pressed. Renders a `[part="presets"]` quick-range button row above the calendar, for the
40
44
  dashboard time-filter shape (Today / Last 7 days / Last 30 days / This month / All time).
41
45
  **Range mode only** — a preset names two dates, so it is ignored for a single-date picker rather
42
46
  than rendering a row that cannot do anything; unset renders nothing at all. Applying one commits
@@ -47,6 +51,16 @@ Inline month-grid calendar, not form-associated (used standalone or embedded ins
47
51
  The active button carries `aria-pressed="true"` and `data-active`. Deliberately the same
48
52
  `label`/`start`/`end` shape as `<lr-time-range>`'s `TimeRangePreset`, so the library has one
49
53
  preset vocabulary rather than two — the only difference is the unit (ISO dates, not numbers)
54
+ - `appliedPreset: LyraDateRangePreset | undefined` (read-only, new in 11.1.0) — the preset whose
55
+ button produced the current `value`, or `undefined` when the range was picked by hand. Read it
56
+ inside your own `change`/`input` handler. It exists because a dashboard filter has to persist
57
+ *which* preset is active rather than the pair it froze to: "Last 7 days" must still mean the last
58
+ 7 days after tomorrow's reload. That fact is not recoverable from `value` — re-deriving it by
59
+ string-matching is the mapping table `presets` exists to delete, and it is ambiguous anyway
60
+ (Today and This month coincide on the 1st of a month, and a hand-picked range can equal a
61
+ preset's pair by construction). A property rather than an event detail because `input`/`change`
62
+ here are **native** events, deliberately indistinguishable from a manual selection so existing
63
+ handlers need no special case, and a native `Event` cannot carry a detail without changing type
50
64
  - `disabled: boolean = false` (reflected)
51
65
  - `disabledDates: string | string[] | Date[] = ''` (attribute `disabled-dates`)
52
66
  - `disabledDaysOfWeek: string = ''` (attribute `disabled-days-of-week`)
@@ -214,7 +228,9 @@ capped at 40% and ellipsize unbroken content. Clear and calendar actions retain
214
228
  **Custom states:** `blank`, `disabled`, `open`, and `range`; the shared form-associated mixin also
215
229
  exposes its validity states.
216
230
 
217
- **CSS parts (19):** `clear-button`, `date-input`, `date-picker`, `end`, `expand-button`,
231
+ **CSS parts (21):** `clear-button`, `date-input`, `date-picker`, `presets` and `preset-button`
232
+ (forwarded from the nested `lr-date-picker` via `exportparts`, so the quick-range row is styleable
233
+ from outside — new in 11.1.0), `end`, `expand-button`,
218
234
  `expand-icon`, `form-control`, `form-control-input`, `form-control-label`, `hint`, `input`,
219
235
  `input-wrapper`, `popup`, `range-separator`, `segment`, `segment-literal`, `start`, permanent
220
236
  compatibility name `base` (a nested wrapper inside `date-input`), and permanent compatibility name
@@ -347,7 +363,7 @@ and `dateTimeFormat(locale, options)`.
347
363
  - `--lr-date-picker-nav-active-bg` — Pressed navigation background; defaults to the hover color
348
364
  mixed by `--lr-color-mix-active`.
349
365
  - `--lr-date-picker-preset-hover-bg`, `--lr-date-picker-preset-active-bg`, and
350
- `--lr-date-picker-preset-selected-bg` (new in 10.1.0) — hover, pressed, and
366
+ `--lr-date-picker-preset-selected-bg` (new in 11.0.0) — hover, pressed, and
351
367
  currently-selected paint for a `presets` quick-range button. Defaults are
352
368
  `var(--lr-color-brand-quiet)`, that hover colour mixed by `--lr-color-mix-active`, and
353
369
  `var(--lr-color-brand)` respectively.
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.1.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 9 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/agent-tools/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `9.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom`, `dompurify`, `katex`, `marked`, `shiki` — see `llms/peers.md`
10
+ - **Optional peers** `dompurify`, `katex`, `marked`, `shiki` — see `llms/peers.md`
11
11
  - **Themeable via** 24 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.1.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 16 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -79,7 +79,7 @@ weekdayLabelText?: (jsWeekday:number)=>string|undefined; monthLabelText?:
79
79
  A malformed value is ignored rather than collapsing the gutter. Calendar mode is unaffected; it
80
80
  has its own fixed weekday gutter
81
81
  - `colLabelHeight?: number | 'auto'` (attribute `col-label-height`, not reflected, `'auto'` new in
82
- 10.1.0) — height, in CSS px, of the matrix column-label band, or `'auto'` to measure the labels
82
+ 11.0.0) — height, in CSS px, of the matrix column-label band, or `'auto'` to measure the labels
83
83
  and size the band to fit them. Under a non-zero `colLabelRotation` the measurement projects each
84
84
  label's width through the rotation, which is what makes a rotated axis usable without hand-tuning
85
85
  a magic number. Never below the built-in `20`, and bounded above by a sanity ceiling so a
@@ -88,7 +88,7 @@ weekdayLabelText?: (jsWeekday:number)=>string|undefined; monthLabelText?:
88
88
  be bounded relative to them, whereas the canvas simply grows taller for this band and the cells
89
89
  keep their size. Unset keeps the built-in `20`, so no existing chart reflows. A malformed value is
90
90
  ignored
91
- - `colLabelRotation?: number` (attribute `col-label-rotation`, new in 10.1.0) — rotation, in
91
+ - `colLabelRotation?: number` (attribute `col-label-rotation`, new in 11.0.0) — rotation, in
92
92
  degrees, applied to matrix column labels. Unset or `0` paints them horizontally exactly as before.
93
93
  In a dense matrix the per-column width is far narrower than a typical label, so horizontal labels
94
94
  collide with their neighbours; `45` or `90` is the standard remedy. Each label rotates about an
@@ -7,8 +7,8 @@
7
7
  - **Family** `components/charts/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
11
- - **Themeable via** 17 parts, 16 custom properties — see this component's own `@csspart`/`@cssprop` list below
10
+ - **Optional peers** none
11
+ - **Themeable via** 18 parts, 18 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
14
14
  ---
@@ -62,6 +62,21 @@ passthrough). Not a subclass of `LyraChart`.
62
62
  - `tableTotals: boolean = false` (attribute `table-totals`) — adds a localized total column to the
63
63
  multi-series accessible table when `type="bar"` and `stacked` are both active. Ignored for
64
64
  grouped bars, line charts, and the single-series `data-list`.
65
+ - `showDataTable: boolean = false` (attribute `show-data-table`, new in 11.1.0) — makes the
66
+ generated accessible table visible rather than screen-reader-only. Same meaning as `lr-chart`'s
67
+ property of the same name.
68
+ - `dataTableToggle: boolean = false` (attribute `data-table-toggle`, new in 11.1.0) — renders a
69
+ localized disclosure button (`part="data-table-toggle"`, with `aria-expanded` and
70
+ `aria-controls`) above the table, so a *sighted* reader can reveal the numbers on demand;
71
+ `showDataTable` then becomes the disclosure's **initial** state rather than its whole behavior.
72
+ The table stays in the DOM in both states, so assistive technology never loses it. This matters
73
+ more here than on `lr-chart`: this component exists to avoid the Chart.js peers, so without it an
74
+ app that chose it for exactly that reason had to either hand-roll a `<details>` around a
75
+ duplicated table or adopt `lr-chart` and pull in Chart.js for a button — the cheap component
76
+ stuck with the expensive workaround. Unset, nothing renders and behavior is unchanged.
77
+ Themeable via `--lr-lite-chart-data-table-toggle-hover-bg` (default
78
+ `var(--lr-color-brand-quiet)`) and `--lr-lite-chart-data-table-toggle-active-bg` (default: that
79
+ hover colour mixed by `--lr-color-mix-active`).
65
80
  - `layout: 'fit' | 'scroll' = 'fit'` (reflected) — `'fit'` (default) is the original squeeze-the-
66
81
  whole-plot-to-host-width behavior, unchanged. `'scroll'` gives bars a fixed `barWidth` instead: plot
67
82
  content width becomes `categoryCount * barWidth` (can exceed the host's measured width), and
@@ -168,7 +183,8 @@ data alternative.
168
183
  mark), `line`, `legend`, `legend-item`, `legend-swatch`, `legend-text` (extra per-item text after
169
184
  the series label, rendered only when `legendText` is set), `live-region` (the current mark
170
185
  announcement for keyboard users), `data-list` (a visually hidden sampled list of plotted data
171
- points — single-series only), `data-table` (the generated/slotted alternative container), `table`
186
+ points — single-series only), `data-table` (the generated/slotted alternative container),
187
+ `data-table-toggle` (the `dataTableToggle` disclosure button — new in 11.1.0), `table`
172
188
  (the generated semantic category×series table rendered when there is more than one dataset), and
173
189
  `data-truncation` (the
174
190
  visible/announced sampling notice).
@@ -72,7 +72,7 @@ string; geojson: GeoJSON.FeatureCollection; field: string; stops: [number, strin
72
72
  the documented way to weight a ramp toward the low end). **`stops` stay in the data's own units
73
73
  under either mode**, so the legend keeps reading in real values instead of log units — no
74
74
  pre-transforming to log10 and hand-relabelling the legend back.
75
- `'step'` (new in 10.1.0) emits maplibre's `['step', …]` instead of `['interpolate', …]`, giving
75
+ `'step'` (new in 11.0.0) emits maplibre's `['step', …]` instead of `['interpolate', …]`, giving
76
76
  **discrete bands rather than a continuous ramp**. Use it whenever the legend advertises a fixed
77
77
  set of ranges with one swatch each: a ramp would put colours on the map that appear nowhere in the
78
78
  legend, and would render two regions in the same advertised band as visibly different colours
@@ -105,7 +105,7 @@ GeoJSON.FeatureCollection; tone?: 'accent' | 'success' | 'warning' |
105
105
  GeoJSON source plus three geometry-filtered layers
106
106
  (fill, line, and circle, so a mixed `FeatureCollection` renders correctly), colored from the
107
107
  matching `--lr-color-*` token (`tone` defaults to `'accent'` → `--lr-color-brand`).
108
- `color` and `strokeColor` (both new in 10.1.0) override that per surface — `color` paints the
108
+ `color` and `strokeColor` (both new in 11.0.0) override that per surface — `color` paints the
109
109
  polygon fill, `strokeColor` the line and circle layers, falling back to `color` and then to `tone`.
110
110
  They are separable because a fill and its outline want opposite things on a
111
111
  choropleth-plus-overlay map, and the difference is measurable rather than aesthetic: the fill
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.1.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 18 parts, 3 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -24,7 +24,7 @@ An `lr-option` row remains bounded by its owning listbox: the default label elli
24
24
  `start`/`end` (or `prefix`/`suffix`) adornment is capped at 40% of the row. Unbroken metadata
25
25
  therefore cannot widen a 320px LTR or RTL picker.
26
26
 
27
- **Adornments in the popup (fixed in 10.1.0).** Before 10.1.0 this paragraph described behavior the
27
+ **Adornments in the popup (fixed in 11.0.0).** Before 11.0.0 this paragraph described behavior the
28
28
  code did not have: `lr-combobox` builds its popup from normalized row *data* rather than from the
29
29
  light-DOM nodes, so a slotted `start`/`end`/`prefix`/`suffix` adornment had nowhere to land and
30
30
  simply never rendered — the documented slots and their documented parts were both dead inside the
@@ -111,7 +111,7 @@ An async `source` row can carry the same two fields (`start`, `end`) alongside i
111
111
  - `maxOptionsVisible: number = 3` (attribute `max-options-visible` — caps how many selected **tags**
112
112
  show before collapsing to `+N`; nothing to do with the suggestion list, see the three-caps note
113
113
  below)
114
- - `visibleOptions?: number` (attribute `visible-options`, new in 10.1.0) — bounds the popup to about
114
+ - `visibleOptions?: number` (attribute `visible-options`, new in 11.0.0) — bounds the popup to about
115
115
  this many suggestion rows, leaving the rest reachable by scrolling. Purely presentational: every
116
116
  row is still rendered. Measured from where row N actually starts rather than computed from a
117
117
  token, because a row's height varies with `sub` lines, adornments and group labels. Unset imposes
@@ -188,7 +188,7 @@ alias. Set the boolean `autocorrect` IDL, or use `autocorrect="on"` / `autocorre
188
188
  `ComboboxSourceRow = { readonly value: string; readonly label: string; readonly sub?: string; readonly icon?: unknown; readonly start?: unknown;
189
189
  readonly end?: unknown; readonly badge?: string |
190
190
  number; accessibleLabel?: string; data?: unknown; dotColor?: string; group?: string; disabled?:
191
- boolean }` — the row shape used by the async `source` path. `start` and `end` (new in 10.1.0) are
191
+ boolean }` — the row shape used by the async `source` path. `start` and `end` (new in 11.0.0) are
192
192
  the async counterparts of `<lr-option>`'s `start`/`end` adornment slots and render as the
193
193
  `option-start` / `option-end` parts, inert and aria-hidden exactly like `icon`. `icon` renders as a decorative leading
194
194
  visual whose rendered subtree stays visible but is inert and hidden from assistive technology;
@@ -51,7 +51,7 @@ A click-triggered, light-dismiss floating surface positioned with the shared Flo
51
51
  - `accessibleLabel: string = ''` (attribute **`aria-label`**) — names the popup. An authored host
52
52
  attribute wins by presence, including `aria-label=""`; only when it is absent does the property
53
53
  or localized "Popover" ("Menu" when `popupRole` is `menu`) fallback apply
54
- - `popupRole: 'dialog'|'menu'|'none' = 'dialog'` (attribute `popup-role`). `none` (new in 10.1.0)
54
+ - `popupRole: 'dialog'|'menu'|'none' = 'dialog'` (attribute `popup-role`). `none` (new in 11.0.0)
55
55
  renders **no** `role` and no generated `aria-label` on the popup surface, and leaves
56
56
  `aria-haspopup` off the trigger, so slotted content owns its own semantics and accessible name.
57
57
  It exists for the WAI-ARIA **disclosure navigation** pattern: a flyout of links is not an
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 7 parts, 1 custom property — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `6.2.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom`, `dompurify`, `katex`, `marked`, `shiki` — see `llms/peers.md`
10
+ - **Optional peers** `dompurify`, `katex`, `marked`, `shiki` — see `llms/peers.md`
11
11
  - **Themeable via** 11 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `7.0.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `chart.js`, `chartjs-plugin-annotation`, `chartjs-plugin-datalabels`, `chartjs-plugin-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 13 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.1.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 29 parts, 1 custom property — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
@@ -7,7 +7,7 @@
7
7
  - **Family** `components/retrieval/` — see `llms/index.md` for its siblings
8
8
  - **Status** `stable` since `4.1.0` — see the maturity and deprecation policy in `llms/shared.md`
9
9
  - **Deprecations** none
10
- - **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom` — see `llms/peers.md`
10
+ - **Optional peers** none
11
11
  - **Themeable via** 13 parts, 1 custom property — see this component's own `@csspart`/`@cssprop` list below
12
12
  - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
13
13
 
package/llms/peers.md CHANGED
@@ -40,14 +40,14 @@ for the page.
40
40
  | `@aceshooting/lyra-flags` | `workspace:^2.0.0` | `lr-flag`, `lr-locale-picker`, `lr-phone-input` |
41
41
  | `@aiden0z/pptx-renderer` | `^1.2.4` | `lr-pptx-viewer` |
42
42
  | `@sgratzl/chartjs-chart-boxplot` | `^4.4.5` | `lr-box-plot` |
43
- | `chart.js` | `^4.5.1` | `lr-agent-eval-dashboard`, `lr-bar-chart`, `lr-box-plot`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-lite-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-rag-eval-dashboard`, `lr-scatter-chart` |
44
- | `chartjs-plugin-annotation` | `^3.1.0` | `lr-agent-eval-dashboard`, `lr-bar-chart`, `lr-box-plot`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-lite-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-rag-eval-dashboard`, `lr-scatter-chart` |
45
- | `chartjs-plugin-datalabels` | `^2.2.0` | `lr-agent-eval-dashboard`, `lr-bar-chart`, `lr-box-plot`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-lite-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-rag-eval-dashboard`, `lr-scatter-chart` |
46
- | `chartjs-plugin-zoom` | `^2.2.0` | `lr-agent-eval-dashboard`, `lr-bar-chart`, `lr-box-plot`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-lite-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-rag-eval-dashboard`, `lr-scatter-chart` |
47
- | `d3-drag` | `^3.0.0` | `lr-agent-workspace`, `lr-chunk-inspector`, `lr-entity-dossier`, `lr-eval-run`, `lr-graph`, `lr-grounding-summary`, `lr-knowledge-graph-explorer`, `lr-memory-panel`, `lr-provenance-panel`, `lr-rag-answer`, `lr-retrieval-results`, `lr-retrieval-trace` |
48
- | `d3-force` | `^3.0.0` | `lr-agent-workspace`, `lr-chunk-inspector`, `lr-entity-dossier`, `lr-eval-run`, `lr-graph`, `lr-grounding-summary`, `lr-knowledge-graph-explorer`, `lr-memory-panel`, `lr-provenance-panel`, `lr-rag-answer`, `lr-retrieval-results`, `lr-retrieval-trace` |
49
- | `d3-selection` | `^3.0.0` | `lr-agent-workspace`, `lr-chunk-inspector`, `lr-entity-dossier`, `lr-eval-run`, `lr-graph`, `lr-grounding-summary`, `lr-knowledge-graph-explorer`, `lr-memory-panel`, `lr-provenance-panel`, `lr-rag-answer`, `lr-retrieval-results`, `lr-retrieval-trace` |
50
- | `d3-zoom` | `^3.0.0` | `lr-agent-workspace`, `lr-chunk-inspector`, `lr-entity-dossier`, `lr-eval-run`, `lr-graph`, `lr-grounding-summary`, `lr-knowledge-graph-explorer`, `lr-memory-panel`, `lr-provenance-panel`, `lr-rag-answer`, `lr-retrieval-results`, `lr-retrieval-trace` |
43
+ | `chart.js` | `^4.5.1` | `lr-bar-chart`, `lr-box-plot`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-scatter-chart` |
44
+ | `chartjs-plugin-annotation` | `^3.1.0` | `lr-bar-chart`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-scatter-chart` |
45
+ | `chartjs-plugin-datalabels` | `^2.2.0` | `lr-bar-chart`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-scatter-chart` |
46
+ | `chartjs-plugin-zoom` | `^2.2.0` | `lr-bar-chart`, `lr-bubble-chart`, `lr-chart`, `lr-doughnut-chart`, `lr-histogram`, `lr-line-chart`, `lr-pie-chart`, `lr-polar-area-chart`, `lr-radar-chart`, `lr-scatter-chart` |
47
+ | `d3-drag` | `^3.0.0` | `lr-graph`, `lr-knowledge-graph-explorer` |
48
+ | `d3-force` | `^3.0.0` | `lr-graph`, `lr-knowledge-graph-explorer` |
49
+ | `d3-selection` | `^3.0.0` | `lr-graph`, `lr-knowledge-graph-explorer` |
50
+ | `d3-zoom` | `^3.0.0` | `lr-graph`, `lr-knowledge-graph-explorer` |
51
51
  | `dompurify` | `^3.4.13` | `lr-agent-workspace`, `lr-command-palette`, `lr-condition-builder`, `lr-dashboard-grid`, `lr-docx-viewer`, `lr-email-viewer`, `lr-eval-run`, `lr-html-viewer`, `lr-icon`, `lr-icon-button`, `lr-include`, `lr-markdown`, `lr-markdown-core`, `lr-message-parts`, `lr-notebook-viewer`, `lr-rag-answer`, `lr-streaming-text`, `lr-svg-viewer`, `lr-video`, `lr-video-playlist`, `lr-widget-renderer` |
52
52
  | `emoji-picker-element-data` | `^1.8.0` | `lr-emoji-picker` |
53
53
  | `epubjs` | `^0.3.93` | `lr-ebook-viewer` |
package/llms/tokens.md CHANGED
@@ -17,6 +17,18 @@ For a ready-made light/dark base, import `@aceshooting/lyra-ui/theme.css` once a
17
17
  Per-component `--lr-<component>-*` custom properties (listed in each component's own section)
18
18
  override a single element without touching the shared layer.
19
19
 
20
+ **Consumer-scope exception: the focus ring.** `--lr-focus-ring` and its three parts
21
+ (`-width`/`-color`/`-offset`) are the one layer-2 group `theme.css` also declares at document
22
+ scope, on `:root` and on both mode selectors. They exist to serve a CONSUMER-authored idiom —
23
+ the Web Awesome `outline: var(--wa-focus-ring)` that migrating projects already have — and that
24
+ rule is written against the consumer's own element, where a `:host`-only token resolves to
25
+ nothing. An empty `var()` makes the whole `outline` declaration invalid at computed-value time,
26
+ and because `outline` does not inherit, the ring did not degrade: it DISAPPEARED, silently, with
27
+ no console warning. So `outline: var(--lr-focus-ring); outline-offset:
28
+ var(--lr-focus-ring-offset);` now works wherever you write it, provided `theme.css` is imported.
29
+ Every component still re-derives all four on its own `:host`, so component rendering is
30
+ unchanged.
31
+
20
32
  > **Why layer 1 is not merely *preferred* but *required*: an ancestor `--lr-*` override does
21
33
  > not survive a nested component boundary.** Every component re-derives the whole `--lr-*` layer
22
34
  > from `--lr-theme-*` on its **own** `:host` (that is what `LyraElement`'s shared token