@aceshooting/lyra-ui 24.2.0 → 25.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +38 -26
  2. package/README.md +21 -18
  3. package/custom-elements.json +1 -1
  4. package/design-tokens.json +1 -1
  5. package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +1 -1
  6. package/dist/components/agent-tools/task-list/task-list.styles.js +1 -1
  7. package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +1 -1
  8. package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
  9. package/dist/components/conversation/code-block/code-block.styles.js +1 -1
  10. package/dist/components/conversation/code-block/shiki-dark-theme.js +1 -1
  11. package/dist/components/conversation/markdown/markdown.styles.js +1 -1
  12. package/dist/components/conversation/model-select/model-select.class.js +2 -1
  13. package/dist/components/conversation/model-select/model-select.styles.js +1 -1
  14. package/dist/components/conversation/selection-toolbar/selection-toolbar.styles.js +1 -1
  15. package/dist/components/conversation/voice-picker/voice-picker.class.js +2 -1
  16. package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
  17. package/dist/components/data/data-grid/data-grid.class.d.ts +7 -1
  18. package/dist/components/data/data-grid/data-grid.class.js +1 -1
  19. package/dist/components/data/document-library/document-library.class.js +1 -1
  20. package/dist/components/data/table/table.styles.js +1 -1
  21. package/dist/components/forms/color-picker/color-picker.class.js +2 -1
  22. package/dist/components/forms/color-picker/color-picker.styles.js +1 -1
  23. package/dist/components/forms/combobox/combobox.class.d.ts +5 -2
  24. package/dist/components/forms/combobox/combobox.class.js +2 -1
  25. package/dist/components/forms/combobox/combobox.styles.js +1 -1
  26. package/dist/components/forms/date-picker/date-input.class.d.ts +3 -0
  27. package/dist/components/forms/date-picker/date-input.class.js +2 -1
  28. package/dist/components/forms/date-picker/date-input.styles.js +1 -1
  29. package/dist/components/forms/input/time-input.class.js +2 -1
  30. package/dist/components/forms/input/time-input.styles.js +1 -1
  31. package/dist/components/forms/locale-picker/locale-picker.class.d.ts +2 -1
  32. package/dist/components/forms/locale-picker/locale-picker.class.js +2 -1
  33. package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -1
  34. package/dist/components/forms/otp-input/otp-input.class.js +1 -1
  35. package/dist/components/forms/select/select.class.js +2 -1
  36. package/dist/components/forms/select/select.styles.js +1 -1
  37. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +6 -1
  38. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  39. package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
  40. package/dist/components/layout/menu/menu.styles.js +1 -1
  41. package/dist/components/layout/menubar/menubar.styles.js +1 -1
  42. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +2 -2
  43. package/dist/components/layout/navigation-menu-item/navigation-menu-item.styles.js +1 -1
  44. package/dist/components/layout/scroller/scroller.styles.js +1 -1
  45. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +5 -0
  46. package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
  47. package/dist/components/media/av-player/av-player.styles.js +1 -1
  48. package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
  49. package/dist/components/media/map/map.class.d.ts +5 -2
  50. package/dist/components/media/map/map.class.js +4 -3
  51. package/dist/components/media/map/map.styles.js +1 -1
  52. package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
  53. package/dist/components/overlays/dialog/dialog.class.js +2 -1
  54. package/dist/components/overlays/dialog/dialog.styles.js +1 -1
  55. package/dist/components/overlays/overlay/overlay.styles.d.ts +1 -1
  56. package/dist/components/overlays/overlay/overlay.styles.js +1 -1
  57. package/dist/components/overlays/overlay/popover-glass.styles.d.ts +1 -0
  58. package/dist/components/overlays/overlay/popover-glass.styles.js +1 -0
  59. package/dist/components/overlays/overlay/popover.class.js +1 -1
  60. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +1 -1
  61. package/dist/components/retrieval/source-list/source-list.styles.js +1 -1
  62. package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
  63. package/dist/components/utility/export-button/export-button.class.js +2 -1
  64. package/dist/components/utility/export-button/export-button.styles.js +1 -1
  65. package/dist/components/utility/mention-popover/mention-popover.class.d.ts +1 -1
  66. package/dist/components/utility/mention-popover/mention-popover.class.js +2 -1
  67. package/dist/components/utility/mention-popover/mention-popover.styles.js +1 -1
  68. package/dist/components/utility/tour/tour.class.d.ts +6 -4
  69. package/dist/components/utility/tour/tour.class.js +1 -1
  70. package/dist/components/viewers/document-compare/document-compare.styles.js +1 -1
  71. package/dist/components/viewers/document-preview/document-preview.class.js +1 -1
  72. package/dist/framework-types.d.ts +1 -1
  73. package/dist/internal/glass-independent-root.styles.d.ts +2 -0
  74. package/dist/internal/glass-independent-root.styles.js +1 -0
  75. package/dist/internal/glass-scroll-layer.d.ts +1 -1
  76. package/dist/internal/glass-scroll-layer.js +1 -1
  77. package/dist/internal/glass-scroll-layer.styles.d.ts +2 -0
  78. package/dist/internal/glass-scroll-layer.styles.js +1 -0
  79. package/dist/internal/glass-surface.styles.d.ts +0 -2
  80. package/dist/internal/glass-surface.styles.js +1 -1
  81. package/dist/internal/native-modal-carrier.js +2 -2
  82. package/dist/internal/package-metadata.d.ts +1 -1
  83. package/dist/internal/package-metadata.js +1 -1
  84. package/dist/internal/sizes.styles.js +1 -1
  85. package/dist/internal/specialist-tokens.styles.js +1 -1
  86. package/dist/internal/theme-token-types.d.ts +16 -0
  87. package/dist/internal/tokens/palette.styles.js +1 -1
  88. package/dist/internal/tokens.styles.js +1 -1
  89. package/dist/looks/material.css +1 -1
  90. package/dist/styles/design-tokens.css +1 -1
  91. package/dist/styles/tokens-root.css +1 -1
  92. package/dist/surfaces/glass.css +1 -1
  93. package/dist/theme/gemstones.d.ts +7 -0
  94. package/dist/theme/gemstones.js +1 -1
  95. package/dist/theme/looks/material.d.ts +1 -1
  96. package/dist/theme/looks/material.js +1 -1
  97. package/dist/theme/startup-resolution.d.ts +1 -0
  98. package/dist/theme/startup-resolution.js +1 -0
  99. package/dist/theme/style-ownership.js +1 -1
  100. package/dist/theme/theme-bootstrap.js +1 -1
  101. package/dist/theme/theme.d.ts +6 -21
  102. package/dist/theme/theme.js +1 -1
  103. package/dist/theme.css +1 -1
  104. package/llms/components/lr-combobox.md +3 -2
  105. package/llms/components/lr-date-input.md +1 -1
  106. package/llms/components/lr-date-picker.md +6 -0
  107. package/llms/components/lr-dialog.md +3 -0
  108. package/llms/components/lr-export-button.md +2 -0
  109. package/llms/components/lr-icon.md +1 -1
  110. package/llms/components/lr-locale-picker.md +7 -1
  111. package/llms/components/lr-map.md +7 -0
  112. package/llms/components/lr-mention-popover.md +3 -0
  113. package/llms/components/lr-model-select.md +3 -0
  114. package/llms/components/lr-navigation-menu.md +3 -0
  115. package/llms/components/lr-otp-input.md +3 -1
  116. package/llms/components/lr-select.md +3 -0
  117. package/llms/components/lr-swatch-picker.md +17 -5
  118. package/llms/components/lr-tour.md +4 -2
  119. package/llms/components/lr-voice-picker.md +3 -0
  120. package/llms/shared/native-styles-and-utilities.md +40 -0
  121. package/llms/shared/styles-and-tokens.md +193 -93
  122. package/llms/shared.md +232 -93
  123. package/llms/tokens.md +82 -82
  124. package/package.json +1 -1
  125. package/vscode-css-data.json +1 -1
  126. package/web-types.json +1 -1
  127. package/dist/components/agent-tools/run-events.js +0 -1
  128. package/dist/components/agent-tools/tool-param-form/tool-param-types.js +0 -1
  129. package/dist/components/forms/emoji-picker/emoji-types.js +0 -1
  130. package/dist/components/layout/dashboard-grid/layout-types.js +0 -1
  131. package/dist/components/layout/details/accordion-types.js +0 -1
  132. package/dist/components/viewers/viewer-diagnostics.js +0 -1
  133. package/dist/internal/localization-types.js +0 -1
  134. package/dist/internal/node-type-style.js +0 -1
  135. package/dist/internal/picker-value.js +0 -1
  136. package/dist/internal/shared-unions.js +0 -1
  137. package/dist/internal/stream-phase.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,48 +1,60 @@
