@swisspost/design-system-components 9.0.0 → 10.0.0-next.37
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/.config/bindings.angular.js +4 -0
- package/dist/cjs/breakpoints-cdf1b747.js +59 -0
- package/dist/cjs/check-non-empty-bd99d236.js +15 -0
- package/dist/cjs/check-one-of-75d270b5.js +13 -0
- package/dist/cjs/check-type-cdbf6d29.js +21 -0
- package/dist/cjs/check-url-220a286c.js +19 -0
- package/dist/cjs/event-guard-efabc84f.js +47 -0
- package/dist/cjs/fade-72d5ef55.js +14 -0
- package/dist/cjs/get-root-8102fecd.js +17 -0
- package/dist/cjs/index-23e36ff7.js +37 -0
- package/dist/cjs/{index-e1f32cce.js → index-b60129c4.js} +35 -15
- package/dist/cjs/index.browser-4af21c17.js +16 -0
- package/dist/cjs/index.cjs.js +57 -28
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/long-press-event-6e62d113.js +266 -0
- package/dist/cjs/{package-3ed88bb9.js → package-8121f093.js} +1 -1
- package/dist/cjs/{post-accordion-9ef382e8.js → post-accordion-beac7c9f.js} +11 -12
- package/dist/cjs/post-accordion-item-4846fbee.js +64 -0
- package/dist/cjs/post-accordion-item.cjs.entry.js +10 -6
- package/dist/cjs/post-accordion.cjs.entry.js +6 -4
- package/dist/cjs/post-avatar-a36991fb.js +145 -0
- package/dist/cjs/post-avatar.cjs.entry.js +14 -0
- package/dist/cjs/post-back-to-top-32aa9017.js +96 -0
- package/dist/cjs/post-back-to-top.cjs.entry.js +16 -0
- package/dist/cjs/post-banner-be0e8909.js +92 -0
- package/dist/cjs/post-banner.cjs.entry.js +20 -0
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +18 -0
- package/dist/cjs/post-breadcrumbs-6ef82a41.js +120 -0
- package/dist/cjs/post-breadcrumbs.cjs.entry.js +13 -0
- package/dist/cjs/post-card-control-fe919333.js +269 -0
- package/dist/cjs/post-card-control.cjs.entry.js +6 -5
- package/dist/cjs/post-closebutton_15.cjs.entry.js +36 -0
- package/dist/cjs/{post-collapsible-trigger-1764e6dc.js → post-collapsible-trigger-f42be607.js} +62 -76
- package/dist/cjs/post-collapsible_2.cjs.entry.js +11 -7
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/post-footer-5179aa17.js +38 -0
- package/dist/cjs/post-footer.cjs.entry.js +12 -0
- package/dist/cjs/post-linkarea-27125078.js +30 -0
- package/dist/cjs/post-linkarea.cjs.entry.js +11 -0
- package/dist/cjs/post-menu-item-d78a9121.js +68 -0
- package/dist/cjs/post-popover-feb1e773.js +135 -0
- package/dist/cjs/post-popover.cjs.entry.js +4 -3
- package/dist/cjs/{post-rating-d5073d8d.js → post-rating-6d153a2c.js} +4 -4
- package/dist/cjs/post-rating.cjs.entry.js +3 -3
- package/dist/cjs/post-tab-header-e4532918.js +34 -0
- package/dist/cjs/post-tab-header.cjs.entry.js +6 -4
- package/dist/cjs/{post-tab-panel-97b79ecd.js → post-tab-panel-40df21ad.js} +5 -4
- package/dist/cjs/post-tab-panel.cjs.entry.js +4 -3
- package/dist/cjs/{post-tabs-834497f2.js → post-tabs-45db2696.js} +14 -16
- package/dist/cjs/post-tabs.cjs.entry.js +5 -4
- package/dist/cjs/post-tag-0967bb1e.js +47 -0
- package/dist/cjs/post-tag.cjs.entry.js +3 -3
- package/dist/cjs/post-togglebutton-42b7d166.js +4494 -0
- package/dist/cjs/{post-tooltip-20ebe011.js → post-tooltip-f833d51d.js} +10 -6
- package/dist/cjs/{post-tooltip-trigger-6f4c9748.js → post-tooltip-trigger-3ceac010.js} +17 -280
- package/dist/cjs/post-tooltip-trigger.cjs.entry.js +5 -4
- package/dist/cjs/post-tooltip.cjs.entry.js +5 -4
- package/dist/cjs/slide-cd1f09b3.js +28 -0
- package/dist/collection/animations/collapse.js +8 -6
- package/dist/collection/animations/fade.js +6 -2
- package/dist/collection/animations/slide.js +23 -0
- package/dist/collection/collection-manifest.json +22 -3
- package/dist/collection/components/post-accordion/post-accordion.css +1 -1
- package/dist/collection/components/post-accordion/post-accordion.js +8 -10
- package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +30 -16
- package/dist/collection/components/post-avatar/post-avatar.css +1 -0
- package/dist/collection/components/post-avatar/post-avatar.js +233 -0
- package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -0
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +127 -0
- package/dist/collection/components/post-banner/banner-types.js +1 -0
- package/dist/collection/components/post-banner/post-banner.css +1 -0
- package/dist/collection/components/{post-alert/post-alert.js → post-banner/post-banner.js} +44 -72
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -0
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +96 -0
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -0
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +160 -0
- package/dist/collection/components/post-card-control/post-card-control.css +1 -31
- package/dist/collection/components/post-card-control/post-card-control.js +20 -24
- package/dist/collection/components/post-closebutton/post-closebutton.css +1 -0
- package/dist/collection/components/post-closebutton/post-closebutton.js +23 -0
- package/dist/collection/components/post-collapsible/post-collapsible.css +1 -1
- package/dist/collection/components/post-collapsible/post-collapsible.js +6 -3
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +43 -45
- package/dist/collection/components/post-footer/post-footer.css +1 -0
- package/dist/collection/components/post-footer/post-footer.js +75 -0
- package/dist/collection/components/post-header/post-header.css +1 -0
- package/dist/collection/components/post-header/post-header.js +320 -0
- package/dist/collection/components/post-icon/post-icon.js +58 -55
- package/dist/collection/components/post-language-option/post-language-option.css +1 -0
- package/dist/collection/components/post-language-option/post-language-option.js +237 -0
- package/dist/collection/components/post-language-switch/post-language-switch.css +1 -0
- package/dist/collection/components/post-language-switch/post-language-switch.js +186 -0
- package/dist/collection/components/post-language-switch/switch-variants.js +1 -0
- package/dist/collection/components/post-linkarea/post-linkarea.css +1 -0
- package/dist/collection/components/post-linkarea/post-linkarea.js +30 -0
- package/dist/collection/components/post-list/post-list.css +1 -0
- package/dist/collection/components/post-list/post-list.js +88 -0
- package/dist/collection/components/post-list-item/post-list-item.css +1 -0
- package/dist/collection/components/post-list-item/post-list-item.js +26 -0
- package/dist/collection/components/post-logo/post-logo.css +1 -1
- package/dist/collection/components/post-logo/post-logo.js +2 -2
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -0
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +184 -0
- package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -0
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +275 -0
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -0
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +133 -0
- package/dist/collection/components/post-menu/post-menu.css +1 -0
- package/dist/collection/components/post-menu/post-menu.js +294 -0
- package/dist/collection/components/post-menu-item/post-menu-item.js +8 -0
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.css +1 -0
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +120 -0
- package/dist/collection/components/post-popover/post-popover.css +1 -31
- package/dist/collection/components/post-popover/post-popover.js +16 -13
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -31
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +39 -6
- package/dist/collection/components/post-rating/post-rating.css +1 -31
- package/dist/collection/components/post-rating/post-rating.js +1 -1
- package/dist/collection/components/post-tab-header/post-tab-header.css +1 -31
- package/dist/collection/components/post-tab-header/post-tab-header.js +6 -5
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +4 -3
- package/dist/collection/components/post-tabs/post-tabs.css +1 -1
- package/dist/collection/components/post-tabs/post-tabs.js +7 -15
- package/dist/collection/components/post-tag/post-tag.css +1 -31
- package/dist/collection/components/post-tag/post-tag.js +2 -2
- package/dist/collection/components/post-togglebutton/post-togglebutton.css +1 -0
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +74 -0
- package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +6 -3
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +14 -14
- package/dist/collection/index.js +21 -2
- package/dist/collection/utils/attribute-observer.js +6 -5
- package/dist/collection/utils/breakpoints.js +52 -0
- package/dist/collection/utils/component-on-ready.js +4 -4
- package/dist/collection/utils/debounce.js +2 -1
- package/dist/collection/utils/environment.js +2 -0
- package/dist/collection/utils/event-guard.js +43 -0
- package/dist/collection/utils/get-focusable-children.js +33 -0
- package/dist/collection/utils/get-root.js +6 -1
- package/dist/collection/utils/index.js +5 -0
- package/dist/collection/utils/is-motion-reduced.js +2 -1
- package/dist/collection/utils/property-checkers/check-non-empty.js +6 -2
- package/dist/collection/utils/property-checkers/check-one-of.js +8 -3
- package/dist/collection/utils/property-checkers/check-pattern.js +8 -3
- package/dist/collection/utils/property-checkers/check-type.js +11 -6
- package/dist/collection/utils/property-checkers/check-url.js +11 -6
- package/dist/collection/utils/property-checkers/empty-or.js +5 -2
- package/dist/collection/utils/sass-export.js +8 -5
- package/dist/components/breakpoints.js +56 -0
- package/dist/components/check-non-empty.js +6 -2
- package/dist/components/check-one-of.js +8 -3
- package/dist/components/check-type.js +11 -6
- package/dist/components/event-guard.js +45 -0
- package/dist/components/fade.js +6 -2
- package/dist/components/get-focusable-children.js +35 -0
- package/dist/components/get-root.js +15 -0
- package/dist/components/index.browser.js +14 -0
- package/dist/components/index.js +21 -2
- package/dist/components/index2.js +25 -12
- package/dist/components/long-press-event.js +264 -0
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +37 -18
- package/dist/components/post-accordion2.js +8 -9
- package/dist/components/post-avatar.d.ts +11 -0
- package/dist/components/post-avatar.js +6 -0
- package/dist/components/post-avatar2.js +170 -0
- package/dist/components/post-back-to-top.d.ts +11 -0
- package/dist/components/post-back-to-top.js +6 -0
- package/dist/components/post-back-to-top2.js +121 -0
- package/dist/components/post-banner.d.ts +11 -0
- package/dist/components/post-banner.js +6 -0
- package/dist/components/post-banner2.js +127 -0
- package/dist/components/post-breadcrumb-item.d.ts +11 -0
- package/dist/components/post-breadcrumb-item.js +6 -0
- package/dist/components/post-breadcrumb-item2.js +82 -0
- package/dist/components/post-breadcrumbs.d.ts +11 -0
- package/dist/components/post-breadcrumbs.js +6 -0
- package/dist/components/post-breadcrumbs2.js +177 -0
- package/dist/components/post-card-control2.js +16 -19
- package/dist/components/post-closebutton.d.ts +11 -0
- package/dist/components/post-closebutton.js +6 -0
- package/dist/components/post-closebutton2.js +39 -0
- package/dist/components/post-collapsible-trigger2.js +47 -64
- package/dist/components/post-collapsible2.js +17 -12
- package/dist/components/post-footer.d.ts +11 -0
- package/dist/components/post-footer.js +6 -0
- package/dist/components/post-footer2.js +78 -0
- package/dist/components/post-header.d.ts +11 -0
- package/dist/components/post-header.js +6 -0
- package/dist/components/post-header2.js +399 -0
- package/dist/components/post-icon2.js +59 -55
- package/dist/components/post-language-option.d.ts +11 -0
- package/dist/components/post-language-option.js +6 -0
- package/dist/components/post-language-option2.js +103 -0
- package/dist/components/post-language-switch.d.ts +11 -0
- package/dist/components/post-language-switch.js +6 -0
- package/dist/components/post-language-switch2.js +145 -0
- package/dist/components/post-linkarea.d.ts +11 -0
- package/dist/components/post-linkarea.js +6 -0
- package/dist/components/post-linkarea2.js +43 -0
- package/dist/components/post-list-item.d.ts +11 -0
- package/dist/components/post-list-item.js +6 -0
- package/dist/components/post-list-item2.js +36 -0
- package/dist/components/{post-alert.d.ts → post-list.d.ts} +4 -4
- package/dist/components/post-list.js +6 -0
- package/dist/components/post-list2.js +54 -0
- package/dist/components/post-logo2.js +4 -3
- package/dist/components/post-mainnavigation.d.ts +11 -0
- package/dist/components/post-mainnavigation.js +6 -0
- package/dist/components/post-mainnavigation2.js +183 -0
- package/dist/components/post-megadropdown-trigger.d.ts +11 -0
- package/dist/components/post-megadropdown-trigger.js +6 -0
- package/dist/components/post-megadropdown-trigger2.js +121 -0
- package/dist/components/post-megadropdown.d.ts +11 -0
- package/dist/components/post-megadropdown.js +6 -0
- package/dist/components/post-megadropdown2.js +190 -0
- package/dist/components/post-menu-item.d.ts +11 -0
- package/dist/components/post-menu-item.js +6 -0
- package/dist/components/post-menu-item2.js +27 -0
- package/dist/components/post-menu-trigger.d.ts +11 -0
- package/dist/components/post-menu-trigger.js +6 -0
- package/dist/components/post-menu-trigger2.js +109 -0
- package/dist/components/post-menu.d.ts +11 -0
- package/dist/components/post-menu.js +6 -0
- package/dist/components/post-menu2.js +192 -0
- package/dist/components/post-popover2.js +20 -16
- package/dist/components/post-popovercontainer2.js +788 -73
- package/dist/components/post-rating2.js +2 -2
- package/dist/components/post-tab-header2.js +8 -6
- package/dist/components/post-tab-panel2.js +4 -3
- package/dist/components/post-tabs2.js +11 -13
- package/dist/components/post-tag2.js +2 -2
- package/dist/components/post-togglebutton.d.ts +11 -0
- package/dist/components/post-togglebutton.js +6 -0
- package/dist/components/post-togglebutton2.js +62 -0
- package/dist/components/post-tooltip-trigger2.js +14 -277
- package/dist/components/post-tooltip2.js +7 -3
- package/dist/components/slide.js +25 -0
- package/dist/docs.json +1977 -287
- package/dist/esm/breakpoints-7812702e.js +56 -0
- package/dist/esm/check-non-empty-258a56b3.js +13 -0
- package/dist/esm/check-one-of-0bee20f5.js +11 -0
- package/dist/esm/check-type-37d5d307.js +19 -0
- package/dist/esm/check-url-17962bc8.js +17 -0
- package/dist/esm/event-guard-538ee077.js +45 -0
- package/dist/esm/fade-1f3cacf4.js +11 -0
- package/dist/esm/get-root-1b1af46f.js +15 -0
- package/dist/esm/index-8f8fe5b0.js +32 -0
- package/dist/esm/{index-e1b64755.js → index-f4d19816.js} +35 -15
- package/dist/esm/index.browser-ff103197.js +14 -0
- package/dist/esm/index.js +33 -23
- package/dist/esm/loader.js +3 -3
- package/dist/esm/long-press-event-04d24397.js +264 -0
- package/dist/esm/package-d9237b44.js +3 -0
- package/dist/esm/{post-accordion-ad570427.js → post-accordion-fdcf7205.js} +11 -12
- package/dist/esm/post-accordion-item-e11e3804.js +62 -0
- package/dist/esm/post-accordion-item.entry.js +10 -6
- package/dist/esm/post-accordion.entry.js +6 -4
- package/dist/esm/post-avatar-d360c6d2.js +143 -0
- package/dist/esm/post-avatar.entry.js +6 -0
- package/dist/esm/post-back-to-top-85796c8b.js +94 -0
- package/dist/esm/post-back-to-top.entry.js +8 -0
- package/dist/esm/post-banner-a3090f67.js +90 -0
- package/dist/esm/post-banner.entry.js +12 -0
- package/dist/esm/post-breadcrumb-item_2.entry.js +9 -0
- package/dist/esm/post-breadcrumbs-15ec5a26.js +118 -0
- package/dist/esm/post-breadcrumbs.entry.js +5 -0
- package/dist/esm/post-card-control-6142534e.js +267 -0
- package/dist/esm/post-card-control.entry.js +6 -5
- package/dist/esm/post-closebutton_15.entry.js +14 -0
- package/dist/esm/{post-collapsible-trigger-45fe328a.js → post-collapsible-trigger-68306358.js} +62 -76
- package/dist/esm/post-collapsible_2.entry.js +11 -7
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/post-footer-d2a3270e.js +36 -0
- package/dist/esm/post-footer.entry.js +4 -0
- package/dist/esm/post-linkarea-64998c67.js +28 -0
- package/dist/esm/post-linkarea.entry.js +3 -0
- package/dist/esm/post-menu-item-95a0a647.js +65 -0
- package/dist/esm/post-popover-c5f81087.js +133 -0
- package/dist/esm/post-popover.entry.js +4 -3
- package/dist/esm/{post-rating-f60024fa.js → post-rating-7bfedafb.js} +4 -4
- package/dist/esm/post-rating.entry.js +3 -3
- package/dist/esm/post-tab-header-08033da4.js +32 -0
- package/dist/esm/post-tab-header.entry.js +6 -4
- package/dist/esm/{post-tab-panel-0ddb05a2.js → post-tab-panel-be701793.js} +5 -4
- package/dist/esm/post-tab-panel.entry.js +4 -3
- package/dist/esm/{post-tabs-ab7853cf.js → post-tabs-c69e2842.js} +14 -16
- package/dist/esm/post-tabs.entry.js +5 -4
- package/dist/esm/post-tag-ebac7f3e.js +45 -0
- package/dist/esm/post-tag.entry.js +3 -3
- package/dist/esm/post-togglebutton-706e3af0.js +4478 -0
- package/dist/esm/{post-tooltip-c03cd719.js → post-tooltip-9a195d47.js} +10 -6
- package/dist/esm/{post-tooltip-trigger-1fefc8ad.js → post-tooltip-trigger-7d6f234b.js} +17 -280
- package/dist/esm/post-tooltip-trigger.entry.js +5 -4
- package/dist/esm/post-tooltip.entry.js +5 -4
- package/dist/esm/slide-cd2850ee.js +25 -0
- package/dist/post-components/index.esm.js +1 -1
- package/dist/post-components/p-034715ec.js +1 -0
- package/dist/post-components/p-0717fe4c.js +1 -0
- package/dist/post-components/p-0889c759.js +1 -0
- package/dist/post-components/p-0c03547b.js +1 -0
- package/dist/post-components/p-0de8d05f.js +1 -0
- package/dist/post-components/p-1373a79b.entry.js +1 -0
- package/dist/post-components/p-17dc4170.js +8 -0
- package/dist/post-components/p-181c73d5.js +1 -0
- package/dist/post-components/p-1a21fd8d.js +1 -0
- package/dist/post-components/p-1ab3eba4.entry.js +1 -0
- package/dist/post-components/p-2d6c0670.js +1 -0
- package/dist/post-components/p-2dc0a2d0.js +1 -0
- package/dist/post-components/p-35ad2e11.entry.js +1 -0
- package/dist/post-components/p-368c473a.js +1 -0
- package/dist/post-components/p-38f778a7.entry.js +1 -0
- package/dist/post-components/p-39a8df3c.entry.js +1 -0
- package/dist/post-components/p-3c7f6003.js +1 -0
- package/dist/post-components/p-474a41bc.entry.js +1 -0
- package/dist/post-components/p-64e3de38.js +1 -0
- package/dist/post-components/p-69bc8eaf.entry.js +1 -0
- package/dist/post-components/p-6b31a76a.js +1 -0
- package/dist/post-components/p-722ffaae.js +1 -0
- package/dist/post-components/p-72310bf0.entry.js +1 -0
- package/dist/post-components/p-7709c14a.js +1 -0
- package/dist/post-components/p-804b61b7.entry.js +1 -0
- package/dist/post-components/p-85fdc2d3.js +1 -0
- package/dist/post-components/p-89247caa.js +1 -0
- package/dist/post-components/p-89dc67c7.entry.js +1 -0
- package/dist/post-components/p-8db32dab.js +8 -0
- package/dist/post-components/p-8f7f5200.entry.js +1 -0
- package/dist/post-components/p-964f9581.js +1 -0
- package/dist/post-components/p-9b052461.js +1 -0
- package/dist/post-components/{p-3eab790d.js → p-9e461613.js} +2 -2
- package/dist/post-components/p-a52b2d34.js +1 -0
- package/dist/post-components/p-ab566526.js +1 -0
- package/dist/post-components/p-b648e537.entry.js +1 -0
- package/dist/post-components/p-bc33a6d9.js +1 -0
- package/dist/post-components/p-bcfdbd0b.entry.js +1 -0
- package/dist/post-components/p-beb67979.js +1 -0
- package/dist/post-components/p-c41868b1.js +1 -0
- package/dist/post-components/p-c65f32b0.js +1 -0
- package/dist/post-components/p-c71700a7.js +1 -0
- package/dist/post-components/p-cb027003.js +1 -0
- package/dist/post-components/p-cc5b1437.js +1 -0
- package/dist/post-components/p-ceda889e.entry.js +1 -0
- package/dist/post-components/p-d45df336.js +1 -0
- package/dist/post-components/p-de4d4274.js +1 -0
- package/dist/post-components/p-deb9efcf.entry.js +1 -0
- package/dist/post-components/p-e585c6fe.js +1 -0
- package/dist/post-components/p-e9f1cc46.entry.js +1 -0
- package/dist/post-components/p-ee4e776d.entry.js +1 -0
- package/dist/post-components/p-ee7c3bcc.entry.js +1 -0
- package/dist/post-components/p-f56482fa.entry.js +1 -0
- package/dist/post-components/p-f8c652ce.entry.js +1 -0
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/animations/collapse.d.ts +2 -2
- package/dist/types/animations/fade.d.ts +2 -2
- package/dist/types/animations/slide.d.ts +2 -0
- package/dist/types/components/post-accordion/post-accordion.d.ts +1 -1
- package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +8 -2
- package/dist/types/components/post-avatar/post-avatar.d.ts +51 -0
- package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +21 -0
- package/dist/types/components/post-banner/banner-types.d.ts +2 -0
- package/dist/types/components/post-banner/post-banner.d.ts +49 -0
- package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +20 -0
- package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +30 -0
- package/dist/types/components/post-card-control/post-card-control.d.ts +9 -9
- package/dist/types/components/post-closebutton/post-closebutton.d.ts +7 -0
- package/dist/types/components/post-collapsible-trigger/post-collapsible-trigger.d.ts +9 -14
- package/dist/types/components/post-footer/post-footer.d.ts +23 -0
- package/dist/types/components/post-header/post-header.d.ts +52 -0
- package/dist/types/components/post-icon/post-icon.d.ts +10 -6
- package/dist/types/components/post-language-option/post-language-option.d.ts +49 -0
- package/dist/types/components/post-language-switch/post-language-switch.d.ts +39 -0
- package/dist/types/components/post-language-switch/switch-variants.d.ts +2 -0
- package/dist/types/components/post-linkarea/post-linkarea.d.ts +5 -0
- package/dist/types/components/post-list/post-list.d.ts +24 -0
- package/dist/types/components/post-list-item/post-list-item.d.ts +8 -0
- package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +46 -0
- package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +59 -0
- package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +33 -0
- package/dist/types/components/post-menu/post-menu.d.ts +49 -0
- package/dist/types/components/post-menu-item/post-menu-item.d.ts +3 -0
- package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +28 -0
- package/dist/types/components/post-popover/post-popover.d.ts +6 -4
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +9 -1
- package/dist/types/components/post-tab-header/post-tab-header.d.ts +1 -1
- package/dist/types/components/post-tabs/post-tabs.d.ts +1 -1
- package/dist/types/components/post-tag/post-tag.d.ts +2 -2
- package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +15 -0
- package/dist/types/components/post-tooltip/post-tooltip.d.ts +1 -0
- package/dist/types/components/post-tooltip-trigger/post-tooltip-trigger.d.ts +0 -1
- package/dist/types/components.d.ts +603 -50
- package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/.config/bindings.angular.d.ts +2 -0
- package/dist/types/index.d.ts +22 -3
- package/dist/types/popover-fn.d.ts +11 -0
- package/dist/types/utils/attribute-observer.d.ts +1 -1
- package/dist/types/utils/breakpoints.d.ts +12 -0
- package/dist/types/utils/component-on-ready.d.ts +1 -1
- package/dist/types/utils/environment.d.ts +2 -0
- package/dist/types/utils/event-guard.d.ts +4 -0
- package/dist/types/utils/get-focusable-children.d.ts +1 -0
- package/dist/types/utils/get-root.d.ts +5 -1
- package/dist/types/utils/index.d.ts +5 -0
- package/dist/types/utils/property-checkers/check-non-empty.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-one-of.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-pattern.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-type.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-url.d.ts +3 -1
- package/dist/types/utils/property-checkers/index.d.ts +12 -4
- package/dist/types/utils/sass-export.d.ts +5 -1
- package/loaders/breakpoints.js +56 -0
- package/loaders/check-non-empty.js +6 -2
- package/loaders/check-one-of.js +8 -3
- package/loaders/check-type.js +11 -6
- package/loaders/event-guard.js +45 -0
- package/loaders/fade.js +6 -2
- package/loaders/get-focusable-children.js +35 -0
- package/loaders/get-root.js +15 -0
- package/loaders/index.browser.js +14 -0
- package/loaders/index.d.ts +40 -2
- package/loaders/index.js +22 -2
- package/loaders/index2.js +25 -12
- package/loaders/long-press-event.js +264 -0
- package/loaders/package.js +1 -1
- package/loaders/post-accordion-item.js +1 -82
- package/loaders/post-accordion-item2.js +103 -0
- package/loaders/post-accordion.js +8 -9
- package/loaders/post-avatar.d.ts +11 -0
- package/loaders/post-avatar.js +173 -0
- package/loaders/post-back-to-top.d.ts +11 -0
- package/loaders/post-back-to-top.js +124 -0
- package/loaders/post-banner.d.ts +11 -0
- package/loaders/post-banner.js +130 -0
- package/loaders/post-breadcrumb-item.d.ts +11 -0
- package/loaders/post-breadcrumb-item.js +6 -0
- package/loaders/post-breadcrumb-item2.js +82 -0
- package/loaders/post-breadcrumbs.d.ts +11 -0
- package/loaders/post-breadcrumbs.js +180 -0
- package/loaders/post-card-control.js +16 -19
- package/loaders/post-closebutton.d.ts +11 -0
- package/loaders/post-closebutton.js +42 -0
- package/loaders/post-collapsible-trigger2.js +47 -64
- package/loaders/post-collapsible2.js +16 -11
- package/loaders/post-footer.d.ts +11 -0
- package/loaders/post-footer.js +81 -0
- package/loaders/post-header.d.ts +11 -0
- package/loaders/post-header.js +402 -0
- package/loaders/post-icon2.js +59 -55
- package/loaders/post-language-option.d.ts +11 -0
- package/loaders/post-language-option.js +106 -0
- package/loaders/post-language-switch.d.ts +11 -0
- package/loaders/post-language-switch.js +148 -0
- package/loaders/post-linkarea.d.ts +11 -0
- package/loaders/post-linkarea.js +46 -0
- package/loaders/post-list-item.d.ts +11 -0
- package/loaders/post-list-item.js +39 -0
- package/loaders/{post-alert.d.ts → post-list.d.ts} +4 -4
- package/loaders/post-list.js +57 -0
- package/loaders/post-logo.js +5 -4
- package/loaders/post-mainnavigation.d.ts +11 -0
- package/loaders/post-mainnavigation.js +186 -0
- package/loaders/post-megadropdown-trigger.d.ts +11 -0
- package/loaders/post-megadropdown-trigger.js +124 -0
- package/loaders/post-megadropdown.d.ts +11 -0
- package/loaders/post-megadropdown.js +193 -0
- package/loaders/post-menu-item.d.ts +11 -0
- package/loaders/post-menu-item.js +6 -0
- package/loaders/post-menu-item2.js +27 -0
- package/loaders/post-menu-trigger.d.ts +11 -0
- package/loaders/post-menu-trigger.js +6 -0
- package/loaders/post-menu-trigger2.js +109 -0
- package/loaders/post-menu.d.ts +11 -0
- package/loaders/post-menu.js +6 -0
- package/loaders/post-menu2.js +192 -0
- package/loaders/post-popover.js +20 -16
- package/loaders/post-popovercontainer2.js +788 -73
- package/loaders/post-rating.js +2 -2
- package/loaders/post-tab-header.js +8 -6
- package/loaders/post-tab-panel.js +4 -3
- package/loaders/post-tabs.js +11 -13
- package/loaders/post-tag.js +2 -2
- package/loaders/post-togglebutton.d.ts +11 -0
- package/loaders/post-togglebutton.js +65 -0
- package/loaders/post-tooltip-trigger.js +14 -277
- package/loaders/post-tooltip.js +7 -3
- package/loaders/slide.js +25 -0
- package/package.json +45 -33
- package/dist/cjs/check-non-empty-eeaa8f77.js +0 -11
- package/dist/cjs/check-one-of-f4f5d0c0.js +0 -8
- package/dist/cjs/check-type-64af82a9.js +0 -16
- package/dist/cjs/fade-35a3633a.js +0 -10
- package/dist/cjs/index-824d2b71.js +0 -39
- package/dist/cjs/post-accordion-item-5f685bee.js +0 -52
- package/dist/cjs/post-alert-88adc668.js +0 -99
- package/dist/cjs/post-alert.cjs.entry.js +0 -17
- package/dist/cjs/post-card-control-c6e5c427.js +0 -272
- package/dist/cjs/post-icon-f735da00.js +0 -139
- package/dist/cjs/post-icon.cjs.entry.js +0 -16
- package/dist/cjs/post-logo-2cd8ae98.js +0 -39
- package/dist/cjs/post-logo.cjs.entry.js +0 -15
- package/dist/cjs/post-popover-36c854a4.js +0 -131
- package/dist/cjs/post-popovercontainer-cb4793c1.js +0 -2281
- package/dist/cjs/post-popovercontainer.cjs.entry.js +0 -11
- package/dist/cjs/post-tab-header-b756d9b1.js +0 -32
- package/dist/cjs/post-tag-c70fb945.js +0 -47
- package/dist/collection/components/post-alert/alert-types.js +0 -1
- package/dist/collection/components/post-alert/post-alert.css +0 -35
- package/dist/components/post-alert.js +0 -6
- package/dist/components/post-alert2.js +0 -136
- package/dist/esm/check-non-empty-58bd6b17.js +0 -9
- package/dist/esm/check-one-of-6b3ef8eb.js +0 -6
- package/dist/esm/check-type-8828dbe4.js +0 -14
- package/dist/esm/fade-7fd71785.js +0 -7
- package/dist/esm/index-69587a51.js +0 -34
- package/dist/esm/package-983f957d.js +0 -3
- package/dist/esm/post-accordion-item-4db0aa2a.js +0 -50
- package/dist/esm/post-alert-1e9fbdfa.js +0 -97
- package/dist/esm/post-alert.entry.js +0 -9
- package/dist/esm/post-card-control-ccb189a8.js +0 -270
- package/dist/esm/post-icon-3fc4dd7d.js +0 -137
- package/dist/esm/post-icon.entry.js +0 -8
- package/dist/esm/post-logo-e6cdea13.js +0 -37
- package/dist/esm/post-logo.entry.js +0 -7
- package/dist/esm/post-popover-afdf4906.js +0 -129
- package/dist/esm/post-popovercontainer-b19b7606.js +0 -2279
- package/dist/esm/post-popovercontainer.entry.js +0 -3
- package/dist/esm/post-tab-header-333e15d5.js +0 -30
- package/dist/esm/post-tag-4a7d14b9.js +0 -45
- package/dist/post-components/p-0a45da5e.entry.js +0 -1
- package/dist/post-components/p-12e82863.entry.js +0 -1
- package/dist/post-components/p-1386b77d.js +0 -1
- package/dist/post-components/p-1528b798.js +0 -1
- package/dist/post-components/p-18dc1299.entry.js +0 -1
- package/dist/post-components/p-1a8f6c84.entry.js +0 -1
- package/dist/post-components/p-256453ca.js +0 -1
- package/dist/post-components/p-2737eaf5.js +0 -1
- package/dist/post-components/p-3272ebad.js +0 -1
- package/dist/post-components/p-3596035e.js +0 -1
- package/dist/post-components/p-3668f4fa.entry.js +0 -1
- package/dist/post-components/p-375845d4.js +0 -1
- package/dist/post-components/p-381de59d.entry.js +0 -1
- package/dist/post-components/p-4a3f67ab.js +0 -1
- package/dist/post-components/p-4e68c514.js +0 -1
- package/dist/post-components/p-4eb5d9a1.entry.js +0 -1
- package/dist/post-components/p-611b3c41.js +0 -1
- package/dist/post-components/p-61a7d216.js +0 -1
- package/dist/post-components/p-788e64fb.js +0 -1
- package/dist/post-components/p-7d5b41d1.js +0 -1
- package/dist/post-components/p-82ea24e7.js +0 -1
- package/dist/post-components/p-85c4d04f.js +0 -1
- package/dist/post-components/p-85c6d001.entry.js +0 -1
- package/dist/post-components/p-8e555dda.js +0 -15
- package/dist/post-components/p-962a6f36.entry.js +0 -1
- package/dist/post-components/p-a76c71bc.js +0 -1
- package/dist/post-components/p-a7e8fd41.entry.js +0 -1
- package/dist/post-components/p-ac216bd0.entry.js +0 -1
- package/dist/post-components/p-b095519d.js +0 -1
- package/dist/post-components/p-b17ecbee.entry.js +0 -1
- package/dist/post-components/p-bb4227ad.entry.js +0 -1
- package/dist/post-components/p-bc294d0b.js +0 -1
- package/dist/post-components/p-d0b3c5d3.entry.js +0 -1
- package/dist/post-components/p-d4e148d8.entry.js +0 -1
- package/dist/post-components/p-d9809281.js +0 -1
- package/dist/post-components/p-eb1e7a49.js +0 -1
- package/dist/post-components/p-f35291d5.entry.js +0 -1
- package/dist/post-components/p-fc3bfe08.js +0 -1
- package/dist/types/components/post-alert/alert-types.d.ts +0 -2
- package/dist/types/components/post-alert/post-alert.d.ts +0 -54
- package/loaders/post-alert.js +0 -139
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement as HTMLElement$1, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { I as IS_BROWSER } from './breakpoints.js';
|
|
2
3
|
import { v as version } from './package.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -323,9 +324,10 @@ async function detectOverflow(state, options) {
|
|
|
323
324
|
strategy
|
|
324
325
|
}));
|
|
325
326
|
const rect = elementContext === 'floating' ? {
|
|
326
|
-
...rects.floating,
|
|
327
327
|
x,
|
|
328
|
-
y
|
|
328
|
+
y,
|
|
329
|
+
width: rects.floating.width,
|
|
330
|
+
height: rects.floating.height
|
|
329
331
|
} : rects.reference;
|
|
330
332
|
const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
|
|
331
333
|
const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
|
|
@@ -575,10 +577,12 @@ const flip$1 = function (options) {
|
|
|
575
577
|
return {};
|
|
576
578
|
}
|
|
577
579
|
const side = getSide(placement);
|
|
580
|
+
const initialSideAxis = getSideAxis(initialPlacement);
|
|
578
581
|
const isBasePlacement = getSide(initialPlacement) === initialPlacement;
|
|
579
582
|
const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
|
|
580
583
|
const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
|
|
581
|
-
|
|
584
|
+
const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';
|
|
585
|
+
if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
|
|
582
586
|
fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
|
|
583
587
|
}
|
|
584
588
|
const placements = [initialPlacement, ...fallbackPlacements];
|
|
@@ -603,16 +607,21 @@ const flip$1 = function (options) {
|
|
|
603
607
|
const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
|
|
604
608
|
const nextPlacement = placements[nextIndex];
|
|
605
609
|
if (nextPlacement) {
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
610
|
+
var _overflowsData$;
|
|
611
|
+
const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
|
|
612
|
+
const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
|
|
613
|
+
if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
|
|
614
|
+
// Try next placement and re-run the lifecycle.
|
|
615
|
+
return {
|
|
616
|
+
data: {
|
|
617
|
+
index: nextIndex,
|
|
618
|
+
overflows: overflowsData
|
|
619
|
+
},
|
|
620
|
+
reset: {
|
|
621
|
+
placement: nextPlacement
|
|
622
|
+
}
|
|
623
|
+
};
|
|
624
|
+
}
|
|
616
625
|
}
|
|
617
626
|
|
|
618
627
|
// First, find the candidates that fit on the mainAxis side of overflow,
|
|
@@ -624,8 +633,17 @@ const flip$1 = function (options) {
|
|
|
624
633
|
switch (fallbackStrategy) {
|
|
625
634
|
case 'bestFit':
|
|
626
635
|
{
|
|
627
|
-
var _overflowsData$
|
|
628
|
-
const placement = (_overflowsData$
|
|
636
|
+
var _overflowsData$filter2;
|
|
637
|
+
const placement = (_overflowsData$filter2 = overflowsData.filter(d => {
|
|
638
|
+
if (hasFallbackAxisSideDirection) {
|
|
639
|
+
const currentSideAxis = getSideAxis(d.placement);
|
|
640
|
+
return currentSideAxis === initialSideAxis ||
|
|
641
|
+
// Create a bias to the `y` side axis due to horizontal
|
|
642
|
+
// reading directions favoring greater width.
|
|
643
|
+
currentSideAxis === 'y';
|
|
644
|
+
}
|
|
645
|
+
return true;
|
|
646
|
+
}).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
|
|
629
647
|
if (placement) {
|
|
630
648
|
resetPlacement = placement;
|
|
631
649
|
}
|
|
@@ -865,6 +883,8 @@ async function convertValueToCoords(state, options) {
|
|
|
865
883
|
const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
|
|
866
884
|
const crossAxisMulti = rtl && isVertical ? -1 : 1;
|
|
867
885
|
const rawValue = evaluate(options, state);
|
|
886
|
+
|
|
887
|
+
// eslint-disable-next-line prefer-const
|
|
868
888
|
let {
|
|
869
889
|
mainAxis,
|
|
870
890
|
crossAxis,
|
|
@@ -874,10 +894,9 @@ async function convertValueToCoords(state, options) {
|
|
|
874
894
|
crossAxis: 0,
|
|
875
895
|
alignmentAxis: null
|
|
876
896
|
} : {
|
|
877
|
-
mainAxis: 0,
|
|
878
|
-
crossAxis: 0,
|
|
879
|
-
alignmentAxis:
|
|
880
|
-
...rawValue
|
|
897
|
+
mainAxis: rawValue.mainAxis || 0,
|
|
898
|
+
crossAxis: rawValue.crossAxis || 0,
|
|
899
|
+
alignmentAxis: rawValue.alignmentAxis
|
|
881
900
|
};
|
|
882
901
|
if (alignment && typeof alignmentAxis === 'number') {
|
|
883
902
|
crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;
|
|
@@ -999,7 +1018,11 @@ const shift$1 = function (options) {
|
|
|
999
1018
|
...limitedCoords,
|
|
1000
1019
|
data: {
|
|
1001
1020
|
x: limitedCoords.x - x,
|
|
1002
|
-
y: limitedCoords.y - y
|
|
1021
|
+
y: limitedCoords.y - y,
|
|
1022
|
+
enabled: {
|
|
1023
|
+
[mainAxis]: checkMainAxis,
|
|
1024
|
+
[crossAxis]: checkCrossAxis
|
|
1025
|
+
}
|
|
1003
1026
|
}
|
|
1004
1027
|
};
|
|
1005
1028
|
}
|
|
@@ -1088,6 +1111,7 @@ const size$1 = function (options) {
|
|
|
1088
1111
|
name: 'size',
|
|
1089
1112
|
options,
|
|
1090
1113
|
async fn(state) {
|
|
1114
|
+
var _state$middlewareData, _state$middlewareData2;
|
|
1091
1115
|
const {
|
|
1092
1116
|
placement,
|
|
1093
1117
|
rects,
|
|
@@ -1115,17 +1139,18 @@ const size$1 = function (options) {
|
|
|
1115
1139
|
widthSide = side;
|
|
1116
1140
|
heightSide = alignment === 'end' ? 'top' : 'bottom';
|
|
1117
1141
|
}
|
|
1118
|
-
const
|
|
1119
|
-
const
|
|
1142
|
+
const maximumClippingHeight = height - overflow.top - overflow.bottom;
|
|
1143
|
+
const maximumClippingWidth = width - overflow.left - overflow.right;
|
|
1144
|
+
const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
|
|
1145
|
+
const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
|
|
1120
1146
|
const noShift = !state.middlewareData.shift;
|
|
1121
1147
|
let availableHeight = overflowAvailableHeight;
|
|
1122
1148
|
let availableWidth = overflowAvailableWidth;
|
|
1123
|
-
if (
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
|
|
1149
|
+
if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
|
|
1150
|
+
availableWidth = maximumClippingWidth;
|
|
1151
|
+
}
|
|
1152
|
+
if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
|
|
1153
|
+
availableHeight = maximumClippingHeight;
|
|
1129
1154
|
}
|
|
1130
1155
|
if (noShift && !alignment) {
|
|
1131
1156
|
const xMin = max(overflow.left, 0);
|
|
@@ -1156,6 +1181,9 @@ const size$1 = function (options) {
|
|
|
1156
1181
|
};
|
|
1157
1182
|
};
|
|
1158
1183
|
|
|
1184
|
+
function hasWindow() {
|
|
1185
|
+
return typeof window !== 'undefined';
|
|
1186
|
+
}
|
|
1159
1187
|
function getNodeName(node) {
|
|
1160
1188
|
if (isNode(node)) {
|
|
1161
1189
|
return (node.nodeName || '').toLowerCase();
|
|
@@ -1174,17 +1202,25 @@ function getDocumentElement(node) {
|
|
|
1174
1202
|
return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
|
|
1175
1203
|
}
|
|
1176
1204
|
function isNode(value) {
|
|
1205
|
+
if (!hasWindow()) {
|
|
1206
|
+
return false;
|
|
1207
|
+
}
|
|
1177
1208
|
return value instanceof Node || value instanceof getWindow(value).Node;
|
|
1178
1209
|
}
|
|
1179
1210
|
function isElement(value) {
|
|
1211
|
+
if (!hasWindow()) {
|
|
1212
|
+
return false;
|
|
1213
|
+
}
|
|
1180
1214
|
return value instanceof Element || value instanceof getWindow(value).Element;
|
|
1181
1215
|
}
|
|
1182
1216
|
function isHTMLElement(value) {
|
|
1217
|
+
if (!hasWindow()) {
|
|
1218
|
+
return false;
|
|
1219
|
+
}
|
|
1183
1220
|
return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
|
|
1184
1221
|
}
|
|
1185
1222
|
function isShadowRoot(value) {
|
|
1186
|
-
|
|
1187
|
-
if (typeof ShadowRoot === 'undefined') {
|
|
1223
|
+
if (!hasWindow() || typeof ShadowRoot === 'undefined') {
|
|
1188
1224
|
return false;
|
|
1189
1225
|
}
|
|
1190
1226
|
return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
|
|
@@ -1195,7 +1231,7 @@ function isOverflowElement(element) {
|
|
|
1195
1231
|
overflowX,
|
|
1196
1232
|
overflowY,
|
|
1197
1233
|
display
|
|
1198
|
-
} = getComputedStyle(element);
|
|
1234
|
+
} = getComputedStyle$1(element);
|
|
1199
1235
|
return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
|
|
1200
1236
|
}
|
|
1201
1237
|
function isTableElement(element) {
|
|
@@ -1212,10 +1248,11 @@ function isTopLayer(element) {
|
|
|
1212
1248
|
}
|
|
1213
1249
|
function isContainingBlock(elementOrCss) {
|
|
1214
1250
|
const webkit = isWebKit();
|
|
1215
|
-
const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
|
|
1251
|
+
const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
|
|
1216
1252
|
|
|
1217
1253
|
// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
|
|
1218
|
-
|
|
1254
|
+
// https://drafts.csswg.org/css-transforms-2/#individual-transforms
|
|
1255
|
+
return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
|
|
1219
1256
|
}
|
|
1220
1257
|
function getContainingBlock(element) {
|
|
1221
1258
|
let currentNode = getParentNode(element);
|
|
@@ -1236,7 +1273,7 @@ function isWebKit() {
|
|
|
1236
1273
|
function isLastTraversableNode(node) {
|
|
1237
1274
|
return ['html', 'body', '#document'].includes(getNodeName(node));
|
|
1238
1275
|
}
|
|
1239
|
-
function getComputedStyle(element) {
|
|
1276
|
+
function getComputedStyle$1(element) {
|
|
1240
1277
|
return getWindow(element).getComputedStyle(element);
|
|
1241
1278
|
}
|
|
1242
1279
|
function getNodeScroll(element) {
|
|
@@ -1288,13 +1325,17 @@ function getOverflowAncestors(node, list, traverseIframes) {
|
|
|
1288
1325
|
const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
|
|
1289
1326
|
const win = getWindow(scrollableAncestor);
|
|
1290
1327
|
if (isBody) {
|
|
1291
|
-
|
|
1328
|
+
const frameElement = getFrameElement(win);
|
|
1329
|
+
return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
|
|
1292
1330
|
}
|
|
1293
1331
|
return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
|
|
1294
1332
|
}
|
|
1333
|
+
function getFrameElement(win) {
|
|
1334
|
+
return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
|
|
1335
|
+
}
|
|
1295
1336
|
|
|
1296
1337
|
function getCssDimensions(element) {
|
|
1297
|
-
const css = getComputedStyle(element);
|
|
1338
|
+
const css = getComputedStyle$1(element);
|
|
1298
1339
|
// In testing environments, the `width` and `height` properties are empty
|
|
1299
1340
|
// strings for SVG elements, returning NaN. Fallback to `0` in this case.
|
|
1300
1341
|
let width = parseFloat(css.width) || 0;
|
|
@@ -1395,11 +1436,11 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
1395
1436
|
const win = getWindow(domElement);
|
|
1396
1437
|
const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
|
|
1397
1438
|
let currentWin = win;
|
|
1398
|
-
let currentIFrame = currentWin
|
|
1439
|
+
let currentIFrame = getFrameElement(currentWin);
|
|
1399
1440
|
while (currentIFrame && offsetParent && offsetWin !== currentWin) {
|
|
1400
1441
|
const iframeScale = getScale(currentIFrame);
|
|
1401
1442
|
const iframeRect = currentIFrame.getBoundingClientRect();
|
|
1402
|
-
const css = getComputedStyle(currentIFrame);
|
|
1443
|
+
const css = getComputedStyle$1(currentIFrame);
|
|
1403
1444
|
const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
|
|
1404
1445
|
const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
|
|
1405
1446
|
x *= iframeScale.x;
|
|
@@ -1409,7 +1450,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
1409
1450
|
x += left;
|
|
1410
1451
|
y += top;
|
|
1411
1452
|
currentWin = getWindow(currentIFrame);
|
|
1412
|
-
currentIFrame = currentWin
|
|
1453
|
+
currentIFrame = getFrameElement(currentWin);
|
|
1413
1454
|
}
|
|
1414
1455
|
}
|
|
1415
1456
|
return rectToClientRect({
|
|
@@ -1420,6 +1461,31 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
|
|
|
1420
1461
|
});
|
|
1421
1462
|
}
|
|
1422
1463
|
|
|
1464
|
+
// If <html> has a CSS width greater than the viewport, then this will be
|
|
1465
|
+
// incorrect for RTL.
|
|
1466
|
+
function getWindowScrollBarX(element, rect) {
|
|
1467
|
+
const leftScroll = getNodeScroll(element).scrollLeft;
|
|
1468
|
+
if (!rect) {
|
|
1469
|
+
return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
|
|
1470
|
+
}
|
|
1471
|
+
return rect.left + leftScroll;
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
|
|
1475
|
+
if (ignoreScrollbarX === void 0) {
|
|
1476
|
+
ignoreScrollbarX = false;
|
|
1477
|
+
}
|
|
1478
|
+
const htmlRect = documentElement.getBoundingClientRect();
|
|
1479
|
+
const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
|
|
1480
|
+
// RTL <body> scrollbar.
|
|
1481
|
+
getWindowScrollBarX(documentElement, htmlRect));
|
|
1482
|
+
const y = htmlRect.top + scroll.scrollTop;
|
|
1483
|
+
return {
|
|
1484
|
+
x,
|
|
1485
|
+
y
|
|
1486
|
+
};
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1423
1489
|
function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
1424
1490
|
let {
|
|
1425
1491
|
elements,
|
|
@@ -1451,11 +1517,12 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
|
1451
1517
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
1452
1518
|
}
|
|
1453
1519
|
}
|
|
1520
|
+
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
|
|
1454
1521
|
return {
|
|
1455
1522
|
width: rect.width * scale.x,
|
|
1456
1523
|
height: rect.height * scale.y,
|
|
1457
|
-
x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,
|
|
1458
|
-
y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y
|
|
1524
|
+
x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
|
|
1525
|
+
y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
|
|
1459
1526
|
};
|
|
1460
1527
|
}
|
|
1461
1528
|
|
|
@@ -1463,12 +1530,6 @@ function getClientRects(element) {
|
|
|
1463
1530
|
return Array.from(element.getClientRects());
|
|
1464
1531
|
}
|
|
1465
1532
|
|
|
1466
|
-
function getWindowScrollBarX(element) {
|
|
1467
|
-
// If <html> has a CSS width greater than the viewport, then this will be
|
|
1468
|
-
// incorrect for RTL.
|
|
1469
|
-
return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
|
|
1470
|
-
}
|
|
1471
|
-
|
|
1472
1533
|
// Gets the entire size of the scrollable document area, even extending outside
|
|
1473
1534
|
// of the `<html>` and `<body>` rect bounds if horizontally scrollable.
|
|
1474
1535
|
function getDocumentRect(element) {
|
|
@@ -1479,7 +1540,7 @@ function getDocumentRect(element) {
|
|
|
1479
1540
|
const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
|
|
1480
1541
|
let x = -scroll.scrollLeft + getWindowScrollBarX(element);
|
|
1481
1542
|
const y = -scroll.scrollTop;
|
|
1482
|
-
if (getComputedStyle(body).direction === 'rtl') {
|
|
1543
|
+
if (getComputedStyle$1(body).direction === 'rtl') {
|
|
1483
1544
|
x += max(html.clientWidth, body.clientWidth) - width;
|
|
1484
1545
|
}
|
|
1485
1546
|
return {
|
|
@@ -1543,9 +1604,10 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
|
|
|
1543
1604
|
} else {
|
|
1544
1605
|
const visualOffsets = getVisualOffsets(element);
|
|
1545
1606
|
rect = {
|
|
1546
|
-
...clippingAncestor,
|
|
1547
1607
|
x: clippingAncestor.x - visualOffsets.x,
|
|
1548
|
-
y: clippingAncestor.y - visualOffsets.y
|
|
1608
|
+
y: clippingAncestor.y - visualOffsets.y,
|
|
1609
|
+
width: clippingAncestor.width,
|
|
1610
|
+
height: clippingAncestor.height
|
|
1549
1611
|
};
|
|
1550
1612
|
}
|
|
1551
1613
|
return rectToClientRect(rect);
|
|
@@ -1555,7 +1617,7 @@ function hasFixedPositionAncestor(element, stopNode) {
|
|
|
1555
1617
|
if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
|
|
1556
1618
|
return false;
|
|
1557
1619
|
}
|
|
1558
|
-
return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
|
|
1620
|
+
return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
|
|
1559
1621
|
}
|
|
1560
1622
|
|
|
1561
1623
|
// A "clipping ancestor" is an `overflow` element with the characteristic of
|
|
@@ -1568,12 +1630,12 @@ function getClippingElementAncestors(element, cache) {
|
|
|
1568
1630
|
}
|
|
1569
1631
|
let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
|
|
1570
1632
|
let currentContainingBlockComputedStyle = null;
|
|
1571
|
-
const elementIsFixed = getComputedStyle(element).position === 'fixed';
|
|
1633
|
+
const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
|
|
1572
1634
|
let currentNode = elementIsFixed ? getParentNode(element) : element;
|
|
1573
1635
|
|
|
1574
1636
|
// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
|
|
1575
1637
|
while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
|
|
1576
|
-
const computedStyle = getComputedStyle(currentNode);
|
|
1638
|
+
const computedStyle = getComputedStyle$1(currentNode);
|
|
1577
1639
|
const currentNodeIsContaining = isContainingBlock(currentNode);
|
|
1578
1640
|
if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
|
|
1579
1641
|
currentContainingBlockComputedStyle = null;
|
|
@@ -1641,6 +1703,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
1641
1703
|
scrollTop: 0
|
|
1642
1704
|
};
|
|
1643
1705
|
const offsets = createCoords(0);
|
|
1706
|
+
|
|
1707
|
+
// If the <body> scrollbar appears on the left (e.g. RTL systems). Use
|
|
1708
|
+
// Firefox with layout.scrollbar.side = 3 in about:config to test this.
|
|
1709
|
+
function setLeftRTLScrollbarOffset() {
|
|
1710
|
+
offsets.x = getWindowScrollBarX(documentElement);
|
|
1711
|
+
}
|
|
1644
1712
|
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
|
|
1645
1713
|
if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
|
|
1646
1714
|
scroll = getNodeScroll(offsetParent);
|
|
@@ -1650,11 +1718,15 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
1650
1718
|
offsets.x = offsetRect.x + offsetParent.clientLeft;
|
|
1651
1719
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
1652
1720
|
} else if (documentElement) {
|
|
1653
|
-
|
|
1721
|
+
setLeftRTLScrollbarOffset();
|
|
1654
1722
|
}
|
|
1655
1723
|
}
|
|
1656
|
-
|
|
1657
|
-
|
|
1724
|
+
if (isFixed && !isOffsetParentAnElement && documentElement) {
|
|
1725
|
+
setLeftRTLScrollbarOffset();
|
|
1726
|
+
}
|
|
1727
|
+
const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
|
|
1728
|
+
const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
|
|
1729
|
+
const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
|
|
1658
1730
|
return {
|
|
1659
1731
|
x,
|
|
1660
1732
|
y,
|
|
@@ -1664,17 +1736,26 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
|
1664
1736
|
}
|
|
1665
1737
|
|
|
1666
1738
|
function isStaticPositioned(element) {
|
|
1667
|
-
return getComputedStyle(element).position === 'static';
|
|
1739
|
+
return getComputedStyle$1(element).position === 'static';
|
|
1668
1740
|
}
|
|
1669
1741
|
|
|
1670
1742
|
function getTrueOffsetParent(element, polyfill) {
|
|
1671
|
-
if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
|
|
1743
|
+
if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
|
|
1672
1744
|
return null;
|
|
1673
1745
|
}
|
|
1674
1746
|
if (polyfill) {
|
|
1675
1747
|
return polyfill(element);
|
|
1676
1748
|
}
|
|
1677
|
-
|
|
1749
|
+
let rawOffsetParent = element.offsetParent;
|
|
1750
|
+
|
|
1751
|
+
// Firefox returns the <html> element as the offsetParent if it's non-static,
|
|
1752
|
+
// while Chrome and Safari return the <body> element. The <body> element must
|
|
1753
|
+
// be used to perform the correct calculations even if the <html> element is
|
|
1754
|
+
// non-static.
|
|
1755
|
+
if (getDocumentElement(element) === rawOffsetParent) {
|
|
1756
|
+
rawOffsetParent = rawOffsetParent.ownerDocument.body;
|
|
1757
|
+
}
|
|
1758
|
+
return rawOffsetParent;
|
|
1678
1759
|
}
|
|
1679
1760
|
|
|
1680
1761
|
// Gets the closest ancestor positioned element. Handles some edge cases,
|
|
@@ -1720,7 +1801,7 @@ const getElementRects = async function (data) {
|
|
|
1720
1801
|
};
|
|
1721
1802
|
|
|
1722
1803
|
function isRTL(element) {
|
|
1723
|
-
return getComputedStyle(element).direction === 'rtl';
|
|
1804
|
+
return getComputedStyle$1(element).direction === 'rtl';
|
|
1724
1805
|
}
|
|
1725
1806
|
|
|
1726
1807
|
const platform = {
|
|
@@ -1736,6 +1817,10 @@ const platform = {
|
|
|
1736
1817
|
isRTL
|
|
1737
1818
|
};
|
|
1738
1819
|
|
|
1820
|
+
function rectsAreEqual(a, b) {
|
|
1821
|
+
return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1739
1824
|
// https://samthor.au/2021/observing-dom/
|
|
1740
1825
|
function observeMove(element, onMove) {
|
|
1741
1826
|
let io = null;
|
|
@@ -1755,12 +1840,13 @@ function observeMove(element, onMove) {
|
|
|
1755
1840
|
threshold = 1;
|
|
1756
1841
|
}
|
|
1757
1842
|
cleanup();
|
|
1843
|
+
const elementRectForRootMargin = element.getBoundingClientRect();
|
|
1758
1844
|
const {
|
|
1759
1845
|
left,
|
|
1760
1846
|
top,
|
|
1761
1847
|
width,
|
|
1762
1848
|
height
|
|
1763
|
-
} =
|
|
1849
|
+
} = elementRectForRootMargin;
|
|
1764
1850
|
if (!skip) {
|
|
1765
1851
|
onMove();
|
|
1766
1852
|
}
|
|
@@ -1793,6 +1879,16 @@ function observeMove(element, onMove) {
|
|
|
1793
1879
|
refresh(false, ratio);
|
|
1794
1880
|
}
|
|
1795
1881
|
}
|
|
1882
|
+
if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
|
|
1883
|
+
// It's possible that even though the ratio is reported as 1, the
|
|
1884
|
+
// element is not actually fully within the IntersectionObserver's root
|
|
1885
|
+
// area anymore. This can happen under performance constraints. This may
|
|
1886
|
+
// be a bug in the browser's IntersectionObserver implementation. To
|
|
1887
|
+
// work around this, we compare the element's bounding rect now with
|
|
1888
|
+
// what it was at the time we created the IntersectionObserver. If they
|
|
1889
|
+
// are not equal then the element moved, so we refresh.
|
|
1890
|
+
refresh();
|
|
1891
|
+
}
|
|
1796
1892
|
isFirstUpdate = false;
|
|
1797
1893
|
}
|
|
1798
1894
|
|
|
@@ -1804,7 +1900,7 @@ function observeMove(element, onMove) {
|
|
|
1804
1900
|
// Handle <iframe>s
|
|
1805
1901
|
root: root.ownerDocument
|
|
1806
1902
|
});
|
|
1807
|
-
} catch (
|
|
1903
|
+
} catch (_e) {
|
|
1808
1904
|
io = new IntersectionObserver(handleObserve, options);
|
|
1809
1905
|
}
|
|
1810
1906
|
io.observe(element);
|
|
@@ -1870,7 +1966,7 @@ function autoUpdate(reference, floating, update, options) {
|
|
|
1870
1966
|
}
|
|
1871
1967
|
function frameLoop() {
|
|
1872
1968
|
const nextRefRect = getBoundingClientRect(reference);
|
|
1873
|
-
if (prevRefRect && (
|
|
1969
|
+
if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
|
|
1874
1970
|
update();
|
|
1875
1971
|
}
|
|
1876
1972
|
prevRefRect = nextRefRect;
|
|
@@ -1981,7 +2077,385 @@ const computePosition = (reference, floating, options) => {
|
|
|
1981
2077
|
});
|
|
1982
2078
|
};
|
|
1983
2079
|
|
|
1984
|
-
|
|
2080
|
+
// src/events.ts
|
|
2081
|
+
var ToggleEvent = class extends Event {
|
|
2082
|
+
oldState;
|
|
2083
|
+
newState;
|
|
2084
|
+
constructor(type, { oldState = "", newState = "", ...init } = {}) {
|
|
2085
|
+
super(type, init);
|
|
2086
|
+
this.oldState = String(oldState || "");
|
|
2087
|
+
this.newState = String(newState || "");
|
|
2088
|
+
}
|
|
2089
|
+
};
|
|
2090
|
+
var popoverToggleTaskQueue = /* @__PURE__ */ new WeakMap();
|
|
2091
|
+
function queuePopoverToggleEventTask(element, oldState, newState) {
|
|
2092
|
+
popoverToggleTaskQueue.set(
|
|
2093
|
+
element,
|
|
2094
|
+
setTimeout(() => {
|
|
2095
|
+
if (!popoverToggleTaskQueue.has(element)) return;
|
|
2096
|
+
element.dispatchEvent(
|
|
2097
|
+
new ToggleEvent("toggle", {
|
|
2098
|
+
cancelable: false,
|
|
2099
|
+
oldState,
|
|
2100
|
+
newState
|
|
2101
|
+
})
|
|
2102
|
+
);
|
|
2103
|
+
}, 0)
|
|
2104
|
+
);
|
|
2105
|
+
}
|
|
2106
|
+
|
|
2107
|
+
// src/popover-helpers.ts
|
|
2108
|
+
var ShadowRoot$1 = globalThis.ShadowRoot || function() {
|
|
2109
|
+
};
|
|
2110
|
+
var HTMLDialogElement = globalThis.HTMLDialogElement || function() {
|
|
2111
|
+
};
|
|
2112
|
+
var topLayerElements = /* @__PURE__ */ new WeakMap();
|
|
2113
|
+
var autoPopoverList = /* @__PURE__ */ new WeakMap();
|
|
2114
|
+
var visibilityState = /* @__PURE__ */ new WeakMap();
|
|
2115
|
+
function getPopoverVisibilityState(popover) {
|
|
2116
|
+
return visibilityState.get(popover) || "hidden";
|
|
2117
|
+
}
|
|
2118
|
+
var popoverInvoker = /* @__PURE__ */ new WeakMap();
|
|
2119
|
+
function popoverTargetAttributeActivationBehavior(element) {
|
|
2120
|
+
const popover = element.popoverTargetElement;
|
|
2121
|
+
if (!(popover instanceof HTMLElement)) {
|
|
2122
|
+
return;
|
|
2123
|
+
}
|
|
2124
|
+
const visibility = getPopoverVisibilityState(popover);
|
|
2125
|
+
if (element.popoverTargetAction === "show" && visibility === "showing") {
|
|
2126
|
+
return;
|
|
2127
|
+
}
|
|
2128
|
+
if (element.popoverTargetAction === "hide" && visibility === "hidden") return;
|
|
2129
|
+
if (visibility === "showing") {
|
|
2130
|
+
hidePopover(popover, true, true);
|
|
2131
|
+
} else if (checkPopoverValidity(popover, false)) {
|
|
2132
|
+
popoverInvoker.set(popover, element);
|
|
2133
|
+
showPopover(popover);
|
|
2134
|
+
}
|
|
2135
|
+
}
|
|
2136
|
+
function checkPopoverValidity(element, expectedToBeShowing) {
|
|
2137
|
+
if (element.popover !== "auto" && element.popover !== "manual") {
|
|
2138
|
+
return false;
|
|
2139
|
+
}
|
|
2140
|
+
if (!element.isConnected) return false;
|
|
2141
|
+
if (expectedToBeShowing && getPopoverVisibilityState(element) !== "showing") {
|
|
2142
|
+
return false;
|
|
2143
|
+
}
|
|
2144
|
+
if (!expectedToBeShowing && getPopoverVisibilityState(element) !== "hidden") {
|
|
2145
|
+
return false;
|
|
2146
|
+
}
|
|
2147
|
+
if (element instanceof HTMLDialogElement && element.hasAttribute("open")) {
|
|
2148
|
+
return false;
|
|
2149
|
+
}
|
|
2150
|
+
if (document.fullscreenElement === element) return false;
|
|
2151
|
+
return true;
|
|
2152
|
+
}
|
|
2153
|
+
function getStackPosition(popover) {
|
|
2154
|
+
if (!popover) return 0;
|
|
2155
|
+
return Array.from(autoPopoverList.get(popover.ownerDocument) || []).indexOf(
|
|
2156
|
+
popover
|
|
2157
|
+
) + 1;
|
|
2158
|
+
}
|
|
2159
|
+
function topMostClickedPopover(target) {
|
|
2160
|
+
const clickedPopover = nearestInclusiveOpenPopover(target);
|
|
2161
|
+
const invokerPopover = nearestInclusiveTargetPopoverForInvoker(target);
|
|
2162
|
+
if (getStackPosition(clickedPopover) > getStackPosition(invokerPopover)) {
|
|
2163
|
+
return clickedPopover;
|
|
2164
|
+
}
|
|
2165
|
+
return invokerPopover;
|
|
2166
|
+
}
|
|
2167
|
+
function topMostAutoPopover(document2) {
|
|
2168
|
+
const documentPopovers = autoPopoverList.get(document2);
|
|
2169
|
+
for (const popover of documentPopovers || []) {
|
|
2170
|
+
if (!popover.isConnected) {
|
|
2171
|
+
documentPopovers.delete(popover);
|
|
2172
|
+
} else {
|
|
2173
|
+
return popover;
|
|
2174
|
+
}
|
|
2175
|
+
}
|
|
2176
|
+
return null;
|
|
2177
|
+
}
|
|
2178
|
+
function getRootNode(node) {
|
|
2179
|
+
if (typeof node.getRootNode === "function") {
|
|
2180
|
+
return node.getRootNode();
|
|
2181
|
+
}
|
|
2182
|
+
if (node.parentNode) return getRootNode(node.parentNode);
|
|
2183
|
+
return node;
|
|
2184
|
+
}
|
|
2185
|
+
function nearestInclusiveOpenPopover(node) {
|
|
2186
|
+
while (node) {
|
|
2187
|
+
if (node instanceof HTMLElement && node.popover === "auto" && visibilityState.get(node) === "showing") {
|
|
2188
|
+
return node;
|
|
2189
|
+
}
|
|
2190
|
+
node = node instanceof Element && node.assignedSlot || node.parentElement || getRootNode(node);
|
|
2191
|
+
if (node instanceof ShadowRoot$1) node = node.host;
|
|
2192
|
+
if (node instanceof Document) return;
|
|
2193
|
+
}
|
|
2194
|
+
}
|
|
2195
|
+
function nearestInclusiveTargetPopoverForInvoker(node) {
|
|
2196
|
+
while (node) {
|
|
2197
|
+
const nodePopover = node.popoverTargetElement;
|
|
2198
|
+
if (nodePopover instanceof HTMLElement) return nodePopover;
|
|
2199
|
+
node = node.parentElement || getRootNode(node);
|
|
2200
|
+
if (node instanceof ShadowRoot$1) node = node.host;
|
|
2201
|
+
if (node instanceof Document) return;
|
|
2202
|
+
}
|
|
2203
|
+
}
|
|
2204
|
+
function topMostPopoverAncestor(newPopover) {
|
|
2205
|
+
const popoverPositions = /* @__PURE__ */ new Map();
|
|
2206
|
+
let i = 0;
|
|
2207
|
+
for (const popover of autoPopoverList.get(newPopover.ownerDocument) || []) {
|
|
2208
|
+
popoverPositions.set(popover, i);
|
|
2209
|
+
i += 1;
|
|
2210
|
+
}
|
|
2211
|
+
popoverPositions.set(newPopover, i);
|
|
2212
|
+
i += 1;
|
|
2213
|
+
let topMostPopoverAncestor2 = null;
|
|
2214
|
+
function checkAncestor(candidate) {
|
|
2215
|
+
const candidateAncestor = nearestInclusiveOpenPopover(candidate);
|
|
2216
|
+
if (candidateAncestor === null) return null;
|
|
2217
|
+
const candidatePosition = popoverPositions.get(candidateAncestor);
|
|
2218
|
+
if (topMostPopoverAncestor2 === null || popoverPositions.get(topMostPopoverAncestor2) < candidatePosition) {
|
|
2219
|
+
topMostPopoverAncestor2 = candidateAncestor;
|
|
2220
|
+
}
|
|
2221
|
+
}
|
|
2222
|
+
checkAncestor(newPopover.parentElement || getRootNode(newPopover));
|
|
2223
|
+
return topMostPopoverAncestor2;
|
|
2224
|
+
}
|
|
2225
|
+
function isFocusable(focusTarget) {
|
|
2226
|
+
if (focusTarget.hidden || focusTarget instanceof ShadowRoot$1) return false;
|
|
2227
|
+
if (focusTarget instanceof HTMLButtonElement || focusTarget instanceof HTMLInputElement || focusTarget instanceof HTMLSelectElement || focusTarget instanceof HTMLTextAreaElement || focusTarget instanceof HTMLOptGroupElement || focusTarget instanceof HTMLOptionElement || focusTarget instanceof HTMLFieldSetElement) {
|
|
2228
|
+
if (focusTarget.disabled) return false;
|
|
2229
|
+
}
|
|
2230
|
+
if (focusTarget instanceof HTMLInputElement && focusTarget.type === "hidden") {
|
|
2231
|
+
return false;
|
|
2232
|
+
}
|
|
2233
|
+
if (focusTarget instanceof HTMLAnchorElement && focusTarget.href === "") {
|
|
2234
|
+
return false;
|
|
2235
|
+
}
|
|
2236
|
+
return typeof focusTarget.tabIndex === "number" && focusTarget.tabIndex !== -1;
|
|
2237
|
+
}
|
|
2238
|
+
function focusDelegate(focusTarget) {
|
|
2239
|
+
if (focusTarget.shadowRoot && focusTarget.shadowRoot.delegatesFocus !== true) {
|
|
2240
|
+
return null;
|
|
2241
|
+
}
|
|
2242
|
+
let whereToLook = focusTarget;
|
|
2243
|
+
if (whereToLook.shadowRoot) {
|
|
2244
|
+
whereToLook = whereToLook.shadowRoot;
|
|
2245
|
+
}
|
|
2246
|
+
let autoFocusDelegate = whereToLook.querySelector("[autofocus]");
|
|
2247
|
+
if (autoFocusDelegate) {
|
|
2248
|
+
return autoFocusDelegate;
|
|
2249
|
+
} else {
|
|
2250
|
+
const slots = whereToLook.querySelectorAll("slot");
|
|
2251
|
+
for (const slot of slots) {
|
|
2252
|
+
const assignedElements = slot.assignedElements({ flatten: true });
|
|
2253
|
+
for (const el of assignedElements) {
|
|
2254
|
+
if (el.hasAttribute("autofocus")) {
|
|
2255
|
+
return el;
|
|
2256
|
+
} else {
|
|
2257
|
+
autoFocusDelegate = el.querySelector("[autofocus]");
|
|
2258
|
+
if (autoFocusDelegate) {
|
|
2259
|
+
return autoFocusDelegate;
|
|
2260
|
+
}
|
|
2261
|
+
}
|
|
2262
|
+
}
|
|
2263
|
+
}
|
|
2264
|
+
}
|
|
2265
|
+
const walker = focusTarget.ownerDocument.createTreeWalker(
|
|
2266
|
+
whereToLook,
|
|
2267
|
+
NodeFilter.SHOW_ELEMENT
|
|
2268
|
+
);
|
|
2269
|
+
let descendant = walker.currentNode;
|
|
2270
|
+
while (descendant) {
|
|
2271
|
+
if (isFocusable(descendant)) {
|
|
2272
|
+
return descendant;
|
|
2273
|
+
}
|
|
2274
|
+
descendant = walker.nextNode();
|
|
2275
|
+
}
|
|
2276
|
+
}
|
|
2277
|
+
function popoverFocusingSteps(subject) {
|
|
2278
|
+
focusDelegate(subject)?.focus();
|
|
2279
|
+
}
|
|
2280
|
+
var previouslyFocusedElements = /* @__PURE__ */ new WeakMap();
|
|
2281
|
+
function showPopover(element) {
|
|
2282
|
+
if (!checkPopoverValidity(element, false)) {
|
|
2283
|
+
return;
|
|
2284
|
+
}
|
|
2285
|
+
const document2 = element.ownerDocument;
|
|
2286
|
+
if (!element.dispatchEvent(
|
|
2287
|
+
new ToggleEvent("beforetoggle", {
|
|
2288
|
+
cancelable: true,
|
|
2289
|
+
oldState: "closed",
|
|
2290
|
+
newState: "open"
|
|
2291
|
+
})
|
|
2292
|
+
)) {
|
|
2293
|
+
return;
|
|
2294
|
+
}
|
|
2295
|
+
if (!checkPopoverValidity(element, false)) {
|
|
2296
|
+
return;
|
|
2297
|
+
}
|
|
2298
|
+
let shouldRestoreFocus = false;
|
|
2299
|
+
if (element.popover === "auto") {
|
|
2300
|
+
const originalType = element.getAttribute("popover");
|
|
2301
|
+
const ancestor = topMostPopoverAncestor(element) || document2;
|
|
2302
|
+
hideAllPopoversUntil(ancestor, false, true);
|
|
2303
|
+
if (originalType !== element.getAttribute("popover") || !checkPopoverValidity(element, false)) {
|
|
2304
|
+
return;
|
|
2305
|
+
}
|
|
2306
|
+
}
|
|
2307
|
+
if (!topMostAutoPopover(document2)) {
|
|
2308
|
+
shouldRestoreFocus = true;
|
|
2309
|
+
}
|
|
2310
|
+
previouslyFocusedElements.delete(element);
|
|
2311
|
+
const originallyFocusedElement = document2.activeElement;
|
|
2312
|
+
element.classList.add(":popover-open");
|
|
2313
|
+
visibilityState.set(element, "showing");
|
|
2314
|
+
if (!topLayerElements.has(document2)) {
|
|
2315
|
+
topLayerElements.set(document2, /* @__PURE__ */ new Set());
|
|
2316
|
+
}
|
|
2317
|
+
topLayerElements.get(document2).add(element);
|
|
2318
|
+
popoverFocusingSteps(element);
|
|
2319
|
+
if (element.popover === "auto") {
|
|
2320
|
+
if (!autoPopoverList.has(document2)) {
|
|
2321
|
+
autoPopoverList.set(document2, /* @__PURE__ */ new Set());
|
|
2322
|
+
}
|
|
2323
|
+
autoPopoverList.get(document2).add(element);
|
|
2324
|
+
setInvokerAriaExpanded(popoverInvoker.get(element), true);
|
|
2325
|
+
}
|
|
2326
|
+
if (shouldRestoreFocus && originallyFocusedElement && element.popover === "auto") {
|
|
2327
|
+
previouslyFocusedElements.set(element, originallyFocusedElement);
|
|
2328
|
+
}
|
|
2329
|
+
queuePopoverToggleEventTask(element, "closed", "open");
|
|
2330
|
+
}
|
|
2331
|
+
function hidePopover(element, focusPreviousElement = false, fireEvents = false) {
|
|
2332
|
+
if (!checkPopoverValidity(element, true)) {
|
|
2333
|
+
return;
|
|
2334
|
+
}
|
|
2335
|
+
const document2 = element.ownerDocument;
|
|
2336
|
+
if (element.popover === "auto") {
|
|
2337
|
+
hideAllPopoversUntil(element, focusPreviousElement, fireEvents);
|
|
2338
|
+
if (!checkPopoverValidity(element, true)) {
|
|
2339
|
+
return;
|
|
2340
|
+
}
|
|
2341
|
+
}
|
|
2342
|
+
setInvokerAriaExpanded(popoverInvoker.get(element), false);
|
|
2343
|
+
popoverInvoker.delete(element);
|
|
2344
|
+
if (fireEvents) {
|
|
2345
|
+
element.dispatchEvent(
|
|
2346
|
+
new ToggleEvent("beforetoggle", {
|
|
2347
|
+
oldState: "open",
|
|
2348
|
+
newState: "closed"
|
|
2349
|
+
})
|
|
2350
|
+
);
|
|
2351
|
+
if (!checkPopoverValidity(element, true)) {
|
|
2352
|
+
return;
|
|
2353
|
+
}
|
|
2354
|
+
}
|
|
2355
|
+
topLayerElements.get(document2)?.delete(element);
|
|
2356
|
+
autoPopoverList.get(document2)?.delete(element);
|
|
2357
|
+
element.classList.remove(":popover-open");
|
|
2358
|
+
visibilityState.set(element, "hidden");
|
|
2359
|
+
if (fireEvents) {
|
|
2360
|
+
queuePopoverToggleEventTask(element, "open", "closed");
|
|
2361
|
+
}
|
|
2362
|
+
const previouslyFocusedElement = previouslyFocusedElements.get(element);
|
|
2363
|
+
if (previouslyFocusedElement) {
|
|
2364
|
+
previouslyFocusedElements.delete(element);
|
|
2365
|
+
if (focusPreviousElement) {
|
|
2366
|
+
previouslyFocusedElement.focus();
|
|
2367
|
+
}
|
|
2368
|
+
}
|
|
2369
|
+
}
|
|
2370
|
+
function closeAllOpenPopovers(document2, focusPreviousElement = false, fireEvents = false) {
|
|
2371
|
+
let popover = topMostAutoPopover(document2);
|
|
2372
|
+
while (popover) {
|
|
2373
|
+
hidePopover(popover, focusPreviousElement, fireEvents);
|
|
2374
|
+
popover = topMostAutoPopover(document2);
|
|
2375
|
+
}
|
|
2376
|
+
}
|
|
2377
|
+
function hideAllPopoversUntil(endpoint, focusPreviousElement, fireEvents) {
|
|
2378
|
+
const document2 = endpoint.ownerDocument || endpoint;
|
|
2379
|
+
if (endpoint instanceof Document) {
|
|
2380
|
+
return closeAllOpenPopovers(document2, focusPreviousElement, fireEvents);
|
|
2381
|
+
}
|
|
2382
|
+
let lastToHide = null;
|
|
2383
|
+
let foundEndpoint = false;
|
|
2384
|
+
for (const popover of autoPopoverList.get(document2) || []) {
|
|
2385
|
+
if (popover === endpoint) {
|
|
2386
|
+
foundEndpoint = true;
|
|
2387
|
+
} else if (foundEndpoint) {
|
|
2388
|
+
lastToHide = popover;
|
|
2389
|
+
break;
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
if (!foundEndpoint) {
|
|
2393
|
+
return closeAllOpenPopovers(document2, focusPreviousElement, fireEvents);
|
|
2394
|
+
}
|
|
2395
|
+
while (lastToHide && getPopoverVisibilityState(lastToHide) === "showing" && autoPopoverList.get(document2)?.size) {
|
|
2396
|
+
hidePopover(lastToHide, focusPreviousElement, fireEvents);
|
|
2397
|
+
}
|
|
2398
|
+
}
|
|
2399
|
+
var popoverPointerDownTargets = /* @__PURE__ */ new WeakMap();
|
|
2400
|
+
function lightDismissOpenPopovers(event) {
|
|
2401
|
+
if (!event.isTrusted) return;
|
|
2402
|
+
const target = event.composedPath()[0];
|
|
2403
|
+
if (!target) return;
|
|
2404
|
+
const document2 = target.ownerDocument;
|
|
2405
|
+
const topMostPopover = topMostAutoPopover(document2);
|
|
2406
|
+
if (!topMostPopover) return;
|
|
2407
|
+
const ancestor = topMostClickedPopover(target);
|
|
2408
|
+
if (ancestor && event.type === "pointerdown") {
|
|
2409
|
+
popoverPointerDownTargets.set(document2, ancestor);
|
|
2410
|
+
} else if (event.type === "pointerup") {
|
|
2411
|
+
const sameTarget = popoverPointerDownTargets.get(document2) === ancestor;
|
|
2412
|
+
popoverPointerDownTargets.delete(document2);
|
|
2413
|
+
if (sameTarget) {
|
|
2414
|
+
hideAllPopoversUntil(ancestor || document2, false, true);
|
|
2415
|
+
}
|
|
2416
|
+
}
|
|
2417
|
+
}
|
|
2418
|
+
var initialAriaExpandedValue = /* @__PURE__ */ new WeakMap();
|
|
2419
|
+
function setInvokerAriaExpanded(el, force = false) {
|
|
2420
|
+
if (!el) return;
|
|
2421
|
+
if (!initialAriaExpandedValue.has(el)) {
|
|
2422
|
+
initialAriaExpandedValue.set(el, el.getAttribute("aria-expanded"));
|
|
2423
|
+
}
|
|
2424
|
+
const popover = el.popoverTargetElement;
|
|
2425
|
+
if (popover instanceof HTMLElement && popover.popover === "auto") {
|
|
2426
|
+
el.setAttribute("aria-expanded", String(force));
|
|
2427
|
+
} else {
|
|
2428
|
+
const initialValue = initialAriaExpandedValue.get(el);
|
|
2429
|
+
if (!initialValue) {
|
|
2430
|
+
el.removeAttribute("aria-expanded");
|
|
2431
|
+
} else {
|
|
2432
|
+
el.setAttribute("aria-expanded", initialValue);
|
|
2433
|
+
}
|
|
2434
|
+
}
|
|
2435
|
+
}
|
|
2436
|
+
|
|
2437
|
+
// src/popover.ts
|
|
2438
|
+
var ShadowRoot2 = globalThis.ShadowRoot || function() {
|
|
2439
|
+
};
|
|
2440
|
+
function isSupported() {
|
|
2441
|
+
return typeof HTMLElement !== "undefined" && typeof HTMLElement.prototype === "object" && "popover" in HTMLElement.prototype;
|
|
2442
|
+
}
|
|
2443
|
+
function patchSelectorFn(object, name, mapper) {
|
|
2444
|
+
const original = object[name];
|
|
2445
|
+
Object.defineProperty(object, name, {
|
|
2446
|
+
value(selector) {
|
|
2447
|
+
return original.call(this, mapper(selector));
|
|
2448
|
+
}
|
|
2449
|
+
});
|
|
2450
|
+
}
|
|
2451
|
+
var nonEscapedPopoverSelector = /(^|[^\\]):popover-open\b/g;
|
|
2452
|
+
function hasLayerSupport() {
|
|
2453
|
+
return typeof globalThis.CSSLayerBlockRule === "function";
|
|
2454
|
+
}
|
|
2455
|
+
function getStyles() {
|
|
2456
|
+
const useLayer = hasLayerSupport();
|
|
2457
|
+
return `
|
|
2458
|
+
${useLayer ? "@layer popover-polyfill {" : ""}
|
|
1985
2459
|
:where([popover]) {
|
|
1986
2460
|
position: fixed;
|
|
1987
2461
|
z-index: 2147483647;
|
|
@@ -1999,6 +2473,14 @@ const computePosition = (reference, floating, options) => {
|
|
|
1999
2473
|
margin: auto;
|
|
2000
2474
|
}
|
|
2001
2475
|
|
|
2476
|
+
:where([popover]:not(.\\:popover-open)) {
|
|
2477
|
+
display: none;
|
|
2478
|
+
}
|
|
2479
|
+
|
|
2480
|
+
:where(dialog[popover].\\:popover-open) {
|
|
2481
|
+
display: block;
|
|
2482
|
+
}
|
|
2483
|
+
|
|
2002
2484
|
:where(dialog[popover][open]) {
|
|
2003
2485
|
display: revert;
|
|
2004
2486
|
}
|
|
@@ -2033,13 +2515,231 @@ const computePosition = (reference, floating, options) => {
|
|
|
2033
2515
|
bottom: 0;
|
|
2034
2516
|
}
|
|
2035
2517
|
}
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2518
|
+
${useLayer ? "}" : ""}
|
|
2519
|
+
`;
|
|
2520
|
+
}
|
|
2521
|
+
var popoverStyleSheet = null;
|
|
2522
|
+
function injectStyles(root) {
|
|
2523
|
+
const styles = getStyles();
|
|
2524
|
+
if (popoverStyleSheet === null) {
|
|
2525
|
+
try {
|
|
2526
|
+
popoverStyleSheet = new CSSStyleSheet();
|
|
2527
|
+
popoverStyleSheet.replaceSync(styles);
|
|
2528
|
+
} catch {
|
|
2529
|
+
popoverStyleSheet = false;
|
|
2530
|
+
}
|
|
2039
2531
|
}
|
|
2040
|
-
|
|
2532
|
+
if (popoverStyleSheet === false) {
|
|
2533
|
+
const sheet = document.createElement("style");
|
|
2534
|
+
sheet.textContent = styles;
|
|
2535
|
+
if (root instanceof Document) {
|
|
2536
|
+
root.head.prepend(sheet);
|
|
2537
|
+
} else {
|
|
2538
|
+
root.prepend(sheet);
|
|
2539
|
+
}
|
|
2540
|
+
} else {
|
|
2541
|
+
root.adoptedStyleSheets = [popoverStyleSheet, ...root.adoptedStyleSheets];
|
|
2542
|
+
}
|
|
2543
|
+
}
|
|
2544
|
+
function apply() {
|
|
2545
|
+
if (typeof window === "undefined") return;
|
|
2546
|
+
window.ToggleEvent = window.ToggleEvent || ToggleEvent;
|
|
2547
|
+
function rewriteSelector(selector) {
|
|
2548
|
+
if (selector?.includes(":popover-open")) {
|
|
2549
|
+
selector = selector.replace(
|
|
2550
|
+
nonEscapedPopoverSelector,
|
|
2551
|
+
"$1.\\:popover-open"
|
|
2552
|
+
);
|
|
2553
|
+
}
|
|
2554
|
+
return selector;
|
|
2555
|
+
}
|
|
2556
|
+
patchSelectorFn(Document.prototype, "querySelector", rewriteSelector);
|
|
2557
|
+
patchSelectorFn(Document.prototype, "querySelectorAll", rewriteSelector);
|
|
2558
|
+
patchSelectorFn(Element.prototype, "querySelector", rewriteSelector);
|
|
2559
|
+
patchSelectorFn(Element.prototype, "querySelectorAll", rewriteSelector);
|
|
2560
|
+
patchSelectorFn(Element.prototype, "matches", rewriteSelector);
|
|
2561
|
+
patchSelectorFn(Element.prototype, "closest", rewriteSelector);
|
|
2562
|
+
patchSelectorFn(
|
|
2563
|
+
DocumentFragment.prototype,
|
|
2564
|
+
"querySelectorAll",
|
|
2565
|
+
rewriteSelector
|
|
2566
|
+
);
|
|
2567
|
+
Object.defineProperties(HTMLElement.prototype, {
|
|
2568
|
+
popover: {
|
|
2569
|
+
enumerable: true,
|
|
2570
|
+
configurable: true,
|
|
2571
|
+
get() {
|
|
2572
|
+
if (!this.hasAttribute("popover")) return null;
|
|
2573
|
+
const value = (this.getAttribute("popover") || "").toLowerCase();
|
|
2574
|
+
if (value === "" || value == "auto") return "auto";
|
|
2575
|
+
return "manual";
|
|
2576
|
+
},
|
|
2577
|
+
set(value) {
|
|
2578
|
+
if (value === null) {
|
|
2579
|
+
this.removeAttribute("popover");
|
|
2580
|
+
} else {
|
|
2581
|
+
this.setAttribute("popover", value);
|
|
2582
|
+
}
|
|
2583
|
+
}
|
|
2584
|
+
},
|
|
2585
|
+
showPopover: {
|
|
2586
|
+
enumerable: true,
|
|
2587
|
+
configurable: true,
|
|
2588
|
+
value() {
|
|
2589
|
+
showPopover(this);
|
|
2590
|
+
}
|
|
2591
|
+
},
|
|
2592
|
+
hidePopover: {
|
|
2593
|
+
enumerable: true,
|
|
2594
|
+
configurable: true,
|
|
2595
|
+
value() {
|
|
2596
|
+
hidePopover(this, true, true);
|
|
2597
|
+
}
|
|
2598
|
+
},
|
|
2599
|
+
togglePopover: {
|
|
2600
|
+
enumerable: true,
|
|
2601
|
+
configurable: true,
|
|
2602
|
+
value(force) {
|
|
2603
|
+
if (visibilityState.get(this) === "showing" && force === void 0 || force === false) {
|
|
2604
|
+
hidePopover(this, true, true);
|
|
2605
|
+
} else if (force === void 0 || force === true) {
|
|
2606
|
+
showPopover(this);
|
|
2607
|
+
}
|
|
2608
|
+
}
|
|
2609
|
+
}
|
|
2610
|
+
});
|
|
2611
|
+
const originalAttachShadow = Element.prototype.attachShadow;
|
|
2612
|
+
if (originalAttachShadow) {
|
|
2613
|
+
Object.defineProperties(Element.prototype, {
|
|
2614
|
+
attachShadow: {
|
|
2615
|
+
enumerable: true,
|
|
2616
|
+
configurable: true,
|
|
2617
|
+
writable: true,
|
|
2618
|
+
value(options) {
|
|
2619
|
+
const shadowRoot = originalAttachShadow.call(this, options);
|
|
2620
|
+
injectStyles(shadowRoot);
|
|
2621
|
+
return shadowRoot;
|
|
2622
|
+
}
|
|
2623
|
+
}
|
|
2624
|
+
});
|
|
2625
|
+
}
|
|
2626
|
+
const originalAttachInternals = HTMLElement.prototype.attachInternals;
|
|
2627
|
+
if (originalAttachInternals) {
|
|
2628
|
+
Object.defineProperties(HTMLElement.prototype, {
|
|
2629
|
+
attachInternals: {
|
|
2630
|
+
enumerable: true,
|
|
2631
|
+
configurable: true,
|
|
2632
|
+
writable: true,
|
|
2633
|
+
value() {
|
|
2634
|
+
const internals = originalAttachInternals.call(this);
|
|
2635
|
+
if (internals.shadowRoot) {
|
|
2636
|
+
injectStyles(internals.shadowRoot);
|
|
2637
|
+
}
|
|
2638
|
+
return internals;
|
|
2639
|
+
}
|
|
2640
|
+
}
|
|
2641
|
+
});
|
|
2642
|
+
}
|
|
2643
|
+
const popoverTargetAssociatedElements = /* @__PURE__ */ new WeakMap();
|
|
2644
|
+
function applyPopoverInvokerElementMixin(ElementClass) {
|
|
2645
|
+
Object.defineProperties(ElementClass.prototype, {
|
|
2646
|
+
popoverTargetElement: {
|
|
2647
|
+
enumerable: true,
|
|
2648
|
+
configurable: true,
|
|
2649
|
+
set(targetElement) {
|
|
2650
|
+
if (targetElement === null) {
|
|
2651
|
+
this.removeAttribute("popovertarget");
|
|
2652
|
+
popoverTargetAssociatedElements.delete(this);
|
|
2653
|
+
} else if (!(targetElement instanceof Element)) {
|
|
2654
|
+
throw new TypeError(
|
|
2655
|
+
`popoverTargetElement must be an element or null`
|
|
2656
|
+
);
|
|
2657
|
+
} else {
|
|
2658
|
+
this.setAttribute("popovertarget", "");
|
|
2659
|
+
popoverTargetAssociatedElements.set(this, targetElement);
|
|
2660
|
+
}
|
|
2661
|
+
},
|
|
2662
|
+
get() {
|
|
2663
|
+
if (this.localName !== "button" && this.localName !== "input") {
|
|
2664
|
+
return null;
|
|
2665
|
+
}
|
|
2666
|
+
if (this.localName === "input" && this.type !== "reset" && this.type !== "image" && this.type !== "button") {
|
|
2667
|
+
return null;
|
|
2668
|
+
}
|
|
2669
|
+
if (this.disabled) {
|
|
2670
|
+
return null;
|
|
2671
|
+
}
|
|
2672
|
+
if (this.form && this.type === "submit") {
|
|
2673
|
+
return null;
|
|
2674
|
+
}
|
|
2675
|
+
const targetElement = popoverTargetAssociatedElements.get(this);
|
|
2676
|
+
if (targetElement && targetElement.isConnected) {
|
|
2677
|
+
return targetElement;
|
|
2678
|
+
} else if (targetElement && !targetElement.isConnected) {
|
|
2679
|
+
popoverTargetAssociatedElements.delete(this);
|
|
2680
|
+
return null;
|
|
2681
|
+
}
|
|
2682
|
+
const root = getRootNode(this);
|
|
2683
|
+
const idref = this.getAttribute("popovertarget");
|
|
2684
|
+
if ((root instanceof Document || root instanceof ShadowRoot2) && idref) {
|
|
2685
|
+
return root.getElementById(idref) || null;
|
|
2686
|
+
}
|
|
2687
|
+
return null;
|
|
2688
|
+
}
|
|
2689
|
+
},
|
|
2690
|
+
popoverTargetAction: {
|
|
2691
|
+
enumerable: true,
|
|
2692
|
+
configurable: true,
|
|
2693
|
+
get() {
|
|
2694
|
+
const value = (this.getAttribute("popovertargetaction") || "").toLowerCase();
|
|
2695
|
+
if (value === "show" || value === "hide") return value;
|
|
2696
|
+
return "toggle";
|
|
2697
|
+
},
|
|
2698
|
+
set(value) {
|
|
2699
|
+
this.setAttribute("popovertargetaction", value);
|
|
2700
|
+
}
|
|
2701
|
+
}
|
|
2702
|
+
});
|
|
2703
|
+
}
|
|
2704
|
+
applyPopoverInvokerElementMixin(HTMLButtonElement);
|
|
2705
|
+
applyPopoverInvokerElementMixin(HTMLInputElement);
|
|
2706
|
+
const handleInvokerActivation = (event) => {
|
|
2707
|
+
const composedPath = event.composedPath();
|
|
2708
|
+
const target = composedPath[0];
|
|
2709
|
+
if (!(target instanceof Element) || target?.shadowRoot) {
|
|
2710
|
+
return;
|
|
2711
|
+
}
|
|
2712
|
+
const root = getRootNode(target);
|
|
2713
|
+
if (!(root instanceof ShadowRoot2 || root instanceof Document)) {
|
|
2714
|
+
return;
|
|
2715
|
+
}
|
|
2716
|
+
const invoker = composedPath.find(
|
|
2717
|
+
(el) => el.matches?.("[popovertargetaction],[popovertarget]")
|
|
2718
|
+
);
|
|
2719
|
+
if (invoker) {
|
|
2720
|
+
popoverTargetAttributeActivationBehavior(invoker);
|
|
2721
|
+
event.preventDefault();
|
|
2722
|
+
return;
|
|
2723
|
+
}
|
|
2724
|
+
};
|
|
2725
|
+
const onKeydown = (event) => {
|
|
2726
|
+
const key = event.key;
|
|
2727
|
+
const target = event.target;
|
|
2728
|
+
if (!event.defaultPrevented && target && (key === "Escape" || key === "Esc")) {
|
|
2729
|
+
hideAllPopoversUntil(target.ownerDocument, true, true);
|
|
2730
|
+
}
|
|
2731
|
+
};
|
|
2732
|
+
const addEventListeners = (root) => {
|
|
2733
|
+
root.addEventListener("click", handleInvokerActivation);
|
|
2734
|
+
root.addEventListener("keydown", onKeydown);
|
|
2735
|
+
root.addEventListener("pointerdown", lightDismissOpenPopovers);
|
|
2736
|
+
root.addEventListener("pointerup", lightDismissOpenPopovers);
|
|
2737
|
+
};
|
|
2738
|
+
addEventListeners(document);
|
|
2739
|
+
injectStyles(document);
|
|
2740
|
+
}
|
|
2041
2741
|
|
|
2042
|
-
const postPopovercontainerCss = "@keyframes popIn{from{transform:scale(0.9);opacity:0;transition-property:transform,opacity,overlay,display;transition-behavior:allow-discrete;transition-duration:var(--post-transition-duration, 0.35s);transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1)}to{opacity:1;transform:scale(1)}}
|
|
2742
|
+
const postPopovercontainerCss = "@keyframes popIn{from{transform:scale(0.9);opacity:0;transition-property:transform,opacity,overlay,display;transition-behavior:allow-discrete;transition-duration:var(--post-transition-duration, 0.35s);transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1)}to{opacity:1;transform:scale(1)}}@layer polyfill{@supports not selector(:popover-open){[popover]:not(.\\:popover-open){display:none}}}:where(post-popovercontainer){background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:where(post-popovercontainer)>div{box-shadow:var(--post-device-elevation-300);width:max-content;max-width:100%;color:var(--post-current-palette-fg);background-color:var(--post-current-palette-bg);border:2px solid rgba(0,0,0,0);border-radius:4px}:where(post-popovercontainer)>div.animate-pop-in{animation:popIn .25s ease-out forwards}:where(post-popovercontainer)[tooltip]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:where(post-popovercontainer)[safe-space]::after{content:\"\";position:fixed;inset:0;z-index:-1;pointer-events:auto}:where(post-popovercontainer)[safe-space=triangle]::after{clip-path:polygon(var(--post-safe-space-cursor-x, 0) var(--post-safe-space-cursor-y, 0), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)))}:where(post-popovercontainer)[safe-space=trapezoid]::after{clip-path:polygon(var(--post-safe-space-trigger-x-start, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-start, 0)), var(--post-safe-space-trigger-x-end, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-end, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)))}:where(post-popovercontainer):not(:has(.arrow))>div{box-shadow:var(--post-device-elevation-300)}:where(post-popovercontainer):has(.arrow)>div{filter:drop-shadow(1px 2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(2px 4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(4px 8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.top)>div{filter:drop-shadow(0px -2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(0px -4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(0px -8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.left)>div{filter:drop-shadow(-2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(-4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(-8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.right)>div{filter:drop-shadow(2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer) .arrow{position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:where(post-popovercontainer) .arrow.top{border-block-start:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.right{border-block-start:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.left{border-block-end:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.bottom{border-block-end:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0)}";
|
|
2043
2743
|
const PostPopovercontainerStyle0 = postPopovercontainerCss;
|
|
2044
2744
|
|
|
2045
2745
|
const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopovercontainer extends HTMLElement$1 {
|
|
@@ -2051,6 +2751,7 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
|
|
|
2051
2751
|
this.edgeGap = 8;
|
|
2052
2752
|
this.animation = null;
|
|
2053
2753
|
this.arrow = false;
|
|
2754
|
+
this.manualClose = false;
|
|
2054
2755
|
this.safeSpace = undefined;
|
|
2055
2756
|
}
|
|
2056
2757
|
/**
|
|
@@ -2062,8 +2763,12 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
|
|
|
2062
2763
|
this.host.style.setProperty('--post-safe-space-cursor-x', `${event.clientX}px`);
|
|
2063
2764
|
this.host.style.setProperty('--post-safe-space-cursor-y', `${event.clientY}px`);
|
|
2064
2765
|
}
|
|
2766
|
+
connectedCallback() {
|
|
2767
|
+
if (IS_BROWSER && !isSupported()) {
|
|
2768
|
+
apply();
|
|
2769
|
+
}
|
|
2770
|
+
}
|
|
2065
2771
|
componentDidLoad() {
|
|
2066
|
-
this.host.setAttribute('popover', '');
|
|
2067
2772
|
this.host.addEventListener('beforetoggle', this.handleToggle.bind(this));
|
|
2068
2773
|
}
|
|
2069
2774
|
disconnectedCallback() {
|
|
@@ -2135,6 +2840,13 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
|
|
|
2135
2840
|
startAutoupdates() {
|
|
2136
2841
|
this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.calculatePosition.bind(this));
|
|
2137
2842
|
}
|
|
2843
|
+
/**
|
|
2844
|
+
* Retrieves the dynamic height of the header
|
|
2845
|
+
*/
|
|
2846
|
+
getHeaderHeight() {
|
|
2847
|
+
const header = document.querySelector('post-header');
|
|
2848
|
+
return header ? parseFloat(getComputedStyle(header).height) : 0;
|
|
2849
|
+
}
|
|
2138
2850
|
async calculatePosition() {
|
|
2139
2851
|
const { x, y, middlewareData, placement } = await this.computeMainPosition();
|
|
2140
2852
|
const currentPlacement = placement.split('-')[0];
|
|
@@ -2161,7 +2873,9 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
|
|
|
2161
2873
|
async computeMainPosition() {
|
|
2162
2874
|
const gap = this.edgeGap;
|
|
2163
2875
|
const middleware = [
|
|
2164
|
-
flip(
|
|
2876
|
+
flip({
|
|
2877
|
+
padding: this.getHeaderHeight(),
|
|
2878
|
+
}),
|
|
2165
2879
|
inline(),
|
|
2166
2880
|
shift({
|
|
2167
2881
|
padding: gap,
|
|
@@ -2249,9 +2963,9 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
|
|
|
2249
2963
|
}
|
|
2250
2964
|
render() {
|
|
2251
2965
|
const animationClass = this.animation ? `animate-${this.animation}` : '';
|
|
2252
|
-
return (h(Host, { key: '
|
|
2966
|
+
return (h(Host, { key: '980c2d7531ef77f71ea51b069dc20bbf40cd0ac4', "data-version": version, popover: this.manualClose ? 'manual' : 'auto' }, h("div", { key: '9fa08070a5e7f864aade0dc1afc2917e54693109', class: animationClass }, this.arrow && (h("span", { key: '4700f55c721387f2d918214309e87c9057e4831f', class: "arrow", ref: el => {
|
|
2253
2967
|
this.arrowRef = el;
|
|
2254
|
-
} })), h("slot", { key: '
|
|
2968
|
+
} })), h("slot", { key: 'ec5304bc77d4f3eb91c79fb2a37d096b4d43b888' }))));
|
|
2255
2969
|
}
|
|
2256
2970
|
get host() { return this; }
|
|
2257
2971
|
static get style() { return PostPopovercontainerStyle0; }
|
|
@@ -2260,6 +2974,7 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
|
|
|
2260
2974
|
"edgeGap": [2, "edge-gap"],
|
|
2261
2975
|
"animation": [1],
|
|
2262
2976
|
"arrow": [4],
|
|
2977
|
+
"manualClose": [4, "manual-close"],
|
|
2263
2978
|
"safeSpace": [513, "safe-space"],
|
|
2264
2979
|
"show": [64],
|
|
2265
2980
|
"hide": [64],
|