@oiz/stzh-components 4.0.0-beta3 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{app-globals-17244c89.js → app-globals-89889638.js} +2 -2
- package/dist/cjs/{app-globals-17244c89.js.map → app-globals-89889638.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-audio.cjs.entry.js +1 -1
- package/dist/cjs/stzh-audio.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-card-searchresult.cjs.entry.js +1 -1
- package/dist/cjs/stzh-card-searchresult.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-card.cjs.entry.js +11 -8
- package/dist/cjs/stzh-card.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-cardlist_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-datalist_2.cjs.entry.js +3 -3
- package/dist/cjs/stzh-datalist_2.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-ghettobox_3.cjs.entry.js +3 -3
- package/dist/cjs/stzh-popover.cjs.entry.js +1 -1
- package/dist/cjs/stzh-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-print_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-ratio.cjs.entry.js +1 -1
- package/dist/cjs/stzh-ratio.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-readspeaker.cjs.entry.js +3 -3
- package/dist/cjs/stzh-readspeaker.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-row.cjs.entry.js +2 -2
- package/dist/cjs/stzh-saptcha.cjs.entry.js +2 -2
- package/dist/cjs/stzh-scrollup.cjs.entry.js +1 -1
- package/dist/cjs/stzh-search.cjs.entry.js +2 -2
- package/dist/cjs/stzh-section.cjs.entry.js +2 -2
- package/dist/cjs/stzh-sitemap.cjs.entry.js +1 -1
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js +2 -2
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-skin-storybook-preview.cjs.entry.js +1 -1
- package/dist/cjs/stzh-skiplink.cjs.entry.js +1 -1
- package/dist/cjs/stzh-socialmediastream-item.cjs.entry.js +1 -1
- package/dist/cjs/stzh-socialmediastream.cjs.entry.js +1 -1
- package/dist/cjs/stzh-space.cjs.entry.js +2 -2
- package/dist/cjs/stzh-status.cjs.entry.js +4 -4
- package/dist/cjs/stzh-stepper-item.cjs.entry.js +4 -4
- package/dist/cjs/stzh-stepper.cjs.entry.js +2 -2
- package/dist/cjs/stzh-sticky-actions.cjs.entry.js +1 -1
- package/dist/cjs/stzh-sticky.cjs.entry.js +1 -1
- package/dist/cjs/stzh-table.cjs.entry.js +1 -1
- package/dist/cjs/stzh-text.cjs.entry.js +2 -2
- package/dist/cjs/stzh-textandimage.cjs.entry.js +1 -1
- package/dist/cjs/stzh-timeline-item.cjs.entry.js +3 -3
- package/dist/cjs/stzh-timeline.cjs.entry.js +1 -1
- package/dist/cjs/stzh-timepicker.cjs.entry.js +1 -1
- package/dist/cjs/stzh-toast_2.cjs.entry.js +4 -4
- package/dist/cjs/stzh-toggle.cjs.entry.js +4 -4
- package/dist/cjs/stzh-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/stzh-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-twocolumns.cjs.entry.js +1 -1
- package/dist/cjs/stzh-upload.cjs.entry.js +2 -2
- package/dist/cjs/stzh-vbz-carousel.cjs.entry.js +1 -1
- package/dist/cjs/stzh-vbz-connection-finder.cjs.entry.js +1 -1
- package/dist/cjs/stzh-vbz-intro.cjs.entry.js +1 -1
- package/dist/cjs/stzh-vbz-linechip.cjs.entry.js +2 -2
- package/dist/cjs/stzh-vbz-majorticker.cjs.entry.js +2 -2
- package/dist/cjs/stzh-vbz-ticker.cjs.entry.js +2 -2
- package/dist/cjs/stzh-visuallyhidden.cjs.entry.js +2 -2
- package/dist/cjs/stzh-vspace.cjs.entry.js +2 -2
- package/dist/cjs/stzh-youtube.cjs.entry.js +1 -1
- package/dist/collection/components/stzh-audio/stzh-audio.css +2 -2
- package/dist/collection/components/stzh-card/stzh-card.css +10 -1
- package/dist/collection/components/stzh-card/stzh-card.js +28 -7
- package/dist/collection/components/stzh-card/stzh-card.js.map +1 -1
- package/dist/collection/components/stzh-card-searchresult/stzh-card-searchresult.js +1 -1
- package/dist/collection/components/stzh-card-searchresult/stzh-card-searchresult.js.map +1 -1
- package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.css +12 -10
- package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.js +5 -5
- package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.js.map +1 -1
- package/dist/collection/components/stzh-popover/stzh-popover.css +2 -2
- package/dist/collection/components/stzh-ratio/stzh-ratio.js +1 -1
- package/dist/collection/components/stzh-ratio/stzh-ratio.js.map +1 -1
- package/dist/collection/components/stzh-readspeaker/stzh-readspeaker.css +4 -4
- package/dist/collection/components/stzh-readspeaker/stzh-readspeaker.js +2 -2
- package/dist/collection/components/stzh-richtext/stzh-richtext.js +1 -1
- package/dist/collection/components/stzh-row/stzh-row.js +2 -2
- package/dist/collection/components/stzh-saptcha/stzh-saptcha.js +2 -2
- package/dist/collection/components/stzh-scrollup/stzh-scrollup.js +1 -1
- package/dist/collection/components/stzh-search/stzh-search.js +2 -2
- package/dist/collection/components/stzh-section/stzh-section.js +2 -2
- package/dist/collection/components/stzh-share/stzh-share.js +1 -1
- package/dist/collection/components/stzh-show/stzh-show.js +2 -2
- package/dist/collection/components/stzh-sitemap/stzh-sitemap.js +1 -1
- package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.css +168 -4
- package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.js +1 -1
- package/dist/collection/components/stzh-skin-storybook-preview/stzh-skin-storybook-preview.js +1 -1
- package/dist/collection/components/stzh-skiplink/stzh-skiplink.js +1 -1
- package/dist/collection/components/stzh-socialmediastream/stzh-socialmediastream.js +1 -1
- package/dist/collection/components/stzh-socialmediastream-item/stzh-socialmediastream-item.js +1 -1
- package/dist/collection/components/stzh-sortable/stzh-sortable.js +1 -1
- package/dist/collection/components/stzh-space/stzh-space.js +2 -2
- package/dist/collection/components/stzh-status/stzh-status.js +4 -4
- package/dist/collection/components/stzh-stepper/stzh-stepper.component.js +2 -2
- package/dist/collection/components/stzh-stepper-item/stzh-stepper-item.js +4 -4
- package/dist/collection/components/stzh-sticky/stzh-sticky.js +1 -1
- package/dist/collection/components/stzh-sticky-actions/stzh-sticky-actions.js +1 -1
- package/dist/collection/components/stzh-table/stzh-table.js +1 -1
- package/dist/collection/components/stzh-tag/stzh-tag.js +1 -1
- package/dist/collection/components/stzh-text/stzh-text.js +2 -2
- package/dist/collection/components/stzh-textandimage/stzh-textandimage.js +1 -1
- package/dist/collection/components/stzh-timeline/stzh-timeline.js +1 -1
- package/dist/collection/components/stzh-timeline-item/stzh-timeline-item.js +3 -3
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.js +1 -1
- package/dist/collection/components/stzh-toast/stzh-toast.js +3 -3
- package/dist/collection/components/stzh-toastbar/stzh-toastbar.js +1 -1
- package/dist/collection/components/stzh-toggle/stzh-toggle.js +4 -4
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.css +2 -2
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.js +1 -1
- package/dist/collection/components/stzh-twocolumns/stzh-twocolumns.js +1 -1
- package/dist/collection/components/stzh-upload/stzh-upload.js +2 -2
- package/dist/collection/components/stzh-vbz-carousel/stzh-vbz-carousel.js +1 -1
- package/dist/collection/components/stzh-vbz-connection-finder/stzh-vbz-connection-finder.js +1 -1
- package/dist/collection/components/stzh-vbz-intro/stzh-vbz-intro.js +1 -1
- package/dist/collection/components/stzh-vbz-linechip/stzh-vbz-linechip.js +2 -2
- package/dist/collection/components/stzh-vbz-majorticker/stzh-vbz-majorticker.js +2 -2
- package/dist/collection/components/stzh-vbz-ticker/stzh-vbz-ticker.js +2 -2
- package/dist/collection/components/stzh-visuallyhidden/stzh-visuallyhidden.js +2 -2
- package/dist/collection/components/stzh-vspace/stzh-vspace.js +2 -2
- package/dist/collection/components/stzh-youtube/stzh-youtube.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-84f171a0.js → p-02bdd12e.js} +2 -2
- package/dist/components/{p-84f171a0.js.map → p-02bdd12e.js.map} +1 -1
- package/dist/components/{p-324831e2.js → p-0dae7190.js} +3 -3
- package/dist/components/{p-324831e2.js.map → p-0dae7190.js.map} +1 -1
- package/dist/components/{p-631b7bfa.js → p-123ddd01.js} +5 -5
- package/dist/components/{p-631b7bfa.js.map → p-123ddd01.js.map} +1 -1
- package/dist/components/{p-18ad2006.js → p-1e02d63c.js} +17 -13
- package/dist/components/p-1e02d63c.js.map +1 -0
- package/dist/components/{p-ef28cd34.js → p-1fe5af54.js} +3 -3
- package/dist/components/{p-ef28cd34.js.map → p-1fe5af54.js.map} +1 -1
- package/dist/components/{p-0b0557e7.js → p-55042ae5.js} +4 -4
- package/dist/components/{p-0b0557e7.js.map → p-55042ae5.js.map} +1 -1
- package/dist/components/{p-48a20e2d.js → p-6c821944.js} +5 -5
- package/dist/components/{p-48a20e2d.js.map → p-6c821944.js.map} +1 -1
- package/dist/components/{p-3d24141a.js → p-7eced0db.js} +2 -2
- package/dist/components/{p-3d24141a.js.map → p-7eced0db.js.map} +1 -1
- package/dist/components/{p-e5a0d7ce.js → p-84f3d0c4.js} +6 -6
- package/dist/components/{p-e5a0d7ce.js.map → p-84f3d0c4.js.map} +1 -1
- package/dist/components/{p-875cd549.js → p-86473146.js} +2 -2
- package/dist/components/{p-875cd549.js.map → p-86473146.js.map} +1 -1
- package/dist/components/{p-8123a294.js → p-87537095.js} +2 -2
- package/dist/components/{p-8123a294.js.map → p-87537095.js.map} +1 -1
- package/dist/components/{p-1ee94681.js → p-877e658f.js} +3 -3
- package/dist/components/{p-1ee94681.js.map → p-877e658f.js.map} +1 -1
- package/dist/components/{p-0c5f315f.js → p-8c4ca44f.js} +3 -3
- package/dist/components/{p-0c5f315f.js.map → p-8c4ca44f.js.map} +1 -1
- package/dist/components/{p-70aa77ed.js → p-978466ee.js} +4 -4
- package/dist/components/{p-70aa77ed.js.map → p-978466ee.js.map} +1 -1
- package/dist/components/{p-043132df.js → p-9c27b812.js} +2 -2
- package/dist/components/{p-043132df.js.map → p-9c27b812.js.map} +1 -1
- package/dist/components/{p-6a5f4569.js → p-9fd614bc.js} +3 -3
- package/dist/components/{p-6a5f4569.js.map → p-9fd614bc.js.map} +1 -1
- package/dist/components/{p-da29e441.js → p-a518f263.js} +4 -4
- package/dist/components/{p-da29e441.js.map → p-a518f263.js.map} +1 -1
- package/dist/components/{p-d8b73add.js → p-a74ffd15.js} +4 -4
- package/dist/components/{p-d8b73add.js.map → p-a74ffd15.js.map} +1 -1
- package/dist/components/{p-1036baa8.js → p-a93fe963.js} +2 -2
- package/dist/components/{p-1036baa8.js.map → p-a93fe963.js.map} +1 -1
- package/dist/components/{p-b5d9d5a1.js → p-adf66b29.js} +4 -4
- package/dist/components/{p-b5d9d5a1.js.map → p-adf66b29.js.map} +1 -1
- package/dist/components/{p-adc06dc4.js → p-ae7adee7.js} +3 -3
- package/dist/components/{p-adc06dc4.js.map → p-ae7adee7.js.map} +1 -1
- package/dist/components/{p-a367fa4a.js → p-b4ffee20.js} +2 -2
- package/dist/components/p-b4ffee20.js.map +1 -0
- package/dist/components/{p-8bab76e0.js → p-bed8abab.js} +5 -5
- package/dist/components/{p-8bab76e0.js.map → p-bed8abab.js.map} +1 -1
- package/dist/components/{p-6be31cce.js → p-c056c339.js} +3 -3
- package/dist/components/{p-6be31cce.js.map → p-c056c339.js.map} +1 -1
- package/dist/components/{p-c06d0057.js → p-d19eef5f.js} +4 -4
- package/dist/components/{p-c06d0057.js.map → p-d19eef5f.js.map} +1 -1
- package/dist/components/{p-ded0ad1c.js → p-d40751ba.js} +4 -4
- package/dist/components/{p-ded0ad1c.js.map → p-d40751ba.js.map} +1 -1
- package/dist/components/{p-3e69bb48.js → p-e48a4be2.js} +3 -3
- package/dist/components/{p-3e69bb48.js.map → p-e48a4be2.js.map} +1 -1
- package/dist/components/{p-d9bd5b30.js → p-f0db184a.js} +3 -3
- package/dist/components/{p-d9bd5b30.js.map → p-f0db184a.js.map} +1 -1
- package/dist/components/{p-5748d860.js → p-f254ab81.js} +8 -8
- package/dist/components/p-f254ab81.js.map +1 -0
- package/dist/components/{p-7d72e50c.js → p-fd0fbd98.js} +2 -2
- package/dist/components/{p-7d72e50c.js.map → p-fd0fbd98.js.map} +1 -1
- package/dist/components/{p-af0ed46a.js → p-fe546990.js} +3 -3
- package/dist/components/{p-af0ed46a.js.map → p-fe546990.js.map} +1 -1
- package/dist/components/{p-3d684a4f.js → p-fef8bda1.js} +2 -2
- package/dist/components/{p-3d684a4f.js.map → p-fef8bda1.js.map} +1 -1
- package/dist/components/stzh-actionset.js +1 -1
- package/dist/components/stzh-amount.js +4 -4
- package/dist/components/stzh-appointments.js +8 -8
- package/dist/components/stzh-audio.js +3 -3
- package/dist/components/stzh-audio.js.map +1 -1
- package/dist/components/stzh-calendar.js +1 -1
- package/dist/components/stzh-card-searchresult.js +8 -8
- package/dist/components/stzh-card-searchresult.js.map +1 -1
- package/dist/components/stzh-card-superteaser.js +7 -7
- package/dist/components/stzh-card.js +1 -1
- package/dist/components/stzh-cardlist.js +1 -1
- package/dist/components/stzh-checkbox.js +1 -1
- package/dist/components/stzh-checkboxgroup.js +2 -2
- package/dist/components/stzh-chipselect.js +1 -1
- package/dist/components/stzh-contact-cv.js +1 -1
- package/dist/components/stzh-cta.js +1 -1
- package/dist/components/stzh-datalist-item.js +1 -1
- package/dist/components/stzh-datalist.js +1 -1
- package/dist/components/stzh-datamessagelist-item.js +2 -2
- package/dist/components/stzh-datatable.js +9 -9
- package/dist/components/stzh-datepicker.js +1 -1
- package/dist/components/stzh-dropdown.js +1 -1
- package/dist/components/stzh-feedreader.js +1 -1
- package/dist/components/stzh-gallery.js +1 -1
- package/dist/components/stzh-geo-ref-data.js +9 -9
- package/dist/components/stzh-header.js +1 -1
- package/dist/components/stzh-homepage-service-highlights.js +1 -1
- package/dist/components/stzh-http-error.js +1 -1
- package/dist/components/stzh-input.js +1 -1
- package/dist/components/stzh-microsite-teaserlist.js +9 -9
- package/dist/components/stzh-monthyearpicker.js +3 -3
- package/dist/components/stzh-offline-indicator.js +2 -2
- package/dist/components/stzh-pagebottom.js +3 -3
- package/dist/components/stzh-pagetitle-home.js +1 -1
- package/dist/components/stzh-pagetitle.js +1 -1
- package/dist/components/stzh-pagination.js +1 -1
- package/dist/components/stzh-panorama.js +5 -5
- package/dist/components/stzh-pi-content-navigation.js +1 -1
- package/dist/components/stzh-pi-pagetitle.js +1 -1
- package/dist/components/stzh-pi-teaser.js +1 -1
- package/dist/components/stzh-poicard.js +1 -1
- package/dist/components/stzh-poilist.js +6 -6
- package/dist/components/stzh-popover.js +1 -1
- package/dist/components/stzh-radio.js +1 -1
- package/dist/components/stzh-radiogroup.js +1 -1
- package/dist/components/stzh-ratio.js +1 -1
- package/dist/components/stzh-readspeaker.js +3 -3
- package/dist/components/stzh-readspeaker.js.map +1 -1
- package/dist/components/stzh-richtext.js +1 -1
- package/dist/components/stzh-row.js +2 -2
- package/dist/components/stzh-saptcha.js +5 -5
- package/dist/components/stzh-scrollup.js +1 -1
- package/dist/components/stzh-search.js +6 -6
- package/dist/components/stzh-section.js +2 -2
- package/dist/components/stzh-share.js +1 -1
- package/dist/components/stzh-show.js +1 -1
- package/dist/components/stzh-sitemap.js +6 -6
- package/dist/components/stzh-skin-portal-mitwirken.js +2 -2
- package/dist/components/stzh-skin-portal-mitwirken.js.map +1 -1
- package/dist/components/stzh-skin-storybook-preview.js +1 -1
- package/dist/components/stzh-skiplink.js +1 -1
- package/dist/components/stzh-socialmediastream-item.js +1 -1
- package/dist/components/stzh-socialmediastream.js +4 -4
- package/dist/components/stzh-sortable.js +1 -1
- package/dist/components/stzh-space.js +2 -2
- package/dist/components/stzh-status.js +1 -1
- package/dist/components/stzh-stepper-item.js +1 -1
- package/dist/components/stzh-stepper.js +3 -3
- package/dist/components/stzh-sticky-actions.js +2 -2
- package/dist/components/stzh-sticky.js +1 -1
- package/dist/components/stzh-table.js +1 -1
- package/dist/components/stzh-tag.js +1 -1
- package/dist/components/stzh-text.js +1 -1
- package/dist/components/stzh-textandimage.js +1 -1
- package/dist/components/stzh-timeline-item.js +3 -3
- package/dist/components/stzh-timeline.js +1 -1
- package/dist/components/stzh-timepicker.js +4 -4
- package/dist/components/stzh-toast.js +1 -1
- package/dist/components/stzh-toastbar.js +1 -1
- package/dist/components/stzh-toggle.js +6 -6
- package/dist/components/stzh-tooltip.js +1 -1
- package/dist/components/stzh-twocolumns.js +1 -1
- package/dist/components/stzh-upload.js +6 -6
- package/dist/components/stzh-vbz-carousel.js +1 -1
- package/dist/components/stzh-vbz-connection-finder.js +1 -1
- package/dist/components/stzh-vbz-intro.js +1 -1
- package/dist/components/stzh-vbz-linechip.js +1 -1
- package/dist/components/stzh-vbz-majorticker.js +4 -4
- package/dist/components/stzh-vbz-ticker.js +5 -5
- package/dist/components/stzh-visuallyhidden.js +2 -2
- package/dist/components/stzh-vspace.js +2 -2
- package/dist/components/stzh-youtube.js +2 -2
- package/dist/esm/{app-globals-4169aa9e.js → app-globals-069a4797.js} +2 -2
- package/dist/esm/{app-globals-4169aa9e.js.map → app-globals-069a4797.js.map} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-audio.entry.js +1 -1
- package/dist/esm/stzh-audio.entry.js.map +1 -1
- package/dist/esm/stzh-breadcrumb_2.entry.js +1 -1
- package/dist/esm/stzh-card-searchresult.entry.js +1 -1
- package/dist/esm/stzh-card-searchresult.entry.js.map +1 -1
- package/dist/esm/stzh-card.entry.js +11 -8
- package/dist/esm/stzh-card.entry.js.map +1 -1
- package/dist/esm/stzh-cardlist_3.entry.js +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-datalist_2.entry.js +3 -3
- package/dist/esm/stzh-datalist_2.entry.js.map +1 -1
- package/dist/esm/stzh-ghettobox_3.entry.js +3 -3
- package/dist/esm/stzh-popover.entry.js +1 -1
- package/dist/esm/stzh-popover.entry.js.map +1 -1
- package/dist/esm/stzh-print_2.entry.js +1 -1
- package/dist/esm/stzh-ratio.entry.js +1 -1
- package/dist/esm/stzh-ratio.entry.js.map +1 -1
- package/dist/esm/stzh-readspeaker.entry.js +3 -3
- package/dist/esm/stzh-readspeaker.entry.js.map +1 -1
- package/dist/esm/stzh-row.entry.js +2 -2
- package/dist/esm/stzh-saptcha.entry.js +2 -2
- package/dist/esm/stzh-scrollup.entry.js +1 -1
- package/dist/esm/stzh-search.entry.js +2 -2
- package/dist/esm/stzh-section.entry.js +2 -2
- package/dist/esm/stzh-sitemap.entry.js +1 -1
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js +2 -2
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js.map +1 -1
- package/dist/esm/stzh-skin-storybook-preview.entry.js +1 -1
- package/dist/esm/stzh-skiplink.entry.js +1 -1
- package/dist/esm/stzh-socialmediastream-item.entry.js +1 -1
- package/dist/esm/stzh-socialmediastream.entry.js +1 -1
- package/dist/esm/stzh-space.entry.js +2 -2
- package/dist/esm/stzh-status.entry.js +4 -4
- package/dist/esm/stzh-stepper-item.entry.js +4 -4
- package/dist/esm/stzh-stepper.entry.js +2 -2
- package/dist/esm/stzh-sticky-actions.entry.js +1 -1
- package/dist/esm/stzh-sticky.entry.js +1 -1
- package/dist/esm/stzh-table.entry.js +1 -1
- package/dist/esm/stzh-text.entry.js +2 -2
- package/dist/esm/stzh-textandimage.entry.js +1 -1
- package/dist/esm/stzh-timeline-item.entry.js +3 -3
- package/dist/esm/stzh-timeline.entry.js +1 -1
- package/dist/esm/stzh-timepicker.entry.js +1 -1
- package/dist/esm/stzh-toast_2.entry.js +4 -4
- package/dist/esm/stzh-toggle.entry.js +4 -4
- package/dist/esm/stzh-tooltip.entry.js +2 -2
- package/dist/esm/stzh-tooltip.entry.js.map +1 -1
- package/dist/esm/stzh-twocolumns.entry.js +1 -1
- package/dist/esm/stzh-upload.entry.js +2 -2
- package/dist/esm/stzh-vbz-carousel.entry.js +1 -1
- package/dist/esm/stzh-vbz-connection-finder.entry.js +1 -1
- package/dist/esm/stzh-vbz-intro.entry.js +1 -1
- package/dist/esm/stzh-vbz-linechip.entry.js +2 -2
- package/dist/esm/stzh-vbz-majorticker.entry.js +2 -2
- package/dist/esm/stzh-vbz-ticker.entry.js +2 -2
- package/dist/esm/stzh-visuallyhidden.entry.js +2 -2
- package/dist/esm/stzh-vspace.entry.js +2 -2
- package/dist/esm/stzh-youtube.entry.js +1 -1
- package/dist/stzh-components/{p-96fe4abd.entry.js → p-043ad510.entry.js} +2 -2
- package/dist/stzh-components/{p-bb73cb7c.entry.js → p-0a9f2a26.entry.js} +2 -2
- package/dist/stzh-components/{p-fc5fd4e3.entry.js → p-0c454ed4.entry.js} +2 -2
- package/dist/stzh-components/{p-5b908c23.entry.js → p-0c7abc07.entry.js} +2 -2
- package/dist/stzh-components/{p-7026a4fd.entry.js → p-12ea12f4.entry.js} +2 -2
- package/dist/stzh-components/p-17d26a11.entry.js +2 -0
- package/dist/stzh-components/{p-404ba037.entry.js.map → p-17d26a11.entry.js.map} +1 -1
- package/dist/stzh-components/{p-adb98a13.entry.js → p-24c37b16.entry.js} +2 -2
- package/dist/stzh-components/{p-c2837379.entry.js → p-263f1fc6.entry.js} +2 -2
- package/dist/stzh-components/p-29ff3759.entry.js +2 -0
- package/dist/stzh-components/{p-6b57e800.entry.js.map → p-29ff3759.entry.js.map} +1 -1
- package/dist/stzh-components/{p-0971c453.entry.js → p-2b22da62.entry.js} +2 -2
- package/dist/stzh-components/{p-e5935628.entry.js → p-3edb8127.entry.js} +2 -2
- package/dist/stzh-components/p-43390ffd.entry.js +2 -0
- package/dist/stzh-components/p-43390ffd.entry.js.map +1 -0
- package/dist/stzh-components/{p-cb78d001.entry.js → p-44860eb8.entry.js} +2 -2
- package/dist/stzh-components/{p-c63ce489.entry.js → p-4a0e5c91.entry.js} +2 -2
- package/dist/stzh-components/{p-e4083254.entry.js → p-52b21470.entry.js} +2 -2
- package/dist/stzh-components/{p-4423fbf1.entry.js → p-5ea61577.entry.js} +2 -2
- package/dist/stzh-components/p-5ea61577.entry.js.map +1 -0
- package/dist/stzh-components/{p-dce69ebb.entry.js → p-628b2a1b.entry.js} +2 -2
- package/dist/stzh-components/{p-28f4fd43.entry.js → p-6f71f9a1.entry.js} +2 -2
- package/dist/stzh-components/p-705fb85c.entry.js +2 -0
- package/dist/stzh-components/{p-e0743aaf.entry.js.map → p-705fb85c.entry.js.map} +1 -1
- package/dist/stzh-components/{p-da065baa.entry.js → p-7467c517.entry.js} +2 -2
- package/dist/stzh-components/{p-46d8ebf9.entry.js → p-77c64b4b.entry.js} +2 -2
- package/dist/stzh-components/{p-46d8ebf9.entry.js.map → p-77c64b4b.entry.js.map} +1 -1
- package/dist/stzh-components/{p-a128eb07.entry.js → p-79a63bd9.entry.js} +2 -2
- package/dist/stzh-components/p-836ee7e5.entry.js +2 -0
- package/dist/stzh-components/p-836ee7e5.entry.js.map +1 -0
- package/dist/stzh-components/{p-1a3a2442.entry.js → p-84ae023f.entry.js} +2 -2
- package/dist/stzh-components/{p-3c60c70f.entry.js → p-976d5ab9.entry.js} +2 -2
- package/dist/stzh-components/{p-04669d52.entry.js → p-99d39d04.entry.js} +2 -2
- package/dist/stzh-components/{p-2b75dc62.entry.js → p-a08056c1.entry.js} +2 -2
- package/dist/stzh-components/{p-c6552960.entry.js → p-ab439c71.entry.js} +2 -2
- package/dist/stzh-components/{p-c6552960.entry.js.map → p-ab439c71.entry.js.map} +1 -1
- package/dist/stzh-components/{p-71886cdf.entry.js → p-ac4b1753.entry.js} +2 -2
- package/dist/stzh-components/{p-444ba687.entry.js → p-b0d12ac9.entry.js} +2 -2
- package/dist/stzh-components/p-b159d0bc.entry.js +2 -0
- package/dist/stzh-components/{p-624be23e.entry.js.map → p-b159d0bc.entry.js.map} +1 -1
- package/dist/stzh-components/p-b40a0635.js +2 -0
- package/dist/stzh-components/{p-1c01ddd2.js.map → p-b40a0635.js.map} +1 -1
- package/dist/stzh-components/{p-fb73afa9.entry.js → p-b6b39492.entry.js} +2 -2
- package/dist/stzh-components/{p-97e2a5ae.entry.js → p-c26e45c7.entry.js} +2 -2
- package/dist/stzh-components/{p-68dccf19.entry.js → p-c34c7f87.entry.js} +2 -2
- package/dist/stzh-components/{p-5ca3df89.entry.js → p-cd9be844.entry.js} +2 -2
- package/dist/stzh-components/{p-592452c5.entry.js → p-d12700c1.entry.js} +2 -2
- package/dist/stzh-components/{p-6802415a.entry.js → p-d17b4c21.entry.js} +2 -2
- package/dist/stzh-components/{p-8060775b.entry.js → p-d83dbb08.entry.js} +2 -2
- package/dist/stzh-components/p-d83dbb08.entry.js.map +1 -0
- package/dist/stzh-components/{p-549b5a54.entry.js → p-d98330d6.entry.js} +2 -2
- package/dist/stzh-components/p-dcf670a7.entry.js +2 -0
- package/dist/stzh-components/{p-8d664896.entry.js.map → p-dcf670a7.entry.js.map} +1 -1
- package/dist/stzh-components/{p-9c76b2dd.entry.js → p-dde1ffb8.entry.js} +2 -2
- package/dist/stzh-components/{p-420e839d.entry.js → p-e19dd2da.entry.js} +2 -2
- package/dist/stzh-components/{p-97fa8644.entry.js → p-e452b478.entry.js} +2 -2
- package/dist/stzh-components/{p-9130582f.entry.js → p-e496eb1a.entry.js} +2 -2
- package/dist/stzh-components/{p-6872230d.entry.js → p-e8a87eaf.entry.js} +2 -2
- package/dist/stzh-components/{p-ecb3ab05.entry.js → p-ec7f8a5a.entry.js} +2 -2
- package/dist/stzh-components/{p-824068d6.entry.js → p-f957fa77.entry.js} +2 -2
- package/dist/stzh-components/{p-7d590d24.entry.js → p-f9e3c785.entry.js} +2 -2
- package/dist/stzh-components/stzh-components.css +168 -4
- package/dist/stzh-components/stzh-components.esm.js +1 -1
- package/dist/stzh-components/stzh-components.esm.js.map +1 -1
- package/dist/types/components/stzh-card/stzh-card.d.ts +2 -0
- package/dist/types/components/stzh-datalist-item/stzh-datalist-item.d.ts +2 -2
- package/dist/types/components.d.ts +16 -8
- package/dist/vscode-data.json +16 -4
- package/package.json +1 -1
- package/dist/components/p-18ad2006.js.map +0 -1
- package/dist/components/p-5748d860.js.map +0 -1
- package/dist/components/p-a367fa4a.js.map +0 -1
- package/dist/stzh-components/p-1c01ddd2.js +0 -2
- package/dist/stzh-components/p-404ba037.entry.js +0 -2
- package/dist/stzh-components/p-4423fbf1.entry.js.map +0 -1
- package/dist/stzh-components/p-6042015f.entry.js +0 -2
- package/dist/stzh-components/p-6042015f.entry.js.map +0 -1
- package/dist/stzh-components/p-624be23e.entry.js +0 -2
- package/dist/stzh-components/p-6b57e800.entry.js +0 -2
- package/dist/stzh-components/p-8060775b.entry.js.map +0 -1
- package/dist/stzh-components/p-8d664896.entry.js +0 -2
- package/dist/stzh-components/p-b35032a8.entry.js +0 -2
- package/dist/stzh-components/p-b35032a8.entry.js.map +0 -1
- package/dist/stzh-components/p-e0743aaf.entry.js +0 -2
- /package/dist/stzh-components/{p-96fe4abd.entry.js.map → p-043ad510.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-bb73cb7c.entry.js.map → p-0a9f2a26.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-fc5fd4e3.entry.js.map → p-0c454ed4.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-5b908c23.entry.js.map → p-0c7abc07.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-7026a4fd.entry.js.map → p-12ea12f4.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-adb98a13.entry.js.map → p-24c37b16.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-c2837379.entry.js.map → p-263f1fc6.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0971c453.entry.js.map → p-2b22da62.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-e5935628.entry.js.map → p-3edb8127.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-cb78d001.entry.js.map → p-44860eb8.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-c63ce489.entry.js.map → p-4a0e5c91.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-e4083254.entry.js.map → p-52b21470.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-dce69ebb.entry.js.map → p-628b2a1b.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-28f4fd43.entry.js.map → p-6f71f9a1.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-da065baa.entry.js.map → p-7467c517.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-a128eb07.entry.js.map → p-79a63bd9.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-1a3a2442.entry.js.map → p-84ae023f.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-3c60c70f.entry.js.map → p-976d5ab9.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-04669d52.entry.js.map → p-99d39d04.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-2b75dc62.entry.js.map → p-a08056c1.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-71886cdf.entry.js.map → p-ac4b1753.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-444ba687.entry.js.map → p-b0d12ac9.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-fb73afa9.entry.js.map → p-b6b39492.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-97e2a5ae.entry.js.map → p-c26e45c7.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-68dccf19.entry.js.map → p-c34c7f87.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-5ca3df89.entry.js.map → p-cd9be844.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-592452c5.entry.js.map → p-d12700c1.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-6802415a.entry.js.map → p-d17b4c21.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-549b5a54.entry.js.map → p-d98330d6.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-9c76b2dd.entry.js.map → p-dde1ffb8.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-420e839d.entry.js.map → p-e19dd2da.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-97fa8644.entry.js.map → p-e452b478.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-9130582f.entry.js.map → p-e496eb1a.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-6872230d.entry.js.map → p-e8a87eaf.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-ecb3ab05.entry.js.map → p-ec7f8a5a.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-824068d6.entry.js.map → p-f957fa77.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-7d590d24.entry.js.map → p-f9e3c785.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i","window","s","trustedTypes","e","createPolicy","createHTML","o","n","Math","random","slice","l","h","r","document","u","createComment","d","c","Array","isArray","v","Symbol","iterator","a","f","_","m","p","RegExp","g","$","y","w","_$litType$","strings","values","x","T","for","A","E","WeakMap","C","createTreeWalker","P","hasOwnProperty","Error","V","length","lastIndex","exec","test","startsWith","push","N","constructor","this","parts","el","createElement","currentNode","content","firstChild","remove","append","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","toLowerCase","split","type","index","name","ctor","H","L","z","k","removeAttribute","tagName","textContent","emptyScript","data","indexOf","innerHTML","S","_$Co","_$Cl","_$litDirective$","_$AO","call","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","Z","_$AI","_$AH","_$AA","_$AB","options","_$Cp","isConnected","startNode","endNode","_$AR","insertBefore","createTextNode","_$AC","get","set","_$AP","setConnected","element","fill","String","j","setAttribute","super","arguments","I","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","B","litHtmlPolyfillSupport","litHtmlVersions","D","renderBefore","_$litPart$","functionDebounce","debounce","fn","wait","callFirst","timeout","debouncedFn","clear","clearTimeout","flush","debounceWrapper","apply","context","args","callNow","setTimeout","cancel","functionThrottle","throttle","interval","timeoutId","throttledFn","leading","trailing","throttleWrapper","listen","target","listener","DisposalBin","_disposal","add","callbacks","forEach","cb","empty","eventListener","off","attach","addController","hostConnected","hostDisconnected","VdsEvent","CustomEvent","eventInit","triggerEvent","Object","defineProperties","originEvent","getOriginEvent","isOriginTrusted","isTrusted","vdsEvent","event","appendTriggerEvent","orphanConsumers","Map","ContextConsumerController","_host","initialValue","_options","_registrationCallbacks","_connect","id","value","registered","setValue","dispatchEvent","bubbles","composed","detail","orphans","whenRegistered","callback","adoptOrphans","provider","adoptees","filter","contains","ContextProviderController","_initValue","_stopDisposal","_value","start","bind","stop","dispose","_handleConsumerConnect","orphan","consumer","stopImmediatePropagation","createContext","initValue","consume","provide","isContext","description","noop","safeNotEqual","b","isNull","isUndefined","isNil","isNumber","Number","isNaN","isString","isFunction","discoverers","discoverables","connect","discoverable2","onDisconnect","from","find","discover","discoverer","Set","delete","discoverable","eventType","register","disconnectDisposal","IS_CLIENT","UA","navigator","userAgent","IS_IOS","platform","IS_CHROME","chrome","safari","canOrientScreen","screen","orientation","lock","unlock","key","fullscreenEnabled","fullscreenElement","requestFullscreen","exitFullscreen","fullscreenchange","fullscreenerror","fullscreen","webkit","moz","ms","document2","vendor","keys","fscreen","requestFullscreenFunction","fullscreenPseudoClass","handler","Boolean","val","onfullscreenchange","onfullscreenerror","fscreen_esm_default","LOCAL_STORAGE_KEY","getSavedColors","localStorage","colors2","JSON","parse","getItem","entries","freeze","silent","error","warn","info","debug","round","num","decimalPlaces","toFixed","clampNumber","min","max","getNumberOfDecimalPlaces","FullscreenController","_screenOrientationController","_logger","_listenerDisposal","_handleHostDisconnected","isFullscreen","isSupported","isSupportedNatively","isNativeFullscreen","matches","_addFullscreenChangeEventListener","_addFullscreenErrorEventListener","enterFullscreen","_throwIfNoFullscreenSupport","_handleFullscreenChange","_handleFullscreenError","response","_makeEnterFullscreenRequest","_lockScreenOrientation","_makeExitFullscreenRequest","_unlockScreenOrientation","_shouldOrientScreen","canOrient","screenOrientationLock","FocusVisibleController","disposal","hadKeyboardEvent","metaKey","altKey","ctrlKey","classList","focusVisiblePolyfill","IntersectionController","config","_callback","_skipInitial","_unobservedUpdate","skipInitial","intersectionObserverInit","_target","IntersectionObserver","_observer","unobservedUpdate","handleChanges","requestUpdate","observe","_disconnect","hostUpdated","pendingRecords","takeRecords","unobserve","disconnect","createIntersectionController","params","deferredPromise","resolve","reject","promise","Promise","res","rej","RequestQueue","_requestQueue","_requestKeys","_pendingFlush","_isServing","isServing","size","waitForFlush","queue","key2","serve","_flush","requestKey","_release","_empty","destroy","hostRequestQueue","q","ScreenOrientationController","_isScreenOrientationLocked","_updateScreenOrientation","_handleHostConnected","_addScreenOrientationEventListeners","currentOrientation","_screenOrientation","isLocked","lockType","_throwIfScreenOrientationUnavailable","_addScreenOrientationChangeEventListener","_handleOrientationChange","keysOf","obj","storeSubscription","store","onChange","unsubscribe","subscribe","subscriberQueue","readable","writable","subscribers","newValue","runQueue","subscriber","update","updater","run","invalidate","derived","stores","single","storesArray","auto","initialized","pending","cleanup","sync","result","unsubscribers","map","fn2","getStoreValue","storeRecordSubscription","copyStoreRecords","storeRecordA","storeRecordB","storeA","storeB","valA","valB","unwrapStoreRecord","Proxy","has","Reflect","ownKeys","getOwnPropertyDescriptor","isScalarArrayEqual","arrayA","arrayB","every","raf","rafId","requestAnimationFrame","async","safelyDefineCustomElement","isClient","isElementRegistered","customElements","define","attrName","attrValue","setAttributeIfEmpty","hasAttribute","setCSSProperty","prefix","style","setProperty","getSlottedChildren","selector","slot","shadowRoot","querySelector","assignedNodes","flatten","prototype","node","Node","ELEMENT_NODE","requestIdleCallback","idle","readyState","isKeyboardEvent","isKeyboardClick","camelToKebabCase","str","replace","padNumberWithZeroes","expectedLength","actualLength","shouldPad","padLength","padding","repeat","parseTime","duration","hours","trunc","minutes","seconds","fraction","toPrecision","formatTime","shouldPadHours","shouldAlwaysShowHours","paddedHours","paddedMinutes","paddedSeconds","formatSpokenTime","spokenParts","pluralize","word","join","rafThrottle","func","cancelAnimationFrame","throttled","mediaProviderElementContext","rangeCheck","fnName","maxIndex","getRange","valueIndex","ranges","rangeIndex","createTimeRangesObj","throwEmptyError","end","createTimeRanges","MEDIA_STORE_DEFAULTS","autoplay","autoplayError","buffered","bufferedAmount","canLoad","canPlay","canFullscreen","controls","poster","currentSrc","currentTime","ended","userIdle","loop","mediaType","muted","paused","played","playing","playsinline","seekable","seekableAmount","seeking","src","started","viewType","volume","waiting","createMediaStore","prop","DO_NOT_RESET_ON_SRC_CHANGE","softResetMediaStore","resetMediaStore","mediaStoreContext","mediaStoreSubscription","property","__defProp","defineProperty","__getOwnPropDesc","__decorateClass","decorators","kind","decorator","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","_$cssResult$","cssText","styleSheet","replaceSync","toString","reduce","adoptedStyleSheets","litNonce","appendChild","cssRules","reactiveElementPolyfillSupport","toAttribute","stringify","fromAttribute","attribute","converter","reflect","hasChanged","HTMLElement","_$Ei","isUpdatePending","hasUpdated","_$El","_$Eu","addInitializer","finalize","observedAttributes","elementProperties","_$Ep","_$Ev","createProperty","state","noAccessor","getPropertyDescriptor","configurable","enumerable","getPropertyOptions","getPrototypeOf","properties","getOwnPropertyNames","getOwnPropertySymbols","elementStyles","finalizeStyles","styles","flat","reverse","unshift","_$E_","enableUpdating","_$AL","_$Eg","_$ES","renderRoot","removeController","splice","createRenderRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","attributeChangedCallback","_$AK","_$EO","_$EC","_$Ej","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","_$Ek","_$AE","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","renderOptions","_$Do","render","finalized","_$litElement$","globalThis","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","descriptor","finisher","placement","originalKey","initializer","mediaProviderDiscoveryId","MediaProviderElement","_disconnectDisposal","loading","_attemptingAutoplay","controllerQueue","_store","_state","connectedQueue","mediaQueue","screenOrientationController","fullscreenController","intersectionController","threshold","isIntersecting","startLoadingMedia","_logMediaEvents","canLoadPoster","changedProperties","html","handleDefaultSlotChange","_updateMediaStoreOnDisconnect","_getVolume","newVolume","oldVol","newVol","_setVolume","_getPaused","newPaused","play","pause","_getCurrentTime","newTime","oldTime","_setCurrentTime","_getMuted","newMuted","oldMuted","_setMuted","newPoster","oldPoster","newLoop","oldLoop","newControls","oldControls","_throwIfNotReadyForPlayback","_resetPlaybackIfEnded","_throwIfNotVideoView","_handleMediaReady","_attemptAutoplay","_handleCurrentSrcChange","newAutoplay","_canAttemptAutoplay","controller","_controller","logLevel","level","idleDelay","delay","attachMediaController","fullscreenOrientation","prevLockType","UserIdleController","_mediaStore","_idle","_mediaPaused","_idlingPaused","_handleIdleChange","$paused","startIdleTimerEvents","_stopIdleTimer","_startIdleTimer","_idleTimeout","_dispatchIdleChange","isIdle","MediaController","DisposalBin2","providerQueue","providerDisposal","_logController","_providerContext","_mediaStoreProvider","_userIdleController","_satisfyMediaRequest","_pendingMediaRequests","seeked","_handleStartLoadingRequest","_createMediaRequestHandler","_provider","_handleMuteRequest","_handleUnmuteRequest","_handlePlayRequest","_handlePauseRequest","_isSeekingRequestPending","_handleSeekingRequest","_stopWaiting","_handleSeekRequest","_isReplay","time","_handleVolumeChangeRequest","_handleEnterFullscreenRequest","_handleExitFullscreenRequest","_handleResumeIdlingRequest","_mediaRequestEventGateway","_handlePauseIdlingRequest","_handleShowPosterRequest","_handleHidePosterRequest","_handleLoopRequest","_isLooping","vdsEvent2","_firingWaiting","_mediaEvents","_handleSeeking","_fireWaiting","_originalWaitingEvent","_skipInitialSrcChange","attachMediaProvider","_clearMediaStateTracking","_clearPendingMediaRequests","_handleMediaProviderDisconnect","_attachMediaEventListeners","_flushMediaProviderConnectedQueue","requestEvent","shift","stopPropagation","queueKey","mediaEventListeners","_handleCanLoad","_handleLoadStart","_handleLoadedData","_handleLoadedMetadata","_handleCanPlay","_handleCanPlayThrough","_handleAutoplay","_handleAutoplayFail","_handlePlay","_handlePlayFail","_handlePlaying","_handlePause","_handleTimeUpdate","_handleVolumeChange","_handleSeeked","_handleWaiting","_handleEnded","_handleAutoplayChange","_handleError","_handleFullscreenSupportChange","_handlePosterChange","_handleLoopChange","_handlePlaysinlineChange","_handleControlsChange","_handleMediaTypeChange","_handleViewTypeChange","_handleDurationChange","_handleProgress","_handleSrcChange","listen2","_findLastMediaEvent","lastIndexOf","_updateMetadata","metadata","replayEvent","playEvent","MediaStyleController","_mediaProps","DisposalBin3","_hostConnected","_hostDisconnected","propName","_getMediaAttrName","unsub","$v","_handleValueChange","_handleDisconnect","MediaAttrsController","bindMediaPropsToAttrs","MediaCssPropsController","_getCssPropName","isString2","isNumber2","bindMediaPropsToCssProps","mediaDiscoveryId","MediaElement","__mediaFullscreen","__mediaIsVideoView","__mediaPlaysinline","$fullscreen","$viewType","$playsinline","_bindMediaAttributes","_bindMediaCSSProperties","css","setAttribute2","_shouldHideMediaUI","AUDIO_EXTENSIONS","VIDEO_EXTENSIONS","getMediaTypeFromExt","Html5MediaElement","preload","_timeRAF","_hasMediaElementConnected","_mediaElementDisposal","_isMediaWaiting","_ignoreNextAbortEvent","_ignoreNextEmptiedEvent","mediaElement","_mediaElement","_cancelTimeUpdates","load","_requestTimeUpdates","_requestTimeUpdate","_updateCurrentTime","_handleMediaElementDisconnect","_handleMediaElementConnect","_canMediaElementConnect","_findSlottedMediaElement","mediaEl","_observePlaysinline","_observeMediaSources","_startPreloadingMedia","infoGroup","labelledLog","dispatch","isNetworkActive","networkState","isPlayingInline","observer","MutationObserver","attributeFilter","_getMediaSources","subtree","sources","prevSources","resources","querySelectorAll","source","_getMediaMetadata","_getMediaType","abort","_handleAbort","canplay","canplaythrough","durationchange","emptied","_handleEmptied","loadeddata","loadedmetadata","loadstart","progress","ratechange","_handleRateChange","stalled","_handleStalled","suspend","_handleSuspend","volumechange","_determineMediaType","playingEvent","seekedEvent","suspendEvent","endEvent","_handleLoop","hasCustomControls","mediaError","message","code","isMuted","playErrorEvent","AudioElement","toggleButtonElementStyles","ToggleButtonElement","pressed","disabled","_handleButtonClickCapture","preventDefault","_handleButtonClick","_updateAriaPressedAttr","_renderDefaultSlot","MediaRemoteControl","_createLogger","_requests","startLoading","_dispatchRequest","mute","unmute","seek","changeVolume","resumeUserIdle","pauseUserIdle","showPoster","hidePoster","setTarget","request","PlayButtonElement","_mediaRemote","MuteButtonElement","_volume","_muted","$volume","_handleMutedChange","$muted","createSliderStore","dragging","pointing","pointerValue","interactive","$dragging","$pointing","sliderStoreContext","sliderElementStyles","SliderKeyDirection","SliderKeyDirection2","SliderElement","_sliderStoreProvider","_step","_keyboardStep","shiftKeyMultiplier","customValueText","_handlePointerEnter","_handlePointerMove","isDragging","_getValueBasedOnThumbPosition","_dispatchPointerValueChange","_handlePointerLeave","_handlePointerDown","_startDragging","_onDrag","_handleKeydown","shiftKey","isValidKey","includes","modifiedStep","keyboardStep","direction","diff","steps","step","_getClampedValue","_dispatchValueChange","_handleFillValueChange","_updateFillCSSProps","_handlePointerValueChange","_updatePointerCSSProps","_handleDocumentPointerUp","_stopDragging","_handleDocumentTouchMove","_handleDocumentPointerMove","_lastDispatchedValue","_lastDispatchedPointerValue","events","newMin","newMax","newStep","fillRate","range","offset","fillPercent","pointerRate","pointerPercent","_setupAriaAttrs","$interactive","_updateAriaValueAttrs","_renderSlider","_getValueMin","_getValueNow","_getValueMax","_getValueText","_getValueFromRate","rate","boundRate","stepRatio","thumbClientX","clientX","left","trackLeft","width","trackWidth","getBoundingClientRect","thumbPositionRate","timeSliderElementStyles","TimeSliderElement","valueText","pauseWhileDragging","seekingRequestThrottle","__mediaDuration","__mediaPaused","_handleSliderDragStart","_togglePlaybackWhileDragging","_handleSliderValueChange","_dispatchSeekingRequest","_handleSliderDragValueChange","_handleSliderDragEnd","_wasPlayingBeforeDragStart","$currentTime","$duration","VolumeSliderElement","_changeVolume","mediaVolume","SliderValueTextElement","_sliderStoreConsumer","__value","showHours","padHours","_sliderStore","_handleTypeChange","valueStore","format","_createPercentStore","$value","$min","$max","_getPercentFormat","_getTimeFormat","TimeElement","_mediaStoreConsumer","__seconds","remainder","_getFormattedTime","_getTypeStore","_createRemainderStore","$seconds","secondsStore","stzhAudioCss","StzhAudioStyle0","StzhAudio","vsdAudioElement","componentWillLoad","localization","stzhComponents","utils","fetchTranslations","hasTranscript","transcript","hasSlot","classes","Host","class","ref","stzhPlay","emit","component","stzhPlaying","stzhEnd","stzhEnded","stzhReplay","stzhError","originalEvent","label","transcriptShown","hideTranscript","showTranscript","onClick","transcriptAnalyticsId","download","href","downloadAnalyticsId","hidden"],"sources":["node_modules/lit-html/lit-html.js","node_modules/just-debounce-it/index.mjs","node_modules/just-throttle/index.mjs","node_modules/@vidstack/foundation/dist/prod/index.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.APMKZUJJ.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.O2H47C42.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.LNH2V2XS.js","node_modules/@lit/reactive-element/css-tag.js","node_modules/@lit/reactive-element/reactive-element.js","node_modules/lit-element/lit-element.js","node_modules/@lit/reactive-element/decorators/property.js","node_modules/@lit/reactive-element/decorators/state.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.63VUN3OP.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.YGYRCKY2.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.3RP67ZHA.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.M7J7NUUF.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.MWM7HRI6.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.6QN55WFS.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.KIF3XDBQ.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.JDCQU7GF.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.5LQ54Q2B.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.66B2ZPSA.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.OS5G3YJW.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.AIREQQLN.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.CQHSYXO3.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.33ZMGU5I.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.JA2WRFAV.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.T4J4ZIUS.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.63ZIHMNQ.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.2U56ALO2.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.7KY74HUU.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.WSW2QITQ.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.K4RXYACL.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.OEXORVMF.js","src/components/stzh-audio/stzh-audio.scss?tag=stzh-audio&encapsulation=scoped","src/components/stzh-audio/stzh-audio.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(l=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?H:\"?\"===i[1]?L:\"@\"===i[1]?z:k})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],u()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],u())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S(t,r._$AS(t,i.values),r,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h]}l!==(null==u?void 0:u.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),d(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&d(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N.createElement(P(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new M(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u()),this.k(u()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const I=s?s.emptyScript:\"\";class L extends k{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=S(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const j={O:o,P:n,A:l,C:1,M:V,L:M,R:v,D:S,I:R,V:k,H:L,N:z,U:H,F:Z},B=i.litHtmlPolyfillSupport;null==B||B(N,R),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.8.0\");const D=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","var functionDebounce = debounce;\n\nfunction debounce(fn, wait, callFirst) {\n var timeout = null;\n var debouncedFn = null;\n\n var clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n\n debouncedFn = null;\n timeout = null;\n }\n };\n\n var flush = function() {\n var call = debouncedFn;\n clear();\n\n if (call) {\n call();\n }\n };\n\n var debounceWrapper = function() {\n if (!wait) {\n return fn.apply(this, arguments);\n }\n\n var context = this;\n var args = arguments;\n var callNow = callFirst && !timeout;\n clear();\n\n debouncedFn = function() {\n fn.apply(context, args);\n };\n\n timeout = setTimeout(function() {\n timeout = null;\n\n if (!callNow) {\n var call = debouncedFn;\n debouncedFn = null;\n\n return call();\n }\n }, wait);\n\n if (callNow) {\n return debouncedFn();\n }\n };\n\n debounceWrapper.cancel = clear;\n debounceWrapper.flush = flush;\n\n return debounceWrapper;\n}\n\nexport {functionDebounce as default};\n","var functionThrottle = throttle;\n\nfunction throttle(fn, interval, options) {\n var timeoutId = null;\n var throttledFn = null;\n var leading = (options && options.leading);\n var trailing = (options && options.trailing);\n\n if (leading == null) {\n leading = true; // default\n }\n\n if (trailing == null) {\n trailing = !leading; //default\n }\n\n if (leading == true) {\n trailing = false; // forced because there should be invocation per call\n }\n\n var cancel = function() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n var flush = function() {\n var call = throttledFn;\n cancel();\n\n if (call) {\n call();\n }\n };\n\n var throttleWrapper = function() {\n var callNow = leading && !timeoutId;\n var context = this;\n var args = arguments;\n\n throttledFn = function() {\n return fn.apply(context, args);\n };\n\n if (!timeoutId) {\n timeoutId = setTimeout(function() {\n timeoutId = null;\n\n if (trailing) {\n return throttledFn();\n }\n }, interval);\n }\n\n if (callNow) {\n callNow = false;\n return throttledFn();\n }\n };\n\n throttleWrapper.cancel = cancel;\n throttleWrapper.flush = flush;\n\n return throttleWrapper;\n}\n\nexport {functionThrottle as default};\n","// src/utils/events.ts\nfunction listen(target, type, listener, options) {\n target.addEventListener(type, listener, options);\n return () => {\n target.removeEventListener(type, listener, options);\n };\n}\nfunction eventTypeIncludes(event, types) {\n return types.some((type) => event?.type.includes(type) ?? false);\n}\nfunction isPointerEvent(event) {\n return eventTypeIncludes(event, [\"pointer\"]);\n}\nfunction isTouchEvent(event) {\n return eventTypeIncludes(event, [\"touch\"]);\n}\nfunction isMouseEvent(event) {\n return eventTypeIncludes(event, [\"click\", \"mouse\"]);\n}\nasync function waitForEvent(target, type, options) {\n return new Promise((resolve, reject) => {\n const timerId = window.setTimeout(() => {\n reject(`Timed out waiting for event \\`${type}\\`.`);\n }, options?.timeout ?? 1e3);\n listen(\n target,\n type,\n (event) => {\n window.clearTimeout(timerId);\n resolve(event);\n },\n options\n );\n });\n}\nvar DisposalBin = class {\n constructor() {\n this._disposal = this._disposal ?? [];\n }\n add(...callbacks) {\n if (callbacks) {\n callbacks.forEach((cb) => {\n this._disposal.push(cb);\n });\n }\n }\n empty() {\n this._disposal.forEach((fn) => fn());\n this._disposal = [];\n }\n};\n\n// src/events/event-listener.ts\nfunction eventListener(host, type, listener, options) {\n let off;\n function attach() {\n if (!off) {\n off = listen(options?.target ?? host, type, listener, options);\n }\n }\n attach();\n host.addController({\n hostConnected() {\n attach();\n },\n hostDisconnected() {\n off?.();\n off = void 0;\n }\n });\n}\n\n// src/events/VdsEvent.ts\nvar VdsEvent = class extends CustomEvent {\n constructor(type, eventInit = {}) {\n super(type, eventInit);\n this.triggerEvent = eventInit.triggerEvent;\n if (!this.hasOwnProperty(\"originEvent\")) {\n Object.defineProperties(this, {\n originEvent: {\n get() {\n return getOriginEvent(this) ?? this;\n }\n },\n isOriginTrusted: {\n get() {\n return getOriginEvent(this)?.isTrusted ?? false;\n }\n }\n });\n }\n }\n get originEvent() {\n return getOriginEvent(this) ?? this;\n }\n get isOriginTrusted() {\n return this.originEvent?.isTrusted ?? false;\n }\n};\nfunction vdsEvent(type, eventInit = {}) {\n return new VdsEvent(type, eventInit);\n}\nfunction isVdsEvent(event) {\n return event?.hasOwnProperty(\"triggerEvent\") ?? false;\n}\nfunction getOriginEvent(event) {\n let triggerEvent = event.triggerEvent;\n while (triggerEvent && triggerEvent.triggerEvent) {\n triggerEvent = triggerEvent.triggerEvent;\n }\n return triggerEvent;\n}\nfunction walkTriggerEventChain(event, callback) {\n if (!isVdsEvent(event))\n return;\n let triggerEvent = event.triggerEvent;\n while (triggerEvent && triggerEvent.triggerEvent) {\n const returnValue = callback(triggerEvent);\n if (returnValue)\n return [triggerEvent, returnValue];\n triggerEvent = triggerEvent.triggerEvent;\n }\n return;\n}\nfunction findTriggerEvent(event, eventType) {\n return walkTriggerEventChain(event, (e) => e.type === eventType)?.[0];\n}\nfunction hasTriggerEvent(event, eventType) {\n return !!findTriggerEvent(event, eventType);\n}\nfunction appendTriggerEvent(event, triggerEvent) {\n (getOriginEvent(event) ?? event).triggerEvent = triggerEvent;\n}\n\n// src/events/redispatch.ts\nfunction redispatchEvent(target, event) {\n if (event.bubbles && event.composed)\n return;\n const newEvent = new VdsEvent(event.type, {\n triggerEvent: event.triggerEvent ?? event,\n detail: event.detail,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n composed: event.composed\n });\n target.dispatchEvent(newEvent);\n}\n\n// src/context/ContextConsumerController.ts\nvar orphanConsumers = /* @__PURE__ */ new Map();\nvar ContextConsumerController = class {\n constructor(_host, initialValue, _options) {\n this._host = _host;\n this.initialValue = initialValue;\n this._options = _options;\n this._registrationCallbacks = [];\n _host.addController({\n hostConnected: () => {\n this._connect();\n },\n hostDisconnected: () => {\n delete this._host[this.id];\n }\n });\n }\n get id() {\n return this._options.id;\n }\n get value() {\n return this._host[this.id] ?? this.initialValue;\n }\n get registered() {\n return this.id in this._host;\n }\n _connect() {\n if (this.id in this._host)\n return;\n const setValue = (value) => {\n this._host[this.id] = value;\n this._registrationCallbacks?.forEach((fn) => fn(value));\n this._registrationCallbacks = void 0;\n };\n this._host.dispatchEvent(\n vdsEvent(\"vds-context-consumer-connect\", {\n bubbles: true,\n composed: true,\n detail: {\n id: this.id,\n setValue\n }\n })\n );\n if (!this.registered) {\n const orphans = orphanConsumers.get(this.id) ?? [];\n orphans.push({ host: this._host, setValue });\n orphanConsumers.set(this.id, orphans);\n }\n }\n whenRegistered(callback) {\n if (this.registered) {\n callback(this.value);\n return;\n }\n this._registrationCallbacks?.push(callback);\n }\n};\nfunction adoptOrphans(id, provider) {\n const orphans = orphanConsumers.get(id) ?? [];\n const adoptees = orphans.filter(({ host }) => provider.contains(host));\n orphanConsumers.set(\n id,\n orphans.filter(({ host }) => !provider.contains(host))\n );\n return adoptees;\n}\n\n// src/context/ContextProviderController.ts\nvar ContextProviderController = class {\n constructor(_host, _initValue, _options) {\n this._host = _host;\n this._initValue = _initValue;\n this._options = _options;\n this._stopDisposal = new DisposalBin();\n this._value = _initValue();\n _host.addController({\n hostConnected: this.start.bind(this),\n hostDisconnected: this.stop.bind(this)\n });\n }\n get id() {\n return this._options.id;\n }\n get value() {\n return this._value;\n }\n start() {\n const dispose = listen(\n this._host,\n \"vds-context-consumer-connect\",\n this._handleConsumerConnect.bind(this)\n );\n for (const orphan of adoptOrphans(this.id, this._host)) {\n orphan.setValue(this._value);\n }\n this._stopDisposal.add(dispose);\n }\n stop() {\n this._stopDisposal.empty();\n }\n _handleConsumerConnect(event) {\n const consumer = event.detail;\n if (consumer.id !== this.id)\n return;\n event.stopImmediatePropagation();\n consumer.setValue(this._value);\n }\n};\n\n// src/context/context.ts\nfunction createContext(initValue) {\n const id = Symbol(\"@vidstack/context\");\n return {\n id,\n consume(host) {\n return new ContextConsumerController(host, initValue(), { id });\n },\n provide(host) {\n return new ContextProviderController(host, initValue, { id });\n }\n };\n}\nfunction isContext(context) {\n return typeof context?.id === \"symbol\" && context.id.description === \"@vidstack/context\";\n}\n\n// src/directives/if-non-empty.ts\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nfunction ifNonEmpty(value) {\n return ifDefined(value === \"\" || value === \"undefined\" ? void 0 : value);\n}\n\n// src/directives/if-number.ts\nimport { ifDefined as ifDefined2 } from \"lit/directives/if-defined.js\";\n\n// src/utils/unit.ts\nfunction noop(...args) {\n}\nfunction notEqual(valueA, valueB) {\n return valueB !== valueA && (valueB === valueB || valueA === valueA);\n}\nfunction safeNotEqual(a, b) {\n return a != a ? b == b : a !== b || a && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction equal(valueA, valueB) {\n return !notEqual(valueA, valueB);\n}\nfunction isNull(value) {\n return value === null;\n}\nfunction isUndefined(value) {\n return typeof value === \"undefined\";\n}\nfunction isNil(value) {\n return isNull(value) || isUndefined(value);\n}\nfunction isObject(value) {\n return value?.constructor === Object;\n}\nfunction isNumber(value) {\n return typeof value === \"number\" && !Number.isNaN(value);\n}\nfunction isString(value) {\n return typeof value === \"string\";\n}\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction createRegex(regex) {\n return isString(regex) ? new RegExp(regex) : regex;\n}\nfunction isWindow(value) {\n return value === window;\n}\n\n// src/directives/if-number.ts\nfunction ifNumber(value) {\n return ifDefined2(isNumber(value) ? value : void 0);\n}\n\n// src/elements/discovery/discover.ts\nvar discoverers = /* @__PURE__ */ new Map();\nvar discoverables = /* @__PURE__ */ new Map();\nfunction connect(discoverable2, id, onDisconnect) {\n for (const { host, callback } of Array.from(discoverers.get(id) ?? [])) {\n if (host !== discoverable2 && host.contains(discoverable2)) {\n callback(discoverable2, onDisconnect);\n }\n }\n}\nfunction find(host, id) {\n return Array.from(discoverables.get(id) ?? []).filter(\n ({ element }) => host !== element && host.contains(element)\n );\n}\nfunction discover(host, id, callback) {\n const discoverer = { host, callback };\n host.addController({\n hostConnected: () => {\n for (const { element, onDisconnect } of find(host, id)) {\n callback(element, onDisconnect);\n }\n discoverers.set(id, (discoverers.get(id) ?? /* @__PURE__ */ new Set()).add(discoverer));\n },\n hostDisconnected: () => {\n discoverers.get(id)?.delete(discoverer);\n }\n });\n}\nfunction discoverable(host, eventType, options = {}) {\n const id = options.register;\n const disconnectDisposal = new DisposalBin();\n const onDisconnect = (callback) => {\n disconnectDisposal.add(callback);\n };\n const discoverable2 = {\n element: host,\n onDisconnect\n };\n host.addController({\n hostConnected() {\n const event = vdsEvent(eventType, {\n bubbles: true,\n composed: true,\n detail: discoverable2\n });\n host.dispatchEvent(event);\n if (id) {\n discoverables.set(id, (discoverables.get(id) ?? /* @__PURE__ */ new Set()).add(discoverable2));\n connect(host, id, onDisconnect);\n }\n },\n hostDisconnected() {\n disconnectDisposal.empty();\n if (id) {\n discoverables.get(id)?.delete(discoverable2);\n }\n }\n });\n}\n\n// src/utils/support.ts\nvar IS_CLIENT = typeof window !== \"undefined\";\nvar UA = IS_CLIENT ? window.navigator?.userAgent.toLowerCase() : \"\";\nvar IS_IOS = /iphone|ipad|ipod|ios|CriOS|FxiOS/.test(UA);\nvar IS_ANDROID = /android/.test(UA);\nvar IS_MOBILE = IS_CLIENT && (IS_IOS || IS_ANDROID);\nvar IS_IPHONE = IS_CLIENT && /(iPhone|iPod)/gi.test(window.navigator?.platform);\nvar IS_FIREFOX = /firefox/.test(UA);\nvar IS_CHROME = IS_CLIENT && !!window.chrome;\nvar IS_SAFARI = IS_CLIENT && !IS_CHROME && (window.safari || IS_IOS || /(apple|safari)/.test(UA));\nvar ORIGIN = IS_CLIENT && window.location.protocol !== \"file:\" ? `${window.location.protocol}//${window.location.hostname}` : void 0;\nfunction currentSafariVersion() {\n return IS_CLIENT ? Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? [\"\", 0])[1]) : 0;\n}\nfunction canFullscreenVideo() {\n if (!IS_CLIENT)\n return false;\n const video = document.createElement(\"video\");\n return isFunction(video.webkitEnterFullscreen);\n}\nfunction canObserveIntersection() {\n return IS_CLIENT && !isUndefined(window.IntersectionObserver);\n}\nfunction canOrientScreen() {\n return IS_CLIENT && !isUndefined(screen.orientation) && isFunction(screen.orientation.lock) && isFunction(screen.orientation.unlock);\n}\nfunction canRotateScreen() {\n return IS_CLIENT && !isUndefined(window.screen.orientation) && !isUndefined(window.screen.orientation.lock);\n}\nfunction isReducedMotionPreferred() {\n return IS_CLIENT && \"matchMedia\" in window && window.matchMedia(\"(prefers-reduced-motion)\").matches;\n}\nfunction canPlayHLSNatively() {\n if (!IS_CLIENT)\n return false;\n const video = document.createElement(\"video\");\n return video.canPlayType(\"application/vnd.apple.mpegurl\").length > 0;\n}\nfunction canUsePiPInChrome() {\n if (!IS_CLIENT)\n return false;\n const video = document.createElement(\"video\");\n return !!document.pictureInPictureEnabled && !video.disablePictureInPicture;\n}\nfunction canUsePiPInSafari() {\n if (!IS_CLIENT)\n return false;\n const video = document.createElement(\"video\");\n return isFunction(video.webkitSupportsPresentationMode) && isFunction(video.webkitSetPresentationMode) && !IS_IPHONE;\n}\nfunction canUsePiP() {\n return canUsePiPInChrome() || canUsePiPInSafari();\n}\nfunction canAutoplay(muted = true, playsinline = true) {\n if (!IS_CLIENT)\n return Promise.resolve(false);\n const video = document.createElement(\"video\");\n if (muted) {\n video.setAttribute(\"muted\", \"\");\n video.muted = true;\n }\n if (playsinline) {\n video.setAttribute(\"playsinline\", \"\");\n video.setAttribute(\"webkit-playsinline\", \"\");\n }\n video.setAttribute(\"height\", \"0\");\n video.setAttribute(\"width\", \"0\");\n video.style.position = \"fixed\";\n video.style.top = \"0\";\n video.style.width = \"0\";\n video.style.height = \"0\";\n video.style.opacity = \"0\";\n new Promise((resolve) => resolve(video.play())).catch(noop);\n return Promise.resolve(!video.paused);\n}\nfunction getMediaSource() {\n return window?.MediaSource ?? window?.WebKitMediaSource;\n}\nfunction getSourceBuffer() {\n return window?.SourceBuffer ?? window?.WebKitSourceBuffer;\n}\nfunction isHlsjsSupported() {\n const mediaSource = getMediaSource();\n if (isUndefined(mediaSource)) {\n return false;\n }\n const isTypeSupported = mediaSource && isFunction(mediaSource.isTypeSupported) && mediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\n const sourceBuffer = getSourceBuffer();\n const isSourceBufferValid = isUndefined(sourceBuffer) || !isUndefined(sourceBuffer.prototype) && isFunction(sourceBuffer.prototype.appendBuffer) && isFunction(sourceBuffer.prototype.remove);\n return !!isTypeSupported && !!isSourceBufferValid;\n}\n\n// src/elements/WithFocus.ts\nvar focusableSelector = `\n ${[\n \"a[href]\",\n \"area[href]\",\n `input:not([disabled]):not([tabindex='-1'])`,\n `button:not([disabled]):not([tabindex='-1'])`,\n `select:not([disabled]):not([tabindex='-1'])`,\n `textarea:not([disabled]):not([tabindex='-1'])`,\n \"iframe\",\n \"object\",\n \"embed\",\n `*[tabindex]:not([tabindex='-1'])`,\n \"*[contenteditable=true]\",\n \"vds-fullscreen-button\",\n \"vds-mute-button\",\n \"vds-play-button\",\n \"vds-slider\",\n \"vds-time-slider\",\n \"vds-volume-slider\"\n].join(\", \")}\n`;\nfunction WithFocus(Base) {\n return class WithFocusMixin extends Base {\n static get shadowRootOptions() {\n return {\n ...Base.shadowRootOptions,\n delegatesFocus: currentSafariVersion() <= 537\n };\n }\n focus() {\n if (this.shadowRoot?.delegatesFocus) {\n super.focus();\n } else {\n const delegateTarget = this.shadowRoot?.querySelector(focusableSelector) || this.querySelector(focusableSelector);\n if (delegateTarget) {\n delegateTarget.focus();\n } else {\n super.focus();\n }\n }\n }\n };\n}\n\n// ../../node_modules/.pnpm/fscreen@1.2.0/node_modules/fscreen/dist/fscreen.esm.js\nvar key = {\n fullscreenEnabled: 0,\n fullscreenElement: 1,\n requestFullscreen: 2,\n exitFullscreen: 3,\n fullscreenchange: 4,\n fullscreenerror: 5,\n fullscreen: 6\n};\nvar webkit = [\n \"webkitFullscreenEnabled\",\n \"webkitFullscreenElement\",\n \"webkitRequestFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\",\n \"-webkit-full-screen\"\n];\nvar moz = [\n \"mozFullScreenEnabled\",\n \"mozFullScreenElement\",\n \"mozRequestFullScreen\",\n \"mozCancelFullScreen\",\n \"mozfullscreenchange\",\n \"mozfullscreenerror\",\n \"-moz-full-screen\"\n];\nvar ms = [\n \"msFullscreenEnabled\",\n \"msFullscreenElement\",\n \"msRequestFullscreen\",\n \"msExitFullscreen\",\n \"MSFullscreenChange\",\n \"MSFullscreenError\",\n \"-ms-fullscreen\"\n];\nvar document2 = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" ? window.document : {};\nvar vendor = \"fullscreenEnabled\" in document2 && Object.keys(key) || webkit[0] in document2 && webkit || moz[0] in document2 && moz || ms[0] in document2 && ms || [];\nvar fscreen = {\n requestFullscreen: function(element) {\n return element[vendor[key.requestFullscreen]]();\n },\n requestFullscreenFunction: function(element) {\n return element[vendor[key.requestFullscreen]];\n },\n get exitFullscreen() {\n return document2[vendor[key.exitFullscreen]].bind(document2);\n },\n get fullscreenPseudoClass() {\n return \":\" + vendor[key.fullscreen];\n },\n addEventListener: function(type, handler, options) {\n return document2.addEventListener(vendor[key[type]], handler, options);\n },\n removeEventListener: function(type, handler, options) {\n return document2.removeEventListener(vendor[key[type]], handler, options);\n },\n get fullscreenEnabled() {\n return Boolean(document2[vendor[key.fullscreenEnabled]]);\n },\n set fullscreenEnabled(val) {\n },\n get fullscreenElement() {\n return document2[vendor[key.fullscreenElement]];\n },\n set fullscreenElement(val) {\n },\n get onfullscreenchange() {\n return document2[(\"on\" + vendor[key.fullscreenchange]).toLowerCase()];\n },\n set onfullscreenchange(handler) {\n return document2[(\"on\" + vendor[key.fullscreenchange]).toLowerCase()] = handler;\n },\n get onfullscreenerror() {\n return document2[(\"on\" + vendor[key.fullscreenerror]).toLowerCase()];\n },\n set onfullscreenerror(handler) {\n return document2[(\"on\" + vendor[key.fullscreenerror]).toLowerCase()] = handler;\n }\n};\nvar fscreen_esm_default = fscreen;\n\n// src/logger/events.ts\nfunction logEvent(level, ...data) {\n return vdsEvent(\"vds-log\", {\n bubbles: true,\n composed: true,\n detail: {\n level,\n data\n }\n });\n}\n\n// src/logger/grouped-log.ts\nvar GROUPED_LOG_ID = Symbol(\"@vidstack/grouped-log\");\nfunction isGroupedLog(data) {\n return isObject(data) && data[GROUPED_LOG_ID] === true;\n}\nfunction groupedLog(title, parent) {\n const logs = [];\n const group = {\n [GROUPED_LOG_ID]: true,\n title,\n logs,\n log(...data) {\n logs.push({ data });\n return group;\n },\n labelledLog(label, ...data) {\n logs.push({ label, data });\n return group;\n },\n groupStart(title2) {\n return groupedLog(title2, group);\n },\n groupEnd() {\n parent?.logs.push(group);\n return parent ?? group;\n }\n };\n return group;\n}\n\n// src/logger/LogDispatcher.ts\nvar LogDispatcher = class {\n constructor(_host) {\n this._host = _host;\n }\n error(...data) {\n this._dispatch(\"error\", ...data);\n }\n warn(...data) {\n this._dispatch(\"warn\", ...data);\n }\n info(...data) {\n this._dispatch(\"info\", ...data);\n }\n debug(...data) {\n this._dispatch(\"debug\", ...data);\n }\n errorGroup(title) {\n return this._groupDispatcher(\"error\", title);\n }\n warnGroup(title) {\n return this._groupDispatcher(\"warn\", title);\n }\n infoGroup(title) {\n return this._groupDispatcher(\"info\", title);\n }\n debugGroup(title) {\n return this._groupDispatcher(\"debug\", title);\n }\n _dispatch(level, ...data) {\n this._host.dispatchEvent(logEvent(level, ...data));\n }\n _groupDispatcher(level, title, rootGroup, parentGroup) {\n const group = groupedLog(title, parentGroup);\n group.dispatch = () => {\n this._dispatch(level, rootGroup ?? group);\n };\n return {\n ...group,\n groupStart: (title2) => {\n return this._groupDispatcher(level, title2, rootGroup ?? group, group);\n }\n };\n }\n};\n\n// src/logger/log-lifecycle.ts\nfunction logElementLifecycle(_host) {\n const logger = new LogDispatcher(_host);\n _host.addController({\n hostConnected() {\n logger.debug(\"\\u{1F517} connected\");\n },\n hostUpdated() {\n logger.debug(\"\\u{1F504} updated\");\n },\n hostDisconnected() {\n logger.debug(\"\\u{1F5D1}\\uFE0F disconnected\");\n }\n });\n}\n\n// src/logger/colors.ts\nvar LOCAL_STORAGE_KEY = \"@vidstack/log-colors\";\nvar colors = getSavedColors();\nfunction getSavedColors() {\n if (IS_CLIENT && !isUndefined(window.localStorage)) {\n let colors2 = {};\n try {\n colors2 = JSON.parse(localStorage.getItem(LOCAL_STORAGE_KEY) ?? \"\");\n } catch {\n }\n return new Map(Object.entries(colors2));\n }\n return /* @__PURE__ */ new Map();\n}\nfunction getColor(key2) {\n return colors.get(key2);\n}\nfunction saveColor(key2, { color = generateColor(), overwrite = false } = {}) {\n if (!colors.has(key2) || overwrite) {\n colors.set(key2, color);\n saveColors();\n }\n}\nfunction generateColor() {\n return `hsl(${Math.random() * 360}, 55%, 70%)`;\n}\nfunction saveColors() {\n if (IS_CLIENT && !isUndefined(window.localStorage)) {\n const map = {};\n colors.forEach(function(value, key2) {\n map[key2] = value;\n });\n localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(map));\n }\n}\n\n// src/logger/LogLevel.ts\nvar LogLevelValue = Object.freeze({\n silent: 0,\n error: 1,\n warn: 2,\n info: 3,\n debug: 4\n});\nvar LogLevelColor = Object.freeze({\n silent: \"white\",\n error: \"hsl(6, 58%, 50%)\",\n warn: \"hsl(51, 58%, 50%)\",\n info: \"hsl(219, 58%, 50%)\",\n debug: \"hsl(280, 58%, 50%)\"\n});\n\n// src/utils/number.ts\nfunction round(num, decimalPlaces = 2) {\n return Number(num.toFixed(decimalPlaces));\n}\nfunction clampNumber(min, value, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction getNumberOfDecimalPlaces(num) {\n return String(num).split(\".\")[1]?.length ?? 0;\n}\n\n// src/logger/ms.ts\nvar s = 1e3;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nfunction ms2(val) {\n const msAbs = Math.abs(val);\n if (msAbs >= d) {\n return Math.round(val / d) + \"d\";\n }\n if (msAbs >= h) {\n return Math.round(val / h) + \"h\";\n }\n if (msAbs >= m) {\n return Math.round(val / m) + \"m\";\n }\n if (msAbs >= s) {\n return Math.round(val / s) + \"s\";\n }\n return round(val, 2) + \"ms\";\n}\n\n// src/logger/LogController.ts\nvar LogController = class {\n constructor(_host) {\n this._host = _host;\n this.logLevel = false ? \"warn\" : \"silent\";\n this._disposal = new DisposalBin();\n _host.addController({\n hostConnected: this._start.bind(this),\n hostDisconnected: this._stop.bind(this)\n });\n }\n _start() {\n this._disposal.add(\n listen(this._host, \"vds-log\", (event) => {\n event.stopPropagation();\n const eventTargetName = (event.path?.[0] ?? event.target).tagName.toLowerCase();\n const { level = \"warn\", data } = event.detail;\n if (LogLevelValue[this.logLevel] < LogLevelValue[level]) {\n return;\n }\n saveColor(eventTargetName);\n const hint = data?.length === 1 && isGroupedLog(data[0]) ? data[0].title : isString(data?.[0]) ? data[0] : \"\";\n console.groupCollapsed(\n `%c${level.toUpperCase()}%c ${eventTargetName}%c ${hint.slice(0, 50)}${hint.length > 50 ? \"...\" : \"\"}`,\n `background: ${LogLevelColor[level]}; color: white; padding: 1.5px 2.2px; border-radius: 2px; font-size: 11px;`,\n `color: ${getColor(eventTargetName)}; padding: 4px 0px; font-size: 11px;`,\n \"color: gray; font-size: 11px; padding-left: 4px;\"\n );\n if (data?.length === 1 && isGroupedLog(data[0])) {\n this._logGroup(level, data[0]);\n } else if (data) {\n this._log(level, ...data);\n }\n this._logTimeDiff();\n this._logStackTrace();\n console.groupEnd();\n })\n );\n }\n _stop() {\n this._lastLogTimestamp = void 0;\n this._disposal.empty();\n }\n _logGroup(level, groupedLog2) {\n console.groupCollapsed(groupedLog2.title);\n for (const log of groupedLog2.logs) {\n if (isGroupedLog(log)) {\n this._logGroup(level, log);\n } else if (\"label\" in log && !isUndefined(log.label)) {\n this._labelledLog(log.label, ...log.data);\n } else {\n this._log(level, ...log.data);\n }\n }\n console.groupEnd();\n }\n _log(level, ...data) {\n console[level](...data);\n }\n _labelledLog(label, ...data) {\n console.log(`%c${label}:`, \"color: gray\", ...data);\n }\n _logStackTrace() {\n console.groupCollapsed(\"%cStack Trace\", \"color: gray\");\n console.trace();\n console.groupEnd();\n }\n _logTimeDiff() {\n this._labelledLog(\"Time since last log\", this._getLastLogTimeDiff());\n }\n _getLastLogTimeDiff() {\n const time = performance.now();\n const diff = time - (this._lastLogTimestamp || (this._lastLogTimestamp = performance.now()));\n this._lastLogTimestamp = time;\n return ms2(diff);\n }\n};\n\n// src/fullscreen/FullscreenController.ts\nvar FullscreenController = class {\n constructor(_host, _screenOrientationController) {\n this._host = _host;\n this._screenOrientationController = _screenOrientationController;\n this._logger = false ? new LogDispatcher(this._host) : void 0;\n this._listenerDisposal = new DisposalBin();\n _host.addController({\n hostDisconnected: this._handleHostDisconnected.bind(this)\n });\n }\n async _handleHostDisconnected() {\n if (this.isFullscreen)\n await this.exitFullscreen();\n this._listenerDisposal.empty();\n }\n get isSupported() {\n return this.isSupportedNatively;\n }\n get isSupportedNatively() {\n return fscreen_esm_default.fullscreenEnabled;\n }\n get isFullscreen() {\n return this.isNativeFullscreen;\n }\n get isNativeFullscreen() {\n if (fscreen_esm_default.fullscreenElement === this._host)\n return true;\n try {\n return this._host.matches(\n fscreen_esm_default.fullscreenPseudoClass\n );\n } catch (error) {\n return false;\n }\n }\n _addFullscreenChangeEventListener(listener) {\n if (!this.isSupported)\n return noop;\n if (false) {\n this._logger?.debug(\"adding `fullscreenchange` listener\");\n }\n const dispose = listen(fscreen_esm_default, \"fullscreenchange\", listener);\n return () => {\n if (false) {\n this._logger?.debug(\"removing `fullscreenchange` listener\");\n }\n dispose();\n };\n }\n _addFullscreenErrorEventListener(listener) {\n if (!this.isSupported)\n return noop;\n if (false) {\n this._logger?.debug(\"adding `fullscreenerror` listener\");\n }\n const dispose = listen(fscreen_esm_default, \"fullscreenerror\", listener);\n return () => {\n if (false) {\n this._logger?.debug(\"removing `fullscreenerror` listener\");\n }\n dispose();\n };\n }\n async enterFullscreen() {\n if (this.isFullscreen)\n return;\n this._throwIfNoFullscreenSupport();\n if (false) {\n this._logger?.debug(\"requesting fullscreen\");\n }\n this._listenerDisposal.add(\n this._addFullscreenChangeEventListener(this._handleFullscreenChange.bind(this))\n );\n this._listenerDisposal.add(\n this._addFullscreenErrorEventListener(this._handleFullscreenError.bind(this))\n );\n const response = await this._makeEnterFullscreenRequest();\n await this._lockScreenOrientation();\n return response;\n }\n async _makeEnterFullscreenRequest() {\n return fscreen_esm_default.requestFullscreen(this._host);\n }\n _handleFullscreenChange(event) {\n if (!this.isFullscreen)\n this._listenerDisposal.empty();\n this._host.dispatchEvent(\n vdsEvent(\"vds-fullscreen-change\", {\n bubbles: true,\n composed: true,\n detail: this.isFullscreen,\n triggerEvent: event\n })\n );\n }\n _handleFullscreenError(event) {\n this._host.dispatchEvent(\n vdsEvent(\"vds-fullscreen-error\", {\n bubbles: true,\n composed: true,\n triggerEvent: event\n })\n );\n }\n async exitFullscreen() {\n if (!this.isFullscreen)\n return;\n this._throwIfNoFullscreenSupport();\n if (false) {\n this._logger?.debug(\"exiting fullscreen\");\n }\n const response = await this._makeExitFullscreenRequest();\n await this._unlockScreenOrientation();\n return response;\n }\n async _makeExitFullscreenRequest() {\n return fscreen_esm_default.exitFullscreen();\n }\n _shouldOrientScreen() {\n return this._screenOrientationController.canOrient && !isUndefined(this.screenOrientationLock);\n }\n async _lockScreenOrientation() {\n if (isUndefined(this.screenOrientationLock) || !this._shouldOrientScreen()) {\n return;\n }\n await this._screenOrientationController.lock(this.screenOrientationLock);\n }\n async _unlockScreenOrientation() {\n if (!this._shouldOrientScreen())\n return;\n await this._screenOrientationController.unlock();\n }\n _throwIfNoFullscreenSupport() {\n if (this.isSupported)\n return;\n throw Error(\"Fullscreen API is not enabled or supported in this environment.\");\n }\n};\n\n// src/observers/FocusVisibleController.ts\nvar FocusVisibleController = class {\n constructor(_host) {\n this._host = _host;\n const disposal = new DisposalBin();\n let hadKeyboardEvent = false;\n disposal.add(\n listen(document, \"pointerdown\", () => {\n hadKeyboardEvent = false;\n })\n );\n eventListener(_host, \"keydown\", (e) => {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n });\n eventListener(_host, \"focus\", (e) => {\n if (hadKeyboardEvent) {\n _host.classList.add(\"focus-visible\");\n }\n });\n eventListener(_host, \"blur\", (e) => {\n _host.classList.remove(\"focus-visible\");\n });\n _host.addController({\n hostDisconnected: () => {\n disposal.empty();\n }\n });\n }\n};\nfunction focusVisiblePolyfill(host) {\n return new FocusVisibleController(host);\n}\n\n// src/observers/IntersectionController.ts\nvar IntersectionController = class {\n constructor(_host, config = {}, _callback = () => true, _logger = false ? new LogDispatcher(_host) : void 0) {\n this._host = _host;\n this._callback = _callback;\n this._logger = _logger;\n this._skipInitial = false;\n this._unobservedUpdate = false;\n const { target, skipInitial, ...intersectionObserverInit } = config;\n this._target = target ?? void 0;\n this._skipInitial = skipInitial ?? this._skipInitial;\n if (!window.IntersectionObserver) {\n if (false) {\n _logger?.warn(`Browser does not support \\`IntersectionObserver\\`.`);\n }\n return;\n }\n this._observer = new IntersectionObserver((entries) => {\n const unobservedUpdate = this._unobservedUpdate;\n this._unobservedUpdate = false;\n if (this._skipInitial && unobservedUpdate)\n return;\n this.handleChanges(entries);\n this._host.requestUpdate();\n }, intersectionObserverInit);\n _host.addController(this);\n }\n handleChanges(entries) {\n this.value = this._callback(entries, this._observer);\n }\n hostConnected() {\n if (this._target) {\n this.observe(this._target);\n }\n }\n hostDisconnected() {\n this._disconnect();\n }\n async hostUpdated() {\n const pendingRecords = this._observer.takeRecords();\n if (pendingRecords.length) {\n this.handleChanges(pendingRecords);\n }\n }\n observe(target) {\n this._observer.observe(target);\n this._unobservedUpdate = true;\n return () => {\n this._observer.unobserve(target);\n };\n }\n _disconnect() {\n this._observer.disconnect();\n }\n};\nfunction createIntersectionController(...params) {\n return new IntersectionController(...params);\n}\n\n// src/observers/PageController.ts\nvar IS_SAFARI2 = typeof window !== \"undefined\" && typeof window.safari === \"object\" && window?.safari.pushNotification;\nvar PageController = class {\n constructor(_host, _callback, _logger = false ? new LogDispatcher(_host) : void 0) {\n this._host = _host;\n this._callback = _callback;\n this._logger = _logger;\n this._state = this._determinePageState();\n this._visibility = document.visibilityState;\n this._disposal = new DisposalBin();\n _host.addController(this);\n }\n get state() {\n return this._state;\n }\n get visibility() {\n return this._visibility;\n }\n hostConnected() {\n const pageEvents = [\"focus\", \"blur\", \"visibilitychange\", \"pageshow\", \"pagehide\"];\n this._state = this._determinePageState();\n this._visibility = document.visibilityState;\n pageEvents.forEach((pageEvent) => {\n const off = listen(window, pageEvent, this._handlePageEvent.bind(this));\n this._disposal.add(off);\n });\n if (IS_SAFARI2) {\n this._disposal.add(\n listen(window, \"beforeunload\", (event) => {\n this._safariBeforeUnloadTimeout = setTimeout(() => {\n if (!(event.defaultPrevented || event.returnValue.length > 0)) {\n this._state = \"hidden\";\n this._visibility = \"hidden\";\n this._triggerCallback();\n }\n }, 0);\n })\n );\n }\n }\n hostDisconnected() {\n this._disposal.empty();\n }\n _handlePageEvent(event) {\n if (IS_SAFARI2) {\n window.clearTimeout(this._safariBeforeUnloadTimeout);\n }\n const prevState = this._state;\n const prevVisibility = this._visibility;\n if (event.type !== \"blur\" || this.state === \"active\") {\n this._state = this._determinePageState(event);\n this._visibility = document.visibilityState == \"hidden\" ? \"hidden\" : \"visible\";\n }\n if (this.state !== prevState || this.visibility !== prevVisibility) {\n this._triggerCallback();\n }\n }\n _triggerCallback() {\n this._callback({ state: this.state, visibility: this.visibility });\n }\n _determinePageState(event) {\n if (false)\n return \"hidden\";\n if (event?.type === \"blur\" || document.visibilityState === \"hidden\") {\n return \"hidden\";\n }\n if (document.hasFocus()) {\n return \"active\";\n }\n return \"passive\";\n }\n};\n\n// src/utils/promise.ts\nfunction deferredPromise() {\n let resolve = noop;\n let reject = noop;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n}\nfunction timedPromise(promise, timeout, timeoutMsg) {\n const timer = new Promise((_, reject) => {\n const timerId = window.setTimeout(() => {\n window.clearTimeout(timerId);\n reject(timeoutMsg);\n }, timeout);\n });\n return Promise.race([promise, timer]);\n}\n\n// src/queue/RequestQueue.ts\nvar RequestQueue = class {\n constructor() {\n this._requestQueue = /* @__PURE__ */ new Map();\n this._requestKeys = [];\n this._pendingFlush = deferredPromise();\n this._isServing = false;\n }\n get isServing() {\n return this._isServing;\n }\n get size() {\n return this._requestQueue.size;\n }\n async waitForFlush() {\n if (this._isServing)\n return;\n await this._pendingFlush.promise;\n }\n queue(key2, callback) {\n if (this._isServing) {\n callback();\n return;\n }\n this._requestKeys = [...this._requestKeys.filter((k) => k !== key2), key2];\n this._requestQueue.set(key2, callback);\n }\n serve(key2) {\n this._requestQueue.get(key2)?.();\n this._requestQueue.delete(key2);\n }\n start() {\n this._flush();\n this._isServing = true;\n if (this._requestQueue.size > 0) {\n this._flush();\n }\n }\n _flush() {\n for (const requestKey of this._requestKeys) {\n this.serve(requestKey);\n }\n this._requestKeys = [];\n this._release();\n }\n _empty() {\n this._requestQueue.clear();\n }\n _release() {\n this._pendingFlush.resolve();\n this._pendingFlush = deferredPromise();\n }\n stop() {\n this._isServing = false;\n }\n destroy() {\n this.stop();\n this._empty();\n this._release();\n }\n};\n\n// src/queue/host-request-queue.ts\nfunction hostRequestQueue(host) {\n const q = new RequestQueue();\n host.addController({\n hostConnected: q.start.bind(q),\n hostDisconnected: q.destroy.bind(q)\n });\n return q;\n}\n\n// src/screen-orientation/ScreenOrientationController.ts\nvar ScreenOrientationController = class {\n constructor(_host) {\n this._host = _host;\n this._isScreenOrientationLocked = false;\n this._logger = false ? new LogDispatcher(this._host) : void 0;\n this._updateScreenOrientation();\n this._listenerDisposal = new DisposalBin();\n _host.addController({\n hostConnected: this._handleHostConnected.bind(this),\n hostDisconnected: this._handleHostDisconnected.bind(this)\n });\n }\n async _handleHostConnected() {\n this._updateScreenOrientation();\n this._addScreenOrientationEventListeners();\n }\n async _handleHostDisconnected() {\n if (this.canOrient && this._isScreenOrientationLocked)\n await this.unlock();\n this._listenerDisposal.empty();\n }\n get currentOrientation() {\n return this._screenOrientation;\n }\n get canOrient() {\n return canOrientScreen();\n }\n get isLocked() {\n return this._isScreenOrientationLocked;\n }\n async lock(lockType) {\n this._throwIfScreenOrientationUnavailable();\n if (false) {\n this._logger?.debug(\"locking screen orientation to\", lockType);\n }\n await screen.orientation.lock(lockType);\n this._isScreenOrientationLocked = true;\n this._host.dispatchEvent(\n vdsEvent(\"vds-screen-orientation-lock-change\", {\n bubbles: true,\n composed: true,\n detail: lockType\n })\n );\n }\n async unlock() {\n this._throwIfScreenOrientationUnavailable();\n if (false) {\n this._logger?.debug(\"unlocking screen orientation\");\n }\n await screen.orientation.unlock();\n this._isScreenOrientationLocked = false;\n this._host.dispatchEvent(\n vdsEvent(\"vds-screen-orientation-lock-change\", {\n bubbles: true,\n composed: true,\n detail: screen.orientation.type\n })\n );\n }\n _addScreenOrientationEventListeners() {\n if (!this.canOrient)\n return;\n this._listenerDisposal.add(this._addScreenOrientationChangeEventListener());\n }\n _addScreenOrientationChangeEventListener() {\n return listen(screen.orientation, \"change\", this._handleOrientationChange.bind(this));\n }\n _handleOrientationChange(event) {\n this._screenOrientation = window.screen.orientation.type;\n if (false) {\n this._logger?.debug(\"screen orientation changed to\", this._screenOrientation);\n }\n this._host.dispatchEvent(\n vdsEvent(\"vds-screen-orientation-change\", {\n bubbles: true,\n composed: true,\n detail: this._screenOrientation,\n triggerEvent: event\n })\n );\n }\n _updateScreenOrientation() {\n this._screenOrientation = IS_CLIENT ? window.screen?.orientation?.type : void 0;\n }\n _throwIfScreenOrientationUnavailable() {\n if (this.canOrient)\n return;\n throw Error(\"Screen orientation API is not available.\");\n }\n};\n\n// src/utils/object.ts\nfunction keysOf(obj) {\n return Object.keys(obj);\n}\nfunction pick(obj, keys) {\n return keys.reduce(\n (newObj, key2) => ({\n ...newObj,\n [key2]: obj[key2]\n }),\n {}\n );\n}\nfunction omit(obj, keys) {\n return keysOf(obj).filter((key2) => keys.indexOf(key2) < 0).reduce(\n (newObj, key2) => ({\n ...newObj,\n [key2]: obj[key2]\n }),\n {}\n );\n}\nvar hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nvar sortObjectsBy = (objects, sortKey) => objects.sort((a, b) => {\n if (a[sortKey] === b[sortKey])\n return 0;\n return a[sortKey] < b[sortKey] ? -1 : 1;\n});\n\n// src/stores/store-subscription.ts\nfunction storeSubscription(host, store, onChange) {\n let consumer;\n let unsubscribe;\n const subscribe = () => {\n unsubscribe = (consumer?.value ?? store).subscribe(onChange);\n };\n if (isContext(store)) {\n consumer = store.consume(host);\n }\n host.addController({\n hostConnected() {\n if (isContext(store)) {\n consumer.whenRegistered(subscribe);\n } else {\n subscribe();\n }\n },\n hostDisconnected() {\n unsubscribe?.();\n }\n });\n}\n\n// src/stores/stores.ts\nvar subscriberQueue = [];\nfunction readable(value, start) {\n return {\n initialValue: value,\n subscribe: writable(value, start).subscribe\n };\n}\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(newValue) {\n if (safeNotEqual(value, newValue)) {\n value = newValue;\n if (stop) {\n const runQueue = !subscriberQueue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriberQueue.push(subscriber, value);\n }\n if (runQueue) {\n for (let i = 0; i < subscriberQueue.length; i += 2) {\n subscriberQueue[i][0](subscriberQueue[i + 1]);\n }\n subscriberQueue.length = 0;\n }\n }\n }\n }\n function update(updater) {\n set(updater(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop?.();\n stop = null;\n }\n };\n }\n return { initialValue: value, set, update, subscribe };\n}\nfunction derived(stores, fn, initialValue) {\n const single = !Array.isArray(stores);\n const storesArray = single ? [stores] : stores;\n const auto = fn.length < 2;\n return readable(initialValue, (set) => {\n let initialized = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n } else {\n cleanup = isFunction(result) ? result : noop;\n }\n };\n const unsubscribers = storesArray.map(\n (store, i) => store.subscribe(\n (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (initialized) {\n sync();\n }\n },\n () => {\n pending |= 1 << i;\n }\n )\n );\n initialized = true;\n sync();\n return function stop() {\n unsubscribers.forEach((fn2) => fn2());\n cleanup();\n };\n });\n}\nfunction getStoreValue(store) {\n let value;\n store.subscribe((_) => value = _)();\n return value;\n}\n\n// src/stores/store-record.ts\nfunction storeRecordSubscription(host, store, key2, onChange) {\n if (isContext(store)) {\n const consumer = store.consume(host);\n let unsubscribe;\n const subscribe = () => {\n unsubscribe = consumer.value[key2].subscribe(onChange);\n };\n host.addController({\n hostConnected: () => {\n consumer.whenRegistered(subscribe);\n },\n hostDisconnected: () => {\n unsubscribe?.();\n }\n });\n } else {\n return storeSubscription(host, store[key2], onChange);\n }\n}\nfunction copyStoreRecords(storeRecordA, storeRecordB) {\n for (const key2 of keysOf(storeRecordA)) {\n const storeA = storeRecordA[key2];\n const storeB = storeRecordB[key2];\n if (!storeA || !storeB)\n continue;\n const valA = getStoreValue(storeA);\n const valB = getStoreValue(storeB);\n if (valA !== valB)\n storeB.set(valA);\n }\n}\nfunction unwrapStoreRecord(store) {\n return new Proxy(store, {\n get(target, key2) {\n return getStoreValue(target[key2]);\n },\n has(target, key2) {\n return Reflect.has(target, key2);\n },\n ownKeys(target) {\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(target, key2) {\n return Reflect.getOwnPropertyDescriptor(target, key2);\n }\n });\n}\n\n// src/utils/aria.ts\nfunction ariaBool(value) {\n return value ? \"true\" : \"false\";\n}\n\n// src/utils/array.ts\nfunction isScalarArrayEqual(arrayA, arrayB) {\n return arrayA.length === arrayB.length && arrayA.every((value, i) => value === arrayB[i]);\n}\nfunction filterUnique(items, key2, options = {}) {\n const seen = /* @__PURE__ */ new Set();\n return items.filter((item) => {\n if (options.removeNull && isNull(item[key2]))\n return false;\n if (options.removeUndefined && isUndefined(item[key2]))\n return false;\n const isUnique = !seen.has(item[key2]);\n if (!isUnique) {\n options.onDuplicateFound?.(item);\n }\n seen.add(item[key2]);\n return isUnique;\n });\n}\n\n// src/utils/dom.ts\nfunction raf(callback) {\n return new Promise((resolve) => {\n const rafId = window.requestAnimationFrame(async () => {\n await callback?.();\n resolve(rafId);\n });\n });\n}\nfunction walkUpDOMTree(node, onDiscover) {\n let parent = node.parentElement;\n while (parent) {\n const skip = onDiscover(parent);\n parent = skip ? null : parent.parentElement;\n }\n}\nfunction buildExportPartsAttr(parts, prefix) {\n return parts.map(\n (part) => `${part}: ${!isFunction(prefix) ? prefix ? `${prefix}-` : \"\" : prefix(part)}${part}`\n ).join(\", \");\n}\nfunction safelyDefineCustomElement(name, constructor, isClient = IS_CLIENT) {\n const isElementRegistered = isClient && !isUndefined(window.customElements.get(name));\n if (!isClient || isElementRegistered)\n return;\n window.customElements.define(name, constructor);\n}\nfunction setAttribute(element, attrName, attrValue) {\n if (isNil(attrValue) || attrValue === false) {\n element.removeAttribute(attrName);\n } else {\n const value = isString(attrValue) ? attrValue : \"\";\n element.setAttribute(attrName, value);\n }\n}\nfunction setAttributeIfEmpty(element, attrName, attrValue) {\n if (!element.hasAttribute(attrName)) {\n element.setAttribute(attrName, attrValue);\n }\n}\nfunction setCSSProperty(element, name, value, prefix = \"vds\") {\n element.style.setProperty(`--${prefix}-${name}`, value ? value : null);\n}\nfunction getSlottedChildren(el, name) {\n const selector = name ? `slot[name=\"${name}\"]` : \"slot:not([name])\";\n const slot = el.shadowRoot?.querySelector(selector);\n const childNodes = slot?.assignedNodes({ flatten: true }) ?? [];\n return Array.prototype.filter.call(childNodes, (node) => node.nodeType == Node.ELEMENT_NODE);\n}\nfunction getElementAttributes(elementCtor) {\n return new Set(elementCtor.observedAttributes);\n}\nfunction observeAttributes(element, attributes, onChange, { skipInitial = false } = {}) {\n const callback = (attrName) => {\n const attrValue = element.getAttribute(attrName);\n onChange?.(attrName, attrValue);\n };\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === \"attributes\") {\n callback(mutation.attributeName);\n }\n }\n });\n if (!skipInitial) {\n for (const attrName of attributes) {\n callback(attrName);\n }\n }\n observer.observe(element, {\n attributeFilter: Array.from(attributes)\n });\n return observer;\n}\nfunction requestIdleCallback(callback) {\n if (false) {\n callback();\n return;\n }\n const idle = window.requestIdleCallback ?? ((fn) => fn());\n if (document.readyState === \"complete\") {\n idle(callback);\n } else {\n window.addEventListener(\n \"load\",\n () => {\n idle(callback);\n },\n { once: true }\n );\n }\n}\n\n// src/utils/keyboard.ts\nfunction isKeyboardEvent(event) {\n return event?.type.startsWith(\"key\") ?? false;\n}\nfunction wasEnterKeyPressed(event) {\n return isKeyboardEvent(event) && event.key === \"Enter\";\n}\nfunction wasEscapeKeyPressed(event) {\n return isKeyboardEvent(event) && event.key === \"Escape\";\n}\nfunction isKeyboardClick(event) {\n return isKeyboardEvent(event) && (event.key === \"Enter\" || event.key === \" \");\n}\n\n// src/utils/network.ts\nfunction tryParseJSON(json) {\n if (!isString(json))\n return void 0;\n try {\n return JSON.parse(json);\n } catch (error) {\n return void 0;\n }\n}\nfunction isObjOrJSON(value) {\n return isString(value) && value.startsWith(\"{\") || isObject(value);\n}\nfunction objOrParseJSON(value) {\n return isObject(value) ? value : tryParseJSON(value);\n}\nfunction loadImage(src, minWidth = 1) {\n return new Promise((resolve, reject) => {\n const image = new Image();\n const handler = () => {\n image.naturalWidth >= minWidth ? resolve(image) : reject(image);\n };\n Object.assign(image, { onload: handler, onerror: handler, src });\n });\n}\nasync function loadScript(src) {\n const hasLoaded = document.querySelector(`script[src=\"${src}\"]`);\n if (!isNull(hasLoaded))\n return;\n const script = document.createElement(\"script\");\n const load = deferredPromise();\n script.src = src;\n script.onload = load.resolve;\n script.onerror = load.reject;\n const firstScriptTag = document.getElementsByTagName(\"script\")[0];\n if (!isNil(firstScriptTag.parentNode)) {\n firstScriptTag.parentNode.insertBefore(script, firstScriptTag);\n }\n return load.promise;\n}\nfunction decodeJSON(data) {\n if (!isObjOrJSON(data))\n return void 0;\n return objOrParseJSON(data);\n}\nfunction tryDecodeURIComponent(component, fallback = \"\", isClient = IS_CLIENT) {\n if (!isClient)\n return fallback;\n try {\n return window.decodeURIComponent(component);\n } catch (error) {\n return fallback;\n }\n}\nvar QUERY_STRING_REGEX = /(?:^[#?]?|&)([^=&]+)(?:=([^&]*))?/g;\nfunction parseQueryString(qs) {\n const params = /* @__PURE__ */ Object.create(null);\n if (isUndefined(qs))\n return params;\n let match;\n while (match = QUERY_STRING_REGEX.exec(qs)) {\n const name = tryDecodeURIComponent(match[1], match[1]).replace(\"[]\", \"\");\n const value = isString(match[2]) ? tryDecodeURIComponent(match[2].replace(/\\+/g, \" \"), match[2]) : \"\";\n const currValue = params[name];\n if (currValue && !isArray(currValue))\n params[name] = [currValue];\n currValue ? params[name].push(value) : params[name] = value;\n }\n return params;\n}\nfunction serializeQueryString(params) {\n const qs = [];\n const appendQueryParam = (param, v) => {\n qs.push(`${encodeURIComponent(param)}=${encodeURIComponent(v)}`);\n };\n Object.keys(params).forEach((param) => {\n const value = params[param];\n if (isNil(value))\n return;\n if (isArray(value)) {\n value.forEach((v) => appendQueryParam(param, v));\n } else {\n appendQueryParam(param, value);\n }\n });\n return qs.join(\"&\");\n}\nfunction preconnect(url, rel = \"preconnect\", isClient = IS_CLIENT) {\n if (!isClient)\n return false;\n const hasLink = document.querySelector(`link[href=\"${url}\"]`);\n if (!isNull(hasLink))\n return true;\n const link = document.createElement(\"link\");\n link.rel = rel;\n link.href = url;\n link.crossOrigin = \"true\";\n document.head.append(link);\n return true;\n}\nfunction appendQueryStringToURL(url, qs) {\n if (isUndefined(qs) || qs.length === 0)\n return url;\n const mainAndQuery = url.split(\"?\", 2);\n return mainAndQuery[0] + (!isUndefined(mainAndQuery[1]) ? `?${mainAndQuery[1]}&${qs}` : `?${qs}`);\n}\nfunction appendParamsToURL(url, params) {\n return appendQueryStringToURL(url, isObject(params) ? serializeQueryString(params) : params);\n}\nfunction decodeQueryString(qs) {\n if (!isString(qs))\n return void 0;\n return parseQueryString(qs);\n}\nvar ScriptLoader = class {\n static async load(src) {\n return new Promise((resolve, reject) => {\n if (this.pendingRequests[src]) {\n this.pendingRequests[src].push({ resolve, reject });\n return;\n }\n this.pendingRequests[src] = [{ resolve, reject }];\n loadScript(src).then(() => {\n this.pendingRequests[src].forEach((request) => request.resolve());\n delete this.pendingRequests[src];\n }).catch((err) => {\n this.pendingRequests[src].forEach((request) => request.reject(err));\n delete this.pendingRequests[src];\n });\n });\n }\n};\nScriptLoader.pendingRequests = {};\n\n// src/utils/scroll.ts\nfunction hideDocumentScrollbar(hidden) {\n window.requestAnimationFrame(() => {\n document.documentElement.classList[hidden ? \"add\" : \"remove\"](\"overflow-hidden\");\n document.documentElement.classList[!hidden ? \"add\" : \"remove\"](\"overflow-x-hidden\");\n });\n}\nfunction scrollIntoCenter(scroll, element, options = {}) {\n const scrollTop = isWindow(scroll) ? window.pageYOffset : scroll.scrollTop;\n const scrollHeight = isWindow(scroll) ? window.innerHeight : scroll.getBoundingClientRect().height;\n const elementRect = element.getBoundingClientRect();\n const center = elementRect.top + scrollTop - scrollHeight / 2;\n scroll.scrollTo({\n top: center + (options?.offset ?? 0),\n behavior: options.behaviour\n });\n}\n\n// src/utils/string.ts\nvar escapeQuotes = (str) => str.replace(/^\"+|\"+$/g, \"\").replace(/^'+|'+$/g, \"\");\nvar normalizeLineBreaks = (str) => str.replace(/\\\\r/g, \"\\n\");\nfunction splitLineBreaks(str) {\n if (typeof str !== \"string\")\n return [];\n return normalizeLineBreaks(str).split(\"\\n\");\n}\nfunction uppercaseFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction lowercaseFirstLetter(str) {\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\nfunction kebabToTitleCase(str) {\n return uppercaseFirstLetter(str.replace(/-./g, (x) => \" \" + x[1].toUpperCase()));\n}\nfunction camelToKebabCase(str) {\n return str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nfunction kebabToCamelCase(str) {\n return str.replace(/-./g, (x) => x[1].toUpperCase());\n}\nfunction kebabToPascalCase(str) {\n return kebabToTitleCase(str).replace(/\\s/g, \"\");\n}\nfunction camelToTitleCase(str) {\n return uppercaseFirstLetter(str.replace(/([A-Z])/g, \" $1\"));\n}\n\n// src/utils/time.ts\nfunction padNumberWithZeroes(num, expectedLength) {\n const str = String(num);\n const actualLength = str.length;\n const shouldPad = actualLength < expectedLength;\n if (shouldPad) {\n const padLength = expectedLength - actualLength;\n const padding = `0`.repeat(padLength);\n return `${padding}${num}`;\n }\n return str;\n}\nvar TimeUnit = /* @__PURE__ */ ((TimeUnit2) => {\n TimeUnit2[\"Hours\"] = \"hours\";\n TimeUnit2[\"Minutes\"] = \"minutes\";\n TimeUnit2[\"Seconds\"] = \"seconds\";\n TimeUnit2[\"Fraction\"] = \"fraction\";\n return TimeUnit2;\n})(TimeUnit || {});\nfunction parseTime(duration) {\n const hours = Math.trunc(duration / 3600);\n const minutes = Math.trunc(duration % 3600 / 60);\n const seconds = Math.trunc(duration % 60);\n const fraction = Number((duration - Math.trunc(duration)).toPrecision(3));\n return {\n [\"hours\" /* Hours */]: hours,\n [\"minutes\" /* Minutes */]: minutes,\n [\"seconds\" /* Seconds */]: seconds,\n [\"fraction\" /* Fraction */]: fraction\n };\n}\nfunction formatTime(duration, shouldPadHours = false, shouldAlwaysShowHours = false) {\n const { hours, minutes, seconds } = parseTime(duration);\n const paddedHours = shouldPadHours ? padNumberWithZeroes(hours, 2) : hours;\n const paddedMinutes = padNumberWithZeroes(minutes, 2);\n const paddedSeconds = padNumberWithZeroes(seconds, 2);\n if (hours > 0 || shouldAlwaysShowHours) {\n return `${paddedHours}:${paddedMinutes}:${paddedSeconds}`;\n }\n return `${minutes}:${paddedSeconds}`;\n}\nfunction formatSpokenTime(duration) {\n const spokenParts = [];\n const { hours, minutes, seconds } = parseTime(duration);\n const pluralize = (num, word) => num === 1 ? word : `${word}s`;\n if (hours > 0) {\n spokenParts.push(`${hours} ${pluralize(hours, \"hour\")}`);\n }\n if (minutes > 0) {\n spokenParts.push(`${minutes} ${pluralize(minutes, \"minute\")}`);\n }\n if (seconds > 0 || spokenParts.length === 0) {\n spokenParts.push(`${seconds} ${pluralize(seconds, \"second\")}`);\n }\n return spokenParts.join(\", \");\n}\nfunction formatHtml5Duration(duration) {\n const { hours, minutes, seconds, fraction } = parseTime(duration);\n return `PT${hours}H${minutes}M${seconds + fraction}S`;\n}\n\n// src/utils/timing.ts\nimport debounce from \"just-debounce-it\";\nimport throttle from \"just-throttle\";\nfunction wait(delay) {\n return new Promise((resolve) => setTimeout(resolve, delay));\n}\nfunction rafThrottle(func) {\n let rafId;\n const pending = () => !isUndefined(rafId);\n const cancel = () => {\n if (isUndefined(rafId))\n return;\n window.cancelAnimationFrame(rafId);\n rafId = void 0;\n };\n function throttled(...args) {\n if (pending())\n return;\n rafId = window.requestAnimationFrame(() => {\n func.apply(this, args);\n rafId = void 0;\n });\n }\n throttled.cancel = cancel;\n throttled.pending = pending;\n return throttled;\n}\nexport {\n ContextConsumerController,\n ContextProviderController,\n DisposalBin,\n FocusVisibleController,\n FullscreenController,\n GROUPED_LOG_ID,\n IS_ANDROID,\n IS_CHROME,\n IS_CLIENT,\n IS_FIREFOX,\n IS_IOS,\n IS_IPHONE,\n IS_MOBILE,\n IS_SAFARI,\n IntersectionController,\n LogController,\n LogDispatcher,\n LogLevelColor,\n LogLevelValue,\n ORIGIN,\n PageController,\n RequestQueue,\n ScreenOrientationController,\n ScriptLoader,\n TimeUnit,\n UA,\n VdsEvent,\n WithFocus,\n adoptOrphans,\n appendParamsToURL,\n appendQueryStringToURL,\n appendTriggerEvent,\n ariaBool,\n buildExportPartsAttr,\n camelToKebabCase,\n camelToTitleCase,\n canAutoplay,\n canFullscreenVideo,\n canObserveIntersection,\n canOrientScreen,\n canPlayHLSNatively,\n canRotateScreen,\n canUsePiP,\n canUsePiPInChrome,\n canUsePiPInSafari,\n clampNumber,\n copyStoreRecords,\n createContext,\n createIntersectionController,\n createRegex,\n currentSafariVersion,\n debounce,\n decodeJSON,\n decodeQueryString,\n deferredPromise,\n derived,\n discover,\n discoverable,\n equal,\n escapeQuotes,\n eventListener,\n filterUnique,\n findTriggerEvent,\n focusVisiblePolyfill,\n focusableSelector,\n formatHtml5Duration,\n formatSpokenTime,\n formatTime,\n getStoreValue as get,\n getElementAttributes,\n getMediaSource,\n getNumberOfDecimalPlaces,\n getOriginEvent,\n getSlottedChildren,\n getSourceBuffer,\n groupedLog,\n hasOwnProperty,\n hasTriggerEvent,\n hideDocumentScrollbar,\n hostRequestQueue,\n ifNonEmpty,\n ifNumber,\n isArray,\n isBoolean,\n isContext,\n isFunction,\n isGroupedLog,\n isHlsjsSupported,\n isKeyboardClick,\n isKeyboardEvent,\n isMouseEvent,\n isNil,\n isNull,\n isNumber,\n isObjOrJSON,\n isObject,\n isPointerEvent,\n isReducedMotionPreferred,\n isScalarArrayEqual,\n isString,\n isTouchEvent,\n isUndefined,\n isVdsEvent,\n isWindow,\n kebabToCamelCase,\n kebabToPascalCase,\n kebabToTitleCase,\n keysOf,\n listen,\n loadImage,\n loadScript,\n logElementLifecycle,\n logEvent,\n lowercaseFirstLetter,\n noop,\n normalizeLineBreaks,\n notEqual,\n objOrParseJSON,\n observeAttributes,\n omit,\n padNumberWithZeroes,\n parseQueryString,\n parseTime,\n pick,\n preconnect,\n raf,\n rafThrottle,\n readable,\n redispatchEvent,\n requestIdleCallback,\n round,\n safeNotEqual,\n safelyDefineCustomElement,\n scrollIntoCenter,\n serializeQueryString,\n setAttribute,\n setAttributeIfEmpty,\n setCSSProperty,\n sortObjectsBy,\n splitLineBreaks,\n storeRecordSubscription,\n storeSubscription,\n throttle,\n timedPromise,\n tryDecodeURIComponent,\n tryParseJSON,\n unwrapStoreRecord,\n uppercaseFirstLetter,\n vdsEvent,\n wait,\n waitForEvent,\n walkTriggerEventChain,\n walkUpDOMTree,\n wasEnterKeyPressed,\n wasEscapeKeyPressed,\n writable\n};\n","// src/media/provider/media-provider-context.ts\nimport { createContext, writable } from \"@vidstack/foundation\";\nvar mediaProviderElementContext = createContext(\n () => writable(void 0)\n);\n\nexport {\n mediaProviderElementContext\n};\n","// src/media/MediaType.ts\nvar MediaType = /* @__PURE__ */ ((MediaType2) => {\n MediaType2[\"Unknown\"] = \"unknown\";\n MediaType2[\"Audio\"] = \"audio\";\n MediaType2[\"Video\"] = \"video\";\n MediaType2[\"LiveVideo\"] = \"live-video\";\n return MediaType2;\n})(MediaType || {});\n\n// src/media/ViewType.ts\nvar ViewType = /* @__PURE__ */ ((ViewType2) => {\n ViewType2[\"Unknown\"] = \"unknown\";\n ViewType2[\"Audio\"] = \"audio\";\n ViewType2[\"Video\"] = \"video\";\n return ViewType2;\n})(ViewType || {});\n\n// src/media/store.ts\nimport {\n createContext,\n keysOf,\n storeRecordSubscription,\n writable\n} from \"@vidstack/foundation\";\n\n// src/media/time-ranges.ts\nimport { isArray, isNumber, isUndefined } from \"@vidstack/foundation\";\nfunction rangeCheck(fnName, index, maxIndex) {\n if (!isNumber(index) || index < 0 || index > maxIndex) {\n throw new Error(\n `Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is non-numeric or out of bounds (0-${maxIndex}).`\n );\n }\n}\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\nfunction createTimeRangesObj(ranges) {\n if (isUndefined(ranges) || ranges.length === 0) {\n const throwEmptyError = () => {\n throw new Error(\"This TimeRanges object is empty\");\n };\n return {\n length: 0,\n start: throwEmptyError,\n end: throwEmptyError\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, \"start\", 0, ranges),\n end: getRange.bind(null, \"end\", 1, ranges)\n };\n}\nfunction createTimeRanges(start, end) {\n if (isArray(start)) {\n return createTimeRangesObj(start);\n } else if (isUndefined(start) || isUndefined(end)) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\n// src/media/store.ts\nvar MEDIA_STORE_DEFAULTS = {\n autoplay: false,\n autoplayError: void 0,\n buffered: createTimeRanges(),\n duration: 0,\n bufferedAmount: 0,\n canLoad: false,\n canPlay: false,\n canFullscreen: false,\n controls: false,\n poster: \"\",\n currentSrc: \"\",\n currentTime: 0,\n ended: false,\n error: void 0,\n fullscreen: false,\n userIdle: false,\n loop: false,\n mediaType: \"unknown\" /* Unknown */,\n muted: false,\n paused: true,\n played: createTimeRanges(),\n playing: false,\n playsinline: false,\n seekable: createTimeRanges(),\n seekableAmount: 0,\n seeking: false,\n src: [],\n started: false,\n viewType: \"unknown\" /* Unknown */,\n volume: 1,\n waiting: false\n};\nfunction createMediaStore() {\n const store = {};\n for (const prop of keysOf(MEDIA_STORE_DEFAULTS)) {\n store[prop] = writable(MEDIA_STORE_DEFAULTS[prop]);\n }\n return store;\n}\nvar DO_NOT_RESET_ON_SRC_CHANGE = /* @__PURE__ */ new Set([\n \"autoplay\",\n \"canFullscreen\",\n \"canLoad\",\n \"controls\",\n \"currentSrc\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"poster\",\n \"src\",\n \"viewType\",\n \"volume\"\n]);\nfunction softResetMediaStore(store) {\n keysOf(store).forEach((prop) => {\n if (!DO_NOT_RESET_ON_SRC_CHANGE.has(prop)) {\n store[prop].set(store[prop].initialValue);\n }\n });\n}\nfunction resetMediaStore(store) {\n for (const prop of keysOf(MEDIA_STORE_DEFAULTS)) {\n store[prop].set(MEDIA_STORE_DEFAULTS[prop]);\n }\n}\nvar mediaStoreContext = createContext(createMediaStore);\nfunction mediaStoreSubscription(host, property, onChange) {\n return storeRecordSubscription(host, mediaStoreContext, property, onChange);\n}\n\nexport {\n MediaType,\n ViewType,\n MEDIA_STORE_DEFAULTS,\n createMediaStore,\n softResetMediaStore,\n resetMediaStore,\n mediaStoreContext,\n mediaStoreSubscription\n};\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\n\nexport {\n __decorateClass\n};\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","import {\n createMediaStore\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/media/provider/MediaProviderElement.ts\nimport {\n clampNumber,\n copyStoreRecords,\n createIntersectionController,\n discoverable,\n DisposalBin,\n FullscreenController,\n hostRequestQueue,\n isUndefined,\n raf,\n requestIdleCallback,\n RequestQueue,\n ScreenOrientationController,\n unwrapStoreRecord,\n vdsEvent\n} from \"@vidstack/foundation\";\nimport { html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nvar mediaProviderDiscoveryId = Symbol(\"@vidstack/media-provider-discovery\");\nvar MediaProviderElement = class extends LitElement {\n constructor() {\n super();\n this._disconnectDisposal = new DisposalBin();\n this._logger = false ? new LogDispatcher(this) : void 0;\n this.loading = \"visible\";\n this._attemptingAutoplay = false;\n this.controllerQueue = new RequestQueue();\n this._store = createMediaStore();\n this._state = unwrapStoreRecord(this._store);\n this.connectedQueue = hostRequestQueue(this);\n this.mediaQueue = new RequestQueue();\n this.screenOrientationController = new ScreenOrientationController(this);\n this.fullscreenController = new FullscreenController(this, this.screenOrientationController);\n discoverable(this, \"vds-media-provider-connect\", { register: mediaProviderDiscoveryId });\n const intersectionController = createIntersectionController(\n this,\n { target: this, threshold: 0 },\n (entries) => {\n if (!/(visible|lazy)/.test(this.loading)) {\n intersectionController.hostDisconnected();\n return;\n }\n if (entries[0]?.isIntersecting) {\n this.startLoadingMedia();\n intersectionController.hostDisconnected();\n }\n }\n );\n }\n connectedCallback() {\n super.connectedCallback();\n this._logMediaEvents();\n window.requestAnimationFrame(() => {\n if (isUndefined(this.canLoadPoster)) {\n this.canLoadPoster = true;\n }\n });\n }\n firstUpdated(changedProperties) {\n super.firstUpdated(changedProperties);\n this.dispatchEvent(\n vdsEvent(\"vds-fullscreen-support-change\", {\n detail: this.canFullscreen\n })\n );\n if (this.canLoad || this.loading === \"eager\") {\n window?.requestAnimationFrame(() => {\n this.startLoadingMedia();\n });\n } else if (this.loading === \"idle\") {\n requestIdleCallback(() => {\n this.startLoadingMedia();\n });\n }\n }\n render() {\n return html`<slot @slotchange=\"${this.handleDefaultSlotChange}\"></slot>`;\n }\n disconnectedCallback() {\n this._updateMediaStoreOnDisconnect(this._store);\n this.mediaQueue.destroy();\n this._disconnectDisposal.empty();\n super.disconnectedCallback();\n raf(() => {\n raf(() => {\n if (!this.isConnected)\n this.destroy();\n });\n });\n }\n _updateMediaStoreOnDisconnect(store) {\n store.paused.set(true);\n store.playing.set(false);\n store.seeking.set(false);\n store.waiting.set(false);\n store.fullscreen.set(false);\n }\n destroy() {\n if (this.isConnected)\n this.disconnectedCallback();\n this.dispatchEvent(vdsEvent(\"vds-destroy\"));\n }\n _logMediaEvents() {\n if (false) {\n const mediaEvents = [\n \"vds-abort\",\n \"vds-can-play\",\n \"vds-can-play-through\",\n \"vds-current-src-change\",\n \"vds-duration-change\",\n \"vds-emptied\",\n \"vds-ended\",\n \"vds-error\",\n \"vds-fullscreen-change\",\n \"vds-loaded-data\",\n \"vds-loaded-metadata\",\n \"vds-load-start\",\n \"vds-media-type-change\",\n \"vds-pause\",\n \"vds-play\",\n \"vds-playing\",\n \"vds-progress\",\n \"vds-seeked\",\n \"vds-seeking\",\n \"vds-stalled\",\n \"vds-started\",\n \"vds-suspend\",\n \"vds-replay\",\n \"vds-view-type-change\",\n \"vds-volume-change\",\n \"vds-waiting\"\n ];\n mediaEvents.forEach((eventType) => {\n const dispose = listen(this, eventType, (event) => {\n this._logger?.infoGroup(`\\u{1F4E1} dispatching \\`${eventType}\\``).labelledLog(\"State\", { ...this.state }).labelledLog(\"Event\", event).dispatch();\n });\n this._disconnectDisposal.add(dispose);\n });\n }\n }\n get volume() {\n return this._getVolume();\n }\n set volume(newVolume) {\n this.mediaQueue.queue(\"volume\", () => {\n const oldVol = this.volume;\n const newVol = clampNumber(0, newVolume, 1);\n if (oldVol !== newVol) {\n this._setVolume(newVol);\n this.requestUpdate(\"volume\", oldVol);\n }\n });\n }\n get paused() {\n return this._getPaused();\n }\n set paused(newPaused) {\n this.mediaQueue.queue(\"paused\", () => {\n if (this.paused === newPaused)\n return;\n try {\n if (!newPaused) {\n this.play();\n } else {\n this.pause();\n }\n this.requestUpdate(\"paused\", !newPaused);\n } catch (e) {\n this._logger?.error(\"paused-change-fail\", e);\n }\n });\n }\n get currentTime() {\n return this._getCurrentTime();\n }\n set currentTime(newTime) {\n this.mediaQueue.queue(\"current-time\", () => {\n const oldTime = this.currentTime;\n if (oldTime !== newTime) {\n this._setCurrentTime(newTime);\n this.requestUpdate(\"currentTime\", oldTime);\n }\n });\n }\n get muted() {\n return this._getMuted();\n }\n set muted(newMuted) {\n this.mediaQueue.queue(\"muted\", () => {\n const oldMuted = this.muted;\n if (oldMuted !== newMuted) {\n this._setMuted(newMuted);\n this.requestUpdate(\"muted\", oldMuted);\n }\n });\n }\n get poster() {\n return this.state.poster;\n }\n set poster(newPoster) {\n const oldPoster = this.poster;\n if (oldPoster !== newPoster) {\n this.dispatchEvent(vdsEvent(\"vds-poster-change\", { detail: newPoster }));\n this.requestUpdate(\"poster\", oldPoster);\n }\n }\n get loop() {\n return this.state.loop;\n }\n set loop(newLoop) {\n const oldLoop = this.loop;\n if (oldLoop !== newLoop) {\n this.dispatchEvent(vdsEvent(\"vds-loop-change\", { detail: newLoop }));\n this.requestUpdate(\"loop\", oldLoop);\n }\n }\n get controls() {\n return this.state.controls;\n }\n set controls(newControls) {\n const oldControls = this.controls;\n if (oldControls !== newControls) {\n this.dispatchEvent(vdsEvent(\"vds-controls-change\", { detail: newControls }));\n this.requestUpdate(\"controls\", oldControls);\n }\n }\n get canLoad() {\n return this.state.canLoad;\n }\n startLoadingMedia() {\n if (this.state.canPlay)\n return;\n this.dispatchEvent(vdsEvent(\"vds-can-load\"));\n }\n _throwIfNotReadyForPlayback() {\n if (!this.state.canPlay) {\n throw Error(`Media is not ready - wait for \\`vds-can-play\\` event.`);\n }\n }\n async _resetPlaybackIfEnded() {\n if (!this.state.ended || this.state.currentTime === 0)\n return;\n return this._setCurrentTime(0);\n }\n _throwIfNotVideoView() {\n if (this.state.viewType !== \"video\" /* Video */) {\n throw Error(\"Player is currently not in a video view.\");\n }\n }\n async _handleMediaReady({ event, duration }) {\n if (this.state.canPlay)\n return;\n this.dispatchEvent(\n vdsEvent(\"vds-can-play\", {\n triggerEvent: event,\n detail: { duration }\n })\n );\n this.mediaQueue.start();\n if (false) {\n this._logger?.infoGroup(\"-~-~-~-~-~-~-~-~- \\u2705 MEDIA READY -~-~-~-~-~-~-~-~-\").labelledLog(\"State\", { ...this.state }).labelledLog(\"Event\", event).dispatch();\n }\n await this._attemptAutoplay();\n }\n _handleCurrentSrcChange(currentSrc, triggerEvent) {\n if (this.state.currentSrc === currentSrc)\n return;\n if (false) {\n this._logger?.infoGroup(\"\\u{1F4FC} Media source change\").labelledLog(\"Src\", this.state.src).labelledLog(\"Current Src\", currentSrc).dispatch();\n }\n this.mediaQueue.stop();\n this.dispatchEvent(\n vdsEvent(\"vds-current-src-change\", {\n detail: currentSrc,\n triggerEvent\n })\n );\n }\n get autoplay() {\n return this.state.autoplay;\n }\n set autoplay(newAutoplay) {\n if (this.autoplay !== newAutoplay) {\n this.dispatchEvent(vdsEvent(\"vds-autoplay-change\", { detail: newAutoplay }));\n this.requestUpdate(\"autoplay\", !newAutoplay);\n }\n this._attemptAutoplay();\n }\n get _canAttemptAutoplay() {\n return this.state.canPlay && this.state.autoplay && !this.state.started;\n }\n async _attemptAutoplay() {\n if (!this._canAttemptAutoplay)\n return;\n this._attemptingAutoplay = true;\n try {\n await this.play();\n this.dispatchEvent(vdsEvent(\"vds-autoplay\", { detail: { muted: this.muted } }));\n } catch (error) {\n this.dispatchEvent(\n vdsEvent(\"vds-autoplay-fail\", {\n detail: {\n muted: this.muted,\n error\n }\n })\n );\n this.requestUpdate();\n }\n this._attemptingAutoplay = false;\n }\n get controller() {\n return this._controller;\n }\n get logLevel() {\n return this._controller?.logLevel ?? \"silent\";\n }\n set logLevel(level) {\n if (false) {\n this.controllerQueue.queue(\"log-level\", () => {\n this._controller.logLevel = level;\n });\n }\n }\n get idleDelay() {\n return this._controller?.idleDelay ?? 0;\n }\n set idleDelay(delay) {\n this.controllerQueue.queue(\"idle-delay\", () => {\n this._controller.idleDelay = delay;\n });\n }\n attachMediaController(controller, onDisconnect) {\n this._controller = controller;\n this._store = controller._store;\n this._state = controller.state;\n this.controllerQueue.start();\n onDisconnect(() => {\n this.controllerQueue.destroy();\n this._store = createMediaStore();\n this._state = unwrapStoreRecord(this._store);\n if (this._controller) {\n copyStoreRecords(this._controller._store, this._store);\n this._updateMediaStoreOnDisconnect(this._controller._store);\n }\n this._controller = void 0;\n });\n }\n dispatchEvent(event) {\n if (!this._controller && event.type.startsWith(\"vds-\") && event.type !== \"vds-destroy\") {\n this.controllerQueue.queue(event.type, () => {\n super.dispatchEvent(event);\n });\n return false;\n }\n return super.dispatchEvent(event);\n }\n store() {\n return this._store;\n }\n get state() {\n return this._state;\n }\n get canFullscreen() {\n return this.fullscreenController.isSupported;\n }\n get fullscreen() {\n return this.fullscreenController.isFullscreen;\n }\n get fullscreenOrientation() {\n return this.fullscreenController.screenOrientationLock;\n }\n set fullscreenOrientation(lockType) {\n const prevLockType = this.fullscreenController.screenOrientationLock;\n if (prevLockType !== lockType) {\n this.fullscreenController.screenOrientationLock = lockType;\n this.requestUpdate(\"fullscreen-orientation\", prevLockType);\n }\n }\n enterFullscreen() {\n return this.fullscreenController.enterFullscreen();\n }\n exitFullscreen() {\n return this.fullscreenController.exitFullscreen();\n }\n};\n__decorateClass([\n property({ type: Number })\n], MediaProviderElement.prototype, \"volume\", 1);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"paused\", 1);\n__decorateClass([\n property({ type: Number })\n], MediaProviderElement.prototype, \"currentTime\", 1);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"muted\", 1);\n__decorateClass([\n property()\n], MediaProviderElement.prototype, \"poster\", 1);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"loop\", 1);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"controls\", 1);\n__decorateClass([\n state()\n], MediaProviderElement.prototype, \"canLoadPoster\", 2);\n__decorateClass([\n property({ attribute: \"loading\" })\n], MediaProviderElement.prototype, \"loading\", 2);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"autoplay\", 1);\n__decorateClass([\n property({ attribute: \"log-level\" })\n], MediaProviderElement.prototype, \"logLevel\", 1);\n__decorateClass([\n property({ attribute: \"idle-delay\", type: Number })\n], MediaProviderElement.prototype, \"idleDelay\", 1);\n__decorateClass([\n property({ attribute: \"fullscreen-orientation\" })\n], MediaProviderElement.prototype, \"fullscreenOrientation\", 1);\n\nexport {\n mediaProviderDiscoveryId,\n MediaProviderElement\n};\n","import {\n mediaProviderElementContext\n} from \"./chunk.APMKZUJJ.js\";\nimport {\n mediaProviderDiscoveryId\n} from \"./chunk.63VUN3OP.js\";\nimport {\n mediaStoreContext,\n mediaStoreSubscription,\n resetMediaStore,\n softResetMediaStore\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/media/controller/UserIdleController.ts\nimport { DisposalBin, listen, vdsEvent } from \"@vidstack/foundation\";\nvar UserIdleController = class {\n constructor(_host, _mediaStore) {\n this._host = _host;\n this._mediaStore = _mediaStore;\n this._idle = false;\n this._mediaPaused = false;\n this._idlingPaused = false;\n this._disposal = new DisposalBin();\n this.delay = 2e3;\n _host.addController(this);\n }\n get paused() {\n return this._idlingPaused || this._mediaPaused;\n }\n set paused(paused) {\n this._idlingPaused = paused;\n this._handleIdleChange();\n }\n hostConnected() {\n this._disposal.add(\n this._mediaStore.paused.subscribe(($paused) => {\n this._mediaPaused = $paused;\n this._handleIdleChange();\n })\n );\n const startIdleTimerEvents = [\"pointerdown\", \"pointermove\", \"focus\", \"keydown\"];\n startIdleTimerEvents.forEach((eventType) => {\n const off = listen(this._host, eventType, this._handleIdleChange.bind(this));\n this._disposal.add(off);\n });\n }\n hostDisconnected() {\n this._disposal.empty();\n this._stopIdleTimer();\n }\n _handleIdleChange() {\n if (this.paused) {\n this._stopIdleTimer();\n } else {\n this._startIdleTimer();\n }\n }\n _startIdleTimer() {\n this._stopIdleTimer();\n this._idleTimeout = window.setTimeout(() => {\n this._dispatchIdleChange(!this.paused);\n }, this.delay);\n }\n _stopIdleTimer() {\n window.clearTimeout(this._idleTimeout);\n this._dispatchIdleChange(false);\n }\n _dispatchIdleChange(isIdle) {\n if (this._idle !== isIdle) {\n this._host.dispatchEvent(vdsEvent(\"vds-user-idle-change\", { detail: isIdle }));\n this._idle = isIdle;\n }\n }\n};\n\n// src/media/controller/MediaController.ts\nimport {\n appendTriggerEvent,\n copyStoreRecords,\n debounce,\n discover,\n DisposalBin as DisposalBin2,\n eventListener,\n isNil,\n keysOf,\n listen as listen2,\n RequestQueue,\n throttle,\n unwrapStoreRecord,\n vdsEvent as vdsEvent2\n} from \"@vidstack/foundation\";\nvar MediaController = class {\n constructor(_host) {\n this._host = _host;\n this._disconnectDisposal = new DisposalBin2();\n this.providerQueue = new RequestQueue();\n this.providerDisposal = new DisposalBin2();\n this._logController = false ? new LogController(this._host) : void 0;\n this._logger = false ? new LogDispatcher(this._host) : void 0;\n this._providerContext = mediaProviderElementContext.provide(this._host);\n this._mediaStoreProvider = mediaStoreContext.provide(this._host);\n this.state = unwrapStoreRecord(this._store);\n this._userIdleController = new UserIdleController(this._host, this._store);\n this._handleIdleChange = eventListener(this._host, \"vds-user-idle-change\", (event) => {\n this._store.userIdle.set(event.detail);\n this._satisfyMediaRequest(\"userIdle\", event);\n });\n this._pendingMediaRequests = {\n loading: [],\n play: [],\n pause: [],\n volume: [],\n fullscreen: [],\n seeked: [],\n seeking: [],\n userIdle: []\n };\n this._handleStartLoadingRequest = eventListener(\n this._host,\n \"vds-start-loading\",\n this._createMediaRequestHandler(\"loading\", (event) => {\n if (this.state.canLoad)\n return;\n this._pendingMediaRequests.loading.push(event);\n this._provider.startLoadingMedia();\n })\n );\n this._handleMuteRequest = eventListener(\n this._host,\n \"vds-mute-request\",\n this._createMediaRequestHandler(\"muted\", (event) => {\n if (this.state.muted)\n return;\n this._pendingMediaRequests.volume.push(event);\n this.provider.muted = true;\n })\n );\n this._handleUnmuteRequest = eventListener(\n this._host,\n \"vds-unmute-request\",\n this._createMediaRequestHandler(\"muted\", (event) => {\n if (!this.state.muted)\n return;\n this._pendingMediaRequests.volume.push(event);\n this.provider.muted = false;\n if (this.state.volume === 0) {\n this._pendingMediaRequests.volume.push(event);\n this.provider.volume = 0.25;\n }\n })\n );\n this._handlePlayRequest = eventListener(\n this._host,\n \"vds-play-request\",\n this._createMediaRequestHandler(\"paused\", (event) => {\n if (!this.state.paused)\n return;\n this._pendingMediaRequests.play.push(event);\n this.provider.paused = false;\n })\n );\n this._handlePauseRequest = eventListener(\n this._host,\n \"vds-pause-request\",\n this._createMediaRequestHandler(\"paused\", (event) => {\n if (this.state.paused)\n return;\n this._pendingMediaRequests.pause.push(event);\n this.provider.paused = true;\n })\n );\n this._isSeekingRequestPending = false;\n this._handleSeekingRequest = eventListener(\n this._host,\n \"vds-seeking-request\",\n this._createMediaRequestHandler(\"seeking\", (event) => {\n this._stopWaiting();\n this._pendingMediaRequests.seeking.push(event);\n this._isSeekingRequestPending = true;\n this._store.seeking.set(true);\n })\n );\n this._handleSeekRequest = eventListener(\n this._host,\n \"vds-seek-request\",\n this._createMediaRequestHandler(\"seeking\", (event) => {\n if (this.store.ended) {\n this._isReplay = true;\n }\n this._pendingMediaRequests.seeked.push(event);\n this._isSeekingRequestPending = false;\n let time = event.detail;\n if (this.state.duration - event.detail < 0.25) {\n time = this.state.duration;\n }\n this.provider.currentTime = time;\n })\n );\n this._handleVolumeChangeRequest = eventListener(\n this._host,\n \"vds-volume-change-request\",\n this._createMediaRequestHandler(\"volume\", (event) => {\n const volume = event.detail;\n if (this.state.volume === volume)\n return;\n this._pendingMediaRequests.volume.push(event);\n this.provider.volume = volume;\n if (volume > 0 && this.state.muted) {\n this._pendingMediaRequests.volume.push(event);\n this.provider.muted = false;\n }\n })\n );\n this._handleEnterFullscreenRequest = eventListener(\n this._host,\n \"vds-enter-fullscreen-request\",\n this._createMediaRequestHandler(\"fullscreen\", async (event) => {\n if (this.state.fullscreen)\n return;\n const target = event.detail ?? \"media\";\n if (target === \"media\" && this._host.canFullscreen) {\n this._pendingMediaRequests.fullscreen.push(event);\n await this._host.enterFullscreen?.();\n } else if (this.provider) {\n this._pendingMediaRequests.fullscreen.push(event);\n await this.provider.enterFullscreen();\n }\n })\n );\n this._handleExitFullscreenRequest = eventListener(\n this._host,\n \"vds-exit-fullscreen-request\",\n this._createMediaRequestHandler(\"fullscreen\", async (event) => {\n if (!this.state.fullscreen)\n return;\n const target = event.detail ?? \"media\";\n if (target === \"media\" && this._host.canFullscreen) {\n this._pendingMediaRequests.fullscreen.push(event);\n await this._host.exitFullscreen?.();\n } else if (this.provider) {\n this._pendingMediaRequests.fullscreen.push(event);\n await this.provider.exitFullscreen();\n }\n })\n );\n this._handleResumeIdlingRequest = eventListener(\n this._host,\n \"vds-resume-user-idle-request\",\n (event) => {\n if (!this._mediaRequestEventGateway(event))\n return;\n this._pendingMediaRequests.userIdle.push(event);\n this._userIdleController.paused = false;\n }\n );\n this._handlePauseIdlingRequest = eventListener(\n this._host,\n \"vds-pause-user-idle-request\",\n (event) => {\n if (!this._mediaRequestEventGateway(event))\n return;\n this._pendingMediaRequests.userIdle.push(event);\n this._userIdleController.paused = true;\n }\n );\n this._handleShowPosterRequest = eventListener(\n this._host,\n \"vds-show-poster-request\",\n this._createMediaRequestHandler(\"poster\", () => {\n this._provider.canLoadPoster = true;\n })\n );\n this._handleHidePosterRequest = eventListener(\n this._host,\n \"vds-hide-poster-request\",\n this._createMediaRequestHandler(\"poster\", () => {\n this._provider.canLoadPoster = false;\n })\n );\n this._handleLoopRequest = this._createMediaRequestHandler(\"loop\", () => {\n window.requestAnimationFrame(async () => {\n try {\n this._isLooping = true;\n this._isReplay = true;\n await this._provider.play();\n } catch (e) {\n this._isReplay = false;\n this._isLooping = false;\n }\n });\n });\n this._handleFullscreenChange = eventListener(\n this._host,\n \"vds-fullscreen-change\",\n (event) => {\n this._store.fullscreen.set(event.detail);\n if (event.target !== this._host)\n return;\n this._satisfyMediaRequest(\"fullscreen\", event);\n this._provider?.dispatchEvent(\n vdsEvent2(\"vds-fullscreen-change\", {\n detail: event.detail,\n triggerEvent: event\n })\n );\n }\n );\n this._handleFullscreenError = eventListener(\n this._host,\n \"vds-fullscreen-error\",\n (event) => {\n if (event.target !== this._host)\n return;\n this._satisfyMediaRequest(\"fullscreen\", event);\n this._provider?.dispatchEvent(\n vdsEvent2(\"vds-fullscreen-error\", {\n detail: event.detail,\n triggerEvent: event\n })\n );\n }\n );\n this._isReplay = false;\n this._isLooping = false;\n this._firingWaiting = false;\n this._mediaEvents = [];\n this._handleSeeking = throttle(\n (event) => {\n this._mediaEvents.push(event);\n this._store.seeking.set(true);\n this._store.currentTime.set(event.detail);\n this._satisfyMediaRequest(\"seeking\", event);\n },\n 150,\n { leading: true }\n );\n this._fireWaiting = debounce(() => {\n if (!this._originalWaitingEvent)\n return;\n this._firingWaiting = true;\n const event = vdsEvent2(\"vds-waiting\", this._originalWaitingEvent);\n this._mediaEvents.push(event);\n this._store.waiting.set(true);\n this._store.playing.set(false);\n this._provider?.dispatchEvent(event);\n this._originalWaitingEvent = void 0;\n this._firingWaiting = false;\n }, 300);\n this._skipInitialSrcChange = true;\n discover(_host, mediaProviderDiscoveryId, (provider, onDisconnect) => {\n this.attachMediaProvider(provider, onDisconnect);\n });\n _host.addController({\n hostConnected: () => {\n if (!this.state.canPlay) {\n this._host.setAttribute(\"aria-busy\", \"true\");\n }\n },\n hostDisconnected: () => {\n this._clearMediaStateTracking();\n this._clearPendingMediaRequests();\n this.providerQueue.destroy();\n this.providerDisposal.empty();\n this._skipInitialSrcChange = true;\n this._disconnectDisposal.empty();\n }\n });\n }\n get logLevel() {\n return this._logController?.logLevel ?? \"silent\";\n }\n set logLevel(level) {\n if (false) {\n this._logController.logLevel = level;\n }\n }\n get provider() {\n return this._provider;\n }\n attachMediaProvider(provider, onDisconnect) {\n if (!isNil(this.provider) || this.provider === provider)\n return;\n this._handleMediaProviderDisconnect();\n this._provider = provider;\n this._providerContext.value.set(provider);\n copyStoreRecords(this._provider._store, this._store);\n this._attachMediaEventListeners();\n provider.attachMediaController(this, (cb) => this._disconnectDisposal.add(cb));\n this._flushMediaProviderConnectedQueue();\n onDisconnect(this._handleMediaProviderDisconnect.bind(this));\n }\n _handleMediaProviderDisconnect() {\n if (isNil(this.provider))\n return;\n this._stopWaiting();\n this.providerQueue.destroy();\n this.providerDisposal.empty();\n this._provider = void 0;\n this._providerContext.value.set(void 0);\n resetMediaStore(this._store);\n this._store.viewType.set(\"unknown\" /* Unknown */);\n }\n _flushMediaProviderConnectedQueue() {\n this.providerQueue.start();\n this.providerDisposal.add(() => {\n this.providerQueue.stop();\n });\n }\n get store() {\n return this._mediaStoreProvider.value;\n }\n get _store() {\n return this._mediaStoreProvider.value;\n }\n get idleDelay() {\n return this._userIdleController.delay;\n }\n set idleDelay(delay) {\n this._userIdleController.delay = delay;\n }\n _clearPendingMediaRequests() {\n keysOf(this._pendingMediaRequests).forEach((key) => {\n this._pendingMediaRequests[key] = [];\n });\n }\n _satisfyMediaRequest(type, event) {\n const requestEvent = this._pendingMediaRequests[type].shift();\n if (requestEvent) {\n event.requestEvent = requestEvent;\n appendTriggerEvent(event, requestEvent);\n }\n }\n _mediaRequestEventGateway(event) {\n event.stopPropagation();\n if (false) {\n this._logger?.infoGroup(`\\u{1F4EC} received \\`${event.type}\\``).labelledLog(\"Request\", event).dispatch();\n }\n return true;\n }\n _createMediaRequestHandler(queueKey, callback) {\n return (event) => {\n if (!this._mediaRequestEventGateway(event))\n return;\n if (this._provider) {\n callback(event);\n return;\n }\n this.providerQueue.queue(queueKey, () => {\n callback(event);\n });\n };\n }\n _attachMediaEventListeners() {\n if (!this._provider)\n return;\n const mediaEventListeners = {\n \"vds-can-load\": this._handleCanLoad,\n \"vds-load-start\": this._handleLoadStart,\n \"vds-loaded-data\": this._handleLoadedData,\n \"vds-loaded-metadata\": this._handleLoadedMetadata,\n \"vds-can-play\": this._handleCanPlay,\n \"vds-can-play-through\": this._handleCanPlayThrough,\n \"vds-current-src-change\": this._handleCurrentSrcChange,\n \"vds-autoplay\": this._handleAutoplay,\n \"vds-autoplay-fail\": this._handleAutoplayFail,\n \"vds-loop-request\": this._handleLoopRequest,\n \"vds-play\": this._handlePlay,\n \"vds-play-fail\": this._handlePlayFail,\n \"vds-playing\": this._handlePlaying,\n \"vds-pause\": this._handlePause,\n \"vds-time-update\": this._handleTimeUpdate,\n \"vds-volume-change\": this._handleVolumeChange,\n \"vds-seeking\": this._handleSeeking,\n \"vds-seeked\": this._handleSeeked,\n \"vds-waiting\": this._handleWaiting,\n \"vds-ended\": this._handleEnded,\n \"vds-autoplay-change\": this._handleAutoplayChange,\n \"vds-error\": this._handleError,\n \"vds-fullscreen-support-change\": this._handleFullscreenSupportChange,\n \"vds-poster-change\": this._handlePosterChange,\n \"vds-loop-change\": this._handleLoopChange,\n \"vds-playsinline-change\": this._handlePlaysinlineChange,\n \"vds-controls-change\": this._handleControlsChange,\n \"vds-media-type-change\": this._handleMediaTypeChange,\n \"vds-view-type-change\": this._handleViewTypeChange,\n \"vds-duration-change\": this._handleDurationChange,\n \"vds-progress\": this._handleProgress,\n \"vds-src-change\": this._handleSrcChange\n };\n for (const eventType of keysOf(mediaEventListeners)) {\n const handler = mediaEventListeners[eventType].bind(this);\n this.providerDisposal.add(listen2(this._provider, eventType, handler));\n }\n }\n _clearMediaStateTracking() {\n this._isReplay = false;\n this._isLooping = false;\n this._firingWaiting = false;\n this._originalWaitingEvent = void 0;\n this._mediaEvents = [];\n }\n _findLastMediaEvent(eventType) {\n return this._mediaEvents[this._mediaEvents.map((e) => e.type).lastIndexOf(eventType)];\n }\n _handleCanLoad(event) {\n this._store.canLoad.set(true);\n this._mediaEvents.push(event);\n this._satisfyMediaRequest(\"loading\", event);\n }\n _updateMetadata(metadata) {\n this._store.currentSrc.set(metadata.currentSrc);\n this._store.mediaType.set(metadata.mediaType);\n this._store.viewType.set(metadata.viewType);\n }\n _handleLoadStart(event) {\n this._updateMetadata(event.detail);\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-src-change\"));\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-can-load\"));\n }\n _handleLoadedData(event) {\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-load-start\"));\n }\n _handleLoadedMetadata(event) {\n this._updateMetadata(event.detail);\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-load-start\"));\n }\n _handleCanPlay(event) {\n this._mediaEvents.push(event);\n if (event.triggerEvent?.type !== \"loadedmetadata\") {\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-loaded-metadata\"));\n }\n this._store.canPlay.set(true);\n this._store.duration.set(event.detail.duration);\n this._host.setAttribute(\"aria-busy\", \"false\");\n }\n _handleCanPlayThrough(event) {\n this._store.canPlay.set(true);\n this._store.duration.set(event.detail.duration);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-can-play\"));\n }\n _handleAutoplay(event) {\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-play\"));\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-can-play\"));\n this._store.autoplayError.set(void 0);\n }\n _handleAutoplayFail(event) {\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-play-fail\"));\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-can-play\"));\n this._store.autoplayError.set(event.detail);\n this._clearMediaStateTracking();\n }\n _handlePlay(event) {\n if (this._isLooping || !this.state.paused) {\n event.stopImmediatePropagation();\n return;\n }\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-waiting\"));\n this._satisfyMediaRequest(\"play\", event);\n this._store.paused.set(false);\n this._store.autoplayError.set(void 0);\n if (this.state.ended || this._isReplay) {\n this._isReplay = false;\n this._store.ended.set(false);\n const replayEvent = vdsEvent2(\"vds-replay\", {\n triggerEvent: event\n });\n this._provider?.dispatchEvent(replayEvent);\n }\n }\n _handlePlayFail(event) {\n this._mediaEvents.push(event);\n this._stopWaiting();\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-play\"));\n this._store.paused.set(true);\n this._store.playing.set(false);\n this._satisfyMediaRequest(\"play\", event);\n this._clearMediaStateTracking();\n }\n _handlePlaying(event) {\n this._mediaEvents.push(event);\n const playEvent = this._findLastMediaEvent(\"vds-play\");\n if (playEvent) {\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-waiting\"));\n appendTriggerEvent(event, playEvent);\n } else {\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-seeked\"));\n }\n this._stopWaiting();\n this._clearMediaStateTracking();\n this._store.paused.set(false);\n this._store.playing.set(true);\n this._store.seeking.set(false);\n this._store.ended.set(false);\n if (this._isLooping) {\n event.stopImmediatePropagation();\n this._isLooping = false;\n return;\n }\n if (!this.state.started) {\n this._store.started.set(true);\n this._provider?.dispatchEvent(vdsEvent2(\"vds-started\", { triggerEvent: event }));\n }\n }\n _handlePause(event) {\n if (this._isLooping) {\n event.stopImmediatePropagation();\n return;\n }\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-seeked\"));\n this._satisfyMediaRequest(\"pause\", event);\n this._store.paused.set(true);\n this._store.playing.set(false);\n this._store.seeking.set(false);\n this._stopWaiting();\n this._clearMediaStateTracking();\n }\n _handleTimeUpdate(event) {\n const { currentTime, played } = event.detail;\n this._store.currentTime.set(currentTime);\n this._store.played.set(played);\n this._store.waiting.set(false);\n }\n _handleVolumeChange(event) {\n this._store.volume.set(event.detail.volume);\n this._store.muted.set(event.detail.muted || event.detail.volume === 0);\n this._satisfyMediaRequest(\"volume\", event);\n }\n _handleSeeked(event) {\n if (this._isSeekingRequestPending) {\n this._store.seeking.set(true);\n event.stopImmediatePropagation();\n } else if (this.state.seeking) {\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-waiting\"));\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-seeking\"));\n if (this.state.paused) {\n this._stopWaiting();\n }\n this._store.seeking.set(false);\n if (event.detail !== this.state.duration) {\n this._store.ended.set(false);\n }\n this._store.currentTime.set(event.detail);\n this._satisfyMediaRequest(\"seeked\", event);\n }\n }\n _stopWaiting() {\n this._fireWaiting.cancel();\n this._store.waiting.set(false);\n }\n _handleWaiting(event) {\n if (this._firingWaiting)\n return;\n event.stopImmediatePropagation();\n this._originalWaitingEvent = event;\n this._fireWaiting();\n }\n _handleEnded(event) {\n if (this._isLooping) {\n event.stopImmediatePropagation();\n return;\n }\n this._stopWaiting();\n this._store.paused.set(true);\n this._store.playing.set(false);\n this._store.seeking.set(false);\n this._store.ended.set(true);\n this._clearMediaStateTracking();\n }\n _handleAutoplayChange(event) {\n this._store.autoplay.set(event.detail);\n }\n _handleCurrentSrcChange(event) {\n this._store.currentSrc.set(event.detail);\n if (this._skipInitialSrcChange) {\n this._skipInitialSrcChange = false;\n return;\n }\n this._clearMediaStateTracking();\n softResetMediaStore(this._store);\n this._host.setAttribute(\"aria-busy\", \"true\");\n }\n _handleError(event) {\n this._store.error.set(event.detail);\n }\n _handleFullscreenSupportChange(event) {\n this._store.canFullscreen.set(event.detail);\n }\n _handlePosterChange(event) {\n this._store.poster.set(event.detail);\n }\n _handleLoopChange(event) {\n this._store.loop.set(event.detail);\n }\n _handlePlaysinlineChange(event) {\n this._store.playsinline.set(event.detail);\n }\n _handleControlsChange(event) {\n this._store.controls.set(event.detail);\n }\n _handleMediaTypeChange(event) {\n this._store.mediaType.set(event.detail);\n }\n _handleDurationChange(event) {\n const duration = event.detail;\n this._store.duration.set(!isNaN(duration) ? duration : 0);\n }\n _handleProgress(event) {\n const { buffered, seekable } = event.detail;\n const bufferedAmount = buffered.length === 0 ? 0 : buffered.end(buffered.length - 1);\n const seekableAmount = seekable.length === 0 ? 0 : seekable.end(seekable.length - 1);\n this._store.buffered.set(buffered);\n this._store.bufferedAmount.set(bufferedAmount);\n this._store.seekable.set(seekable);\n this._store.seekableAmount.set(seekableAmount);\n }\n _handleSrcChange(event) {\n this._store.src.set(event.detail);\n }\n _handleViewTypeChange(event) {\n this._store.viewType.set(event.detail);\n }\n};\n\n// src/media/MediaElement.ts\nimport {\n discoverable,\n FullscreenController,\n IS_IOS,\n ScreenOrientationController,\n setAttribute as setAttribute2\n} from \"@vidstack/foundation\";\nimport {\n css,\n html,\n LitElement\n} from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n\n// src/media/style/MediaAttrsController.ts\nimport { isNumber, isString, setAttribute } from \"@vidstack/foundation\";\n\n// src/media/style/MediaStyleController.ts\nimport { camelToKebabCase, DisposalBin as DisposalBin3, requestIdleCallback } from \"@vidstack/foundation\";\nvar MediaStyleController = class {\n constructor(_host, _store, _mediaProps) {\n this._host = _host;\n this._store = _store;\n this._mediaProps = _mediaProps;\n this._disposal = new DisposalBin3();\n this._host.addController({\n hostConnected: this._hostConnected.bind(this),\n hostDisconnected: this._hostDisconnected.bind(this)\n });\n }\n _hostConnected() {\n requestIdleCallback(() => {\n for (const propName of this._mediaProps) {\n const store = this._store[propName];\n if (store) {\n const attrName = this._getMediaAttrName(propName);\n const unsub = store.subscribe(($v) => {\n window?.requestAnimationFrame(() => {\n this._handleValueChange(propName, attrName, $v);\n });\n });\n this._disposal.add(unsub);\n }\n }\n });\n }\n _hostDisconnected() {\n for (const propName of this._mediaProps) {\n this._handleDisconnect(propName, this._getMediaAttrName(propName));\n }\n this._disposal.empty();\n }\n _getMediaAttrName(propName) {\n return camelToKebabCase(propName);\n }\n};\n\n// src/media/style/MediaAttrsController.ts\nvar MediaAttrsController = class extends MediaStyleController {\n _handleValueChange(_, attrName, value) {\n window.requestAnimationFrame(() => {\n setAttribute(\n this._host,\n attrName,\n isString(value) || isNumber(value) ? String(value) : !!value\n );\n });\n }\n _handleDisconnect(_, attrName) {\n this._host.removeAttribute(attrName);\n }\n};\nfunction bindMediaPropsToAttrs(...params) {\n return new MediaAttrsController(...params);\n}\n\n// src/media/style/MediaCssPropsController.ts\nimport { isNumber as isNumber2, isString as isString2 } from \"@vidstack/foundation\";\nvar MediaCssPropsController = class extends MediaStyleController {\n _handleValueChange(_, attrName, value) {\n window.requestAnimationFrame(() => {\n this._host.style.setProperty(\n this._getCssPropName(attrName),\n isString2(value) || isNumber2(value) ? String(value) : null\n );\n });\n }\n _getCssPropName(attrName) {\n return `--vds-${attrName}`;\n }\n _handleDisconnect(_, attrName) {\n this._host.style.setProperty(this._getCssPropName(attrName), null);\n }\n};\nfunction bindMediaPropsToCssProps(...params) {\n return new MediaCssPropsController(...params);\n}\n\n// src/media/MediaElement.ts\nvar mediaDiscoveryId = Symbol(\"@vidstack/media-discovery\");\nvar MediaElement = class extends LitElement {\n constructor() {\n super();\n this.controller = new MediaController(this);\n this.__mediaFullscreen = false;\n this.__mediaIsVideoView = false;\n this.__mediaPlaysinline = false;\n this.screenOrientationController = new ScreenOrientationController(this);\n this.fullscreenController = new FullscreenController(this, this.screenOrientationController);\n discoverable(this, \"vds-media-connect\", { register: mediaDiscoveryId });\n mediaStoreSubscription(this, \"fullscreen\", ($fullscreen) => {\n this.__mediaFullscreen = $fullscreen;\n });\n mediaStoreSubscription(this, \"viewType\", ($viewType) => {\n this.__mediaIsVideoView = $viewType === \"video\" /* Video */;\n });\n mediaStoreSubscription(this, \"playsinline\", ($playsinline) => {\n this.__mediaPlaysinline = $playsinline;\n });\n this._bindMediaAttributes();\n this._bindMediaCSSProperties();\n }\n static get styles() {\n return [\n css`:host{display:inline-block;position:relative;contain:content}:host([hidden]){display:none}`\n ];\n }\n get provider() {\n return this.controller.provider;\n }\n update(changedProperties) {\n setAttribute2(this, \"hide-ui\", this._shouldHideMediaUI());\n super.update(changedProperties);\n }\n render() {\n return html`<slot></slot>`;\n }\n get canFullscreen() {\n return this.fullscreenController.isSupported;\n }\n get fullscreen() {\n return this.fullscreenController.isFullscreen;\n }\n get fullscreenOrientation() {\n return this.fullscreenController.screenOrientationLock;\n }\n set fullscreenOrientation(lockType) {\n const prevLockType = this.fullscreenController.screenOrientationLock;\n if (prevLockType !== lockType) {\n this.fullscreenController.screenOrientationLock = lockType;\n this.requestUpdate(\"fullscreen-orientation\", prevLockType);\n }\n }\n enterFullscreen() {\n return this.fullscreenController.enterFullscreen();\n }\n exitFullscreen() {\n return this.fullscreenController.exitFullscreen();\n }\n _bindMediaAttributes() {\n bindMediaPropsToAttrs(this, this.controller.store, [\n \"autoplay\",\n \"autoplayError\",\n \"canLoad\",\n \"canPlay\",\n \"canFullscreen\",\n \"ended\",\n \"error\",\n \"fullscreen\",\n \"userIdle\",\n \"loop\",\n \"mediaType\",\n \"muted\",\n \"paused\",\n \"playing\",\n \"playsinline\",\n \"seeking\",\n \"started\",\n \"viewType\",\n \"waiting\"\n ]);\n }\n _bindMediaCSSProperties() {\n bindMediaPropsToCssProps(this, this.controller.store, [\n \"bufferedAmount\",\n \"currentTime\",\n \"duration\",\n \"seekableAmount\"\n ]);\n }\n _shouldHideMediaUI() {\n return IS_IOS && this.__mediaIsVideoView && (!this.__mediaPlaysinline || this.__mediaFullscreen);\n }\n};\n__decorateClass([\n state()\n], MediaElement.prototype, \"__mediaFullscreen\", 2);\n__decorateClass([\n state()\n], MediaElement.prototype, \"__mediaIsVideoView\", 2);\n__decorateClass([\n state()\n], MediaElement.prototype, \"__mediaPlaysinline\", 2);\n__decorateClass([\n property({ attribute: \"fullscreen-orientation\" })\n], MediaElement.prototype, \"fullscreenOrientation\", 1);\n\nexport {\n UserIdleController,\n MediaController,\n mediaDiscoveryId,\n MediaElement\n};\n","import {\n MediaElement\n} from \"./chunk.YGYRCKY2.js\";\n\n// src/define/vds-media.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-media\", MediaElement);\n","import {\n MediaProviderElement\n} from \"./chunk.63VUN3OP.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/providers/html5/Html5MediaElement.ts\nimport {\n DisposalBin,\n getNumberOfDecimalPlaces,\n getSlottedChildren,\n isNil,\n isNumber,\n isScalarArrayEqual,\n isUndefined,\n keysOf,\n listen,\n setAttribute,\n vdsEvent\n} from \"@vidstack/foundation\";\nimport { property } from \"lit/decorators.js\";\nvar AUDIO_EXTENSIONS = /\\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nvar VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v|avi)($|\\?)/i;\nfunction getMediaTypeFromExt(src) {\n if (AUDIO_EXTENSIONS.test(src))\n return \"audio\" /* Audio */;\n if (VIDEO_EXTENSIONS.test(src))\n return \"video\" /* Video */;\n return \"unknown\" /* Unknown */;\n}\nvar Html5MediaElement = class extends MediaProviderElement {\n constructor() {\n super(...arguments);\n this.preload = \"metadata\";\n this._timeRAF = void 0;\n this._hasMediaElementConnected = false;\n this._mediaElementDisposal = new DisposalBin();\n this._isMediaWaiting = false;\n this._ignoreNextAbortEvent = false;\n this._ignoreNextEmptiedEvent = false;\n }\n get mediaElement() {\n return this._mediaElement;\n }\n disconnectedCallback() {\n this._isMediaWaiting = false;\n super.disconnectedCallback();\n this._cancelTimeUpdates();\n }\n destroy() {\n if (this.mediaElement) {\n this.mediaElement.pause();\n this.mediaElement.src = \"\";\n this.mediaElement.innerHTML = \"\";\n this.mediaElement.load();\n }\n super.destroy();\n }\n _cancelTimeUpdates() {\n if (isNumber(this._timeRAF))\n window.cancelAnimationFrame(this._timeRAF);\n this._timeRAF = void 0;\n }\n _requestTimeUpdates() {\n if (!isUndefined(this._timeRAF))\n return;\n this._requestTimeUpdate();\n }\n _requestTimeUpdate() {\n const newTime = this.mediaElement?.currentTime ?? 0;\n if (this.state.currentTime !== newTime) {\n this._updateCurrentTime(newTime);\n }\n this._timeRAF = window.requestAnimationFrame(() => {\n if (isUndefined(this._timeRAF))\n return;\n this._requestTimeUpdate();\n });\n }\n _updateCurrentTime(newTime, triggerEvent) {\n this.dispatchEvent(\n vdsEvent(\"vds-time-update\", {\n detail: {\n currentTime: Math.min(newTime, this.mediaElement?.duration ?? 0),\n played: this.mediaElement.played\n },\n triggerEvent\n })\n );\n }\n handleDefaultSlotChange() {\n this._handleMediaElementDisconnect();\n this._handleMediaElementConnect();\n }\n get _canMediaElementConnect() {\n return this.canLoad && !isNil(this.mediaElement) && !this._hasMediaElementConnected;\n }\n _findSlottedMediaElement() {\n const mediaElement = getSlottedChildren(this)[0];\n const tagName = mediaElement?.tagName ?? \"\";\n if (!/^(audio|video)$/i.test(tagName)) {\n if (false) {\n throw Error(`[vds]: expected <audio> or <video> in default slot. Received: <${tagName}>.`);\n }\n }\n this._mediaElement = mediaElement ?? void 0;\n }\n _handleMediaElementConnect() {\n window.requestAnimationFrame(() => {\n this._findSlottedMediaElement();\n if (!this._canMediaElementConnect)\n return;\n const mediaEl = this.mediaElement;\n if (mediaEl.hasAttribute(\"loop\")) {\n this.loop = true;\n }\n mediaEl.removeAttribute(\"loop\");\n mediaEl.removeAttribute(\"poster\");\n setAttribute(mediaEl, \"controls\", this.controls);\n if (!this.state.canFullscreen && this.fullscreenController.isSupported) {\n this.dispatchEvent(\n vdsEvent(\"vds-fullscreen-support-change\", {\n detail: this.canFullscreen\n })\n );\n }\n this._attachMediaEventListeners();\n this._observePlaysinline();\n this._observeMediaSources();\n if (this.canLoadPoster && this.poster.length > 0 && mediaEl.getAttribute(\"poster\") !== this.poster) {\n mediaEl.setAttribute(\"poster\", this.poster);\n }\n this._startPreloadingMedia();\n if (false) {\n this._logger?.infoGroup(\"Media element connected\").labelledLog(\"Media Element\", mediaEl).dispatch();\n }\n this._hasMediaElementConnected = true;\n this._disconnectDisposal.add(this._handleMediaElementDisconnect.bind(this));\n });\n }\n _handleMediaElementDisconnect() {\n this._cancelTimeUpdates();\n window.requestAnimationFrame(() => {\n this._mediaElementDisposal.empty();\n this._mediaElement = void 0;\n });\n if (this._hasMediaElementConnected && false) {\n this._logger?.infoGroup(\"Media element disconnected\").labelledLog(\"Media Element\", this.mediaElement).dispatch();\n }\n this._hasMediaElementConnected = false;\n }\n startLoadingMedia() {\n super.startLoadingMedia();\n this._handleMediaElementConnect();\n }\n _startPreloadingMedia() {\n if (this.state.canPlay)\n return;\n this.mediaElement.setAttribute(\"preload\", this.preload);\n const isNetworkActive = this.mediaElement.networkState >= 1;\n this._ignoreNextAbortEvent = isNetworkActive;\n this._ignoreNextEmptiedEvent = isNetworkActive;\n this.mediaElement.load();\n setTimeout(() => {\n this._ignoreNextAbortEvent = false;\n this._ignoreNextEmptiedEvent = false;\n }, 0);\n }\n _observePlaysinline() {\n const isPlayingInline = () => this.mediaElement.hasAttribute(\"playsinline\");\n this._handlePlaysinlineChange(isPlayingInline());\n const observer = new MutationObserver(() => this._handlePlaysinlineChange(isPlayingInline()));\n observer.observe(this.mediaElement, { attributeFilter: [\"playsinline\"] });\n this._mediaElementDisposal.add(() => observer.disconnect());\n }\n _handlePlaysinlineChange(playsinline) {\n this.dispatchEvent(vdsEvent(\"vds-playsinline-change\", { detail: playsinline }));\n }\n _observeMediaSources() {\n this._handleSrcChange(this._getMediaSources());\n const observer = new MutationObserver(() => this._handleSrcChange(this._getMediaSources()));\n observer.observe(this.mediaElement, { attributeFilter: [\"src\"], subtree: true });\n this._mediaElementDisposal.add(() => observer.disconnect());\n }\n _handleSrcChange(sources) {\n const prevSources = this.state.src;\n if (!isScalarArrayEqual(prevSources, sources)) {\n this.dispatchEvent(vdsEvent(\"vds-src-change\", { detail: sources }));\n }\n }\n _getMediaSources() {\n const resources = [\n this.mediaElement?.src,\n ...Array.from(this.mediaElement?.querySelectorAll(\"source\") ?? []).map(\n (source) => source.src\n )\n ].filter(Boolean);\n return Array.from(new Set(resources));\n }\n _getMediaMetadata() {\n return {\n src: this.state.src,\n currentSrc: this.mediaElement.currentSrc,\n duration: this.mediaElement.duration || 0,\n poster: this.mediaElement.poster,\n mediaType: this._getMediaType(),\n viewType: this.state.viewType\n };\n }\n _attachMediaEventListeners() {\n if (isNil(this.mediaElement))\n return;\n const mediaEventListeners = {\n abort: this._handleAbort,\n canplay: this._handleCanPlay,\n canplaythrough: this._handleCanPlayThrough,\n durationchange: this._handleDurationChange,\n emptied: this._handleEmptied,\n ended: this._handleEnded,\n error: this._handleError,\n loadeddata: this._handleLoadedData,\n loadedmetadata: this._handleLoadedMetadata,\n loadstart: this._handleLoadStart,\n pause: this._handlePause,\n play: this._handlePlay,\n playing: this._handlePlaying,\n progress: this._handleProgress,\n ratechange: this._handleRateChange,\n seeked: this._handleSeeked,\n seeking: this._handleSeeking,\n stalled: this._handleStalled,\n suspend: this._handleSuspend,\n volumechange: this._handleVolumeChange,\n waiting: this._handleWaiting\n };\n keysOf(mediaEventListeners).forEach((type) => {\n const handler = mediaEventListeners[type].bind(this);\n const off = listen(this.mediaElement, type, async (event) => {\n if (false) {\n this._logger?.debugGroup(`\\u{1F4FA} fired \\`${event.type}\\``).labelledLog(\"Event\", event).labelledLog(\"State\", { ...this.state }).dispatch();\n }\n await handler(event);\n });\n this._mediaElementDisposal.add(off);\n });\n if (false) {\n this._logger?.debug(\"attached event listeners\");\n }\n }\n _handleAbort(event) {\n if (this._ignoreNextAbortEvent)\n return;\n this.dispatchEvent(vdsEvent(\"vds-abort\", { triggerEvent: event }));\n this._handleCurrentSrcChange(\"\", event);\n }\n _handleCanPlay(event) {\n this._handleMediaReady({ event, duration: this.mediaElement.duration });\n }\n _handleCanPlayThrough(event) {\n if (this.state.started)\n return;\n this.dispatchEvent(\n vdsEvent(\"vds-can-play-through\", {\n triggerEvent: event,\n detail: { duration: this.mediaElement.duration }\n })\n );\n }\n _handleLoadStart(event) {\n this._handleCurrentSrcChange(this.mediaElement.currentSrc, event);\n if (this.mediaElement.currentSrc === \"\") {\n this._handleAbort();\n return;\n }\n this.dispatchEvent(\n vdsEvent(\"vds-load-start\", {\n triggerEvent: event,\n detail: this._getMediaMetadata()\n })\n );\n }\n _handleEmptied(event) {\n if (this._ignoreNextEmptiedEvent)\n return;\n this.dispatchEvent(vdsEvent(\"vds-emptied\", { triggerEvent: event }));\n }\n _handleLoadedData(event) {\n this.dispatchEvent(vdsEvent(\"vds-loaded-data\", { triggerEvent: event }));\n }\n _handleLoadedMetadata(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-volume-change\", {\n detail: {\n volume: this.mediaElement.volume,\n muted: this.mediaElement.muted\n }\n })\n );\n this.dispatchEvent(\n vdsEvent(\"vds-loaded-metadata\", {\n triggerEvent: event,\n detail: this._getMediaMetadata()\n })\n );\n }\n _determineMediaType(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-media-type-change\", {\n detail: this._getMediaType(),\n triggerEvent: event\n })\n );\n }\n _handlePlay(event) {\n const playEvent = vdsEvent(\"vds-play\", { triggerEvent: event });\n playEvent.autoplay = this._attemptingAutoplay;\n this.dispatchEvent(playEvent);\n }\n _handlePause(event) {\n if (this.mediaElement.readyState === 1 && !this._isMediaWaiting) {\n return;\n }\n this._isMediaWaiting = false;\n this._cancelTimeUpdates();\n this.dispatchEvent(vdsEvent(\"vds-pause\", { triggerEvent: event }));\n }\n _handlePlaying(event) {\n this._isMediaWaiting = false;\n const playingEvent = vdsEvent(\"vds-playing\", { triggerEvent: event });\n this.dispatchEvent(playingEvent);\n this._requestTimeUpdates();\n }\n _handleDurationChange(event) {\n if (this.mediaElement.ended) {\n this._updateCurrentTime(this.mediaElement.duration, event);\n }\n this.dispatchEvent(\n vdsEvent(\"vds-duration-change\", {\n detail: this.mediaElement.duration,\n triggerEvent: event\n })\n );\n }\n _handleProgress(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-progress\", {\n triggerEvent: event,\n detail: {\n buffered: this.mediaElement.buffered,\n seekable: this.mediaElement.seekable\n }\n })\n );\n }\n _handleRateChange(event) {\n throw Error(\"Not implemented\");\n }\n _handleSeeking(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-seeking\", {\n detail: this.mediaElement.currentTime,\n triggerEvent: event\n })\n );\n }\n _handleSeeked(event) {\n const seekedEvent = vdsEvent(\"vds-seeked\", {\n detail: this.mediaElement.currentTime,\n triggerEvent: event\n });\n this.dispatchEvent(seekedEvent);\n const currentTime = this.mediaElement.currentTime;\n if (Math.trunc(currentTime) === Math.trunc(this.mediaElement.duration) && getNumberOfDecimalPlaces(this.mediaElement.duration) > getNumberOfDecimalPlaces(currentTime)) {\n this._updateCurrentTime(this.mediaElement.duration, event);\n if (!this.mediaElement.ended) {\n try {\n this.play();\n } catch (e) {\n }\n }\n }\n }\n _handleStalled(event) {\n this.dispatchEvent(vdsEvent(\"vds-stalled\", { triggerEvent: event }));\n if (this.mediaElement.readyState < 3) {\n this._isMediaWaiting = true;\n this.dispatchEvent(vdsEvent(\"vds-waiting\", { triggerEvent: event }));\n }\n }\n _handleVolumeChange(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-volume-change\", {\n detail: {\n volume: this.mediaElement.volume,\n muted: this.mediaElement.muted\n },\n triggerEvent: event\n })\n );\n }\n _handleWaiting(event) {\n if (this.mediaElement.readyState < 3) {\n this._isMediaWaiting = true;\n this.dispatchEvent(vdsEvent(\"vds-waiting\", { triggerEvent: event }));\n }\n }\n _handleSuspend(event) {\n const suspendEvent = vdsEvent(\"vds-suspend\", { triggerEvent: event });\n this.dispatchEvent(suspendEvent);\n }\n _handleEnded(event) {\n this._cancelTimeUpdates();\n this._updateCurrentTime(this.mediaElement.duration, event);\n const endEvent = vdsEvent(\"vds-end\", { triggerEvent: event });\n this.dispatchEvent(endEvent);\n if (this.state.loop) {\n this._handleLoop();\n } else {\n this.dispatchEvent(vdsEvent(\"vds-ended\", { triggerEvent: event }));\n }\n }\n _handleLoop() {\n const hasCustomControls = isNil(this.controls);\n if (hasCustomControls) {\n this.mediaElement.controls = false;\n }\n this.dispatchEvent(vdsEvent(\"vds-loop-request\"));\n }\n _handleError(event) {\n const mediaError = this.mediaElement.error;\n if (!mediaError)\n return;\n this.dispatchEvent(\n vdsEvent(\"vds-error\", {\n detail: {\n message: mediaError.message,\n code: mediaError.code,\n mediaError\n },\n triggerEvent: event\n })\n );\n }\n _getPaused() {\n return this.mediaElement?.paused ?? true;\n }\n _getVolume() {\n return this.mediaElement?.volume ?? 1;\n }\n _setVolume(newVolume) {\n this.mediaElement.volume = newVolume;\n }\n _getCurrentTime() {\n return this.mediaElement?.currentTime ?? 0;\n }\n _setCurrentTime(newTime) {\n if (this.mediaElement.currentTime !== newTime) {\n this.mediaElement.currentTime = newTime;\n }\n }\n _getMuted() {\n return this.mediaElement?.muted ?? false;\n }\n _setMuted(isMuted) {\n this.mediaElement.muted = isMuted;\n }\n async play() {\n if (false) {\n this._logger?.info(\"attempting to play...\");\n }\n try {\n this._throwIfNotReadyForPlayback();\n await this._resetPlaybackIfEnded();\n return this.mediaElement?.play();\n } catch (error) {\n const playErrorEvent = vdsEvent(\"vds-play-fail\");\n playErrorEvent.autoplay = this._attemptingAutoplay;\n playErrorEvent.error = error;\n throw error;\n }\n }\n async pause() {\n if (false) {\n this._logger?.info(\"attempting to pause...\");\n }\n return this.mediaElement?.pause();\n }\n _getMediaType() {\n return getMediaTypeFromExt(this.state.currentSrc);\n }\n};\n__decorateClass([\n property()\n], Html5MediaElement.prototype, \"preload\", 2);\n\nexport {\n AUDIO_EXTENSIONS,\n VIDEO_EXTENSIONS,\n Html5MediaElement\n};\n","import {\n Html5MediaElement\n} from \"./chunk.M7J7NUUF.js\";\n\n// src/providers/audio/AudioElement.ts\nimport { vdsEvent } from \"@vidstack/foundation\";\nimport { css } from \"lit\";\nvar AudioElement = class extends Html5MediaElement {\n static get styles() {\n return [\n css`:host{display:inline-block}:host([hidden]){display:none}`\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.dispatchEvent(\n vdsEvent(\"vds-view-type-change\", {\n detail: \"audio\" /* Audio */\n })\n );\n }\n};\n\nexport {\n AudioElement\n};\n","import {\n AudioElement\n} from \"./chunk.MWM7HRI6.js\";\n\n// src/define/vds-audio.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-audio\", AudioElement);\n","import {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/toggle-button/ToggleButtonElement.ts\nimport {\n eventListener,\n focusVisiblePolyfill,\n isKeyboardClick,\n isKeyboardEvent,\n setAttribute,\n setAttributeIfEmpty\n} from \"@vidstack/foundation\";\nimport {\n html,\n LitElement\n} from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\n// src/ui/toggle-button/styles.ts\nimport { css } from \"lit\";\nvar toggleButtonElementStyles = css`:host{display:table;contain:content;user-select:none;cursor:pointer;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host(:focus){outline:0}:host(:focus-visible){outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}:host(.focus-visible){outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}`;\n\n// src/ui/toggle-button/ToggleButtonElement.ts\nvar ToggleButtonElement = class extends LitElement {\n constructor() {\n super();\n this.pressed = false;\n this.disabled = false;\n this._handleButtonClickCapture = eventListener(\n this,\n \"click\",\n (event) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n },\n { capture: true }\n );\n if (false)\n logElementLifecycle(this);\n focusVisiblePolyfill(this);\n [\"pointerup\", \"keydown\"].forEach((eventType) => {\n eventListener(this, eventType, (event) => {\n if (this.disabled || isKeyboardEvent(event) && !isKeyboardClick(event)) {\n return;\n }\n this._handleButtonClick(event);\n });\n });\n }\n static get styles() {\n return [toggleButtonElementStyles];\n }\n static get parts() {\n return [];\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"tabindex\", \"0\");\n setAttributeIfEmpty(this, \"role\", \"button\");\n this._updateAriaPressedAttr();\n }\n updated(changedProperties) {\n if (changedProperties.has(\"pressed\")) {\n this._updateAriaPressedAttr();\n }\n }\n _updateAriaPressedAttr() {\n setAttribute(this, \"aria-pressed\", this.pressed ? \"true\" : \"false\");\n }\n render() {\n return this._renderDefaultSlot();\n }\n _renderDefaultSlot() {\n return html`<slot></slot>`;\n }\n _handleButtonClick(event) {\n this.pressed = !this.pressed;\n }\n};\n__decorateClass([\n property({ type: Boolean })\n], ToggleButtonElement.prototype, \"pressed\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], ToggleButtonElement.prototype, \"disabled\", 2);\n\nexport {\n ToggleButtonElement\n};\n","// src/media/interact/MediaRemoteControl.ts\nimport {\n hostRequestQueue,\n RequestQueue,\n vdsEvent\n} from \"@vidstack/foundation\";\nvar MediaRemoteControl = class {\n constructor(_host) {\n if (_host) {\n this._target = _host;\n this._createLogger(_host);\n this._requests = hostRequestQueue(_host);\n } else {\n this._requests = new RequestQueue();\n }\n }\n startLoading(triggerEvent) {\n this._dispatchRequest(\"vds-start-loading\", { triggerEvent });\n }\n play(triggerEvent) {\n this._dispatchRequest(\"vds-play-request\", { triggerEvent });\n }\n pause(triggerEvent) {\n this._dispatchRequest(\"vds-pause-request\", { triggerEvent });\n }\n mute(triggerEvent) {\n this._dispatchRequest(\"vds-mute-request\", { triggerEvent });\n }\n unmute(triggerEvent) {\n this._dispatchRequest(\"vds-unmute-request\", { triggerEvent });\n }\n enterFullscreen(target, triggerEvent) {\n this._dispatchRequest(\"vds-enter-fullscreen-request\", {\n triggerEvent,\n detail: target\n });\n }\n exitFullscreen(target, triggerEvent) {\n this._dispatchRequest(\"vds-exit-fullscreen-request\", {\n triggerEvent,\n detail: target\n });\n }\n seeking(time, triggerEvent) {\n this._dispatchRequest(\"vds-seeking-request\", {\n detail: time,\n triggerEvent\n });\n }\n seek(time, triggerEvent) {\n this._dispatchRequest(\"vds-seek-request\", {\n detail: time,\n triggerEvent\n });\n }\n changeVolume(volume, triggerEvent) {\n this._dispatchRequest(\"vds-volume-change-request\", {\n detail: volume,\n triggerEvent\n });\n }\n resumeUserIdle(triggerEvent) {\n this._dispatchRequest(\"vds-resume-user-idle-request\", { triggerEvent });\n }\n pauseUserIdle(triggerEvent) {\n this._dispatchRequest(\"vds-pause-user-idle-request\", { triggerEvent });\n }\n showPoster(triggerEvent) {\n this._dispatchRequest(\"vds-show-poster-request\", { triggerEvent });\n }\n hidePoster(triggerEvent) {\n this._dispatchRequest(\"vds-hide-poster-request\", { triggerEvent });\n }\n setTarget(target) {\n if (this._target === target)\n return;\n this._target = target;\n if (target) {\n this._createLogger(target);\n this._requests.start();\n } else {\n this._requests.stop();\n }\n }\n _dispatchRequest(type, eventInit) {\n this._requests.queue(type, () => {\n const request = vdsEvent(type, {\n ...eventInit,\n bubbles: true,\n composed: true\n });\n if (false) {\n this._logger?.infoGroup(`\\u{1F4E8} dispatching \\`${type}\\``).labelledLog(\"Request Event\", request).labelledLog(\"Trigger Event\", eventInit.triggerEvent).dispatch();\n }\n this._target?.dispatchEvent(request);\n });\n }\n _createLogger(target) {\n if (false) {\n this._logger = new LogDispatcher(target);\n }\n }\n};\n\nexport {\n MediaRemoteControl\n};\n","import {\n ToggleButtonElement\n} from \"./chunk.KIF3XDBQ.js\";\nimport {\n MediaRemoteControl\n} from \"./chunk.JDCQU7GF.js\";\nimport {\n mediaStoreSubscription\n} from \"./chunk.O2H47C42.js\";\n\n// src/ui/play-button/PlayButtonElement.ts\nimport { setAttribute, setAttributeIfEmpty } from \"@vidstack/foundation\";\nvar PlayButtonElement = class extends ToggleButtonElement {\n constructor() {\n super();\n this._mediaRemote = new MediaRemoteControl(this);\n mediaStoreSubscription(this, \"paused\", ($paused) => {\n this.pressed = !$paused;\n setAttribute(this, \"paused\", $paused);\n });\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"aria-label\", \"Play\");\n }\n _handleButtonClick(event) {\n if (this.disabled)\n return;\n if (this.pressed) {\n this._mediaRemote.pause(event);\n } else {\n this._mediaRemote.play(event);\n }\n }\n};\n\nexport {\n PlayButtonElement\n};\n","import {\n PlayButtonElement\n} from \"./chunk.5LQ54Q2B.js\";\n\n// src/define/vds-play-button.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-play-button\", PlayButtonElement);\n","import {\n ToggleButtonElement\n} from \"./chunk.KIF3XDBQ.js\";\nimport {\n MediaRemoteControl\n} from \"./chunk.JDCQU7GF.js\";\nimport {\n mediaStoreSubscription\n} from \"./chunk.O2H47C42.js\";\n\n// src/ui/mute-button/MuteButtonElement.ts\nimport { setAttribute, setAttributeIfEmpty } from \"@vidstack/foundation\";\nvar MuteButtonElement = class extends ToggleButtonElement {\n constructor() {\n super();\n this._mediaRemote = new MediaRemoteControl(this);\n this._volume = 1;\n this._muted = false;\n mediaStoreSubscription(this, \"volume\", ($volume) => {\n this._volume = $volume;\n this._handleMutedChange();\n });\n mediaStoreSubscription(this, \"muted\", ($muted) => {\n this._muted = $muted;\n this._handleMutedChange();\n });\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"aria-label\", \"Mute\");\n }\n _handleMutedChange() {\n const muted = this._muted || this._volume === 0;\n this.pressed = muted;\n setAttribute(this, \"muted\", muted);\n }\n _handleButtonClick(event) {\n if (this.disabled)\n return;\n if (this.pressed) {\n this._mediaRemote.unmute(event);\n } else {\n this._mediaRemote.mute(event);\n }\n }\n};\n\nexport {\n MuteButtonElement\n};\n","import {\n MuteButtonElement\n} from \"./chunk.OS5G3YJW.js\";\n\n// src/define/vds-mute-button.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-mute-button\", MuteButtonElement);\n","// src/ui/slider/store.ts\nimport { createContext, derived, writable } from \"@vidstack/foundation\";\nfunction createSliderStore() {\n const dragging = writable(false);\n const pointing = writable(false);\n return {\n value: writable(50),\n pointerValue: writable(0),\n min: writable(0),\n max: writable(100),\n dragging,\n pointing,\n interactive: derived([dragging, pointing], ([$dragging, $pointing]) => $dragging || $pointing)\n };\n}\nvar sliderStoreContext = createContext(createSliderStore);\n\nexport {\n createSliderStore,\n sliderStoreContext\n};\n","import {\n sliderStoreContext\n} from \"./chunk.CQHSYXO3.js\";\nimport {\n MediaRemoteControl\n} from \"./chunk.JDCQU7GF.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/slider/SliderElement.ts\nimport {\n clampNumber,\n DisposalBin,\n eventListener,\n focusVisiblePolyfill,\n get,\n getNumberOfDecimalPlaces,\n rafThrottle,\n round,\n setAttribute,\n setAttributeIfEmpty,\n setCSSProperty,\n vdsEvent\n} from \"@vidstack/foundation\";\nimport {\n html,\n LitElement\n} from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\n// src/ui/slider/styles.ts\nimport { css } from \"lit\";\nvar sliderElementStyles = css`*{box-sizing:border-box;touch-action:none}:host{display:block;contain:layout;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host(:focus){outline:0}:host(:focus-visible){outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}:host(.focus-visible){outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}`;\n\n// src/ui/slider/SliderElement.ts\nvar SliderKeyDirection = /* @__PURE__ */ ((SliderKeyDirection2) => {\n SliderKeyDirection2[SliderKeyDirection2[\"Left\"] = -1] = \"Left\";\n SliderKeyDirection2[SliderKeyDirection2[\"ArrowLeft\"] = -1] = \"ArrowLeft\";\n SliderKeyDirection2[SliderKeyDirection2[\"Up\"] = -1] = \"Up\";\n SliderKeyDirection2[SliderKeyDirection2[\"ArrowUp\"] = -1] = \"ArrowUp\";\n SliderKeyDirection2[SliderKeyDirection2[\"Right\"] = 1] = \"Right\";\n SliderKeyDirection2[SliderKeyDirection2[\"ArrowRight\"] = 1] = \"ArrowRight\";\n SliderKeyDirection2[SliderKeyDirection2[\"Down\"] = 1] = \"Down\";\n SliderKeyDirection2[SliderKeyDirection2[\"ArrowDown\"] = 1] = \"ArrowDown\";\n return SliderKeyDirection2;\n})(SliderKeyDirection || {});\nvar SliderElement = class extends LitElement {\n constructor() {\n super();\n this._sliderStoreProvider = sliderStoreContext.provide(this);\n this.disabled = false;\n this.value = 50;\n this._step = 1;\n this._keyboardStep = 1;\n this.shiftKeyMultiplier = 5;\n this.customValueText = false;\n this._mediaRemote = new MediaRemoteControl(this);\n this._disconnectDisposal = new DisposalBin();\n this._handlePointerEnter = eventListener(this, \"pointerenter\", () => {\n if (this.disabled)\n return;\n this.setAttribute(\"pointing\", \"\");\n this.store.pointing.set(true);\n });\n this._handlePointerMove = eventListener(this, \"pointermove\", (event) => {\n if (this.disabled || this.isDragging)\n return;\n const value = this._getValueBasedOnThumbPosition(event);\n this.store.pointerValue.set(value);\n this._dispatchPointerValueChange(event);\n });\n this._handlePointerLeave = eventListener(this, \"pointerleave\", () => {\n if (this.disabled)\n return;\n this.removeAttribute(\"pointing\");\n this.store.pointing.set(false);\n });\n this._handlePointerDown = eventListener(this, \"pointerdown\", (event) => {\n if (this.disabled)\n return;\n this._startDragging(event);\n this._onDrag(event);\n });\n this._handleKeydown = eventListener(this, \"keydown\", (event) => {\n if (this.disabled)\n return;\n const { key, shiftKey } = event;\n const isValidKey = Object.keys(SliderKeyDirection).includes(key);\n if (!isValidKey)\n return;\n const modifiedStep = !shiftKey ? this.keyboardStep : this.keyboardStep * this.shiftKeyMultiplier;\n const direction = Number(SliderKeyDirection[key]);\n const diff = modifiedStep * direction;\n const steps = (this.value + diff) / this.step;\n const value = this.step * steps;\n this.value = this._getClampedValue(value);\n this._dispatchValueChange(event);\n });\n this._handleFillValueChange = eventListener(\n this,\n \"vds-slider-value-change\",\n this._updateFillCSSProps.bind(this)\n );\n this._handlePointerValueChange = eventListener(\n this,\n \"vds-slider-pointer-value-change\",\n this._updatePointerCSSProps.bind(this)\n );\n this._onDrag = rafThrottle((event) => {\n if (this.disabled || !this.isDragging)\n return;\n const value = this._getValueBasedOnThumbPosition(event);\n this.store.pointerValue.set(value);\n this._dispatchPointerValueChange(event);\n });\n this._handleDocumentPointerUp = eventListener(\n this,\n \"pointerup\",\n (event) => {\n if (this.disabled || !this.isDragging)\n return;\n this._stopDragging(event);\n },\n { target: document }\n );\n this._handleDocumentTouchMove = eventListener(\n this,\n \"touchmove\",\n (event) => {\n if (this.disabled || !this.isDragging)\n return;\n event.preventDefault();\n },\n { target: document, passive: false }\n );\n this._handleDocumentPointerMove = eventListener(\n this,\n \"pointermove\",\n (event) => {\n if (this.disabled || !this.isDragging)\n return;\n this._onDrag(event);\n },\n { target: document }\n );\n this._lastDispatchedValue = this.value;\n this._dispatchValueChange = rafThrottle((event) => {\n if (this.value === this._lastDispatchedValue)\n return;\n this.dispatchEvent(\n vdsEvent(\"vds-slider-value-change\", {\n detail: this.value,\n triggerEvent: event\n })\n );\n this._lastDispatchedValue = this.value;\n });\n this._lastDispatchedPointerValue = this.pointerValue;\n this._dispatchPointerValueChange = rafThrottle((event) => {\n if (this.pointerValue === this._lastDispatchedPointerValue)\n return;\n const events = [\n \"vds-slider-pointer-value-change\",\n this.isDragging && \"vds-slider-drag-value-change\"\n ];\n events.forEach((eventType) => {\n if (eventType) {\n this.dispatchEvent(\n vdsEvent(eventType, {\n detail: this.pointerValue,\n triggerEvent: event\n })\n );\n }\n });\n this._lastDispatchedPointerValue = this.pointerValue;\n });\n if (false)\n logElementLifecycle(this);\n focusVisiblePolyfill(this);\n }\n static get styles() {\n return [sliderElementStyles];\n }\n static get parts() {\n return [];\n }\n get store() {\n return this._sliderStoreProvider.value;\n }\n get min() {\n return get(this.store.min);\n }\n set min(newMin) {\n this.store.min.set(newMin);\n }\n get max() {\n return get(this.store.max);\n }\n set max(newMax) {\n this.store.max.set(newMax);\n }\n get step() {\n return this._step;\n }\n set step(newStep) {\n this._step = newStep;\n }\n get keyboardStep() {\n return this._keyboardStep;\n }\n set keyboardStep(newStep) {\n this._keyboardStep = newStep;\n }\n get isDragging() {\n return get(this.store.dragging);\n }\n get fillRate() {\n const range = this.max - this.min, offset = this.value - this.min;\n return range > 0 ? offset / range : 0;\n }\n get fillPercent() {\n return this.fillRate * 100;\n }\n get pointerValue() {\n return get(this.store.pointerValue);\n }\n get pointerRate() {\n const range = this.max - this.min, offset = this.pointerValue - this.min;\n return range > 0 ? offset / range : 0;\n }\n get pointerPercent() {\n return this.pointerRate * 100;\n }\n connectedCallback() {\n super.connectedCallback();\n this._setupAriaAttrs();\n this._updateFillCSSProps();\n this._updatePointerCSSProps();\n this._disconnectDisposal.add(\n this.store.interactive.subscribe(($interactive) => {\n setAttribute(this, \"interactive\", $interactive);\n })\n );\n }\n willUpdate(changedProperties) {\n if (changedProperties.has(\"value\") || changedProperties.has(\"min\") || changedProperties.has(\"max\")) {\n this.value = this._getClampedValue(this.value);\n this.store.value.set(this.value);\n this._updateFillCSSProps();\n this._dispatchValueChange();\n }\n if (changedProperties.has(\"disabled\") && this.disabled) {\n this.store.dragging.set(false);\n this.store.pointing.set(false);\n this.removeAttribute(\"dragging\");\n this.removeAttribute(\"pointing\");\n this.removeAttribute(\"interactive\");\n setAttribute(this, \"aria-disabled\", this.disabled);\n }\n if (!this.customValueText) {\n this._updateAriaValueAttrs();\n }\n super.willUpdate(changedProperties);\n }\n disconnectedCallback() {\n this._onDrag.cancel();\n this._disconnectDisposal.empty();\n super.disconnectedCallback();\n }\n _updateFillCSSProps() {\n setCSSProperty(this, \"fill-value\", `${this.value}`);\n setCSSProperty(this, \"fill-rate\", `${this.fillRate}`);\n setCSSProperty(this, \"fill-percent\", `${this.fillPercent}%`);\n }\n _updatePointerCSSProps() {\n setCSSProperty(this, \"pointer-value\", `${this.pointerValue}`);\n setCSSProperty(this, \"pointer-rate\", `${this.pointerRate}`);\n setCSSProperty(this, \"pointer-percent\", `${this.pointerPercent}%`);\n }\n render() {\n return this._renderSlider();\n }\n _renderSlider() {\n return html`${this._renderDefaultSlot()}`;\n }\n _renderDefaultSlot() {\n return html`<slot></slot>`;\n }\n _setupAriaAttrs() {\n setAttributeIfEmpty(this, \"role\", \"slider\");\n setAttributeIfEmpty(this, \"tabindex\", \"0\");\n setAttributeIfEmpty(this, \"aria-orientation\", \"horizontal\");\n setAttributeIfEmpty(this, \"autocomplete\", \"off\");\n }\n _updateAriaValueAttrs() {\n this.setAttribute(\"aria-valuemin\", this._getValueMin());\n this.setAttribute(\"aria-valuenow\", this._getValueNow());\n this.setAttribute(\"aria-valuemax\", this._getValueMax());\n this.setAttribute(\"aria-valuetext\", this._getValueText());\n }\n _getValueMin() {\n return String(this.min);\n }\n _getValueNow() {\n return String(this.value);\n }\n _getValueMax() {\n return String(this.max);\n }\n _getValueText() {\n return `${round(this.value / this.max * 100, 2)}%`;\n }\n _startDragging(event) {\n if (this.isDragging)\n return;\n this.store.dragging.set(true);\n this.setAttribute(\"dragging\", \"\");\n const value = this._getValueBasedOnThumbPosition(event);\n this.store.pointerValue.set(value);\n this._dispatchPointerValueChange(event);\n this.dispatchEvent(\n vdsEvent(\"vds-slider-drag-start\", {\n triggerEvent: event,\n detail: this.value\n })\n );\n this._mediaRemote.pauseUserIdle(event);\n }\n _stopDragging(event) {\n if (!this.isDragging)\n return;\n this.store.dragging.set(false);\n this._dispatchValueChange.cancel();\n this.removeAttribute(\"dragging\");\n const value = this._getValueBasedOnThumbPosition(event);\n this.value = value;\n this.store.pointerValue.set(value);\n this._dispatchValueChange(event);\n this._dispatchPointerValueChange(event);\n this.dispatchEvent(\n vdsEvent(\"vds-slider-drag-end\", {\n triggerEvent: event,\n detail: this.value\n })\n );\n this._mediaRemote.resumeUserIdle(event);\n }\n _getClampedValue(value) {\n return clampNumber(this.min, round(value, getNumberOfDecimalPlaces(this.step)), this.max);\n }\n _getValueFromRate(rate) {\n const boundRate = clampNumber(0, rate, 1);\n const range = this.max - this.min;\n const fill = range * boundRate;\n const stepRatio = Math.round(fill / this.step);\n const steps = this.step * stepRatio;\n return this.min + steps;\n }\n _getValueBasedOnThumbPosition(event) {\n const thumbClientX = event.clientX;\n const { left: trackLeft, width: trackWidth } = this.getBoundingClientRect();\n const thumbPositionRate = (thumbClientX - trackLeft) / trackWidth;\n return this._getValueFromRate(thumbPositionRate);\n }\n};\n__decorateClass([\n property({ type: Number })\n], SliderElement.prototype, \"min\", 1);\n__decorateClass([\n property({ type: Number })\n], SliderElement.prototype, \"max\", 1);\n__decorateClass([\n property({ reflect: true, type: Boolean })\n], SliderElement.prototype, \"disabled\", 2);\n__decorateClass([\n property({ type: Number })\n], SliderElement.prototype, \"value\", 2);\n__decorateClass([\n property({ type: Number })\n], SliderElement.prototype, \"step\", 1);\n__decorateClass([\n property({ attribute: \"keyboard-step\", type: Number })\n], SliderElement.prototype, \"keyboardStep\", 1);\n__decorateClass([\n property({ attribute: \"shift-key-multiplier\", type: Number })\n], SliderElement.prototype, \"shiftKeyMultiplier\", 2);\n__decorateClass([\n property({ type: Boolean, attribute: \"custom-value-text\" })\n], SliderElement.prototype, \"customValueText\", 2);\n\nexport {\n SliderKeyDirection,\n SliderElement\n};\n","import {\n SliderElement\n} from \"./chunk.33ZMGU5I.js\";\nimport {\n mediaStoreSubscription\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/time-slider/TimeSliderElement.ts\nimport {\n eventListener,\n formatSpokenTime,\n isKeyboardEvent,\n setAttributeIfEmpty,\n throttle\n} from \"@vidstack/foundation\";\nimport { property, state } from \"lit/decorators.js\";\n\n// src/ui/time-slider/styles.ts\nimport { css } from \"lit\";\nvar timeSliderElementStyles = css``;\n\n// src/ui/time-slider/TimeSliderElement.ts\nvar TimeSliderElement = class extends SliderElement {\n constructor() {\n super();\n this._step = 0.1;\n this.value = 0;\n this.valueText = \"{currentTime} out of {duration}\";\n this.pauseWhileDragging = false;\n this.seekingRequestThrottle = 100;\n this.__mediaDuration = 0;\n this.__mediaPaused = true;\n this._handleSliderDragStart = eventListener(\n this,\n \"vds-slider-drag-start\",\n (event) => {\n this._togglePlaybackWhileDragging(event);\n }\n );\n this._handleSliderValueChange = eventListener(\n this,\n \"vds-slider-value-change\",\n (event) => {\n if (isKeyboardEvent(event.originEvent)) {\n this._dispatchSeekingRequest.cancel();\n this._mediaRemote.seek(this.value, event);\n }\n }\n );\n this._handleSliderDragValueChange = eventListener(\n this,\n \"vds-slider-drag-value-change\",\n (event) => {\n this._dispatchSeekingRequest(event);\n }\n );\n this._handleSliderDragEnd = eventListener(this, \"vds-slider-drag-end\", (event) => {\n this._dispatchSeekingRequest.cancel();\n this._mediaRemote.seek(this.value, event);\n this._togglePlaybackWhileDragging(event);\n });\n this._dispatchSeekingRequest = throttle((event) => {\n this._mediaRemote.seeking(this.value, event);\n }, this.seekingRequestThrottle);\n this._wasPlayingBeforeDragStart = false;\n mediaStoreSubscription(this, \"currentTime\", ($currentTime) => {\n this.value = $currentTime;\n });\n mediaStoreSubscription(this, \"duration\", ($duration) => {\n this.__mediaDuration = $duration;\n this.requestUpdate(\"max\");\n });\n mediaStoreSubscription(this, \"paused\", ($paused) => {\n this.__mediaPaused = $paused;\n });\n }\n static get styles() {\n return [super.styles, timeSliderElementStyles];\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"aria-label\", \"Media time\");\n }\n get min() {\n return 0;\n }\n set min(_) {\n }\n get max() {\n return this.__mediaDuration;\n }\n set max(_) {\n }\n update(changedProperties) {\n if (changedProperties.has(\"disabled\") && this.disabled) {\n this._dispatchSeekingRequest.cancel();\n }\n super.update(changedProperties);\n }\n disconnectedCallback() {\n this._dispatchSeekingRequest.cancel();\n super.disconnectedCallback();\n }\n _getValueMin() {\n return \"0%\";\n }\n _getValueNow() {\n return `${Math.round(this.fillPercent)}%`;\n }\n _getValueText() {\n return this.valueText.replace(\"{currentTime}\", formatSpokenTime(this.value)).replace(\"{duration}\", formatSpokenTime(this.__mediaDuration));\n }\n _getValueMax() {\n return \"100%\";\n }\n _togglePlaybackWhileDragging(event) {\n if (!this.pauseWhileDragging)\n return;\n if (this.isDragging && !this.__mediaPaused) {\n this._wasPlayingBeforeDragStart = true;\n this._mediaRemote.pause(event);\n } else if (this._wasPlayingBeforeDragStart && !this.isDragging && this.__mediaPaused) {\n this._wasPlayingBeforeDragStart = false;\n this._mediaRemote.play(event);\n }\n }\n};\n__decorateClass([\n property({ attribute: false, state: true })\n], TimeSliderElement.prototype, \"value\", 2);\n__decorateClass([\n property({ attribute: false })\n], TimeSliderElement.prototype, \"min\", 1);\n__decorateClass([\n property({ attribute: false })\n], TimeSliderElement.prototype, \"max\", 1);\n__decorateClass([\n property({ attribute: \"value-text\" })\n], TimeSliderElement.prototype, \"valueText\", 2);\n__decorateClass([\n property({ attribute: \"pause-while-dragging\", type: Boolean })\n], TimeSliderElement.prototype, \"pauseWhileDragging\", 2);\n__decorateClass([\n property({ attribute: \"seeking-request-throttle\", type: Number })\n], TimeSliderElement.prototype, \"seekingRequestThrottle\", 2);\n__decorateClass([\n state()\n], TimeSliderElement.prototype, \"__mediaDuration\", 2);\n__decorateClass([\n state()\n], TimeSliderElement.prototype, \"__mediaPaused\", 2);\n\nexport {\n TimeSliderElement\n};\n","import {\n TimeSliderElement\n} from \"./chunk.JA2WRFAV.js\";\n\n// src/define/vds-time-slider.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-time-slider\", TimeSliderElement);\n","import {\n SliderElement\n} from \"./chunk.33ZMGU5I.js\";\nimport {\n mediaStoreSubscription\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/volume-slider/VolumeSliderElement.ts\nimport { eventListener, round, setAttributeIfEmpty } from \"@vidstack/foundation\";\nimport { property } from \"lit/decorators.js\";\nvar VolumeSliderElement = class extends SliderElement {\n constructor() {\n super();\n this.value = 100;\n this._handleSliderValueChange = eventListener(\n this,\n \"vds-slider-value-change\",\n this._changeVolume.bind(this)\n );\n this._handleSliderDragValueChange = eventListener(\n this,\n \"vds-slider-drag-value-change\",\n this._changeVolume.bind(this)\n );\n mediaStoreSubscription(this, \"volume\", ($volume) => {\n this.value = $volume * 100;\n });\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"aria-label\", \"Media volume\");\n }\n get min() {\n return 0;\n }\n set min(_) {\n }\n get max() {\n return 100;\n }\n set max(_) {\n }\n _changeVolume(event) {\n const newVolume = event.detail;\n const mediaVolume = round(newVolume / 100, 3);\n this._mediaRemote.changeVolume(mediaVolume, event);\n }\n};\n__decorateClass([\n property({ attribute: false })\n], VolumeSliderElement.prototype, \"min\", 1);\n__decorateClass([\n property({ attribute: false })\n], VolumeSliderElement.prototype, \"max\", 1);\n__decorateClass([\n property({ attribute: false, state: true })\n], VolumeSliderElement.prototype, \"value\", 2);\n\nexport {\n VolumeSliderElement\n};\n","import {\n VolumeSliderElement\n} from \"./chunk.63ZIHMNQ.js\";\n\n// src/define/vds-volume-slider.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-volume-slider\", VolumeSliderElement);\n","import {\n sliderStoreContext\n} from \"./chunk.CQHSYXO3.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/slider/SliderValueTextElement.ts\nimport { derived, DisposalBin, formatTime, round } from \"@vidstack/foundation\";\nimport { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nvar SliderValueTextElement = class extends LitElement {\n constructor() {\n super(...arguments);\n this._disposal = new DisposalBin();\n this._sliderStoreConsumer = sliderStoreContext.consume(this);\n this.__value = 0;\n this.type = \"current\";\n this.showHours = false;\n this.padHours = false;\n this.decimalPlaces = 2;\n }\n static get styles() {\n return [\n css`:host{display:inline-block;contain:content}:host([hidden]){display:none}`\n ];\n }\n get _sliderStore() {\n return this._sliderStoreConsumer.value;\n }\n connectedCallback() {\n super.connectedCallback();\n this._handleTypeChange();\n }\n update(changedProperties) {\n if (changedProperties.has(\"type\") || changedProperties.has(\"format\")) {\n this._handleTypeChange();\n }\n super.update(changedProperties);\n }\n disconnectedCallback() {\n this._disposal.empty();\n super.disconnectedCallback();\n }\n render() {\n return html`${this._getValueText()}`;\n }\n _handleTypeChange() {\n this._disposal.empty();\n const valueStore = this._sliderStore[this.type === \"current\" ? \"value\" : \"pointerValue\"];\n const store = this.format === \"percent\" ? this._createPercentStore(valueStore) : valueStore;\n const unsub = store.subscribe(($value) => {\n this.__value = $value;\n });\n this._disposal.add(unsub);\n }\n _createPercentStore(valueStore) {\n return derived(\n [valueStore, this._sliderStore.min, this._sliderStore.max],\n ([$value, $min, $max]) => {\n const range = $max - $min;\n return $value / range * 100;\n }\n );\n }\n _getValueText() {\n switch (this.format) {\n case \"percent\":\n return this._getPercentFormat();\n case \"time\":\n return this._getTimeFormat();\n default:\n return `${this.__value}`;\n }\n }\n _getPercentFormat() {\n return `${round(this.__value, this.decimalPlaces)}%`;\n }\n _getTimeFormat() {\n return formatTime(this.__value, this.padHours, this.showHours);\n }\n};\n__decorateClass([\n state()\n], SliderValueTextElement.prototype, \"__value\", 2);\n__decorateClass([\n property()\n], SliderValueTextElement.prototype, \"type\", 2);\n__decorateClass([\n property()\n], SliderValueTextElement.prototype, \"format\", 2);\n__decorateClass([\n property({ attribute: \"show-hours\", type: Boolean })\n], SliderValueTextElement.prototype, \"showHours\", 2);\n__decorateClass([\n property({ attribute: \"pad-hours\", type: Boolean })\n], SliderValueTextElement.prototype, \"padHours\", 2);\n__decorateClass([\n property({ attribute: \"decimal-places\", type: Number })\n], SliderValueTextElement.prototype, \"decimalPlaces\", 2);\n\nexport {\n SliderValueTextElement\n};\n","import {\n SliderValueTextElement\n} from \"./chunk.7KY74HUU.js\";\n\n// src/define/vds-slider-value-text.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-slider-value-text\", SliderValueTextElement);\n","import {\n mediaStoreContext\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/time/TimeElement.ts\nimport { derived, DisposalBin, formatTime } from \"@vidstack/foundation\";\nimport { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nvar TimeElement = class extends LitElement {\n constructor() {\n super(...arguments);\n this._disposal = new DisposalBin();\n this._mediaStoreConsumer = mediaStoreContext.consume(this);\n this.__seconds = 0;\n this.type = \"current\";\n this.showHours = false;\n this.padHours = false;\n this.remainder = false;\n }\n static get styles() {\n return [\n css`:host{display:inline-block;contain:content}:host([hidden]){display:none}`\n ];\n }\n get _mediaStore() {\n return this._mediaStoreConsumer.value;\n }\n connectedCallback() {\n super.connectedCallback();\n this._handleTypeChange();\n }\n update(changedProperties) {\n if (changedProperties.has(\"type\") || changedProperties.has(\"remainder\")) {\n this._handleTypeChange();\n }\n super.update(changedProperties);\n }\n disconnectedCallback() {\n this._disposal.empty();\n super.disconnectedCallback();\n }\n render() {\n return html`${this._getFormattedTime()}`;\n }\n _handleTypeChange() {\n this._disposal.empty();\n const store = this._getTypeStore();\n const unsub = (this.remainder ? this._createRemainderStore(store) : store).subscribe(\n ($seconds) => {\n this.__seconds = $seconds;\n }\n );\n this._disposal.add(unsub);\n }\n _getTypeStore() {\n switch (this.type) {\n case \"buffered\":\n return this._mediaStore.bufferedAmount;\n case \"seekable\":\n return this._mediaStore.seekableAmount;\n case \"duration\":\n return this._mediaStore.duration;\n default:\n return this._mediaStore.currentTime;\n }\n }\n _createRemainderStore(secondsStore) {\n return derived(\n [secondsStore, this._mediaStore.duration],\n ([$seconds, $duration]) => Math.max(0, $duration - $seconds)\n );\n }\n _getFormattedTime() {\n return formatTime(this.__seconds, this.padHours, this.showHours);\n }\n};\n__decorateClass([\n state()\n], TimeElement.prototype, \"__seconds\", 2);\n__decorateClass([\n property()\n], TimeElement.prototype, \"type\", 2);\n__decorateClass([\n property({ attribute: \"show-hours\", type: Boolean })\n], TimeElement.prototype, \"showHours\", 2);\n__decorateClass([\n property({ attribute: \"pad-hours\", type: Boolean })\n], TimeElement.prototype, \"padHours\", 2);\n__decorateClass([\n property({ type: Boolean })\n], TimeElement.prototype, \"remainder\", 2);\n\nexport {\n TimeElement\n};\n","import {\n TimeElement\n} from \"./chunk.K4RXYACL.js\";\n\n// src/define/vds-time.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-time\", TimeElement);\n",":host {\n ::slotted([slot=\"transcript\"]) {\n margin: 0;\n\n br {\n @include spaceCurve('margin-bottom', 'regular');\n content: \" \";\n display: block;\n }\n }\n}\n\n.stzh-audio {\n display: block;\n contain: none;\n\n &__audio {\n @include visuallyhidden;\n }\n\n &__controls,\n &__transcript {\n @include spaceCurve('padding-left', 'regular');\n @include spaceCurve('padding-right', 'regular');\n }\n\n &__controls {\n @include spaceCurve('padding-bottom', 'tiny');\n padding-top: space('large');\n position: relative;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n background-color: $colorGrey20;\n }\n\n\t&__controls-top,\n\t&__controls-bottom,\n &__controls-bottom-left,\n &__controls-bottom-right {\n\t\tdisplay: flex;\n\t\talign-items: center;\n }\n\n\t&__controls-top {\n\t\tmargin-bottom: space('small');\n\t}\n\n\t&__controls-bottom {\n\t\tdisplay: flex;\n flex-direction: column;\n align-items: stretch;\n\n @include mq($from: small) {\n flex-direction: row;\n align-items: center;\n }\n\t}\n\n &__controls-bottom-left {\n\t\tmargin-bottom: space('xsmall');\n\n @include mq($from: small) {\n flex-grow: 1;\n margin-bottom: 0;\n }\n }\n\n &__controls-bottom-right {\n align-self: flex-end;\n }\n\n &__transcript {\n @include fontCurve('p1');\n @include spaceCurve('padding-top', 'regular');\n @include spaceCurve('padding-bottom', 'medium');\n background-color: $colorGrey10;\n // line-height: 2.5;\n }\n\n &__button {\n &.is-play,\n &.is-mute,\n &.is-transcript {\n margin-right: space('xsmall');\n }\n\n &.is-mute {\n margin-left: auto;\n\n @include mq($from: small) {\n margin-left: 0px;\n }\n }\n\n width: 44px;\n height: 44px;\n display: grid;\n place-items: center;\n appearance: none;\n background-color: transparent;\n border: none;\n border-radius: $buttonBorderRadius;\n transition-duration: $baseTransitionAnimationSpeed;\n transition-property: color, background-color;\n color: $colorPrimary70;\n\n // use if needed for active transcript state\n // &.is-active {\n // }\n\n &:hover {\n color: $colorPrimary80;\n background-color: $colorSecondary20;\n }\n }\n\n &__loader-overlay {\n display: grid;\n place-items: center;\n position: absolute;\n z-index: 3;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: $colorWhite;\n opacity: 0;\n visibility: hidden;\n }\n\n &__time {\n @include fontSize('milli');\n color: $colorGrey70;\n display: inline-flex;\n margin-right: space('xlarge');\n }\n\n &__time-separator {\n margin: 0 space('xxsmall');\n }\n\n &__slider {\n --height: 16px;\n --thumb-width: 16px;\n --track-height: 6px;\n\n cursor: pointer;\n display: flex;\n align-items: center;\n height: var(--height);\n\n &.is-time {\n flex-grow: 1;\n }\n\n &.is-volume {\n --track-height: 4px;\n\n flex-grow: 1;\n min-width: 80px;\n max-width: 120px;\n\n @include mq($from: small) {\n display: flex;\n margin-right: auto;\n }\n }\n }\n\n &__slider-track {\n width: 100%;\n height: var(--track-height);\n position: absolute;\n top: 50%;\n left: 0;\n z-index: 0;\n transform: translateY(-50%);\n background-color: $colorBlack20op;\n transition: background-color $baseTransitionAnimationSpeed;\n }\n\n &__slider:hover &__slider-track {\n background-color: $colorBlack30op;\n }\n\n &__slider-track.is-fill {\n background-color: $colorSecondary40;\n transform-origin: left center;\n transform: translateY(-50%);\n width: calc(var(--vds-fill-rate) * 100%);\n z-index: 1; // above track\n }\n\n &__slider:hover &__slider-track.is-fill {\n background-color: $colorSecondary50;\n }\n\n &__slider.is-volume &__slider-track,\n &__slider.is-volume:hover &__slider-track {\n background-color: $colorBlack20op;\n }\n\n &__slider.is-volume &__slider-track.is-fill,\n &__slider.is-volume:hover &__slider-track.is-fill {\n background-color: $colorBlack50op;\n }\n\n &__slider-thumb-container {\n opacity: 0;\n transition: opacity $baseTransitionAnimationSpeed;\n position: absolute;\n top: 0;\n left: var(--vds-fill-percent);\n width: var(--thumb-width);\n height: 100%;\n transform: translateX(-50%); // re-center along x-axis\n z-index: 2; // above track fill\n\n &.is-shown {\n opacity: 1;\n }\n }\n\n &__slider:hover &__slider-thumb-container {\n opacity: 1;\n }\n\n &__slider[dragging] &__slider-thumb-container {\n opacity: 1;\n left: var(--vds-pointer-percent);\n }\n\n &__slider-thumb {\n position: absolute;\n top: 50%;\n left: 0;\n width: var(--thumb-width);\n height: var(--thumb-width);\n border-radius: 50%;\n background-color: $colorWhite;\n border: 2px solid $colorPrimary70;\n transform: translateY(-50%);\n }\n\n &__media-preview-container {\n --width: 42px;\n --width-half: calc(var(--width) / 2);\n --top: -24px;\n\n // clamp video to left and right of slider\n --left-clamp: max(var(--width-half), var(--vds-pointer-percent));\n --right-clamp: calc(100% - var(--width-half));\n --left: min(var(--left-clamp), var(--right-clamp));\n\n @include tooltip-dropshadow;\n display: grid;\n place-items: center;\n position: absolute;\n width: auto;\n width: (--width);\n top: var(--top);\n left: var(--left);\n opacity: 0;\n transition: opacity $baseTransitionAnimationSpeed;\n // re-position to center\n transform: translateX(-50%);\n z-index: $zIndexPopover;\n border-radius: $tooltipBorderRadius;\n background-color: $colorCoolgrey60;\n color: $colorWhite;\n }\n\n &__slider.is-time &__media-preview-container,\n &__slider.is-volume &__media-preview-container {\n width: auto;\n padding: space('xxsmall');\n }\n\n // show preview while device pointer is inside slider\n &__slider[pointing] &__media-preview-container {\n opacity: 1;\n }\n\n &__slider-text {\n @include tooltip-fontsize;\n }\n\n /* Variants */\n\n // avoid double controls on iOS when in fullscreen.\n &[hide-ui] &__controls {\n opacity: 0;\n visibility: hidden;\n }\n\n // show controls if autoplay fails\n &[autoplay-error] &__controls {\n opacity: 1;\n }\n\n // show buffering indicator while media is not ready, or buffering\n &:not([can-play]) &__loader-overlay,\n &[waiting] &__loader-overlay {\n opacity: 0.8;\n visibility: visible;\n }\n\n // hide pause text when media _is_ paused\n &[paused] &__paused {\n display: none;\n }\n\n // hide play text when media _is not_ paused\n &:not([paused]) &__played {\n display: none;\n }\n\n // hide mute text when media _is_ muted\n &[muted] &__muted {\n display: none;\n }\n\n // hide unmute text when media _is not_ muted\n &:not([muted]) &__unmuted {\n display: none;\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Event,\n EventEmitter,\n Method\n} from \"@stencil/core\";\n\nimport {\n StzhAudioPlayEvent,\n StzhAudioPlayingEvent,\n StzhAudioPauseEvent,\n StzhAudioReplayEvent,\n StzhAudioEndEvent,\n StzhAudioEndedEvent,\n StzhAudioErrorEvent\n} from \"../../index\"\n\nimport \"@vidstack/player/dist/prod/define/vds-media.js\";\nimport \"@vidstack/player/dist/prod/define/vds-audio.js\";\nimport \"@vidstack/player/dist/prod/define/vds-play-button.js\";\nimport \"@vidstack/player/dist/prod/define/vds-mute-button.js\";\nimport \"@vidstack/player/dist/prod/define/vds-time-slider.js\";\nimport \"@vidstack/player/dist/prod/define/vds-volume-slider.js\";\nimport \"@vidstack/player/dist/prod/define/vds-slider-value-text.js\";\nimport \"@vidstack/player/dist/prod/define/vds-time.js\";\n\nimport { hasSlot } from \"../../utils/utils\";\n\nimport { StzhAudioLocalizedText } from './stzh-audio.localization';\n\n/**\n * @slot - Slot for any content\n * @slot transcript - Slot for transcript text\n */\n@Component({\n tag: \"stzh-audio\",\n styleUrl: \"stzh-audio.scss\",\n scoped: true\n})\nexport class StzhAudio {\n /** Translation strings */\n @Prop() localization: StzhAudioLocalizedText;\n\n /** Path to audio file */\n @Prop() src: string = \"\";\n\n /** Preload strategy */\n @Prop() preload: \"none\" | \"metadata\" | \"auto\" = \"none\";\n\n /** Transcript text (alternative for slot) */\n @Prop() transcript: string = \"\";\n\n /** Whether transcript should be shown */\n @Prop({ mutable: true }) transcriptShown: boolean = false;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the download link element.\n * Default value will be taken from translations.\n */\n @Prop() downloadAnalyticsId: string;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the transcript button element.\n * Default value will be taken from translations.\n */\n @Prop() transcriptAnalyticsId: string;\n\n /** Fired when the paused property is changed from true to false, as a result of the play() method, or the autoplay attribute. */\n @Event() stzhPlay: EventEmitter<StzhAudioPlayEvent>;\n\n /** Fired when playback is ready to start after having been paused or delayed due to lack of data. */\n @Event() stzhPlaying: EventEmitter<StzhAudioPlayingEvent>;\n\n /** Fired when a request to pause an activity is handled and the activity has entered its paused state, most commonly after the media has been paused through a call to the pause() method. */\n @Event() stzhPause: EventEmitter<StzhAudioPauseEvent>;\n\n /** Fired when media playback starts again after being in an ended state. This is fired when the loop property is true and media loops, whereas the vds-play event is not. */\n @Event() stzhReplay: EventEmitter<StzhAudioReplayEvent>;\n\n /** Fired each time media playback has reached the end. This is fired even if the loop property is true, which is generally when you'd reach for this event over the MediaEndedEvent if you want to be notified of media looping. */\n @Event() stzhEnd: EventEmitter<StzhAudioEndEvent>;\n\n /** Fired when playback or streaming has stopped because the end of the media was reached or because no further data is available. This is not fired if playback will start from the beginning again due to the loop property being true (see MediaReplayEvent and MediaEndEvent). */\n @Event() stzhEnded: EventEmitter<StzhAudioEndedEvent>;\n\n /** Fired when media loading or playback has encountered any issues (for example, a network connectivity problem). The event detail contains a potential message containing more information about the error (empty string if nothing available), and a code that identifies the general type of error that occurred. */\n @Event() stzhError: EventEmitter<StzhAudioErrorEvent>;\n\n @Element() element: HTMLStzhAudioElement;\n\n @Method()\n async play() {\n this.vsdAudioElement.play();\n }\n\n @Method()\n async pause() {\n this.vsdAudioElement.pause();\n }\n\n private vsdAudioElement: any;\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"audio\");\n }\n }\n\n render() {\n const hasTranscript = !!this.transcript || hasSlot(this.element, \"transcript\");\n const classes = {\n \"stzh-audio\": true\n };\n\n return (\n <Host>\n <vds-media class={classes}>\n <vds-audio\n class=\"stzh-audio__audio\"\n ref={(el) => (this.vsdAudioElement = el as HTMLElement)}\n // events from: https://www.vidstack.io/docs/player/components/providers/audio/api.html#events--vds-progress\n onVds-play={() => {this.stzhPlay.emit({ component: \"stzh-audio\" })}}\n onVds-playing={() => {this.stzhPlaying.emit({ component: \"stzh-audio\" })}}\n onVds-end={() => {this.stzhEnd.emit({ component: \"stzh-audio\" })}}\n onVds-ended={() => {this.stzhEnded.emit({ component: \"stzh-audio\" })}}\n onVds-replay={() => {this.stzhReplay.emit({ component: \"stzh-audio\" })}}\n onVds-error={(e: ErrorEvent) => {this.stzhError.emit({ component: \"stzh-audio\", originalEvent: e })}}\n >\n <audio preload={this.preload} src={this.src}>\n <slot></slot>\n </audio>\n </vds-audio>\n\n <div class=\"stzh-audio__controls\">\n <div class=\"stzh-audio__loader-overlay\">\n <stzh-loader\n class=\"stzh-audio__loader\"\n label={this.localization.loading}\n hide-label\n ></stzh-loader>\n </div>\n\n <div class=\"stzh-audio__controls-top\">\n <vds-time-slider class=\"stzh-audio__slider is-time\">\n <div class=\"stzh-audio__slider-track\"></div>\n <div class=\"stzh-audio__slider-track is-fill\"></div>\n <div class=\"stzh-audio__slider-thumb-container\">\n <div class=\"stzh-audio__slider-thumb\"></div>\n </div>\n <div class=\"stzh-audio__media-preview-container\">\n <vds-slider-value-text class=\"stzh-audio__slider-text\" type=\"pointer\" format=\"time\"></vds-slider-value-text>\n </div>\n </vds-time-slider>\n </div>\n\n <div class=\"stzh-audio__controls-bottom\">\n <div class=\"stzh-audio__controls-bottom-left\">\n <stzh-tooltip>\n <vds-play-button class=\"stzh-audio__button is-play\">\n <stzh-icon class=\"stzh-audio__played\" name=\"play\"></stzh-icon>\n <stzh-icon class=\"stzh-audio__paused\" name=\"pause\"></stzh-icon>\n </vds-play-button>\n <span slot=\"content\">\n <span class=\"stzh-audio__played\">{this.localization.play}</span>\n <span class=\"stzh-audio__paused\">{this.localization.pause}</span>\n </span>\n </stzh-tooltip>\n\n <div class=\"stzh-audio__time\">\n <vds-time type=\"current\"></vds-time>\n <span class=\"stzh-audio__time-separator\">/</span>\n <vds-time type=\"duration\"></vds-time>\n </div>\n\n <stzh-tooltip>\n <vds-mute-button class=\"stzh-audio__button is-mute\">\n <stzh-icon class=\"stzh-audio__muted\" name=\"volume-medium\"></stzh-icon>\n <stzh-icon class=\"stzh-audio__unmuted\" name=\"silent-mode\"></stzh-icon>\n </vds-mute-button>\n <span slot=\"content\">\n <span class=\"stzh-audio__muted\">{this.localization.mute}</span>\n <span class=\"stzh-audio__unmuted\">{this.localization.unmute}</span>\n </span>\n </stzh-tooltip>\n\n <vds-volume-slider class=\"stzh-audio__slider is-volume\">\n <div class=\"stzh-audio__slider-track\"></div>\n <div class=\"stzh-audio__slider-track is-fill\"></div>\n <div class=\"stzh-audio__slider-thumb-container is-shown\">\n <div class=\"stzh-audio__slider-thumb\"></div>\n </div>\n <div class=\"stzh-audio__media-preview-container\">\n <vds-slider-value-text class=\"stzh-audio__slider-text\" type=\"pointer\" format=\"percent\"></vds-slider-value-text>\n </div>\n </vds-volume-slider>\n </div>\n\n <div class=\"stzh-audio__controls-bottom-right\">\n {hasTranscript &&\n <stzh-tooltip\n content={this.transcriptShown ? this.localization.hideTranscript : this.localization.showTranscript}\n >\n <button\n class={{\n \"stzh-audio__button is-transcript\": true,\n \"is-active\": this.transcriptShown\n }}\n onClick={() => this.transcriptShown = !this.transcriptShown}\n s-object-id={this.transcriptAnalyticsId || (this.transcriptShown ? this.localization.hideTranscript : this.localization.showTranscript)}\n >\n <stzh-icon name=\"transcript\"></stzh-icon>\n </button>\n </stzh-tooltip>\n }\n\n <stzh-tooltip content={this.localization.download}>\n <a\n class=\"stzh-audio__button is-download\"\n href={this.src}\n download=\"\"\n s-object-id={this.downloadAnalyticsId || this.localization.download}\n >\n <stzh-icon name=\"download\"></stzh-icon>\n </a>\n </stzh-tooltip>\n </div>\n </div>\n </div>\n\n <div class=\"stzh-audio__transcript\" hidden={!this.transcriptShown}>\n {this.transcript ? this.transcript : <slot name=\"transcript\"></slot>}\n </div>\n </vds-media>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["t","i","window","s","trustedTypes","e","createPolicy","createHTML","o","n","Math","random","slice","l","h","r","document","u","createComment","d","c","Array","isArray","v","Symbol","iterator","a","f","_","m","p","RegExp","g","$","y","w","_$litType$","strings","values","x","T","for","A","E","WeakMap","C","createTreeWalker","P","hasOwnProperty","Error","V","length","lastIndex","exec","test","startsWith","push","N","constructor","this","parts","el","createElement","currentNode","content","firstChild","remove","append","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","toLowerCase","split","type","index","name","ctor","H","L","z","k","removeAttribute","tagName","textContent","emptyScript","data","indexOf","innerHTML","S","_$Co","_$Cl","_$litDirective$","_$AO","call","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","Z","_$AI","_$AH","_$AA","_$AB","options","_$Cp","isConnected","startNode","endNode","_$AR","insertBefore","createTextNode","_$AC","get","set","_$AP","setConnected","element","fill","String","j","setAttribute","super","arguments","I","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","B","litHtmlPolyfillSupport","litHtmlVersions","D","renderBefore","_$litPart$","functionDebounce","debounce","fn","wait","callFirst","timeout","debouncedFn","clear","clearTimeout","flush","debounceWrapper","apply","context","args","callNow","setTimeout","cancel","functionThrottle","throttle","interval","timeoutId","throttledFn","leading","trailing","throttleWrapper","listen","target","listener","DisposalBin","_disposal","add","callbacks","forEach","cb","empty","eventListener","off","attach","addController","hostConnected","hostDisconnected","VdsEvent","CustomEvent","eventInit","triggerEvent","Object","defineProperties","originEvent","getOriginEvent","isOriginTrusted","isTrusted","vdsEvent","event","appendTriggerEvent","orphanConsumers","Map","ContextConsumerController","_host","initialValue","_options","_registrationCallbacks","_connect","id","value","registered","setValue","dispatchEvent","bubbles","composed","detail","orphans","whenRegistered","callback","adoptOrphans","provider","adoptees","filter","contains","ContextProviderController","_initValue","_stopDisposal","_value","start","bind","stop","dispose","_handleConsumerConnect","orphan","consumer","stopImmediatePropagation","createContext","initValue","consume","provide","isContext","description","noop","safeNotEqual","b","isNull","isUndefined","isNil","isNumber","Number","isNaN","isString","isFunction","discoverers","discoverables","connect","discoverable2","onDisconnect","from","find","discover","discoverer","Set","delete","discoverable","eventType","register","disconnectDisposal","IS_CLIENT","UA","navigator","userAgent","IS_IOS","platform","IS_CHROME","chrome","safari","canOrientScreen","screen","orientation","lock","unlock","key","fullscreenEnabled","fullscreenElement","requestFullscreen","exitFullscreen","fullscreenchange","fullscreenerror","fullscreen","webkit","moz","ms","document2","vendor","keys","fscreen","requestFullscreenFunction","fullscreenPseudoClass","handler","Boolean","val","onfullscreenchange","onfullscreenerror","fscreen_esm_default","LOCAL_STORAGE_KEY","getSavedColors","localStorage","colors2","JSON","parse","getItem","entries","freeze","silent","error","warn","info","debug","round","num","decimalPlaces","toFixed","clampNumber","min","max","getNumberOfDecimalPlaces","FullscreenController","_screenOrientationController","_logger","_listenerDisposal","_handleHostDisconnected","isFullscreen","isSupported","isSupportedNatively","isNativeFullscreen","matches","_addFullscreenChangeEventListener","_addFullscreenErrorEventListener","enterFullscreen","_throwIfNoFullscreenSupport","_handleFullscreenChange","_handleFullscreenError","response","_makeEnterFullscreenRequest","_lockScreenOrientation","_makeExitFullscreenRequest","_unlockScreenOrientation","_shouldOrientScreen","canOrient","screenOrientationLock","FocusVisibleController","disposal","hadKeyboardEvent","metaKey","altKey","ctrlKey","classList","focusVisiblePolyfill","IntersectionController","config","_callback","_skipInitial","_unobservedUpdate","skipInitial","intersectionObserverInit","_target","IntersectionObserver","_observer","unobservedUpdate","handleChanges","requestUpdate","observe","_disconnect","hostUpdated","pendingRecords","takeRecords","unobserve","disconnect","createIntersectionController","params","deferredPromise","resolve","reject","promise","Promise","res","rej","RequestQueue","_requestQueue","_requestKeys","_pendingFlush","_isServing","isServing","size","waitForFlush","queue","key2","serve","_flush","requestKey","_release","_empty","destroy","hostRequestQueue","q","ScreenOrientationController","_isScreenOrientationLocked","_updateScreenOrientation","_handleHostConnected","_addScreenOrientationEventListeners","currentOrientation","_screenOrientation","isLocked","lockType","_throwIfScreenOrientationUnavailable","_addScreenOrientationChangeEventListener","_handleOrientationChange","keysOf","obj","storeSubscription","store","onChange","unsubscribe","subscribe","subscriberQueue","readable","writable","subscribers","newValue","runQueue","subscriber","update","updater","run","invalidate","derived","stores","single","storesArray","auto","initialized","pending","cleanup","sync","result","unsubscribers","map","fn2","getStoreValue","storeRecordSubscription","copyStoreRecords","storeRecordA","storeRecordB","storeA","storeB","valA","valB","unwrapStoreRecord","Proxy","has","Reflect","ownKeys","getOwnPropertyDescriptor","isScalarArrayEqual","arrayA","arrayB","every","raf","rafId","requestAnimationFrame","async","safelyDefineCustomElement","isClient","isElementRegistered","customElements","define","attrName","attrValue","setAttributeIfEmpty","hasAttribute","setCSSProperty","prefix","style","setProperty","getSlottedChildren","selector","slot","shadowRoot","querySelector","assignedNodes","flatten","prototype","node","Node","ELEMENT_NODE","requestIdleCallback","idle","readyState","isKeyboardEvent","isKeyboardClick","camelToKebabCase","str","replace","padNumberWithZeroes","expectedLength","actualLength","shouldPad","padLength","padding","repeat","parseTime","duration","hours","trunc","minutes","seconds","fraction","toPrecision","formatTime","shouldPadHours","shouldAlwaysShowHours","paddedHours","paddedMinutes","paddedSeconds","formatSpokenTime","spokenParts","pluralize","word","join","rafThrottle","func","cancelAnimationFrame","throttled","mediaProviderElementContext","rangeCheck","fnName","maxIndex","getRange","valueIndex","ranges","rangeIndex","createTimeRangesObj","throwEmptyError","end","createTimeRanges","MEDIA_STORE_DEFAULTS","autoplay","autoplayError","buffered","bufferedAmount","canLoad","canPlay","canFullscreen","controls","poster","currentSrc","currentTime","ended","userIdle","loop","mediaType","muted","paused","played","playing","playsinline","seekable","seekableAmount","seeking","src","started","viewType","volume","waiting","createMediaStore","prop","DO_NOT_RESET_ON_SRC_CHANGE","softResetMediaStore","resetMediaStore","mediaStoreContext","mediaStoreSubscription","property","__defProp","defineProperty","__getOwnPropDesc","__decorateClass","decorators","kind","decorator","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","_$cssResult$","cssText","styleSheet","replaceSync","toString","reduce","adoptedStyleSheets","litNonce","appendChild","cssRules","reactiveElementPolyfillSupport","toAttribute","stringify","fromAttribute","attribute","converter","reflect","hasChanged","HTMLElement","_$Ei","isUpdatePending","hasUpdated","_$El","_$Eu","addInitializer","finalize","observedAttributes","elementProperties","_$Ep","_$Ev","createProperty","state","noAccessor","getPropertyDescriptor","configurable","enumerable","getPropertyOptions","getPrototypeOf","properties","getOwnPropertyNames","getOwnPropertySymbols","elementStyles","finalizeStyles","styles","flat","reverse","unshift","_$E_","enableUpdating","_$AL","_$Eg","_$ES","renderRoot","removeController","splice","createRenderRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","attributeChangedCallback","_$AK","_$EO","_$EC","_$Ej","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","_$Ek","_$AE","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","renderOptions","_$Do","render","finalized","_$litElement$","globalThis","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","descriptor","finisher","placement","originalKey","initializer","mediaProviderDiscoveryId","MediaProviderElement","_disconnectDisposal","loading","_attemptingAutoplay","controllerQueue","_store","_state","connectedQueue","mediaQueue","screenOrientationController","fullscreenController","intersectionController","threshold","isIntersecting","startLoadingMedia","_logMediaEvents","canLoadPoster","changedProperties","html","handleDefaultSlotChange","_updateMediaStoreOnDisconnect","_getVolume","newVolume","oldVol","newVol","_setVolume","_getPaused","newPaused","play","pause","_getCurrentTime","newTime","oldTime","_setCurrentTime","_getMuted","newMuted","oldMuted","_setMuted","newPoster","oldPoster","newLoop","oldLoop","newControls","oldControls","_throwIfNotReadyForPlayback","_resetPlaybackIfEnded","_throwIfNotVideoView","_handleMediaReady","_attemptAutoplay","_handleCurrentSrcChange","newAutoplay","_canAttemptAutoplay","controller","_controller","logLevel","level","idleDelay","delay","attachMediaController","fullscreenOrientation","prevLockType","UserIdleController","_mediaStore","_idle","_mediaPaused","_idlingPaused","_handleIdleChange","$paused","startIdleTimerEvents","_stopIdleTimer","_startIdleTimer","_idleTimeout","_dispatchIdleChange","isIdle","MediaController","DisposalBin2","providerQueue","providerDisposal","_logController","_providerContext","_mediaStoreProvider","_userIdleController","_satisfyMediaRequest","_pendingMediaRequests","seeked","_handleStartLoadingRequest","_createMediaRequestHandler","_provider","_handleMuteRequest","_handleUnmuteRequest","_handlePlayRequest","_handlePauseRequest","_isSeekingRequestPending","_handleSeekingRequest","_stopWaiting","_handleSeekRequest","_isReplay","time","_handleVolumeChangeRequest","_handleEnterFullscreenRequest","_handleExitFullscreenRequest","_handleResumeIdlingRequest","_mediaRequestEventGateway","_handlePauseIdlingRequest","_handleShowPosterRequest","_handleHidePosterRequest","_handleLoopRequest","_isLooping","vdsEvent2","_firingWaiting","_mediaEvents","_handleSeeking","_fireWaiting","_originalWaitingEvent","_skipInitialSrcChange","attachMediaProvider","_clearMediaStateTracking","_clearPendingMediaRequests","_handleMediaProviderDisconnect","_attachMediaEventListeners","_flushMediaProviderConnectedQueue","requestEvent","shift","stopPropagation","queueKey","mediaEventListeners","_handleCanLoad","_handleLoadStart","_handleLoadedData","_handleLoadedMetadata","_handleCanPlay","_handleCanPlayThrough","_handleAutoplay","_handleAutoplayFail","_handlePlay","_handlePlayFail","_handlePlaying","_handlePause","_handleTimeUpdate","_handleVolumeChange","_handleSeeked","_handleWaiting","_handleEnded","_handleAutoplayChange","_handleError","_handleFullscreenSupportChange","_handlePosterChange","_handleLoopChange","_handlePlaysinlineChange","_handleControlsChange","_handleMediaTypeChange","_handleViewTypeChange","_handleDurationChange","_handleProgress","_handleSrcChange","listen2","_findLastMediaEvent","lastIndexOf","_updateMetadata","metadata","replayEvent","playEvent","MediaStyleController","_mediaProps","DisposalBin3","_hostConnected","_hostDisconnected","propName","_getMediaAttrName","unsub","$v","_handleValueChange","_handleDisconnect","MediaAttrsController","bindMediaPropsToAttrs","MediaCssPropsController","_getCssPropName","isString2","isNumber2","bindMediaPropsToCssProps","mediaDiscoveryId","MediaElement","__mediaFullscreen","__mediaIsVideoView","__mediaPlaysinline","$fullscreen","$viewType","$playsinline","_bindMediaAttributes","_bindMediaCSSProperties","css","setAttribute2","_shouldHideMediaUI","AUDIO_EXTENSIONS","VIDEO_EXTENSIONS","getMediaTypeFromExt","Html5MediaElement","preload","_timeRAF","_hasMediaElementConnected","_mediaElementDisposal","_isMediaWaiting","_ignoreNextAbortEvent","_ignoreNextEmptiedEvent","mediaElement","_mediaElement","_cancelTimeUpdates","load","_requestTimeUpdates","_requestTimeUpdate","_updateCurrentTime","_handleMediaElementDisconnect","_handleMediaElementConnect","_canMediaElementConnect","_findSlottedMediaElement","mediaEl","_observePlaysinline","_observeMediaSources","_startPreloadingMedia","infoGroup","labelledLog","dispatch","isNetworkActive","networkState","isPlayingInline","observer","MutationObserver","attributeFilter","_getMediaSources","subtree","sources","prevSources","resources","querySelectorAll","source","_getMediaMetadata","_getMediaType","abort","_handleAbort","canplay","canplaythrough","durationchange","emptied","_handleEmptied","loadeddata","loadedmetadata","loadstart","progress","ratechange","_handleRateChange","stalled","_handleStalled","suspend","_handleSuspend","volumechange","_determineMediaType","playingEvent","seekedEvent","suspendEvent","endEvent","_handleLoop","hasCustomControls","mediaError","message","code","isMuted","playErrorEvent","AudioElement","toggleButtonElementStyles","ToggleButtonElement","pressed","disabled","_handleButtonClickCapture","preventDefault","_handleButtonClick","_updateAriaPressedAttr","_renderDefaultSlot","MediaRemoteControl","_createLogger","_requests","startLoading","_dispatchRequest","mute","unmute","seek","changeVolume","resumeUserIdle","pauseUserIdle","showPoster","hidePoster","setTarget","request","PlayButtonElement","_mediaRemote","MuteButtonElement","_volume","_muted","$volume","_handleMutedChange","$muted","createSliderStore","dragging","pointing","pointerValue","interactive","$dragging","$pointing","sliderStoreContext","sliderElementStyles","SliderKeyDirection","SliderKeyDirection2","SliderElement","_sliderStoreProvider","_step","_keyboardStep","shiftKeyMultiplier","customValueText","_handlePointerEnter","_handlePointerMove","isDragging","_getValueBasedOnThumbPosition","_dispatchPointerValueChange","_handlePointerLeave","_handlePointerDown","_startDragging","_onDrag","_handleKeydown","shiftKey","isValidKey","includes","modifiedStep","keyboardStep","direction","diff","steps","step","_getClampedValue","_dispatchValueChange","_handleFillValueChange","_updateFillCSSProps","_handlePointerValueChange","_updatePointerCSSProps","_handleDocumentPointerUp","_stopDragging","_handleDocumentTouchMove","_handleDocumentPointerMove","_lastDispatchedValue","_lastDispatchedPointerValue","events","newMin","newMax","newStep","fillRate","range","offset","fillPercent","pointerRate","pointerPercent","_setupAriaAttrs","$interactive","_updateAriaValueAttrs","_renderSlider","_getValueMin","_getValueNow","_getValueMax","_getValueText","_getValueFromRate","rate","boundRate","stepRatio","thumbClientX","clientX","left","trackLeft","width","trackWidth","getBoundingClientRect","thumbPositionRate","timeSliderElementStyles","TimeSliderElement","valueText","pauseWhileDragging","seekingRequestThrottle","__mediaDuration","__mediaPaused","_handleSliderDragStart","_togglePlaybackWhileDragging","_handleSliderValueChange","_dispatchSeekingRequest","_handleSliderDragValueChange","_handleSliderDragEnd","_wasPlayingBeforeDragStart","$currentTime","$duration","VolumeSliderElement","_changeVolume","mediaVolume","SliderValueTextElement","_sliderStoreConsumer","__value","showHours","padHours","_sliderStore","_handleTypeChange","valueStore","format","_createPercentStore","$value","$min","$max","_getPercentFormat","_getTimeFormat","TimeElement","_mediaStoreConsumer","__seconds","remainder","_getFormattedTime","_getTypeStore","_createRemainderStore","$seconds","secondsStore","stzhAudioCss","StzhAudioStyle0","StzhAudio","vsdAudioElement","componentWillLoad","localization","stzhComponents","utils","fetchTranslations","hasTranscript","transcript","hasSlot","classes","Host","class","ref","stzhPlay","emit","component","stzhPlaying","stzhEnd","stzhEnded","stzhReplay","stzhError","originalEvent","label","transcriptShown","hideTranscript","showTranscript","onClick","transcriptAnalyticsId","download","href","downloadAnalyticsId","hidden"],"sources":["node_modules/lit-html/lit-html.js","node_modules/just-debounce-it/index.mjs","node_modules/just-throttle/index.mjs","node_modules/@vidstack/foundation/dist/prod/index.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.APMKZUJJ.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.O2H47C42.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.LNH2V2XS.js","node_modules/@lit/reactive-element/css-tag.js","node_modules/@lit/reactive-element/reactive-element.js","node_modules/lit-element/lit-element.js","node_modules/@lit/reactive-element/decorators/property.js","node_modules/@lit/reactive-element/decorators/state.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.63VUN3OP.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.YGYRCKY2.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.3RP67ZHA.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.M7J7NUUF.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.MWM7HRI6.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.6QN55WFS.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.KIF3XDBQ.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.JDCQU7GF.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.5LQ54Q2B.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.66B2ZPSA.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.OS5G3YJW.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.AIREQQLN.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.CQHSYXO3.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.33ZMGU5I.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.JA2WRFAV.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.T4J4ZIUS.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.63ZIHMNQ.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.2U56ALO2.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.7KY74HUU.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.WSW2QITQ.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.K4RXYACL.js","node_modules/@vidstack/player/dist/prod/chunks/chunk.OEXORVMF.js","src/components/stzh-audio/stzh-audio.scss?tag=stzh-audio&encapsulation=scoped","src/components/stzh-audio/stzh-audio.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(l=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?H:\"?\"===i[1]?L:\"@\"===i[1]?z:k})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],u()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],u())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S(t,r._$AS(t,i.values),r,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h]}l!==(null==u?void 0:u.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),d(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&d(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N.createElement(P(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new M(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u()),this.k(u()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const I=s?s.emptyScript:\"\";class L extends k{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=S(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const j={O:o,P:n,A:l,C:1,M:V,L:M,R:v,D:S,I:R,V:k,H:L,N:z,U:H,F:Z},B=i.litHtmlPolyfillSupport;null==B||B(N,R),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.8.0\");const D=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","var functionDebounce = debounce;\n\nfunction debounce(fn, wait, callFirst) {\n var timeout = null;\n var debouncedFn = null;\n\n var clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n\n debouncedFn = null;\n timeout = null;\n }\n };\n\n var flush = function() {\n var call = debouncedFn;\n clear();\n\n if (call) {\n call();\n }\n };\n\n var debounceWrapper = function() {\n if (!wait) {\n return fn.apply(this, arguments);\n }\n\n var context = this;\n var args = arguments;\n var callNow = callFirst && !timeout;\n clear();\n\n debouncedFn = function() {\n fn.apply(context, args);\n };\n\n timeout = setTimeout(function() {\n timeout = null;\n\n if (!callNow) {\n var call = debouncedFn;\n debouncedFn = null;\n\n return call();\n }\n }, wait);\n\n if (callNow) {\n return debouncedFn();\n }\n };\n\n debounceWrapper.cancel = clear;\n debounceWrapper.flush = flush;\n\n return debounceWrapper;\n}\n\nexport {functionDebounce as default};\n","var functionThrottle = throttle;\n\nfunction throttle(fn, interval, options) {\n var timeoutId = null;\n var throttledFn = null;\n var leading = (options && options.leading);\n var trailing = (options && options.trailing);\n\n if (leading == null) {\n leading = true; // default\n }\n\n if (trailing == null) {\n trailing = !leading; //default\n }\n\n if (leading == true) {\n trailing = false; // forced because there should be invocation per call\n }\n\n var cancel = function() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n var flush = function() {\n var call = throttledFn;\n cancel();\n\n if (call) {\n call();\n }\n };\n\n var throttleWrapper = function() {\n var callNow = leading && !timeoutId;\n var context = this;\n var args = arguments;\n\n throttledFn = function() {\n return fn.apply(context, args);\n };\n\n if (!timeoutId) {\n timeoutId = setTimeout(function() {\n timeoutId = null;\n\n if (trailing) {\n return throttledFn();\n }\n }, interval);\n }\n\n if (callNow) {\n callNow = false;\n return throttledFn();\n }\n };\n\n throttleWrapper.cancel = cancel;\n throttleWrapper.flush = flush;\n\n return throttleWrapper;\n}\n\nexport {functionThrottle as default};\n","// src/utils/events.ts\nfunction listen(target, type, listener, options) {\n target.addEventListener(type, listener, options);\n return () => {\n target.removeEventListener(type, listener, options);\n };\n}\nfunction eventTypeIncludes(event, types) {\n return types.some((type) => event?.type.includes(type) ?? false);\n}\nfunction isPointerEvent(event) {\n return eventTypeIncludes(event, [\"pointer\"]);\n}\nfunction isTouchEvent(event) {\n return eventTypeIncludes(event, [\"touch\"]);\n}\nfunction isMouseEvent(event) {\n return eventTypeIncludes(event, [\"click\", \"mouse\"]);\n}\nasync function waitForEvent(target, type, options) {\n return new Promise((resolve, reject) => {\n const timerId = window.setTimeout(() => {\n reject(`Timed out waiting for event \\`${type}\\`.`);\n }, options?.timeout ?? 1e3);\n listen(\n target,\n type,\n (event) => {\n window.clearTimeout(timerId);\n resolve(event);\n },\n options\n );\n });\n}\nvar DisposalBin = class {\n constructor() {\n this._disposal = this._disposal ?? [];\n }\n add(...callbacks) {\n if (callbacks) {\n callbacks.forEach((cb) => {\n this._disposal.push(cb);\n });\n }\n }\n empty() {\n this._disposal.forEach((fn) => fn());\n this._disposal = [];\n }\n};\n\n// src/events/event-listener.ts\nfunction eventListener(host, type, listener, options) {\n let off;\n function attach() {\n if (!off) {\n off = listen(options?.target ?? host, type, listener, options);\n }\n }\n attach();\n host.addController({\n hostConnected() {\n attach();\n },\n hostDisconnected() {\n off?.();\n off = void 0;\n }\n });\n}\n\n// src/events/VdsEvent.ts\nvar VdsEvent = class extends CustomEvent {\n constructor(type, eventInit = {}) {\n super(type, eventInit);\n this.triggerEvent = eventInit.triggerEvent;\n if (!this.hasOwnProperty(\"originEvent\")) {\n Object.defineProperties(this, {\n originEvent: {\n get() {\n return getOriginEvent(this) ?? this;\n }\n },\n isOriginTrusted: {\n get() {\n return getOriginEvent(this)?.isTrusted ?? false;\n }\n }\n });\n }\n }\n get originEvent() {\n return getOriginEvent(this) ?? this;\n }\n get isOriginTrusted() {\n return this.originEvent?.isTrusted ?? false;\n }\n};\nfunction vdsEvent(type, eventInit = {}) {\n return new VdsEvent(type, eventInit);\n}\nfunction isVdsEvent(event) {\n return event?.hasOwnProperty(\"triggerEvent\") ?? false;\n}\nfunction getOriginEvent(event) {\n let triggerEvent = event.triggerEvent;\n while (triggerEvent && triggerEvent.triggerEvent) {\n triggerEvent = triggerEvent.triggerEvent;\n }\n return triggerEvent;\n}\nfunction walkTriggerEventChain(event, callback) {\n if (!isVdsEvent(event))\n return;\n let triggerEvent = event.triggerEvent;\n while (triggerEvent && triggerEvent.triggerEvent) {\n const returnValue = callback(triggerEvent);\n if (returnValue)\n return [triggerEvent, returnValue];\n triggerEvent = triggerEvent.triggerEvent;\n }\n return;\n}\nfunction findTriggerEvent(event, eventType) {\n return walkTriggerEventChain(event, (e) => e.type === eventType)?.[0];\n}\nfunction hasTriggerEvent(event, eventType) {\n return !!findTriggerEvent(event, eventType);\n}\nfunction appendTriggerEvent(event, triggerEvent) {\n (getOriginEvent(event) ?? event).triggerEvent = triggerEvent;\n}\n\n// src/events/redispatch.ts\nfunction redispatchEvent(target, event) {\n if (event.bubbles && event.composed)\n return;\n const newEvent = new VdsEvent(event.type, {\n triggerEvent: event.triggerEvent ?? event,\n detail: event.detail,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n composed: event.composed\n });\n target.dispatchEvent(newEvent);\n}\n\n// src/context/ContextConsumerController.ts\nvar orphanConsumers = /* @__PURE__ */ new Map();\nvar ContextConsumerController = class {\n constructor(_host, initialValue, _options) {\n this._host = _host;\n this.initialValue = initialValue;\n this._options = _options;\n this._registrationCallbacks = [];\n _host.addController({\n hostConnected: () => {\n this._connect();\n },\n hostDisconnected: () => {\n delete this._host[this.id];\n }\n });\n }\n get id() {\n return this._options.id;\n }\n get value() {\n return this._host[this.id] ?? this.initialValue;\n }\n get registered() {\n return this.id in this._host;\n }\n _connect() {\n if (this.id in this._host)\n return;\n const setValue = (value) => {\n this._host[this.id] = value;\n this._registrationCallbacks?.forEach((fn) => fn(value));\n this._registrationCallbacks = void 0;\n };\n this._host.dispatchEvent(\n vdsEvent(\"vds-context-consumer-connect\", {\n bubbles: true,\n composed: true,\n detail: {\n id: this.id,\n setValue\n }\n })\n );\n if (!this.registered) {\n const orphans = orphanConsumers.get(this.id) ?? [];\n orphans.push({ host: this._host, setValue });\n orphanConsumers.set(this.id, orphans);\n }\n }\n whenRegistered(callback) {\n if (this.registered) {\n callback(this.value);\n return;\n }\n this._registrationCallbacks?.push(callback);\n }\n};\nfunction adoptOrphans(id, provider) {\n const orphans = orphanConsumers.get(id) ?? [];\n const adoptees = orphans.filter(({ host }) => provider.contains(host));\n orphanConsumers.set(\n id,\n orphans.filter(({ host }) => !provider.contains(host))\n );\n return adoptees;\n}\n\n// src/context/ContextProviderController.ts\nvar ContextProviderController = class {\n constructor(_host, _initValue, _options) {\n this._host = _host;\n this._initValue = _initValue;\n this._options = _options;\n this._stopDisposal = new DisposalBin();\n this._value = _initValue();\n _host.addController({\n hostConnected: this.start.bind(this),\n hostDisconnected: this.stop.bind(this)\n });\n }\n get id() {\n return this._options.id;\n }\n get value() {\n return this._value;\n }\n start() {\n const dispose = listen(\n this._host,\n \"vds-context-consumer-connect\",\n this._handleConsumerConnect.bind(this)\n );\n for (const orphan of adoptOrphans(this.id, this._host)) {\n orphan.setValue(this._value);\n }\n this._stopDisposal.add(dispose);\n }\n stop() {\n this._stopDisposal.empty();\n }\n _handleConsumerConnect(event) {\n const consumer = event.detail;\n if (consumer.id !== this.id)\n return;\n event.stopImmediatePropagation();\n consumer.setValue(this._value);\n }\n};\n\n// src/context/context.ts\nfunction createContext(initValue) {\n const id = Symbol(\"@vidstack/context\");\n return {\n id,\n consume(host) {\n return new ContextConsumerController(host, initValue(), { id });\n },\n provide(host) {\n return new ContextProviderController(host, initValue, { id });\n }\n };\n}\nfunction isContext(context) {\n return typeof context?.id === \"symbol\" && context.id.description === \"@vidstack/context\";\n}\n\n// src/directives/if-non-empty.ts\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nfunction ifNonEmpty(value) {\n return ifDefined(value === \"\" || value === \"undefined\" ? void 0 : value);\n}\n\n// src/directives/if-number.ts\nimport { ifDefined as ifDefined2 } from \"lit/directives/if-defined.js\";\n\n// src/utils/unit.ts\nfunction noop(...args) {\n}\nfunction notEqual(valueA, valueB) {\n return valueB !== valueA && (valueB === valueB || valueA === valueA);\n}\nfunction safeNotEqual(a, b) {\n return a != a ? b == b : a !== b || a && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction equal(valueA, valueB) {\n return !notEqual(valueA, valueB);\n}\nfunction isNull(value) {\n return value === null;\n}\nfunction isUndefined(value) {\n return typeof value === \"undefined\";\n}\nfunction isNil(value) {\n return isNull(value) || isUndefined(value);\n}\nfunction isObject(value) {\n return value?.constructor === Object;\n}\nfunction isNumber(value) {\n return typeof value === \"number\" && !Number.isNaN(value);\n}\nfunction isString(value) {\n return typeof value === \"string\";\n}\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction createRegex(regex) {\n return isString(regex) ? new RegExp(regex) : regex;\n}\nfunction isWindow(value) {\n return value === window;\n}\n\n// src/directives/if-number.ts\nfunction ifNumber(value) {\n return ifDefined2(isNumber(value) ? value : void 0);\n}\n\n// src/elements/discovery/discover.ts\nvar discoverers = /* @__PURE__ */ new Map();\nvar discoverables = /* @__PURE__ */ new Map();\nfunction connect(discoverable2, id, onDisconnect) {\n for (const { host, callback } of Array.from(discoverers.get(id) ?? [])) {\n if (host !== discoverable2 && host.contains(discoverable2)) {\n callback(discoverable2, onDisconnect);\n }\n }\n}\nfunction find(host, id) {\n return Array.from(discoverables.get(id) ?? []).filter(\n ({ element }) => host !== element && host.contains(element)\n );\n}\nfunction discover(host, id, callback) {\n const discoverer = { host, callback };\n host.addController({\n hostConnected: () => {\n for (const { element, onDisconnect } of find(host, id)) {\n callback(element, onDisconnect);\n }\n discoverers.set(id, (discoverers.get(id) ?? /* @__PURE__ */ new Set()).add(discoverer));\n },\n hostDisconnected: () => {\n discoverers.get(id)?.delete(discoverer);\n }\n });\n}\nfunction discoverable(host, eventType, options = {}) {\n const id = options.register;\n const disconnectDisposal = new DisposalBin();\n const onDisconnect = (callback) => {\n disconnectDisposal.add(callback);\n };\n const discoverable2 = {\n element: host,\n onDisconnect\n };\n host.addController({\n hostConnected() {\n const event = vdsEvent(eventType, {\n bubbles: true,\n composed: true,\n detail: discoverable2\n });\n host.dispatchEvent(event);\n if (id) {\n discoverables.set(id, (discoverables.get(id) ?? /* @__PURE__ */ new Set()).add(discoverable2));\n connect(host, id, onDisconnect);\n }\n },\n hostDisconnected() {\n disconnectDisposal.empty();\n if (id) {\n discoverables.get(id)?.delete(discoverable2);\n }\n }\n });\n}\n\n// src/utils/support.ts\nvar IS_CLIENT = typeof window !== \"undefined\";\nvar UA = IS_CLIENT ? window.navigator?.userAgent.toLowerCase() : \"\";\nvar IS_IOS = /iphone|ipad|ipod|ios|CriOS|FxiOS/.test(UA);\nvar IS_ANDROID = /android/.test(UA);\nvar IS_MOBILE = IS_CLIENT && (IS_IOS || IS_ANDROID);\nvar IS_IPHONE = IS_CLIENT && /(iPhone|iPod)/gi.test(window.navigator?.platform);\nvar IS_FIREFOX = /firefox/.test(UA);\nvar IS_CHROME = IS_CLIENT && !!window.chrome;\nvar IS_SAFARI = IS_CLIENT && !IS_CHROME && (window.safari || IS_IOS || /(apple|safari)/.test(UA));\nvar ORIGIN = IS_CLIENT && window.location.protocol !== \"file:\" ? `${window.location.protocol}//${window.location.hostname}` : void 0;\nfunction currentSafariVersion() {\n return IS_CLIENT ? Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? [\"\", 0])[1]) : 0;\n}\nfunction canFullscreenVideo() {\n if (!IS_CLIENT)\n return false;\n const video = document.createElement(\"video\");\n return isFunction(video.webkitEnterFullscreen);\n}\nfunction canObserveIntersection() {\n return IS_CLIENT && !isUndefined(window.IntersectionObserver);\n}\nfunction canOrientScreen() {\n return IS_CLIENT && !isUndefined(screen.orientation) && isFunction(screen.orientation.lock) && isFunction(screen.orientation.unlock);\n}\nfunction canRotateScreen() {\n return IS_CLIENT && !isUndefined(window.screen.orientation) && !isUndefined(window.screen.orientation.lock);\n}\nfunction isReducedMotionPreferred() {\n return IS_CLIENT && \"matchMedia\" in window && window.matchMedia(\"(prefers-reduced-motion)\").matches;\n}\nfunction canPlayHLSNatively() {\n if (!IS_CLIENT)\n return false;\n const video = document.createElement(\"video\");\n return video.canPlayType(\"application/vnd.apple.mpegurl\").length > 0;\n}\nfunction canUsePiPInChrome() {\n if (!IS_CLIENT)\n return false;\n const video = document.createElement(\"video\");\n return !!document.pictureInPictureEnabled && !video.disablePictureInPicture;\n}\nfunction canUsePiPInSafari() {\n if (!IS_CLIENT)\n return false;\n const video = document.createElement(\"video\");\n return isFunction(video.webkitSupportsPresentationMode) && isFunction(video.webkitSetPresentationMode) && !IS_IPHONE;\n}\nfunction canUsePiP() {\n return canUsePiPInChrome() || canUsePiPInSafari();\n}\nfunction canAutoplay(muted = true, playsinline = true) {\n if (!IS_CLIENT)\n return Promise.resolve(false);\n const video = document.createElement(\"video\");\n if (muted) {\n video.setAttribute(\"muted\", \"\");\n video.muted = true;\n }\n if (playsinline) {\n video.setAttribute(\"playsinline\", \"\");\n video.setAttribute(\"webkit-playsinline\", \"\");\n }\n video.setAttribute(\"height\", \"0\");\n video.setAttribute(\"width\", \"0\");\n video.style.position = \"fixed\";\n video.style.top = \"0\";\n video.style.width = \"0\";\n video.style.height = \"0\";\n video.style.opacity = \"0\";\n new Promise((resolve) => resolve(video.play())).catch(noop);\n return Promise.resolve(!video.paused);\n}\nfunction getMediaSource() {\n return window?.MediaSource ?? window?.WebKitMediaSource;\n}\nfunction getSourceBuffer() {\n return window?.SourceBuffer ?? window?.WebKitSourceBuffer;\n}\nfunction isHlsjsSupported() {\n const mediaSource = getMediaSource();\n if (isUndefined(mediaSource)) {\n return false;\n }\n const isTypeSupported = mediaSource && isFunction(mediaSource.isTypeSupported) && mediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\n const sourceBuffer = getSourceBuffer();\n const isSourceBufferValid = isUndefined(sourceBuffer) || !isUndefined(sourceBuffer.prototype) && isFunction(sourceBuffer.prototype.appendBuffer) && isFunction(sourceBuffer.prototype.remove);\n return !!isTypeSupported && !!isSourceBufferValid;\n}\n\n// src/elements/WithFocus.ts\nvar focusableSelector = `\n ${[\n \"a[href]\",\n \"area[href]\",\n `input:not([disabled]):not([tabindex='-1'])`,\n `button:not([disabled]):not([tabindex='-1'])`,\n `select:not([disabled]):not([tabindex='-1'])`,\n `textarea:not([disabled]):not([tabindex='-1'])`,\n \"iframe\",\n \"object\",\n \"embed\",\n `*[tabindex]:not([tabindex='-1'])`,\n \"*[contenteditable=true]\",\n \"vds-fullscreen-button\",\n \"vds-mute-button\",\n \"vds-play-button\",\n \"vds-slider\",\n \"vds-time-slider\",\n \"vds-volume-slider\"\n].join(\", \")}\n`;\nfunction WithFocus(Base) {\n return class WithFocusMixin extends Base {\n static get shadowRootOptions() {\n return {\n ...Base.shadowRootOptions,\n delegatesFocus: currentSafariVersion() <= 537\n };\n }\n focus() {\n if (this.shadowRoot?.delegatesFocus) {\n super.focus();\n } else {\n const delegateTarget = this.shadowRoot?.querySelector(focusableSelector) || this.querySelector(focusableSelector);\n if (delegateTarget) {\n delegateTarget.focus();\n } else {\n super.focus();\n }\n }\n }\n };\n}\n\n// ../../node_modules/.pnpm/fscreen@1.2.0/node_modules/fscreen/dist/fscreen.esm.js\nvar key = {\n fullscreenEnabled: 0,\n fullscreenElement: 1,\n requestFullscreen: 2,\n exitFullscreen: 3,\n fullscreenchange: 4,\n fullscreenerror: 5,\n fullscreen: 6\n};\nvar webkit = [\n \"webkitFullscreenEnabled\",\n \"webkitFullscreenElement\",\n \"webkitRequestFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitfullscreenchange\",\n \"webkitfullscreenerror\",\n \"-webkit-full-screen\"\n];\nvar moz = [\n \"mozFullScreenEnabled\",\n \"mozFullScreenElement\",\n \"mozRequestFullScreen\",\n \"mozCancelFullScreen\",\n \"mozfullscreenchange\",\n \"mozfullscreenerror\",\n \"-moz-full-screen\"\n];\nvar ms = [\n \"msFullscreenEnabled\",\n \"msFullscreenElement\",\n \"msRequestFullscreen\",\n \"msExitFullscreen\",\n \"MSFullscreenChange\",\n \"MSFullscreenError\",\n \"-ms-fullscreen\"\n];\nvar document2 = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" ? window.document : {};\nvar vendor = \"fullscreenEnabled\" in document2 && Object.keys(key) || webkit[0] in document2 && webkit || moz[0] in document2 && moz || ms[0] in document2 && ms || [];\nvar fscreen = {\n requestFullscreen: function(element) {\n return element[vendor[key.requestFullscreen]]();\n },\n requestFullscreenFunction: function(element) {\n return element[vendor[key.requestFullscreen]];\n },\n get exitFullscreen() {\n return document2[vendor[key.exitFullscreen]].bind(document2);\n },\n get fullscreenPseudoClass() {\n return \":\" + vendor[key.fullscreen];\n },\n addEventListener: function(type, handler, options) {\n return document2.addEventListener(vendor[key[type]], handler, options);\n },\n removeEventListener: function(type, handler, options) {\n return document2.removeEventListener(vendor[key[type]], handler, options);\n },\n get fullscreenEnabled() {\n return Boolean(document2[vendor[key.fullscreenEnabled]]);\n },\n set fullscreenEnabled(val) {\n },\n get fullscreenElement() {\n return document2[vendor[key.fullscreenElement]];\n },\n set fullscreenElement(val) {\n },\n get onfullscreenchange() {\n return document2[(\"on\" + vendor[key.fullscreenchange]).toLowerCase()];\n },\n set onfullscreenchange(handler) {\n return document2[(\"on\" + vendor[key.fullscreenchange]).toLowerCase()] = handler;\n },\n get onfullscreenerror() {\n return document2[(\"on\" + vendor[key.fullscreenerror]).toLowerCase()];\n },\n set onfullscreenerror(handler) {\n return document2[(\"on\" + vendor[key.fullscreenerror]).toLowerCase()] = handler;\n }\n};\nvar fscreen_esm_default = fscreen;\n\n// src/logger/events.ts\nfunction logEvent(level, ...data) {\n return vdsEvent(\"vds-log\", {\n bubbles: true,\n composed: true,\n detail: {\n level,\n data\n }\n });\n}\n\n// src/logger/grouped-log.ts\nvar GROUPED_LOG_ID = Symbol(\"@vidstack/grouped-log\");\nfunction isGroupedLog(data) {\n return isObject(data) && data[GROUPED_LOG_ID] === true;\n}\nfunction groupedLog(title, parent) {\n const logs = [];\n const group = {\n [GROUPED_LOG_ID]: true,\n title,\n logs,\n log(...data) {\n logs.push({ data });\n return group;\n },\n labelledLog(label, ...data) {\n logs.push({ label, data });\n return group;\n },\n groupStart(title2) {\n return groupedLog(title2, group);\n },\n groupEnd() {\n parent?.logs.push(group);\n return parent ?? group;\n }\n };\n return group;\n}\n\n// src/logger/LogDispatcher.ts\nvar LogDispatcher = class {\n constructor(_host) {\n this._host = _host;\n }\n error(...data) {\n this._dispatch(\"error\", ...data);\n }\n warn(...data) {\n this._dispatch(\"warn\", ...data);\n }\n info(...data) {\n this._dispatch(\"info\", ...data);\n }\n debug(...data) {\n this._dispatch(\"debug\", ...data);\n }\n errorGroup(title) {\n return this._groupDispatcher(\"error\", title);\n }\n warnGroup(title) {\n return this._groupDispatcher(\"warn\", title);\n }\n infoGroup(title) {\n return this._groupDispatcher(\"info\", title);\n }\n debugGroup(title) {\n return this._groupDispatcher(\"debug\", title);\n }\n _dispatch(level, ...data) {\n this._host.dispatchEvent(logEvent(level, ...data));\n }\n _groupDispatcher(level, title, rootGroup, parentGroup) {\n const group = groupedLog(title, parentGroup);\n group.dispatch = () => {\n this._dispatch(level, rootGroup ?? group);\n };\n return {\n ...group,\n groupStart: (title2) => {\n return this._groupDispatcher(level, title2, rootGroup ?? group, group);\n }\n };\n }\n};\n\n// src/logger/log-lifecycle.ts\nfunction logElementLifecycle(_host) {\n const logger = new LogDispatcher(_host);\n _host.addController({\n hostConnected() {\n logger.debug(\"\\u{1F517} connected\");\n },\n hostUpdated() {\n logger.debug(\"\\u{1F504} updated\");\n },\n hostDisconnected() {\n logger.debug(\"\\u{1F5D1}\\uFE0F disconnected\");\n }\n });\n}\n\n// src/logger/colors.ts\nvar LOCAL_STORAGE_KEY = \"@vidstack/log-colors\";\nvar colors = getSavedColors();\nfunction getSavedColors() {\n if (IS_CLIENT && !isUndefined(window.localStorage)) {\n let colors2 = {};\n try {\n colors2 = JSON.parse(localStorage.getItem(LOCAL_STORAGE_KEY) ?? \"\");\n } catch {\n }\n return new Map(Object.entries(colors2));\n }\n return /* @__PURE__ */ new Map();\n}\nfunction getColor(key2) {\n return colors.get(key2);\n}\nfunction saveColor(key2, { color = generateColor(), overwrite = false } = {}) {\n if (!colors.has(key2) || overwrite) {\n colors.set(key2, color);\n saveColors();\n }\n}\nfunction generateColor() {\n return `hsl(${Math.random() * 360}, 55%, 70%)`;\n}\nfunction saveColors() {\n if (IS_CLIENT && !isUndefined(window.localStorage)) {\n const map = {};\n colors.forEach(function(value, key2) {\n map[key2] = value;\n });\n localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(map));\n }\n}\n\n// src/logger/LogLevel.ts\nvar LogLevelValue = Object.freeze({\n silent: 0,\n error: 1,\n warn: 2,\n info: 3,\n debug: 4\n});\nvar LogLevelColor = Object.freeze({\n silent: \"white\",\n error: \"hsl(6, 58%, 50%)\",\n warn: \"hsl(51, 58%, 50%)\",\n info: \"hsl(219, 58%, 50%)\",\n debug: \"hsl(280, 58%, 50%)\"\n});\n\n// src/utils/number.ts\nfunction round(num, decimalPlaces = 2) {\n return Number(num.toFixed(decimalPlaces));\n}\nfunction clampNumber(min, value, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction getNumberOfDecimalPlaces(num) {\n return String(num).split(\".\")[1]?.length ?? 0;\n}\n\n// src/logger/ms.ts\nvar s = 1e3;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nfunction ms2(val) {\n const msAbs = Math.abs(val);\n if (msAbs >= d) {\n return Math.round(val / d) + \"d\";\n }\n if (msAbs >= h) {\n return Math.round(val / h) + \"h\";\n }\n if (msAbs >= m) {\n return Math.round(val / m) + \"m\";\n }\n if (msAbs >= s) {\n return Math.round(val / s) + \"s\";\n }\n return round(val, 2) + \"ms\";\n}\n\n// src/logger/LogController.ts\nvar LogController = class {\n constructor(_host) {\n this._host = _host;\n this.logLevel = false ? \"warn\" : \"silent\";\n this._disposal = new DisposalBin();\n _host.addController({\n hostConnected: this._start.bind(this),\n hostDisconnected: this._stop.bind(this)\n });\n }\n _start() {\n this._disposal.add(\n listen(this._host, \"vds-log\", (event) => {\n event.stopPropagation();\n const eventTargetName = (event.path?.[0] ?? event.target).tagName.toLowerCase();\n const { level = \"warn\", data } = event.detail;\n if (LogLevelValue[this.logLevel] < LogLevelValue[level]) {\n return;\n }\n saveColor(eventTargetName);\n const hint = data?.length === 1 && isGroupedLog(data[0]) ? data[0].title : isString(data?.[0]) ? data[0] : \"\";\n console.groupCollapsed(\n `%c${level.toUpperCase()}%c ${eventTargetName}%c ${hint.slice(0, 50)}${hint.length > 50 ? \"...\" : \"\"}`,\n `background: ${LogLevelColor[level]}; color: white; padding: 1.5px 2.2px; border-radius: 2px; font-size: 11px;`,\n `color: ${getColor(eventTargetName)}; padding: 4px 0px; font-size: 11px;`,\n \"color: gray; font-size: 11px; padding-left: 4px;\"\n );\n if (data?.length === 1 && isGroupedLog(data[0])) {\n this._logGroup(level, data[0]);\n } else if (data) {\n this._log(level, ...data);\n }\n this._logTimeDiff();\n this._logStackTrace();\n console.groupEnd();\n })\n );\n }\n _stop() {\n this._lastLogTimestamp = void 0;\n this._disposal.empty();\n }\n _logGroup(level, groupedLog2) {\n console.groupCollapsed(groupedLog2.title);\n for (const log of groupedLog2.logs) {\n if (isGroupedLog(log)) {\n this._logGroup(level, log);\n } else if (\"label\" in log && !isUndefined(log.label)) {\n this._labelledLog(log.label, ...log.data);\n } else {\n this._log(level, ...log.data);\n }\n }\n console.groupEnd();\n }\n _log(level, ...data) {\n console[level](...data);\n }\n _labelledLog(label, ...data) {\n console.log(`%c${label}:`, \"color: gray\", ...data);\n }\n _logStackTrace() {\n console.groupCollapsed(\"%cStack Trace\", \"color: gray\");\n console.trace();\n console.groupEnd();\n }\n _logTimeDiff() {\n this._labelledLog(\"Time since last log\", this._getLastLogTimeDiff());\n }\n _getLastLogTimeDiff() {\n const time = performance.now();\n const diff = time - (this._lastLogTimestamp || (this._lastLogTimestamp = performance.now()));\n this._lastLogTimestamp = time;\n return ms2(diff);\n }\n};\n\n// src/fullscreen/FullscreenController.ts\nvar FullscreenController = class {\n constructor(_host, _screenOrientationController) {\n this._host = _host;\n this._screenOrientationController = _screenOrientationController;\n this._logger = false ? new LogDispatcher(this._host) : void 0;\n this._listenerDisposal = new DisposalBin();\n _host.addController({\n hostDisconnected: this._handleHostDisconnected.bind(this)\n });\n }\n async _handleHostDisconnected() {\n if (this.isFullscreen)\n await this.exitFullscreen();\n this._listenerDisposal.empty();\n }\n get isSupported() {\n return this.isSupportedNatively;\n }\n get isSupportedNatively() {\n return fscreen_esm_default.fullscreenEnabled;\n }\n get isFullscreen() {\n return this.isNativeFullscreen;\n }\n get isNativeFullscreen() {\n if (fscreen_esm_default.fullscreenElement === this._host)\n return true;\n try {\n return this._host.matches(\n fscreen_esm_default.fullscreenPseudoClass\n );\n } catch (error) {\n return false;\n }\n }\n _addFullscreenChangeEventListener(listener) {\n if (!this.isSupported)\n return noop;\n if (false) {\n this._logger?.debug(\"adding `fullscreenchange` listener\");\n }\n const dispose = listen(fscreen_esm_default, \"fullscreenchange\", listener);\n return () => {\n if (false) {\n this._logger?.debug(\"removing `fullscreenchange` listener\");\n }\n dispose();\n };\n }\n _addFullscreenErrorEventListener(listener) {\n if (!this.isSupported)\n return noop;\n if (false) {\n this._logger?.debug(\"adding `fullscreenerror` listener\");\n }\n const dispose = listen(fscreen_esm_default, \"fullscreenerror\", listener);\n return () => {\n if (false) {\n this._logger?.debug(\"removing `fullscreenerror` listener\");\n }\n dispose();\n };\n }\n async enterFullscreen() {\n if (this.isFullscreen)\n return;\n this._throwIfNoFullscreenSupport();\n if (false) {\n this._logger?.debug(\"requesting fullscreen\");\n }\n this._listenerDisposal.add(\n this._addFullscreenChangeEventListener(this._handleFullscreenChange.bind(this))\n );\n this._listenerDisposal.add(\n this._addFullscreenErrorEventListener(this._handleFullscreenError.bind(this))\n );\n const response = await this._makeEnterFullscreenRequest();\n await this._lockScreenOrientation();\n return response;\n }\n async _makeEnterFullscreenRequest() {\n return fscreen_esm_default.requestFullscreen(this._host);\n }\n _handleFullscreenChange(event) {\n if (!this.isFullscreen)\n this._listenerDisposal.empty();\n this._host.dispatchEvent(\n vdsEvent(\"vds-fullscreen-change\", {\n bubbles: true,\n composed: true,\n detail: this.isFullscreen,\n triggerEvent: event\n })\n );\n }\n _handleFullscreenError(event) {\n this._host.dispatchEvent(\n vdsEvent(\"vds-fullscreen-error\", {\n bubbles: true,\n composed: true,\n triggerEvent: event\n })\n );\n }\n async exitFullscreen() {\n if (!this.isFullscreen)\n return;\n this._throwIfNoFullscreenSupport();\n if (false) {\n this._logger?.debug(\"exiting fullscreen\");\n }\n const response = await this._makeExitFullscreenRequest();\n await this._unlockScreenOrientation();\n return response;\n }\n async _makeExitFullscreenRequest() {\n return fscreen_esm_default.exitFullscreen();\n }\n _shouldOrientScreen() {\n return this._screenOrientationController.canOrient && !isUndefined(this.screenOrientationLock);\n }\n async _lockScreenOrientation() {\n if (isUndefined(this.screenOrientationLock) || !this._shouldOrientScreen()) {\n return;\n }\n await this._screenOrientationController.lock(this.screenOrientationLock);\n }\n async _unlockScreenOrientation() {\n if (!this._shouldOrientScreen())\n return;\n await this._screenOrientationController.unlock();\n }\n _throwIfNoFullscreenSupport() {\n if (this.isSupported)\n return;\n throw Error(\"Fullscreen API is not enabled or supported in this environment.\");\n }\n};\n\n// src/observers/FocusVisibleController.ts\nvar FocusVisibleController = class {\n constructor(_host) {\n this._host = _host;\n const disposal = new DisposalBin();\n let hadKeyboardEvent = false;\n disposal.add(\n listen(document, \"pointerdown\", () => {\n hadKeyboardEvent = false;\n })\n );\n eventListener(_host, \"keydown\", (e) => {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n });\n eventListener(_host, \"focus\", (e) => {\n if (hadKeyboardEvent) {\n _host.classList.add(\"focus-visible\");\n }\n });\n eventListener(_host, \"blur\", (e) => {\n _host.classList.remove(\"focus-visible\");\n });\n _host.addController({\n hostDisconnected: () => {\n disposal.empty();\n }\n });\n }\n};\nfunction focusVisiblePolyfill(host) {\n return new FocusVisibleController(host);\n}\n\n// src/observers/IntersectionController.ts\nvar IntersectionController = class {\n constructor(_host, config = {}, _callback = () => true, _logger = false ? new LogDispatcher(_host) : void 0) {\n this._host = _host;\n this._callback = _callback;\n this._logger = _logger;\n this._skipInitial = false;\n this._unobservedUpdate = false;\n const { target, skipInitial, ...intersectionObserverInit } = config;\n this._target = target ?? void 0;\n this._skipInitial = skipInitial ?? this._skipInitial;\n if (!window.IntersectionObserver) {\n if (false) {\n _logger?.warn(`Browser does not support \\`IntersectionObserver\\`.`);\n }\n return;\n }\n this._observer = new IntersectionObserver((entries) => {\n const unobservedUpdate = this._unobservedUpdate;\n this._unobservedUpdate = false;\n if (this._skipInitial && unobservedUpdate)\n return;\n this.handleChanges(entries);\n this._host.requestUpdate();\n }, intersectionObserverInit);\n _host.addController(this);\n }\n handleChanges(entries) {\n this.value = this._callback(entries, this._observer);\n }\n hostConnected() {\n if (this._target) {\n this.observe(this._target);\n }\n }\n hostDisconnected() {\n this._disconnect();\n }\n async hostUpdated() {\n const pendingRecords = this._observer.takeRecords();\n if (pendingRecords.length) {\n this.handleChanges(pendingRecords);\n }\n }\n observe(target) {\n this._observer.observe(target);\n this._unobservedUpdate = true;\n return () => {\n this._observer.unobserve(target);\n };\n }\n _disconnect() {\n this._observer.disconnect();\n }\n};\nfunction createIntersectionController(...params) {\n return new IntersectionController(...params);\n}\n\n// src/observers/PageController.ts\nvar IS_SAFARI2 = typeof window !== \"undefined\" && typeof window.safari === \"object\" && window?.safari.pushNotification;\nvar PageController = class {\n constructor(_host, _callback, _logger = false ? new LogDispatcher(_host) : void 0) {\n this._host = _host;\n this._callback = _callback;\n this._logger = _logger;\n this._state = this._determinePageState();\n this._visibility = document.visibilityState;\n this._disposal = new DisposalBin();\n _host.addController(this);\n }\n get state() {\n return this._state;\n }\n get visibility() {\n return this._visibility;\n }\n hostConnected() {\n const pageEvents = [\"focus\", \"blur\", \"visibilitychange\", \"pageshow\", \"pagehide\"];\n this._state = this._determinePageState();\n this._visibility = document.visibilityState;\n pageEvents.forEach((pageEvent) => {\n const off = listen(window, pageEvent, this._handlePageEvent.bind(this));\n this._disposal.add(off);\n });\n if (IS_SAFARI2) {\n this._disposal.add(\n listen(window, \"beforeunload\", (event) => {\n this._safariBeforeUnloadTimeout = setTimeout(() => {\n if (!(event.defaultPrevented || event.returnValue.length > 0)) {\n this._state = \"hidden\";\n this._visibility = \"hidden\";\n this._triggerCallback();\n }\n }, 0);\n })\n );\n }\n }\n hostDisconnected() {\n this._disposal.empty();\n }\n _handlePageEvent(event) {\n if (IS_SAFARI2) {\n window.clearTimeout(this._safariBeforeUnloadTimeout);\n }\n const prevState = this._state;\n const prevVisibility = this._visibility;\n if (event.type !== \"blur\" || this.state === \"active\") {\n this._state = this._determinePageState(event);\n this._visibility = document.visibilityState == \"hidden\" ? \"hidden\" : \"visible\";\n }\n if (this.state !== prevState || this.visibility !== prevVisibility) {\n this._triggerCallback();\n }\n }\n _triggerCallback() {\n this._callback({ state: this.state, visibility: this.visibility });\n }\n _determinePageState(event) {\n if (false)\n return \"hidden\";\n if (event?.type === \"blur\" || document.visibilityState === \"hidden\") {\n return \"hidden\";\n }\n if (document.hasFocus()) {\n return \"active\";\n }\n return \"passive\";\n }\n};\n\n// src/utils/promise.ts\nfunction deferredPromise() {\n let resolve = noop;\n let reject = noop;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n}\nfunction timedPromise(promise, timeout, timeoutMsg) {\n const timer = new Promise((_, reject) => {\n const timerId = window.setTimeout(() => {\n window.clearTimeout(timerId);\n reject(timeoutMsg);\n }, timeout);\n });\n return Promise.race([promise, timer]);\n}\n\n// src/queue/RequestQueue.ts\nvar RequestQueue = class {\n constructor() {\n this._requestQueue = /* @__PURE__ */ new Map();\n this._requestKeys = [];\n this._pendingFlush = deferredPromise();\n this._isServing = false;\n }\n get isServing() {\n return this._isServing;\n }\n get size() {\n return this._requestQueue.size;\n }\n async waitForFlush() {\n if (this._isServing)\n return;\n await this._pendingFlush.promise;\n }\n queue(key2, callback) {\n if (this._isServing) {\n callback();\n return;\n }\n this._requestKeys = [...this._requestKeys.filter((k) => k !== key2), key2];\n this._requestQueue.set(key2, callback);\n }\n serve(key2) {\n this._requestQueue.get(key2)?.();\n this._requestQueue.delete(key2);\n }\n start() {\n this._flush();\n this._isServing = true;\n if (this._requestQueue.size > 0) {\n this._flush();\n }\n }\n _flush() {\n for (const requestKey of this._requestKeys) {\n this.serve(requestKey);\n }\n this._requestKeys = [];\n this._release();\n }\n _empty() {\n this._requestQueue.clear();\n }\n _release() {\n this._pendingFlush.resolve();\n this._pendingFlush = deferredPromise();\n }\n stop() {\n this._isServing = false;\n }\n destroy() {\n this.stop();\n this._empty();\n this._release();\n }\n};\n\n// src/queue/host-request-queue.ts\nfunction hostRequestQueue(host) {\n const q = new RequestQueue();\n host.addController({\n hostConnected: q.start.bind(q),\n hostDisconnected: q.destroy.bind(q)\n });\n return q;\n}\n\n// src/screen-orientation/ScreenOrientationController.ts\nvar ScreenOrientationController = class {\n constructor(_host) {\n this._host = _host;\n this._isScreenOrientationLocked = false;\n this._logger = false ? new LogDispatcher(this._host) : void 0;\n this._updateScreenOrientation();\n this._listenerDisposal = new DisposalBin();\n _host.addController({\n hostConnected: this._handleHostConnected.bind(this),\n hostDisconnected: this._handleHostDisconnected.bind(this)\n });\n }\n async _handleHostConnected() {\n this._updateScreenOrientation();\n this._addScreenOrientationEventListeners();\n }\n async _handleHostDisconnected() {\n if (this.canOrient && this._isScreenOrientationLocked)\n await this.unlock();\n this._listenerDisposal.empty();\n }\n get currentOrientation() {\n return this._screenOrientation;\n }\n get canOrient() {\n return canOrientScreen();\n }\n get isLocked() {\n return this._isScreenOrientationLocked;\n }\n async lock(lockType) {\n this._throwIfScreenOrientationUnavailable();\n if (false) {\n this._logger?.debug(\"locking screen orientation to\", lockType);\n }\n await screen.orientation.lock(lockType);\n this._isScreenOrientationLocked = true;\n this._host.dispatchEvent(\n vdsEvent(\"vds-screen-orientation-lock-change\", {\n bubbles: true,\n composed: true,\n detail: lockType\n })\n );\n }\n async unlock() {\n this._throwIfScreenOrientationUnavailable();\n if (false) {\n this._logger?.debug(\"unlocking screen orientation\");\n }\n await screen.orientation.unlock();\n this._isScreenOrientationLocked = false;\n this._host.dispatchEvent(\n vdsEvent(\"vds-screen-orientation-lock-change\", {\n bubbles: true,\n composed: true,\n detail: screen.orientation.type\n })\n );\n }\n _addScreenOrientationEventListeners() {\n if (!this.canOrient)\n return;\n this._listenerDisposal.add(this._addScreenOrientationChangeEventListener());\n }\n _addScreenOrientationChangeEventListener() {\n return listen(screen.orientation, \"change\", this._handleOrientationChange.bind(this));\n }\n _handleOrientationChange(event) {\n this._screenOrientation = window.screen.orientation.type;\n if (false) {\n this._logger?.debug(\"screen orientation changed to\", this._screenOrientation);\n }\n this._host.dispatchEvent(\n vdsEvent(\"vds-screen-orientation-change\", {\n bubbles: true,\n composed: true,\n detail: this._screenOrientation,\n triggerEvent: event\n })\n );\n }\n _updateScreenOrientation() {\n this._screenOrientation = IS_CLIENT ? window.screen?.orientation?.type : void 0;\n }\n _throwIfScreenOrientationUnavailable() {\n if (this.canOrient)\n return;\n throw Error(\"Screen orientation API is not available.\");\n }\n};\n\n// src/utils/object.ts\nfunction keysOf(obj) {\n return Object.keys(obj);\n}\nfunction pick(obj, keys) {\n return keys.reduce(\n (newObj, key2) => ({\n ...newObj,\n [key2]: obj[key2]\n }),\n {}\n );\n}\nfunction omit(obj, keys) {\n return keysOf(obj).filter((key2) => keys.indexOf(key2) < 0).reduce(\n (newObj, key2) => ({\n ...newObj,\n [key2]: obj[key2]\n }),\n {}\n );\n}\nvar hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nvar sortObjectsBy = (objects, sortKey) => objects.sort((a, b) => {\n if (a[sortKey] === b[sortKey])\n return 0;\n return a[sortKey] < b[sortKey] ? -1 : 1;\n});\n\n// src/stores/store-subscription.ts\nfunction storeSubscription(host, store, onChange) {\n let consumer;\n let unsubscribe;\n const subscribe = () => {\n unsubscribe = (consumer?.value ?? store).subscribe(onChange);\n };\n if (isContext(store)) {\n consumer = store.consume(host);\n }\n host.addController({\n hostConnected() {\n if (isContext(store)) {\n consumer.whenRegistered(subscribe);\n } else {\n subscribe();\n }\n },\n hostDisconnected() {\n unsubscribe?.();\n }\n });\n}\n\n// src/stores/stores.ts\nvar subscriberQueue = [];\nfunction readable(value, start) {\n return {\n initialValue: value,\n subscribe: writable(value, start).subscribe\n };\n}\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(newValue) {\n if (safeNotEqual(value, newValue)) {\n value = newValue;\n if (stop) {\n const runQueue = !subscriberQueue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriberQueue.push(subscriber, value);\n }\n if (runQueue) {\n for (let i = 0; i < subscriberQueue.length; i += 2) {\n subscriberQueue[i][0](subscriberQueue[i + 1]);\n }\n subscriberQueue.length = 0;\n }\n }\n }\n }\n function update(updater) {\n set(updater(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop?.();\n stop = null;\n }\n };\n }\n return { initialValue: value, set, update, subscribe };\n}\nfunction derived(stores, fn, initialValue) {\n const single = !Array.isArray(stores);\n const storesArray = single ? [stores] : stores;\n const auto = fn.length < 2;\n return readable(initialValue, (set) => {\n let initialized = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n } else {\n cleanup = isFunction(result) ? result : noop;\n }\n };\n const unsubscribers = storesArray.map(\n (store, i) => store.subscribe(\n (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (initialized) {\n sync();\n }\n },\n () => {\n pending |= 1 << i;\n }\n )\n );\n initialized = true;\n sync();\n return function stop() {\n unsubscribers.forEach((fn2) => fn2());\n cleanup();\n };\n });\n}\nfunction getStoreValue(store) {\n let value;\n store.subscribe((_) => value = _)();\n return value;\n}\n\n// src/stores/store-record.ts\nfunction storeRecordSubscription(host, store, key2, onChange) {\n if (isContext(store)) {\n const consumer = store.consume(host);\n let unsubscribe;\n const subscribe = () => {\n unsubscribe = consumer.value[key2].subscribe(onChange);\n };\n host.addController({\n hostConnected: () => {\n consumer.whenRegistered(subscribe);\n },\n hostDisconnected: () => {\n unsubscribe?.();\n }\n });\n } else {\n return storeSubscription(host, store[key2], onChange);\n }\n}\nfunction copyStoreRecords(storeRecordA, storeRecordB) {\n for (const key2 of keysOf(storeRecordA)) {\n const storeA = storeRecordA[key2];\n const storeB = storeRecordB[key2];\n if (!storeA || !storeB)\n continue;\n const valA = getStoreValue(storeA);\n const valB = getStoreValue(storeB);\n if (valA !== valB)\n storeB.set(valA);\n }\n}\nfunction unwrapStoreRecord(store) {\n return new Proxy(store, {\n get(target, key2) {\n return getStoreValue(target[key2]);\n },\n has(target, key2) {\n return Reflect.has(target, key2);\n },\n ownKeys(target) {\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(target, key2) {\n return Reflect.getOwnPropertyDescriptor(target, key2);\n }\n });\n}\n\n// src/utils/aria.ts\nfunction ariaBool(value) {\n return value ? \"true\" : \"false\";\n}\n\n// src/utils/array.ts\nfunction isScalarArrayEqual(arrayA, arrayB) {\n return arrayA.length === arrayB.length && arrayA.every((value, i) => value === arrayB[i]);\n}\nfunction filterUnique(items, key2, options = {}) {\n const seen = /* @__PURE__ */ new Set();\n return items.filter((item) => {\n if (options.removeNull && isNull(item[key2]))\n return false;\n if (options.removeUndefined && isUndefined(item[key2]))\n return false;\n const isUnique = !seen.has(item[key2]);\n if (!isUnique) {\n options.onDuplicateFound?.(item);\n }\n seen.add(item[key2]);\n return isUnique;\n });\n}\n\n// src/utils/dom.ts\nfunction raf(callback) {\n return new Promise((resolve) => {\n const rafId = window.requestAnimationFrame(async () => {\n await callback?.();\n resolve(rafId);\n });\n });\n}\nfunction walkUpDOMTree(node, onDiscover) {\n let parent = node.parentElement;\n while (parent) {\n const skip = onDiscover(parent);\n parent = skip ? null : parent.parentElement;\n }\n}\nfunction buildExportPartsAttr(parts, prefix) {\n return parts.map(\n (part) => `${part}: ${!isFunction(prefix) ? prefix ? `${prefix}-` : \"\" : prefix(part)}${part}`\n ).join(\", \");\n}\nfunction safelyDefineCustomElement(name, constructor, isClient = IS_CLIENT) {\n const isElementRegistered = isClient && !isUndefined(window.customElements.get(name));\n if (!isClient || isElementRegistered)\n return;\n window.customElements.define(name, constructor);\n}\nfunction setAttribute(element, attrName, attrValue) {\n if (isNil(attrValue) || attrValue === false) {\n element.removeAttribute(attrName);\n } else {\n const value = isString(attrValue) ? attrValue : \"\";\n element.setAttribute(attrName, value);\n }\n}\nfunction setAttributeIfEmpty(element, attrName, attrValue) {\n if (!element.hasAttribute(attrName)) {\n element.setAttribute(attrName, attrValue);\n }\n}\nfunction setCSSProperty(element, name, value, prefix = \"vds\") {\n element.style.setProperty(`--${prefix}-${name}`, value ? value : null);\n}\nfunction getSlottedChildren(el, name) {\n const selector = name ? `slot[name=\"${name}\"]` : \"slot:not([name])\";\n const slot = el.shadowRoot?.querySelector(selector);\n const childNodes = slot?.assignedNodes({ flatten: true }) ?? [];\n return Array.prototype.filter.call(childNodes, (node) => node.nodeType == Node.ELEMENT_NODE);\n}\nfunction getElementAttributes(elementCtor) {\n return new Set(elementCtor.observedAttributes);\n}\nfunction observeAttributes(element, attributes, onChange, { skipInitial = false } = {}) {\n const callback = (attrName) => {\n const attrValue = element.getAttribute(attrName);\n onChange?.(attrName, attrValue);\n };\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === \"attributes\") {\n callback(mutation.attributeName);\n }\n }\n });\n if (!skipInitial) {\n for (const attrName of attributes) {\n callback(attrName);\n }\n }\n observer.observe(element, {\n attributeFilter: Array.from(attributes)\n });\n return observer;\n}\nfunction requestIdleCallback(callback) {\n if (false) {\n callback();\n return;\n }\n const idle = window.requestIdleCallback ?? ((fn) => fn());\n if (document.readyState === \"complete\") {\n idle(callback);\n } else {\n window.addEventListener(\n \"load\",\n () => {\n idle(callback);\n },\n { once: true }\n );\n }\n}\n\n// src/utils/keyboard.ts\nfunction isKeyboardEvent(event) {\n return event?.type.startsWith(\"key\") ?? false;\n}\nfunction wasEnterKeyPressed(event) {\n return isKeyboardEvent(event) && event.key === \"Enter\";\n}\nfunction wasEscapeKeyPressed(event) {\n return isKeyboardEvent(event) && event.key === \"Escape\";\n}\nfunction isKeyboardClick(event) {\n return isKeyboardEvent(event) && (event.key === \"Enter\" || event.key === \" \");\n}\n\n// src/utils/network.ts\nfunction tryParseJSON(json) {\n if (!isString(json))\n return void 0;\n try {\n return JSON.parse(json);\n } catch (error) {\n return void 0;\n }\n}\nfunction isObjOrJSON(value) {\n return isString(value) && value.startsWith(\"{\") || isObject(value);\n}\nfunction objOrParseJSON(value) {\n return isObject(value) ? value : tryParseJSON(value);\n}\nfunction loadImage(src, minWidth = 1) {\n return new Promise((resolve, reject) => {\n const image = new Image();\n const handler = () => {\n image.naturalWidth >= minWidth ? resolve(image) : reject(image);\n };\n Object.assign(image, { onload: handler, onerror: handler, src });\n });\n}\nasync function loadScript(src) {\n const hasLoaded = document.querySelector(`script[src=\"${src}\"]`);\n if (!isNull(hasLoaded))\n return;\n const script = document.createElement(\"script\");\n const load = deferredPromise();\n script.src = src;\n script.onload = load.resolve;\n script.onerror = load.reject;\n const firstScriptTag = document.getElementsByTagName(\"script\")[0];\n if (!isNil(firstScriptTag.parentNode)) {\n firstScriptTag.parentNode.insertBefore(script, firstScriptTag);\n }\n return load.promise;\n}\nfunction decodeJSON(data) {\n if (!isObjOrJSON(data))\n return void 0;\n return objOrParseJSON(data);\n}\nfunction tryDecodeURIComponent(component, fallback = \"\", isClient = IS_CLIENT) {\n if (!isClient)\n return fallback;\n try {\n return window.decodeURIComponent(component);\n } catch (error) {\n return fallback;\n }\n}\nvar QUERY_STRING_REGEX = /(?:^[#?]?|&)([^=&]+)(?:=([^&]*))?/g;\nfunction parseQueryString(qs) {\n const params = /* @__PURE__ */ Object.create(null);\n if (isUndefined(qs))\n return params;\n let match;\n while (match = QUERY_STRING_REGEX.exec(qs)) {\n const name = tryDecodeURIComponent(match[1], match[1]).replace(\"[]\", \"\");\n const value = isString(match[2]) ? tryDecodeURIComponent(match[2].replace(/\\+/g, \" \"), match[2]) : \"\";\n const currValue = params[name];\n if (currValue && !isArray(currValue))\n params[name] = [currValue];\n currValue ? params[name].push(value) : params[name] = value;\n }\n return params;\n}\nfunction serializeQueryString(params) {\n const qs = [];\n const appendQueryParam = (param, v) => {\n qs.push(`${encodeURIComponent(param)}=${encodeURIComponent(v)}`);\n };\n Object.keys(params).forEach((param) => {\n const value = params[param];\n if (isNil(value))\n return;\n if (isArray(value)) {\n value.forEach((v) => appendQueryParam(param, v));\n } else {\n appendQueryParam(param, value);\n }\n });\n return qs.join(\"&\");\n}\nfunction preconnect(url, rel = \"preconnect\", isClient = IS_CLIENT) {\n if (!isClient)\n return false;\n const hasLink = document.querySelector(`link[href=\"${url}\"]`);\n if (!isNull(hasLink))\n return true;\n const link = document.createElement(\"link\");\n link.rel = rel;\n link.href = url;\n link.crossOrigin = \"true\";\n document.head.append(link);\n return true;\n}\nfunction appendQueryStringToURL(url, qs) {\n if (isUndefined(qs) || qs.length === 0)\n return url;\n const mainAndQuery = url.split(\"?\", 2);\n return mainAndQuery[0] + (!isUndefined(mainAndQuery[1]) ? `?${mainAndQuery[1]}&${qs}` : `?${qs}`);\n}\nfunction appendParamsToURL(url, params) {\n return appendQueryStringToURL(url, isObject(params) ? serializeQueryString(params) : params);\n}\nfunction decodeQueryString(qs) {\n if (!isString(qs))\n return void 0;\n return parseQueryString(qs);\n}\nvar ScriptLoader = class {\n static async load(src) {\n return new Promise((resolve, reject) => {\n if (this.pendingRequests[src]) {\n this.pendingRequests[src].push({ resolve, reject });\n return;\n }\n this.pendingRequests[src] = [{ resolve, reject }];\n loadScript(src).then(() => {\n this.pendingRequests[src].forEach((request) => request.resolve());\n delete this.pendingRequests[src];\n }).catch((err) => {\n this.pendingRequests[src].forEach((request) => request.reject(err));\n delete this.pendingRequests[src];\n });\n });\n }\n};\nScriptLoader.pendingRequests = {};\n\n// src/utils/scroll.ts\nfunction hideDocumentScrollbar(hidden) {\n window.requestAnimationFrame(() => {\n document.documentElement.classList[hidden ? \"add\" : \"remove\"](\"overflow-hidden\");\n document.documentElement.classList[!hidden ? \"add\" : \"remove\"](\"overflow-x-hidden\");\n });\n}\nfunction scrollIntoCenter(scroll, element, options = {}) {\n const scrollTop = isWindow(scroll) ? window.pageYOffset : scroll.scrollTop;\n const scrollHeight = isWindow(scroll) ? window.innerHeight : scroll.getBoundingClientRect().height;\n const elementRect = element.getBoundingClientRect();\n const center = elementRect.top + scrollTop - scrollHeight / 2;\n scroll.scrollTo({\n top: center + (options?.offset ?? 0),\n behavior: options.behaviour\n });\n}\n\n// src/utils/string.ts\nvar escapeQuotes = (str) => str.replace(/^\"+|\"+$/g, \"\").replace(/^'+|'+$/g, \"\");\nvar normalizeLineBreaks = (str) => str.replace(/\\\\r/g, \"\\n\");\nfunction splitLineBreaks(str) {\n if (typeof str !== \"string\")\n return [];\n return normalizeLineBreaks(str).split(\"\\n\");\n}\nfunction uppercaseFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction lowercaseFirstLetter(str) {\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\nfunction kebabToTitleCase(str) {\n return uppercaseFirstLetter(str.replace(/-./g, (x) => \" \" + x[1].toUpperCase()));\n}\nfunction camelToKebabCase(str) {\n return str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nfunction kebabToCamelCase(str) {\n return str.replace(/-./g, (x) => x[1].toUpperCase());\n}\nfunction kebabToPascalCase(str) {\n return kebabToTitleCase(str).replace(/\\s/g, \"\");\n}\nfunction camelToTitleCase(str) {\n return uppercaseFirstLetter(str.replace(/([A-Z])/g, \" $1\"));\n}\n\n// src/utils/time.ts\nfunction padNumberWithZeroes(num, expectedLength) {\n const str = String(num);\n const actualLength = str.length;\n const shouldPad = actualLength < expectedLength;\n if (shouldPad) {\n const padLength = expectedLength - actualLength;\n const padding = `0`.repeat(padLength);\n return `${padding}${num}`;\n }\n return str;\n}\nvar TimeUnit = /* @__PURE__ */ ((TimeUnit2) => {\n TimeUnit2[\"Hours\"] = \"hours\";\n TimeUnit2[\"Minutes\"] = \"minutes\";\n TimeUnit2[\"Seconds\"] = \"seconds\";\n TimeUnit2[\"Fraction\"] = \"fraction\";\n return TimeUnit2;\n})(TimeUnit || {});\nfunction parseTime(duration) {\n const hours = Math.trunc(duration / 3600);\n const minutes = Math.trunc(duration % 3600 / 60);\n const seconds = Math.trunc(duration % 60);\n const fraction = Number((duration - Math.trunc(duration)).toPrecision(3));\n return {\n [\"hours\" /* Hours */]: hours,\n [\"minutes\" /* Minutes */]: minutes,\n [\"seconds\" /* Seconds */]: seconds,\n [\"fraction\" /* Fraction */]: fraction\n };\n}\nfunction formatTime(duration, shouldPadHours = false, shouldAlwaysShowHours = false) {\n const { hours, minutes, seconds } = parseTime(duration);\n const paddedHours = shouldPadHours ? padNumberWithZeroes(hours, 2) : hours;\n const paddedMinutes = padNumberWithZeroes(minutes, 2);\n const paddedSeconds = padNumberWithZeroes(seconds, 2);\n if (hours > 0 || shouldAlwaysShowHours) {\n return `${paddedHours}:${paddedMinutes}:${paddedSeconds}`;\n }\n return `${minutes}:${paddedSeconds}`;\n}\nfunction formatSpokenTime(duration) {\n const spokenParts = [];\n const { hours, minutes, seconds } = parseTime(duration);\n const pluralize = (num, word) => num === 1 ? word : `${word}s`;\n if (hours > 0) {\n spokenParts.push(`${hours} ${pluralize(hours, \"hour\")}`);\n }\n if (minutes > 0) {\n spokenParts.push(`${minutes} ${pluralize(minutes, \"minute\")}`);\n }\n if (seconds > 0 || spokenParts.length === 0) {\n spokenParts.push(`${seconds} ${pluralize(seconds, \"second\")}`);\n }\n return spokenParts.join(\", \");\n}\nfunction formatHtml5Duration(duration) {\n const { hours, minutes, seconds, fraction } = parseTime(duration);\n return `PT${hours}H${minutes}M${seconds + fraction}S`;\n}\n\n// src/utils/timing.ts\nimport debounce from \"just-debounce-it\";\nimport throttle from \"just-throttle\";\nfunction wait(delay) {\n return new Promise((resolve) => setTimeout(resolve, delay));\n}\nfunction rafThrottle(func) {\n let rafId;\n const pending = () => !isUndefined(rafId);\n const cancel = () => {\n if (isUndefined(rafId))\n return;\n window.cancelAnimationFrame(rafId);\n rafId = void 0;\n };\n function throttled(...args) {\n if (pending())\n return;\n rafId = window.requestAnimationFrame(() => {\n func.apply(this, args);\n rafId = void 0;\n });\n }\n throttled.cancel = cancel;\n throttled.pending = pending;\n return throttled;\n}\nexport {\n ContextConsumerController,\n ContextProviderController,\n DisposalBin,\n FocusVisibleController,\n FullscreenController,\n GROUPED_LOG_ID,\n IS_ANDROID,\n IS_CHROME,\n IS_CLIENT,\n IS_FIREFOX,\n IS_IOS,\n IS_IPHONE,\n IS_MOBILE,\n IS_SAFARI,\n IntersectionController,\n LogController,\n LogDispatcher,\n LogLevelColor,\n LogLevelValue,\n ORIGIN,\n PageController,\n RequestQueue,\n ScreenOrientationController,\n ScriptLoader,\n TimeUnit,\n UA,\n VdsEvent,\n WithFocus,\n adoptOrphans,\n appendParamsToURL,\n appendQueryStringToURL,\n appendTriggerEvent,\n ariaBool,\n buildExportPartsAttr,\n camelToKebabCase,\n camelToTitleCase,\n canAutoplay,\n canFullscreenVideo,\n canObserveIntersection,\n canOrientScreen,\n canPlayHLSNatively,\n canRotateScreen,\n canUsePiP,\n canUsePiPInChrome,\n canUsePiPInSafari,\n clampNumber,\n copyStoreRecords,\n createContext,\n createIntersectionController,\n createRegex,\n currentSafariVersion,\n debounce,\n decodeJSON,\n decodeQueryString,\n deferredPromise,\n derived,\n discover,\n discoverable,\n equal,\n escapeQuotes,\n eventListener,\n filterUnique,\n findTriggerEvent,\n focusVisiblePolyfill,\n focusableSelector,\n formatHtml5Duration,\n formatSpokenTime,\n formatTime,\n getStoreValue as get,\n getElementAttributes,\n getMediaSource,\n getNumberOfDecimalPlaces,\n getOriginEvent,\n getSlottedChildren,\n getSourceBuffer,\n groupedLog,\n hasOwnProperty,\n hasTriggerEvent,\n hideDocumentScrollbar,\n hostRequestQueue,\n ifNonEmpty,\n ifNumber,\n isArray,\n isBoolean,\n isContext,\n isFunction,\n isGroupedLog,\n isHlsjsSupported,\n isKeyboardClick,\n isKeyboardEvent,\n isMouseEvent,\n isNil,\n isNull,\n isNumber,\n isObjOrJSON,\n isObject,\n isPointerEvent,\n isReducedMotionPreferred,\n isScalarArrayEqual,\n isString,\n isTouchEvent,\n isUndefined,\n isVdsEvent,\n isWindow,\n kebabToCamelCase,\n kebabToPascalCase,\n kebabToTitleCase,\n keysOf,\n listen,\n loadImage,\n loadScript,\n logElementLifecycle,\n logEvent,\n lowercaseFirstLetter,\n noop,\n normalizeLineBreaks,\n notEqual,\n objOrParseJSON,\n observeAttributes,\n omit,\n padNumberWithZeroes,\n parseQueryString,\n parseTime,\n pick,\n preconnect,\n raf,\n rafThrottle,\n readable,\n redispatchEvent,\n requestIdleCallback,\n round,\n safeNotEqual,\n safelyDefineCustomElement,\n scrollIntoCenter,\n serializeQueryString,\n setAttribute,\n setAttributeIfEmpty,\n setCSSProperty,\n sortObjectsBy,\n splitLineBreaks,\n storeRecordSubscription,\n storeSubscription,\n throttle,\n timedPromise,\n tryDecodeURIComponent,\n tryParseJSON,\n unwrapStoreRecord,\n uppercaseFirstLetter,\n vdsEvent,\n wait,\n waitForEvent,\n walkTriggerEventChain,\n walkUpDOMTree,\n wasEnterKeyPressed,\n wasEscapeKeyPressed,\n writable\n};\n","// src/media/provider/media-provider-context.ts\nimport { createContext, writable } from \"@vidstack/foundation\";\nvar mediaProviderElementContext = createContext(\n () => writable(void 0)\n);\n\nexport {\n mediaProviderElementContext\n};\n","// src/media/MediaType.ts\nvar MediaType = /* @__PURE__ */ ((MediaType2) => {\n MediaType2[\"Unknown\"] = \"unknown\";\n MediaType2[\"Audio\"] = \"audio\";\n MediaType2[\"Video\"] = \"video\";\n MediaType2[\"LiveVideo\"] = \"live-video\";\n return MediaType2;\n})(MediaType || {});\n\n// src/media/ViewType.ts\nvar ViewType = /* @__PURE__ */ ((ViewType2) => {\n ViewType2[\"Unknown\"] = \"unknown\";\n ViewType2[\"Audio\"] = \"audio\";\n ViewType2[\"Video\"] = \"video\";\n return ViewType2;\n})(ViewType || {});\n\n// src/media/store.ts\nimport {\n createContext,\n keysOf,\n storeRecordSubscription,\n writable\n} from \"@vidstack/foundation\";\n\n// src/media/time-ranges.ts\nimport { isArray, isNumber, isUndefined } from \"@vidstack/foundation\";\nfunction rangeCheck(fnName, index, maxIndex) {\n if (!isNumber(index) || index < 0 || index > maxIndex) {\n throw new Error(\n `Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is non-numeric or out of bounds (0-${maxIndex}).`\n );\n }\n}\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\nfunction createTimeRangesObj(ranges) {\n if (isUndefined(ranges) || ranges.length === 0) {\n const throwEmptyError = () => {\n throw new Error(\"This TimeRanges object is empty\");\n };\n return {\n length: 0,\n start: throwEmptyError,\n end: throwEmptyError\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, \"start\", 0, ranges),\n end: getRange.bind(null, \"end\", 1, ranges)\n };\n}\nfunction createTimeRanges(start, end) {\n if (isArray(start)) {\n return createTimeRangesObj(start);\n } else if (isUndefined(start) || isUndefined(end)) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\n// src/media/store.ts\nvar MEDIA_STORE_DEFAULTS = {\n autoplay: false,\n autoplayError: void 0,\n buffered: createTimeRanges(),\n duration: 0,\n bufferedAmount: 0,\n canLoad: false,\n canPlay: false,\n canFullscreen: false,\n controls: false,\n poster: \"\",\n currentSrc: \"\",\n currentTime: 0,\n ended: false,\n error: void 0,\n fullscreen: false,\n userIdle: false,\n loop: false,\n mediaType: \"unknown\" /* Unknown */,\n muted: false,\n paused: true,\n played: createTimeRanges(),\n playing: false,\n playsinline: false,\n seekable: createTimeRanges(),\n seekableAmount: 0,\n seeking: false,\n src: [],\n started: false,\n viewType: \"unknown\" /* Unknown */,\n volume: 1,\n waiting: false\n};\nfunction createMediaStore() {\n const store = {};\n for (const prop of keysOf(MEDIA_STORE_DEFAULTS)) {\n store[prop] = writable(MEDIA_STORE_DEFAULTS[prop]);\n }\n return store;\n}\nvar DO_NOT_RESET_ON_SRC_CHANGE = /* @__PURE__ */ new Set([\n \"autoplay\",\n \"canFullscreen\",\n \"canLoad\",\n \"controls\",\n \"currentSrc\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"poster\",\n \"src\",\n \"viewType\",\n \"volume\"\n]);\nfunction softResetMediaStore(store) {\n keysOf(store).forEach((prop) => {\n if (!DO_NOT_RESET_ON_SRC_CHANGE.has(prop)) {\n store[prop].set(store[prop].initialValue);\n }\n });\n}\nfunction resetMediaStore(store) {\n for (const prop of keysOf(MEDIA_STORE_DEFAULTS)) {\n store[prop].set(MEDIA_STORE_DEFAULTS[prop]);\n }\n}\nvar mediaStoreContext = createContext(createMediaStore);\nfunction mediaStoreSubscription(host, property, onChange) {\n return storeRecordSubscription(host, mediaStoreContext, property, onChange);\n}\n\nexport {\n MediaType,\n ViewType,\n MEDIA_STORE_DEFAULTS,\n createMediaStore,\n softResetMediaStore,\n resetMediaStore,\n mediaStoreContext,\n mediaStoreSubscription\n};\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\n\nexport {\n __decorateClass\n};\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","import {\n createMediaStore\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/media/provider/MediaProviderElement.ts\nimport {\n clampNumber,\n copyStoreRecords,\n createIntersectionController,\n discoverable,\n DisposalBin,\n FullscreenController,\n hostRequestQueue,\n isUndefined,\n raf,\n requestIdleCallback,\n RequestQueue,\n ScreenOrientationController,\n unwrapStoreRecord,\n vdsEvent\n} from \"@vidstack/foundation\";\nimport { html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nvar mediaProviderDiscoveryId = Symbol(\"@vidstack/media-provider-discovery\");\nvar MediaProviderElement = class extends LitElement {\n constructor() {\n super();\n this._disconnectDisposal = new DisposalBin();\n this._logger = false ? new LogDispatcher(this) : void 0;\n this.loading = \"visible\";\n this._attemptingAutoplay = false;\n this.controllerQueue = new RequestQueue();\n this._store = createMediaStore();\n this._state = unwrapStoreRecord(this._store);\n this.connectedQueue = hostRequestQueue(this);\n this.mediaQueue = new RequestQueue();\n this.screenOrientationController = new ScreenOrientationController(this);\n this.fullscreenController = new FullscreenController(this, this.screenOrientationController);\n discoverable(this, \"vds-media-provider-connect\", { register: mediaProviderDiscoveryId });\n const intersectionController = createIntersectionController(\n this,\n { target: this, threshold: 0 },\n (entries) => {\n if (!/(visible|lazy)/.test(this.loading)) {\n intersectionController.hostDisconnected();\n return;\n }\n if (entries[0]?.isIntersecting) {\n this.startLoadingMedia();\n intersectionController.hostDisconnected();\n }\n }\n );\n }\n connectedCallback() {\n super.connectedCallback();\n this._logMediaEvents();\n window.requestAnimationFrame(() => {\n if (isUndefined(this.canLoadPoster)) {\n this.canLoadPoster = true;\n }\n });\n }\n firstUpdated(changedProperties) {\n super.firstUpdated(changedProperties);\n this.dispatchEvent(\n vdsEvent(\"vds-fullscreen-support-change\", {\n detail: this.canFullscreen\n })\n );\n if (this.canLoad || this.loading === \"eager\") {\n window?.requestAnimationFrame(() => {\n this.startLoadingMedia();\n });\n } else if (this.loading === \"idle\") {\n requestIdleCallback(() => {\n this.startLoadingMedia();\n });\n }\n }\n render() {\n return html`<slot @slotchange=\"${this.handleDefaultSlotChange}\"></slot>`;\n }\n disconnectedCallback() {\n this._updateMediaStoreOnDisconnect(this._store);\n this.mediaQueue.destroy();\n this._disconnectDisposal.empty();\n super.disconnectedCallback();\n raf(() => {\n raf(() => {\n if (!this.isConnected)\n this.destroy();\n });\n });\n }\n _updateMediaStoreOnDisconnect(store) {\n store.paused.set(true);\n store.playing.set(false);\n store.seeking.set(false);\n store.waiting.set(false);\n store.fullscreen.set(false);\n }\n destroy() {\n if (this.isConnected)\n this.disconnectedCallback();\n this.dispatchEvent(vdsEvent(\"vds-destroy\"));\n }\n _logMediaEvents() {\n if (false) {\n const mediaEvents = [\n \"vds-abort\",\n \"vds-can-play\",\n \"vds-can-play-through\",\n \"vds-current-src-change\",\n \"vds-duration-change\",\n \"vds-emptied\",\n \"vds-ended\",\n \"vds-error\",\n \"vds-fullscreen-change\",\n \"vds-loaded-data\",\n \"vds-loaded-metadata\",\n \"vds-load-start\",\n \"vds-media-type-change\",\n \"vds-pause\",\n \"vds-play\",\n \"vds-playing\",\n \"vds-progress\",\n \"vds-seeked\",\n \"vds-seeking\",\n \"vds-stalled\",\n \"vds-started\",\n \"vds-suspend\",\n \"vds-replay\",\n \"vds-view-type-change\",\n \"vds-volume-change\",\n \"vds-waiting\"\n ];\n mediaEvents.forEach((eventType) => {\n const dispose = listen(this, eventType, (event) => {\n this._logger?.infoGroup(`\\u{1F4E1} dispatching \\`${eventType}\\``).labelledLog(\"State\", { ...this.state }).labelledLog(\"Event\", event).dispatch();\n });\n this._disconnectDisposal.add(dispose);\n });\n }\n }\n get volume() {\n return this._getVolume();\n }\n set volume(newVolume) {\n this.mediaQueue.queue(\"volume\", () => {\n const oldVol = this.volume;\n const newVol = clampNumber(0, newVolume, 1);\n if (oldVol !== newVol) {\n this._setVolume(newVol);\n this.requestUpdate(\"volume\", oldVol);\n }\n });\n }\n get paused() {\n return this._getPaused();\n }\n set paused(newPaused) {\n this.mediaQueue.queue(\"paused\", () => {\n if (this.paused === newPaused)\n return;\n try {\n if (!newPaused) {\n this.play();\n } else {\n this.pause();\n }\n this.requestUpdate(\"paused\", !newPaused);\n } catch (e) {\n this._logger?.error(\"paused-change-fail\", e);\n }\n });\n }\n get currentTime() {\n return this._getCurrentTime();\n }\n set currentTime(newTime) {\n this.mediaQueue.queue(\"current-time\", () => {\n const oldTime = this.currentTime;\n if (oldTime !== newTime) {\n this._setCurrentTime(newTime);\n this.requestUpdate(\"currentTime\", oldTime);\n }\n });\n }\n get muted() {\n return this._getMuted();\n }\n set muted(newMuted) {\n this.mediaQueue.queue(\"muted\", () => {\n const oldMuted = this.muted;\n if (oldMuted !== newMuted) {\n this._setMuted(newMuted);\n this.requestUpdate(\"muted\", oldMuted);\n }\n });\n }\n get poster() {\n return this.state.poster;\n }\n set poster(newPoster) {\n const oldPoster = this.poster;\n if (oldPoster !== newPoster) {\n this.dispatchEvent(vdsEvent(\"vds-poster-change\", { detail: newPoster }));\n this.requestUpdate(\"poster\", oldPoster);\n }\n }\n get loop() {\n return this.state.loop;\n }\n set loop(newLoop) {\n const oldLoop = this.loop;\n if (oldLoop !== newLoop) {\n this.dispatchEvent(vdsEvent(\"vds-loop-change\", { detail: newLoop }));\n this.requestUpdate(\"loop\", oldLoop);\n }\n }\n get controls() {\n return this.state.controls;\n }\n set controls(newControls) {\n const oldControls = this.controls;\n if (oldControls !== newControls) {\n this.dispatchEvent(vdsEvent(\"vds-controls-change\", { detail: newControls }));\n this.requestUpdate(\"controls\", oldControls);\n }\n }\n get canLoad() {\n return this.state.canLoad;\n }\n startLoadingMedia() {\n if (this.state.canPlay)\n return;\n this.dispatchEvent(vdsEvent(\"vds-can-load\"));\n }\n _throwIfNotReadyForPlayback() {\n if (!this.state.canPlay) {\n throw Error(`Media is not ready - wait for \\`vds-can-play\\` event.`);\n }\n }\n async _resetPlaybackIfEnded() {\n if (!this.state.ended || this.state.currentTime === 0)\n return;\n return this._setCurrentTime(0);\n }\n _throwIfNotVideoView() {\n if (this.state.viewType !== \"video\" /* Video */) {\n throw Error(\"Player is currently not in a video view.\");\n }\n }\n async _handleMediaReady({ event, duration }) {\n if (this.state.canPlay)\n return;\n this.dispatchEvent(\n vdsEvent(\"vds-can-play\", {\n triggerEvent: event,\n detail: { duration }\n })\n );\n this.mediaQueue.start();\n if (false) {\n this._logger?.infoGroup(\"-~-~-~-~-~-~-~-~- \\u2705 MEDIA READY -~-~-~-~-~-~-~-~-\").labelledLog(\"State\", { ...this.state }).labelledLog(\"Event\", event).dispatch();\n }\n await this._attemptAutoplay();\n }\n _handleCurrentSrcChange(currentSrc, triggerEvent) {\n if (this.state.currentSrc === currentSrc)\n return;\n if (false) {\n this._logger?.infoGroup(\"\\u{1F4FC} Media source change\").labelledLog(\"Src\", this.state.src).labelledLog(\"Current Src\", currentSrc).dispatch();\n }\n this.mediaQueue.stop();\n this.dispatchEvent(\n vdsEvent(\"vds-current-src-change\", {\n detail: currentSrc,\n triggerEvent\n })\n );\n }\n get autoplay() {\n return this.state.autoplay;\n }\n set autoplay(newAutoplay) {\n if (this.autoplay !== newAutoplay) {\n this.dispatchEvent(vdsEvent(\"vds-autoplay-change\", { detail: newAutoplay }));\n this.requestUpdate(\"autoplay\", !newAutoplay);\n }\n this._attemptAutoplay();\n }\n get _canAttemptAutoplay() {\n return this.state.canPlay && this.state.autoplay && !this.state.started;\n }\n async _attemptAutoplay() {\n if (!this._canAttemptAutoplay)\n return;\n this._attemptingAutoplay = true;\n try {\n await this.play();\n this.dispatchEvent(vdsEvent(\"vds-autoplay\", { detail: { muted: this.muted } }));\n } catch (error) {\n this.dispatchEvent(\n vdsEvent(\"vds-autoplay-fail\", {\n detail: {\n muted: this.muted,\n error\n }\n })\n );\n this.requestUpdate();\n }\n this._attemptingAutoplay = false;\n }\n get controller() {\n return this._controller;\n }\n get logLevel() {\n return this._controller?.logLevel ?? \"silent\";\n }\n set logLevel(level) {\n if (false) {\n this.controllerQueue.queue(\"log-level\", () => {\n this._controller.logLevel = level;\n });\n }\n }\n get idleDelay() {\n return this._controller?.idleDelay ?? 0;\n }\n set idleDelay(delay) {\n this.controllerQueue.queue(\"idle-delay\", () => {\n this._controller.idleDelay = delay;\n });\n }\n attachMediaController(controller, onDisconnect) {\n this._controller = controller;\n this._store = controller._store;\n this._state = controller.state;\n this.controllerQueue.start();\n onDisconnect(() => {\n this.controllerQueue.destroy();\n this._store = createMediaStore();\n this._state = unwrapStoreRecord(this._store);\n if (this._controller) {\n copyStoreRecords(this._controller._store, this._store);\n this._updateMediaStoreOnDisconnect(this._controller._store);\n }\n this._controller = void 0;\n });\n }\n dispatchEvent(event) {\n if (!this._controller && event.type.startsWith(\"vds-\") && event.type !== \"vds-destroy\") {\n this.controllerQueue.queue(event.type, () => {\n super.dispatchEvent(event);\n });\n return false;\n }\n return super.dispatchEvent(event);\n }\n store() {\n return this._store;\n }\n get state() {\n return this._state;\n }\n get canFullscreen() {\n return this.fullscreenController.isSupported;\n }\n get fullscreen() {\n return this.fullscreenController.isFullscreen;\n }\n get fullscreenOrientation() {\n return this.fullscreenController.screenOrientationLock;\n }\n set fullscreenOrientation(lockType) {\n const prevLockType = this.fullscreenController.screenOrientationLock;\n if (prevLockType !== lockType) {\n this.fullscreenController.screenOrientationLock = lockType;\n this.requestUpdate(\"fullscreen-orientation\", prevLockType);\n }\n }\n enterFullscreen() {\n return this.fullscreenController.enterFullscreen();\n }\n exitFullscreen() {\n return this.fullscreenController.exitFullscreen();\n }\n};\n__decorateClass([\n property({ type: Number })\n], MediaProviderElement.prototype, \"volume\", 1);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"paused\", 1);\n__decorateClass([\n property({ type: Number })\n], MediaProviderElement.prototype, \"currentTime\", 1);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"muted\", 1);\n__decorateClass([\n property()\n], MediaProviderElement.prototype, \"poster\", 1);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"loop\", 1);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"controls\", 1);\n__decorateClass([\n state()\n], MediaProviderElement.prototype, \"canLoadPoster\", 2);\n__decorateClass([\n property({ attribute: \"loading\" })\n], MediaProviderElement.prototype, \"loading\", 2);\n__decorateClass([\n property({ type: Boolean })\n], MediaProviderElement.prototype, \"autoplay\", 1);\n__decorateClass([\n property({ attribute: \"log-level\" })\n], MediaProviderElement.prototype, \"logLevel\", 1);\n__decorateClass([\n property({ attribute: \"idle-delay\", type: Number })\n], MediaProviderElement.prototype, \"idleDelay\", 1);\n__decorateClass([\n property({ attribute: \"fullscreen-orientation\" })\n], MediaProviderElement.prototype, \"fullscreenOrientation\", 1);\n\nexport {\n mediaProviderDiscoveryId,\n MediaProviderElement\n};\n","import {\n mediaProviderElementContext\n} from \"./chunk.APMKZUJJ.js\";\nimport {\n mediaProviderDiscoveryId\n} from \"./chunk.63VUN3OP.js\";\nimport {\n mediaStoreContext,\n mediaStoreSubscription,\n resetMediaStore,\n softResetMediaStore\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/media/controller/UserIdleController.ts\nimport { DisposalBin, listen, vdsEvent } from \"@vidstack/foundation\";\nvar UserIdleController = class {\n constructor(_host, _mediaStore) {\n this._host = _host;\n this._mediaStore = _mediaStore;\n this._idle = false;\n this._mediaPaused = false;\n this._idlingPaused = false;\n this._disposal = new DisposalBin();\n this.delay = 2e3;\n _host.addController(this);\n }\n get paused() {\n return this._idlingPaused || this._mediaPaused;\n }\n set paused(paused) {\n this._idlingPaused = paused;\n this._handleIdleChange();\n }\n hostConnected() {\n this._disposal.add(\n this._mediaStore.paused.subscribe(($paused) => {\n this._mediaPaused = $paused;\n this._handleIdleChange();\n })\n );\n const startIdleTimerEvents = [\"pointerdown\", \"pointermove\", \"focus\", \"keydown\"];\n startIdleTimerEvents.forEach((eventType) => {\n const off = listen(this._host, eventType, this._handleIdleChange.bind(this));\n this._disposal.add(off);\n });\n }\n hostDisconnected() {\n this._disposal.empty();\n this._stopIdleTimer();\n }\n _handleIdleChange() {\n if (this.paused) {\n this._stopIdleTimer();\n } else {\n this._startIdleTimer();\n }\n }\n _startIdleTimer() {\n this._stopIdleTimer();\n this._idleTimeout = window.setTimeout(() => {\n this._dispatchIdleChange(!this.paused);\n }, this.delay);\n }\n _stopIdleTimer() {\n window.clearTimeout(this._idleTimeout);\n this._dispatchIdleChange(false);\n }\n _dispatchIdleChange(isIdle) {\n if (this._idle !== isIdle) {\n this._host.dispatchEvent(vdsEvent(\"vds-user-idle-change\", { detail: isIdle }));\n this._idle = isIdle;\n }\n }\n};\n\n// src/media/controller/MediaController.ts\nimport {\n appendTriggerEvent,\n copyStoreRecords,\n debounce,\n discover,\n DisposalBin as DisposalBin2,\n eventListener,\n isNil,\n keysOf,\n listen as listen2,\n RequestQueue,\n throttle,\n unwrapStoreRecord,\n vdsEvent as vdsEvent2\n} from \"@vidstack/foundation\";\nvar MediaController = class {\n constructor(_host) {\n this._host = _host;\n this._disconnectDisposal = new DisposalBin2();\n this.providerQueue = new RequestQueue();\n this.providerDisposal = new DisposalBin2();\n this._logController = false ? new LogController(this._host) : void 0;\n this._logger = false ? new LogDispatcher(this._host) : void 0;\n this._providerContext = mediaProviderElementContext.provide(this._host);\n this._mediaStoreProvider = mediaStoreContext.provide(this._host);\n this.state = unwrapStoreRecord(this._store);\n this._userIdleController = new UserIdleController(this._host, this._store);\n this._handleIdleChange = eventListener(this._host, \"vds-user-idle-change\", (event) => {\n this._store.userIdle.set(event.detail);\n this._satisfyMediaRequest(\"userIdle\", event);\n });\n this._pendingMediaRequests = {\n loading: [],\n play: [],\n pause: [],\n volume: [],\n fullscreen: [],\n seeked: [],\n seeking: [],\n userIdle: []\n };\n this._handleStartLoadingRequest = eventListener(\n this._host,\n \"vds-start-loading\",\n this._createMediaRequestHandler(\"loading\", (event) => {\n if (this.state.canLoad)\n return;\n this._pendingMediaRequests.loading.push(event);\n this._provider.startLoadingMedia();\n })\n );\n this._handleMuteRequest = eventListener(\n this._host,\n \"vds-mute-request\",\n this._createMediaRequestHandler(\"muted\", (event) => {\n if (this.state.muted)\n return;\n this._pendingMediaRequests.volume.push(event);\n this.provider.muted = true;\n })\n );\n this._handleUnmuteRequest = eventListener(\n this._host,\n \"vds-unmute-request\",\n this._createMediaRequestHandler(\"muted\", (event) => {\n if (!this.state.muted)\n return;\n this._pendingMediaRequests.volume.push(event);\n this.provider.muted = false;\n if (this.state.volume === 0) {\n this._pendingMediaRequests.volume.push(event);\n this.provider.volume = 0.25;\n }\n })\n );\n this._handlePlayRequest = eventListener(\n this._host,\n \"vds-play-request\",\n this._createMediaRequestHandler(\"paused\", (event) => {\n if (!this.state.paused)\n return;\n this._pendingMediaRequests.play.push(event);\n this.provider.paused = false;\n })\n );\n this._handlePauseRequest = eventListener(\n this._host,\n \"vds-pause-request\",\n this._createMediaRequestHandler(\"paused\", (event) => {\n if (this.state.paused)\n return;\n this._pendingMediaRequests.pause.push(event);\n this.provider.paused = true;\n })\n );\n this._isSeekingRequestPending = false;\n this._handleSeekingRequest = eventListener(\n this._host,\n \"vds-seeking-request\",\n this._createMediaRequestHandler(\"seeking\", (event) => {\n this._stopWaiting();\n this._pendingMediaRequests.seeking.push(event);\n this._isSeekingRequestPending = true;\n this._store.seeking.set(true);\n })\n );\n this._handleSeekRequest = eventListener(\n this._host,\n \"vds-seek-request\",\n this._createMediaRequestHandler(\"seeking\", (event) => {\n if (this.store.ended) {\n this._isReplay = true;\n }\n this._pendingMediaRequests.seeked.push(event);\n this._isSeekingRequestPending = false;\n let time = event.detail;\n if (this.state.duration - event.detail < 0.25) {\n time = this.state.duration;\n }\n this.provider.currentTime = time;\n })\n );\n this._handleVolumeChangeRequest = eventListener(\n this._host,\n \"vds-volume-change-request\",\n this._createMediaRequestHandler(\"volume\", (event) => {\n const volume = event.detail;\n if (this.state.volume === volume)\n return;\n this._pendingMediaRequests.volume.push(event);\n this.provider.volume = volume;\n if (volume > 0 && this.state.muted) {\n this._pendingMediaRequests.volume.push(event);\n this.provider.muted = false;\n }\n })\n );\n this._handleEnterFullscreenRequest = eventListener(\n this._host,\n \"vds-enter-fullscreen-request\",\n this._createMediaRequestHandler(\"fullscreen\", async (event) => {\n if (this.state.fullscreen)\n return;\n const target = event.detail ?? \"media\";\n if (target === \"media\" && this._host.canFullscreen) {\n this._pendingMediaRequests.fullscreen.push(event);\n await this._host.enterFullscreen?.();\n } else if (this.provider) {\n this._pendingMediaRequests.fullscreen.push(event);\n await this.provider.enterFullscreen();\n }\n })\n );\n this._handleExitFullscreenRequest = eventListener(\n this._host,\n \"vds-exit-fullscreen-request\",\n this._createMediaRequestHandler(\"fullscreen\", async (event) => {\n if (!this.state.fullscreen)\n return;\n const target = event.detail ?? \"media\";\n if (target === \"media\" && this._host.canFullscreen) {\n this._pendingMediaRequests.fullscreen.push(event);\n await this._host.exitFullscreen?.();\n } else if (this.provider) {\n this._pendingMediaRequests.fullscreen.push(event);\n await this.provider.exitFullscreen();\n }\n })\n );\n this._handleResumeIdlingRequest = eventListener(\n this._host,\n \"vds-resume-user-idle-request\",\n (event) => {\n if (!this._mediaRequestEventGateway(event))\n return;\n this._pendingMediaRequests.userIdle.push(event);\n this._userIdleController.paused = false;\n }\n );\n this._handlePauseIdlingRequest = eventListener(\n this._host,\n \"vds-pause-user-idle-request\",\n (event) => {\n if (!this._mediaRequestEventGateway(event))\n return;\n this._pendingMediaRequests.userIdle.push(event);\n this._userIdleController.paused = true;\n }\n );\n this._handleShowPosterRequest = eventListener(\n this._host,\n \"vds-show-poster-request\",\n this._createMediaRequestHandler(\"poster\", () => {\n this._provider.canLoadPoster = true;\n })\n );\n this._handleHidePosterRequest = eventListener(\n this._host,\n \"vds-hide-poster-request\",\n this._createMediaRequestHandler(\"poster\", () => {\n this._provider.canLoadPoster = false;\n })\n );\n this._handleLoopRequest = this._createMediaRequestHandler(\"loop\", () => {\n window.requestAnimationFrame(async () => {\n try {\n this._isLooping = true;\n this._isReplay = true;\n await this._provider.play();\n } catch (e) {\n this._isReplay = false;\n this._isLooping = false;\n }\n });\n });\n this._handleFullscreenChange = eventListener(\n this._host,\n \"vds-fullscreen-change\",\n (event) => {\n this._store.fullscreen.set(event.detail);\n if (event.target !== this._host)\n return;\n this._satisfyMediaRequest(\"fullscreen\", event);\n this._provider?.dispatchEvent(\n vdsEvent2(\"vds-fullscreen-change\", {\n detail: event.detail,\n triggerEvent: event\n })\n );\n }\n );\n this._handleFullscreenError = eventListener(\n this._host,\n \"vds-fullscreen-error\",\n (event) => {\n if (event.target !== this._host)\n return;\n this._satisfyMediaRequest(\"fullscreen\", event);\n this._provider?.dispatchEvent(\n vdsEvent2(\"vds-fullscreen-error\", {\n detail: event.detail,\n triggerEvent: event\n })\n );\n }\n );\n this._isReplay = false;\n this._isLooping = false;\n this._firingWaiting = false;\n this._mediaEvents = [];\n this._handleSeeking = throttle(\n (event) => {\n this._mediaEvents.push(event);\n this._store.seeking.set(true);\n this._store.currentTime.set(event.detail);\n this._satisfyMediaRequest(\"seeking\", event);\n },\n 150,\n { leading: true }\n );\n this._fireWaiting = debounce(() => {\n if (!this._originalWaitingEvent)\n return;\n this._firingWaiting = true;\n const event = vdsEvent2(\"vds-waiting\", this._originalWaitingEvent);\n this._mediaEvents.push(event);\n this._store.waiting.set(true);\n this._store.playing.set(false);\n this._provider?.dispatchEvent(event);\n this._originalWaitingEvent = void 0;\n this._firingWaiting = false;\n }, 300);\n this._skipInitialSrcChange = true;\n discover(_host, mediaProviderDiscoveryId, (provider, onDisconnect) => {\n this.attachMediaProvider(provider, onDisconnect);\n });\n _host.addController({\n hostConnected: () => {\n if (!this.state.canPlay) {\n this._host.setAttribute(\"aria-busy\", \"true\");\n }\n },\n hostDisconnected: () => {\n this._clearMediaStateTracking();\n this._clearPendingMediaRequests();\n this.providerQueue.destroy();\n this.providerDisposal.empty();\n this._skipInitialSrcChange = true;\n this._disconnectDisposal.empty();\n }\n });\n }\n get logLevel() {\n return this._logController?.logLevel ?? \"silent\";\n }\n set logLevel(level) {\n if (false) {\n this._logController.logLevel = level;\n }\n }\n get provider() {\n return this._provider;\n }\n attachMediaProvider(provider, onDisconnect) {\n if (!isNil(this.provider) || this.provider === provider)\n return;\n this._handleMediaProviderDisconnect();\n this._provider = provider;\n this._providerContext.value.set(provider);\n copyStoreRecords(this._provider._store, this._store);\n this._attachMediaEventListeners();\n provider.attachMediaController(this, (cb) => this._disconnectDisposal.add(cb));\n this._flushMediaProviderConnectedQueue();\n onDisconnect(this._handleMediaProviderDisconnect.bind(this));\n }\n _handleMediaProviderDisconnect() {\n if (isNil(this.provider))\n return;\n this._stopWaiting();\n this.providerQueue.destroy();\n this.providerDisposal.empty();\n this._provider = void 0;\n this._providerContext.value.set(void 0);\n resetMediaStore(this._store);\n this._store.viewType.set(\"unknown\" /* Unknown */);\n }\n _flushMediaProviderConnectedQueue() {\n this.providerQueue.start();\n this.providerDisposal.add(() => {\n this.providerQueue.stop();\n });\n }\n get store() {\n return this._mediaStoreProvider.value;\n }\n get _store() {\n return this._mediaStoreProvider.value;\n }\n get idleDelay() {\n return this._userIdleController.delay;\n }\n set idleDelay(delay) {\n this._userIdleController.delay = delay;\n }\n _clearPendingMediaRequests() {\n keysOf(this._pendingMediaRequests).forEach((key) => {\n this._pendingMediaRequests[key] = [];\n });\n }\n _satisfyMediaRequest(type, event) {\n const requestEvent = this._pendingMediaRequests[type].shift();\n if (requestEvent) {\n event.requestEvent = requestEvent;\n appendTriggerEvent(event, requestEvent);\n }\n }\n _mediaRequestEventGateway(event) {\n event.stopPropagation();\n if (false) {\n this._logger?.infoGroup(`\\u{1F4EC} received \\`${event.type}\\``).labelledLog(\"Request\", event).dispatch();\n }\n return true;\n }\n _createMediaRequestHandler(queueKey, callback) {\n return (event) => {\n if (!this._mediaRequestEventGateway(event))\n return;\n if (this._provider) {\n callback(event);\n return;\n }\n this.providerQueue.queue(queueKey, () => {\n callback(event);\n });\n };\n }\n _attachMediaEventListeners() {\n if (!this._provider)\n return;\n const mediaEventListeners = {\n \"vds-can-load\": this._handleCanLoad,\n \"vds-load-start\": this._handleLoadStart,\n \"vds-loaded-data\": this._handleLoadedData,\n \"vds-loaded-metadata\": this._handleLoadedMetadata,\n \"vds-can-play\": this._handleCanPlay,\n \"vds-can-play-through\": this._handleCanPlayThrough,\n \"vds-current-src-change\": this._handleCurrentSrcChange,\n \"vds-autoplay\": this._handleAutoplay,\n \"vds-autoplay-fail\": this._handleAutoplayFail,\n \"vds-loop-request\": this._handleLoopRequest,\n \"vds-play\": this._handlePlay,\n \"vds-play-fail\": this._handlePlayFail,\n \"vds-playing\": this._handlePlaying,\n \"vds-pause\": this._handlePause,\n \"vds-time-update\": this._handleTimeUpdate,\n \"vds-volume-change\": this._handleVolumeChange,\n \"vds-seeking\": this._handleSeeking,\n \"vds-seeked\": this._handleSeeked,\n \"vds-waiting\": this._handleWaiting,\n \"vds-ended\": this._handleEnded,\n \"vds-autoplay-change\": this._handleAutoplayChange,\n \"vds-error\": this._handleError,\n \"vds-fullscreen-support-change\": this._handleFullscreenSupportChange,\n \"vds-poster-change\": this._handlePosterChange,\n \"vds-loop-change\": this._handleLoopChange,\n \"vds-playsinline-change\": this._handlePlaysinlineChange,\n \"vds-controls-change\": this._handleControlsChange,\n \"vds-media-type-change\": this._handleMediaTypeChange,\n \"vds-view-type-change\": this._handleViewTypeChange,\n \"vds-duration-change\": this._handleDurationChange,\n \"vds-progress\": this._handleProgress,\n \"vds-src-change\": this._handleSrcChange\n };\n for (const eventType of keysOf(mediaEventListeners)) {\n const handler = mediaEventListeners[eventType].bind(this);\n this.providerDisposal.add(listen2(this._provider, eventType, handler));\n }\n }\n _clearMediaStateTracking() {\n this._isReplay = false;\n this._isLooping = false;\n this._firingWaiting = false;\n this._originalWaitingEvent = void 0;\n this._mediaEvents = [];\n }\n _findLastMediaEvent(eventType) {\n return this._mediaEvents[this._mediaEvents.map((e) => e.type).lastIndexOf(eventType)];\n }\n _handleCanLoad(event) {\n this._store.canLoad.set(true);\n this._mediaEvents.push(event);\n this._satisfyMediaRequest(\"loading\", event);\n }\n _updateMetadata(metadata) {\n this._store.currentSrc.set(metadata.currentSrc);\n this._store.mediaType.set(metadata.mediaType);\n this._store.viewType.set(metadata.viewType);\n }\n _handleLoadStart(event) {\n this._updateMetadata(event.detail);\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-src-change\"));\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-can-load\"));\n }\n _handleLoadedData(event) {\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-load-start\"));\n }\n _handleLoadedMetadata(event) {\n this._updateMetadata(event.detail);\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-load-start\"));\n }\n _handleCanPlay(event) {\n this._mediaEvents.push(event);\n if (event.triggerEvent?.type !== \"loadedmetadata\") {\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-loaded-metadata\"));\n }\n this._store.canPlay.set(true);\n this._store.duration.set(event.detail.duration);\n this._host.setAttribute(\"aria-busy\", \"false\");\n }\n _handleCanPlayThrough(event) {\n this._store.canPlay.set(true);\n this._store.duration.set(event.detail.duration);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-can-play\"));\n }\n _handleAutoplay(event) {\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-play\"));\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-can-play\"));\n this._store.autoplayError.set(void 0);\n }\n _handleAutoplayFail(event) {\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-play-fail\"));\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-can-play\"));\n this._store.autoplayError.set(event.detail);\n this._clearMediaStateTracking();\n }\n _handlePlay(event) {\n if (this._isLooping || !this.state.paused) {\n event.stopImmediatePropagation();\n return;\n }\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-waiting\"));\n this._satisfyMediaRequest(\"play\", event);\n this._store.paused.set(false);\n this._store.autoplayError.set(void 0);\n if (this.state.ended || this._isReplay) {\n this._isReplay = false;\n this._store.ended.set(false);\n const replayEvent = vdsEvent2(\"vds-replay\", {\n triggerEvent: event\n });\n this._provider?.dispatchEvent(replayEvent);\n }\n }\n _handlePlayFail(event) {\n this._mediaEvents.push(event);\n this._stopWaiting();\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-play\"));\n this._store.paused.set(true);\n this._store.playing.set(false);\n this._satisfyMediaRequest(\"play\", event);\n this._clearMediaStateTracking();\n }\n _handlePlaying(event) {\n this._mediaEvents.push(event);\n const playEvent = this._findLastMediaEvent(\"vds-play\");\n if (playEvent) {\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-waiting\"));\n appendTriggerEvent(event, playEvent);\n } else {\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-seeked\"));\n }\n this._stopWaiting();\n this._clearMediaStateTracking();\n this._store.paused.set(false);\n this._store.playing.set(true);\n this._store.seeking.set(false);\n this._store.ended.set(false);\n if (this._isLooping) {\n event.stopImmediatePropagation();\n this._isLooping = false;\n return;\n }\n if (!this.state.started) {\n this._store.started.set(true);\n this._provider?.dispatchEvent(vdsEvent2(\"vds-started\", { triggerEvent: event }));\n }\n }\n _handlePause(event) {\n if (this._isLooping) {\n event.stopImmediatePropagation();\n return;\n }\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-seeked\"));\n this._satisfyMediaRequest(\"pause\", event);\n this._store.paused.set(true);\n this._store.playing.set(false);\n this._store.seeking.set(false);\n this._stopWaiting();\n this._clearMediaStateTracking();\n }\n _handleTimeUpdate(event) {\n const { currentTime, played } = event.detail;\n this._store.currentTime.set(currentTime);\n this._store.played.set(played);\n this._store.waiting.set(false);\n }\n _handleVolumeChange(event) {\n this._store.volume.set(event.detail.volume);\n this._store.muted.set(event.detail.muted || event.detail.volume === 0);\n this._satisfyMediaRequest(\"volume\", event);\n }\n _handleSeeked(event) {\n if (this._isSeekingRequestPending) {\n this._store.seeking.set(true);\n event.stopImmediatePropagation();\n } else if (this.state.seeking) {\n this._mediaEvents.push(event);\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-waiting\"));\n appendTriggerEvent(event, this._findLastMediaEvent(\"vds-seeking\"));\n if (this.state.paused) {\n this._stopWaiting();\n }\n this._store.seeking.set(false);\n if (event.detail !== this.state.duration) {\n this._store.ended.set(false);\n }\n this._store.currentTime.set(event.detail);\n this._satisfyMediaRequest(\"seeked\", event);\n }\n }\n _stopWaiting() {\n this._fireWaiting.cancel();\n this._store.waiting.set(false);\n }\n _handleWaiting(event) {\n if (this._firingWaiting)\n return;\n event.stopImmediatePropagation();\n this._originalWaitingEvent = event;\n this._fireWaiting();\n }\n _handleEnded(event) {\n if (this._isLooping) {\n event.stopImmediatePropagation();\n return;\n }\n this._stopWaiting();\n this._store.paused.set(true);\n this._store.playing.set(false);\n this._store.seeking.set(false);\n this._store.ended.set(true);\n this._clearMediaStateTracking();\n }\n _handleAutoplayChange(event) {\n this._store.autoplay.set(event.detail);\n }\n _handleCurrentSrcChange(event) {\n this._store.currentSrc.set(event.detail);\n if (this._skipInitialSrcChange) {\n this._skipInitialSrcChange = false;\n return;\n }\n this._clearMediaStateTracking();\n softResetMediaStore(this._store);\n this._host.setAttribute(\"aria-busy\", \"true\");\n }\n _handleError(event) {\n this._store.error.set(event.detail);\n }\n _handleFullscreenSupportChange(event) {\n this._store.canFullscreen.set(event.detail);\n }\n _handlePosterChange(event) {\n this._store.poster.set(event.detail);\n }\n _handleLoopChange(event) {\n this._store.loop.set(event.detail);\n }\n _handlePlaysinlineChange(event) {\n this._store.playsinline.set(event.detail);\n }\n _handleControlsChange(event) {\n this._store.controls.set(event.detail);\n }\n _handleMediaTypeChange(event) {\n this._store.mediaType.set(event.detail);\n }\n _handleDurationChange(event) {\n const duration = event.detail;\n this._store.duration.set(!isNaN(duration) ? duration : 0);\n }\n _handleProgress(event) {\n const { buffered, seekable } = event.detail;\n const bufferedAmount = buffered.length === 0 ? 0 : buffered.end(buffered.length - 1);\n const seekableAmount = seekable.length === 0 ? 0 : seekable.end(seekable.length - 1);\n this._store.buffered.set(buffered);\n this._store.bufferedAmount.set(bufferedAmount);\n this._store.seekable.set(seekable);\n this._store.seekableAmount.set(seekableAmount);\n }\n _handleSrcChange(event) {\n this._store.src.set(event.detail);\n }\n _handleViewTypeChange(event) {\n this._store.viewType.set(event.detail);\n }\n};\n\n// src/media/MediaElement.ts\nimport {\n discoverable,\n FullscreenController,\n IS_IOS,\n ScreenOrientationController,\n setAttribute as setAttribute2\n} from \"@vidstack/foundation\";\nimport {\n css,\n html,\n LitElement\n} from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\n\n// src/media/style/MediaAttrsController.ts\nimport { isNumber, isString, setAttribute } from \"@vidstack/foundation\";\n\n// src/media/style/MediaStyleController.ts\nimport { camelToKebabCase, DisposalBin as DisposalBin3, requestIdleCallback } from \"@vidstack/foundation\";\nvar MediaStyleController = class {\n constructor(_host, _store, _mediaProps) {\n this._host = _host;\n this._store = _store;\n this._mediaProps = _mediaProps;\n this._disposal = new DisposalBin3();\n this._host.addController({\n hostConnected: this._hostConnected.bind(this),\n hostDisconnected: this._hostDisconnected.bind(this)\n });\n }\n _hostConnected() {\n requestIdleCallback(() => {\n for (const propName of this._mediaProps) {\n const store = this._store[propName];\n if (store) {\n const attrName = this._getMediaAttrName(propName);\n const unsub = store.subscribe(($v) => {\n window?.requestAnimationFrame(() => {\n this._handleValueChange(propName, attrName, $v);\n });\n });\n this._disposal.add(unsub);\n }\n }\n });\n }\n _hostDisconnected() {\n for (const propName of this._mediaProps) {\n this._handleDisconnect(propName, this._getMediaAttrName(propName));\n }\n this._disposal.empty();\n }\n _getMediaAttrName(propName) {\n return camelToKebabCase(propName);\n }\n};\n\n// src/media/style/MediaAttrsController.ts\nvar MediaAttrsController = class extends MediaStyleController {\n _handleValueChange(_, attrName, value) {\n window.requestAnimationFrame(() => {\n setAttribute(\n this._host,\n attrName,\n isString(value) || isNumber(value) ? String(value) : !!value\n );\n });\n }\n _handleDisconnect(_, attrName) {\n this._host.removeAttribute(attrName);\n }\n};\nfunction bindMediaPropsToAttrs(...params) {\n return new MediaAttrsController(...params);\n}\n\n// src/media/style/MediaCssPropsController.ts\nimport { isNumber as isNumber2, isString as isString2 } from \"@vidstack/foundation\";\nvar MediaCssPropsController = class extends MediaStyleController {\n _handleValueChange(_, attrName, value) {\n window.requestAnimationFrame(() => {\n this._host.style.setProperty(\n this._getCssPropName(attrName),\n isString2(value) || isNumber2(value) ? String(value) : null\n );\n });\n }\n _getCssPropName(attrName) {\n return `--vds-${attrName}`;\n }\n _handleDisconnect(_, attrName) {\n this._host.style.setProperty(this._getCssPropName(attrName), null);\n }\n};\nfunction bindMediaPropsToCssProps(...params) {\n return new MediaCssPropsController(...params);\n}\n\n// src/media/MediaElement.ts\nvar mediaDiscoveryId = Symbol(\"@vidstack/media-discovery\");\nvar MediaElement = class extends LitElement {\n constructor() {\n super();\n this.controller = new MediaController(this);\n this.__mediaFullscreen = false;\n this.__mediaIsVideoView = false;\n this.__mediaPlaysinline = false;\n this.screenOrientationController = new ScreenOrientationController(this);\n this.fullscreenController = new FullscreenController(this, this.screenOrientationController);\n discoverable(this, \"vds-media-connect\", { register: mediaDiscoveryId });\n mediaStoreSubscription(this, \"fullscreen\", ($fullscreen) => {\n this.__mediaFullscreen = $fullscreen;\n });\n mediaStoreSubscription(this, \"viewType\", ($viewType) => {\n this.__mediaIsVideoView = $viewType === \"video\" /* Video */;\n });\n mediaStoreSubscription(this, \"playsinline\", ($playsinline) => {\n this.__mediaPlaysinline = $playsinline;\n });\n this._bindMediaAttributes();\n this._bindMediaCSSProperties();\n }\n static get styles() {\n return [\n css`:host{display:inline-block;position:relative;contain:content}:host([hidden]){display:none}`\n ];\n }\n get provider() {\n return this.controller.provider;\n }\n update(changedProperties) {\n setAttribute2(this, \"hide-ui\", this._shouldHideMediaUI());\n super.update(changedProperties);\n }\n render() {\n return html`<slot></slot>`;\n }\n get canFullscreen() {\n return this.fullscreenController.isSupported;\n }\n get fullscreen() {\n return this.fullscreenController.isFullscreen;\n }\n get fullscreenOrientation() {\n return this.fullscreenController.screenOrientationLock;\n }\n set fullscreenOrientation(lockType) {\n const prevLockType = this.fullscreenController.screenOrientationLock;\n if (prevLockType !== lockType) {\n this.fullscreenController.screenOrientationLock = lockType;\n this.requestUpdate(\"fullscreen-orientation\", prevLockType);\n }\n }\n enterFullscreen() {\n return this.fullscreenController.enterFullscreen();\n }\n exitFullscreen() {\n return this.fullscreenController.exitFullscreen();\n }\n _bindMediaAttributes() {\n bindMediaPropsToAttrs(this, this.controller.store, [\n \"autoplay\",\n \"autoplayError\",\n \"canLoad\",\n \"canPlay\",\n \"canFullscreen\",\n \"ended\",\n \"error\",\n \"fullscreen\",\n \"userIdle\",\n \"loop\",\n \"mediaType\",\n \"muted\",\n \"paused\",\n \"playing\",\n \"playsinline\",\n \"seeking\",\n \"started\",\n \"viewType\",\n \"waiting\"\n ]);\n }\n _bindMediaCSSProperties() {\n bindMediaPropsToCssProps(this, this.controller.store, [\n \"bufferedAmount\",\n \"currentTime\",\n \"duration\",\n \"seekableAmount\"\n ]);\n }\n _shouldHideMediaUI() {\n return IS_IOS && this.__mediaIsVideoView && (!this.__mediaPlaysinline || this.__mediaFullscreen);\n }\n};\n__decorateClass([\n state()\n], MediaElement.prototype, \"__mediaFullscreen\", 2);\n__decorateClass([\n state()\n], MediaElement.prototype, \"__mediaIsVideoView\", 2);\n__decorateClass([\n state()\n], MediaElement.prototype, \"__mediaPlaysinline\", 2);\n__decorateClass([\n property({ attribute: \"fullscreen-orientation\" })\n], MediaElement.prototype, \"fullscreenOrientation\", 1);\n\nexport {\n UserIdleController,\n MediaController,\n mediaDiscoveryId,\n MediaElement\n};\n","import {\n MediaElement\n} from \"./chunk.YGYRCKY2.js\";\n\n// src/define/vds-media.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-media\", MediaElement);\n","import {\n MediaProviderElement\n} from \"./chunk.63VUN3OP.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/providers/html5/Html5MediaElement.ts\nimport {\n DisposalBin,\n getNumberOfDecimalPlaces,\n getSlottedChildren,\n isNil,\n isNumber,\n isScalarArrayEqual,\n isUndefined,\n keysOf,\n listen,\n setAttribute,\n vdsEvent\n} from \"@vidstack/foundation\";\nimport { property } from \"lit/decorators.js\";\nvar AUDIO_EXTENSIONS = /\\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nvar VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v|avi)($|\\?)/i;\nfunction getMediaTypeFromExt(src) {\n if (AUDIO_EXTENSIONS.test(src))\n return \"audio\" /* Audio */;\n if (VIDEO_EXTENSIONS.test(src))\n return \"video\" /* Video */;\n return \"unknown\" /* Unknown */;\n}\nvar Html5MediaElement = class extends MediaProviderElement {\n constructor() {\n super(...arguments);\n this.preload = \"metadata\";\n this._timeRAF = void 0;\n this._hasMediaElementConnected = false;\n this._mediaElementDisposal = new DisposalBin();\n this._isMediaWaiting = false;\n this._ignoreNextAbortEvent = false;\n this._ignoreNextEmptiedEvent = false;\n }\n get mediaElement() {\n return this._mediaElement;\n }\n disconnectedCallback() {\n this._isMediaWaiting = false;\n super.disconnectedCallback();\n this._cancelTimeUpdates();\n }\n destroy() {\n if (this.mediaElement) {\n this.mediaElement.pause();\n this.mediaElement.src = \"\";\n this.mediaElement.innerHTML = \"\";\n this.mediaElement.load();\n }\n super.destroy();\n }\n _cancelTimeUpdates() {\n if (isNumber(this._timeRAF))\n window.cancelAnimationFrame(this._timeRAF);\n this._timeRAF = void 0;\n }\n _requestTimeUpdates() {\n if (!isUndefined(this._timeRAF))\n return;\n this._requestTimeUpdate();\n }\n _requestTimeUpdate() {\n const newTime = this.mediaElement?.currentTime ?? 0;\n if (this.state.currentTime !== newTime) {\n this._updateCurrentTime(newTime);\n }\n this._timeRAF = window.requestAnimationFrame(() => {\n if (isUndefined(this._timeRAF))\n return;\n this._requestTimeUpdate();\n });\n }\n _updateCurrentTime(newTime, triggerEvent) {\n this.dispatchEvent(\n vdsEvent(\"vds-time-update\", {\n detail: {\n currentTime: Math.min(newTime, this.mediaElement?.duration ?? 0),\n played: this.mediaElement.played\n },\n triggerEvent\n })\n );\n }\n handleDefaultSlotChange() {\n this._handleMediaElementDisconnect();\n this._handleMediaElementConnect();\n }\n get _canMediaElementConnect() {\n return this.canLoad && !isNil(this.mediaElement) && !this._hasMediaElementConnected;\n }\n _findSlottedMediaElement() {\n const mediaElement = getSlottedChildren(this)[0];\n const tagName = mediaElement?.tagName ?? \"\";\n if (!/^(audio|video)$/i.test(tagName)) {\n if (false) {\n throw Error(`[vds]: expected <audio> or <video> in default slot. Received: <${tagName}>.`);\n }\n }\n this._mediaElement = mediaElement ?? void 0;\n }\n _handleMediaElementConnect() {\n window.requestAnimationFrame(() => {\n this._findSlottedMediaElement();\n if (!this._canMediaElementConnect)\n return;\n const mediaEl = this.mediaElement;\n if (mediaEl.hasAttribute(\"loop\")) {\n this.loop = true;\n }\n mediaEl.removeAttribute(\"loop\");\n mediaEl.removeAttribute(\"poster\");\n setAttribute(mediaEl, \"controls\", this.controls);\n if (!this.state.canFullscreen && this.fullscreenController.isSupported) {\n this.dispatchEvent(\n vdsEvent(\"vds-fullscreen-support-change\", {\n detail: this.canFullscreen\n })\n );\n }\n this._attachMediaEventListeners();\n this._observePlaysinline();\n this._observeMediaSources();\n if (this.canLoadPoster && this.poster.length > 0 && mediaEl.getAttribute(\"poster\") !== this.poster) {\n mediaEl.setAttribute(\"poster\", this.poster);\n }\n this._startPreloadingMedia();\n if (false) {\n this._logger?.infoGroup(\"Media element connected\").labelledLog(\"Media Element\", mediaEl).dispatch();\n }\n this._hasMediaElementConnected = true;\n this._disconnectDisposal.add(this._handleMediaElementDisconnect.bind(this));\n });\n }\n _handleMediaElementDisconnect() {\n this._cancelTimeUpdates();\n window.requestAnimationFrame(() => {\n this._mediaElementDisposal.empty();\n this._mediaElement = void 0;\n });\n if (this._hasMediaElementConnected && false) {\n this._logger?.infoGroup(\"Media element disconnected\").labelledLog(\"Media Element\", this.mediaElement).dispatch();\n }\n this._hasMediaElementConnected = false;\n }\n startLoadingMedia() {\n super.startLoadingMedia();\n this._handleMediaElementConnect();\n }\n _startPreloadingMedia() {\n if (this.state.canPlay)\n return;\n this.mediaElement.setAttribute(\"preload\", this.preload);\n const isNetworkActive = this.mediaElement.networkState >= 1;\n this._ignoreNextAbortEvent = isNetworkActive;\n this._ignoreNextEmptiedEvent = isNetworkActive;\n this.mediaElement.load();\n setTimeout(() => {\n this._ignoreNextAbortEvent = false;\n this._ignoreNextEmptiedEvent = false;\n }, 0);\n }\n _observePlaysinline() {\n const isPlayingInline = () => this.mediaElement.hasAttribute(\"playsinline\");\n this._handlePlaysinlineChange(isPlayingInline());\n const observer = new MutationObserver(() => this._handlePlaysinlineChange(isPlayingInline()));\n observer.observe(this.mediaElement, { attributeFilter: [\"playsinline\"] });\n this._mediaElementDisposal.add(() => observer.disconnect());\n }\n _handlePlaysinlineChange(playsinline) {\n this.dispatchEvent(vdsEvent(\"vds-playsinline-change\", { detail: playsinline }));\n }\n _observeMediaSources() {\n this._handleSrcChange(this._getMediaSources());\n const observer = new MutationObserver(() => this._handleSrcChange(this._getMediaSources()));\n observer.observe(this.mediaElement, { attributeFilter: [\"src\"], subtree: true });\n this._mediaElementDisposal.add(() => observer.disconnect());\n }\n _handleSrcChange(sources) {\n const prevSources = this.state.src;\n if (!isScalarArrayEqual(prevSources, sources)) {\n this.dispatchEvent(vdsEvent(\"vds-src-change\", { detail: sources }));\n }\n }\n _getMediaSources() {\n const resources = [\n this.mediaElement?.src,\n ...Array.from(this.mediaElement?.querySelectorAll(\"source\") ?? []).map(\n (source) => source.src\n )\n ].filter(Boolean);\n return Array.from(new Set(resources));\n }\n _getMediaMetadata() {\n return {\n src: this.state.src,\n currentSrc: this.mediaElement.currentSrc,\n duration: this.mediaElement.duration || 0,\n poster: this.mediaElement.poster,\n mediaType: this._getMediaType(),\n viewType: this.state.viewType\n };\n }\n _attachMediaEventListeners() {\n if (isNil(this.mediaElement))\n return;\n const mediaEventListeners = {\n abort: this._handleAbort,\n canplay: this._handleCanPlay,\n canplaythrough: this._handleCanPlayThrough,\n durationchange: this._handleDurationChange,\n emptied: this._handleEmptied,\n ended: this._handleEnded,\n error: this._handleError,\n loadeddata: this._handleLoadedData,\n loadedmetadata: this._handleLoadedMetadata,\n loadstart: this._handleLoadStart,\n pause: this._handlePause,\n play: this._handlePlay,\n playing: this._handlePlaying,\n progress: this._handleProgress,\n ratechange: this._handleRateChange,\n seeked: this._handleSeeked,\n seeking: this._handleSeeking,\n stalled: this._handleStalled,\n suspend: this._handleSuspend,\n volumechange: this._handleVolumeChange,\n waiting: this._handleWaiting\n };\n keysOf(mediaEventListeners).forEach((type) => {\n const handler = mediaEventListeners[type].bind(this);\n const off = listen(this.mediaElement, type, async (event) => {\n if (false) {\n this._logger?.debugGroup(`\\u{1F4FA} fired \\`${event.type}\\``).labelledLog(\"Event\", event).labelledLog(\"State\", { ...this.state }).dispatch();\n }\n await handler(event);\n });\n this._mediaElementDisposal.add(off);\n });\n if (false) {\n this._logger?.debug(\"attached event listeners\");\n }\n }\n _handleAbort(event) {\n if (this._ignoreNextAbortEvent)\n return;\n this.dispatchEvent(vdsEvent(\"vds-abort\", { triggerEvent: event }));\n this._handleCurrentSrcChange(\"\", event);\n }\n _handleCanPlay(event) {\n this._handleMediaReady({ event, duration: this.mediaElement.duration });\n }\n _handleCanPlayThrough(event) {\n if (this.state.started)\n return;\n this.dispatchEvent(\n vdsEvent(\"vds-can-play-through\", {\n triggerEvent: event,\n detail: { duration: this.mediaElement.duration }\n })\n );\n }\n _handleLoadStart(event) {\n this._handleCurrentSrcChange(this.mediaElement.currentSrc, event);\n if (this.mediaElement.currentSrc === \"\") {\n this._handleAbort();\n return;\n }\n this.dispatchEvent(\n vdsEvent(\"vds-load-start\", {\n triggerEvent: event,\n detail: this._getMediaMetadata()\n })\n );\n }\n _handleEmptied(event) {\n if (this._ignoreNextEmptiedEvent)\n return;\n this.dispatchEvent(vdsEvent(\"vds-emptied\", { triggerEvent: event }));\n }\n _handleLoadedData(event) {\n this.dispatchEvent(vdsEvent(\"vds-loaded-data\", { triggerEvent: event }));\n }\n _handleLoadedMetadata(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-volume-change\", {\n detail: {\n volume: this.mediaElement.volume,\n muted: this.mediaElement.muted\n }\n })\n );\n this.dispatchEvent(\n vdsEvent(\"vds-loaded-metadata\", {\n triggerEvent: event,\n detail: this._getMediaMetadata()\n })\n );\n }\n _determineMediaType(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-media-type-change\", {\n detail: this._getMediaType(),\n triggerEvent: event\n })\n );\n }\n _handlePlay(event) {\n const playEvent = vdsEvent(\"vds-play\", { triggerEvent: event });\n playEvent.autoplay = this._attemptingAutoplay;\n this.dispatchEvent(playEvent);\n }\n _handlePause(event) {\n if (this.mediaElement.readyState === 1 && !this._isMediaWaiting) {\n return;\n }\n this._isMediaWaiting = false;\n this._cancelTimeUpdates();\n this.dispatchEvent(vdsEvent(\"vds-pause\", { triggerEvent: event }));\n }\n _handlePlaying(event) {\n this._isMediaWaiting = false;\n const playingEvent = vdsEvent(\"vds-playing\", { triggerEvent: event });\n this.dispatchEvent(playingEvent);\n this._requestTimeUpdates();\n }\n _handleDurationChange(event) {\n if (this.mediaElement.ended) {\n this._updateCurrentTime(this.mediaElement.duration, event);\n }\n this.dispatchEvent(\n vdsEvent(\"vds-duration-change\", {\n detail: this.mediaElement.duration,\n triggerEvent: event\n })\n );\n }\n _handleProgress(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-progress\", {\n triggerEvent: event,\n detail: {\n buffered: this.mediaElement.buffered,\n seekable: this.mediaElement.seekable\n }\n })\n );\n }\n _handleRateChange(event) {\n throw Error(\"Not implemented\");\n }\n _handleSeeking(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-seeking\", {\n detail: this.mediaElement.currentTime,\n triggerEvent: event\n })\n );\n }\n _handleSeeked(event) {\n const seekedEvent = vdsEvent(\"vds-seeked\", {\n detail: this.mediaElement.currentTime,\n triggerEvent: event\n });\n this.dispatchEvent(seekedEvent);\n const currentTime = this.mediaElement.currentTime;\n if (Math.trunc(currentTime) === Math.trunc(this.mediaElement.duration) && getNumberOfDecimalPlaces(this.mediaElement.duration) > getNumberOfDecimalPlaces(currentTime)) {\n this._updateCurrentTime(this.mediaElement.duration, event);\n if (!this.mediaElement.ended) {\n try {\n this.play();\n } catch (e) {\n }\n }\n }\n }\n _handleStalled(event) {\n this.dispatchEvent(vdsEvent(\"vds-stalled\", { triggerEvent: event }));\n if (this.mediaElement.readyState < 3) {\n this._isMediaWaiting = true;\n this.dispatchEvent(vdsEvent(\"vds-waiting\", { triggerEvent: event }));\n }\n }\n _handleVolumeChange(event) {\n this.dispatchEvent(\n vdsEvent(\"vds-volume-change\", {\n detail: {\n volume: this.mediaElement.volume,\n muted: this.mediaElement.muted\n },\n triggerEvent: event\n })\n );\n }\n _handleWaiting(event) {\n if (this.mediaElement.readyState < 3) {\n this._isMediaWaiting = true;\n this.dispatchEvent(vdsEvent(\"vds-waiting\", { triggerEvent: event }));\n }\n }\n _handleSuspend(event) {\n const suspendEvent = vdsEvent(\"vds-suspend\", { triggerEvent: event });\n this.dispatchEvent(suspendEvent);\n }\n _handleEnded(event) {\n this._cancelTimeUpdates();\n this._updateCurrentTime(this.mediaElement.duration, event);\n const endEvent = vdsEvent(\"vds-end\", { triggerEvent: event });\n this.dispatchEvent(endEvent);\n if (this.state.loop) {\n this._handleLoop();\n } else {\n this.dispatchEvent(vdsEvent(\"vds-ended\", { triggerEvent: event }));\n }\n }\n _handleLoop() {\n const hasCustomControls = isNil(this.controls);\n if (hasCustomControls) {\n this.mediaElement.controls = false;\n }\n this.dispatchEvent(vdsEvent(\"vds-loop-request\"));\n }\n _handleError(event) {\n const mediaError = this.mediaElement.error;\n if (!mediaError)\n return;\n this.dispatchEvent(\n vdsEvent(\"vds-error\", {\n detail: {\n message: mediaError.message,\n code: mediaError.code,\n mediaError\n },\n triggerEvent: event\n })\n );\n }\n _getPaused() {\n return this.mediaElement?.paused ?? true;\n }\n _getVolume() {\n return this.mediaElement?.volume ?? 1;\n }\n _setVolume(newVolume) {\n this.mediaElement.volume = newVolume;\n }\n _getCurrentTime() {\n return this.mediaElement?.currentTime ?? 0;\n }\n _setCurrentTime(newTime) {\n if (this.mediaElement.currentTime !== newTime) {\n this.mediaElement.currentTime = newTime;\n }\n }\n _getMuted() {\n return this.mediaElement?.muted ?? false;\n }\n _setMuted(isMuted) {\n this.mediaElement.muted = isMuted;\n }\n async play() {\n if (false) {\n this._logger?.info(\"attempting to play...\");\n }\n try {\n this._throwIfNotReadyForPlayback();\n await this._resetPlaybackIfEnded();\n return this.mediaElement?.play();\n } catch (error) {\n const playErrorEvent = vdsEvent(\"vds-play-fail\");\n playErrorEvent.autoplay = this._attemptingAutoplay;\n playErrorEvent.error = error;\n throw error;\n }\n }\n async pause() {\n if (false) {\n this._logger?.info(\"attempting to pause...\");\n }\n return this.mediaElement?.pause();\n }\n _getMediaType() {\n return getMediaTypeFromExt(this.state.currentSrc);\n }\n};\n__decorateClass([\n property()\n], Html5MediaElement.prototype, \"preload\", 2);\n\nexport {\n AUDIO_EXTENSIONS,\n VIDEO_EXTENSIONS,\n Html5MediaElement\n};\n","import {\n Html5MediaElement\n} from \"./chunk.M7J7NUUF.js\";\n\n// src/providers/audio/AudioElement.ts\nimport { vdsEvent } from \"@vidstack/foundation\";\nimport { css } from \"lit\";\nvar AudioElement = class extends Html5MediaElement {\n static get styles() {\n return [\n css`:host{display:inline-block}:host([hidden]){display:none}`\n ];\n }\n connectedCallback() {\n super.connectedCallback();\n this.dispatchEvent(\n vdsEvent(\"vds-view-type-change\", {\n detail: \"audio\" /* Audio */\n })\n );\n }\n};\n\nexport {\n AudioElement\n};\n","import {\n AudioElement\n} from \"./chunk.MWM7HRI6.js\";\n\n// src/define/vds-audio.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-audio\", AudioElement);\n","import {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/toggle-button/ToggleButtonElement.ts\nimport {\n eventListener,\n focusVisiblePolyfill,\n isKeyboardClick,\n isKeyboardEvent,\n setAttribute,\n setAttributeIfEmpty\n} from \"@vidstack/foundation\";\nimport {\n html,\n LitElement\n} from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\n// src/ui/toggle-button/styles.ts\nimport { css } from \"lit\";\nvar toggleButtonElementStyles = css`:host{display:table;contain:content;user-select:none;cursor:pointer;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host(:focus){outline:0}:host(:focus-visible){outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}:host(.focus-visible){outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}`;\n\n// src/ui/toggle-button/ToggleButtonElement.ts\nvar ToggleButtonElement = class extends LitElement {\n constructor() {\n super();\n this.pressed = false;\n this.disabled = false;\n this._handleButtonClickCapture = eventListener(\n this,\n \"click\",\n (event) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n },\n { capture: true }\n );\n if (false)\n logElementLifecycle(this);\n focusVisiblePolyfill(this);\n [\"pointerup\", \"keydown\"].forEach((eventType) => {\n eventListener(this, eventType, (event) => {\n if (this.disabled || isKeyboardEvent(event) && !isKeyboardClick(event)) {\n return;\n }\n this._handleButtonClick(event);\n });\n });\n }\n static get styles() {\n return [toggleButtonElementStyles];\n }\n static get parts() {\n return [];\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"tabindex\", \"0\");\n setAttributeIfEmpty(this, \"role\", \"button\");\n this._updateAriaPressedAttr();\n }\n updated(changedProperties) {\n if (changedProperties.has(\"pressed\")) {\n this._updateAriaPressedAttr();\n }\n }\n _updateAriaPressedAttr() {\n setAttribute(this, \"aria-pressed\", this.pressed ? \"true\" : \"false\");\n }\n render() {\n return this._renderDefaultSlot();\n }\n _renderDefaultSlot() {\n return html`<slot></slot>`;\n }\n _handleButtonClick(event) {\n this.pressed = !this.pressed;\n }\n};\n__decorateClass([\n property({ type: Boolean })\n], ToggleButtonElement.prototype, \"pressed\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], ToggleButtonElement.prototype, \"disabled\", 2);\n\nexport {\n ToggleButtonElement\n};\n","// src/media/interact/MediaRemoteControl.ts\nimport {\n hostRequestQueue,\n RequestQueue,\n vdsEvent\n} from \"@vidstack/foundation\";\nvar MediaRemoteControl = class {\n constructor(_host) {\n if (_host) {\n this._target = _host;\n this._createLogger(_host);\n this._requests = hostRequestQueue(_host);\n } else {\n this._requests = new RequestQueue();\n }\n }\n startLoading(triggerEvent) {\n this._dispatchRequest(\"vds-start-loading\", { triggerEvent });\n }\n play(triggerEvent) {\n this._dispatchRequest(\"vds-play-request\", { triggerEvent });\n }\n pause(triggerEvent) {\n this._dispatchRequest(\"vds-pause-request\", { triggerEvent });\n }\n mute(triggerEvent) {\n this._dispatchRequest(\"vds-mute-request\", { triggerEvent });\n }\n unmute(triggerEvent) {\n this._dispatchRequest(\"vds-unmute-request\", { triggerEvent });\n }\n enterFullscreen(target, triggerEvent) {\n this._dispatchRequest(\"vds-enter-fullscreen-request\", {\n triggerEvent,\n detail: target\n });\n }\n exitFullscreen(target, triggerEvent) {\n this._dispatchRequest(\"vds-exit-fullscreen-request\", {\n triggerEvent,\n detail: target\n });\n }\n seeking(time, triggerEvent) {\n this._dispatchRequest(\"vds-seeking-request\", {\n detail: time,\n triggerEvent\n });\n }\n seek(time, triggerEvent) {\n this._dispatchRequest(\"vds-seek-request\", {\n detail: time,\n triggerEvent\n });\n }\n changeVolume(volume, triggerEvent) {\n this._dispatchRequest(\"vds-volume-change-request\", {\n detail: volume,\n triggerEvent\n });\n }\n resumeUserIdle(triggerEvent) {\n this._dispatchRequest(\"vds-resume-user-idle-request\", { triggerEvent });\n }\n pauseUserIdle(triggerEvent) {\n this._dispatchRequest(\"vds-pause-user-idle-request\", { triggerEvent });\n }\n showPoster(triggerEvent) {\n this._dispatchRequest(\"vds-show-poster-request\", { triggerEvent });\n }\n hidePoster(triggerEvent) {\n this._dispatchRequest(\"vds-hide-poster-request\", { triggerEvent });\n }\n setTarget(target) {\n if (this._target === target)\n return;\n this._target = target;\n if (target) {\n this._createLogger(target);\n this._requests.start();\n } else {\n this._requests.stop();\n }\n }\n _dispatchRequest(type, eventInit) {\n this._requests.queue(type, () => {\n const request = vdsEvent(type, {\n ...eventInit,\n bubbles: true,\n composed: true\n });\n if (false) {\n this._logger?.infoGroup(`\\u{1F4E8} dispatching \\`${type}\\``).labelledLog(\"Request Event\", request).labelledLog(\"Trigger Event\", eventInit.triggerEvent).dispatch();\n }\n this._target?.dispatchEvent(request);\n });\n }\n _createLogger(target) {\n if (false) {\n this._logger = new LogDispatcher(target);\n }\n }\n};\n\nexport {\n MediaRemoteControl\n};\n","import {\n ToggleButtonElement\n} from \"./chunk.KIF3XDBQ.js\";\nimport {\n MediaRemoteControl\n} from \"./chunk.JDCQU7GF.js\";\nimport {\n mediaStoreSubscription\n} from \"./chunk.O2H47C42.js\";\n\n// src/ui/play-button/PlayButtonElement.ts\nimport { setAttribute, setAttributeIfEmpty } from \"@vidstack/foundation\";\nvar PlayButtonElement = class extends ToggleButtonElement {\n constructor() {\n super();\n this._mediaRemote = new MediaRemoteControl(this);\n mediaStoreSubscription(this, \"paused\", ($paused) => {\n this.pressed = !$paused;\n setAttribute(this, \"paused\", $paused);\n });\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"aria-label\", \"Play\");\n }\n _handleButtonClick(event) {\n if (this.disabled)\n return;\n if (this.pressed) {\n this._mediaRemote.pause(event);\n } else {\n this._mediaRemote.play(event);\n }\n }\n};\n\nexport {\n PlayButtonElement\n};\n","import {\n PlayButtonElement\n} from \"./chunk.5LQ54Q2B.js\";\n\n// src/define/vds-play-button.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-play-button\", PlayButtonElement);\n","import {\n ToggleButtonElement\n} from \"./chunk.KIF3XDBQ.js\";\nimport {\n MediaRemoteControl\n} from \"./chunk.JDCQU7GF.js\";\nimport {\n mediaStoreSubscription\n} from \"./chunk.O2H47C42.js\";\n\n// src/ui/mute-button/MuteButtonElement.ts\nimport { setAttribute, setAttributeIfEmpty } from \"@vidstack/foundation\";\nvar MuteButtonElement = class extends ToggleButtonElement {\n constructor() {\n super();\n this._mediaRemote = new MediaRemoteControl(this);\n this._volume = 1;\n this._muted = false;\n mediaStoreSubscription(this, \"volume\", ($volume) => {\n this._volume = $volume;\n this._handleMutedChange();\n });\n mediaStoreSubscription(this, \"muted\", ($muted) => {\n this._muted = $muted;\n this._handleMutedChange();\n });\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"aria-label\", \"Mute\");\n }\n _handleMutedChange() {\n const muted = this._muted || this._volume === 0;\n this.pressed = muted;\n setAttribute(this, \"muted\", muted);\n }\n _handleButtonClick(event) {\n if (this.disabled)\n return;\n if (this.pressed) {\n this._mediaRemote.unmute(event);\n } else {\n this._mediaRemote.mute(event);\n }\n }\n};\n\nexport {\n MuteButtonElement\n};\n","import {\n MuteButtonElement\n} from \"./chunk.OS5G3YJW.js\";\n\n// src/define/vds-mute-button.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-mute-button\", MuteButtonElement);\n","// src/ui/slider/store.ts\nimport { createContext, derived, writable } from \"@vidstack/foundation\";\nfunction createSliderStore() {\n const dragging = writable(false);\n const pointing = writable(false);\n return {\n value: writable(50),\n pointerValue: writable(0),\n min: writable(0),\n max: writable(100),\n dragging,\n pointing,\n interactive: derived([dragging, pointing], ([$dragging, $pointing]) => $dragging || $pointing)\n };\n}\nvar sliderStoreContext = createContext(createSliderStore);\n\nexport {\n createSliderStore,\n sliderStoreContext\n};\n","import {\n sliderStoreContext\n} from \"./chunk.CQHSYXO3.js\";\nimport {\n MediaRemoteControl\n} from \"./chunk.JDCQU7GF.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/slider/SliderElement.ts\nimport {\n clampNumber,\n DisposalBin,\n eventListener,\n focusVisiblePolyfill,\n get,\n getNumberOfDecimalPlaces,\n rafThrottle,\n round,\n setAttribute,\n setAttributeIfEmpty,\n setCSSProperty,\n vdsEvent\n} from \"@vidstack/foundation\";\nimport {\n html,\n LitElement\n} from \"lit\";\nimport { property } from \"lit/decorators.js\";\n\n// src/ui/slider/styles.ts\nimport { css } from \"lit\";\nvar sliderElementStyles = css`*{box-sizing:border-box;touch-action:none}:host{display:block;contain:layout;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host(:focus){outline:0}:host(:focus-visible){outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}:host(.focus-visible){outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}`;\n\n// src/ui/slider/SliderElement.ts\nvar SliderKeyDirection = /* @__PURE__ */ ((SliderKeyDirection2) => {\n SliderKeyDirection2[SliderKeyDirection2[\"Left\"] = -1] = \"Left\";\n SliderKeyDirection2[SliderKeyDirection2[\"ArrowLeft\"] = -1] = \"ArrowLeft\";\n SliderKeyDirection2[SliderKeyDirection2[\"Up\"] = -1] = \"Up\";\n SliderKeyDirection2[SliderKeyDirection2[\"ArrowUp\"] = -1] = \"ArrowUp\";\n SliderKeyDirection2[SliderKeyDirection2[\"Right\"] = 1] = \"Right\";\n SliderKeyDirection2[SliderKeyDirection2[\"ArrowRight\"] = 1] = \"ArrowRight\";\n SliderKeyDirection2[SliderKeyDirection2[\"Down\"] = 1] = \"Down\";\n SliderKeyDirection2[SliderKeyDirection2[\"ArrowDown\"] = 1] = \"ArrowDown\";\n return SliderKeyDirection2;\n})(SliderKeyDirection || {});\nvar SliderElement = class extends LitElement {\n constructor() {\n super();\n this._sliderStoreProvider = sliderStoreContext.provide(this);\n this.disabled = false;\n this.value = 50;\n this._step = 1;\n this._keyboardStep = 1;\n this.shiftKeyMultiplier = 5;\n this.customValueText = false;\n this._mediaRemote = new MediaRemoteControl(this);\n this._disconnectDisposal = new DisposalBin();\n this._handlePointerEnter = eventListener(this, \"pointerenter\", () => {\n if (this.disabled)\n return;\n this.setAttribute(\"pointing\", \"\");\n this.store.pointing.set(true);\n });\n this._handlePointerMove = eventListener(this, \"pointermove\", (event) => {\n if (this.disabled || this.isDragging)\n return;\n const value = this._getValueBasedOnThumbPosition(event);\n this.store.pointerValue.set(value);\n this._dispatchPointerValueChange(event);\n });\n this._handlePointerLeave = eventListener(this, \"pointerleave\", () => {\n if (this.disabled)\n return;\n this.removeAttribute(\"pointing\");\n this.store.pointing.set(false);\n });\n this._handlePointerDown = eventListener(this, \"pointerdown\", (event) => {\n if (this.disabled)\n return;\n this._startDragging(event);\n this._onDrag(event);\n });\n this._handleKeydown = eventListener(this, \"keydown\", (event) => {\n if (this.disabled)\n return;\n const { key, shiftKey } = event;\n const isValidKey = Object.keys(SliderKeyDirection).includes(key);\n if (!isValidKey)\n return;\n const modifiedStep = !shiftKey ? this.keyboardStep : this.keyboardStep * this.shiftKeyMultiplier;\n const direction = Number(SliderKeyDirection[key]);\n const diff = modifiedStep * direction;\n const steps = (this.value + diff) / this.step;\n const value = this.step * steps;\n this.value = this._getClampedValue(value);\n this._dispatchValueChange(event);\n });\n this._handleFillValueChange = eventListener(\n this,\n \"vds-slider-value-change\",\n this._updateFillCSSProps.bind(this)\n );\n this._handlePointerValueChange = eventListener(\n this,\n \"vds-slider-pointer-value-change\",\n this._updatePointerCSSProps.bind(this)\n );\n this._onDrag = rafThrottle((event) => {\n if (this.disabled || !this.isDragging)\n return;\n const value = this._getValueBasedOnThumbPosition(event);\n this.store.pointerValue.set(value);\n this._dispatchPointerValueChange(event);\n });\n this._handleDocumentPointerUp = eventListener(\n this,\n \"pointerup\",\n (event) => {\n if (this.disabled || !this.isDragging)\n return;\n this._stopDragging(event);\n },\n { target: document }\n );\n this._handleDocumentTouchMove = eventListener(\n this,\n \"touchmove\",\n (event) => {\n if (this.disabled || !this.isDragging)\n return;\n event.preventDefault();\n },\n { target: document, passive: false }\n );\n this._handleDocumentPointerMove = eventListener(\n this,\n \"pointermove\",\n (event) => {\n if (this.disabled || !this.isDragging)\n return;\n this._onDrag(event);\n },\n { target: document }\n );\n this._lastDispatchedValue = this.value;\n this._dispatchValueChange = rafThrottle((event) => {\n if (this.value === this._lastDispatchedValue)\n return;\n this.dispatchEvent(\n vdsEvent(\"vds-slider-value-change\", {\n detail: this.value,\n triggerEvent: event\n })\n );\n this._lastDispatchedValue = this.value;\n });\n this._lastDispatchedPointerValue = this.pointerValue;\n this._dispatchPointerValueChange = rafThrottle((event) => {\n if (this.pointerValue === this._lastDispatchedPointerValue)\n return;\n const events = [\n \"vds-slider-pointer-value-change\",\n this.isDragging && \"vds-slider-drag-value-change\"\n ];\n events.forEach((eventType) => {\n if (eventType) {\n this.dispatchEvent(\n vdsEvent(eventType, {\n detail: this.pointerValue,\n triggerEvent: event\n })\n );\n }\n });\n this._lastDispatchedPointerValue = this.pointerValue;\n });\n if (false)\n logElementLifecycle(this);\n focusVisiblePolyfill(this);\n }\n static get styles() {\n return [sliderElementStyles];\n }\n static get parts() {\n return [];\n }\n get store() {\n return this._sliderStoreProvider.value;\n }\n get min() {\n return get(this.store.min);\n }\n set min(newMin) {\n this.store.min.set(newMin);\n }\n get max() {\n return get(this.store.max);\n }\n set max(newMax) {\n this.store.max.set(newMax);\n }\n get step() {\n return this._step;\n }\n set step(newStep) {\n this._step = newStep;\n }\n get keyboardStep() {\n return this._keyboardStep;\n }\n set keyboardStep(newStep) {\n this._keyboardStep = newStep;\n }\n get isDragging() {\n return get(this.store.dragging);\n }\n get fillRate() {\n const range = this.max - this.min, offset = this.value - this.min;\n return range > 0 ? offset / range : 0;\n }\n get fillPercent() {\n return this.fillRate * 100;\n }\n get pointerValue() {\n return get(this.store.pointerValue);\n }\n get pointerRate() {\n const range = this.max - this.min, offset = this.pointerValue - this.min;\n return range > 0 ? offset / range : 0;\n }\n get pointerPercent() {\n return this.pointerRate * 100;\n }\n connectedCallback() {\n super.connectedCallback();\n this._setupAriaAttrs();\n this._updateFillCSSProps();\n this._updatePointerCSSProps();\n this._disconnectDisposal.add(\n this.store.interactive.subscribe(($interactive) => {\n setAttribute(this, \"interactive\", $interactive);\n })\n );\n }\n willUpdate(changedProperties) {\n if (changedProperties.has(\"value\") || changedProperties.has(\"min\") || changedProperties.has(\"max\")) {\n this.value = this._getClampedValue(this.value);\n this.store.value.set(this.value);\n this._updateFillCSSProps();\n this._dispatchValueChange();\n }\n if (changedProperties.has(\"disabled\") && this.disabled) {\n this.store.dragging.set(false);\n this.store.pointing.set(false);\n this.removeAttribute(\"dragging\");\n this.removeAttribute(\"pointing\");\n this.removeAttribute(\"interactive\");\n setAttribute(this, \"aria-disabled\", this.disabled);\n }\n if (!this.customValueText) {\n this._updateAriaValueAttrs();\n }\n super.willUpdate(changedProperties);\n }\n disconnectedCallback() {\n this._onDrag.cancel();\n this._disconnectDisposal.empty();\n super.disconnectedCallback();\n }\n _updateFillCSSProps() {\n setCSSProperty(this, \"fill-value\", `${this.value}`);\n setCSSProperty(this, \"fill-rate\", `${this.fillRate}`);\n setCSSProperty(this, \"fill-percent\", `${this.fillPercent}%`);\n }\n _updatePointerCSSProps() {\n setCSSProperty(this, \"pointer-value\", `${this.pointerValue}`);\n setCSSProperty(this, \"pointer-rate\", `${this.pointerRate}`);\n setCSSProperty(this, \"pointer-percent\", `${this.pointerPercent}%`);\n }\n render() {\n return this._renderSlider();\n }\n _renderSlider() {\n return html`${this._renderDefaultSlot()}`;\n }\n _renderDefaultSlot() {\n return html`<slot></slot>`;\n }\n _setupAriaAttrs() {\n setAttributeIfEmpty(this, \"role\", \"slider\");\n setAttributeIfEmpty(this, \"tabindex\", \"0\");\n setAttributeIfEmpty(this, \"aria-orientation\", \"horizontal\");\n setAttributeIfEmpty(this, \"autocomplete\", \"off\");\n }\n _updateAriaValueAttrs() {\n this.setAttribute(\"aria-valuemin\", this._getValueMin());\n this.setAttribute(\"aria-valuenow\", this._getValueNow());\n this.setAttribute(\"aria-valuemax\", this._getValueMax());\n this.setAttribute(\"aria-valuetext\", this._getValueText());\n }\n _getValueMin() {\n return String(this.min);\n }\n _getValueNow() {\n return String(this.value);\n }\n _getValueMax() {\n return String(this.max);\n }\n _getValueText() {\n return `${round(this.value / this.max * 100, 2)}%`;\n }\n _startDragging(event) {\n if (this.isDragging)\n return;\n this.store.dragging.set(true);\n this.setAttribute(\"dragging\", \"\");\n const value = this._getValueBasedOnThumbPosition(event);\n this.store.pointerValue.set(value);\n this._dispatchPointerValueChange(event);\n this.dispatchEvent(\n vdsEvent(\"vds-slider-drag-start\", {\n triggerEvent: event,\n detail: this.value\n })\n );\n this._mediaRemote.pauseUserIdle(event);\n }\n _stopDragging(event) {\n if (!this.isDragging)\n return;\n this.store.dragging.set(false);\n this._dispatchValueChange.cancel();\n this.removeAttribute(\"dragging\");\n const value = this._getValueBasedOnThumbPosition(event);\n this.value = value;\n this.store.pointerValue.set(value);\n this._dispatchValueChange(event);\n this._dispatchPointerValueChange(event);\n this.dispatchEvent(\n vdsEvent(\"vds-slider-drag-end\", {\n triggerEvent: event,\n detail: this.value\n })\n );\n this._mediaRemote.resumeUserIdle(event);\n }\n _getClampedValue(value) {\n return clampNumber(this.min, round(value, getNumberOfDecimalPlaces(this.step)), this.max);\n }\n _getValueFromRate(rate) {\n const boundRate = clampNumber(0, rate, 1);\n const range = this.max - this.min;\n const fill = range * boundRate;\n const stepRatio = Math.round(fill / this.step);\n const steps = this.step * stepRatio;\n return this.min + steps;\n }\n _getValueBasedOnThumbPosition(event) {\n const thumbClientX = event.clientX;\n const { left: trackLeft, width: trackWidth } = this.getBoundingClientRect();\n const thumbPositionRate = (thumbClientX - trackLeft) / trackWidth;\n return this._getValueFromRate(thumbPositionRate);\n }\n};\n__decorateClass([\n property({ type: Number })\n], SliderElement.prototype, \"min\", 1);\n__decorateClass([\n property({ type: Number })\n], SliderElement.prototype, \"max\", 1);\n__decorateClass([\n property({ reflect: true, type: Boolean })\n], SliderElement.prototype, \"disabled\", 2);\n__decorateClass([\n property({ type: Number })\n], SliderElement.prototype, \"value\", 2);\n__decorateClass([\n property({ type: Number })\n], SliderElement.prototype, \"step\", 1);\n__decorateClass([\n property({ attribute: \"keyboard-step\", type: Number })\n], SliderElement.prototype, \"keyboardStep\", 1);\n__decorateClass([\n property({ attribute: \"shift-key-multiplier\", type: Number })\n], SliderElement.prototype, \"shiftKeyMultiplier\", 2);\n__decorateClass([\n property({ type: Boolean, attribute: \"custom-value-text\" })\n], SliderElement.prototype, \"customValueText\", 2);\n\nexport {\n SliderKeyDirection,\n SliderElement\n};\n","import {\n SliderElement\n} from \"./chunk.33ZMGU5I.js\";\nimport {\n mediaStoreSubscription\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/time-slider/TimeSliderElement.ts\nimport {\n eventListener,\n formatSpokenTime,\n isKeyboardEvent,\n setAttributeIfEmpty,\n throttle\n} from \"@vidstack/foundation\";\nimport { property, state } from \"lit/decorators.js\";\n\n// src/ui/time-slider/styles.ts\nimport { css } from \"lit\";\nvar timeSliderElementStyles = css``;\n\n// src/ui/time-slider/TimeSliderElement.ts\nvar TimeSliderElement = class extends SliderElement {\n constructor() {\n super();\n this._step = 0.1;\n this.value = 0;\n this.valueText = \"{currentTime} out of {duration}\";\n this.pauseWhileDragging = false;\n this.seekingRequestThrottle = 100;\n this.__mediaDuration = 0;\n this.__mediaPaused = true;\n this._handleSliderDragStart = eventListener(\n this,\n \"vds-slider-drag-start\",\n (event) => {\n this._togglePlaybackWhileDragging(event);\n }\n );\n this._handleSliderValueChange = eventListener(\n this,\n \"vds-slider-value-change\",\n (event) => {\n if (isKeyboardEvent(event.originEvent)) {\n this._dispatchSeekingRequest.cancel();\n this._mediaRemote.seek(this.value, event);\n }\n }\n );\n this._handleSliderDragValueChange = eventListener(\n this,\n \"vds-slider-drag-value-change\",\n (event) => {\n this._dispatchSeekingRequest(event);\n }\n );\n this._handleSliderDragEnd = eventListener(this, \"vds-slider-drag-end\", (event) => {\n this._dispatchSeekingRequest.cancel();\n this._mediaRemote.seek(this.value, event);\n this._togglePlaybackWhileDragging(event);\n });\n this._dispatchSeekingRequest = throttle((event) => {\n this._mediaRemote.seeking(this.value, event);\n }, this.seekingRequestThrottle);\n this._wasPlayingBeforeDragStart = false;\n mediaStoreSubscription(this, \"currentTime\", ($currentTime) => {\n this.value = $currentTime;\n });\n mediaStoreSubscription(this, \"duration\", ($duration) => {\n this.__mediaDuration = $duration;\n this.requestUpdate(\"max\");\n });\n mediaStoreSubscription(this, \"paused\", ($paused) => {\n this.__mediaPaused = $paused;\n });\n }\n static get styles() {\n return [super.styles, timeSliderElementStyles];\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"aria-label\", \"Media time\");\n }\n get min() {\n return 0;\n }\n set min(_) {\n }\n get max() {\n return this.__mediaDuration;\n }\n set max(_) {\n }\n update(changedProperties) {\n if (changedProperties.has(\"disabled\") && this.disabled) {\n this._dispatchSeekingRequest.cancel();\n }\n super.update(changedProperties);\n }\n disconnectedCallback() {\n this._dispatchSeekingRequest.cancel();\n super.disconnectedCallback();\n }\n _getValueMin() {\n return \"0%\";\n }\n _getValueNow() {\n return `${Math.round(this.fillPercent)}%`;\n }\n _getValueText() {\n return this.valueText.replace(\"{currentTime}\", formatSpokenTime(this.value)).replace(\"{duration}\", formatSpokenTime(this.__mediaDuration));\n }\n _getValueMax() {\n return \"100%\";\n }\n _togglePlaybackWhileDragging(event) {\n if (!this.pauseWhileDragging)\n return;\n if (this.isDragging && !this.__mediaPaused) {\n this._wasPlayingBeforeDragStart = true;\n this._mediaRemote.pause(event);\n } else if (this._wasPlayingBeforeDragStart && !this.isDragging && this.__mediaPaused) {\n this._wasPlayingBeforeDragStart = false;\n this._mediaRemote.play(event);\n }\n }\n};\n__decorateClass([\n property({ attribute: false, state: true })\n], TimeSliderElement.prototype, \"value\", 2);\n__decorateClass([\n property({ attribute: false })\n], TimeSliderElement.prototype, \"min\", 1);\n__decorateClass([\n property({ attribute: false })\n], TimeSliderElement.prototype, \"max\", 1);\n__decorateClass([\n property({ attribute: \"value-text\" })\n], TimeSliderElement.prototype, \"valueText\", 2);\n__decorateClass([\n property({ attribute: \"pause-while-dragging\", type: Boolean })\n], TimeSliderElement.prototype, \"pauseWhileDragging\", 2);\n__decorateClass([\n property({ attribute: \"seeking-request-throttle\", type: Number })\n], TimeSliderElement.prototype, \"seekingRequestThrottle\", 2);\n__decorateClass([\n state()\n], TimeSliderElement.prototype, \"__mediaDuration\", 2);\n__decorateClass([\n state()\n], TimeSliderElement.prototype, \"__mediaPaused\", 2);\n\nexport {\n TimeSliderElement\n};\n","import {\n TimeSliderElement\n} from \"./chunk.JA2WRFAV.js\";\n\n// src/define/vds-time-slider.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-time-slider\", TimeSliderElement);\n","import {\n SliderElement\n} from \"./chunk.33ZMGU5I.js\";\nimport {\n mediaStoreSubscription\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/volume-slider/VolumeSliderElement.ts\nimport { eventListener, round, setAttributeIfEmpty } from \"@vidstack/foundation\";\nimport { property } from \"lit/decorators.js\";\nvar VolumeSliderElement = class extends SliderElement {\n constructor() {\n super();\n this.value = 100;\n this._handleSliderValueChange = eventListener(\n this,\n \"vds-slider-value-change\",\n this._changeVolume.bind(this)\n );\n this._handleSliderDragValueChange = eventListener(\n this,\n \"vds-slider-drag-value-change\",\n this._changeVolume.bind(this)\n );\n mediaStoreSubscription(this, \"volume\", ($volume) => {\n this.value = $volume * 100;\n });\n }\n connectedCallback() {\n super.connectedCallback();\n setAttributeIfEmpty(this, \"aria-label\", \"Media volume\");\n }\n get min() {\n return 0;\n }\n set min(_) {\n }\n get max() {\n return 100;\n }\n set max(_) {\n }\n _changeVolume(event) {\n const newVolume = event.detail;\n const mediaVolume = round(newVolume / 100, 3);\n this._mediaRemote.changeVolume(mediaVolume, event);\n }\n};\n__decorateClass([\n property({ attribute: false })\n], VolumeSliderElement.prototype, \"min\", 1);\n__decorateClass([\n property({ attribute: false })\n], VolumeSliderElement.prototype, \"max\", 1);\n__decorateClass([\n property({ attribute: false, state: true })\n], VolumeSliderElement.prototype, \"value\", 2);\n\nexport {\n VolumeSliderElement\n};\n","import {\n VolumeSliderElement\n} from \"./chunk.63ZIHMNQ.js\";\n\n// src/define/vds-volume-slider.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-volume-slider\", VolumeSliderElement);\n","import {\n sliderStoreContext\n} from \"./chunk.CQHSYXO3.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/slider/SliderValueTextElement.ts\nimport { derived, DisposalBin, formatTime, round } from \"@vidstack/foundation\";\nimport { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nvar SliderValueTextElement = class extends LitElement {\n constructor() {\n super(...arguments);\n this._disposal = new DisposalBin();\n this._sliderStoreConsumer = sliderStoreContext.consume(this);\n this.__value = 0;\n this.type = \"current\";\n this.showHours = false;\n this.padHours = false;\n this.decimalPlaces = 2;\n }\n static get styles() {\n return [\n css`:host{display:inline-block;contain:content}:host([hidden]){display:none}`\n ];\n }\n get _sliderStore() {\n return this._sliderStoreConsumer.value;\n }\n connectedCallback() {\n super.connectedCallback();\n this._handleTypeChange();\n }\n update(changedProperties) {\n if (changedProperties.has(\"type\") || changedProperties.has(\"format\")) {\n this._handleTypeChange();\n }\n super.update(changedProperties);\n }\n disconnectedCallback() {\n this._disposal.empty();\n super.disconnectedCallback();\n }\n render() {\n return html`${this._getValueText()}`;\n }\n _handleTypeChange() {\n this._disposal.empty();\n const valueStore = this._sliderStore[this.type === \"current\" ? \"value\" : \"pointerValue\"];\n const store = this.format === \"percent\" ? this._createPercentStore(valueStore) : valueStore;\n const unsub = store.subscribe(($value) => {\n this.__value = $value;\n });\n this._disposal.add(unsub);\n }\n _createPercentStore(valueStore) {\n return derived(\n [valueStore, this._sliderStore.min, this._sliderStore.max],\n ([$value, $min, $max]) => {\n const range = $max - $min;\n return $value / range * 100;\n }\n );\n }\n _getValueText() {\n switch (this.format) {\n case \"percent\":\n return this._getPercentFormat();\n case \"time\":\n return this._getTimeFormat();\n default:\n return `${this.__value}`;\n }\n }\n _getPercentFormat() {\n return `${round(this.__value, this.decimalPlaces)}%`;\n }\n _getTimeFormat() {\n return formatTime(this.__value, this.padHours, this.showHours);\n }\n};\n__decorateClass([\n state()\n], SliderValueTextElement.prototype, \"__value\", 2);\n__decorateClass([\n property()\n], SliderValueTextElement.prototype, \"type\", 2);\n__decorateClass([\n property()\n], SliderValueTextElement.prototype, \"format\", 2);\n__decorateClass([\n property({ attribute: \"show-hours\", type: Boolean })\n], SliderValueTextElement.prototype, \"showHours\", 2);\n__decorateClass([\n property({ attribute: \"pad-hours\", type: Boolean })\n], SliderValueTextElement.prototype, \"padHours\", 2);\n__decorateClass([\n property({ attribute: \"decimal-places\", type: Number })\n], SliderValueTextElement.prototype, \"decimalPlaces\", 2);\n\nexport {\n SliderValueTextElement\n};\n","import {\n SliderValueTextElement\n} from \"./chunk.7KY74HUU.js\";\n\n// src/define/vds-slider-value-text.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-slider-value-text\", SliderValueTextElement);\n","import {\n mediaStoreContext\n} from \"./chunk.O2H47C42.js\";\nimport {\n __decorateClass\n} from \"./chunk.LNH2V2XS.js\";\n\n// src/ui/time/TimeElement.ts\nimport { derived, DisposalBin, formatTime } from \"@vidstack/foundation\";\nimport { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nvar TimeElement = class extends LitElement {\n constructor() {\n super(...arguments);\n this._disposal = new DisposalBin();\n this._mediaStoreConsumer = mediaStoreContext.consume(this);\n this.__seconds = 0;\n this.type = \"current\";\n this.showHours = false;\n this.padHours = false;\n this.remainder = false;\n }\n static get styles() {\n return [\n css`:host{display:inline-block;contain:content}:host([hidden]){display:none}`\n ];\n }\n get _mediaStore() {\n return this._mediaStoreConsumer.value;\n }\n connectedCallback() {\n super.connectedCallback();\n this._handleTypeChange();\n }\n update(changedProperties) {\n if (changedProperties.has(\"type\") || changedProperties.has(\"remainder\")) {\n this._handleTypeChange();\n }\n super.update(changedProperties);\n }\n disconnectedCallback() {\n this._disposal.empty();\n super.disconnectedCallback();\n }\n render() {\n return html`${this._getFormattedTime()}`;\n }\n _handleTypeChange() {\n this._disposal.empty();\n const store = this._getTypeStore();\n const unsub = (this.remainder ? this._createRemainderStore(store) : store).subscribe(\n ($seconds) => {\n this.__seconds = $seconds;\n }\n );\n this._disposal.add(unsub);\n }\n _getTypeStore() {\n switch (this.type) {\n case \"buffered\":\n return this._mediaStore.bufferedAmount;\n case \"seekable\":\n return this._mediaStore.seekableAmount;\n case \"duration\":\n return this._mediaStore.duration;\n default:\n return this._mediaStore.currentTime;\n }\n }\n _createRemainderStore(secondsStore) {\n return derived(\n [secondsStore, this._mediaStore.duration],\n ([$seconds, $duration]) => Math.max(0, $duration - $seconds)\n );\n }\n _getFormattedTime() {\n return formatTime(this.__seconds, this.padHours, this.showHours);\n }\n};\n__decorateClass([\n state()\n], TimeElement.prototype, \"__seconds\", 2);\n__decorateClass([\n property()\n], TimeElement.prototype, \"type\", 2);\n__decorateClass([\n property({ attribute: \"show-hours\", type: Boolean })\n], TimeElement.prototype, \"showHours\", 2);\n__decorateClass([\n property({ attribute: \"pad-hours\", type: Boolean })\n], TimeElement.prototype, \"padHours\", 2);\n__decorateClass([\n property({ type: Boolean })\n], TimeElement.prototype, \"remainder\", 2);\n\nexport {\n TimeElement\n};\n","import {\n TimeElement\n} from \"./chunk.K4RXYACL.js\";\n\n// src/define/vds-time.ts\nimport { safelyDefineCustomElement } from \"@vidstack/foundation\";\nsafelyDefineCustomElement(\"vds-time\", TimeElement);\n",":host {\n ::slotted([slot=\"transcript\"]) {\n margin: 0;\n\n br {\n @include spaceCurve('margin-bottom', 'regular');\n content: \" \";\n display: block;\n }\n }\n}\n\n.stzh-audio {\n display: block;\n contain: none;\n\n &__audio {\n @include visuallyhidden;\n }\n\n &__controls,\n &__transcript {\n @include spaceCurve('padding-left', 'regular');\n @include spaceCurve('padding-right', 'regular');\n }\n\n &__controls {\n @include spaceCurve('padding-bottom', 'tiny');\n padding-top: space('large');\n position: relative;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n background-color: $colorGrey20;\n }\n\n\t&__controls-top,\n\t&__controls-bottom,\n &__controls-bottom-left,\n &__controls-bottom-right {\n\t\tdisplay: flex;\n\t\talign-items: center;\n }\n\n\t&__controls-top {\n\t\tmargin-bottom: space('small');\n\t}\n\n\t&__controls-bottom {\n\t\tdisplay: flex;\n flex-direction: column;\n align-items: stretch;\n\n @include mq($from: small) {\n flex-direction: row;\n align-items: center;\n }\n\t}\n\n &__controls-bottom-left {\n\t\tmargin-bottom: space('xsmall');\n\n @include mq($from: small) {\n flex-grow: 1;\n margin-bottom: 0;\n }\n }\n\n &__controls-bottom-right {\n align-self: flex-end;\n }\n\n &__transcript {\n @include fontCurve('p1');\n @include spaceCurve('padding-top', 'regular');\n @include spaceCurve('padding-bottom', 'medium');\n background-color: $colorGrey10;\n // line-height: 2.5;\n }\n\n &__button {\n &.is-play,\n &.is-mute,\n &.is-transcript {\n margin-right: space('xsmall');\n }\n\n &.is-mute {\n margin-left: auto;\n\n @include mq($from: small) {\n margin-left: 0px;\n }\n }\n\n width: 44px;\n height: 44px;\n display: grid;\n place-items: center;\n appearance: none;\n background-color: transparent;\n border: none;\n border-radius: $buttonBorderRadius;\n transition-duration: $baseTransitionAnimationSpeed;\n transition-property: color, background-color;\n color: $colorPrimary70;\n\n // use if needed for active transcript state\n // &.is-active {\n // }\n\n &:hover {\n color: $colorPrimary80;\n background-color: $colorSecondary20;\n }\n }\n\n &__loader-overlay {\n display: grid;\n place-items: center;\n position: absolute;\n z-index: 3;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: $colorWhite;\n opacity: 0;\n visibility: hidden;\n }\n\n &__time {\n @include fontSize('milli');\n color: $colorGrey70;\n display: inline-flex;\n margin-right: space('xlarge');\n }\n\n &__time-separator {\n margin: 0 space('xxsmall');\n }\n\n &__slider {\n --height: 16px;\n --thumb-width: 16px;\n --track-height: 6px;\n\n cursor: pointer;\n display: flex;\n align-items: center;\n height: var(--height);\n\n &.is-time {\n flex-grow: 1;\n }\n\n &.is-volume {\n --track-height: 4px;\n\n flex-grow: 1;\n min-width: 80px;\n max-width: 120px;\n\n @include mq($from: small) {\n display: flex;\n margin-right: auto;\n }\n }\n }\n\n &__slider-track {\n width: 100%;\n height: var(--track-height);\n position: absolute;\n top: 50%;\n left: 0;\n z-index: 0;\n transform: translateY(-50%);\n background-color: $colorBlack20op;\n transition: background-color $baseTransitionAnimationSpeed;\n }\n\n &__slider:hover &__slider-track {\n background-color: $colorBlack30op;\n }\n\n &__slider-track.is-fill {\n background-color: $colorSecondary40;\n transform-origin: left center;\n transform: translateY(-50%);\n width: calc(var(--vds-fill-rate) * 100%);\n z-index: 1; // above track\n }\n\n &__slider:hover &__slider-track.is-fill {\n background-color: $colorSecondary50;\n }\n\n &__slider.is-volume &__slider-track,\n &__slider.is-volume:hover &__slider-track {\n background-color: $colorBlack20op;\n }\n\n &__slider.is-volume &__slider-track.is-fill,\n &__slider.is-volume:hover &__slider-track.is-fill {\n background-color: $colorBlack50op;\n }\n\n &__slider-thumb-container {\n opacity: 0;\n transition: opacity $baseTransitionAnimationSpeed;\n position: absolute;\n top: 0;\n left: var(--vds-fill-percent);\n width: var(--thumb-width);\n height: 100%;\n transform: translateX(-50%); // re-center along x-axis\n z-index: 2; // above track fill\n\n &.is-shown {\n opacity: 1;\n }\n }\n\n &__slider:hover &__slider-thumb-container {\n opacity: 1;\n }\n\n &__slider[dragging] &__slider-thumb-container {\n opacity: 1;\n left: var(--vds-pointer-percent);\n }\n\n &__slider-thumb {\n position: absolute;\n top: 50%;\n left: 0;\n width: var(--thumb-width);\n height: var(--thumb-width);\n border-radius: 50%;\n background-color: $colorWhite;\n border: 2px solid $colorPrimary70;\n transform: translateY(-50%);\n }\n\n &__media-preview-container {\n --width: 42px;\n --width-half: calc(var(--width) / 2);\n --top: -24px;\n\n // clamp video to left and right of slider\n --left-clamp: max(var(--width-half), var(--vds-pointer-percent));\n --right-clamp: calc(100% - var(--width-half));\n --left: min(var(--left-clamp), var(--right-clamp));\n\n @include tooltip-dropshadow;\n display: grid;\n place-items: center;\n position: absolute;\n width: auto;\n width: (--width);\n top: var(--top);\n left: var(--left);\n opacity: 0;\n transition: opacity $baseTransitionAnimationSpeed;\n // re-position to center\n transform: translateX(-50%);\n z-index: $zIndexPopover;\n border-radius: $tooltipBorderRadius;\n background-color: $colorCoolgrey60;\n color: $colorWhite;\n }\n\n &__slider.is-time &__media-preview-container,\n &__slider.is-volume &__media-preview-container {\n width: auto;\n padding: space('xxsmall');\n }\n\n // show preview while device pointer is inside slider\n &__slider[pointing] &__media-preview-container {\n opacity: 1;\n }\n\n &__slider-text {\n @include tooltip-fontsize;\n }\n\n /* Variants */\n\n // avoid double controls on iOS when in fullscreen.\n &[hide-ui] &__controls {\n opacity: 0;\n visibility: hidden;\n }\n\n // show controls if autoplay fails\n &[autoplay-error] &__controls {\n opacity: 1;\n }\n\n // show buffering indicator while media is not ready, or buffering\n &:not([can-play]) &__loader-overlay,\n &[waiting] &__loader-overlay {\n opacity: 0.8;\n visibility: visible;\n }\n\n // hide pause text when media _is_ paused\n &[paused] &__paused {\n display: none;\n }\n\n // hide play text when media _is not_ paused\n &:not([paused]) &__played {\n display: none;\n }\n\n // hide mute text when media _is_ muted\n &[muted] &__muted {\n display: none;\n }\n\n // hide unmute text when media _is not_ muted\n &:not([muted]) &__unmuted {\n display: none;\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Event,\n EventEmitter,\n Method\n} from \"@stencil/core\";\n\nimport {\n StzhAudioPlayEvent,\n StzhAudioPlayingEvent,\n StzhAudioPauseEvent,\n StzhAudioReplayEvent,\n StzhAudioEndEvent,\n StzhAudioEndedEvent,\n StzhAudioErrorEvent\n} from \"../../index\"\n\nimport \"@vidstack/player/dist/prod/define/vds-media.js\";\nimport \"@vidstack/player/dist/prod/define/vds-audio.js\";\nimport \"@vidstack/player/dist/prod/define/vds-play-button.js\";\nimport \"@vidstack/player/dist/prod/define/vds-mute-button.js\";\nimport \"@vidstack/player/dist/prod/define/vds-time-slider.js\";\nimport \"@vidstack/player/dist/prod/define/vds-volume-slider.js\";\nimport \"@vidstack/player/dist/prod/define/vds-slider-value-text.js\";\nimport \"@vidstack/player/dist/prod/define/vds-time.js\";\n\nimport { hasSlot } from \"../../utils/utils\";\n\nimport { StzhAudioLocalizedText } from './stzh-audio.localization';\n\n/**\n * @slot - Slot for any content\n * @slot transcript - Slot for transcript text\n */\n@Component({\n tag: \"stzh-audio\",\n styleUrl: \"stzh-audio.scss\",\n scoped: true\n})\nexport class StzhAudio {\n /** Translation strings */\n @Prop() localization: StzhAudioLocalizedText;\n\n /** Path to audio file */\n @Prop() src: string = \"\";\n\n /** Preload strategy */\n @Prop() preload: \"none\" | \"metadata\" | \"auto\" = \"none\";\n\n /** Transcript text (alternative for slot) */\n @Prop() transcript: string = \"\";\n\n /** Whether transcript should be shown */\n @Prop({ mutable: true }) transcriptShown: boolean = false;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the download link element.\n * Default value will be taken from translations.\n */\n @Prop() downloadAnalyticsId: string;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the transcript button element.\n * Default value will be taken from translations.\n */\n @Prop() transcriptAnalyticsId: string;\n\n /** Fired when the paused property is changed from true to false, as a result of the play() method, or the autoplay attribute. */\n @Event() stzhPlay: EventEmitter<StzhAudioPlayEvent>;\n\n /** Fired when playback is ready to start after having been paused or delayed due to lack of data. */\n @Event() stzhPlaying: EventEmitter<StzhAudioPlayingEvent>;\n\n /** Fired when a request to pause an activity is handled and the activity has entered its paused state, most commonly after the media has been paused through a call to the pause() method. */\n @Event() stzhPause: EventEmitter<StzhAudioPauseEvent>;\n\n /** Fired when media playback starts again after being in an ended state. This is fired when the loop property is true and media loops, whereas the vds-play event is not. */\n @Event() stzhReplay: EventEmitter<StzhAudioReplayEvent>;\n\n /** Fired each time media playback has reached the end. This is fired even if the loop property is true, which is generally when you'd reach for this event over the MediaEndedEvent if you want to be notified of media looping. */\n @Event() stzhEnd: EventEmitter<StzhAudioEndEvent>;\n\n /** Fired when playback or streaming has stopped because the end of the media was reached or because no further data is available. This is not fired if playback will start from the beginning again due to the loop property being true (see MediaReplayEvent and MediaEndEvent). */\n @Event() stzhEnded: EventEmitter<StzhAudioEndedEvent>;\n\n /** Fired when media loading or playback has encountered any issues (for example, a network connectivity problem). The event detail contains a potential message containing more information about the error (empty string if nothing available), and a code that identifies the general type of error that occurred. */\n @Event() stzhError: EventEmitter<StzhAudioErrorEvent>;\n\n @Element() element: HTMLStzhAudioElement;\n\n @Method()\n async play() {\n this.vsdAudioElement.play();\n }\n\n @Method()\n async pause() {\n this.vsdAudioElement.pause();\n }\n\n private vsdAudioElement: any;\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"audio\");\n }\n }\n\n render() {\n const hasTranscript = !!this.transcript || hasSlot(this.element, \"transcript\");\n const classes = {\n \"stzh-audio\": true\n };\n\n return (\n <Host>\n <vds-media class={classes}>\n <vds-audio\n class=\"stzh-audio__audio\"\n ref={(el) => (this.vsdAudioElement = el as HTMLElement)}\n // events from: https://www.vidstack.io/docs/player/components/providers/audio/api.html#events--vds-progress\n onVds-play={() => {this.stzhPlay.emit({ component: \"stzh-audio\" })}}\n onVds-playing={() => {this.stzhPlaying.emit({ component: \"stzh-audio\" })}}\n onVds-end={() => {this.stzhEnd.emit({ component: \"stzh-audio\" })}}\n onVds-ended={() => {this.stzhEnded.emit({ component: \"stzh-audio\" })}}\n onVds-replay={() => {this.stzhReplay.emit({ component: \"stzh-audio\" })}}\n onVds-error={(e: ErrorEvent) => {this.stzhError.emit({ component: \"stzh-audio\", originalEvent: e })}}\n >\n <audio preload={this.preload} src={this.src}>\n <slot></slot>\n </audio>\n </vds-audio>\n\n <div class=\"stzh-audio__controls\">\n <div class=\"stzh-audio__loader-overlay\">\n <stzh-loader\n class=\"stzh-audio__loader\"\n label={this.localization.loading}\n hide-label\n ></stzh-loader>\n </div>\n\n <div class=\"stzh-audio__controls-top\">\n <vds-time-slider class=\"stzh-audio__slider is-time\">\n <div class=\"stzh-audio__slider-track\"></div>\n <div class=\"stzh-audio__slider-track is-fill\"></div>\n <div class=\"stzh-audio__slider-thumb-container\">\n <div class=\"stzh-audio__slider-thumb\"></div>\n </div>\n <div class=\"stzh-audio__media-preview-container\">\n <vds-slider-value-text class=\"stzh-audio__slider-text\" type=\"pointer\" format=\"time\"></vds-slider-value-text>\n </div>\n </vds-time-slider>\n </div>\n\n <div class=\"stzh-audio__controls-bottom\">\n <div class=\"stzh-audio__controls-bottom-left\">\n <stzh-tooltip>\n <vds-play-button class=\"stzh-audio__button is-play\">\n <stzh-icon class=\"stzh-audio__played\" name=\"play\"></stzh-icon>\n <stzh-icon class=\"stzh-audio__paused\" name=\"pause\"></stzh-icon>\n </vds-play-button>\n <span slot=\"content\">\n <span class=\"stzh-audio__played\">{this.localization.play}</span>\n <span class=\"stzh-audio__paused\">{this.localization.pause}</span>\n </span>\n </stzh-tooltip>\n\n <div class=\"stzh-audio__time\">\n <vds-time type=\"current\"></vds-time>\n <span class=\"stzh-audio__time-separator\">/</span>\n <vds-time type=\"duration\"></vds-time>\n </div>\n\n <stzh-tooltip>\n <vds-mute-button class=\"stzh-audio__button is-mute\">\n <stzh-icon class=\"stzh-audio__muted\" name=\"volume-medium\"></stzh-icon>\n <stzh-icon class=\"stzh-audio__unmuted\" name=\"silent-mode\"></stzh-icon>\n </vds-mute-button>\n <span slot=\"content\">\n <span class=\"stzh-audio__muted\">{this.localization.mute}</span>\n <span class=\"stzh-audio__unmuted\">{this.localization.unmute}</span>\n </span>\n </stzh-tooltip>\n\n <vds-volume-slider class=\"stzh-audio__slider is-volume\">\n <div class=\"stzh-audio__slider-track\"></div>\n <div class=\"stzh-audio__slider-track is-fill\"></div>\n <div class=\"stzh-audio__slider-thumb-container is-shown\">\n <div class=\"stzh-audio__slider-thumb\"></div>\n </div>\n <div class=\"stzh-audio__media-preview-container\">\n <vds-slider-value-text class=\"stzh-audio__slider-text\" type=\"pointer\" format=\"percent\"></vds-slider-value-text>\n </div>\n </vds-volume-slider>\n </div>\n\n <div class=\"stzh-audio__controls-bottom-right\">\n {hasTranscript &&\n <stzh-tooltip\n content={this.transcriptShown ? this.localization.hideTranscript : this.localization.showTranscript}\n >\n <button\n class={{\n \"stzh-audio__button is-transcript\": true,\n \"is-active\": this.transcriptShown\n }}\n onClick={() => this.transcriptShown = !this.transcriptShown}\n s-object-id={this.transcriptAnalyticsId || (this.transcriptShown ? this.localization.hideTranscript : this.localization.showTranscript)}\n >\n <stzh-icon name=\"transcript\"></stzh-icon>\n </button>\n </stzh-tooltip>\n }\n\n <stzh-tooltip content={this.localization.download}>\n <a\n class=\"stzh-audio__button is-download\"\n href={this.src}\n download=\"\"\n s-object-id={this.downloadAnalyticsId || this.localization.download}\n >\n <stzh-icon name=\"download\"></stzh-icon>\n </a>\n </stzh-tooltip>\n </div>\n </div>\n </div>\n\n <div class=\"stzh-audio__transcript\" hidden={!this.transcriptShown}>\n {this.transcript ? this.transcript : <slot name=\"transcript\"></slot>}\n </div>\n </vds-media>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|