@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
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
import type { AvatarSize, AvatarShape, AvatarTone, LyraAvatar } from '../avatar/avatar.class.js';
|
|
4
|
+
export interface AvatarGroupOverflowClickDetail {
|
|
5
|
+
hiddenCount: number;
|
|
6
|
+
hiddenAvatars: LyraAvatar[];
|
|
7
|
+
}
|
|
8
|
+
export interface LyraAvatarGroupEventMap {
|
|
9
|
+
'lyra-overflow-click': CustomEvent<AvatarGroupOverflowClickDetail>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* `<lyra-avatar-group>` — stacks a set of slotted `<lyra-avatar>` children into a single
|
|
13
|
+
* overlapping row (negative-margin overlap, ring border so each circle reads as distinct) and,
|
|
14
|
+
* past a configurable `max` count, collapses the excess into a "+N" overflow badge. First-party
|
|
15
|
+
* invention (no Web Awesome equivalent), composed over `<lyra-avatar>` rather than reimplementing
|
|
16
|
+
* it — plain light-DOM slotted content is the group's items, the same shape `<lyra-split>`'s
|
|
17
|
+
* panels / `<lyra-source-list>`'s cards / `<lyra-chip-group>`'s chips already use, not a
|
|
18
|
+
* `.items` array prop.
|
|
19
|
+
*
|
|
20
|
+
* **`size`/`shape`/`tone` do not cascade onto slotted avatars.** They drive only this
|
|
21
|
+
* component's own ring, overlap amount, and the overflow badge's rendering — they cannot resize
|
|
22
|
+
* or reshape the `<lyra-avatar>` children themselves, since each avatar's own `--lyra-avatar-size`
|
|
23
|
+
* lives inside *its own* shadow-scoped `:host` block and unconditionally overrides anything of
|
|
24
|
+
* the same custom-property name inherited from an ancestor. This mirrors every other group
|
|
25
|
+
* component in this library (`button-group`, `checkbox-group`, `radio`): none of them cascade a
|
|
26
|
+
* size/variant prop onto their children either. The consumer is responsible for setting a
|
|
27
|
+
* matching `size`/`shape` on both the group and each `<lyra-avatar>` child for a visually coherent
|
|
28
|
+
* stack.
|
|
29
|
+
*
|
|
30
|
+
* **Deliberate divergence from `<lyra-chip-group>`'s overflow pattern.** Chip-group's overflow
|
|
31
|
+
* indicator is a disclosure toggle that reveals the excess children in place (`aria-expanded`,
|
|
32
|
+
* a "Show less" relabel). This component's overflow badge does not do that — unstacking N more
|
|
33
|
+
* circles back into the row would defeat the entire point of a compact identity stack. Instead,
|
|
34
|
+
* `lyra-overflow-click` is a pure notification hook: the component keeps rendering the same
|
|
35
|
+
* collapsed stack + badge regardless of whether anyone listens, and a consumer typically wires
|
|
36
|
+
* the event to open their own popover/dialog/tooltip listing the hidden members (out of scope for
|
|
37
|
+
* this component — no popover dependency is introduced here). There is no `expanded` state, no
|
|
38
|
+
* `aria-expanded`, and the badge never changes its own text/label on click.
|
|
39
|
+
*
|
|
40
|
+
* **No roving-tabindex / arrow-key composite-widget behavior applies here, and this is
|
|
41
|
+
* intentional, not an oversight.** Avatars are non-interactive per `<lyra-avatar>`'s own
|
|
42
|
+
* established contract (purely presentational, no built-in interactivity), so this is not a
|
|
43
|
+
* listbox/toolbar/grid needing `ArrowLeft`/`ArrowRight` roving focus — the overflow badge is the
|
|
44
|
+
* only interactive element, and as a native `<button>` it's automatically part of the normal Tab
|
|
45
|
+
* sequence with no custom keyboard handling required.
|
|
46
|
+
*
|
|
47
|
+
* @customElement lyra-avatar-group
|
|
48
|
+
* @slot - `<lyra-avatar>` elements (or any content, though the avatar pairing is the intended
|
|
49
|
+
* usage).
|
|
50
|
+
* @event lyra-overflow-click - The overflow badge was activated (click, or Enter/Space while
|
|
51
|
+
* focused — native `<button>` behavior). `detail: { hiddenCount, hiddenAvatars }` where
|
|
52
|
+
* `hiddenAvatars` is the current set of children the component has hidden past `max`.
|
|
53
|
+
* Non-cancelable — informational hook, no default action to veto.
|
|
54
|
+
* @csspart base - The outer inline-flex container (holds the slot and the overflow badge).
|
|
55
|
+
* @csspart overflow-badge - The "+N" button. Only rendered while `max` is actively causing an
|
|
56
|
+
* overflow.
|
|
57
|
+
* @cssprop [--lyra-avatar-group-avatar-size=var(--lyra-size-2rem)] - Sizes the overflow badge to
|
|
58
|
+
* match the slotted avatars. Does not resize the avatars themselves (see class doc) — set a
|
|
59
|
+
* matching `size` on each `<lyra-avatar>` child directly for that.
|
|
60
|
+
* @cssprop [--lyra-avatar-group-overlap=var(--lyra-size-neg-6px)] - Horizontal overlap between
|
|
61
|
+
* consecutive avatars (a logical `margin-inline-start`, so it auto-mirrors under `dir="rtl"`).
|
|
62
|
+
* Setting this to `0` or a positive length is a supported escape hatch that turns the stack into
|
|
63
|
+
* normal, non-overlapping spacing.
|
|
64
|
+
* @cssprop [--lyra-avatar-group-ring-color=var(--lyra-color-surface)] - The cutout-style ring
|
|
65
|
+
* drawn around every avatar and the overflow badge.
|
|
66
|
+
* @cssprop [--lyra-avatar-group-ring-width=var(--lyra-border-width-medium)] - Ring thickness.
|
|
67
|
+
* @cssprop [--lyra-avatar-group-badge-bg=var(--lyra-color-border)] - Overflow badge background.
|
|
68
|
+
* Tone-driven; see `tone`.
|
|
69
|
+
* @cssprop [--lyra-avatar-group-badge-color=var(--lyra-color-text)] - Overflow badge text color.
|
|
70
|
+
* Tone-driven; see `tone`.
|
|
71
|
+
*/
|
|
72
|
+
export declare class LyraAvatarGroup extends LyraElement<LyraAvatarGroupEventMap> {
|
|
73
|
+
static styles: import("lit").CSSResultGroup[];
|
|
74
|
+
/** Maximum number of assigned children shown before the rest collapse behind a "+N" badge.
|
|
75
|
+
* Flattened slot-forwarded children count the same as direct light-DOM children. Unset (the
|
|
76
|
+
* default) means no limit — every child is always shown. */
|
|
77
|
+
max?: number;
|
|
78
|
+
/** Visual size, reused verbatim from `<lyra-avatar>`'s own `AvatarSize` union. Drives the
|
|
79
|
+
* overflow badge's size and the overlap amount — does not resize slotted avatars (see class
|
|
80
|
+
* doc). */
|
|
81
|
+
size: AvatarSize;
|
|
82
|
+
/** `'circle'` (the default) or `'square'`, reused verbatim from `<lyra-avatar>`'s own
|
|
83
|
+
* `AvatarShape` union. Drives the overflow badge's shape — does not reshape slotted avatars
|
|
84
|
+
* (see class doc); each avatar's own ring already adapts to that avatar's own `shape`
|
|
85
|
+
* attribute independently. */
|
|
86
|
+
shape: AvatarShape;
|
|
87
|
+
/** Recolors the overflow badge, reused verbatim from `<lyra-avatar>`'s own `AvatarTone` union.
|
|
88
|
+
* `'neutral'` (the default) reads as a plain, unaccented badge. */
|
|
89
|
+
tone: AvatarTone;
|
|
90
|
+
/** The group's own accessible name (`role="group"`'s `aria-label`). A host-level `aria-label`
|
|
91
|
+
* wins if both are set. Unset (the default) renders no `aria-label` at all — a screen reader
|
|
92
|
+
* announces "group" with no name, then reads each avatar's own accessible name in turn. */
|
|
93
|
+
label: string;
|
|
94
|
+
private childCount;
|
|
95
|
+
protected willUpdate(): void;
|
|
96
|
+
firstUpdated(): void;
|
|
97
|
+
protected updated(): void;
|
|
98
|
+
private get hasOverflow();
|
|
99
|
+
private get hiddenCount();
|
|
100
|
+
private syncChildVisibility;
|
|
101
|
+
private onSlotChange;
|
|
102
|
+
private onOverflowClick;
|
|
103
|
+
render(): TemplateResult;
|
|
104
|
+
}
|
|
105
|
+
declare global {
|
|
106
|
+
interface HTMLElementTagNameMap {
|
|
107
|
+
'lyra-avatar-group': LyraAvatarGroup;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=avatar-group.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar-group.class.d.ts","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAK7D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEjG,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,UAAU,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,WAAW,CAAC,8BAA8B,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBAAa,eAAgB,SAAQ,WAAW,CAAC,uBAAuB,CAAC;IACvE,MAAM,CAAC,MAAM,iCAAgC;IAE7C;;iEAE6D;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEzC;;gBAEY;IACiB,IAAI,EAAE,UAAU,CAAQ;IAErD;;;mCAG+B;IACF,KAAK,EAAE,WAAW,CAAY;IAE3D;wEACoE;IACvC,IAAI,EAAE,UAAU,CAAa;IAE1D;;gGAE4F;IAChF,KAAK,SAAM;IAId,OAAO,CAAC,UAAU,CAAK;IAEhC,SAAS,CAAC,UAAU,IAAI,IAAI,CAI3B;IAED,YAAY,IAAI,IAAI,CAOnB;IAED,SAAS,CAAC,OAAO,IAAI,IAAI,CAExB;IAED,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,eAAe,CAOrB;IAEF,MAAM,IAAI,cAAc,CAuBvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from 'lit';
|
|
8
|
+
import { property, state } from 'lit/decorators.js';
|
|
9
|
+
import { styleMap } from 'lit/directives/style-map.js';
|
|
10
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
11
|
+
import { styles } from './avatar-group.styles.js';
|
|
12
|
+
/**
|
|
13
|
+
* `<lyra-avatar-group>` — stacks a set of slotted `<lyra-avatar>` children into a single
|
|
14
|
+
* overlapping row (negative-margin overlap, ring border so each circle reads as distinct) and,
|
|
15
|
+
* past a configurable `max` count, collapses the excess into a "+N" overflow badge. First-party
|
|
16
|
+
* invention (no Web Awesome equivalent), composed over `<lyra-avatar>` rather than reimplementing
|
|
17
|
+
* it — plain light-DOM slotted content is the group's items, the same shape `<lyra-split>`'s
|
|
18
|
+
* panels / `<lyra-source-list>`'s cards / `<lyra-chip-group>`'s chips already use, not a
|
|
19
|
+
* `.items` array prop.
|
|
20
|
+
*
|
|
21
|
+
* **`size`/`shape`/`tone` do not cascade onto slotted avatars.** They drive only this
|
|
22
|
+
* component's own ring, overlap amount, and the overflow badge's rendering — they cannot resize
|
|
23
|
+
* or reshape the `<lyra-avatar>` children themselves, since each avatar's own `--lyra-avatar-size`
|
|
24
|
+
* lives inside *its own* shadow-scoped `:host` block and unconditionally overrides anything of
|
|
25
|
+
* the same custom-property name inherited from an ancestor. This mirrors every other group
|
|
26
|
+
* component in this library (`button-group`, `checkbox-group`, `radio`): none of them cascade a
|
|
27
|
+
* size/variant prop onto their children either. The consumer is responsible for setting a
|
|
28
|
+
* matching `size`/`shape` on both the group and each `<lyra-avatar>` child for a visually coherent
|
|
29
|
+
* stack.
|
|
30
|
+
*
|
|
31
|
+
* **Deliberate divergence from `<lyra-chip-group>`'s overflow pattern.** Chip-group's overflow
|
|
32
|
+
* indicator is a disclosure toggle that reveals the excess children in place (`aria-expanded`,
|
|
33
|
+
* a "Show less" relabel). This component's overflow badge does not do that — unstacking N more
|
|
34
|
+
* circles back into the row would defeat the entire point of a compact identity stack. Instead,
|
|
35
|
+
* `lyra-overflow-click` is a pure notification hook: the component keeps rendering the same
|
|
36
|
+
* collapsed stack + badge regardless of whether anyone listens, and a consumer typically wires
|
|
37
|
+
* the event to open their own popover/dialog/tooltip listing the hidden members (out of scope for
|
|
38
|
+
* this component — no popover dependency is introduced here). There is no `expanded` state, no
|
|
39
|
+
* `aria-expanded`, and the badge never changes its own text/label on click.
|
|
40
|
+
*
|
|
41
|
+
* **No roving-tabindex / arrow-key composite-widget behavior applies here, and this is
|
|
42
|
+
* intentional, not an oversight.** Avatars are non-interactive per `<lyra-avatar>`'s own
|
|
43
|
+
* established contract (purely presentational, no built-in interactivity), so this is not a
|
|
44
|
+
* listbox/toolbar/grid needing `ArrowLeft`/`ArrowRight` roving focus — the overflow badge is the
|
|
45
|
+
* only interactive element, and as a native `<button>` it's automatically part of the normal Tab
|
|
46
|
+
* sequence with no custom keyboard handling required.
|
|
47
|
+
*
|
|
48
|
+
* @customElement lyra-avatar-group
|
|
49
|
+
* @slot - `<lyra-avatar>` elements (or any content, though the avatar pairing is the intended
|
|
50
|
+
* usage).
|
|
51
|
+
* @event lyra-overflow-click - The overflow badge was activated (click, or Enter/Space while
|
|
52
|
+
* focused — native `<button>` behavior). `detail: { hiddenCount, hiddenAvatars }` where
|
|
53
|
+
* `hiddenAvatars` is the current set of children the component has hidden past `max`.
|
|
54
|
+
* Non-cancelable — informational hook, no default action to veto.
|
|
55
|
+
* @csspart base - The outer inline-flex container (holds the slot and the overflow badge).
|
|
56
|
+
* @csspart overflow-badge - The "+N" button. Only rendered while `max` is actively causing an
|
|
57
|
+
* overflow.
|
|
58
|
+
* @cssprop [--lyra-avatar-group-avatar-size=var(--lyra-size-2rem)] - Sizes the overflow badge to
|
|
59
|
+
* match the slotted avatars. Does not resize the avatars themselves (see class doc) — set a
|
|
60
|
+
* matching `size` on each `<lyra-avatar>` child directly for that.
|
|
61
|
+
* @cssprop [--lyra-avatar-group-overlap=var(--lyra-size-neg-6px)] - Horizontal overlap between
|
|
62
|
+
* consecutive avatars (a logical `margin-inline-start`, so it auto-mirrors under `dir="rtl"`).
|
|
63
|
+
* Setting this to `0` or a positive length is a supported escape hatch that turns the stack into
|
|
64
|
+
* normal, non-overlapping spacing.
|
|
65
|
+
* @cssprop [--lyra-avatar-group-ring-color=var(--lyra-color-surface)] - The cutout-style ring
|
|
66
|
+
* drawn around every avatar and the overflow badge.
|
|
67
|
+
* @cssprop [--lyra-avatar-group-ring-width=var(--lyra-border-width-medium)] - Ring thickness.
|
|
68
|
+
* @cssprop [--lyra-avatar-group-badge-bg=var(--lyra-color-border)] - Overflow badge background.
|
|
69
|
+
* Tone-driven; see `tone`.
|
|
70
|
+
* @cssprop [--lyra-avatar-group-badge-color=var(--lyra-color-text)] - Overflow badge text color.
|
|
71
|
+
* Tone-driven; see `tone`.
|
|
72
|
+
*/
|
|
73
|
+
export class LyraAvatarGroup extends LyraElement {
|
|
74
|
+
constructor() {
|
|
75
|
+
super(...arguments);
|
|
76
|
+
/** Visual size, reused verbatim from `<lyra-avatar>`'s own `AvatarSize` union. Drives the
|
|
77
|
+
* overflow badge's size and the overlap amount — does not resize slotted avatars (see class
|
|
78
|
+
* doc). */
|
|
79
|
+
this.size = 'md';
|
|
80
|
+
/** `'circle'` (the default) or `'square'`, reused verbatim from `<lyra-avatar>`'s own
|
|
81
|
+
* `AvatarShape` union. Drives the overflow badge's shape — does not reshape slotted avatars
|
|
82
|
+
* (see class doc); each avatar's own ring already adapts to that avatar's own `shape`
|
|
83
|
+
* attribute independently. */
|
|
84
|
+
this.shape = 'circle';
|
|
85
|
+
/** Recolors the overflow badge, reused verbatim from `<lyra-avatar>`'s own `AvatarTone` union.
|
|
86
|
+
* `'neutral'` (the default) reads as a plain, unaccented badge. */
|
|
87
|
+
this.tone = 'neutral';
|
|
88
|
+
/** The group's own accessible name (`role="group"`'s `aria-label`). A host-level `aria-label`
|
|
89
|
+
* wins if both are set. Unset (the default) renders no `aria-label` at all — a screen reader
|
|
90
|
+
* announces "group" with no name, then reads each avatar's own accessible name in turn. */
|
|
91
|
+
this.label = '';
|
|
92
|
+
// Tracks the default slot's assigned-element count, the same connectedCallback/willUpdate +
|
|
93
|
+
// slotchange convention `<lyra-chip-group>`'s `childCount` already establishes.
|
|
94
|
+
this.childCount = 0;
|
|
95
|
+
this.onSlotChange = (e) => {
|
|
96
|
+
this.childCount = e.target.assignedElements({ flatten: true }).length;
|
|
97
|
+
};
|
|
98
|
+
this.onOverflowClick = () => {
|
|
99
|
+
const slot = this.shadowRoot.querySelector('slot');
|
|
100
|
+
const hiddenAvatars = slot.assignedElements({ flatten: true }).slice(this.max);
|
|
101
|
+
this.emit('lyra-overflow-click', {
|
|
102
|
+
hiddenCount: hiddenAvatars.length,
|
|
103
|
+
hiddenAvatars,
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
108
|
+
willUpdate() {
|
|
109
|
+
if (!this.hasUpdated) {
|
|
110
|
+
this.childCount = this.children.length;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
firstUpdated() {
|
|
114
|
+
// Fallback reconciliation for slot-forwarding / engines that don't fire `slotchange` for
|
|
115
|
+
// content present at parse time — same idiom as `<lyra-chip-group>`'s identical
|
|
116
|
+
// `firstUpdated`. `updated()` (below) always runs right after this and recomputes visibility
|
|
117
|
+
// from this same corrected count.
|
|
118
|
+
const slot = this.shadowRoot.querySelector('slot');
|
|
119
|
+
this.childCount = slot.assignedElements({ flatten: true }).length;
|
|
120
|
+
}
|
|
121
|
+
updated() {
|
|
122
|
+
this.syncChildVisibility();
|
|
123
|
+
}
|
|
124
|
+
get hasOverflow() {
|
|
125
|
+
const max = this.max;
|
|
126
|
+
return max != null && Number.isFinite(max) && max >= 0 && this.childCount > max;
|
|
127
|
+
}
|
|
128
|
+
get hiddenCount() {
|
|
129
|
+
return this.hasOverflow ? this.childCount - this.max : 0;
|
|
130
|
+
}
|
|
131
|
+
syncChildVisibility() {
|
|
132
|
+
const overflowing = this.hasOverflow;
|
|
133
|
+
const max = this.max;
|
|
134
|
+
const slot = this.shadowRoot?.querySelector('slot');
|
|
135
|
+
const assignedChildren = slot?.assignedElements({ flatten: true }) ?? Array.from(this.children);
|
|
136
|
+
assignedChildren.forEach((child, i) => {
|
|
137
|
+
child.hidden = overflowing && i >= max;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
render() {
|
|
141
|
+
const overflowing = this.hasOverflow;
|
|
142
|
+
const hiddenCount = this.hiddenCount;
|
|
143
|
+
// The badge is the first *visible* element in the row only when every avatar is hidden
|
|
144
|
+
// (max <= 0) — there's no selector that can express "first visible thing regardless of DOM
|
|
145
|
+
// position", so the margin override is computed here instead of in CSS.
|
|
146
|
+
const badgeIsFirstVisible = overflowing && hiddenCount === this.childCount;
|
|
147
|
+
const accessibleLabel = this.label || this.getAttribute('aria-label') || nothing;
|
|
148
|
+
return html `
|
|
149
|
+
<div part="base" role="group" aria-label=${accessibleLabel}>
|
|
150
|
+
<slot @slotchange=${this.onSlotChange}></slot>
|
|
151
|
+
${overflowing
|
|
152
|
+
? html `<button
|
|
153
|
+
part="overflow-badge"
|
|
154
|
+
type="button"
|
|
155
|
+
style=${styleMap({ marginInlineStart: badgeIsFirstVisible ? '0' : undefined })}
|
|
156
|
+
aria-label=${this.localize('showMoreCount', undefined, { count: hiddenCount })}
|
|
157
|
+
@click=${this.onOverflowClick}
|
|
158
|
+
>${this.localize('showMoreCollapsed', undefined, { count: hiddenCount })}</button>`
|
|
159
|
+
: nothing}
|
|
160
|
+
</div>
|
|
161
|
+
`;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
__decorate([
|
|
165
|
+
property({ type: Number })
|
|
166
|
+
], LyraAvatarGroup.prototype, "max", void 0);
|
|
167
|
+
__decorate([
|
|
168
|
+
property({ reflect: true })
|
|
169
|
+
], LyraAvatarGroup.prototype, "size", void 0);
|
|
170
|
+
__decorate([
|
|
171
|
+
property({ reflect: true })
|
|
172
|
+
], LyraAvatarGroup.prototype, "shape", void 0);
|
|
173
|
+
__decorate([
|
|
174
|
+
property({ reflect: true })
|
|
175
|
+
], LyraAvatarGroup.prototype, "tone", void 0);
|
|
176
|
+
__decorate([
|
|
177
|
+
property()
|
|
178
|
+
], LyraAvatarGroup.prototype, "label", void 0);
|
|
179
|
+
__decorate([
|
|
180
|
+
state()
|
|
181
|
+
], LyraAvatarGroup.prototype, "childCount", void 0);
|
|
182
|
+
//# sourceMappingURL=avatar-group.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar-group.class.js","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar-group.d.ts","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar-group.js","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar-group.styles.d.ts","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA6GlB,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
vertical-align: middle;
|
|
6
|
+
--lyra-avatar-group-avatar-size: var(--lyra-size-2rem);
|
|
7
|
+
--lyra-avatar-group-overlap: var(--lyra-size-neg-6px);
|
|
8
|
+
--lyra-avatar-group-ring-color: var(--lyra-color-surface);
|
|
9
|
+
--lyra-avatar-group-ring-width: var(--lyra-border-width-medium);
|
|
10
|
+
--lyra-avatar-group-badge-bg: var(--lyra-color-border);
|
|
11
|
+
--lyra-avatar-group-badge-color: var(--lyra-color-text);
|
|
12
|
+
}
|
|
13
|
+
:host([size='sm']) {
|
|
14
|
+
--lyra-avatar-group-avatar-size: var(--lyra-size-1-5rem);
|
|
15
|
+
--lyra-avatar-group-overlap: var(--lyra-size-neg-4px);
|
|
16
|
+
}
|
|
17
|
+
:host([size='lg']) {
|
|
18
|
+
--lyra-avatar-group-avatar-size: var(--lyra-size-2-5rem);
|
|
19
|
+
--lyra-avatar-group-overlap: var(--lyra-size-neg-8px);
|
|
20
|
+
}
|
|
21
|
+
:host([tone='brand']) {
|
|
22
|
+
--lyra-avatar-group-badge-bg: var(--lyra-color-brand-quiet);
|
|
23
|
+
--lyra-avatar-group-badge-color: var(--lyra-color-brand);
|
|
24
|
+
}
|
|
25
|
+
:host([tone='success']) {
|
|
26
|
+
--lyra-avatar-group-badge-bg: var(--lyra-color-success-quiet);
|
|
27
|
+
--lyra-avatar-group-badge-color: var(--lyra-color-success);
|
|
28
|
+
}
|
|
29
|
+
:host([tone='warning']) {
|
|
30
|
+
--lyra-avatar-group-badge-bg: var(--lyra-color-warning-quiet);
|
|
31
|
+
--lyra-avatar-group-badge-color: var(--lyra-color-warning);
|
|
32
|
+
}
|
|
33
|
+
:host([tone='danger']) {
|
|
34
|
+
--lyra-avatar-group-badge-bg: var(--lyra-color-danger-quiet);
|
|
35
|
+
--lyra-avatar-group-badge-color: var(--lyra-color-danger);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Unlike lyra-chip-group's [part='base'], this never wraps -- wrapping an overlapping stack to
|
|
39
|
+
a second line breaks the entire visual, so flex-wrap stays at its nowrap default. */
|
|
40
|
+
[part='base'] {
|
|
41
|
+
display: inline-flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
min-inline-size: 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Overlap via a logical margin so it auto-mirrors under dir="rtl" with zero JS: the first
|
|
47
|
+
avatar visually anchors at the inline-start edge in either direction, later ones pull toward
|
|
48
|
+
it. Later avatars paint on top of earlier ones for free (non-positioned, non-z-indexed
|
|
49
|
+
elements already paint in flattened-slot order), and the shadow template places <slot> before
|
|
50
|
+
the overflow badge, so the badge continues the same stacking when it renders. This targets
|
|
51
|
+
<lyra-avatar>'s own outer host box (sized by avatar.styles.ts's host display: inline-flex
|
|
52
|
+
rule to exactly match its single [part=base] circle) -- avatar.styles.ts never sets
|
|
53
|
+
box-shadow/border-radius on its own host, so there's no conflict. */
|
|
54
|
+
::slotted(lyra-avatar) {
|
|
55
|
+
margin-inline-start: var(--lyra-avatar-group-overlap);
|
|
56
|
+
border-radius: var(--lyra-radius-pill);
|
|
57
|
+
box-shadow: 0 0 0 var(--lyra-avatar-group-ring-width) var(--lyra-avatar-group-ring-color);
|
|
58
|
+
}
|
|
59
|
+
::slotted(lyra-avatar:first-child) {
|
|
60
|
+
margin-inline-start: 0;
|
|
61
|
+
}
|
|
62
|
+
/* Each avatar's own ring adapts to that avatar's own reflected shape attribute -- no
|
|
63
|
+
group-level coordination needed even in a mixed-shape group. */
|
|
64
|
+
::slotted(lyra-avatar[shape='square']) {
|
|
65
|
+
border-radius: var(--lyra-radius);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Deliberately its own local badge styling rather than instantiating a real <lyra-avatar> in
|
|
69
|
+
the shadow DOM for this -- keeps the group's rendering self-contained, the same way
|
|
70
|
+
lyra-chip-group's overflow-indicator duplicates rather than nests a real <lyra-chip>. */
|
|
71
|
+
[part='overflow-badge'] {
|
|
72
|
+
display: inline-flex;
|
|
73
|
+
flex: 0 0 auto;
|
|
74
|
+
align-items: center;
|
|
75
|
+
justify-content: center;
|
|
76
|
+
box-sizing: border-box;
|
|
77
|
+
inline-size: var(--lyra-avatar-group-avatar-size);
|
|
78
|
+
block-size: var(--lyra-avatar-group-avatar-size);
|
|
79
|
+
margin-inline-start: var(--lyra-avatar-group-overlap);
|
|
80
|
+
border: none;
|
|
81
|
+
border-radius: var(--lyra-radius-pill);
|
|
82
|
+
box-shadow: 0 0 0 var(--lyra-avatar-group-ring-width) var(--lyra-avatar-group-ring-color);
|
|
83
|
+
background: var(--lyra-avatar-group-badge-bg);
|
|
84
|
+
color: var(--lyra-avatar-group-badge-color);
|
|
85
|
+
font: inherit;
|
|
86
|
+
font-size: var(--lyra-font-size-sm);
|
|
87
|
+
font-weight: var(--lyra-font-weight-semibold);
|
|
88
|
+
line-height: var(--lyra-line-height-snug);
|
|
89
|
+
cursor: pointer;
|
|
90
|
+
-webkit-tap-highlight-color: transparent;
|
|
91
|
+
transition:
|
|
92
|
+
background-color var(--lyra-transition-fast),
|
|
93
|
+
box-shadow var(--lyra-transition-fast);
|
|
94
|
+
}
|
|
95
|
+
:host([shape='square']) [part='overflow-badge'] {
|
|
96
|
+
border-radius: var(--lyra-radius);
|
|
97
|
+
}
|
|
98
|
+
[part='overflow-badge']:hover {
|
|
99
|
+
box-shadow: 0 0 0 var(--lyra-avatar-group-ring-width) var(--lyra-color-brand);
|
|
100
|
+
}
|
|
101
|
+
[part='overflow-badge']:focus-visible {
|
|
102
|
+
outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
|
|
103
|
+
outline-offset: var(--lyra-focus-ring-offset);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@media (prefers-reduced-motion: reduce) {
|
|
107
|
+
[part='overflow-badge'] {
|
|
108
|
+
transition: none !important;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
`;
|
|
112
|
+
//# sourceMappingURL=avatar-group.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar-group.styles.js","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6GxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.class.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"calendar.class.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAK7D,MAAM,WAAW,aAAa;IAAG,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAAE;AAC1I,MAAM,WAAW,oBAAoB;IAAG,kBAAkB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAAC,kBAAkB,EAAE,WAAW,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAAE;AAG/M;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAa,SAAQ,WAAW,CAAC,oBAAoB,CAAC;IACjE,MAAM,CAAC,MAAM,iCAAgC;IACb,MAAM,EAAE,aAAa,EAAE,CAAM;IACjD,KAAK,SAAM;IACe,QAAQ,SAA6C;IAC9D,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAW;IACJ,cAAc,SAAK;IACxC,eAAe,SAAM;IACnD,OAAO,CAAC,WAAW,CAAM;IAClC,OAAO,KAAK,SAAS,GAAuJ;IAC5K,wOAAwO;IACxO,OAAO,KAAK,wBAAwB,GAAwI;IAC5K,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ;IAChB,MAAM,IAAI,cAAc,CAMvB;CACF;AACD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,eAAe,EAAE,YAAY,CAAC;KAAE;CAAE"}
|
|
@@ -9,20 +9,9 @@ import { property, state } from 'lit/decorators.js';
|
|
|
9
9
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
10
10
|
import { LyraElement } from '../../internal/lyra-element.js';
|
|
11
11
|
import { formatISO, monthMatrix, weekdayLabels } from '../date-picker/calendar-core.js';
|
|
12
|
+
import { sanitizeSwatchColor } from '../../internal/safe-css.js';
|
|
12
13
|
import { styles } from './calendar.styles.js';
|
|
13
14
|
const monthStart = (date) => new Date(date.getFullYear(), date.getMonth(), 1);
|
|
14
|
-
/**
|
|
15
|
-
* Matches only actual CSS color syntax: hex (`#fff`/`#ffffff`/`#ffffffff`),
|
|
16
|
-
* bare keywords (named colors, `transparent`, `currentColor`), the standard
|
|
17
|
-
* color functions, and `var(--custom-property)` references. Anything else --
|
|
18
|
-
* notably `url(...)`, which is otherwise valid `background` syntax -- is
|
|
19
|
-
* rejected. Guards `CalendarEvent.color`, which is caller-supplied data that
|
|
20
|
-
* would otherwise interpolate straight into a `style` declaration.
|
|
21
|
-
*/
|
|
22
|
-
const SAFE_SWATCH_COLOR = /^(?:#[0-9a-fA-F]{3,8}|[a-zA-Z]+|(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([-+0-9.%,/\s]+\)|var\(--[\w-]+\))$/;
|
|
23
|
-
function sanitizeSwatchColor(color) {
|
|
24
|
-
return SAFE_SWATCH_COLOR.test(color.trim()) ? color : undefined;
|
|
25
|
-
}
|
|
26
15
|
/** `<lyra-calendar>` — responsive month calendar with event markers and agenda mode.
|
|
27
16
|
*
|
|
28
17
|
* Month-view event markers are a mouse-only quick-select affordance layered on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.class.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,MAAM,UAAU,GAAG,CAAC,IAAU,EAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1F
|
|
1
|
+
{"version":3,"file":"calendar.class.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export declare class LyraCalendarViewer extends LyraElement<LyraCalendarViewerEv
|
|
|
34
34
|
static styles: import("lit").CSSResultGroup[];
|
|
35
35
|
/** URL to fetch and parse as an iCalendar document. */
|
|
36
36
|
src: string;
|
|
37
|
-
/** Display name associated with the calendar. Used as the accessible name of `[part='base']
|
|
37
|
+
/** Display name associated with the calendar. Used as the accessible name of `[part='base']`, falling back to a host `aria-label` and then the localized `calendarViewerLabel` default, matching the `csvViewerLabel`-style sibling document viewers. */
|
|
38
38
|
name: string;
|
|
39
39
|
/** CSS length that caps the scrollable event body. */
|
|
40
40
|
maxHeight: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/calendar-viewer/calendar-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CAAE;AAEnJ,MAAM,WAAW,0BAA0B;IAAG,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAAE;AAQrG;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,0BAA0B,CAAC;IAC7E,MAAM,CAAC,MAAM,iCAAwC;IACrD,uDAAuD;IAC3C,GAAG,SAAM;IACrB,
|
|
1
|
+
{"version":3,"file":"calendar-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/calendar-viewer/calendar-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CAAE;AAEnJ,MAAM,WAAW,0BAA0B;IAAG,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAAE;AAQrG;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,0BAA0B,CAAC;IAC7E,MAAM,CAAC,MAAM,iCAAwC;IACrD,uDAAuD;IAC3C,GAAG,SAAM;IACrB,yPAAyP;IAC7O,IAAI,SAAM;IACtB,sDAAsD;IACf,SAAS,SAAM;IAC7C,OAAO,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,UAAU,CAAK;IAEvB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/C;YAEa,IAAI;YAmBJ,KAAK;IAiBnB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IASlB,MAAM,IAAI,cAAc,CAAkR;CAC3S;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,sBAAsB,EAAE,kBAAkB,CAAC;KAAE;CAAE"}
|
|
@@ -40,7 +40,7 @@ export class LyraCalendarViewer extends LyraElement {
|
|
|
40
40
|
super(...arguments);
|
|
41
41
|
/** URL to fetch and parse as an iCalendar document. */
|
|
42
42
|
this.src = '';
|
|
43
|
-
/** Display name associated with the calendar. Used as the accessible name of `[part='base']
|
|
43
|
+
/** Display name associated with the calendar. Used as the accessible name of `[part='base']`, falling back to a host `aria-label` and then the localized `calendarViewerLabel` default, matching the `csvViewerLabel`-style sibling document viewers. */
|
|
44
44
|
this.name = '';
|
|
45
45
|
/** CSS length that caps the scrollable event body. */
|
|
46
46
|
this.maxHeight = '';
|
|
@@ -110,7 +110,7 @@ export class LyraCalendarViewer extends LyraElement {
|
|
|
110
110
|
default: return html `<p class="empty-note">${this.localize('documentPreviewEmpty', undefined, { type: this.localize('documentPreviewTypeCalendar') })}</p>`;
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
render() { return html `<div part="base" style=${this.maxHeight ? `--lyra-calendar-viewer-max-height:${this.maxHeight}` : nothing} aria-label=${this.name || this.getAttribute('aria-label') ||
|
|
113
|
+
render() { return html `<div part="base" style=${this.maxHeight ? `--lyra-calendar-viewer-max-height:${this.maxHeight}` : nothing} aria-label=${this.name || this.getAttribute('aria-label') || this.localize('calendarViewerLabel')}><div part="body">${this.renderBody()}</div></div>`; }
|
|
114
114
|
}
|
|
115
115
|
__decorate([
|
|
116
116
|
property()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-viewer.class.js","sourceRoot":"","sources":["../../../src/components/calendar-viewer/calendar-viewer.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAA4C,MAAM,KAAK,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC9H,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAMrD,SAAS,eAAe,CAAC,KAAkB,EAAE,GAAgB,EAAE,MAAc;IAC3E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5G,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjG,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAuC;IAA/E;;QAEE,uDAAuD;QAC3C,QAAG,GAAG,EAAE,CAAC;QACrB,
|
|
1
|
+
{"version":3,"file":"calendar-viewer.class.js","sourceRoot":"","sources":["../../../src/components/calendar-viewer/calendar-viewer.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box-plot.class.d.ts","sourceRoot":"","sources":["../../../src/components/chart/box-plot.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"box-plot.class.d.ts","sourceRoot":"","sources":["../../../src/components/chart/box-plot.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAM7D,OAAO,+BAA+B,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmDD;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,WAAW;IAC1C,MAAM,CAAC,MAAM,iCAAwC;IAErB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtB,KAAK,EAAE,aAAa,EAAE,CAAM;IAC/B,MAAM,UAAS;IAChC,MAAM,SAAW;IACO,MAAM,SAAM;IACS,WAAW,UAAQ;IAC5E,+GAA+G;IAClE,eAAe,SAAM;IAClE,6FAA6F;IAC1C,qBAAqB,SAAM;IAC9E,6FAA6F;IAClC,aAAa,UAAS;IAEjF;;;;OAIG;IACM,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IAEnC,OAAO,CAAC,QAAQ,CAAC,CAAoB;IACtD,OAAO,CAAC,KAAK,CAAC,CAAkB;IAChC,OAAO,CAAC,aAAa,CAAC,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAkC;IAEvD,iBAAiB,IAAI,IAAI,CAWxB;YAca,qBAAqB;IAYnC,oBAAoB,IAAI,IAAI,CAK3B;IAED,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAmB/C;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;IAgDnB,OAAO,CAAC,IAAI;IAYZ,0FAA0F;IAC1F,YAAY,IAAI,IAAI,CAEnB;IAED,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IAoCvB,MAAM,IAAI,cAAc,CAoBvB;CACF;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}
|
|
@@ -8,6 +8,7 @@ import { html } from 'lit';
|
|
|
8
8
|
import { property, query, state } from 'lit/decorators.js';
|
|
9
9
|
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
10
|
import { nextId, srOnly } from '../../internal/a11y.js';
|
|
11
|
+
import { prefersReducedMotion } from '../../internal/motion.js';
|
|
11
12
|
import { loadChartJs } from './chart-loader.js';
|
|
12
13
|
import { styles } from './box-plot.styles.js';
|
|
13
14
|
import '../skeleton/skeleton.class.js';
|
|
@@ -22,9 +23,6 @@ const FALLBACK_TICK_COLOR = '#6b7280';
|
|
|
22
23
|
const FALLBACK_LEGEND_COLOR = '#1a1a1a';
|
|
23
24
|
const FALLBACK_TOOLTIP_BG = '#fff';
|
|
24
25
|
const FALLBACK_TOOLTIP_TEXT = '#1a1a1a';
|
|
25
|
-
function prefersReducedMotion() {
|
|
26
|
-
return typeof window !== 'undefined' && !!window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;
|
|
27
|
-
}
|
|
28
26
|
let boxPlotPlugin;
|
|
29
27
|
/**
|
|
30
28
|
* Lazily loads `@sgratzl/chartjs-chart-boxplot` and registers its controller
|