1
1
  # Changelog
2
2
 
3
- ## 24.2.0
3
+ ## 25.1.0
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - 78b333b: Add controlled `loadingMore` and optional `loadingMoreLabel` to tables. Incremental loading keeps existing rows and the focused Load more button in place, communicates localized progress, and suppresses duplicate requests while pending. Initial full-table loading remains separate.
8
- - 78b333b: Add an optional `interactionBoundary` to `lr-popover.showAt()` so caller-owned virtual targets can toggle a popover without outside-pointer dismissal racing their click handler. The boundary affects only light dismissal and preserves caller-owned positioning, ARIA, and focus return.
7
+ - 94a6d02: Emit `lr-tour-end` with reason `unavailable` when deferred placement fails and the tour closes, so hosts tracking the public lifecycle can clear their open state.
9
8
 
10
9
  ### Patch Changes
11
10
 
12
- - 548e61d: Preserve click pinning when popover or dropdown trigger lists combine click with hover or focus. Clicking an already revealed surface keeps it open without moving focus, while a second click dismisses it. Disabled or vetoed click openings no longer leave a stale pin behind.
13
- - 78b333b: Coalesce element resize positioning updates into the next animation frame to prevent resize-delivery errors when an open anchored surface changes size. Initial placement, scrolling and layout shifts remain immediate; queued resize updates are canceled when placement is disposed.
11
+ - Close the combobox if its positioning runtime fails, even when a host vetoes ordinary dismissal. The failure emits a non-cancelable `lr-hide`; later user-initiated dismissal remains cancelable.
12
+ - 8416b39: Keep `lr-data-grid` programmatic row alignment inside its own scrollable body so revealing a row does not move the page or an ancestor scroller.
13
+ - 8416b39: Measure data-grid row, group, and expanded-detail heights in layout pixels so ancestor transforms and CSS zoom do not corrupt virtual scrolling. Correct subpixel scroll rounding for rendered and virtual rows so zoomed rows reach their requested viewport edge.
14
+ - 8416b39: Keep map legend spacing aligned with native controls when an ancestor scales or zooms the map.
15
+ - cfa77b8: Align virtual-list rows to the content viewport of a bordered external scroll element. Programmatic start, end, and nearest scrolling now account for the scroller's block-start border.
14
16
 
