@aceshooting/lyra-ui 25.6.0 → 25.6.2
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 +14 -0
- package/custom-elements.json +1 -1
- package/dist/components/forms/button/button.class.d.ts +3 -2
- package/dist/components/forms/button/button.styles.js +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +7 -5
- package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
- package/dist/components/overlays/overlay/tooltip.class.js +1 -1
- package/dist/internal/accessibility-visibility.d.ts +3 -1
- package/dist/internal/accessibility-visibility.js +1 -1
- package/dist/internal/glass-surface.styles.js +1 -1
- 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-button.md +1 -1
- package/llms/components/lr-locale-picker.md +11 -6
- package/llms/components/lr-swatch-picker.md +18 -14
- package/llms/shared/native-styles-and-utilities.md +3 -1
- package/llms/shared/styles-and-tokens.md +17 -12
- package/llms/shared.md +20 -13
- package/package.json +4 -4
- package/vscode-css-data.json +1 -1
- package/vscode-html-data.json +1 -1
- package/web-types.json +1 -1
|
@@ -225,9 +225,12 @@ class AccentTrigger extends LitElement {
|
|
|
225
225
|
`gemstoneAccentPicker` names the canonical composition of `lr-icon-button`, `lr-popover`, and
|
|
226
226
|
`lr-swatch-picker mode="gemstone"`. It is a **pattern name, not an exported component or tag**.
|
|
227
227
|
Use it for application accent selection: a glowing current-gem trigger, one compact
|
|
228
|
-
“
|
|
229
|
-
|
|
230
|
-
|
|
228
|
+
“Selected accent: Emerald” heading (with the selected name updated), and all nine canonical
|
|
229
|
+
gemstones, in `GEMSTONE_KEYS` order, in one row. Use that same localized selected-value label for
|
|
230
|
+
the trigger's accessible name and hover title, dialog, radiogroup, and single visible heading.
|
|
231
|
+
Interpolate the selected name through the application's locale catalog. Each localized item `label`
|
|
232
|
+
supplies its option's accessible name and title through `lr-swatch-picker`. Omit introductory copy
|
|
233
|
+
and a second selected-name row.
|
|
231
234
|
|
|
232
235
|
The consuming Lit component imports these granular entries and lists
|
|
233
236
|
`gemstoneSelectedGlyphStyles` in its `static styles` ahead of the CSS that follows.
|
|
@@ -247,7 +250,7 @@ import {
|
|
|
247
250
|
} from '@aceshooting/lyra-ui/theme/gemstones.js';
|
|
248
251
|
```
|
|
249
252
|
|
|
250
|
-
`--accent-color
|
|
253
|
+
`--accent-color` and `--text-color` are application-owned theme tokens.
|
|
251
254
|
`--lr-overlay-max-inline-size` lifts the popup's default 20rem cap so the 20rem palette plus the
|
|
252
255
|
popover's own padding fits. Both `--lr-gemstone-selected-*` values reach the trigger glyph and the
|
|
253
256
|
picker's checked glyph alike: a 0.42rem halo at 92% of the accent. Leave
|
|
@@ -284,11 +287,10 @@ while pressed:
|
|
|
284
287
|
}
|
|
285
288
|
.heading {
|
|
286
289
|
margin: .2rem .3rem .5rem;
|
|
287
|
-
color: var(--
|
|
290
|
+
color: var(--text-color);
|
|
288
291
|
font-size: .75rem;
|
|
289
292
|
font-weight: 600;
|
|
290
293
|
}
|
|
291
|
-
.name { color: var(--text-color); }
|
|
292
294
|
.palette lr-swatch-picker {
|
|
293
295
|
padding: 0 .3rem .3rem;
|
|
294
296
|
--lr-swatch-picker-hit-size: 1.75rem;
|
|
@@ -312,10 +314,11 @@ whole trigger, so the halo follows the gem's silhouette. The focus ring belongs
|
|
|
312
314
|
do not add a permanent circular selection border. Leave the popover's default content padding and
|
|
313
315
|
arrow intact.
|
|
314
316
|
|
|
315
|
-
This Lit template assumes `selected` is a `GemstoneKey`. `
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
`onAccentChange()` validates the string and updates application
|
|
317
|
+
This Lit template assumes `selected` is a `GemstoneKey`. `selectedAccentLabel(name)` is the
|
|
318
|
+
application's localized, interpolated form of “Selected accent: {name}”; `translateGemstone()`
|
|
319
|
+
provides the localized name. The same resulting label appears in the single heading and names the
|
|
320
|
+
trigger, dialog, and radiogroup. `onAccentChange()` validates the string and updates application
|
|
321
|
+
state:
|
|
319
322
|
|
|
320
323
|
```ts
|
|
321
324
|
const items = GEMSTONE_KEYS.map((key) => ({
|
|
@@ -326,15 +329,16 @@ const items = GEMSTONE_KEYS.map((key) => ({
|
|
|
326
329
|
}));
|
|
327
330
|
|
|
328
331
|
const name = translateGemstone(selected);
|
|
332
|
+
const label = selectedAccentLabel(name);
|
|
329
333
|
html`
|
|
330
334
|
<lr-popover class="gemstone-accent-picker" placement="bottom-end"
|
|
331
|
-
popup-role="dialog" aria-label=${
|
|
332
|
-
<lr-icon-button slot="trigger" label=${
|
|
335
|
+
popup-role="dialog" aria-label=${label}>
|
|
336
|
+
<lr-icon-button slot="trigger" label=${label} title=${label}>
|
|
333
337
|
<span class="gem" data-lr-gemstone-selected aria-hidden="true">${gemstoneGlyph(GEMSTONES[selected].fill)}</span>
|
|
334
338
|
</lr-icon-button>
|
|
335
339
|
<div class="palette">
|
|
336
|
-
<p class="heading">${
|
|
337
|
-
<lr-swatch-picker mode="gemstone" aria-label=${
|
|
340
|
+
<p class="heading">${label}</p>
|
|
341
|
+
<lr-swatch-picker mode="gemstone" aria-label=${label}
|
|
338
342
|
.items=${items} .value=${selected}
|
|
339
343
|
@lr-change=${(event: CustomEvent<{ value: string }>) => onAccentChange(event.detail.value)}>
|
|
340
344
|
</lr-swatch-picker>
|
|
@@ -292,8 +292,10 @@ an already treated Lyra popup.
|
|
|
292
292
|
local high container surface, then the overlay surface, and resolves on the painted wrapper, so nearer
|
|
293
293
|
theme inputs work.
|
|
294
294
|
The existing `--lr-theme-surface-opacity`, `--lr-theme-surface-blur`,
|
|
295
|
-
`--lr-theme-surface-saturation` and `--lr-theme-surface-highlight` controls apply. Glass uses
|
|
295
|
+
`--lr-theme-surface-saturation` and `--lr-theme-surface-highlight` controls apply. Glass uses 60%
|
|
296
296
|
opacity by default, 12px blur with a 16px ceiling, and qualified text, edges and focus.
|
|
297
|
+
At opacity below 70%, dark Glass deepens the fill to keep light foregrounds readable against
|
|
298
|
+
bright backdrops; higher opacity keeps the selected fill color.
|
|
297
299
|
The public opacity input accepts 0–1; lower custom opacity may expose backdrops that need
|
|
298
300
|
stronger foreground contrast. Solid and accessibility preferences still force opaque fills.
|
|
299
301
|
Explicit `data-lr-surface="solid"`, unsupported backdrop filtering, reduced transparency, increased
|
|
@@ -137,13 +137,16 @@ accepts absolute colors used as contrast reference surfaces, not gradients or im
|
|
|
137
137
|
semantic surface/text pairings for content and keep the decorative layer behind it.
|
|
138
138
|
|
|
139
139
|
Use the existing [gemstoneAccentPicker composition](../components/lr-swatch-picker.md#gemstoneaccentpicker--the-signature-accent-selector),
|
|
140
|
-
with its localized
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
140
|
+
with its single localized “Selected accent: {name}” heading, nine canonical gemstones, and shared
|
|
141
|
+
selected-glyph treatment. Update the name when selection changes. Use the same interpolated label
|
|
142
|
+
for the trigger's accessible name and hover title, dialog, radiogroup, and visible heading; do not
|
|
143
|
+
add a second selected-name row. Pass localized names as each swatch item's `label`, which supplies
|
|
144
|
+
its accessible name and title. Keep `--lr-swatch-picker-wrap: nowrap`: desktop hit size `1.75rem` and
|
|
145
|
+
gap `.25rem`; at widths up to `30rem`, hit size `1.5rem` and gap `.125rem` (28/4px and 24/2px at a
|
|
146
|
+
16px root). Leave its fill size unset. Bound the palette to the viewport and provide horizontal
|
|
147
|
+
overflow for unusually narrow allocations or enlarged text; keyboard focus must bring every swatch
|
|
148
|
+
into view. Do not shrink below the component's 24px floor or replace its Arrow/Home/End and RTL
|
|
149
|
+
behavior. For an independent Shine preference, set `--lr-gemstone-selected-animation: none` on the scope shared by the trigger
|
|
147
150
|
and picker; remove that declaration for Shine ON. OFF preserves the halo and selected accent.
|
|
148
151
|
Application and OS reduced motion still take precedence; persist Shine independently from motion.
|
|
149
152
|
See the composition guide for the controlled picker and preference wiring.
|
|
@@ -1130,11 +1133,13 @@ forced colors retain solid fills. Solid surfaces use `backdrop-filter: none`; fo
|
|
|
1130
1133
|
`Canvas`. Offer a solid choice wherever the application offers glass, since reduced-transparency
|
|
1131
1134
|
media-query support varies between browsers.
|
|
1132
1135
|
|
|
1133
|
-
Regular glass defaults to
|
|
1136
|
+
Regular glass defaults to 60% opacity with a 12px blur clamped to 16px.
|
|
1134
1137
|
The public `--lr-theme-surface-opacity` input accepts 0 through 1. Lower opacity exposes more
|
|
1135
|
-
of the backdrop; the default foreground qualification covers
|
|
1138
|
+
of the backdrop; the default foreground qualification covers 60%, while a custom lower setting
|
|
1136
1139
|
cannot guarantee contrast against every backdrop. Solid and accessibility preferences retain
|
|
1137
1140
|
opaque fills regardless of this input.
|
|
1141
|
+
Dark Glass deepens the selected fill at opacity below 70% so light foregrounds remain readable
|
|
1142
|
+
against bright backdrops; at 70% and above, the selected fill keeps its original color.
|
|
1138
1143
|
Necessary control borders use the effective painted opacity: their glass adjustment grows as
|
|
1139
1144
|
transparency increases and disappears at 100% opacity. Ordinary and strong borders share this
|
|
1140
1145
|
adjustment; decorative borders and explicit component border overrides keep their own tokens.
|
|
@@ -1148,10 +1153,10 @@ controls use their solid border colors while preserving the enclosing edge again
|
|
|
1148
1153
|
Filled accent interiors retain qualification. Native descendants retain inherited public color
|
|
1149
1154
|
aliases. Custom translucent content fills require the author to choose suitable control borders.
|
|
1150
1155
|
A design panel can offer a Glass opacity range from 0–100%, shown when the selected surface is
|
|
1151
|
-
Glass. Start and reset it at
|
|
1156
|
+
Glass. Start and reset it at 60%; convert the displayed percentage to the public token's 0–1 range.
|
|
1152
1157
|
Apply this CSS input independently of look overrides: `setLyraStyle()` does not accept surface
|
|
1153
1158
|
inputs in its `overrides` allowlist. Persist the percentage in the application's own settings and
|
|
1154
|
-
apply it before first paint, including after restoring those settings. Reset the app setting to
|
|
1159
|
+
apply it before first paint, including after restoring those settings. Reset the app setting to 60
|
|
1155
1160
|
and reapply it. Native `.lr-surface-chrome` wrappers and eligible component chrome consume the
|
|
1156
1161
|
same input:
|
|
1157
1162
|
|
|
@@ -1162,7 +1167,7 @@ function applyGlassOpacity(percent) {
|
|
|
1162
1167
|
document.documentElement.style.setProperty('--lr-theme-surface-opacity', String(opacity));
|
|
1163
1168
|
}
|
|
1164
1169
|
|
|
1165
|
-
applyGlassOpacity(
|
|
1170
|
+
applyGlassOpacity(60); // Default and reset value; apply saved app settings before first paint.
|
|
1166
1171
|
```
|
|
1167
1172
|
|
|
1168
1173
|
Scrolling rail, popup, modal-panel and selection-toolbar surfaces keep a stationary decorative blur layer;
|
package/llms/shared.md
CHANGED
|
@@ -947,13 +947,16 @@ accepts absolute colors used as contrast reference surfaces, not gradients or im
|
|
|
947
947
|
semantic surface/text pairings for content and keep the decorative layer behind it.
|
|
948
948
|
|
|
949
949
|
Use the existing [gemstoneAccentPicker composition](../components/lr-swatch-picker.md#gemstoneaccentpicker--the-signature-accent-selector),
|
|
950
|
-
with its localized
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
950
|
+
with its single localized “Selected accent: {name}” heading, nine canonical gemstones, and shared
|
|
951
|
+
selected-glyph treatment. Update the name when selection changes. Use the same interpolated label
|
|
952
|
+
for the trigger's accessible name and hover title, dialog, radiogroup, and visible heading; do not
|
|
953
|
+
add a second selected-name row. Pass localized names as each swatch item's `label`, which supplies
|
|
954
|
+
its accessible name and title. Keep `--lr-swatch-picker-wrap: nowrap`: desktop hit size `1.75rem` and
|
|
955
|
+
gap `.25rem`; at widths up to `30rem`, hit size `1.5rem` and gap `.125rem` (28/4px and 24/2px at a
|
|
956
|
+
16px root). Leave its fill size unset. Bound the palette to the viewport and provide horizontal
|
|
957
|
+
overflow for unusually narrow allocations or enlarged text; keyboard focus must bring every swatch
|
|
958
|
+
into view. Do not shrink below the component's 24px floor or replace its Arrow/Home/End and RTL
|
|
959
|
+
behavior. For an independent Shine preference, set `--lr-gemstone-selected-animation: none` on the scope shared by the trigger
|
|
957
960
|
and picker; remove that declaration for Shine ON. OFF preserves the halo and selected accent.
|
|
958
961
|
Application and OS reduced motion still take precedence; persist Shine independently from motion.
|
|
959
962
|
See the composition guide for the controlled picker and preference wiring.
|
|
@@ -2058,8 +2061,10 @@ an already treated Lyra popup.
|
|
|
2058
2061
|
local high container surface, then the overlay surface, and resolves on the painted wrapper, so nearer
|
|
2059
2062
|
theme inputs work.
|
|
2060
2063
|
The existing `--lr-theme-surface-opacity`, `--lr-theme-surface-blur`,
|
|
2061
|
-
`--lr-theme-surface-saturation` and `--lr-theme-surface-highlight` controls apply. Glass uses
|
|
2064
|
+
`--lr-theme-surface-saturation` and `--lr-theme-surface-highlight` controls apply. Glass uses 60%
|
|
2062
2065
|
opacity by default, 12px blur with a 16px ceiling, and qualified text, edges and focus.
|
|
2066
|
+
At opacity below 70%, dark Glass deepens the fill to keep light foregrounds readable against
|
|
2067
|
+
bright backdrops; higher opacity keeps the selected fill color.
|
|
2063
2068
|
The public opacity input accepts 0–1; lower custom opacity may expose backdrops that need
|
|
2064
2069
|
stronger foreground contrast. Solid and accessibility preferences still force opaque fills.
|
|
2065
2070
|
Explicit `data-lr-surface="solid"`, unsupported backdrop filtering, reduced transparency, increased
|
|
@@ -5799,11 +5804,13 @@ forced colors retain solid fills. Solid surfaces use `backdrop-filter: none`; fo
|
|
|
5799
5804
|
`Canvas`. Offer a solid choice wherever the application offers glass, since reduced-transparency
|
|
5800
5805
|
media-query support varies between browsers.
|
|
5801
5806
|
|
|
5802
|
-
Regular glass defaults to
|
|
5807
|
+
Regular glass defaults to 60% opacity with a 12px blur clamped to 16px.
|
|
5803
5808
|
The public `--lr-theme-surface-opacity` input accepts 0 through 1. Lower opacity exposes more
|
|
5804
|
-
of the backdrop; the default foreground qualification covers
|
|
5809
|
+
of the backdrop; the default foreground qualification covers 60%, while a custom lower setting
|
|
5805
5810
|
cannot guarantee contrast against every backdrop. Solid and accessibility preferences retain
|
|
5806
5811
|
opaque fills regardless of this input.
|
|
5812
|
+
Dark Glass deepens the selected fill at opacity below 70% so light foregrounds remain readable
|
|
5813
|
+
against bright backdrops; at 70% and above, the selected fill keeps its original color.
|
|
5807
5814
|
Necessary control borders use the effective painted opacity: their glass adjustment grows as
|
|
5808
5815
|
transparency increases and disappears at 100% opacity. Ordinary and strong borders share this
|
|
5809
5816
|
adjustment; decorative borders and explicit component border overrides keep their own tokens.
|
|
@@ -5817,10 +5824,10 @@ controls use their solid border colors while preserving the enclosing edge again
|
|
|
5817
5824
|
Filled accent interiors retain qualification. Native descendants retain inherited public color
|
|
5818
5825
|
aliases. Custom translucent content fills require the author to choose suitable control borders.
|
|
5819
5826
|
A design panel can offer a Glass opacity range from 0–100%, shown when the selected surface is
|
|
5820
|
-
Glass. Start and reset it at
|
|
5827
|
+
Glass. Start and reset it at 60%; convert the displayed percentage to the public token's 0–1 range.
|
|
5821
5828
|
Apply this CSS input independently of look overrides: `setLyraStyle()` does not accept surface
|
|
5822
5829
|
inputs in its `overrides` allowlist. Persist the percentage in the application's own settings and
|
|
5823
|
-
apply it before first paint, including after restoring those settings. Reset the app setting to
|
|
5830
|
+
apply it before first paint, including after restoring those settings. Reset the app setting to 60
|
|
5824
5831
|
and reapply it. Native `.lr-surface-chrome` wrappers and eligible component chrome consume the
|
|
5825
5832
|
same input:
|
|
5826
5833
|
|
|
@@ -5831,7 +5838,7 @@ function applyGlassOpacity(percent) {
|
|
|
5831
5838
|
document.documentElement.style.setProperty('--lr-theme-surface-opacity', String(opacity));
|
|
5832
5839
|
}
|
|
5833
5840
|
|
|
5834
|
-
applyGlassOpacity(
|
|
5841
|
+
applyGlassOpacity(60); // Default and reset value; apply saved app settings before first paint.
|
|
5835
5842
|
```
|
|
5836
5843
|
|
|
5837
5844
|
Scrolling rail, popup, modal-panel and selection-toolbar surfaces keep a stationary decorative blur layer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aceshooting/lyra-ui",
|
|
3
|
-
"version": "25.6.
|
|
3
|
+
"version": "25.6.2",
|
|
4
4
|
"description": "Free, independent Lit web components: an open-source alternative to Shoelace and Web Awesome with accessible forms, dashboards, charts, and agent UI.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
|
@@ -11887,15 +11887,15 @@
|
|
|
11887
11887
|
"katex": "^0.19.0",
|
|
11888
11888
|
"libphonenumber-js": "^1.13.14",
|
|
11889
11889
|
"mammoth": "^1.13.0",
|
|
11890
|
-
"maplibre-gl": "^6.
|
|
11890
|
+
"maplibre-gl": "^6.12.0",
|
|
11891
11891
|
"marked": "^18.0.14",
|
|
11892
11892
|
"oxc-parser": "^0.152.0",
|
|
11893
11893
|
"papaparse": "^5.7.0",
|
|
11894
|
-
"pdfjs-dist": "^6.
|
|
11894
|
+
"pdfjs-dist": "^6.4.299",
|
|
11895
11895
|
"pixelmatch": "^7.2.0",
|
|
11896
11896
|
"playwright": "^1.63.0",
|
|
11897
11897
|
"pngjs": "^7.0.0",
|
|
11898
|
-
"postal-mime": "^4.0.
|
|
11898
|
+
"postal-mime": "^4.0.4",
|
|
11899
11899
|
"qrcode": "^1.5.4",
|
|
11900
11900
|
"react": "^19.3.0",
|
|
11901
11901
|
"shiki": "^4.5.0",
|