@aceshooting/lyra-ui 23.0.0 → 24.0.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 +9 -43
- package/README.md +72 -35
- package/custom-elements.json +1 -1
- package/design-tokens.json +1 -1
- package/dist/cli/lyra-rename-ledger.mjs +1 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/cli/migration-contract.mjs +1 -1
- package/dist/cli/migration-renames.mjs +2 -2
- package/dist/cli/migration-transforms.mjs +2 -2
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts +1 -4
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -3
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +1 -4
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +1 -7
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.d.ts +2 -5
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -3
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -4
- package/dist/components/agent-tools/terminal/terminal.class.js +2 -2
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +1 -7
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +1 -4
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -3
- package/dist/components/charts/chart/lite-chart-axis-layout.d.ts +13 -0
- package/dist/components/charts/chart/lite-chart-axis-layout.js +1 -0
- package/dist/components/charts/chart/lite-chart.class.d.ts +1 -11
- package/dist/components/charts/chart/lite-chart.class.js +4 -4
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +2 -2
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +0 -1
- package/dist/components/conversation/chat-message/chat-message.class.d.ts +3 -9
- package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-base.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts +6 -8
- package/dist/components/conversation/code-block/code-block-shared.d.ts +1 -4
- package/dist/components/conversation/code-block/code-block.class.d.ts +4 -6
- package/dist/components/conversation/markdown/markdown-base.class.d.ts +1 -3
- package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.d.ts +1 -4
- package/dist/components/conversation/markdown/markdown.class.d.ts +1 -4
- package/dist/components/conversation/message-actions/message-actions.class.d.ts +1 -4
- package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts +1 -4
- package/dist/components/conversation/message-feedback/message-feedback.class.js +2 -2
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +2 -5
- package/dist/components/conversation/message-parts/message-parts.class.js +3 -3
- package/dist/components/conversation/streaming-text/streaming-text-base.class.d.ts +1 -1
- package/dist/components/conversation/streaming-text/streaming-text-core.class.d.ts +2 -0
- package/dist/components/conversation/streaming-text/streaming-text-core.class.js +0 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +2 -0
- package/dist/components/conversation/streaming-text/streaming-text.class.js +0 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +6 -17
- package/dist/components/conversation/thread-list/thread-list.class.js +6 -6
- package/dist/components/data/context-meter/context-meter.class.d.ts +1 -6
- package/dist/components/data/context-meter/context-meter.class.js +1 -1
- package/dist/components/data/data-grid/data-grid.class.d.ts +0 -1
- package/dist/components/data/data-grid/data-grid.class.js +2 -2
- package/dist/components/data/document-library/document-library.class.d.ts +6 -13
- package/dist/components/data/document-library/document-library.class.js +1 -2
- package/dist/components/data/heatmap/heatmap-grid-navigation.d.ts +7 -0
- package/dist/components/data/heatmap/heatmap-grid-navigation.js +1 -0
- package/dist/components/data/heatmap/heatmap.class.d.ts +3 -23
- package/dist/components/data/heatmap/heatmap.class.js +2 -2
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +3 -9
- package/dist/components/data/sequence-strip/sequence-strip.class.js +3 -3
- package/dist/components/data/table/table.class.d.ts +5 -14
- package/dist/components/data/table/table.class.js +6 -6
- package/dist/components/forms/button/button.class.d.ts +2 -2
- package/dist/components/forms/button/button.class.js +9 -9
- package/dist/components/forms/combobox/combobox.class.d.ts +1 -4
- package/dist/components/forms/combobox/combobox.class.js +2 -2
- package/dist/components/forms/input/time-input.class.d.ts +1 -1
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/select/select.class.d.ts +1 -2
- package/dist/components/layout/app-rail/app-rail-item.class.d.ts +3 -6
- package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +2 -4
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/app-rail-group/app-rail-group.class.d.ts +2 -6
- package/dist/components/layout/app-rail-group/app-rail-group.class.js +1 -1
- package/dist/components/layout/carousel/carousel.class.d.ts +1 -4
- package/dist/components/layout/carousel/carousel.class.js +2 -2
- package/dist/components/layout/command-palette/command-palette.class.js +1 -1
- package/dist/components/layout/details/details.class.d.ts +2 -4
- package/dist/components/layout/details/details.class.js +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +3 -7
- package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
- package/dist/components/layout/menu/menu.class.js +1 -1
- package/dist/components/layout/multi-split/multi-split.class.d.ts +2 -4
- package/dist/components/layout/multi-split/multi-split.class.js +1 -1
- package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.d.ts +2 -4
- package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-item.class.d.ts +1 -4
- package/dist/components/layout/reorder-list/reorder-item.class.js +2 -2
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +5 -9
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +5 -5
- package/dist/components/media/av-player/av-player.class.js +3 -3
- package/dist/components/media/file-input/file-input.class.d.ts +3 -6
- package/dist/components/media/file-input/file-input.class.js +3 -3
- package/dist/components/media/lightbox/lightbox.class.d.ts +11 -20
- package/dist/components/media/lightbox/lightbox.class.js +1 -1
- package/dist/components/media/map/map-data-layers.d.ts +20 -0
- package/dist/components/media/map/map-data-layers.js +1 -0
- package/dist/components/media/map/map.class.js +3 -3
- package/dist/components/media/media-time.d.ts +2 -0
- package/dist/components/media/media-time.js +1 -0
- package/dist/components/media/video/video.class.js +5 -5
- package/dist/components/media/video-playlist/video-playlist.class.js +2 -2
- package/dist/components/overlays/callout/callout.class.d.ts +2 -5
- package/dist/components/overlays/callout/callout.class.js +2 -2
- package/dist/components/overlays/dialog/dialog.class.d.ts +4 -7
- package/dist/components/overlays/dialog/dialog.class.js +2 -2
- package/dist/components/overlays/overlay/dropdown.class.d.ts +5 -10
- package/dist/components/overlays/overlay/dropdown.class.js +2 -2
- package/dist/components/overlays/overlay/popover.class.d.ts +2 -3
- package/dist/components/overlays/popup/popup.class.js +1 -1
- package/dist/components/overlays/progress/progress-bar.class.d.ts +1 -4
- package/dist/components/overlays/progress/progress-bar.class.js +2 -2
- package/dist/components/overlays/progress/progress-ring.class.d.ts +1 -4
- package/dist/components/overlays/progress/progress-ring.class.js +2 -2
- package/dist/components/overlays/progress/progress-shared.d.ts +3 -3
- package/dist/components/overlays/progress/progress-shared.js +1 -1
- package/dist/components/overlays/toast/toast-item.class.js +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +5 -10
- package/dist/components/retrieval/graph/graph.class.js +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +7 -14
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -3
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +2 -8
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +0 -4
- package/dist/components/retrieval/rag-answer/rag-answer.class.js +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +6 -10
- package/dist/components/utility/export-button/export-button.class.js +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer-timing.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
- package/dist/events.d.ts +17 -78
- package/dist/framework-types.d.ts +1 -1
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/css-motion-time.d.ts +7 -0
- package/dist/internal/css-motion-time.js +1 -0
- package/dist/internal/data-state-renderer.d.ts +1 -3
- package/dist/internal/data-state-renderer.js +1 -1
- package/dist/internal/localization-runtime.d.ts +2 -0
- package/dist/internal/localization-runtime.js +1 -1
- package/dist/internal/lyra-element.js +2 -2
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/looks/data.css +1 -1
- package/dist/looks/terminal.css +1 -1
- package/dist/lyra.d.ts +1 -592
- package/dist/lyra.js +1 -1
- package/dist/testing/event-factory.d.ts +2 -2
- package/dist/testing/interaction-drivers.d.ts +5 -3
- package/dist/testing/lyra-tag-event-map.js +1 -1
- package/dist/theme/looks/data.d.ts +1 -1
- package/dist/theme/looks/data.js +1 -1
- package/dist/theme/looks/terminal.d.ts +1 -1
- package/dist/theme/looks/terminal.js +1 -1
- package/dist/theme/theme.d.ts +2 -80
- package/dist/theme/theme.js +1 -1
- package/llms/components/lr-agent-workspace.md +1 -1
- package/llms/components/lr-alert.md +1 -1
- package/llms/components/lr-animation.md +1 -1
- package/llms/components/lr-app-rail.md +8 -10
- package/llms/components/lr-approval-queue.md +2 -4
- package/llms/components/lr-attachment-trigger.md +3 -4
- package/llms/components/lr-badge.md +2 -2
- package/llms/components/lr-button.md +45 -99
- package/llms/components/lr-callout.md +3 -4
- package/llms/components/lr-carousel.md +3 -5
- package/llms/components/lr-chat-message.md +1 -2
- package/llms/components/lr-claim-evidence.md +1 -1
- package/llms/components/lr-code-block-core.md +2 -2
- package/llms/components/lr-code-block.md +5 -6
- package/llms/components/lr-color-picker.md +1 -1
- package/llms/components/lr-combobox.md +5 -6
- package/llms/components/lr-compare-panel.md +2 -4
- package/llms/components/lr-confirm-bar.md +3 -7
- package/llms/components/lr-context-inspector.md +3 -2
- package/llms/components/lr-context-menu.md +2 -2
- package/llms/components/lr-context-meter.md +2 -4
- package/llms/components/lr-copy-button.md +1 -1
- package/llms/components/lr-data-grid.md +4 -7
- package/llms/components/lr-details.md +3 -3
- package/llms/components/lr-dialog.md +4 -6
- package/llms/components/lr-dock-panel.md +5 -6
- package/llms/components/lr-document-library.md +5 -7
- package/llms/components/lr-drawer.md +3 -3
- package/llms/components/lr-dropdown.md +4 -5
- package/llms/components/lr-eval-run.md +3 -5
- package/llms/components/lr-export-button.md +4 -7
- package/llms/components/lr-file-input.md +0 -5
- package/llms/components/lr-funnel.md +1 -1
- package/llms/components/lr-graph.md +3 -7
- package/llms/components/lr-icon.md +1 -1
- package/llms/components/lr-include.md +1 -1
- package/llms/components/lr-input.md +31 -79
- package/llms/components/lr-json-viewer.md +1 -1
- package/llms/components/lr-knowledge-base.md +4 -6
- package/llms/components/lr-knowledge-graph-explorer.md +2 -5
- package/llms/components/lr-known-date.md +1 -1
- package/llms/components/lr-lightbox.md +9 -7
- package/llms/components/lr-lite-chart.md +1 -5
- package/llms/components/lr-markdown-core.md +3 -4
- package/llms/components/lr-markdown.md +3 -5
- package/llms/components/lr-mcp-app.md +1 -1
- package/llms/components/lr-message-actions.md +2 -3
- package/llms/components/lr-message-feedback.md +1 -3
- package/llms/components/lr-message-parts.md +4 -5
- package/llms/components/lr-multi-split.md +8 -7
- package/llms/components/lr-native-time-input.md +1 -1
- package/llms/components/lr-navigation-menu.md +5 -5
- package/llms/components/lr-number-input.md +3 -1
- package/llms/components/lr-otp-input.md +2 -0
- package/llms/components/lr-page.md +1 -1
- package/llms/components/lr-pan-zoom.md +1 -1
- package/llms/components/lr-phone-input.md +3 -1
- package/llms/components/lr-popover.md +2 -2
- package/llms/components/lr-progress-bar.md +3 -5
- package/llms/components/lr-progress-ring.md +5 -7
- package/llms/components/lr-prompt-input.md +1 -1
- package/llms/components/lr-prompt-queue.md +1 -1
- package/llms/components/lr-prompt-studio.md +1 -1
- package/llms/components/lr-rag-eval-dashboard.md +1 -1
- package/llms/components/lr-rating.md +2 -2
- package/llms/components/lr-realtime-session.md +1 -1
- package/llms/components/lr-reorder-item.md +1 -1
- package/llms/components/lr-reorder-list.md +2 -3
- package/llms/components/lr-retrieval-compare.md +1 -1
- package/llms/components/lr-select.md +3 -1
- package/llms/components/lr-selection-toolbar.md +1 -1
- package/llms/components/lr-sequence-strip.md +3 -8
- package/llms/components/lr-span-waterfall.md +1 -1
- package/llms/components/lr-split-panel.md +1 -1
- package/llms/components/lr-streaming-text-core.md +2 -1
- package/llms/components/lr-streaming-text.md +3 -2
- package/llms/components/lr-subagent-panel.md +1 -1
- package/llms/components/lr-swatch-picker.md +4 -4
- package/llms/components/lr-switch.md +3 -1
- package/llms/components/lr-table.md +33 -85
- package/llms/components/lr-terminal.md +2 -5
- package/llms/components/lr-textarea.md +1 -1
- package/llms/components/lr-thread-list.md +8 -14
- package/llms/components/lr-time-input.md +1 -1
- package/llms/components/lr-toggle-group.md +2 -2
- package/llms/components/lr-toggle.md +1 -1
- package/llms/components/lr-tool-approval-dialog.md +4 -7
- package/llms/components/lr-tool-call-block.md +1 -1
- package/llms/components/lr-tool-timeline.md +2 -5
- package/llms/components/lr-video-playlist.md +1 -1
- package/llms/components/lr-video.md +1 -1
- package/llms/components/lr-widget-renderer.md +7 -6
- package/llms/components/lr-zoomable-frame.md +1 -1
- package/llms/index.md +3 -618
- package/llms/migration.md +614 -614
- package/llms/shared/events-and-types.md +25 -24
- package/llms/shared/frameworks-and-ssr.md +7 -3
- package/llms/shared/imports-and-registration.md +22 -22
- package/llms/shared/localization-and-rtl.md +2 -2
- package/llms/shared/native-styles-and-utilities.md +263 -0
- package/llms/shared/styles-and-tokens.md +85 -676
- package/llms/shared/testing-and-utilities.md +12 -11
- package/llms/shared/v23-to-v24-migration.md +167 -0
- package/llms/shared.md +142 -487
- package/llms/tokens.md +3 -3
- package/llms.txt +9 -4
- package/package.json +7 -311
- package/registrations.json +1 -1
- package/vscode-html-data.json +1 -1
- package/web-types.json +1 -1
- package/dist/ssr-loader.d.ts +0 -2
- package/dist/ssr-loader.js +0 -1
- package/dist/theme/presets/shadcn.d.ts +0 -22
- package/dist/theme/presets/shadcn.js +0 -1
- package/dist/theme/presets.d.ts +0 -49
- package/dist/theme/presets.js +0 -1
- package/dist/themes/shadcn.css +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,57 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 24.0.0
|
|
4
4
|
|
|
5
5
|
### Major Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 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.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Consolidate component implementations and behavioral tests, refresh library documentation, and qualify styling, localization, package costs and representative compositions for the new release.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
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.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
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.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
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.
|
|
16
16
|
|
|
17
|
-
`
|
|
17
|
+
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.
|
|
18
18
|
|
|
19
|
-
The
|
|
19
|
+
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.
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Unsized `lr-textarea`, `lr-code-block`, `lr-code-block-core`, and `lr-code-editor` now follow their content instead of filling a definite-height ancestor automatically. Set `block-size: 100%` on the component where full-height filling is intended. Auto-growing textareas keep overflowing content scrollable when an explicit allocation is smaller than their content or shrinks later.
|
|
24
|
-
|
|
25
|
-
Cancelled agent-run steps now appear as neutral incomplete steps in the default task list, with a polite incomplete announcement instead of an error indication and a failed-step announcement.
|
|
26
|
-
|
|
27
|
-
### Minor Changes
|
|
28
|
-
|
|
29
|
-
- Poll status adds an optional `with-refresh` action and a built-in `refresh` icon. Manual refresh emits `lr-poll-due` with `{ manual: true }` and restarts the configured delay; paused polling stays paused. Automatic polling keeps its existing event payload.
|
|
30
|
-
- Tooltip, select, combobox, locale-picker, navigation-menu and app-rail-item add an opt-in `top-layer` mode for popups that must appear above sibling stacking contexts. App-rail forwards this choice to its item tooltips, and navigation-menu forwards it to its item panels.
|
|
31
|
-
- Random-content adds an optional `with-next` action, the `next-button` part, and a public `restart()` method. The localized “Show another” action advances the content and restarts active autoplay without bypassing pause, focus, or reduced-motion preferences.
|
|
32
|
-
- Trace spans, task-list steps and research-progress steps support an `incomplete` status for work stopped without success or failure. Research-progress preserves steps with unknown statuses as pending.
|
|
33
|
-
- Knowledge-graph-explorer exposes `fit()`, `resetView()` and `focusNode()` so consumers can frame its graph without reaching into its shadow root.
|
|
34
|
-
|
|
35
|
-
### Patch Changes
|
|
36
|
-
|
|
37
|
-
- Modal dialogs and related modal surfaces remain interactive when opened above a native `dialog.showModal()`, preserving close vetoes, Escape handling and focus return. Toast helpers and announcements follow the active modal context, including components without a default slot.
|
|
38
|
-
- Tool approval, result and selection dialogs apply the host's `aria-label` to the element that owns the dialog role, ahead of their generated heading labels.
|
|
39
|
-
- Virtual lists remeasure rendered rows after their key callback or indexed source changes, and group markers after their labels change, even when their DOM boxes keep the same size. This prevents estimated heights from replacing measured heights and overlapping rows or group headers.
|
|
40
|
-
- Navigation-menu indicators stay aligned with the open trigger when a sibling item resizes, in both left-to-right and right-to-left layouts.
|
|
41
|
-
- Popup positioning resolves containing blocks across shadow roots and ignores ineffective transform and containment declarations on inline ancestors. Dropdowns and checkbox filter menus inside dialogs stay anchored to their triggers without introducing horizontal dialog scrolling, including right-to-left layouts.
|
|
42
|
-
- Model and voice picker listboxes honor the inherited `--lr-positioning-strategy` override, while retaining fixed positioning when no recognized override is set.
|
|
43
|
-
- Migration diagnostics recognize browser-supported HTML comment endings, keeping following markup and migration review acknowledgements visible to the scanner.
|
|
44
|
-
- Map legends reserve a stable scrollbar gutter to prevent transparent compositor artifacts over the canvas. Icon legend entries omit the color-swatch border in normal and forced-colors modes while retaining their glyph cue.
|
|
45
|
-
- Details headers hide empty action wrappers from layout, allowing the summary to span the full header. Populated actions keep their responsive layout.
|
|
46
|
-
- Agent-workspace headers omit empty action wrappers so narrow layouts do not reserve a blank row.
|
|
47
|
-
- Tours align the scrim, spotlight and interactive target opening under transformed or contained ancestors, and preserve caller-owned inline positioning when the tour closes.
|
|
48
|
-
- Tours, command palettes, lightboxes and tool approval, result and selection dialogs return focus when an opener becomes visible after close. Chat-message preserves focus when a failure action clears its state inside a consumer shadow root.
|
|
49
|
-
- Callout, empty-state and toast announcements observe text rendered later inside slotted custom elements, including elements defined after insertion. Spinner, chip, tag, card, widget and progress labels also follow changes inside slotted shadow roots.
|
|
50
|
-
- Carousel autoplay stays paused while a slide's dropdown or other tracked overlay is open, including when focus moves into its top-layer popup.
|
|
51
|
-
- Charts preserve a user's zoom across data and locale updates. GeoJSON viewers frame data through the map's size-aware, padded, antimeridian-safe `fitBounds()` API.
|
|
52
|
-
- Calendar heatmap month labels and span-waterfall axis labels avoid overlap and clipping, including right-to-left layouts.
|
|
53
|
-
- Menu-item details and suffix hints, and command-palette shortcuts, retain their space beside overflowing labels or descriptions.
|
|
54
|
-
- Icon-only toggles preserve glyph glows when accompanying text is visually hidden, including when visibility changes after mounting. Buttons and toggles share icon-only content detection.
|
|
55
|
-
- Slider readouts, thumb tooltips and range endpoints, and stat values and breakdown values, preserve formatted numeric reading order in right-to-left layouts.
|
|
21
|
+
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.
|
|
56
22
|
|
|
57
23
|
Older major versions: [release history archive](https://github.com/aceshooting/lyra-ui/tree/main/docs/changelog).
|
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ library for accessible forms, dashboards, charts, data visualization, and AI cha
|
|
|
29
29
|
Built with [Lit](https://lit.dev), it works with Lit, React, Vue, Angular, Svelte, and plain JavaScript.
|
|
30
30
|
It is a practical open-source alternative to [Shoelace](https://shoelace.style/) and
|
|
31
31
|
[Web Awesome](https://webawesome.com/), with 303 custom elements, native custom-element APIs,
|
|
32
|
-
tree-shakeable imports, its own `--lr-*` design tokens, built-in localization and RTL support,
|
|
32
|
+
tree-shakeable, granular per-component imports, its own `--lr-*` design tokens, built-in localization and RTL support,
|
|
33
33
|
and no runtime dependency on either project.
|
|
34
34
|
|
|
35
35
|
> **Independent implementation.** Lyra is not affiliated with, endorsed by, or a fork or rebrand of
|
|
@@ -55,6 +55,10 @@ and no runtime dependency on either project.
|
|
|
55
55
|
| Languages | 66 optional complete message catalogs plus built-in English. The [`locales.json` manifest](./locales.json) lists canonical tags, authored source spellings, import paths and structural coverage. Import a [whole catalog](./llms/shared.md#ready-made-catalogs-aceshootinglyra-uitranslationslocalejs) (`@aceshooting/lyra-ui/translations/<locale>.js`) or only the [family slices](./llms/shared.md#smaller-catalogs-aceshootinglyra-uitranslationslocalefamilyjs) the application renders. |
|
|
56
56
|
| Typography | [Typography utilities](./llms/shared.md#typography) apply a shared scale and reading styles to native content alongside custom elements. |
|
|
57
57
|
|
|
58
|
+
The [release roadmap](../../docs/roadmap.md#roadmap-index-and-release-status) tracks v24 styling,
|
|
59
|
+
localization, cleanup and qualification work, then the separate website and consumer rollout after
|
|
60
|
+
v24 publication.
|
|
61
|
+
|
|
58
62
|
Choose the original Lyra look by loading `theme.css`. To select shadcn through the runtime:
|
|
59
63
|
|
|
60
64
|
```js
|
|
@@ -85,6 +89,27 @@ Cancelled agent-run steps now appear as neutral incomplete steps in the default
|
|
|
85
89
|
a polite incomplete announcement instead of a failed-step announcement. The run itself keeps its
|
|
86
90
|
cancelled status and retry behavior.
|
|
87
91
|
|
|
92
|
+
## Upgrading to v24
|
|
93
|
+
|
|
94
|
+
V24 removes eligible v22 compatibility APIs while retaining component tags and the eight mirrored
|
|
95
|
+
upstream spellings. Import constructors from their registration-free family `.class.js` paths and
|
|
96
|
+
register tags through `components/lr-<tag>.js`; the duplicate nested registration routes and
|
|
97
|
+
`ssr-loader.js` are removed. For browser hydration import `hydration.js` before Lit, then chosen
|
|
98
|
+
registrations. Server rendering uses `ssr.js` and, when needed, `ssr/all.js`; see the
|
|
99
|
+
[SSR examples](#ssr--declarative-shadow-dom).
|
|
100
|
+
|
|
101
|
+
The old theme and preset facade, `data-lr-theme-preset`, and fixed `themes/shadcn.css` are also
|
|
102
|
+
removed. Use `setLyraStyle()` from `theme.js` with independent look, surface, density, mode and
|
|
103
|
+
accent choices. Theme calls and saved data need semantic review: the former `surface` color maps to
|
|
104
|
+
`accentBackground`, while the new `surface` selects a treatment. Saved v1 preferences remain
|
|
105
|
+
readable. The [style guide](./llms/shared/styles-and-tokens.md#composing-looks-surfaces-and-density)
|
|
106
|
+
documents the current API.
|
|
107
|
+
|
|
108
|
+
Run the installed, version-matched CLI with `--origin=lyra-v22` and review its report. The
|
|
109
|
+
[v23-to-v24 migration guide](./llms/shared/v23-to-v24-migration.md) gives the project sequence,
|
|
110
|
+
import and SSR replacements, theme semantics, event-detail changes and historical profile rules.
|
|
111
|
+
The generated [`llms/migration.md`](./llms/migration.md) has per-component `wa-*`/`sl-*` mappings.
|
|
112
|
+
|
|
88
113
|
## Install
|
|
89
114
|
|
|
90
115
|
```bash
|
|
@@ -125,16 +150,17 @@ setup.
|
|
|
125
150
|
|
|
126
151
|
## Usage
|
|
127
152
|
|
|
128
|
-
|
|
153
|
+
Register components from tree-shakeable, granular per-component entry points:
|
|
129
154
|
|
|
130
155
|
```js
|
|
131
156
|
import "@aceshooting/lyra-ui/components/lr-combobox.js";
|
|
132
157
|
import "@aceshooting/lyra-ui/components/lr-option.js";
|
|
133
158
|
```
|
|
134
159
|
|
|
135
|
-
The tag-shaped path is stable even if Lyra later reorganizes its internal family folders.
|
|
136
|
-
|
|
137
|
-
|
|
160
|
+
The tag-shaped path is stable even if Lyra later reorganizes its internal family folders. Family
|
|
161
|
+
barrel paths remain supported, while tag-shaped paths are the canonical per-component registration
|
|
162
|
+
imports. Nested per-component registration routes have been retired; use the stable tag path or the
|
|
163
|
+
registration-free family `.class.js` route.
|
|
138
164
|
|
|
139
165
|
Application-shell and media components have the same granular shape:
|
|
140
166
|
|
|
@@ -187,8 +213,9 @@ import "@aceshooting/lyra-ui/all.js";
|
|
|
187
213
|
```
|
|
188
214
|
|
|
189
215
|
> **Registration is explicit.** The package root is a side-effect-free export surface for
|
|
190
|
-
>
|
|
191
|
-
> registration
|
|
216
|
+
> library helpers and types; it does not export component classes or define custom elements.
|
|
217
|
+
> Import a registration-free class from its tag's family path when subclassing, or import a
|
|
218
|
+
> component registration entry, family entry, or `@aceshooting/lyra-ui/all.js` to define tags.
|
|
192
219
|
> An unregistered tag remains inert even when the import and build succeed.
|
|
193
220
|
|
|
194
221
|
`all.js` registers 288 tags — every component **except** the 15 inventory-designated
|
|
@@ -306,14 +333,14 @@ toast({ message: "Saved", variant: "success" });
|
|
|
306
333
|
## For AI agents / LLMs
|
|
307
334
|
|
|
308
335
|
**Using this library from a consuming project?** The package ships a reference written for coding
|
|
309
|
-
assistants, split so a lookup
|
|
336
|
+
assistants, split by component and topic so a lookup can skip unrelated parts of the catalog:
|
|
310
337
|
|
|
311
338
|
| Need | Read |
|
|
312
339
|
| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
|
|
313
340
|
| Which component to use, and its import path | [`llms/index.md`](./llms/index.md) |
|
|
314
341
|
| One component's full API | `llms/components/<tag>.md` — path derived from the tag, no search needed |
|
|
315
|
-
|
|
|
316
|
-
|
|
|
342
|
+
| One shared-guide topic (imports, v23-to-v24 migration, forms, styles, localization, frameworks, AI, or testing) | `llms/shared/<topic>.md` — linked from [`llms.txt`](./llms.txt) |
|
|
343
|
+
| Combined shared reference for tools requiring one document | [`llms/shared.md`](./llms/shared.md) |
|
|
317
344
|
| Design tokens | [`llms/tokens.md`](./llms/tokens.md) |
|
|
318
345
|
| Which optional peer a component needs | [`llms/peers.md`](./llms/peers.md) |
|
|
319
346
|
| `wa-*`/`sl-*` migration classifications and safe codemod rules | [`llms/migration.md`](./llms/migration.md) |
|
|
@@ -490,17 +517,25 @@ matching `data-lr-theme` attribute) on an ancestor:
|
|
|
490
517
|
ring. It layers over `theme.css` whatever the load order, also answers to shadcn's `.dark`/`.light`
|
|
491
518
|
classes, and keeps gemstone accents working. A few values deliberately differ from shadcn to keep
|
|
492
519
|
WCAG contrast (control borders, focus colour, danger red, chart colours); see
|
|
493
|
-
[The shadcn look](./llms/shared.md#the-shadcn-look--
|
|
520
|
+
[The shadcn look](./llms/shared.md#the-shadcn-look--looksshadcncss).
|
|
494
521
|
|
|
495
522
|
```css
|
|
496
523
|
@import "@aceshooting/lyra-ui/theme.css";
|
|
497
|
-
@import "@aceshooting/lyra-ui/
|
|
524
|
+
@import "@aceshooting/lyra-ui/looks/shadcn.css";
|
|
525
|
+
@import "@aceshooting/lyra-ui/accents.css";
|
|
498
526
|
```
|
|
499
527
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
528
|
+
Select the same look through the canonical style API after importing its stylesheet:
|
|
529
|
+
|
|
530
|
+
```js
|
|
531
|
+
import { setLyraStyle } from '@aceshooting/lyra-ui/theme.js';
|
|
532
|
+
|
|
533
|
+
setLyraStyle({ look: 'shadcn', mode: 'system', accent: 'sapphire' });
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
The style API persists the independent look, surface, density, mode and accent choices. See the
|
|
537
|
+
[style API guide](./llms/shared/styles-and-tokens.md#composing-looks-surfaces-and-density) for
|
|
538
|
+
scoped styling, reset and saved-preference behavior.
|
|
504
539
|
|
|
505
540
|
Tooling can consume the canonical DTCG interchange document from
|
|
506
541
|
`@aceshooting/lyra-ui/design-tokens.json`. The generated
|
|
@@ -536,7 +571,7 @@ Applications can override any `--lr-theme-*` input directly:
|
|
|
536
571
|
`theme.css` declares `@layer lr-base, lr-theme, lr-theme-preset, lr-utilities, lr-overrides` and
|
|
537
572
|
puts its own tokens in `lr-theme`, so an _unlayered_ rule of yours — like the `:root` block above —
|
|
538
573
|
wins over every Lyra declaration regardless of specificity or which stylesheet the bundler emitted
|
|
539
|
-
first. The optional `
|
|
574
|
+
first. The optional `looks/shadcn.css` stylesheet uses `lr-theme-preset`, and the optional `native.css`
|
|
540
575
|
and `utilities.css` assets use `lr-base` and `lr-utilities`; `lr-overrides` remains available for
|
|
541
576
|
application rules. If you declare Lyra's layer order yourself, name all five. See [`llms/tokens.md`](./llms/tokens.md) for the complete shared token list.
|
|
542
577
|
Component-specific `--lr-*` custom properties remain available for local overrides.
|
|
@@ -596,9 +631,8 @@ setLyraLocale("fr"); // or just set <html lang="fr">/an ancestor `lang` — comp
|
|
|
596
631
|
The dedicated `localization.js` entry is side-effect-free: it does not register the component
|
|
597
632
|
graph. The package root continues to re-export the same runtime for compatibility, but importing
|
|
598
633
|
the root remains registration-free. The same entry also carries `bridgeLyraLocale()`,
|
|
599
|
-
`subscribeLyraLocale()` and `resolveLyraScopedString()`. Their former
|
|
600
|
-
|
|
601
|
-
use the canonical `localization.js` route.
|
|
634
|
+
`subscribeLyraLocale()` and `resolveLyraScopedString()`. Their former utility-scoped entry point was
|
|
635
|
+
removed in 23.0.0; use the canonical `localization.js` route.
|
|
602
636
|
|
|
603
637
|
```html
|
|
604
638
|
<!-- Per-instance: override specific keys on one element without a global registry. -->
|
|
@@ -638,13 +672,9 @@ remains available for the complete M+1 line and cannot be removed before M+2. Se
|
|
|
638
672
|
|
|
639
673
|
## SSR & Declarative Shadow DOM
|
|
640
674
|
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
closure independently of the package root) and exports the machine-readable
|
|
645
|
-
`LYRA_SSR_SUPPORT_MATRIX`. New integrations that want granular registration can import
|
|
646
|
-
`@aceshooting/lyra-ui/hydration.js` first instead, then their own component modules. The matrix has
|
|
647
|
-
two explicit tiers:
|
|
675
|
+
Lyra's package root, `all.js`, family entries and granular registration modules are server-safe
|
|
676
|
+
under Node 22+. On the server, register the tags your page renders and use the SSR helpers from
|
|
677
|
+
`@aceshooting/lyra-ui/ssr.js`. The matrix has two explicit tiers:
|
|
648
678
|
|
|
649
679
|
- `render-and-hydrate` components emit Declarative Shadow DOM (DSD) and reuse that shadow root and
|
|
650
680
|
its nodes during browser hydration.
|
|
@@ -653,13 +683,18 @@ two explicit tiers:
|
|
|
653
683
|
components whose initial render needs light-DOM traversal, layout, canvas, observers, or media
|
|
654
684
|
APIs that Lit's intentionally small server DOM does not emulate.
|
|
655
685
|
|
|
686
|
+
For an application that intentionally registers the full inventory on the server,
|
|
687
|
+
`@aceshooting/lyra-ui/ssr/all.js` provides that side effect plus the SSR helpers. Granular imports
|
|
688
|
+
avoid loading unused optional-peer families.
|
|
689
|
+
|
|
656
690
|
Configure Lit's server renderer with Lyra's fallback before `LitElementRenderer`:
|
|
657
691
|
|
|
658
692
|
```ts
|
|
693
|
+
import '@aceshooting/lyra-ui/components/lr-page.js';
|
|
659
694
|
import {
|
|
660
695
|
lyraSsrElementRenderers,
|
|
661
696
|
LYRA_SSR_SUPPORT_MATRIX,
|
|
662
|
-
} from
|
|
697
|
+
} from '@aceshooting/lyra-ui/ssr.js';
|
|
663
698
|
import { render, LitElementRenderer } from "@lit-labs/ssr";
|
|
664
699
|
import { collectResult } from "@lit-labs/ssr/lib/render-result.js";
|
|
665
700
|
import { html } from "lit";
|
|
@@ -670,22 +705,24 @@ const result = render(html`<lr-page><main>Dashboard</main></lr-page>`, {
|
|
|
670
705
|
const markup = await collectResult(result);
|
|
671
706
|
```
|
|
672
707
|
|
|
673
|
-
|
|
674
|
-
`@lit-labs/ssr-client/lit-element-hydrate-support.js
|
|
708
|
+
In a browser bundle that hydrates server-rendered markup, make `hydration.js` the first import that
|
|
709
|
+
can reach Lit. It installs `@lit-labs/ssr-client/lit-element-hydrate-support.js`; then register the
|
|
710
|
+
tags the page uses:
|
|
675
711
|
|
|
676
712
|
```ts
|
|
713
|
+
import '@aceshooting/lyra-ui/hydration.js';
|
|
714
|
+
import '@aceshooting/lyra-ui/components/lr-page.js';
|
|
677
715
|
import {
|
|
678
716
|
diagnoseLyraHydration,
|
|
679
717
|
getLyraSsrMode,
|
|
680
|
-
} from
|
|
718
|
+
} from '@aceshooting/lyra-ui/ssr.js';
|
|
681
719
|
|
|
682
720
|
const diagnostics = await diagnoseLyraHydration(document);
|
|
683
721
|
```
|
|
684
722
|
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
client. A `render-and-hydrate` component whose rendering depends on something only a browser can
|
|
723
|
+
Optional-peer families use their granular registration imports as needed. Property bindings cannot
|
|
724
|
+
be serialized by a fallback renderer, so express initial fallback state as attributes/light DOM or
|
|
725
|
+
assign properties on the client. A `render-and-hydrate` component whose rendering depends on something only a browser can
|
|
689
726
|
answer — its own light-DOM children, or a browser global such as `EyeDropper` — reproduces the
|
|
690
727
|
server's answer on the hydrating render and corrects itself on the very next update rather than
|
|
691
728
|
contradicting the markup it is hydrating, so a slotted override or an eyedropper button appears one
|