@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
|
@@ -0,0 +1,415 @@
|
|
|
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, query, state } from 'lit/decorators.js';
|
|
9
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
|
+
import { lockScroll } from '../../internal/scroll-lock.js';
|
|
11
|
+
import { activateOverlay } from '../../internal/overlay-manager.js';
|
|
12
|
+
import { nextId, srOnly } from '../../internal/a11y.js';
|
|
13
|
+
import { closeIcon, chevronIcon } from '../../internal/icons.js';
|
|
14
|
+
import { styles } from './lightbox.styles.js';
|
|
15
|
+
import '../zoomable-frame/zoomable-frame.class.js';
|
|
16
|
+
/**
|
|
17
|
+
* `<lyra-lightbox>` — a full-screen, modal, click-to-enlarge image viewer with prev/next
|
|
18
|
+
* navigation across an ordered set of images. It has no Web Awesome/Shoelace counterpart, so
|
|
19
|
+
* its API follows this library's own conventions.
|
|
20
|
+
*
|
|
21
|
+
* **Not a form-associated control** -- no `label`/`hint`/`errorText` chrome; its
|
|
22
|
+
* `accessibleLabel` only overrides the dialog's own accessible name. The native-wrapper/
|
|
23
|
+
* editing-assistance-passthrough guarantees don't apply either (no internal `<input>`/
|
|
24
|
+
* `<textarea>`).
|
|
25
|
+
*
|
|
26
|
+
* This renders its own dialog panel rather than nesting a `<lyra-dialog>` in its shadow
|
|
27
|
+
* template -- shared overlay infrastructure (`src/internal/overlay-manager.ts`) coordinates
|
|
28
|
+
* stacking, focus trapping, Escape/backdrop dismissal, scroll lock, and focus return with every
|
|
29
|
+
* other overlay in the same document, the same way `<lyra-dialog>`/`<lyra-command-palette>`/
|
|
30
|
+
* `<lyra-widget>` (fullscreen mode)/`<lyra-app-rail>` (mobile mode)/`<lyra-responsive-panel>`
|
|
31
|
+
* already do. Per-image pan/zoom is delegated to one stable embedded `<lyra-zoomable-frame>`
|
|
32
|
+
* instance (its `src`/`alt` swapped per navigation) rather than reimplementing pan/zoom --
|
|
33
|
+
* composing a small sibling leaf component directly in the render template, the same way
|
|
34
|
+
* `<lyra-tool-select-dialog>` composes `<lyra-checkbox>`/`<lyra-switch>`.
|
|
35
|
+
*
|
|
36
|
+
* Zoom/pan reset on navigation is imperative (`LyraZoomableFrame.resetView()`, called from
|
|
37
|
+
* `updated()`) rather than a Lit property binding -- a binding whose value never changes across
|
|
38
|
+
* renders (e.g. `.zoom=${1}`) would only apply once, silently failing to reset on the *second*
|
|
39
|
+
* navigation once the user has interactively zoomed. Recreating the frame element on every
|
|
40
|
+
* navigation (e.g. via Lit's `keyed()` directive) was considered and rejected: it would also
|
|
41
|
+
* reset zoom/pan, but destroying/recreating the element would steal focus from a keyboard user
|
|
42
|
+
* who had Tabbed into the frame's viewport mid-navigation.
|
|
43
|
+
*
|
|
44
|
+
* **Scope for v1 (deliberate, not oversights):** no default slot / no arbitrary slotted content
|
|
45
|
+
* per image (data-driven via `images` only); no dot-style indicators (a textual counter scales
|
|
46
|
+
* better to photo-set sizes); no open/close transition or animation (matches `<lyra-dialog>`'s
|
|
47
|
+
* own precedent of having none -- `prefers-reduced-motion` has nothing to branch on here); no
|
|
48
|
+
* click-on-image-to-navigate (the image is already meaningfully interactive -- it focuses the
|
|
49
|
+
* zoomable frame's viewport and drives its native scroll-to-pan); no touch-swipe-to-navigate.
|
|
50
|
+
*
|
|
51
|
+
* @customElement lyra-lightbox
|
|
52
|
+
* @slot actions - Optional extra toolbar buttons (e.g. download/share/delete), rendered in
|
|
53
|
+
* `part="toolbar"` between the counter and the close button.
|
|
54
|
+
* @event lyra-lightbox-close - `detail: LyraLightboxCloseReason`. Cancelable -- a listener
|
|
55
|
+
* calling `preventDefault()` stops the lightbox from closing, for every dismissal path
|
|
56
|
+
* (Escape, backdrop, the built-in close button, or a consumer's own `close()` call). Fired
|
|
57
|
+
* whenever the lightbox is dismissed via Escape, a backdrop click, the built-in close button,
|
|
58
|
+
* a `close()` call, or (with reason `'unmount'`, not cancelable in practice since the element
|
|
59
|
+
* is already being removed) removal from the DOM by anything else while still open.
|
|
60
|
+
* @event lyra-index-change - Fired only for internally-driven navigation (`next()`/
|
|
61
|
+
* `previous()`/`goTo()` invoked via a button click or a keyboard shortcut). Not fired when a
|
|
62
|
+
* consumer sets `index`/`images` directly. `detail: { index }`.
|
|
63
|
+
* @event lyra-zoom-change - Not emitted by `LyraLightbox` itself -- see the interface doc above.
|
|
64
|
+
* `detail: { zoom }`.
|
|
65
|
+
* @csspart backdrop - The full-viewport scrim, positioned behind `panel`.
|
|
66
|
+
* @csspart panel - `role="dialog"` while open, `aria-modal="true"`, `tabindex="-1"`. Fills the
|
|
67
|
+
* padded safe area -- unlike `<lyra-dialog>`, it does not shrink-wrap to content, since
|
|
68
|
+
* maximizing image real estate is the point.
|
|
69
|
+
* @csspart toolbar - Top row: `counter` (start), the `actions` slot wrapper, `close-button` (end).
|
|
70
|
+
* @csspart counter - Visible, localized "Image N of Total" text. Omitted entirely when
|
|
71
|
+
* `showCounter` is `false`.
|
|
72
|
+
* @csspart live-region - Visually-hidden, `role="status" aria-live="polite" aria-atomic="true"` --
|
|
73
|
+
* announces the current position on every `index` change while open, regardless of trigger
|
|
74
|
+
* (button, keyboard, or a consumer setting `index`/`images` directly), decoupled from the
|
|
75
|
+
* visible `counter` so an unrelated re-render never causes a spurious re-announcement.
|
|
76
|
+
* @csspart actions - Wrapper around the `actions` slot; `hidden` when nothing is slotted.
|
|
77
|
+
* @csspart close-button - The close button. Always rendered -- unlike `<lyra-dialog>`'s opt-in
|
|
78
|
+
* `closable`, a full-screen lightbox has no other built-in chrome, so this is not optional.
|
|
79
|
+
* @csspart stage - Houses the embedded `<lyra-zoomable-frame>` plus the floating
|
|
80
|
+
* `previous-button`/`next-button`.
|
|
81
|
+
* @csspart frame - The embedded `<lyra-zoomable-frame>` element itself. Its own internal parts
|
|
82
|
+
* are not re-exported via `exportparts` -- there is no precedent for `exportparts` anywhere in
|
|
83
|
+
* this codebase.
|
|
84
|
+
* @csspart previous-button - Floating, absolutely positioned inside `stage`. Rendered only when
|
|
85
|
+
* `images.length > 1`.
|
|
86
|
+
* @csspart previous-glyph - The `chevronIcon()` inside `previous-button`, mirrored under RTL.
|
|
87
|
+
* @csspart next-button - Symmetric to `previous-button`.
|
|
88
|
+
* @csspart next-glyph - Symmetric to `previous-glyph`.
|
|
89
|
+
* @csspart caption - The current image's caption text. Only rendered when the current image's
|
|
90
|
+
* `caption` is non-empty. Its `id` is the `aria-describedby` target on `panel`.
|
|
91
|
+
* @cssprop --lyra-lightbox-overlay-color - The backdrop scrim color.
|
|
92
|
+
* @cssprop --lyra-lightbox-control-bg - Background for every floating/toolbar icon button.
|
|
93
|
+
* @cssprop --lyra-lightbox-control-color - Icon/text color paired with `--lyra-lightbox-control-bg`.
|
|
94
|
+
*/
|
|
95
|
+
export class LyraLightbox extends LyraElement {
|
|
96
|
+
constructor() {
|
|
97
|
+
super(...arguments);
|
|
98
|
+
/** Whether the lightbox is open. Set this (or call `close()`) -- there is no separate
|
|
99
|
+
* `show()`/`hide()` pair, exactly mirrors `<lyra-dialog>`. */
|
|
100
|
+
this.open = false;
|
|
101
|
+
/** The ordered set of images being browsed. */
|
|
102
|
+
this.images = [];
|
|
103
|
+
/** The currently displayed image. Clamped defensively for rendering (out-of-range/negative/
|
|
104
|
+
* non-integer never throws) and silently re-synced onto this property (no event) when
|
|
105
|
+
* `images` shrinks -- mirrors `<lyra-carousel>`'s `normalizedIndex()`/`syncSlides()` split. */
|
|
106
|
+
this.index = 0;
|
|
107
|
+
/** Wraps prev/next past the ends. Mirrors `<lyra-carousel>`'s `loop` 1:1. */
|
|
108
|
+
this.loop = false;
|
|
109
|
+
/** Opts out of dismissing the lightbox on a backdrop click -- mirrors `<lyra-dialog>`'s
|
|
110
|
+
* `noLightDismiss` exactly (name, default, no reflect). */
|
|
111
|
+
this.noLightDismiss = false;
|
|
112
|
+
/** Shows/hides `part="counter"` (and its `part="live-region"` announcement). Mirrors
|
|
113
|
+
* `<lyra-carousel>`'s `showIndicators` (name shape, no reflect). */
|
|
114
|
+
this.showCounter = true;
|
|
115
|
+
/** Passed through to the embedded `<lyra-zoomable-frame>` as `.minZoom`. Same default as
|
|
116
|
+
* `<lyra-zoomable-frame>` itself. */
|
|
117
|
+
this.minZoom = 0.5;
|
|
118
|
+
/** Passed through to the embedded `<lyra-zoomable-frame>` as `.maxZoom`. */
|
|
119
|
+
this.maxZoom = 4;
|
|
120
|
+
/** Passed through to the embedded `<lyra-zoomable-frame>` as `.zoomStep`. */
|
|
121
|
+
this.zoomStep = 0.25;
|
|
122
|
+
/** Host-level `aria-label` override for the panel's accessible name -- wins over the
|
|
123
|
+
* localized `lightboxLabel` default. Exactly `<lyra-zoomable-frame>`'s own `accessibleLabel`
|
|
124
|
+
* pattern (no other label source to arbitrate against here). */
|
|
125
|
+
this.accessibleLabel = null;
|
|
126
|
+
this.hasActionsSlot = false;
|
|
127
|
+
this.liveText = '';
|
|
128
|
+
this.captionId = nextId('lightbox-caption');
|
|
129
|
+
this.next = () => this.changeTo(this.currentIndex() + 1);
|
|
130
|
+
this.previous = () => this.changeTo(this.currentIndex() - 1);
|
|
131
|
+
this.goTo = (index) => this.changeTo(index);
|
|
132
|
+
this.onBackdropClick = () => {
|
|
133
|
+
if (this.noLightDismiss)
|
|
134
|
+
return;
|
|
135
|
+
this.overlay?.dismissBackdrop();
|
|
136
|
+
};
|
|
137
|
+
this.onCloseButtonClick = () => {
|
|
138
|
+
this.close('close-button');
|
|
139
|
+
};
|
|
140
|
+
this.onActionsSlotChange = (e) => {
|
|
141
|
+
this.hasActionsSlot = e.target.assignedElements({ flatten: true }).length > 0;
|
|
142
|
+
};
|
|
143
|
+
// RTL-aware, exactly mirroring <lyra-carousel>'s onViewportKeyDown. Attached on part="panel"
|
|
144
|
+
// itself so it sees keydowns bubbling from anywhere inside, including from within the embedded
|
|
145
|
+
// <lyra-zoomable-frame>'s own shadow tree. Never conflicts with the frame's own +/-/0/=/_ zoom
|
|
146
|
+
// shortcuts, which don't intercept Arrow/Home/End.
|
|
147
|
+
this.onPanelKeyDown = (event) => {
|
|
148
|
+
const rtl = this.effectiveDirection === 'rtl';
|
|
149
|
+
const forwardKey = rtl ? 'ArrowLeft' : 'ArrowRight';
|
|
150
|
+
const backwardKey = rtl ? 'ArrowRight' : 'ArrowLeft';
|
|
151
|
+
if (event.key === forwardKey) {
|
|
152
|
+
event.preventDefault();
|
|
153
|
+
this.next();
|
|
154
|
+
}
|
|
155
|
+
else if (event.key === backwardKey) {
|
|
156
|
+
event.preventDefault();
|
|
157
|
+
this.previous();
|
|
158
|
+
}
|
|
159
|
+
else if (event.key === 'Home') {
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
this.goTo(0);
|
|
162
|
+
}
|
|
163
|
+
else if (event.key === 'End') {
|
|
164
|
+
event.preventDefault();
|
|
165
|
+
this.goTo(this.images.length - 1);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
static { this.styles = [LyraElement.styles, srOnly, styles]; }
|
|
170
|
+
/** Clamped, always-valid index for rendering -- never throws on an out-of-range, negative, or
|
|
171
|
+
* non-integer `index`. */
|
|
172
|
+
currentIndex() {
|
|
173
|
+
const count = this.images.length;
|
|
174
|
+
if (count === 0)
|
|
175
|
+
return 0;
|
|
176
|
+
const raw = Number.isFinite(this.index) ? Math.trunc(this.index) : 0;
|
|
177
|
+
return Math.min(count - 1, Math.max(0, raw));
|
|
178
|
+
}
|
|
179
|
+
// Silently re-syncs `index` onto the clamped value with no event -- mirrors
|
|
180
|
+
// <lyra-carousel>'s syncSlides() clamp-without-event behavior, e.g. when `images` shrinks out
|
|
181
|
+
// from under the current index.
|
|
182
|
+
syncImages() {
|
|
183
|
+
const current = this.currentIndex();
|
|
184
|
+
if (this.index !== current)
|
|
185
|
+
this.index = current;
|
|
186
|
+
}
|
|
187
|
+
changeTo(index) {
|
|
188
|
+
const count = this.images.length;
|
|
189
|
+
if (count === 0)
|
|
190
|
+
return;
|
|
191
|
+
const next = this.loop ? ((index % count) + count) % count : Math.min(count - 1, Math.max(0, index));
|
|
192
|
+
if (next === this.currentIndex())
|
|
193
|
+
return;
|
|
194
|
+
this.index = next;
|
|
195
|
+
this.emit('lyra-index-change', { index: next });
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Close the lightbox and return focus to whatever had it before the lightbox opened. `reason`
|
|
199
|
+
* is forwarded as the `lyra-lightbox-close` detail -- built-in triggers pass `'escape'`/
|
|
200
|
+
* `'backdrop'`/`'close-button'`; a consumer's own close affordance (e.g. an `actions`-slotted
|
|
201
|
+
* button) should call this directly with its own reason string.
|
|
202
|
+
*/
|
|
203
|
+
close(reason = 'api') {
|
|
204
|
+
if (!this.open)
|
|
205
|
+
return;
|
|
206
|
+
const event = this.emit('lyra-lightbox-close', reason, { cancelable: true });
|
|
207
|
+
if (event.defaultPrevented)
|
|
208
|
+
return;
|
|
209
|
+
this.open = false;
|
|
210
|
+
}
|
|
211
|
+
updateLiveRegion() {
|
|
212
|
+
const count = this.images.length;
|
|
213
|
+
this.liveText =
|
|
214
|
+
count === 0
|
|
215
|
+
? ''
|
|
216
|
+
: this.localize('lightboxImagePosition', undefined, { index: this.currentIndex() + 1, total: count });
|
|
217
|
+
}
|
|
218
|
+
willUpdate(changed) {
|
|
219
|
+
if (!this.hasUpdated) {
|
|
220
|
+
this.hasActionsSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'actions');
|
|
221
|
+
}
|
|
222
|
+
if (changed.has('images') || changed.has('index')) {
|
|
223
|
+
this.syncImages();
|
|
224
|
+
}
|
|
225
|
+
if (changed.has('open')) {
|
|
226
|
+
if (this.open) {
|
|
227
|
+
this.activateOverlay();
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
this.deactivateOverlay();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Runs after render so the manager can resolve the panel and its composed focus targets, and
|
|
235
|
+
// so [part="panel"]/the embedded frame have already landed in the DOM.
|
|
236
|
+
updated(changed) {
|
|
237
|
+
if (changed.has('open') && this.open) {
|
|
238
|
+
this.overlay?.focusInitial();
|
|
239
|
+
}
|
|
240
|
+
// Imperative, not a binding -- see the class doc for why this is required for the reset to
|
|
241
|
+
// keep working past the first navigation.
|
|
242
|
+
if (changed.has('index') && this.open) {
|
|
243
|
+
this.frameEl?.resetView();
|
|
244
|
+
}
|
|
245
|
+
if (changed.has('index') || changed.has('images') || changed.has('strings') || changed.has('locale')) {
|
|
246
|
+
this.updateLiveRegion();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
connectedCallback() {
|
|
250
|
+
super.connectedCallback();
|
|
251
|
+
// A reconnect (e.g. a drag-and-drop reparent keeping this same element instance) fires
|
|
252
|
+
// disconnectedCallback then connectedCallback synchronously with no update in between, so
|
|
253
|
+
// willUpdate never reruns to notice `open` is still true -- restore what it dropped.
|
|
254
|
+
if (this.hasUpdated && this.open) {
|
|
255
|
+
if (this.overlay?.isActive()) {
|
|
256
|
+
this.overlay.resume();
|
|
257
|
+
this.releaseScrollLock ??= lockScroll(this.ownerDocument);
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
this.activateOverlay();
|
|
261
|
+
}
|
|
262
|
+
queueMicrotask(() => this.overlay?.focusInitial());
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
disconnectedCallback() {
|
|
266
|
+
super.disconnectedCallback();
|
|
267
|
+
this.releaseScrollLock?.();
|
|
268
|
+
this.releaseScrollLock = undefined;
|
|
269
|
+
this.overlay?.suspend();
|
|
270
|
+
if (this.open) {
|
|
271
|
+
// Deferred one microtask so a synchronous reparent (disconnect immediately followed by
|
|
272
|
+
// reconnect) isn't mistaken for a real removal -- mirrors <lyra-dialog>'s identical
|
|
273
|
+
// disconnectedCallback rationale.
|
|
274
|
+
queueMicrotask(() => {
|
|
275
|
+
if (!this.isConnected && this.open) {
|
|
276
|
+
this.open = false;
|
|
277
|
+
this.emit('lyra-lightbox-close', 'unmount');
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
activateOverlay() {
|
|
283
|
+
if (this.overlay?.isActive())
|
|
284
|
+
return;
|
|
285
|
+
this.releaseScrollLock ??= lockScroll(this.ownerDocument);
|
|
286
|
+
this.overlay = activateOverlay({
|
|
287
|
+
host: this,
|
|
288
|
+
panel: () => this.shadowRoot?.querySelector('[part="panel"]') ?? null,
|
|
289
|
+
onEscape: () => this.close('escape'),
|
|
290
|
+
onBackdrop: () => this.close('backdrop'),
|
|
291
|
+
// An intentionally safe default action -- a full-screen image grabbing focus should hand
|
|
292
|
+
// it to a predictable, always-present, non-destructive escape hatch first, rather than
|
|
293
|
+
// whatever happens to be first in DOM tab order (which could otherwise be a consumer's own
|
|
294
|
+
// actions-slot content if placed before close-button).
|
|
295
|
+
preferredInitialFocus: () => this.shadowRoot?.querySelector('[part="close-button"]') ?? null,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
deactivateOverlay() {
|
|
299
|
+
this.releaseScrollLock?.();
|
|
300
|
+
this.releaseScrollLock = undefined;
|
|
301
|
+
this.overlay?.deactivate();
|
|
302
|
+
this.overlay = undefined;
|
|
303
|
+
}
|
|
304
|
+
render() {
|
|
305
|
+
const count = this.images.length;
|
|
306
|
+
const current = this.currentIndex();
|
|
307
|
+
const image = count > 0 ? this.images[current] : undefined;
|
|
308
|
+
const label = this.accessibleLabel ?? this.localize('lightboxLabel');
|
|
309
|
+
const hasCaption = Boolean(image?.caption);
|
|
310
|
+
const positionText = count > 0 ? this.localize('lightboxImagePosition', undefined, { index: current + 1, total: count }) : '';
|
|
311
|
+
return html `
|
|
312
|
+
<div part="backdrop" @click=${this.onBackdropClick}></div>
|
|
313
|
+
<div
|
|
314
|
+
part="panel"
|
|
315
|
+
role=${this.open ? 'dialog' : nothing}
|
|
316
|
+
aria-modal=${this.open ? 'true' : nothing}
|
|
317
|
+
aria-label=${label}
|
|
318
|
+
aria-describedby=${hasCaption ? this.captionId : nothing}
|
|
319
|
+
tabindex="-1"
|
|
320
|
+
@keydown=${this.onPanelKeyDown}
|
|
321
|
+
>
|
|
322
|
+
<div part="toolbar">
|
|
323
|
+
${this.showCounter && count > 0 ? html `<span part="counter">${positionText}</span>` : nothing}
|
|
324
|
+
<div part="actions" ?hidden=${!this.hasActionsSlot}>
|
|
325
|
+
<slot name="actions" @slotchange=${this.onActionsSlotChange}></slot>
|
|
326
|
+
</div>
|
|
327
|
+
<button part="close-button" type="button" aria-label=${this.localize('close')} @click=${this.onCloseButtonClick}>
|
|
328
|
+
${closeIcon()}
|
|
329
|
+
</button>
|
|
330
|
+
</div>
|
|
331
|
+
<div part="stage">
|
|
332
|
+
${count > 1
|
|
333
|
+
? html `
|
|
334
|
+
<button
|
|
335
|
+
part="previous-button"
|
|
336
|
+
type="button"
|
|
337
|
+
aria-label=${this.localize('previous')}
|
|
338
|
+
?disabled=${!this.loop && current === 0}
|
|
339
|
+
@click=${this.previous}
|
|
340
|
+
>
|
|
341
|
+
<span part="previous-glyph">${chevronIcon()}</span>
|
|
342
|
+
</button>
|
|
343
|
+
`
|
|
344
|
+
: nothing}
|
|
345
|
+
<lyra-zoomable-frame
|
|
346
|
+
part="frame"
|
|
347
|
+
src=${image?.src ?? ''}
|
|
348
|
+
alt=${image?.alt ?? ''}
|
|
349
|
+
.minZoom=${this.minZoom}
|
|
350
|
+
.maxZoom=${this.maxZoom}
|
|
351
|
+
.zoomStep=${this.zoomStep}
|
|
352
|
+
.accessibleLabel=${positionText || null}
|
|
353
|
+
></lyra-zoomable-frame>
|
|
354
|
+
${count > 1
|
|
355
|
+
? html `
|
|
356
|
+
<button
|
|
357
|
+
part="next-button"
|
|
358
|
+
type="button"
|
|
359
|
+
aria-label=${this.localize('next')}
|
|
360
|
+
?disabled=${!this.loop && current === count - 1}
|
|
361
|
+
@click=${this.next}
|
|
362
|
+
>
|
|
363
|
+
<span part="next-glyph">${chevronIcon()}</span>
|
|
364
|
+
</button>
|
|
365
|
+
`
|
|
366
|
+
: nothing}
|
|
367
|
+
</div>
|
|
368
|
+
${hasCaption ? html `<p part="caption" id=${this.captionId}>${image.caption}</p>` : nothing}
|
|
369
|
+
<span part="live-region" class="sr-only" role="status" aria-live="polite" aria-atomic="true"
|
|
370
|
+
>${this.liveText}</span
|
|
371
|
+
>
|
|
372
|
+
</div>
|
|
373
|
+
`;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
__decorate([
|
|
377
|
+
property({ type: Boolean, reflect: true })
|
|
378
|
+
], LyraLightbox.prototype, "open", void 0);
|
|
379
|
+
__decorate([
|
|
380
|
+
property({ attribute: false })
|
|
381
|
+
], LyraLightbox.prototype, "images", void 0);
|
|
382
|
+
__decorate([
|
|
383
|
+
property({ type: Number, reflect: true })
|
|
384
|
+
], LyraLightbox.prototype, "index", void 0);
|
|
385
|
+
__decorate([
|
|
386
|
+
property({ type: Boolean, reflect: true })
|
|
387
|
+
], LyraLightbox.prototype, "loop", void 0);
|
|
388
|
+
__decorate([
|
|
389
|
+
property({ type: Boolean, attribute: 'no-light-dismiss' })
|
|
390
|
+
], LyraLightbox.prototype, "noLightDismiss", void 0);
|
|
391
|
+
__decorate([
|
|
392
|
+
property({ type: Boolean, attribute: 'show-counter' })
|
|
393
|
+
], LyraLightbox.prototype, "showCounter", void 0);
|
|
394
|
+
__decorate([
|
|
395
|
+
property({ type: Number, attribute: 'min-zoom' })
|
|
396
|
+
], LyraLightbox.prototype, "minZoom", void 0);
|
|
397
|
+
__decorate([
|
|
398
|
+
property({ type: Number, attribute: 'max-zoom' })
|
|
399
|
+
], LyraLightbox.prototype, "maxZoom", void 0);
|
|
400
|
+
__decorate([
|
|
401
|
+
property({ type: Number, attribute: 'zoom-step' })
|
|
402
|
+
], LyraLightbox.prototype, "zoomStep", void 0);
|
|
403
|
+
__decorate([
|
|
404
|
+
property({ attribute: 'aria-label' })
|
|
405
|
+
], LyraLightbox.prototype, "accessibleLabel", void 0);
|
|
406
|
+
__decorate([
|
|
407
|
+
state()
|
|
408
|
+
], LyraLightbox.prototype, "hasActionsSlot", void 0);
|
|
409
|
+
__decorate([
|
|
410
|
+
state()
|
|
411
|
+
], LyraLightbox.prototype, "liveText", void 0);
|
|
412
|
+
__decorate([
|
|
413
|
+
query('lyra-zoomable-frame')
|
|
414
|
+
], LyraLightbox.prototype, "frameEl", void 0);
|
|
415
|
+
//# sourceMappingURL=lightbox.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightbox.class.js","sourceRoot":"","sources":["../../../src/components/lightbox/lightbox.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightbox.d.ts","sourceRoot":"","sources":["../../../src/components/lightbox/lightbox.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AAGpC,OAAO,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './lightbox.class.js';
|
|
2
|
+
import { LyraLightbox } from './lightbox.class.js';
|
|
3
|
+
import { defineElement } from '../../internal/prefix.js';
|
|
4
|
+
import '../zoomable-frame/zoomable-frame.js';
|
|
5
|
+
defineElement('lightbox', LyraLightbox);
|
|
6
|
+
//# sourceMappingURL=lightbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightbox.js","sourceRoot":"","sources":["../../../src/components/lightbox/lightbox.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,qCAAqC,CAAC;AAC7C,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightbox.styles.d.ts","sourceRoot":"","sources":["../../../src/components/lightbox/lightbox.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAgLlB,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
--lyra-lightbox-overlay-color: var(--lyra-color-overlay-strong);
|
|
5
|
+
/* Background for every floating/toolbar icon button (close-button, previous-button,
|
|
6
|
+
next-button). These buttons float directly over arbitrary image content, not the app's
|
|
7
|
+
normal surface, so they reuse the "solid, high-contrast neutral fill" token rather than
|
|
8
|
+
--lyra-color-surface for guaranteed contrast independent of both the page theme and
|
|
9
|
+
whatever's in the photo. */
|
|
10
|
+
--lyra-lightbox-control-bg: var(--lyra-color-neutral);
|
|
11
|
+
--lyra-lightbox-control-color: var(--lyra-color-on-neutral);
|
|
12
|
+
display: none;
|
|
13
|
+
position: fixed;
|
|
14
|
+
inset: 0;
|
|
15
|
+
z-index: var(--lyra-overlay-stack-index, var(--lyra-layer-modal));
|
|
16
|
+
container-type: inline-size;
|
|
17
|
+
padding-block-start: max(var(--lyra-space-l), var(--lyra-safe-area-top));
|
|
18
|
+
padding-block-end: max(var(--lyra-space-l), var(--lyra-safe-area-bottom));
|
|
19
|
+
padding-inline-start: max(var(--lyra-space-l), var(--lyra-safe-area-inline-start));
|
|
20
|
+
padding-inline-end: max(var(--lyra-space-l), var(--lyra-safe-area-inline-end));
|
|
21
|
+
}
|
|
22
|
+
:host([open]) {
|
|
23
|
+
display: flex;
|
|
24
|
+
}
|
|
25
|
+
[part='backdrop'] {
|
|
26
|
+
position: absolute;
|
|
27
|
+
inset: 0;
|
|
28
|
+
background: var(--lyra-lightbox-overlay-color);
|
|
29
|
+
}
|
|
30
|
+
[part='panel'] {
|
|
31
|
+
position: relative;
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
gap: var(--lyra-space-s);
|
|
35
|
+
inline-size: 100%;
|
|
36
|
+
block-size: 100%;
|
|
37
|
+
min-inline-size: 0;
|
|
38
|
+
min-block-size: 0;
|
|
39
|
+
outline: none;
|
|
40
|
+
}
|
|
41
|
+
[part='toolbar'] {
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
flex: 0 0 auto;
|
|
45
|
+
flex-wrap: wrap;
|
|
46
|
+
gap: var(--lyra-space-s);
|
|
47
|
+
}
|
|
48
|
+
[part='counter'] {
|
|
49
|
+
display: inline-block;
|
|
50
|
+
min-inline-size: 0;
|
|
51
|
+
max-inline-size: 60%;
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
text-overflow: ellipsis;
|
|
54
|
+
white-space: nowrap;
|
|
55
|
+
padding: var(--lyra-space-xs) var(--lyra-space-s);
|
|
56
|
+
border-radius: var(--lyra-radius);
|
|
57
|
+
background: var(--lyra-lightbox-control-bg);
|
|
58
|
+
color: var(--lyra-lightbox-control-color);
|
|
59
|
+
font-size: var(--lyra-font-size-sm);
|
|
60
|
+
}
|
|
61
|
+
[part='actions'] {
|
|
62
|
+
display: flex;
|
|
63
|
+
align-items: center;
|
|
64
|
+
gap: var(--lyra-space-xs);
|
|
65
|
+
margin-inline-start: auto;
|
|
66
|
+
}
|
|
67
|
+
[part='actions'][hidden] {
|
|
68
|
+
display: none;
|
|
69
|
+
}
|
|
70
|
+
[part='close-button'],
|
|
71
|
+
[part='previous-button'],
|
|
72
|
+
[part='next-button'] {
|
|
73
|
+
flex: 0 0 auto;
|
|
74
|
+
display: inline-flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
justify-content: center;
|
|
77
|
+
min-inline-size: var(--lyra-icon-button-size);
|
|
78
|
+
min-block-size: var(--lyra-icon-button-size);
|
|
79
|
+
border: none;
|
|
80
|
+
border-radius: var(--lyra-radius-pill);
|
|
81
|
+
background: var(--lyra-lightbox-control-bg);
|
|
82
|
+
color: var(--lyra-lightbox-control-color);
|
|
83
|
+
cursor: pointer;
|
|
84
|
+
}
|
|
85
|
+
[part='close-button'] {
|
|
86
|
+
margin-inline-start: var(--lyra-space-xs);
|
|
87
|
+
}
|
|
88
|
+
[part='close-button']:hover,
|
|
89
|
+
[part='previous-button']:hover:not(:disabled),
|
|
90
|
+
[part='next-button']:hover:not(:disabled) {
|
|
91
|
+
background: var(--lyra-color-brand-quiet);
|
|
92
|
+
color: var(--lyra-color-brand);
|
|
93
|
+
}
|
|
94
|
+
[part='close-button']:focus-visible,
|
|
95
|
+
[part='previous-button']:focus-visible,
|
|
96
|
+
[part='next-button']:focus-visible {
|
|
97
|
+
outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
|
|
98
|
+
outline-offset: var(--lyra-focus-ring-offset);
|
|
99
|
+
}
|
|
100
|
+
[part='previous-button']:disabled,
|
|
101
|
+
[part='next-button']:disabled {
|
|
102
|
+
opacity: var(--lyra-opacity-disabled);
|
|
103
|
+
cursor: not-allowed;
|
|
104
|
+
}
|
|
105
|
+
[part='close-button'] svg,
|
|
106
|
+
[part='previous-glyph'],
|
|
107
|
+
[part='next-glyph'] {
|
|
108
|
+
display: block;
|
|
109
|
+
}
|
|
110
|
+
[part='stage'] {
|
|
111
|
+
position: relative;
|
|
112
|
+
flex: 1 1 auto;
|
|
113
|
+
min-inline-size: 0;
|
|
114
|
+
min-block-size: 0;
|
|
115
|
+
}
|
|
116
|
+
/* Plain ::part() styling one level in, unrelated to exportparts -- stretches the embedded
|
|
117
|
+
frame to fill the stage, overriding zoomable-frame's own min-block-size default. */
|
|
118
|
+
lyra-zoomable-frame[part='frame'] {
|
|
119
|
+
display: block;
|
|
120
|
+
inline-size: 100%;
|
|
121
|
+
block-size: 100%;
|
|
122
|
+
}
|
|
123
|
+
lyra-zoomable-frame[part='frame']::part(base) {
|
|
124
|
+
block-size: 100%;
|
|
125
|
+
}
|
|
126
|
+
lyra-zoomable-frame[part='frame']::part(viewport) {
|
|
127
|
+
block-size: 100%;
|
|
128
|
+
}
|
|
129
|
+
[part='previous-button'],
|
|
130
|
+
[part='next-button'] {
|
|
131
|
+
position: absolute;
|
|
132
|
+
inset-block-start: 50%;
|
|
133
|
+
transform: translateY(-50%);
|
|
134
|
+
z-index: var(--lyra-layer-content);
|
|
135
|
+
}
|
|
136
|
+
[part='previous-button'] {
|
|
137
|
+
inset-inline-start: var(--lyra-space-s);
|
|
138
|
+
}
|
|
139
|
+
[part='next-button'] {
|
|
140
|
+
inset-inline-end: var(--lyra-space-s);
|
|
141
|
+
}
|
|
142
|
+
/* Rotate the wrapping part element, not the icon itself -- rotate(180deg) matches
|
|
143
|
+
pagination.styles.ts's existing previous-icon/next-icon recipe for a chevronIcon()-based
|
|
144
|
+
prev/next pair (carousel's scaleX(-1) recipe is for its literal ‹/› glyphs, a different base
|
|
145
|
+
case). */
|
|
146
|
+
[part='previous-glyph'] {
|
|
147
|
+
transform: rotate(180deg);
|
|
148
|
+
}
|
|
149
|
+
[part='next-glyph'] {
|
|
150
|
+
transform: rotate(0deg);
|
|
151
|
+
}
|
|
152
|
+
:host(:dir(rtl)) [part='previous-glyph'] {
|
|
153
|
+
transform: rotate(0deg);
|
|
154
|
+
}
|
|
155
|
+
:host(:dir(rtl)) [part='next-glyph'] {
|
|
156
|
+
transform: rotate(180deg);
|
|
157
|
+
}
|
|
158
|
+
[part='caption'] {
|
|
159
|
+
flex: 0 0 auto;
|
|
160
|
+
margin: 0;
|
|
161
|
+
max-inline-size: 100%;
|
|
162
|
+
align-self: center;
|
|
163
|
+
padding: var(--lyra-space-xs) var(--lyra-space-s);
|
|
164
|
+
border-radius: var(--lyra-radius);
|
|
165
|
+
background: var(--lyra-lightbox-control-bg);
|
|
166
|
+
color: var(--lyra-lightbox-control-color);
|
|
167
|
+
text-align: center;
|
|
168
|
+
overflow-wrap: anywhere;
|
|
169
|
+
}
|
|
170
|
+
/* Container-query lengths cannot reference custom properties. This is the documented 320px
|
|
171
|
+
narrow-allocation baseline expressed in root-relative units so it still follows the page's
|
|
172
|
+
type scale -- mirrors pagination.styles.ts's identical container query. */
|
|
173
|
+
@container (max-width: 20rem) {
|
|
174
|
+
[part='counter'] {
|
|
175
|
+
max-inline-size: 45%;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
`;
|
|
179
|
+
//# sourceMappingURL=lightbox.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightbox.styles.js","sourceRoot":"","sources":["../../../src/components/lightbox/lightbox.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgLxB,CAAC"}
|
|
@@ -69,7 +69,7 @@ export interface LyraMapEventMap {
|
|
|
69
69
|
*
|
|
70
70
|
* ⚠️ The default `mapStyle` (when unset) uses OpenStreetMap's demo tile
|
|
71
71
|
* server, which is not suitable for production traffic — see the
|
|
72
|
-
* `DEFAULT_STYLE` doc comment
|
|
72
|
+
* `DEFAULT_STYLE` doc comment above. Always pass an explicit
|
|
73
73
|
* `mapStyle` in production.
|
|
74
74
|
*/
|
|
75
75
|
export declare class LyraMap extends LyraElement<LyraMapEventMap> {
|