@aceshooting/lyra-ui 3.5.0 → 3.6.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/README.md +110 -2
- package/custom-elements.json +48093 -40204
- package/dist/components/animated-image/animated-image.class.d.ts +131 -0
- package/dist/components/animated-image/animated-image.class.d.ts.map +1 -0
- package/dist/components/animated-image/animated-image.class.js +296 -0
- package/dist/components/animated-image/animated-image.class.js.map +1 -0
- package/dist/components/animated-image/animated-image.d.ts +2 -0
- package/dist/components/animated-image/animated-image.d.ts.map +1 -0
- package/dist/components/animated-image/animated-image.js +5 -0
- package/dist/components/animated-image/animated-image.js.map +1 -0
- package/dist/components/animated-image/animated-image.styles.d.ts +2 -0
- package/dist/components/animated-image/animated-image.styles.d.ts.map +1 -0
- package/dist/components/animated-image/animated-image.styles.js +117 -0
- package/dist/components/animated-image/animated-image.styles.js.map +1 -0
- package/dist/components/animation/animation.class.d.ts +119 -0
- package/dist/components/animation/animation.class.d.ts.map +1 -0
- package/dist/components/animation/animation.class.js +420 -0
- package/dist/components/animation/animation.class.js.map +1 -0
- package/dist/components/animation/animation.d.ts +2 -0
- package/dist/components/animation/animation.d.ts.map +1 -0
- package/dist/components/animation/animation.js +5 -0
- package/dist/components/animation/animation.js.map +1 -0
- package/dist/components/animation/animation.styles.d.ts +2 -0
- package/dist/components/animation/animation.styles.d.ts.map +1 -0
- package/dist/components/animation/animation.styles.js +18 -0
- package/dist/components/animation/animation.styles.js.map +1 -0
- package/dist/components/avatar-group/avatar-group.class.d.ts +110 -0
- package/dist/components/avatar-group/avatar-group.class.d.ts.map +1 -0
- package/dist/components/avatar-group/avatar-group.class.js +182 -0
- package/dist/components/avatar-group/avatar-group.class.js.map +1 -0
- package/dist/components/avatar-group/avatar-group.d.ts +2 -0
- package/dist/components/avatar-group/avatar-group.d.ts.map +1 -0
- package/dist/components/avatar-group/avatar-group.js +5 -0
- package/dist/components/avatar-group/avatar-group.js.map +1 -0
- package/dist/components/avatar-group/avatar-group.styles.d.ts +2 -0
- package/dist/components/avatar-group/avatar-group.styles.d.ts.map +1 -0
- package/dist/components/avatar-group/avatar-group.styles.js +112 -0
- package/dist/components/avatar-group/avatar-group.styles.js.map +1 -0
- package/dist/components/calendar/calendar.class.d.ts.map +1 -1
- package/dist/components/calendar/calendar.class.js +1 -12
- package/dist/components/calendar/calendar.class.js.map +1 -1
- package/dist/components/calendar-viewer/calendar-viewer.class.d.ts +1 -1
- package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
- package/dist/components/calendar-viewer/calendar-viewer.class.js +2 -2
- package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -1
- package/dist/components/chart/box-plot.class.d.ts.map +1 -1
- package/dist/components/chart/box-plot.class.js +1 -3
- package/dist/components/chart/box-plot.class.js.map +1 -1
- package/dist/components/chart/chart.class.d.ts.map +1 -1
- package/dist/components/chart/chart.class.js +1 -3
- package/dist/components/chart/chart.class.js.map +1 -1
- package/dist/components/code-editor/code-editor.styles.d.ts.map +1 -1
- package/dist/components/code-editor/code-editor.styles.js +5 -2
- package/dist/components/code-editor/code-editor.styles.js.map +1 -1
- package/dist/components/contact-viewer/contact-viewer.class.d.ts +4 -1
- package/dist/components/contact-viewer/contact-viewer.class.d.ts.map +1 -1
- package/dist/components/contact-viewer/contact-viewer.class.js +5 -2
- package/dist/components/contact-viewer/contact-viewer.class.js.map +1 -1
- package/dist/components/email-viewer/email-viewer.class.d.ts +4 -1
- package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/email-viewer/email-viewer.class.js +5 -2
- package/dist/components/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/graph/graph.class.d.ts.map +1 -1
- package/dist/components/graph/graph.class.js +1 -3
- package/dist/components/graph/graph.class.js.map +1 -1
- package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.class.js +1 -8
- package/dist/components/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/icon/icon.styles.d.ts.map +1 -1
- package/dist/components/icon/icon.styles.js +1 -1
- package/dist/components/icon/icon.styles.js.map +1 -1
- package/dist/components/include/include.class.d.ts +104 -0
- package/dist/components/include/include.class.d.ts.map +1 -0
- package/dist/components/include/include.class.js +149 -0
- package/dist/components/include/include.class.js.map +1 -0
- package/dist/components/include/include.d.ts +2 -0
- package/dist/components/include/include.d.ts.map +1 -0
- package/dist/components/include/include.js +5 -0
- package/dist/components/include/include.js.map +1 -0
- package/dist/components/include/include.styles.d.ts +2 -0
- package/dist/components/include/include.styles.d.ts.map +1 -0
- package/dist/components/include/include.styles.js +14 -0
- package/dist/components/include/include.styles.js.map +1 -0
- package/dist/components/kbd/kbd.class.d.ts.map +1 -1
- package/dist/components/kbd/kbd.class.js +1 -11
- package/dist/components/kbd/kbd.class.js.map +1 -1
- package/dist/components/known-date/known-date.class.d.ts +208 -0
- package/dist/components/known-date/known-date.class.d.ts.map +1 -0
- package/dist/components/known-date/known-date.class.js +588 -0
- package/dist/components/known-date/known-date.class.js.map +1 -0
- package/dist/components/known-date/known-date.d.ts +2 -0
- package/dist/components/known-date/known-date.d.ts.map +1 -0
- package/dist/components/known-date/known-date.js +5 -0
- package/dist/components/known-date/known-date.js.map +1 -0
- package/dist/components/known-date/known-date.styles.d.ts +2 -0
- package/dist/components/known-date/known-date.styles.d.ts.map +1 -0
- package/dist/components/known-date/known-date.styles.js +134 -0
- package/dist/components/known-date/known-date.styles.js.map +1 -0
- package/dist/components/lightbox/lightbox.class.d.ts +187 -0
- package/dist/components/lightbox/lightbox.class.d.ts.map +1 -0
- package/dist/components/lightbox/lightbox.class.js +415 -0
- package/dist/components/lightbox/lightbox.class.js.map +1 -0
- package/dist/components/lightbox/lightbox.d.ts +3 -0
- package/dist/components/lightbox/lightbox.d.ts.map +1 -0
- package/dist/components/lightbox/lightbox.js +6 -0
- package/dist/components/lightbox/lightbox.js.map +1 -0
- package/dist/components/lightbox/lightbox.styles.d.ts +2 -0
- package/dist/components/lightbox/lightbox.styles.d.ts.map +1 -0
- package/dist/components/lightbox/lightbox.styles.js +179 -0
- package/dist/components/lightbox/lightbox.styles.js.map +1 -0
- package/dist/components/map/map.class.d.ts.map +1 -1
- package/dist/components/map/map.class.js +1 -23
- package/dist/components/map/map.class.js.map +1 -1
- package/dist/components/menu/menu.class.d.ts +1 -1
- package/dist/components/model-settings-panel/model-settings-panel.class.d.ts.map +1 -1
- package/dist/components/model-settings-panel/model-settings-panel.class.js +1 -10
- package/dist/components/model-settings-panel/model-settings-panel.class.js.map +1 -1
- package/dist/components/qr-code/qr-code-loader.d.ts +15 -0
- package/dist/components/qr-code/qr-code-loader.d.ts.map +1 -0
- package/dist/components/qr-code/qr-code-loader.js +28 -0
- package/dist/components/qr-code/qr-code-loader.js.map +1 -0
- package/dist/components/qr-code/qr-code.class.d.ts +121 -0
- package/dist/components/qr-code/qr-code.class.d.ts.map +1 -0
- package/dist/components/qr-code/qr-code.class.js +392 -0
- package/dist/components/qr-code/qr-code.class.js.map +1 -0
- package/dist/components/qr-code/qr-code.d.ts +2 -0
- package/dist/components/qr-code/qr-code.d.ts.map +1 -0
- package/dist/components/qr-code/qr-code.js +5 -0
- package/dist/components/qr-code/qr-code.js.map +1 -0
- package/dist/components/qr-code/qr-code.styles.d.ts +2 -0
- package/dist/components/qr-code/qr-code.styles.d.ts.map +1 -0
- package/dist/components/qr-code/qr-code.styles.js +48 -0
- package/dist/components/qr-code/qr-code.styles.js.map +1 -0
- package/dist/components/random-content/random-content.class.d.ts +99 -0
- package/dist/components/random-content/random-content.class.d.ts.map +1 -0
- package/dist/components/random-content/random-content.class.js +268 -0
- package/dist/components/random-content/random-content.class.js.map +1 -0
- package/dist/components/random-content/random-content.d.ts +2 -0
- package/dist/components/random-content/random-content.d.ts.map +1 -0
- package/dist/components/random-content/random-content.js +5 -0
- package/dist/components/random-content/random-content.js.map +1 -0
- package/dist/components/random-content/random-content.styles.d.ts +2 -0
- package/dist/components/random-content/random-content.styles.d.ts.map +1 -0
- package/dist/components/random-content/random-content.styles.js +94 -0
- package/dist/components/random-content/random-content.styles.js.map +1 -0
- package/dist/components/result-card/result-card.class.d.ts +9 -8
- package/dist/components/result-card/result-card.class.d.ts.map +1 -1
- package/dist/components/result-card/result-card.class.js +7 -26
- package/dist/components/result-card/result-card.class.js.map +1 -1
- package/dist/components/result-card/result-field.class.d.ts.map +1 -1
- package/dist/components/result-card/result-field.class.js +1 -11
- package/dist/components/result-card/result-field.class.js.map +1 -1
- package/dist/components/slider/slider.class.d.ts.map +1 -1
- package/dist/components/slider/slider.class.js +1 -19
- package/dist/components/slider/slider.class.js.map +1 -1
- package/dist/components/source-card/source-card.class.d.ts +8 -7
- package/dist/components/source-card/source-card.class.d.ts.map +1 -1
- package/dist/components/source-card/source-card.class.js +6 -25
- package/dist/components/source-card/source-card.class.js.map +1 -1
- package/dist/components/stat/stat.class.js +1 -1
- package/dist/components/stat/stat.class.js.map +1 -1
- package/dist/components/time-range/time-range.class.d.ts.map +1 -1
- package/dist/components/time-range/time-range.class.js +1 -21
- package/dist/components/time-range/time-range.class.js.map +1 -1
- package/dist/components/timeline/timeline-item.class.d.ts +120 -0
- package/dist/components/timeline/timeline-item.class.d.ts.map +1 -0
- package/dist/components/timeline/timeline-item.class.js +203 -0
- package/dist/components/timeline/timeline-item.class.js.map +1 -0
- package/dist/components/timeline/timeline-item.d.ts +3 -0
- package/dist/components/timeline/timeline-item.d.ts.map +1 -0
- package/dist/components/timeline/timeline-item.js +10 -0
- package/dist/components/timeline/timeline-item.js.map +1 -0
- package/dist/components/timeline/timeline-item.styles.d.ts +2 -0
- package/dist/components/timeline/timeline-item.styles.d.ts.map +1 -0
- package/dist/components/timeline/timeline-item.styles.js +149 -0
- package/dist/components/timeline/timeline-item.styles.js.map +1 -0
- package/dist/components/timeline/timeline.class.d.ts +59 -0
- package/dist/components/timeline/timeline.class.d.ts.map +1 -0
- package/dist/components/timeline/timeline.class.js +100 -0
- package/dist/components/timeline/timeline.class.js.map +1 -0
- package/dist/components/timeline/timeline.d.ts +2 -0
- package/dist/components/timeline/timeline.d.ts.map +1 -0
- package/dist/components/timeline/timeline.js +5 -0
- package/dist/components/timeline/timeline.js.map +1 -0
- package/dist/components/timeline/timeline.styles.d.ts +2 -0
- package/dist/components/timeline/timeline.styles.d.ts.map +1 -0
- package/dist/components/timeline/timeline.styles.js +52 -0
- package/dist/components/timeline/timeline.styles.js.map +1 -0
- package/dist/components/toast/toast-item.class.d.ts.map +1 -1
- package/dist/components/toast/toast-item.class.js +1 -3
- package/dist/components/toast/toast-item.class.js.map +1 -1
- package/dist/components/tool-param-form/tool-param-form.class.d.ts.map +1 -1
- package/dist/components/tool-param-form/tool-param-form.class.js +0 -1
- package/dist/components/tool-param-form/tool-param-form.class.js.map +1 -1
- package/dist/components/tour/tour.class.d.ts +250 -0
- package/dist/components/tour/tour.class.d.ts.map +1 -0
- package/dist/components/tour/tour.class.js +530 -0
- package/dist/components/tour/tour.class.js.map +1 -0
- package/dist/components/tour/tour.d.ts +2 -0
- package/dist/components/tour/tour.d.ts.map +1 -0
- package/dist/components/tour/tour.js +5 -0
- package/dist/components/tour/tour.js.map +1 -0
- package/dist/components/tour/tour.styles.d.ts +2 -0
- package/dist/components/tour/tour.styles.d.ts.map +1 -0
- package/dist/components/tour/tour.styles.js +165 -0
- package/dist/components/tour/tour.styles.js.map +1 -0
- package/dist/components/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/virtual-list/virtual-list.class.js +1 -3
- package/dist/components/virtual-list/virtual-list.class.js.map +1 -1
- package/dist/components/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/word-cloud/word-cloud.class.js +1 -8
- package/dist/components/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/components/zoomable-frame/zoomable-frame.class.d.ts +15 -0
- package/dist/components/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
- package/dist/components/zoomable-frame/zoomable-frame.class.js +18 -0
- package/dist/components/zoomable-frame/zoomable-frame.class.js.map +1 -1
- package/dist/internal/a11y.d.ts +4 -0
- package/dist/internal/a11y.d.ts.map +1 -1
- package/dist/internal/a11y.js +17 -0
- package/dist/internal/a11y.js.map +1 -1
- package/dist/internal/canvas.d.ts +8 -0
- package/dist/internal/canvas.d.ts.map +1 -0
- package/dist/internal/canvas.js +14 -0
- package/dist/internal/canvas.js.map +1 -0
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +20 -2
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/motion.d.ts +5 -0
- package/dist/internal/motion.d.ts.map +1 -0
- package/dist/internal/motion.js +7 -0
- package/dist/internal/motion.js.map +1 -0
- package/dist/internal/numbers.d.ts +11 -0
- package/dist/internal/numbers.d.ts.map +1 -1
- package/dist/internal/numbers.js +21 -0
- package/dist/internal/numbers.js.map +1 -1
- package/dist/internal/positioner.d.ts +14 -0
- package/dist/internal/positioner.d.ts.map +1 -1
- package/dist/internal/positioner.js +27 -0
- package/dist/internal/positioner.js.map +1 -1
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +11 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/rtl.d.ts +0 -11
- package/dist/internal/rtl.d.ts.map +1 -1
- package/dist/internal/rtl.js +0 -13
- package/dist/internal/rtl.js.map +1 -1
- package/dist/internal/safe-css.d.ts +15 -0
- package/dist/internal/safe-css.d.ts.map +1 -0
- package/dist/internal/safe-css.js +25 -0
- package/dist/internal/safe-css.js.map +1 -0
- package/dist/internal/strip-host-title.d.ts +24 -0
- package/dist/internal/strip-host-title.d.ts.map +1 -0
- package/dist/internal/strip-host-title.js +46 -0
- package/dist/internal/strip-host-title.js.map +1 -0
- package/dist/internal/tokens.styles.d.ts.map +1 -1
- package/dist/internal/tokens.styles.js +4 -0
- package/dist/internal/tokens.styles.js.map +1 -1
- package/dist/lyra.d.ts +33 -0
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +22 -0
- package/dist/lyra.js.map +1 -1
- package/llms-full.txt +90 -0
- package/llms.txt +3 -0
- package/package.json +43 -6
- package/vscode-css-data.json +719 -0
- package/vscode-html-data.json +10579 -0
- package/web-types.json +12161 -0
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
**Lyra UI — the free, independent web-component alternative.** A MIT-licensed [Lit](https://lit.dev)
|
|
6
6
|
library for accessible forms, dashboards, charts, data visualization, and Conversation & Agent UI.
|
|
7
7
|
It is a practical open-source alternative to [Shoelace](https://shoelace.style/) and
|
|
8
|
-
[Web Awesome](https://webawesome.com/), with
|
|
8
|
+
[Web Awesome](https://webawesome.com/), with 167 custom elements, native custom-element APIs,
|
|
9
9
|
tree-shakeable imports, its own `--lyra-*` design tokens, built-in localization and RTL support,
|
|
10
10
|
and no runtime dependency on either project.
|
|
11
11
|
|
|
@@ -115,6 +115,26 @@ Lyra's combobox uses `with-clear`, while Web Awesome's equivalent uses `clearabl
|
|
|
115
115
|
<wa-date-input value="2026-07-15"> → <lyra-date-input value="2026-07-15">
|
|
116
116
|
```
|
|
117
117
|
|
|
118
|
+
**Automating the rename.** This repo ships a small codemod that performs the mechanical part of
|
|
119
|
+
either migration: [`scripts/migrate-wa.mjs`](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/scripts/migrate-wa.mjs)
|
|
120
|
+
(run from a checkout of this repository — it isn't published as part of the npm package) rewrites
|
|
121
|
+
`wa-*`/`sl-*` tag usages and `@shoelace-style/shoelace`/`@awesome.me/webawesome` import specifiers
|
|
122
|
+
to their `lyra-*`/`@aceshooting/lyra-ui` equivalents across a target directory, file, or glob,
|
|
123
|
+
reading the very tables on this page so the rename can't drift out of sync with them:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
node packages/lyra-ui/scripts/migrate-wa.mjs --dry-run path/to/your/src # preview only
|
|
127
|
+
node packages/lyra-ui/scripts/migrate-wa.mjs path/to/your/src # apply
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
It only rewrites a tag or import that this page documents a `lyra-*`/`@aceshooting/lyra-ui`
|
|
131
|
+
equivalent for — a component's `— (extra)` row (no Web Awesome/Shoelace counterpart) and any
|
|
132
|
+
`wa-*`/`sl-*` text that isn't an actual tag usage (comments, unrelated identifiers) are left alone.
|
|
133
|
+
It does not rewrite attribute-name differences (e.g. Web Awesome's `clearable` vs. Lyra's
|
|
134
|
+
`with-clear`) or deep import subpaths (`.../dist/components/button/button.js`, since Lyra's own
|
|
135
|
+
subpath layout doesn't mirror Shoelace's or Web Awesome's) — those are flagged instead, and still
|
|
136
|
+
need the component notes below.
|
|
137
|
+
|
|
118
138
|
Shoelace is now a historical predecessor to Web Awesome, but its component vocabulary remains
|
|
119
139
|
familiar to many teams. Lyra provides a conceptual migration path rather than claiming a drop-in
|
|
120
140
|
`sl-*` replacement:
|
|
@@ -219,9 +239,82 @@ roving-tabindex list) to match. This covers Arabic, Hebrew, Persian, Urdu, and o
|
|
|
219
239
|
through inherited direction; no per-component RTL flag or opt-in is needed. Components do not force
|
|
220
240
|
their own `dir`, so they remain composable inside mixed-direction layouts.
|
|
221
241
|
|
|
242
|
+
## SSR & Declarative Shadow DOM
|
|
243
|
+
|
|
244
|
+
Every Lyra component is a standard Lit 3 custom element (`extends LitElement` via the shared
|
|
245
|
+
`LyraElement` base), so it follows Lit's own server-rendering story rather than needing anything
|
|
246
|
+
library-specific: [`@lit-labs/ssr`](https://www.npmjs.com/package/@lit-labs/ssr) can render a Lyra
|
|
247
|
+
component to a Declarative Shadow DOM (DSD) `<template shadowrootmode="open">` on the server, so the
|
|
248
|
+
resulting markup paints before any JS runs. A spot check rendering `<lyra-button>` through
|
|
249
|
+
`@lit-labs/ssr`'s `render()` confirms this in practice — the output is a well-formed DSD template
|
|
250
|
+
containing the component's token CSS and internal `<button>` markup, and the constructor's
|
|
251
|
+
`ElementInternals`-based `attachInternals()` call (used for native form association) does not throw
|
|
252
|
+
under `@lit-labs/ssr-dom-shim`'s server DOM shim.
|
|
253
|
+
|
|
254
|
+
That said, **lyra-ui has not been systematically tested or tuned for SSR** across its 167 components:
|
|
255
|
+
no CI job renders the library under `@lit-labs/ssr`, no component has been verified to hydrate
|
|
256
|
+
correctly on the client afterward, and components that reach for browser-only APIs early
|
|
257
|
+
(`ResizeObserver`/`IntersectionObserver`, Floating UI positioning in the popover/tooltip/dropdown
|
|
258
|
+
family, `matchMedia` listeners, canvas-based rendering in `<lyra-heatmap>`/the chart family) have not
|
|
259
|
+
been checked for graceful server-side behavior. Treat SSR/DSD as "should work in principle, unverified
|
|
260
|
+
at scale" rather than a tested, supported deployment target — a meta-framework's own web-component SSR
|
|
261
|
+
integration (or a custom `@lit-labs/ssr` server) is still the right place to start, and an issue report
|
|
262
|
+
with the specific component and framework is welcome if something breaks.
|
|
263
|
+
|
|
264
|
+
## Framework integration (Vue, Angular, Svelte)
|
|
265
|
+
|
|
266
|
+
Lyra ships plain custom elements with no framework-specific wrapper package, so the friction is the
|
|
267
|
+
same friction any custom-element library has with a non-Lit framework, not anything Lyra-specific:
|
|
268
|
+
|
|
269
|
+
- **Property vs. attribute binding.** A complex-typed property (an object, array, or function — e.g.
|
|
270
|
+
`.strings`, `.selectedRows`, `.markers`) must be bound as a JS *property*, not a stringified
|
|
271
|
+
attribute. Use Vue's `:prop` binding (or the `.prop` modifier), Angular's `[prop]="value"` template
|
|
272
|
+
binding, or a plain property assignment; Svelte's compiler binds to a matching element property
|
|
273
|
+
automatically when one exists, so `prop={value}` mostly just works. A bare `attr="value"` or string
|
|
274
|
+
interpolation only ever sets a string attribute — fine for `variant="brand"`, wrong for anything
|
|
275
|
+
non-string.
|
|
276
|
+
- **Angular needs `CUSTOM_ELEMENTS_SCHEMA`.** Angular's template compiler rejects unknown elements
|
|
277
|
+
and properties by default. Add `schemas: [CUSTOM_ELEMENTS_SCHEMA]` to the module (or standalone
|
|
278
|
+
component) that uses any `<lyra-*>` tag so Angular stops trying to resolve it as an Angular
|
|
279
|
+
component.
|
|
280
|
+
- **Custom events need the framework's DOM event-binding syntax, not its component-event
|
|
281
|
+
shorthand.** A framework's usual event shorthand (Vue's `@event` on a *Vue component*, Angular's
|
|
282
|
+
`(event)` output binding) is wired for that framework's own event system; a plain custom element's
|
|
283
|
+
events are native `CustomEvent`s and need the same binding path used for native DOM events —
|
|
284
|
+
`@lyra-change="handler"` in Vue, `(lyra-change)="handler()"` in Angular, `on:lyra-change` in Svelte,
|
|
285
|
+
or `element.addEventListener('lyra-change', handler)` directly when a template binding isn't
|
|
286
|
+
available. Lyra's own event names are consistently kebab-case (`lyra-change`, `lyra-cell-click`,
|
|
287
|
+
`lyra-selection-change`, …) rather than camelCase, specifically to stay friendly to this binding
|
|
288
|
+
path — some other custom-element libraries use camelCase event names, which can silently fail to
|
|
289
|
+
bind in an in-DOM (non-compiled) Vue template because HTML attribute/directive names are
|
|
290
|
+
case-insensitive there; `addEventListener` works regardless of case either way.
|
|
291
|
+
|
|
292
|
+
## Editor autocomplete (VS Code, JetBrains)
|
|
293
|
+
|
|
294
|
+
TypeScript consumers already get tag/attribute completion for free from the generated
|
|
295
|
+
`HTMLElementTagNameMap`. Plain HTML, and in-DOM Vue or Angular templates, don't go through that type
|
|
296
|
+
graph, so this package also ships small editor data files generated from `custom-elements.json`:
|
|
297
|
+
`vscode-html-data.json` (tag names, attributes, and slots) and `vscode-css-data.json` (every
|
|
298
|
+
`--lyra-*` custom property). Point VS Code's
|
|
299
|
+
[`html.customData`](https://code.visualstudio.com/docs/languages/html#_html-custom-data) and
|
|
300
|
+
[`css.customData`](https://code.visualstudio.com/docs/languages/css#_css-custom-data) settings at
|
|
301
|
+
them — typically in a workspace `.vscode/settings.json` so the whole team picks it up:
|
|
302
|
+
|
|
303
|
+
```json
|
|
304
|
+
{
|
|
305
|
+
"html.customData": ["./node_modules/@aceshooting/lyra-ui/vscode-html-data.json"],
|
|
306
|
+
"css.customData": ["./node_modules/@aceshooting/lyra-ui/vscode-css-data.json"]
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Both settings accept an array, so add these alongside any other custom-data files the workspace
|
|
311
|
+
already references. WebStorm/IntelliJ users get the same tag/attribute/slot/CSS-part/custom-property
|
|
312
|
+
coverage automatically from the bundled `web-types.json` — JetBrains IDEs pick up a dependency's
|
|
313
|
+
`web-types.json` with no extra configuration once the package is installed.
|
|
314
|
+
|
|
222
315
|
## Components
|
|
223
316
|
|
|
224
|
-
The catalog below lists all
|
|
317
|
+
The catalog below lists all 167 tags in the current Custom Elements Manifest, grouped by
|
|
225
318
|
capability. The manifest and live docs are the authoritative sources for the complete generated
|
|
226
319
|
API details.
|
|
227
320
|
|
|
@@ -249,6 +342,21 @@ API details.
|
|
|
249
342
|
| `<lyra-progress-bar>` + `<lyra-progress-ring>` | `wa-progress-bar` / `wa-progress-ring` | Determinate or indeterminate progress indicators |
|
|
250
343
|
| `<lyra-flag>` | — (extra) | Country/language flags for i18n pickers — needs the optional peer `@aceshooting/lyra-flags` |
|
|
251
344
|
|
|
345
|
+
**Additional media and interaction primitives**
|
|
346
|
+
|
|
347
|
+
| Component | Mirrors | Notes |
|
|
348
|
+
|-----------|---------|-------|
|
|
349
|
+
| `<lyra-animated-image>` | — (extra) | Animated image playback with a captured still frame and reduced-motion support |
|
|
350
|
+
| `<lyra-animation>` | — (extra) | Web Animations API wrapper for declarative preset or custom animations |
|
|
351
|
+
| `<lyra-avatar-group>` | — (extra) | Responsive avatar grouping with a localized overflow indicator |
|
|
352
|
+
| `<lyra-include>` | — (extra) | Loads sanitized HTML or text content from a URL |
|
|
353
|
+
| `<lyra-known-date>` | — (extra) | Form-associated date entry control with separate day, month, and year fields |
|
|
354
|
+
| `<lyra-lightbox>` | — (extra) | Full-screen modal image viewer with navigation and pan/zoom |
|
|
355
|
+
| `<lyra-qr-code>` | — (extra) | Canvas QR renderer; needs the optional peer `qrcode` |
|
|
356
|
+
| `<lyra-random-content>` | — (extra) | Random, unique, or sequential slotted-content selection with autoplay |
|
|
357
|
+
| `<lyra-timeline>` + `<lyra-timeline-item>` | — (extra) | Vertical or horizontal chronological event layout |
|
|
358
|
+
| `<lyra-tour>` | — (extra) | Anchored onboarding tour with spotlight, keyboard navigation, and focus management |
|
|
359
|
+
|
|
252
360
|
**Dashboard atoms**
|
|
253
361
|
|
|
254
362
|
| Component | Mirrors | Notes |
|