@aceshooting/lyra-ui 28.0.0 → 28.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.
@@ -19,6 +19,11 @@
19
19
  Box-and-whisker chart from a precomputed five-number summary (no raw sample data sent to the
20
20
  browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
21
21
 
22
+ If the browser cannot acquire a 2D canvas context, a localized visible message replaces the plot
23
+ and the generated or slotted data table becomes visible. No failed Chart.js instance is retained.
24
+ Changing the data or calling `refreshTheme()` retries rendering, so the plot recovers when the
25
+ canvas capability becomes available.
26
+
22
27
  With `IntersectionObserver` available, canvas construction waits for its first delivered visibility
23
28
  decision. An off-screen box plot stays unconstructed until visible. Without the observer, drawing
24
29
  starts when the peers and canvas are ready; an empty delivered callback retains the visible
@@ -25,6 +25,12 @@ For horizontal scalar bars, tooltip values come from parsed x rather than the ca
25
25
  an effective raw `config.options.indexAxis` override. Both formatter APIs follow this rule;
26
26
  structured points retain their y-value formatting.
27
27
 
28
+
29
+ If the browser cannot acquire a 2D canvas context, a localized visible message replaces the plot
30
+ and the generated or slotted data table becomes visible. No failed Chart.js instance is retained.
31
+ Changing the data or calling `refreshTheme()` retries rendering, so the plot recovers when the
32
+ canvas capability becomes available.
33
+
28
34
  **Properties:**
29
35
  - `axes: LyraChartAxes = 'both'` — `'x' | 'y' | 'both' | 'none'`, controlling complete cartesian
30
36
  axes: labels, ticks, borders and grid lines. The `y` setting includes `y2`; invalid values use
@@ -9,7 +9,7 @@
9
9
  - **Release history** [CHANGELOG.md](../../CHANGELOG.md)
10
10
  - **Deprecations** none
11
11
  - **Optional peers** none
12
- - **Themeable via** 18 parts, 12 custom properties — see this component's own `@csspart`/`@cssprop` list below
12
+ - **Themeable via** 18 parts, 13 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
  ---
@@ -30,7 +30,10 @@ movements remain separate announcements, and `[part="live-region"]` is only an `
30
30
  Both modes deliberately retain physical LTR grid geometry under `dir="rtl"`: matrix column 0 and
31
31
  calendar week 0 remain at the physical left, so ArrowLeft and ArrowRight retain their physical
32
32
  previous/next movement instead of swapping for RTL.
33
- Full canvas redraws pause while the host is outside the viewport. Data, locale, theme, resize, and
33
+ Full canvas redraws pause while the host is outside the viewport. A deferred `fitToWidth` frame
34
+ stays within a smaller allocation when the current grid fits it; explicit cell floors, accessible
35
+ hit targets and custom column extents still retain intentional overflow. The next visible draw
36
+ restores the bitmap and cell geometry together. Data, locale, theme, resize, and
34
37
  DPR invalidations remain pending and coalesce into one redraw when the heatmap intersects again;
35
38
  environments without `IntersectionObserver` retain eager drawing. A theme signal (any ancestor
36
39
  `style`/`class` write) repaints only when a theme token the canvas reads changed, or while `cellColor`
@@ -464,6 +467,11 @@ resolve-via-`getComputedStyle` pattern), `--lr-heatmap-label-font` (default
464
467
  `--lr-heatmap-focus-ring-color` (default
465
468
  `var(--lr-focus-ring-color)` — the canvas-drawn ring stroked around the keyboard-focused cell;
466
469
  also reused by `[part="canvas"]`'s own `:focus-visible` outline so the two stay visually in sync),
470
+ `--lr-heatmap-hover-ring-color` (defaults to the effective `--lr-heatmap-focus-ring-color`) —
471
+ the pointer-hover outline on the canvas and accessible cells. Set it to `transparent` to omit
472
+ that outline while retaining keyboard-focus and pressed feedback. Leaving it unset preserves
473
+ existing hover styling; native forced-color adjustment remains enabled.
474
+
467
475
  `--lr-heatmap-color-steps-gradient` (default
468
476
  `linear-gradient(to right, var(--lr-heatmap-scale-lo), var(--lr-heatmap-scale-hi))` — the gradient
469
477
  painted on the continuous legend bar; the component writes it onto the host itself while
package/llms/peers.md CHANGED
@@ -38,7 +38,7 @@ for the page.
38
38
  | Peer | Range | Needed by |
39
39
  |---|---|---|
40
40
  | `@aceshooting/lyra-flags` | `^2.3.0` | _(loaded by a shared internal module)_ |
41
- | `@aceshooting/lyra-translations` | `^28.0.0` | _(not referenced by any component)_ |
41
+ | `@aceshooting/lyra-translations` | `^28.1.0` | _(not referenced by any component)_ |
42
42
  | `@aiden0z/pptx-renderer` | `^1.3.0` | `lr-pptx-viewer` |
43
43
  | `@sgratzl/chartjs-chart-boxplot` | `^4.0.0` | `lr-box-plot` |
44
44
  | `chart.js` | `^4.0.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` |
@@ -10,7 +10,7 @@ that need form-value or validity behavior: it supplies
10
10
  `form`/`labels`/`validity`/`validationMessage`/`willValidate`. The shim is a no-op where the
11
11
  platform already provides internals, so it is safe in a shared setup file.
12
12
 
13
- `installHappyDomShims()` installs that shim plus two more Happy DOM gap fixes, each a no-op where
13
+ `installHappyDomShims()` installs that shim plus Happy DOM gap fixes, each a no-op where
14
14
  the engine already behaves (feature-detected, so safe in a shared setup file and never part of a
15
15
  production bundle): `installHappyDomShadowFocusShim()` makes `ShadowRoot.activeElement` return
16
16
  `null` for a sibling or detached shadow root instead of throwing a `TypeError` (own-root and
@@ -36,6 +36,19 @@ a no-op in every browser and without a `CSSStyleSheet` global; it installs once
36
36
  function that restores the original methods. Install it before any stylesheet is parsed (in the
37
37
  same `setupFiles` entry): a sheet parsed earlier keeps the rules it dropped.
38
38
 
39
+ `installHappyDomShims()` also supplies `ShadowRoot.styleSheets` when the environment lacks it.
40
+ The live collection lists non-null `<style>` and stylesheet-link sheets in that shadow tree,
41
+ in tree order, with indexed access, `length`, `item()` and iteration. Retained collections reflect
42
+ insertions and removals; nested shadow trees and constructed `adoptedStyleSheets` remain separate.
43
+ This lets marked application scopes discover and adopt their token provider under Happy DOM.
44
+ An existing platform collection is never replaced, and plain Node remains unchanged.
45
+
46
+ When Happy DOM lacks the HTML `dir="ltr"`/`dir="rtl"` presentational hints,
47
+ `installHappyDomShims()` adds zero-specificity direction rules to the document head. This restores
48
+ computed direction and inherited component direction while preserving explicit author CSS.
49
+ The shim probes support before installing, is idempotent, and never runs in a native browser.
50
+ It does not emulate `dir="auto"` text analysis or the `:dir()` pseudo-class.
51
+
39
52
  ### jsdom: `installJsdomShims()`
40
53
 
41
54
  jsdom implements no `adoptedStyleSheets`, so Lit renders one `<style>` element per component
package/llms/shared.md CHANGED
@@ -2852,7 +2852,7 @@ that need form-value or validity behavior: it supplies
2852
2852
  `form`/`labels`/`validity`/`validationMessage`/`willValidate`. The shim is a no-op where the
2853
2853
  platform already provides internals, so it is safe in a shared setup file.
2854
2854
 
2855
- `installHappyDomShims()` installs that shim plus two more Happy DOM gap fixes, each a no-op where
2855
+ `installHappyDomShims()` installs that shim plus Happy DOM gap fixes, each a no-op where
2856
2856
  the engine already behaves (feature-detected, so safe in a shared setup file and never part of a
2857
2857
  production bundle): `installHappyDomShadowFocusShim()` makes `ShadowRoot.activeElement` return
2858
2858
  `null` for a sibling or detached shadow root instead of throwing a `TypeError` (own-root and
@@ -2878,6 +2878,19 @@ a no-op in every browser and without a `CSSStyleSheet` global; it installs once
2878
2878
  function that restores the original methods. Install it before any stylesheet is parsed (in the
2879
2879
  same `setupFiles` entry): a sheet parsed earlier keeps the rules it dropped.
2880
2880
 
2881
+ `installHappyDomShims()` also supplies `ShadowRoot.styleSheets` when the environment lacks it.
2882
+ The live collection lists non-null `<style>` and stylesheet-link sheets in that shadow tree,
2883
+ in tree order, with indexed access, `length`, `item()` and iteration. Retained collections reflect
2884
+ insertions and removals; nested shadow trees and constructed `adoptedStyleSheets` remain separate.
2885
+ This lets marked application scopes discover and adopt their token provider under Happy DOM.
2886
+ An existing platform collection is never replaced, and plain Node remains unchanged.
2887
+
2888
+ When Happy DOM lacks the HTML `dir="ltr"`/`dir="rtl"` presentational hints,
2889
+ `installHappyDomShims()` adds zero-specificity direction rules to the document head. This restores
2890
+ computed direction and inherited component direction while preserving explicit author CSS.
2891
+ The shim probes support before installing, is idempotent, and never runs in a native browser.
2892
+ It does not emulate `dir="auto"` text analysis or the `:dir()` pseudo-class.
2893
+
2881
2894
  ### jsdom: `installJsdomShims()`
2882
2895
 
2883
2896
  jsdom implements no `adoptedStyleSheets`, so Lit renders one `<style>` element per component