15
- Reduce temporary placement allocations while preserving rollback and consumer-owned styles.
17
+ Remove redundant hex parsing from syntax-theme detection while preserving the browser's resolved CSS color behavior.
18
+ - 8416b39: Align virtual-list rows correctly when an external scroll element or the list has a positive CSS scale or zoom. Start, end, and nearest scrolling now convert rendered geometry to list and scroll coordinates, including fractional borders and Window scrollers.
16
19
 
17
- ## 24.1.0
18
-
19
- ### Minor Changes
20
-
21
- - c3ed27e: Expose approval finalization and retry methods on `lr-agent-workspace` for its built-in tool timeline.
22
-
23
- ### Patch Changes
24
-
25
- - c3ed27e: Correct the table sort listener example and v24 event detail and global event type guidance.
26
- - c3ed27e: Keep swatch radios and keyboard focus stable when applications assign equivalent fresh palette items, while preserving distinct duplicate occurrences and original item identities during reordering.
27
-
28
- ## 24.0.0
20
+ ## 25.0.0
29
21
 
30
22
  ### Major Changes
31
23
 
32
- - aa25ee4: Remove the eligible v22 compatibility APIs after their supported v23 transition period. Use granular component registration and class imports, the independent style APIs, and the `lyra-v21` and `lyra-v22` migration profiles when upgrading. Upstream-mirrored aliases and saved style-preference readers remain supported.
24
+ - ad64381: Use Shadcn, Glass, Emerald and System mode as the built-in appearance defaults. First paint, runtime restoration and resets share the same profile while preserving independently saved choices, including explicit Solid surfaces, the Lyra look and cleared accents. `accent: null` remains an explicit clear; `resetLyraStyle()` restores the Emerald default.
33
25
 
