@aceshooting/lyra-ui 25.3.0 → 25.4.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.
- package/CHANGELOG.md +28 -0
- package/custom-elements.json +1 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.styles.js +1 -1
- package/dist/components/charts/chart/chart-sync.d.ts +4 -0
- package/dist/components/charts/chart/chart-sync.js +1 -0
- package/dist/components/charts/chart/chart-sync.styles.d.ts +1 -0
- package/dist/components/charts/chart/chart-sync.styles.js +1 -0
- package/dist/components/charts/chart/chart.class.d.ts +12 -2
- package/dist/components/charts/chart/chart.class.js +5 -4
- package/dist/components/charts/chart/histogram.class.js +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +18 -5
- package/dist/components/charts/chart/lite-chart.class.js +11 -11
- package/dist/components/data/heatmap/heatmap-grid-navigation.d.ts +2 -2
- package/dist/components/data/heatmap/heatmap-grid-navigation.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +24 -9
- package/dist/components/data/heatmap/heatmap.class.js +3 -3
- package/dist/components/forms/button/button.styles.js +1 -1
- package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +1 -1
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/card/card.styles.js +1 -1
- package/dist/components/layout/details/accordion-item.styles.js +1 -1
- package/dist/components/layout/details/details.styles.js +1 -1
- package/dist/components/layout/menu/menu.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-item.class.js +2 -0
- package/dist/components/media/avatar/avatar.class.d.ts +3 -0
- package/dist/components/media/avatar/avatar.styles.js +1 -1
- package/dist/components/media/pan-zoom/pan-zoom.styles.js +1 -1
- package/dist/framework-types.d.ts +1 -1
- package/dist/internal/glass-surface.styles.js +1 -1
- package/dist/internal/opaque-content-border.styles.d.ts +3 -0
- package/dist/internal/opaque-content-border.styles.js +1 -0
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/tokens.styles.js +1 -1
- package/dist/surfaces/glass.css +1 -1
- package/dist/theme.css +1 -1
- package/llms/components/lr-avatar.md +9 -3
- package/llms/components/lr-bar-chart.md +1 -1
- package/llms/components/lr-bubble-chart.md +1 -1
- package/llms/components/lr-chart.md +11 -2
- package/llms/components/lr-doughnut-chart.md +1 -1
- package/llms/components/lr-heatmap.md +16 -3
- package/llms/components/lr-histogram.md +9 -1
- package/llms/components/lr-line-chart.md +11 -1
- package/llms/components/lr-lite-chart.md +14 -4
- package/llms/components/lr-locale-picker.md +5 -5
- package/llms/components/lr-menu.md +4 -0
- package/llms/components/lr-pie-chart.md +1 -1
- package/llms/components/lr-polar-area-chart.md +1 -1
- package/llms/components/lr-radar-chart.md +1 -1
- package/llms/components/lr-reorder-list.md +5 -0
- package/llms/components/lr-scatter-chart.md +1 -1
- package/llms/peers.md +2 -2
- package/llms/shared/styles-and-tokens.md +31 -14
- package/llms/shared.md +31 -14
- package/llms/tokens.md +7 -4
- package/package.json +5 -5
- package/vscode-css-data.json +1 -1
- package/vscode-html-data.json +1 -1
- package/web-types.json +1 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [media](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/media.md)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via** 4 parts,
|
|
12
|
+
- **Themeable via** 4 parts, 7 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -88,9 +88,14 @@ initials track the circle instead of staying one fixed size across every tier. `
|
|
|
88
88
|
(default `var(--lr-radius-pill)`) — corner radius of the container. Its private default follows
|
|
89
89
|
`shape` (`var(--lr-radius-pill)` for `circle`, `var(--lr-radius)` for `rounded`, `0` for `square`);
|
|
90
90
|
an inherited or direct public value overrides uniformly across every shape, the same way
|
|
91
|
-
`--lr-avatar-size` spans every size tier.
|
|
91
|
+
`--lr-avatar-size` spans every size tier. `--lr-avatar-border` (default `none`) — border shorthand
|
|
92
|
+
on `base`, applying to image, glyph and initials avatars in every shape. Border-box sizing keeps
|
|
93
|
+
the border inside the outer diameter set by `--size`, `--lr-avatar-size` or the size ladder;
|
|
94
|
+
image content fills the remaining inner area. Forced colors preserves the system-color boundary
|
|
95
|
+
instead of the normal token border. Existing `::part(base)` border customization remains supported.
|
|
96
|
+
Every public value
|
|
92
97
|
above can be inherited from an ancestor or set directly on the avatar and remains authoritative
|
|
93
|
-
across size/variant states. Plus shared tokens
|
|
98
|
+
across size/variant states in normal color modes. Plus shared tokens
|
|
94
99
|
`--lr-radius`/`-pill`, `--lr-font-weight-semibold`.
|
|
95
100
|
|
|
96
101
|
The variant colors are deliberately **not** the library's generic quiet-fill/on-quiet-text pairing:
|
|
@@ -103,6 +108,7 @@ variant's quiet tint.
|
|
|
103
108
|
<lr-avatar initials="JS" variant="brand"></lr-avatar>
|
|
104
109
|
<lr-avatar image="/users/42/photo.jpg" label="Jane Smith" size="large" shape="rounded"></lr-avatar>
|
|
105
110
|
<lr-avatar label="Assistant"><svg slot="icon" viewBox="0 0 24 24"><!-- role glyph --></svg></lr-avatar>
|
|
111
|
+
<lr-avatar initials="JS" style="--lr-avatar-border: var(--lr-border-width-medium) solid var(--lr-color-border)"></lr-avatar>
|
|
106
112
|
|
|
107
113
|
<!-- Far down a long list: defer the request, fall back to a glyph, and report a broken URL. -->
|
|
108
114
|
<lr-avatar id="lazy-avatar" image="/users/7/photo.jpg" label="Ada Lovelace" loading="lazy">
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see `lr-line-chart.md`
|
|
13
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`
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see `lr-line-chart.md`
|
|
13
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`
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -233,6 +233,10 @@ structured points retain their y-value formatting.
|
|
|
233
233
|
value, matching Chart.js's own paired index/value-scale stacking contract.
|
|
234
234
|
- `withoutAnimation: boolean = false` (attribute `without-animation`, reflected) — disables Chart.js
|
|
235
235
|
construction animation; reduced-motion preference also disables it regardless of this value
|
|
236
|
+
- `syncGroup: string = ''` (attribute `sync-group`) — opt-in exact category coordination; see
|
|
237
|
+
[Synchronized categorical charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md#synchronized-categorical-charts). Only effective vertical
|
|
238
|
+
categorical bar/line configurations participate; other types, horizontal charts and continuous
|
|
239
|
+
x scales keep this setting inert. Core keeps its native canvas tooltip and existing tooltip tokens.
|
|
236
240
|
- `withoutTooltip: boolean = false` (attribute `without-tooltip`, reflected) — disables the
|
|
237
241
|
Chart.js tooltip plugin for this instance
|
|
238
242
|
- `dataLabels: boolean = false` (attribute `data-labels`) — draws each point's value on the chart via
|
|
@@ -432,7 +436,9 @@ notice, so use that escape hatch when the complete data set needs pagination, vi
|
|
|
432
436
|
another application-owned presentation. Explicit `config.data` is the deliberate full-fidelity
|
|
433
437
|
Chart.js escape hatch and is not rewritten by the simplified-surface sampler.
|
|
434
438
|
|
|
435
|
-
**CSS parts:** `base`, `plot` (the fixed-height canvas/overlay region), `canvas`,
|
|
439
|
+
**CSS parts:** `base`, `plot` (the fixed-height canvas/overlay region), `canvas`,
|
|
440
|
+
`sync-crosshair` (decorative category line during an admitted synchronized interaction; the native
|
|
441
|
+
canvas tooltip has no CSS part), `legend` (the
|
|
436
442
|
wrapping DOM legend), `legend-item` (a dataset/category visibility button), `legend-item-hidden`
|
|
437
443
|
(added while the dataset/category is hidden), `legend-swatch`,
|
|
438
444
|
`reset-zoom-button`, `description`, `notices` (wrapper for nonfatal feature warnings and
|
|
@@ -448,6 +454,9 @@ legend grows the host in normal flow. The `height` property writes only a privat
|
|
|
448
454
|
public token wins across valid, invalid, and unset `height` updates. Set it on the host or an
|
|
449
455
|
ancestor, not a shadow-tree descendant, since custom properties only cascade downward);
|
|
450
456
|
`--lr-chart-grid-color` (default `var(--lr-color-border-subtle)`),
|
|
457
|
+
`--lr-chart-sync-crosshair-color` (default `var(--lr-color-text)`) and
|
|
458
|
+
`--lr-chart-sync-crosshair-width` (default `var(--lr-border-width-thin)`) style the synchronized
|
|
459
|
+
category line;
|
|
451
460
|
`--lr-chart-tick-color` (default `var(--lr-color-text-quiet)`), `--lr-chart-legend-color`
|
|
452
461
|
(default `var(--lr-color-text)`), `--lr-chart-tooltip-bg` (default `var(--lr-color-surface)`),
|
|
453
462
|
`--lr-chart-tooltip-color` (default `var(--lr-color-text)`) — each resolved fresh via
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see `lr-line-chart.md`
|
|
13
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`
|
|
@@ -83,9 +83,17 @@ weekdayLabelWidth?: number|'auto'; weekdayLabelText?: (jsWeekday:number)=>string
|
|
|
83
83
|
- `cellSize: number = 22` (attribute `cell-size` — default `22` in matrix mode, `11` in calendar
|
|
84
84
|
mode when left unset; explicitly setting it now governs both modes' per-cell size alike, and it's
|
|
85
85
|
ignored in either mode when `fitToWidth` is set)
|
|
86
|
+
- `rowHeight?: number` (attribute `row-height`) — independent matrix vertical row pitch in CSS
|
|
87
|
+
pixels, including its trailing `cellGapY` separator. Unset, removed, `null`, `undefined`, and
|
|
88
|
+
non-finite values restore square rows from the effective `cellSize`; finite values
|
|
89
|
+
clamp to the `1`–`4096` range. This bounds numeric outliers; browser canvas limits still apply
|
|
90
|
+
to the complete grid. `fitToWidth`, `minCellSize`, and `maxCellSize` continue to govern column pitch.
|
|
91
|
+
Calendar mode ignores it and preserves its existing square geometry. With `accessibleCells`,
|
|
92
|
+
width and height independently preserve the accessible target floor; dense columns can therefore
|
|
93
|
+
overflow even when fitting is requested.
|
|
86
94
|
- `cellGapX: number = 1` / `cellGapY: number = 1` (attributes `cell-gap-x` / `cell-gap-y`) —
|
|
87
95
|
trailing horizontal/vertical gaps in CSS pixels. In matrix mode they are subtracted from the
|
|
88
|
-
|
|
96
|
+
horizontal `cellSize` / vertical `rowHeight ?? cellSize` pitch. Negative values clamp to zero, non-finite values use `1`, and oversized
|
|
89
97
|
gaps leave at least one painted pixel. Custom geometry with `accessibleCells` grows the minimum
|
|
90
98
|
pitch and caps gaps to preserve the `--lr-icon-button-size` target floor. In calendar mode they
|
|
91
99
|
are opt-in: only an explicitly set property or attribute replaces the calendar's original `2px`
|
|
@@ -374,10 +382,11 @@ otherwise keep private. For the case that motivated it — a frozen header or gu
|
|
|
374
382
|
matrix — prefer `stickyLabels`, which freezes the band inside the component and needs no mirror at
|
|
375
383
|
all; the getter remains the way to align a *separate* element (a sibling chart, a custom overlay)
|
|
376
384
|
with the grid. `LyraHeatmapMatrixGeometryChangeDetail` contains `padLeft`, `padTop`, and `cellSize`
|
|
377
|
-
(the
|
|
385
|
+
(the horizontal pitch), plus optional `rowHeight` when vertical pitch differs and optional
|
|
386
|
+
`cellWidth`, `cellHeight`, and `cellRadius` for custom matrix
|
|
378
387
|
presentation. When those optional fields are absent, painted width/height are `cellSize - 1` and
|
|
379
388
|
radius is zero. The getter and geometry-change event always share one frozen snapshot, including
|
|
380
|
-
changes to the resolved gaps
|
|
389
|
+
changes to the resolved row pitch, gaps, and radius. Use `rowHeight ?? cellSize` to position rows.
|
|
381
390
|
|
|
382
391
|
`calendarGeometry: Readonly<LyraHeatmapCalendarGeometry> | undefined` (read-only; assignment is
|
|
383
392
|
ignored) is the calendar-mode counterpart: the frozen snapshot of the last calendar draw with
|
|
@@ -394,6 +403,10 @@ selection, `lr-cell-activate`, and `cellText` keep working with no matrix rebuil
|
|
|
394
403
|
|
|
395
404
|
For a fluid day/hour matrix, keep all 24 hour strings in `data.colLabels` and use
|
|
396
405
|
`fit-to-width cell-gap-x="1" cell-gap-y="2" cell-radius="2" col-label-interval="3"`.
|
|
406
|
+
For a dense matrix with 144 time columns and 20 rows, use `fit-to-width row-height="28"` to fit
|
|
407
|
+
columns while keeping readable rows. Row height includes the trailing separator and stays `28px`
|
|
408
|
+
when the host resizes. The existing `minCellSize` floor and accessible target sizes can require
|
|
409
|
+
horizontal overflow in a narrow allocation; choose `sticky-labels` when you want a scrollport.
|
|
397
410
|
For a single fluid square cell, use `fit-to-width` with equal horizontal and vertical gaps.
|
|
398
411
|
|
|
399
412
|
**Events:** `lr-selection-change` (not cancelable; frozen readonly `HeatmapSelectionChangeDetail { selectedCells, source }` proposal in multiple mode, with `source: 'pointer' | 'keyboard' | 'row' | 'column'`; accept it by assigning `selectedCells`). `lr-cell-activate` (fired on click, or Enter/Space on the keyboard-focused cell —
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -28,6 +28,11 @@ Bins `values` into `bins` equal-width buckets and renders as a bar chart (extend
|
|
|
28
28
|
chart-wide accessible-name meaning.
|
|
29
29
|
- inherits `lr-chart`'s full surface, including `scaleType` (`scale-type`) and `annotations` —
|
|
30
30
|
a logarithmic frequency axis and threshold/band markers both apply to a histogram
|
|
31
|
+
- `syncGroup: string = ''` (attribute `sync-group`) — inherited exact category coordination for its
|
|
32
|
+
vertical categorical bar configuration; see
|
|
33
|
+
[Synchronized categorical charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md#synchronized-categorical-charts). Matches use the generated
|
|
34
|
+
bucket range strings, so different bin boundaries do not match unless their labels are exactly
|
|
35
|
+
equal. Horizontal or continuous-x raw configurations do not participate.
|
|
31
36
|
- `labels`/`datasets`/`type` are **derived, read-only** (installed as getter/setter pairs on the
|
|
32
37
|
prototype; direct writes are silently ignored) — `labels`/`datasets` are computed from
|
|
33
38
|
`values`/`bins` (memoized per instance, keyed by reference equality on `values` plus the
|
|
@@ -59,12 +64,15 @@ bar controller and dataset legend even with `legend-mode="datum"`.
|
|
|
59
64
|
**Slots:** default JSON configuration script, `data-table`, `center`.
|
|
60
65
|
|
|
61
66
|
**CSS parts:** `base`, `plot`, `canvas`, `legend`, `legend-item`, `legend-item-hidden`, `legend-swatch`,
|
|
67
|
+
`sync-crosshair` (inherited decorative category line during synchronization; the native canvas
|
|
68
|
+
tooltip has no CSS part),
|
|
62
69
|
`reset-zoom-button`, `description`, `notices`, `data-table`, `data-table-toggle`, `data-truncation`, `feature-warning`, `center`, `error` (neutral visible message
|
|
63
70
|
rendered in place of `canvas` when the optional `chart.js` peer dependency fails to load; the
|
|
64
71
|
failure transition is announced through the shared document-level light-DOM assertive sink —
|
|
65
72
|
inherited from `LyraChart`, unaffected by the binning logic).
|
|
66
73
|
|
|
67
74
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
75
|
+
`--lr-chart-sync-crosshair-color`, `--lr-chart-sync-crosshair-width`,
|
|
68
76
|
`--lr-chart-tick-color`, `--lr-chart-tick-font-size`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
69
77
|
`--lr-chart-tooltip-color`, `--lr-chart-legend-item-hover-bg`,
|
|
70
78
|
`--lr-chart-legend-item-active-bg`, `--lr-chart-data-table-button-hover-bg`,
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Documented with** `lr-bar-chart`, `lr-pie-chart`, `lr-doughnut-chart`, `lr-radar-chart`, `lr-polar-area-chart`, `lr-bubble-chart`, `lr-scatter-chart` (same section below)
|
|
14
14
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
15
15
|
|
|
@@ -21,6 +21,13 @@ Each is `LyraChart` with a named default `type` — respectively `line`, `bar`,
|
|
|
21
21
|
`radar`, `polarArea`, `bubble`, `scatter`. In parity with the mirrored tags, `type` remains writable
|
|
22
22
|
and accepts the full `LyraChartType` vocabulary; the tag name is a convenient default, not a lock.
|
|
23
23
|
|
|
24
|
+
`syncGroup: string = ''` (attribute `sync-group`) is inherited. The default vertical categorical
|
|
25
|
+
`lr-line-chart` and `lr-bar-chart` configurations can participate in
|
|
26
|
+
[Synchronized categorical charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md#synchronized-categorical-charts). The other six default chart
|
|
27
|
+
types leave it inert; changing `type` or raw `config` to an admitted vertical categorical bar/line
|
|
28
|
+
configuration enables participation regardless of the tag. Horizontal or continuous-x
|
|
29
|
+
configurations remain outside synchronization.
|
|
30
|
+
|
|
24
31
|
Everything else is inherited verbatim from `lr-chart`; each name below has the same type, default,
|
|
25
32
|
and behavior there. **See `llms/components/lr-chart.md` for the details, code example, and gotchas
|
|
26
33
|
of every entry in these lists.**
|
|
@@ -51,12 +58,15 @@ Radial category legends additionally emit `lr-datum-visibility-change-request` (
|
|
|
51
58
|
**Slots:** default JSON configuration script, `data-table`, `center`.
|
|
52
59
|
|
|
53
60
|
**CSS parts:** `base`, `plot`, `canvas`, `legend`, `legend-item`, `legend-item-hidden`, `legend-swatch`,
|
|
61
|
+
`sync-crosshair` (inherited decorative category line, rendered only for an admitted synchronized
|
|
62
|
+
configuration; the native canvas tooltip has no CSS part),
|
|
54
63
|
`reset-zoom-button`, `description`, `notices`, `data-table`, `data-table-toggle`, `data-truncation`, `feature-warning`, `center`, `error` (neutral visible message
|
|
55
64
|
rendered in place of `canvas` when the optional `chart.js` peer dependency fails to load; the
|
|
56
65
|
failure transition is announced through the shared document-level light-DOM assertive sink — see
|
|
57
66
|
`llms/components/lr-chart.md`).
|
|
58
67
|
|
|
59
68
|
**Themeable custom properties:** `--lr-chart-height`, `--lr-chart-grid-color`,
|
|
69
|
+
`--lr-chart-sync-crosshair-color`, `--lr-chart-sync-crosshair-width`,
|
|
60
70
|
`--lr-chart-tick-color`, `--lr-chart-tick-font-size`, `--lr-chart-legend-color`, `--lr-chart-tooltip-bg`,
|
|
61
71
|
`--lr-chart-tooltip-color`, `--lr-chart-legend-item-hover-bg`,
|
|
62
72
|
`--lr-chart-legend-item-active-bg`, `--lr-chart-data-table-button-hover-bg`,
|
|
@@ -9,17 +9,21 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 20 parts, 23 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
## `lr-lite-chart`
|
|
18
18
|
|
|
19
|
+
`syncGroup: string = ''` (attribute `sync-group`) opts into
|
|
20
|
+
[Synchronized categorical charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md#synchronized-categorical-charts). Its DOM `sync-crosshair` and
|
|
21
|
+
`sync-tooltip` parts use the shared crosshair and tooltip tokens described there.
|
|
22
|
+
|
|
19
23
|
A dependency-free bar/line chart — plain SVG/DOM rendering, zero peer dependencies (unlike
|
|
20
24
|
`lr-chart`, which wraps `chart.js`). For a project whose architecture forbids a charting
|
|
21
25
|
dependency outright: covers grouped/stacked bars, multi-series lines, per-point click, and hover
|
|
22
|
-
tooltips (native SVG `<title
|
|
26
|
+
tooltips (native SVG `<title>` by default, positioned text tooltips in a sync group) — not a full `lr-chart` replacement (no
|
|
23
27
|
zoom/pan, no pie/doughnut/radar/scatter/bubble types, no horizontal/dual-y-axis, no raw-config
|
|
24
28
|
passthrough). Not a subclass of `LyraChart`.
|
|
25
29
|
|
|
@@ -31,7 +35,7 @@ shape to express. A per-series stack-group id would also need the hand-rolled SV
|
|
|
31
35
|
pass (linear/sqrt/log stack compression, `minBarHeight`) to track independent running offsets per
|
|
32
36
|
group instead of one per category, which is a materially larger, higher-risk change than this
|
|
33
37
|
component's existing single-stack model. `tooltipTitleFormatter`/`tooltipFooterFormatter` are
|
|
34
|
-
similarly absent: this component's hover tooltip is a native SVG `<title>` on each mark — one
|
|
38
|
+
similarly absent: this component's default hover tooltip is a native SVG `<title>` on each mark — one
|
|
35
39
|
self-contained string per mark, generated by `pointText` — not a Chart.js-style multi-item tooltip
|
|
36
40
|
with separate title/body/footer regions for several datasets sharing a hovered category, so there
|
|
37
41
|
is no "every item in the tooltip" surface to hook a title or footer formatter onto.
|
|
@@ -275,7 +279,9 @@ instead of materializing an unbounded hidden DOM or SVG tree.
|
|
|
275
279
|
**Slots:** `data-table` — optional consumer-provided complete, paginated, or virtualized accessible
|
|
276
280
|
data alternative.
|
|
277
281
|
|
|
278
|
-
**CSS parts:** `base`, `description`, `grid-line`, `axis-label`, `axis-title`,
|
|
282
|
+
**CSS parts:** `base`, `description`, `grid-line`, `axis-label`, `axis-title`,
|
|
283
|
+
`sync-crosshair` (decorative synchronized category line), `sync-tooltip` (noninteractive positioned
|
|
284
|
+
text tooltip while `syncGroup` is active), `bar` and `point` (each carries
|
|
279
285
|
`data-selected` when its category index is in `selectedIndices`, with explicit pressed state on every
|
|
280
286
|
mark), `line`, `legend`, `legend-item`, `legend-swatch`, `legend-text` (extra per-item text after
|
|
281
287
|
the series label, rendered only when `legendText` is set), `live-region` (the current mark
|
|
@@ -303,6 +309,10 @@ suppresses the generated sample and notice.
|
|
|
303
309
|
|
|
304
310
|
**Themeable custom properties:** `--lr-chart-height` (same public host-level property and precedence
|
|
305
311
|
as `lr-chart`; it always wins over the `height` property's private fallback);
|
|
312
|
+
`--lr-chart-sync-crosshair-color` (default `var(--lr-color-text)`) and
|
|
313
|
+
`--lr-chart-sync-crosshair-width` (default `var(--lr-border-width-thin)`) style the synchronized
|
|
314
|
+
category line; `--lr-chart-tooltip-bg` (default `var(--lr-color-surface)`) and
|
|
315
|
+
`--lr-chart-tooltip-color` (default `var(--lr-color-text)`) style the positioned synchronized tooltip;
|
|
306
316
|
`--lr-chart-grid-color`, `--lr-chart-tick-color`, `--lr-chart-tick-font-size` (default
|
|
307
317
|
`var(--lr-font-size-2xs)`), `--lr-chart-legend-color` — same token
|
|
308
318
|
*names* as `lr-chart`, so a host already theming `lr-chart` themes this for free;
|
|
@@ -222,11 +222,11 @@ A compact header can set `trigger-display="flag"` and
|
|
|
222
222
|
Import `@aceshooting/lyra-ui/components/media/flag/flag-peer.js` to register the optional flag
|
|
223
223
|
resolver. Menu labels stay visible; a per-entry `country` override also reaches the compact trigger.
|
|
224
224
|
|
|
225
|
-
Option rows keep at least
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
225
|
+
Option rows keep at least `--lr-size-3rem` (normally `3rem`, or 48px at a 16px root size),
|
|
226
|
+
including `option-display="label"`, compact density, and a small flag trigger. Block padding is
|
|
227
|
+
`--lr-space-s`; long native labels wrap and rows grow with the text. Larger medium/current control
|
|
228
|
+
height tokens and the optional tag line can also grow rows beyond that floor. The listbox keeps
|
|
229
|
+
its scrolling height limit; `size` controls the trigger rather than shrinking language choices.
|
|
230
230
|
|
|
231
231
|
```html
|
|
232
232
|
<lr-locale-picker label="Language"></lr-locale-picker>
|
|
@@ -265,6 +265,10 @@ has `aria-haspopup="menu"`, explicit `aria-expanded="true|false"`, the transient
|
|
|
265
265
|
`submenu-open` state, and a logical-direction chevron. Its submenu is named from the parent's
|
|
266
266
|
accessible label unless the submenu supplies its own `aria-label` or non-default `label`.
|
|
267
267
|
|
|
268
|
+
Submenus prefer the inline end of their parent and flip to the other side when necessary. When
|
|
269
|
+
neither side has enough space, they can open above or below the parent, keeping their labels
|
|
270
|
+
readable within the viewport instead of shrinking to the remaining strip beside a wide menu.
|
|
271
|
+
|
|
268
272
|
The into-branch and back-out arrow keys swap under RTL. Enter/Space and the into key open and focus
|
|
269
273
|
the first child; the back-out key and Escape close only the innermost branch and return focus to its
|
|
270
274
|
parent row. Pointer hover uses an intent delay, outside pointer dismissal closes the branch, and at
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see `lr-line-chart.md`
|
|
13
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`
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see `lr-line-chart.md`
|
|
13
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`
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see `lr-line-chart.md`
|
|
13
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`
|
|
@@ -126,6 +126,11 @@ row content for the repeated move-action names.
|
|
|
126
126
|
effective owner state. Corresponding custom states include `:state(at-start)`, `:state(at-end)`,
|
|
127
127
|
`:state(list-disabled)`, `:state(pending)`, and `:state(busy)`.
|
|
128
128
|
|
|
129
|
+
Each move control also carries its localized `moveUp` or `moveDown` action as an `aria-label`
|
|
130
|
+
fallback. The reflected `ariaLabelledByElements` relationship retains the full action and row name
|
|
131
|
+
and takes precedence in supporting browsers. Automation tools that omit reflected element references
|
|
132
|
+
may report only the action fallback; repeated actions can be located within their owning row.
|
|
133
|
+
|
|
129
134
|
**Events:** `lr-move-request` (`detail: { direction: 'up' | 'down' }` — a move button was activated
|
|
130
135
|
while not disabled; handled by the parent `<lr-reorder-list>`, which performs the actual move)
|
|
131
136
|
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [charts](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/charts.md)
|
|
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**
|
|
12
|
+
- **Themeable via** 17 parts, 39 custom properties — see `lr-line-chart.md`
|
|
13
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`
|
package/llms/peers.md
CHANGED
|
@@ -52,14 +52,14 @@ for the page.
|
|
|
52
52
|
| `emoji-picker-element-data` | `^1.8.0` | `lr-emoji-picker` |
|
|
53
53
|
| `epubjs` | `^0.3.93` | `lr-ebook-viewer` |
|
|
54
54
|
| `ical.js` | `^2.2.1` | `lr-calendar-viewer` |
|
|
55
|
-
| `katex` | `^0.18.4` | `lr-agent-workspace`, `lr-dashboard-grid`, `lr-eval-run`, `lr-markdown`, `lr-markdown-core`, `lr-message-parts`, `lr-notebook-viewer`, `lr-rag-answer`, `lr-streaming-text`, `lr-streaming-text-core`, `lr-widget-renderer` |
|
|
55
|
+
| `katex` | `^0.18.4 \|\| ^0.19.0` | `lr-agent-workspace`, `lr-dashboard-grid`, `lr-eval-run`, `lr-markdown`, `lr-markdown-core`, `lr-message-parts`, `lr-notebook-viewer`, `lr-rag-answer`, `lr-streaming-text`, `lr-streaming-text-core`, `lr-widget-renderer` |
|
|
56
56
|
| `libphonenumber-js` | `>=1.11.0 <2` | _(not referenced by any component)_ |
|
|
57
57
|
| `mammoth` | `^1.12.1` | `lr-docx-viewer` |
|
|
58
58
|
| `maplibre-gl` | `>=5 <7` | `lr-geojson-viewer`, `lr-map` |
|
|
59
59
|
| `marked` | `^18.0.11` | `lr-agent-workspace`, `lr-dashboard-grid`, `lr-eval-run`, `lr-markdown`, `lr-markdown-core`, `lr-message-parts`, `lr-notebook-viewer`, `lr-rag-answer`, `lr-streaming-text`, `lr-streaming-text-core`, `lr-widget-renderer` |
|
|
60
60
|
| `papaparse` | `^5.7.0` | `lr-csv-viewer`, `lr-dataset-viewer` |
|
|
61
61
|
| `pdfjs-dist` | `^6.3.289` | `lr-pdf-viewer` |
|
|
62
|
-
| `postal-mime` | `^3.0.1
|
|
62
|
+
| `postal-mime` | `^3.0.1 \|\| ^4.0.0` | `lr-email-viewer` |
|
|
63
63
|
| `qrcode` | `^1.5.4` | `lr-qr-code` |
|
|
64
64
|
| `react` | `>=19 <20` | type-only `@aceshooting/lyra-ui/custom-elements-jsx` entry (no runtime import) |
|
|
65
65
|
| `shiki` | `^4.4.3` | `lr-agent-workspace`, `lr-change-review`, `lr-code-block`, `lr-code-block-core`, `lr-dashboard-grid`, `lr-diff-view`, `lr-document-compare`, `lr-eval-result`, `lr-eval-run`, `lr-markdown`, `lr-markdown-core`, `lr-message-parts`, `lr-notebook-viewer`, `lr-rag-answer`, `lr-streaming-text`, `lr-streaming-text-core`, `lr-widget-renderer` |
|
|
@@ -505,7 +505,8 @@ page you are on — that is what keeps two overlapping surfaces reading in the c
|
|
|
505
505
|
|
|
506
506
|
### Cascade layers
|
|
507
507
|
|
|
508
|
-
`theme.css` declares its layer order up front,
|
|
508
|
+
`theme.css` declares its layer order up front, with base inputs in `lr-theme` and built-in profile
|
|
509
|
+
rules in the `lr-theme-preset` sublayers:
|
|
509
510
|
|
|
510
511
|
```css
|
|
511
512
|
@layer lr-base, lr-theme, lr-theme-preset, lr-utilities, lr-overrides;
|
|
@@ -513,9 +514,10 @@ page you are on — that is what keeps two overlapping surfaces reading in the c
|
|
|
513
514
|
|
|
514
515
|
- **`lr-base`** — contains the explicitly scoped native-element rules only when the optional
|
|
515
516
|
`native.css` asset is imported.
|
|
516
|
-
- **`lr-theme`** —
|
|
517
|
-
- **`lr-theme-preset`** — the compatibility layer name
|
|
518
|
-
|
|
517
|
+
- **`lr-theme`** — contains the base theme inputs and token resolvers.
|
|
518
|
+
- **`lr-theme-preset`** — the compatibility layer name for look, density, surface, accent and mode
|
|
519
|
+
rules. `theme.css` already supplies the built-in Shadcn, Glass and Emerald profile here; optional
|
|
520
|
+
look stylesheets add their own rules to the same sublayers.
|
|
519
521
|
- **`lr-utilities`** — contains exact `lr-*` classes only when the optional `utilities.css` asset is
|
|
520
522
|
imported.
|
|
521
523
|
- **`lr-overrides`** — named so an application can opt its own rules into a defined position
|
|
@@ -574,17 +576,25 @@ reason.
|
|
|
574
576
|
|
|
575
577
|
### The shadcn look — looks/shadcn.css
|
|
576
578
|
|
|
577
|
-
|
|
579
|
+
`theme.css` already installs Shadcn as the built-in default and supports explicit
|
|
580
|
+
`data-lr-look="shadcn"` scopes. Import it once; the separate Shadcn sheet is unnecessary for this
|
|
581
|
+
profile:
|
|
578
582
|
|
|
579
583
|
~~~ts
|
|
580
584
|
import "@aceshooting/lyra-ui/theme.css";
|
|
581
|
-
import "@aceshooting/lyra-ui/looks/shadcn.css";
|
|
582
585
|
import { setLyraStyle } from "@aceshooting/lyra-ui/theme.js";
|
|
583
586
|
|
|
584
587
|
setLyraStyle({ look: "shadcn" });
|
|
585
588
|
~~~
|
|
586
589
|
|
|
587
|
-
|
|
590
|
+
Shadcn composes with the independent mode, surface, density and accent axes. For a local region,
|
|
591
|
+
set data-lr-look="shadcn" on that region or use applyLyraStyleScope(). A nested data-lr-mode="dark"
|
|
592
|
+
still changes mode without changing the look.
|
|
593
|
+
|
|
594
|
+
The separate `looks/shadcn.css` sheet remains compatible. Besides the same scoped look values, it
|
|
595
|
+
adds legacy `.light` and `.dark` mode aliases inside a Shadcn scope. Import that sheet only when
|
|
596
|
+
those aliases are needed; prefer `data-lr-mode`, `data-lr-theme` or `.lr-light`/`.lr-dark` for new
|
|
597
|
+
code. Explicit Lyra mode selectors on the same element take precedence over the compatibility aliases.
|
|
588
598
|
|
|
589
599
|
The look sets --lr-theme-* inputs, so no component API changes. Its rules use Lyra's named cascade layers: unlayered application rules still win, and runtime accent ramps still take precedence over look values for the roles they paint. Import order between theme.css and looks/shadcn.css does not change the layer order.
|
|
590
600
|
|
|
@@ -602,7 +612,9 @@ Override the look through an unlayered application rule or the lr-overrides laye
|
|
|
602
612
|
}
|
|
603
613
|
~~~
|
|
604
614
|
|
|
605
|
-
The former global themes/shadcn.css facade and its data-lr-theme-preset behavior have been removed.
|
|
615
|
+
The former global themes/shadcn.css facade and its data-lr-theme-preset behavior have been removed.
|
|
616
|
+
Use theme.css and the data-lr-look axis for new styling; looks/shadcn.css is needed only for the
|
|
617
|
+
compatibility aliases above.
|
|
606
618
|
|
|
607
619
|
### Where an override actually reaches
|
|
608
620
|
|
|
@@ -845,7 +857,7 @@ bytes; build plugins must not prepend the bootstrap ahead of it.
|
|
|
845
857
|
|
|
846
858
|
For a strict CSP that disallows inline scripts, the package also publishes theme-bootstrap.js, a classic script asset with identical bytes. Load it synchronously after the charset declaration and before stylesheets. Its optional data-lr-theme-storage-key and data-lr-theme-attributes attributes select an application-owned storage key or mode-attribute list; values are validated and fall back to defaults when invalid.
|
|
847
859
|
|
|
848
|
-
**Migrating the retired theme facade.** New code uses setLyraStyle() and getLyraStyle(). Map old auto mode to system, an old surface reference color to accentBackground, and an old token map to overrides; review custom CSS colors that share a gemstone name before choosing a named accent. Replace preset definitions with a LyraLook plus explicit style choices. Replace selectors for data-lr-theme-preset with the actual axis they need, such as data-lr-look="shadcn". Import
|
|
860
|
+
**Migrating the retired theme facade.** New code uses setLyraStyle() and getLyraStyle(). Map old auto mode to system, an old surface reference color to accentBackground, and an old token map to overrides; review custom CSS colors that share a gemstone name before choosing a named accent. Replace preset definitions with a LyraLook plus explicit style choices. Replace selectors for data-lr-theme-preset with the actual axis they need, such as data-lr-look="shadcn". Import theme.css in place of the removed fixed themes/shadcn.css facade and select the look with setLyraStyle({ look: "shadcn" }) or a scoped data-lr-look attribute. Listen for lr-style-change and read event.detail.style and event.detail.changed; the old theme and preset events are no longer emitted. For the complete project-by-project sequence, see [Upgrading from v23 to v24](v23-to-v24-migration.md).
|
|
849
861
|
|
|
850
862
|
Historical v1 stored records remain readable by the runtime and bootstrap. The removed JavaScript functions, preset subpaths, preset event, root marker, and fixed stylesheet are not available in the current API.
|
|
851
863
|
|
|
@@ -897,10 +909,8 @@ mode and accent; the axes compose independently.
|
|
|
897
909
|
|
|
898
910
|
```js
|
|
899
911
|
import '@aceshooting/lyra-ui/theme.css';
|
|
900
|
-
import '@aceshooting/lyra-ui/looks/shadcn.css';
|
|
901
912
|
import '@aceshooting/lyra-ui/looks/material.css';
|
|
902
913
|
import '@aceshooting/lyra-ui/density.css';
|
|
903
|
-
import '@aceshooting/lyra-ui/surfaces/glass.css';
|
|
904
914
|
import '@aceshooting/lyra-ui/accents.css';
|
|
905
915
|
import { setLyraStyle, resetLyraStyle, applyLyraStyleScope } from '@aceshooting/lyra-ui/theme.js';
|
|
906
916
|
|
|
@@ -918,7 +928,8 @@ inherit), without persistence or global events; clearing preserves later author
|
|
|
918
928
|
reports requested axes and resolved mode.
|
|
919
929
|
|
|
920
930
|
Set `data-lr-look`, `data-lr-surface`, `data-lr-density`, `data-lr-mode` and `data-lr-accent`
|
|
921
|
-
directly if needed.
|
|
931
|
+
directly if needed. Shadcn and Lyra are included in `theme.css`; other stylesheet look ids need
|
|
932
|
+
their optional sheet. Arbitrary ids neither load nor register.
|
|
922
933
|
`defineLyraLook({ id, tokens })` defines a validated immutable runtime look;
|
|
923
934
|
`lyraLookCss()` from `theme/look-css.js` creates CSS without DOM access. In app-owned shadow roots
|
|
924
935
|
with local boundaries, install `theme.css` and selected sheets; selectors stop at roots, inheritance
|
|
@@ -1124,12 +1135,18 @@ The public `--lr-theme-surface-opacity` input accepts 0 through 1. Lower opacity
|
|
|
1124
1135
|
of the backdrop; the default foreground qualification covers 70%, while a custom lower setting
|
|
1125
1136
|
cannot guarantee contrast against every backdrop. Solid and accessibility preferences retain
|
|
1126
1137
|
opaque fills regardless of this input.
|
|
1127
|
-
|
|
1138
|
+
Necessary control borders use the effective painted opacity: their glass adjustment grows as
|
|
1139
|
+
transparency increases and disappears at 100% opacity. Ordinary and strong borders share this
|
|
1140
|
+
adjustment; decorative borders and explicit component border overrides keep their own tokens.
|
|
1141
|
+
Quiet text, focus indicators and transparent actions retain their separate local
|
|
1128
1142
|
contrast-qualified foreground; opaque accent fills retain their own on-colours. Supported chrome
|
|
1129
1143
|
includes app rails, navigation menus, menubars, menus and their context-menu composition, popovers,
|
|
1130
1144
|
selection toolbars, toast items and the owned playback-rate toolbar of `lr-av-player`. Nested glass
|
|
1131
1145
|
chrome is opaque, preventing repeated blur. Independently promoted menus and modal panels start a
|
|
1132
|
-
new material root.
|
|
1146
|
+
new material root. Surface-colored outlined card and disclosure interiors let nested Lyra
|
|
1147
|
+
controls use their solid border colors while preserving the enclosing edge against glass.
|
|
1148
|
+
Filled accent interiors retain qualification. Native descendants retain inherited public color
|
|
1149
|
+
aliases. Custom translucent content fills require the author to choose suitable control borders.
|
|
1133
1150
|
A design panel can offer a Glass opacity range from 0–100%, shown when the selected surface is
|
|
1134
1151
|
Glass. Start and reset it at 70%; convert the displayed percentage to the public token's 0–1 range.
|
|
1135
1152
|
Apply this CSS input independently of look overrides: `setLyraStyle()` does not accept surface
|