@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.
@@ -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
- “Gemstone: selected name” caption, and all nine canonical gemstones, in `GEMSTONE_KEYS` order, in
229
- one row. Localize the caption, trigger, dialog, radiogroup, and item names. Omit introductory copy
230
- and a second selected-name paragraph.
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`, `--caption-color`, and `--text-color` are application-owned theme tokens.
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(--caption-color);
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`. `accentLabel` names the dialog and the
316
- radiogroup. `triggerLabel(name)` (“Accent color: Ruby”), `captionLabel` (“Gemstone:”, with the
317
- locale's own separator), and `translateGemstone()` come from the application's catalog.
318
- `onAccentChange()` validates the string and updates application state:
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=${accentLabel}>
332
- <lr-icon-button slot="trigger" label=${triggerLabel(name)}>
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">${captionLabel} <span class="name">${name}</span></p>
337
- <lr-swatch-picker mode="gemstone" aria-label=${accentLabel}
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 70%
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 caption, nine canonical gemstones, and shared selected-glyph treatment. Keep
141
- `--lr-swatch-picker-wrap: nowrap`: desktop hit size `1.75rem` and gap `.25rem`; at widths up to
142
- `30rem`, hit size `1.5rem` and gap `.125rem` (28/4px and 24/2px at a 16px root). Leave its fill size
143
- unset. Bound the palette to the viewport and provide horizontal overflow for unusually narrow
144
- allocations or enlarged text; keyboard focus must bring every swatch into view. Do not shrink
145
- below the component's 24px floor or replace its Arrow/Home/End and RTL behavior. For an independent
146
- Shine preference, set `--lr-gemstone-selected-animation: none` on the scope shared by the trigger
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 70% opacity with a 12px blur clamped to 16px.
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 70%, while a custom lower setting
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 70%; convert the displayed percentage to the public token's 0–1 range.
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 70
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(70); // Default and reset value; apply saved app settings before first paint.
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 caption, nine canonical gemstones, and shared selected-glyph treatment. Keep
951
- `--lr-swatch-picker-wrap: nowrap`: desktop hit size `1.75rem` and gap `.25rem`; at widths up to
952
- `30rem`, hit size `1.5rem` and gap `.125rem` (28/4px and 24/2px at a 16px root). Leave its fill size
953
- unset. Bound the palette to the viewport and provide horizontal overflow for unusually narrow
954
- allocations or enlarged text; keyboard focus must bring every swatch into view. Do not shrink
955
- below the component's 24px floor or replace its Arrow/Home/End and RTL behavior. For an independent
956
- Shine preference, set `--lr-gemstone-selected-animation: none` on the scope shared by the trigger
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 70%
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 70% opacity with a 12px blur clamped to 16px.
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 70%, while a custom lower setting
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 70%; convert the displayed percentage to the public token's 0–1 range.
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 70
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(70); // Default and reset value; apply saved app settings before first paint.
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.0",
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.11.2",
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.3.289",
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.2",
11898
+ "postal-mime": "^4.0.4",
11899
11899
  "qrcode": "^1.5.4",
11900
11900
  "react": "^19.3.0",
11901
11901
  "shiki": "^4.5.0",