34
- Consolidate component implementations and behavioral tests, refresh library documentation, and qualify styling, localization, package costs and representative compositions for the new release.
26
+ Use a 70% opaque Glass fill across navigation, menus, listboxes, dialogs and drawers, with foreground contrast protection. Native application chrome can use `.lr-surface-chrome` from `theme.css`. Scrolling surfaces keep their material stationary, nested surfaces avoid repeated blur, and accessibility preferences retain opaque fills.
35
27
 
36
- Data grids resolve themed row heights once per measurement pass, reducing repeated layout work for large and expanded tree views while preserving live theme changes.
28
+ Allow `--lr-theme-surface-opacity` to span 0–1 for user-controlled Glass opacity. The default remains 70%; Solid surfaces and increased-contrast or reduced-transparency preferences remain opaque. The design-panel recipe uses the existing slider, the public CSS input and an application preference to save and reset opacity.
37
29
 
38
- Clearing a component's locale override now observes the inherited locale even when the public locale resolver was called before its next render. Time inputs reuse the active locale's native-digit map across keystrokes while continuing to accept ASCII digits. Media controls share locale-aware time formatting, and animation timing uses a shared CSS time parser; the AV player retains its whole-second rounding behavior.
30
+ Preserve explicit Solid and Glass scopes across nested and promoted surfaces, and keep plain rail and menubar frames transparent. Align form controls across size tiers while preserving custom sizing and wrapping. Keep keyboard focus visible inside clipped panels and image viewports, and restore visible hover feedback in document comparison panes.
39
31
 
40
- Map data layers skip unused fallback color resolution when explicit colors are valid. Command palettes project visible result rows plus the active row without filtering every group, and Lite Chart reuses the category-label width it already measured for automatic axis selection. These changes preserve the existing rendered and interaction contracts; no latency claim is implied.
32
+ Resolve contrast corrections against the selected or inherited look during startup and runtime updates. Preserve the Lyra look's local decorative-border fallback while retaining Shadcn defaults without a theme stylesheet.
41
33
 
42
- Lite Chart no longer reads the retired `accessibleLabel` property as a fallback. Streaming text documents and types its existing internal-link event, while RAG answers contain their owned markdown child's link events. Buttons share identical slot and focus handlers, and locale resolution shares one cache record per component.
34
+ ### Minor Changes
43
35
 
44
- The package README, migration guides and agent skill now route to focused v24 import, styling, SSR and event-detail guidance. Historical roadmap scope remains available through stable anchors and focused pages.
36
+ - d839991: Add `--lr-gemstone-selected-animation` to disable the selected gemstone shine independently while preserving its static halo. The inherited hook works in gemstone swatch pickers and external glyphs, preserves the default loop when unset, and respects application and OS reduced motion.
37
+
38
+ ### Patch Changes
45
39
 
