@aceshooting/lyra-ui 3.4.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 +50145 -41814
- 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/app-rail/app-rail-item.class.d.ts +1 -0
- package/dist/components/app-rail/app-rail-item.class.d.ts.map +1 -1
- package/dist/components/app-rail/app-rail-item.class.js +13 -2
- package/dist/components/app-rail/app-rail-item.class.js.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.d.ts +0 -1
- package/dist/components/attachment-chip/attachment-chip.d.ts.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.js +0 -1
- package/dist/components/attachment-chip/attachment-chip.js.map +1 -1
- 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/breadcrumb/breadcrumb-item.class.d.ts.map +1 -1
- package/dist/components/breadcrumb/breadcrumb-item.class.js +2 -1
- package/dist/components/breadcrumb/breadcrumb-item.class.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb-item.styles.d.ts +2 -0
- package/dist/components/breadcrumb/breadcrumb-item.styles.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb-item.styles.js +20 -0
- package/dist/components/breadcrumb/breadcrumb-item.styles.js.map +1 -0
- package/dist/components/calendar/calendar.class.d.ts +17 -1
- package/dist/components/calendar/calendar.class.d.ts.map +1 -1
- package/dist/components/calendar/calendar.class.js +31 -13
- package/dist/components/calendar/calendar.class.js.map +1 -1
- package/dist/components/calendar/calendar.styles.d.ts.map +1 -1
- package/dist/components/calendar/calendar.styles.js +4 -1
- package/dist/components/calendar/calendar.styles.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/callout/callout.class.js +1 -1
- package/dist/components/callout/callout.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 +10 -4
- package/dist/components/chart/chart.class.js.map +1 -1
- package/dist/components/chart/histogram.class.d.ts.map +1 -1
- package/dist/components/chart/histogram.class.js +6 -2
- package/dist/components/chart/histogram.class.js.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.class.js +2 -2
- package/dist/components/checkbox-group/checkbox-group.class.js.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.styles.js +1 -1
- package/dist/components/code-editor/code-editor.class.d.ts +9 -2
- package/dist/components/code-editor/code-editor.class.d.ts.map +1 -1
- package/dist/components/code-editor/code-editor.class.js +38 -6
- package/dist/components/code-editor/code-editor.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 +7 -4
- package/dist/components/code-editor/code-editor.styles.js.map +1 -1
- package/dist/components/command-palette/command-palette.class.d.ts +8 -2
- package/dist/components/command-palette/command-palette.class.d.ts.map +1 -1
- package/dist/components/command-palette/command-palette.class.js +77 -17
- package/dist/components/command-palette/command-palette.class.js.map +1 -1
- package/dist/components/command-palette/command-palette.styles.js +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/data-grid/data-grid.class.d.ts.map +1 -1
- package/dist/components/data-grid/data-grid.class.js +4 -4
- package/dist/components/data-grid/data-grid.class.js.map +1 -1
- package/dist/components/data-grid/data-grid.styles.js +1 -1
- package/dist/components/document-preview/document-preview.class.d.ts +3 -6
- package/dist/components/document-preview/document-preview.class.d.ts.map +1 -1
- package/dist/components/document-preview/document-preview.class.js +19 -42
- package/dist/components/document-preview/document-preview.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/empty/empty.class.d.ts.map +1 -1
- package/dist/components/empty/empty.class.js +8 -2
- package/dist/components/empty/empty.class.js.map +1 -1
- package/dist/components/format/format-bytes.class.d.ts +0 -1
- package/dist/components/format/format-bytes.class.d.ts.map +1 -1
- package/dist/components/format/format-bytes.class.js +0 -4
- package/dist/components/format/format-bytes.class.js.map +1 -1
- package/dist/components/format/format-date.class.d.ts +0 -1
- package/dist/components/format/format-date.class.d.ts.map +1 -1
- package/dist/components/format/format-date.class.js +0 -4
- package/dist/components/format/format-date.class.js.map +1 -1
- package/dist/components/format/format-number.class.d.ts +0 -1
- package/dist/components/format/format-number.class.d.ts.map +1 -1
- package/dist/components/format/format-number.class.js +0 -4
- package/dist/components/format/format-number.class.js.map +1 -1
- package/dist/components/format/relative-time.class.d.ts +0 -1
- package/dist/components/format/relative-time.class.d.ts.map +1 -1
- package/dist/components/format/relative-time.class.js +0 -4
- package/dist/components/format/relative-time.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 +3 -12
- package/dist/components/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/heatmap/heatmap.styles.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.styles.js +0 -3
- package/dist/components/heatmap/heatmap.styles.js.map +1 -1
- package/dist/components/html-viewer/dompurify-loader.js +4 -0
- package/dist/components/html-viewer/dompurify-loader.js.map +1 -1
- package/dist/components/icon/icon.class.d.ts +11 -0
- package/dist/components/icon/icon.class.d.ts.map +1 -1
- package/dist/components/icon/icon.class.js +51 -2
- package/dist/components/icon/icon.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/image-comparer/image-comparer.styles.d.ts.map +1 -1
- package/dist/components/image-comparer/image-comparer.styles.js +12 -0
- package/dist/components/image-comparer/image-comparer.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/intersection-observer/intersection-observer.class.d.ts +0 -1
- package/dist/components/intersection-observer/intersection-observer.class.d.ts.map +1 -1
- package/dist/components/intersection-observer/intersection-observer.class.js +7 -6
- package/dist/components/intersection-observer/intersection-observer.class.js.map +1 -1
- 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 +1 -1
- package/dist/components/map/map.class.d.ts.map +1 -1
- package/dist/components/map/map.class.js +2 -24
- package/dist/components/map/map.class.js.map +1 -1
- package/dist/components/menu/menu.class.d.ts +1 -1
- package/dist/components/model-select/model-select.class.d.ts +1 -0
- package/dist/components/model-select/model-select.class.d.ts.map +1 -1
- package/dist/components/model-select/model-select.class.js +2 -1
- package/dist/components/model-select/model-select.class.js.map +1 -1
- package/dist/components/model-select/model-select.styles.js +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/mutation-observer/mutation-observer.class.d.ts +0 -1
- package/dist/components/mutation-observer/mutation-observer.class.d.ts.map +1 -1
- package/dist/components/mutation-observer/mutation-observer.class.js +0 -5
- package/dist/components/mutation-observer/mutation-observer.class.js.map +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.class.js +1 -1
- package/dist/components/pdf-viewer/pdf-viewer.class.js.map +1 -1
- package/dist/components/phone-input/phone-input.class.d.ts +15 -0
- package/dist/components/phone-input/phone-input.class.d.ts.map +1 -1
- package/dist/components/phone-input/phone-input.class.js +46 -0
- package/dist/components/phone-input/phone-input.class.js.map +1 -1
- package/dist/components/progress/progress-bar.class.js +1 -1
- package/dist/components/progress/progress-bar.class.js.map +1 -1
- package/dist/components/progress/progress.styles.d.ts.map +1 -1
- package/dist/components/progress/progress.styles.js +4 -2
- package/dist/components/progress/progress.styles.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/radio/radio-group.class.d.ts +2 -0
- package/dist/components/radio/radio-group.class.d.ts.map +1 -1
- package/dist/components/radio/radio-group.class.js +6 -2
- package/dist/components/radio/radio-group.class.js.map +1 -1
- package/dist/components/radio/radio-group.styles.d.ts.map +1 -1
- package/dist/components/radio/radio-group.styles.js +1 -0
- package/dist/components/radio/radio-group.styles.js.map +1 -1
- package/dist/components/radio/radio.class.d.ts +4 -0
- package/dist/components/radio/radio.class.d.ts.map +1 -1
- package/dist/components/radio/radio.class.js +18 -0
- package/dist/components/radio/radio.class.js.map +1 -1
- 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/resize-observer/resize-observer.class.d.ts.map +1 -1
- package/dist/components/resize-observer/resize-observer.class.js +12 -0
- package/dist/components/resize-observer/resize-observer.class.js.map +1 -1
- package/dist/components/responsive-panel/responsive-panel.class.d.ts +14 -5
- package/dist/components/responsive-panel/responsive-panel.class.d.ts.map +1 -1
- package/dist/components/responsive-panel/responsive-panel.class.js +18 -6
- package/dist/components/responsive-panel/responsive-panel.class.js.map +1 -1
- 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/scroller/scroller.class.js +2 -2
- package/dist/components/scroller/scroller.class.js.map +1 -1
- package/dist/components/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/segmented/segmented.class.js +1 -1
- package/dist/components/segmented/segmented.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/sparkline/sparkline.class.d.ts.map +1 -1
- package/dist/components/sparkline/sparkline.class.js +10 -7
- package/dist/components/sparkline/sparkline.class.js.map +1 -1
- package/dist/components/split/split.class.d.ts.map +1 -1
- package/dist/components/split/split.class.js +9 -2
- package/dist/components/split/split.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/stat/stat.styles.d.ts.map +1 -1
- package/dist/components/stat/stat.styles.js +9 -0
- package/dist/components/stat/stat.styles.js.map +1 -1
- package/dist/components/stepper/stepper.class.d.ts.map +1 -1
- package/dist/components/stepper/stepper.class.js +1 -1
- package/dist/components/stepper/stepper.class.js.map +1 -1
- package/dist/components/streaming-text/streaming-text.class.d.ts.map +1 -1
- package/dist/components/streaming-text/streaming-text.class.js +5 -5
- package/dist/components/streaming-text/streaming-text.class.js.map +1 -1
- package/dist/components/switch/switch.class.d.ts +7 -0
- package/dist/components/switch/switch.class.d.ts.map +1 -1
- package/dist/components/switch/switch.class.js +9 -0
- package/dist/components/switch/switch.class.js.map +1 -1
- package/dist/components/table/table.class.d.ts +14 -0
- package/dist/components/table/table.class.d.ts.map +1 -1
- package/dist/components/table/table.class.js +52 -1
- package/dist/components/table/table.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/token-input/token-input.class.d.ts +19 -0
- package/dist/components/token-input/token-input.class.d.ts.map +1 -1
- package/dist/components/token-input/token-input.class.js +59 -10
- package/dist/components/token-input/token-input.class.js.map +1 -1
- package/dist/components/token-input/token-input.styles.js +1 -1
- package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts +4 -0
- package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
- package/dist/components/tool-select-dialog/tool-select-dialog.class.js +9 -1
- package/dist/components/tool-select-dialog/tool-select-dialog.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/widget/widget.class.d.ts.map +1 -1
- package/dist/components/widget/widget.class.js +2 -6
- package/dist/components/widget/widget.class.js.map +1 -1
- package/dist/components/widget/widget.styles.d.ts.map +1 -1
- package/dist/components/widget/widget.styles.js +4 -0
- package/dist/components/widget/widget.styles.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 +19 -1
- 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 +104 -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
|
@@ -56,8 +56,19 @@ export class LyraAppRailItem extends LyraElement {
|
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
static { this.styles = [LyraElement.styles, styles]; }
|
|
59
|
+
// Only the default slot's own content counts toward the tooltip text --
|
|
60
|
+
// text incidentally living inside the (decorative) `icon` slot shouldn't
|
|
61
|
+
// leak into the flyout label. Mirrors `lyra-chip`'s `labelText` getter.
|
|
62
|
+
get labelText() {
|
|
63
|
+
return Array.from(this.childNodes)
|
|
64
|
+
.filter((n) => (n.nodeType === Node.TEXT_NODE || n instanceof Element) &&
|
|
65
|
+
!(n instanceof Element && n.getAttribute('slot') === 'icon'))
|
|
66
|
+
.map((n) => n.textContent ?? '')
|
|
67
|
+
.join('')
|
|
68
|
+
.trim();
|
|
69
|
+
}
|
|
59
70
|
get tooltipText() {
|
|
60
|
-
return this.getAttribute('aria-label') || this.
|
|
71
|
+
return this.getAttribute('aria-label') || this.labelText || '';
|
|
61
72
|
}
|
|
62
73
|
updated(changed) {
|
|
63
74
|
if (changed.has('showTooltip')) {
|
|
@@ -83,7 +94,7 @@ export class LyraAppRailItem extends LyraElement {
|
|
|
83
94
|
const label = this.getAttribute('aria-label');
|
|
84
95
|
const href = safeLinkHref(this.href);
|
|
85
96
|
const content = html `
|
|
86
|
-
<span part="icon" aria-hidden
|
|
97
|
+
<span part="icon" aria-hidden="true"><slot name="icon"></slot></span>
|
|
87
98
|
<span part="label"><slot></slot></span>
|
|
88
99
|
${this.showTooltip ? html `<span part="tooltip" role="tooltip">${this.tooltipText}</span>` : nothing}
|
|
89
100
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-rail-item.class.js","sourceRoot":"","sources":["../../../src/components/app-rail/app-rail-item.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,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAAhD;;QAGE,0EAA0E;QAC9D,SAAI,GAAG,EAAE,CAAC;QAEtB,4BAA4B;QAChB,WAAM,GAAG,EAAE,CAAC;QAExB,gEAAgE;QACpB,aAAQ,GAAG,KAAK,CAAC;QAE7D;;;qFAG6E;QACjC,WAAM,GAAG,KAAK,CAAC;QAE3D;;;;qEAI6D;QACjB,YAAO,GAAG,KAAK,CAAC;QAE3C,gBAAW,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"app-rail-item.class.js","sourceRoot":"","sources":["../../../src/components/app-rail/app-rail-item.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-chip.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-chip/attachment-chip.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"attachment-chip.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-chip/attachment-chip.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,OAAO,uCAAuC,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './attachment-chip.class.js';
|
|
2
|
-
import '../document-preview/document-preview.js';
|
|
3
2
|
import '../document-viewer/document-viewer.js';
|
|
4
3
|
import { LyraAttachmentChip } from './attachment-chip.class.js';
|
|
5
4
|
import { defineElement } from '../../internal/prefix.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-chip.js","sourceRoot":"","sources":["../../../src/components/attachment-chip/attachment-chip.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"attachment-chip.js","sourceRoot":"","sources":["../../../src/components/attachment-chip/attachment-chip.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC"}
|
|
@@ -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":"breadcrumb-item.class.d.ts","sourceRoot":"","sources":["../../../src/components/breadcrumb/breadcrumb-item.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"breadcrumb-item.class.d.ts","sourceRoot":"","sources":["../../../src/components/breadcrumb/breadcrumb-item.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,MAAM,iCAAgC;IACjC,IAAI,SAAM;IACsB,OAAO,UAAS;IAC5D,iBAAiB,IAAI,IAAI,CAGxB;IACD,MAAM,IAAI,cAAc,CAKvB;CACF;AACD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,sBAAsB,EAAE,kBAAkB,CAAC;KAAE;CAAE"}
|
|
@@ -8,6 +8,7 @@ import { html, nothing } from 'lit';
|
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
9
|
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
10
|
import { safeLinkHref } from '../../internal/safe-url.js';
|
|
11
|
+
import { styles } from './breadcrumb-item.styles.js';
|
|
11
12
|
/**
|
|
12
13
|
* `<lyra-breadcrumb-item>` — one link or current-page label in a breadcrumb.
|
|
13
14
|
*
|
|
@@ -21,7 +22,7 @@ export class LyraBreadcrumbItem extends LyraElement {
|
|
|
21
22
|
this.href = '';
|
|
22
23
|
this.current = false;
|
|
23
24
|
}
|
|
24
|
-
static { this.styles = [LyraElement.styles]; }
|
|
25
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
25
26
|
connectedCallback() {
|
|
26
27
|
super.connectedCallback();
|
|
27
28
|
this.setAttribute('role', 'listitem');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb-item.class.js","sourceRoot":"","sources":["../../../src/components/breadcrumb/breadcrumb-item.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"breadcrumb-item.class.js","sourceRoot":"","sources":["../../../src/components/breadcrumb/breadcrumb-item.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAAnD;;QAEc,SAAI,GAAG,EAAE,CAAC;QACsB,YAAO,GAAG,KAAK,CAAC;IAW9D,CAAC;aAbQ,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IAG7C,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,MAAM;QACJ,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,CAAC,CAAC,IAAI,CAAA,uBAAuB,IAAI,oBAAoB;YACrD,CAAC,CAAC,IAAI,CAAA,kCAAkC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,uBAAuB,CAAC;IACnG,CAAC;CACF;AAZa;IAAX,QAAQ,EAAE;gDAAW;AACsB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAAiB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumb-item.styles.d.ts","sourceRoot":"","sources":["../../../src/components/breadcrumb/breadcrumb-item.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAiBlB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
[part='base'] {
|
|
4
|
+
color: var(--lyra-color-text);
|
|
5
|
+
text-decoration: none;
|
|
6
|
+
border-radius: var(--lyra-radius);
|
|
7
|
+
}
|
|
8
|
+
a[part='base']:hover {
|
|
9
|
+
text-decoration: underline;
|
|
10
|
+
}
|
|
11
|
+
[part='base']:focus-visible {
|
|
12
|
+
outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
|
|
13
|
+
outline-offset: var(--lyra-focus-ring-offset);
|
|
14
|
+
}
|
|
15
|
+
[part='base'][aria-current='page'] {
|
|
16
|
+
color: var(--lyra-color-text-quiet);
|
|
17
|
+
font-weight: var(--lyra-font-weight-semibold);
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
//# sourceMappingURL=breadcrumb-item.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumb-item.styles.js","sourceRoot":"","sources":["../../../src/components/breadcrumb/breadcrumb-item.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;CAiBxB,CAAC"}
|
|
@@ -21,12 +21,26 @@ export interface LyraCalendarEventMap {
|
|
|
21
21
|
}>;
|
|
22
22
|
}
|
|
23
23
|
/** `<lyra-calendar>` — responsive month calendar with event markers and agenda mode.
|
|
24
|
+
*
|
|
25
|
+
* Month-view event markers are a mouse-only quick-select affordance layered on
|
|
26
|
+
* top of the focusable day cell: the day grid's own roving-tabindex/arrow-key
|
|
27
|
+
* navigation already targets the day `<button>`, and nesting a second
|
|
28
|
+
* focusable control inside that same native `<button>` is not valid (a
|
|
29
|
+
* `<button>` element must not contain interactive/tabindex descendants, and
|
|
30
|
+
* `role="button"` itself forbids focusable descendants regardless). Agenda
|
|
31
|
+
* view renders each event as its own real `<button part="agenda-event">` and
|
|
32
|
+
* is the fully keyboard-accessible way to reach `lyra-event-select`.
|
|
33
|
+
*
|
|
24
34
|
* @customElement lyra-calendar
|
|
25
35
|
* @event lyra-date-select - A calendar date was selected.
|
|
26
36
|
* @event lyra-event-select - An event was selected.
|
|
27
37
|
* @event lyra-view-change - The visible month changed.
|
|
28
38
|
* @csspart header - Calendar header.
|
|
39
|
+
* @csspart nav-glyph - The previous/next chevron glyph, mirrored under RTL.
|
|
40
|
+
* @csspart weekdays - Weekday header row.
|
|
41
|
+
* @csspart weekday - One weekday header cell.
|
|
29
42
|
* @csspart grid - Month grid.
|
|
43
|
+
* @csspart week - One week row within the month grid.
|
|
30
44
|
* @csspart day - Day cell.
|
|
31
45
|
* @csspart event - Event marker.
|
|
32
46
|
* @csspart agenda - Agenda list.
|
|
@@ -41,10 +55,12 @@ export declare class LyraCalendar extends LyraElement<LyraCalendarEventMap> {
|
|
|
41
55
|
accessibleLabel: string;
|
|
42
56
|
private focusedDate;
|
|
43
57
|
private get viewStart();
|
|
58
|
+
/** `firstDayOfWeek` clamped into the 0–6 range `monthMatrix`/`weekdayLabels` expect, tolerating a malformed or out-of-range attribute value instead of letting it silently drop leading days of the month or produce `Invalid Date`. */
|
|
59
|
+
private get normalizedFirstDayOfWeek();
|
|
44
60
|
private changeMonth;
|
|
45
61
|
private selectDate;
|
|
46
62
|
private eventsFor;
|
|
47
|
-
private
|
|
63
|
+
private weeks;
|
|
48
64
|
private onDayKeyDown;
|
|
49
65
|
private weekdays;
|
|
50
66
|
render(): TemplateResult;
|