46
- Event-detail migration diagnostics distinguish payload fields from component properties, avoiding conflicting advice for `lr-app-rail-group` listeners. The retained migration profiles continue to report manual changes for consumers upgrading across multiple major versions.
40
+ - Handle map style failures after rendering and discard obsolete work when the style or connection changes.
41
+ - Honor the current disabled and read-only state before submitting a completed OTP value.
42
+ - Refresh knowledge-base error content when an existing child's slot assignment changes.
43
+ - Cancel obsolete text previews before rendering a changed format or loading status.
44
+ - Announce asynchronously rendered chat messages across window realms, including adopted custom elements.
45
+ - Refresh document-library error content when an existing child's slot assignment changes.
46
+ - Preserve tall content inside vertically constrained scrollers instead of shrinking slotted items to the viewport.
47
+ - Reset a collapsed map legend's scroll position so its Glass layer cannot retain an empty scroll range; preserve focus and expanded scrolling.
48
+ - 29ef483: Keep locale-picker language menus within the viewport when text is enlarged by capping their minimum width by the existing viewport limit.
49
+ - 57d8360: Declare cascade layer order in the signature starter so bundled styles preserve the selected look and accent, and include the supported refresh glyph in the icon reference.
50
+ - ad64381: Apply the shared Glass treatment to map navigation, scale, attribution and legends. Solid and
51
+ accessibility preferences retain opaque surfaces, and scrolling legends keep their material
52
+ stationary without changing native peer controls or map data colors.
53
+
54
+ Defer resize-observer control measurements to the next animation frame so adjusting a legend's
55
+ available space cannot interrupt the same resize notification cycle. Cancel pending measurements
56
+ when the map disconnects or changes containers.
57
+ - 3023260: Keep locale loading Retry reachable beside an open locale picker popup, including top-layer popups. The popup places outside failure guidance while preserving the previous selection until loading succeeds.
58
+ - 6825826: Reveal the complete keyboard-focused swatch in scrolling single-row palettes, including after item updates.
47
59
 
48
60
  Older major versions: [release history archive](https://github.com/aceshooting/lyra-ui/tree/main/docs/changelog).
package/README.md CHANGED
@@ -10,13 +10,13 @@
10
10
  [![npm](https://img.shields.io/npm/v/%40aceshooting%2Flyra-ui)](https://www.npmjs.com/package/@aceshooting/lyra-ui)
11
11
  [![npm downloads](https://img.shields.io/npm/dm/%40aceshooting%2Flyra-ui)](https://www.npmjs.com/package/@aceshooting/lyra-ui)
12
12
  [![npm weekly downloads](https://img.shields.io/npm/dw/%40aceshooting%2Flyra-ui)](https://www.npmjs.com/package/@aceshooting/lyra-ui)
13
- [![Node.js](https://img.shields.io/node/v/%40aceshooting%2Flyra-ui)](https://www.npmjs.com/package/@aceshooting/lyra-ui)
13
+ [![Node.js](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fregistry.npmjs.org%2F%40aceshooting%2Flyra-ui%2Flatest&query=%24.engines.node&label=node&color=339933&logo=nodedotjs&logoColor=white)](https://www.npmjs.com/package/@aceshooting/lyra-ui)
14
14
  [![Lit](https://img.shields.io/badge/Lit-3-324FFF?logo=lit)](https://lit.dev/)
15
15
  [![Web Components](https://img.shields.io/badge/Web%20Components-native-29ABE2)](https://www.webcomponents.org/)
16
16
  [![avg per component](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Faceshooting%2Flyra-ui%2Fmain%2Fpackages%2Flyra-ui%2Fscripts%2Fbundle-stats.json&query=%24.avgComponentGzipKb&label=avg%20per%20component&suffix=%20KB%20gzip&color=blue)](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/scripts/bundle-stats.json)
17
17
  [![total gzip](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Faceshooting%2Flyra-ui%2Fmain%2Fpackages%2Flyra-ui%2Fscripts%2Fbundle-stats.json&query=%24.barrelGzipKb&label=total%20gzip&suffix=%20KB&color=blue)](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/scripts/bundle-stats.json)
18
- [![types](https://img.shields.io/npm/types/%40aceshooting%2Flyra-ui)](https://www.npmjs.com/package/@aceshooting/lyra-ui)
19
- [![license](https://img.shields.io/npm/l/%40aceshooting%2Flyra-ui)](./LICENSE)
18
+ [![types](https://img.shields.io/badge/types-TypeScript-3178C6?logo=typescript&logoColor=white)](https://www.npmjs.com/package/@aceshooting/lyra-ui)
19
+ [![license](https://img.shields.io/github/license/aceshooting/lyra-ui)](./LICENSE)
20
20
 
21
21
  <p align="center">
22
22
  <a href="https://www.lyra-ui.com/">
@@ -62,7 +62,10 @@ v24 publication.
62
62
  For new apps, use the [Lyra signature starter](./llms/shared/styles-and-tokens.md#lyra-signature-starter):
63
63
  Shadcn, glass, Emerald, theme-aware spotlights, compact gemstones and country-flag language controls.
64
64
  The recipe preserves saved choices and explicit branding and covers first paint, persistence and
65
- accessible controls. Lyra's runtime defaults remain independently configurable.
65
+ accessible controls. The built-in profile is Shadcn/Glass/Emerald/System with comfortable density;
66
+ saved choices override each axis independently. To retain the earlier appearance, select
67
+ `look: 'lyra'`, `surface: 'solid'`, and `accent: null` explicitly. Clearing an accent with `null`
68
+ remains supported; `resetLyraStyle()` restores Emerald.
66
69
 
67
70
  See the [changelog](CHANGELOG.md) for version-by-version changes and historical upgrade notes.
68
71
 
@@ -505,27 +508,27 @@ matching `data-lr-theme` attribute) on an ancestor:
505
508
  @import "@aceshooting/lyra-ui/theme.css";
506
509
  ```
507
510
 
508
- **shadcn/ui look.** Add one more import to restyle every component after shadcn/ui's default
509
- ("new-york", Neutral) — monochrome primary, `0.5rem` radii, `text-sm`, `h-9` controls, a 3px focus
510
- ring. It layers over `theme.css` whatever the load order, also answers to shadcn's `.dark`/`.light`
511
- classes, and keeps gemstone accents working. A few values deliberately differ from shadcn to keep
512
- WCAG contrast (control borders, focus colour, danger red, chart colours); see
513
- [The shadcn look](./llms/shared.md#the-shadcn-look--looksshadcncss).
511
+ **Appearance defaults.** Shadcn, Glass, Emerald, System mode and comfortable density are built in.
512
+ `theme.css` supplies the document-level profile, including the default look, accent and material;
513
+ granular components also carry these visual defaults. Select a different look or accent through
514
+ the canonical style API, preserving each valid saved choice at startup:
514
515
 
515
- ```css
516
- @import "@aceshooting/lyra-ui/theme.css";
517
- @import "@aceshooting/lyra-ui/looks/shadcn.css";
518
- @import "@aceshooting/lyra-ui/accents.css";
516
+ ```js
517
+ import { setLyraStyle } from '@aceshooting/lyra-ui/theme.js';
518
+
519
+ setLyraStyle({}); // Restore saved choices; missing or invalid fields use the built-in profile.
519
520
  ```
520
521
 
521
- Select the same look through the canonical style API after importing its stylesheet:
522
+ To retain the earlier Lyra/Solid appearance without an accent:
522
523
 
523
524
  ```js
524
- import { setLyraStyle } from '@aceshooting/lyra-ui/theme.js';
525
-
526
- setLyraStyle({ look: 'shadcn', mode: 'system', accent: 'sapphire' });
525
+ setLyraStyle({ look: 'lyra', surface: 'solid', accent: null });
527
526
  ```
528
527
 
528
+ `accent: null` clears the accent. `resetLyraStyle()` restores the built-in profile, including
529
+ Emerald; pass a field list to reset only those axes. See [The shadcn look](./llms/shared.md#the-shadcn-look--looksshadcncss)
530
+ for the look's typography, geometry and contrast adjustments.
531
+
529
532
  The style API persists the independent look, surface, density, mode and accent choices. See the
530
533
  [style API guide](./llms/shared/styles-and-tokens.md#composing-looks-surfaces-and-density) for
531
534
  scoped styling, reset and saved-preference behavior.