@swisspost/design-system-components 9.0.0-next.33 → 9.0.0-next.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{attribute-observer-6d8b886b.js → attribute-observer-c3a805b2.js} +3 -1
- package/dist/cjs/{breakpoints-c6247c71.js → breakpoints-cdf1b747.js} +12 -7
- package/dist/cjs/get-root-8102fecd.js +17 -0
- package/dist/cjs/{index-d6bf2c66.js → index-b60129c4.js} +2 -2
- package/dist/cjs/index.cjs.js +24 -25
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/long-press-event-6e62d113.js +266 -0
- package/dist/cjs/{package-3562c265.js → package-3426e8f7.js} +1 -1
- package/dist/cjs/{post-accordion-6c5681ba.js → post-accordion-3ac8dca8.js} +5 -5
- package/dist/cjs/{post-accordion-item-05a78451.js → post-accordion-item-aace6bc2.js} +5 -5
- package/dist/cjs/post-accordion-item.cjs.entry.js +5 -4
- package/dist/cjs/post-accordion.cjs.entry.js +4 -3
- package/dist/cjs/{post-avatar-6710a77a.js → post-avatar-53abd22f.js} +5 -4
- package/dist/cjs/post-avatar.cjs.entry.js +4 -3
- package/dist/cjs/{post-back-to-top-d0662842.js → post-back-to-top-b231fc1c.js} +9 -9
- package/dist/cjs/post-back-to-top.cjs.entry.js +4 -3
- package/dist/cjs/{post-banner-bd97db9c.js → post-banner-e6d14bf1.js} +4 -8
- package/dist/cjs/post-banner.cjs.entry.js +4 -3
- package/dist/cjs/{post-breadcrumb-36ab841c.js → post-breadcrumb-a929f2a6.js} +30 -22
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +4 -3
- package/dist/cjs/post-breadcrumb.cjs.entry.js +4 -4
- package/dist/cjs/{post-card-control-155fb433.js → post-card-control-cbee7b86.js} +26 -40
- package/dist/cjs/post-card-control.cjs.entry.js +4 -3
- package/dist/cjs/post-closebutton_15.cjs.entry.js +5 -5
- package/dist/cjs/{post-collapsible-trigger-6601c554.js → post-collapsible-trigger-d1cb592a.js} +24 -41
- package/dist/cjs/post-collapsible_2.cjs.entry.js +5 -5
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/{post-footer-23699aef.js → post-footer-4290dafc.js} +11 -11
- package/dist/cjs/post-footer.cjs.entry.js +4 -4
- package/dist/cjs/{post-linkarea-8e5e1a9f.js → post-linkarea-f22f4f92.js} +5 -5
- package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
- package/dist/cjs/{post-menu-item-8dd94792.js → post-menu-item-afabaa61.js} +4 -4
- package/dist/cjs/{post-popover-858cbd12.js → post-popover-a4c72d38.js} +16 -14
- package/dist/cjs/post-popover.cjs.entry.js +5 -4
- package/dist/cjs/{post-rating-ef592484.js → post-rating-b87616fc.js} +4 -14
- package/dist/cjs/post-rating.cjs.entry.js +3 -3
- package/dist/cjs/{post-tab-header-d785e7fc.js → post-tab-header-45cb6bb4.js} +5 -4
- package/dist/cjs/post-tab-header.cjs.entry.js +4 -3
- package/dist/cjs/{post-tab-panel-41ea371e.js → post-tab-panel-00d16ba7.js} +4 -4
- package/dist/cjs/post-tab-panel.cjs.entry.js +3 -3
- package/dist/cjs/{post-tabs-c6f00130.js → post-tabs-2c3a89d0.js} +5 -12
- package/dist/cjs/post-tabs.cjs.entry.js +4 -3
- package/dist/cjs/{post-tag-d1a1176c.js → post-tag-370a2f4d.js} +3 -3
- package/dist/cjs/post-tag.cjs.entry.js +3 -3
- package/dist/cjs/{post-togglebutton-02c56b7b.js → post-togglebutton-2c9552e3.js} +935 -460
- package/dist/cjs/{post-tooltip-3176e280.js → post-tooltip-4d4d2ea9.js} +39 -296
- package/dist/cjs/post-tooltip.cjs.entry.js +5 -4
- package/dist/collection/animations/collapse.js +3 -1
- package/dist/collection/components/post-accordion/post-accordion.js +1 -3
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +0 -2
- package/dist/collection/components/post-avatar/post-avatar.js +3 -4
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +6 -8
- package/dist/collection/components/post-banner/post-banner.js +0 -6
- package/dist/collection/components/post-breadcrumb/post-breadcrumb.js +16 -19
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +0 -2
- package/dist/collection/components/post-card-control/post-card-control.js +24 -40
- package/dist/collection/components/post-closebutton/post-closebutton.css +1 -0
- package/dist/collection/components/post-closebutton/post-closebutton.js +12 -2
- package/dist/collection/components/post-collapsible/post-collapsible.js +4 -10
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +15 -28
- package/dist/collection/components/post-footer/post-footer.js +8 -9
- package/dist/collection/components/post-header/post-header.css +1 -1
- package/dist/collection/components/post-header/post-header.js +13 -22
- package/dist/collection/components/post-icon/post-icon.js +4 -6
- package/dist/collection/components/post-language-option/post-language-option.js +1 -10
- package/dist/collection/components/post-language-switch/post-language-switch.js +7 -19
- package/dist/collection/components/post-linkarea/post-linkarea.css +1 -1
- package/dist/collection/components/post-linkarea/post-linkarea.js +2 -2
- package/dist/collection/components/post-list/post-list.js +1 -3
- package/dist/collection/components/post-list-item/post-list-item.js +1 -2
- package/dist/collection/components/post-logo/post-logo.js +1 -2
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +98 -182
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +20 -30
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +36 -37
- package/dist/collection/components/post-menu/post-menu.js +45 -53
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +13 -15
- package/dist/collection/components/post-popover/post-popover.js +12 -12
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +30 -33
- package/dist/collection/components/post-rating/post-rating.js +1 -12
- package/dist/collection/components/post-tab-header/post-tab-header.js +2 -3
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +2 -3
- package/dist/collection/components/post-tabs/post-tabs.js +1 -10
- package/dist/collection/components/post-tag/post-tag.js +0 -1
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +10 -11
- package/dist/collection/components/post-tooltip/post-tooltip.js +36 -32
- package/dist/collection/utils/attribute-observer.js +2 -1
- package/dist/collection/utils/breakpoints.js +9 -7
- package/dist/collection/utils/environment.js +2 -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/components/attribute-observer.js +3 -1
- package/dist/components/breakpoints.js +12 -8
- package/dist/components/get-root.js +7 -1
- package/dist/components/long-press-event.js +264 -0
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +3 -3
- package/dist/components/post-accordion2.js +3 -3
- package/dist/components/post-avatar2.js +4 -3
- package/dist/components/post-back-to-top2.js +8 -8
- package/dist/components/post-banner2.js +2 -6
- package/dist/components/post-breadcrumb-item2.js +2 -2
- package/dist/components/post-breadcrumb2.js +28 -20
- package/dist/components/post-card-control2.js +25 -39
- package/dist/components/post-closebutton2.js +8 -3
- package/dist/components/post-collapsible-trigger2.js +19 -31
- package/dist/components/post-collapsible2.js +9 -12
- package/dist/components/post-footer2.js +8 -8
- package/dist/components/post-header2.js +15 -23
- package/dist/components/post-icon2.js +5 -5
- package/dist/components/post-language-option2.js +3 -10
- package/dist/components/post-language-switch2.js +9 -18
- package/dist/components/post-linkarea2.js +5 -4
- package/dist/components/post-list-item2.js +2 -2
- package/dist/components/post-list2.js +2 -3
- package/dist/components/post-logo2.js +3 -2
- package/dist/components/post-mainnavigation2.js +94 -182
- package/dist/components/post-megadropdown-trigger2.js +38 -37
- package/dist/components/post-megadropdown2.js +21 -30
- package/dist/components/post-menu-trigger2.js +15 -15
- package/dist/components/post-menu2.js +48 -54
- package/dist/components/post-popover2.js +14 -12
- package/dist/components/post-popovercontainer2.js +638 -36
- package/dist/components/post-rating2.js +2 -12
- package/dist/components/post-tab-header2.js +4 -3
- package/dist/components/post-tab-panel2.js +3 -3
- package/dist/components/post-tabs2.js +3 -10
- package/dist/components/post-tag2.js +1 -1
- package/dist/components/post-togglebutton2.js +12 -11
- package/dist/components/post-tooltip2.js +37 -294
- package/dist/docs.json +21 -15
- package/dist/esm/{attribute-observer-2f203993.js → attribute-observer-009deee5.js} +3 -1
- package/dist/esm/{breakpoints-bbe0c54e.js → breakpoints-7812702e.js} +12 -8
- package/dist/esm/get-root-1b1af46f.js +15 -0
- package/dist/esm/{index-3419e46d.js → index-f4d19816.js} +2 -2
- package/dist/esm/index.js +24 -25
- package/dist/esm/loader.js +3 -3
- package/dist/esm/long-press-event-04d24397.js +264 -0
- package/dist/esm/package-8986a24c.js +3 -0
- package/dist/esm/{post-accordion-024451fa.js → post-accordion-577b52a0.js} +5 -5
- package/dist/esm/{post-accordion-item-19b996d1.js → post-accordion-item-99053b41.js} +5 -5
- package/dist/esm/post-accordion-item.entry.js +5 -4
- package/dist/esm/post-accordion.entry.js +4 -3
- package/dist/esm/{post-avatar-33aed045.js → post-avatar-2914706c.js} +5 -4
- package/dist/esm/post-avatar.entry.js +4 -3
- package/dist/esm/{post-back-to-top-7dd43c3b.js → post-back-to-top-4c7b1b47.js} +9 -9
- package/dist/esm/post-back-to-top.entry.js +4 -3
- package/dist/esm/{post-banner-28d18721.js → post-banner-295fd0f5.js} +4 -8
- package/dist/esm/post-banner.entry.js +4 -3
- package/dist/esm/{post-breadcrumb-d86fae7b.js → post-breadcrumb-1abfb312.js} +30 -22
- package/dist/esm/post-breadcrumb-item_2.entry.js +4 -3
- package/dist/esm/post-breadcrumb.entry.js +4 -4
- package/dist/esm/{post-card-control-aa043898.js → post-card-control-ad72d4f8.js} +26 -40
- package/dist/esm/post-card-control.entry.js +4 -3
- package/dist/esm/post-closebutton_15.entry.js +5 -5
- package/dist/esm/{post-collapsible-trigger-b1612866.js → post-collapsible-trigger-6b4ece20.js} +24 -41
- package/dist/esm/post-collapsible_2.entry.js +5 -5
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/{post-footer-2ed5e520.js → post-footer-a5105e66.js} +11 -11
- package/dist/esm/post-footer.entry.js +4 -4
- package/dist/esm/{post-linkarea-802bf774.js → post-linkarea-22f97a88.js} +5 -5
- package/dist/esm/post-linkarea.entry.js +3 -3
- package/dist/esm/{post-menu-item-d97611d8.js → post-menu-item-9465a1f3.js} +4 -4
- package/dist/esm/{post-popover-e51a7a18.js → post-popover-e9b4569c.js} +16 -14
- package/dist/esm/post-popover.entry.js +5 -4
- package/dist/esm/{post-rating-e1ac47ce.js → post-rating-ae16e3c9.js} +4 -14
- package/dist/esm/post-rating.entry.js +3 -3
- package/dist/esm/{post-tab-header-06dcbf7f.js → post-tab-header-11f23150.js} +5 -4
- package/dist/esm/post-tab-header.entry.js +4 -3
- package/dist/esm/{post-tab-panel-75932601.js → post-tab-panel-0f3a952e.js} +4 -4
- package/dist/esm/post-tab-panel.entry.js +3 -3
- package/dist/esm/{post-tabs-3ef2ea23.js → post-tabs-1192509c.js} +5 -12
- package/dist/esm/post-tabs.entry.js +4 -3
- package/dist/esm/{post-tag-a3b989e0.js → post-tag-8be0a71c.js} +3 -3
- package/dist/esm/post-tag.entry.js +3 -3
- package/dist/esm/{post-togglebutton-db251030.js → post-togglebutton-b634fc7c.js} +935 -460
- package/dist/esm/{post-tooltip-c256d714.js → post-tooltip-f64bd0cc.js} +39 -296
- package/dist/esm/post-tooltip.entry.js +5 -4
- package/dist/post-components/index.esm.js +1 -1
- package/dist/post-components/p-0f398677.js +1 -0
- package/dist/post-components/p-1038fc25.js +1 -0
- package/dist/post-components/p-30f94eca.entry.js +1 -0
- package/dist/post-components/p-31bb6dc5.entry.js +1 -0
- package/dist/post-components/p-32173742.js +1 -0
- package/dist/post-components/p-338a2507.js +1 -0
- package/dist/post-components/p-36540dd6.entry.js +1 -0
- package/dist/post-components/p-3aa766a6.js +1 -0
- package/dist/post-components/p-3b0158b3.js +1 -0
- package/dist/post-components/p-40db8cd5.js +1 -0
- package/dist/post-components/p-44f13ce4.entry.js +1 -0
- package/dist/post-components/p-46a9324f.entry.js +1 -0
- package/dist/post-components/p-49c5aa99.js +1 -0
- package/dist/post-components/p-4cd4a936.entry.js +1 -0
- package/dist/post-components/p-548ef2f5.entry.js +1 -0
- package/dist/post-components/p-58f453dd.js +1 -0
- package/dist/post-components/p-5f54b77f.js +1 -0
- package/dist/post-components/p-60bb7f26.js +1 -0
- package/dist/post-components/p-60bfa4be.entry.js +1 -0
- package/dist/post-components/p-6b31a76a.js +1 -0
- package/dist/post-components/p-6ee81c5d.js +1 -0
- package/dist/post-components/p-6faad212.entry.js +1 -0
- package/dist/post-components/p-722ffaae.js +1 -0
- package/dist/post-components/p-74a0b44c.entry.js +1 -0
- package/dist/post-components/{p-dbe31632.js → p-78b4c699.js} +1 -1
- package/dist/post-components/p-7aa0468b.entry.js +1 -0
- package/dist/post-components/p-7afc495e.entry.js +1 -0
- package/dist/post-components/p-8db32dab.js +8 -0
- package/dist/post-components/p-96034ba4.entry.js +1 -0
- package/dist/post-components/p-9aaf9f54.js +1 -0
- package/dist/post-components/{p-5c758f41.js → p-9e461613.js} +1 -1
- package/dist/post-components/p-ab4073be.js +1 -0
- package/dist/post-components/p-abd7eb91.js +8 -0
- package/dist/post-components/p-afb8a487.entry.js +1 -0
- package/dist/post-components/p-b003b381.js +1 -0
- package/dist/post-components/p-b97dea1e.entry.js +1 -0
- package/dist/post-components/p-be37cf2a.js +1 -0
- package/dist/post-components/p-c31b56ed.js +1 -0
- package/dist/post-components/p-ccbb51fe.js +1 -0
- package/dist/post-components/p-d3900385.entry.js +1 -0
- package/dist/post-components/p-ef49153c.entry.js +1 -0
- package/dist/post-components/p-f27e5691.js +1 -0
- package/dist/post-components/p-f553019f.entry.js +1 -0
- package/dist/post-components/p-ffc1db17.entry.js +1 -0
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/components/post-avatar/post-avatar.d.ts +1 -1
- package/dist/types/components/post-card-control/post-card-control.d.ts +1 -1
- package/dist/types/components/post-collapsible-trigger/post-collapsible-trigger.d.ts +4 -14
- package/dist/types/components/post-footer/post-footer.d.ts +2 -2
- package/dist/types/components/post-header/post-header.d.ts +1 -0
- package/dist/types/components/post-icon/post-icon.d.ts +0 -1
- package/dist/types/components/post-language-switch/post-language-switch.d.ts +2 -5
- package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +14 -39
- package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +1 -1
- package/dist/types/components/post-popover/post-popover.d.ts +3 -1
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +1 -1
- package/dist/types/components/post-tooltip/post-tooltip.d.ts +6 -1
- package/dist/types/components.d.ts +4 -4
- package/dist/types/popover-fn.d.ts +11 -0
- package/dist/types/utils/environment.d.ts +2 -0
- package/dist/types/utils/get-root.d.ts +4 -0
- package/dist/types/utils/index.d.ts +5 -0
- package/loaders/attribute-observer.js +3 -1
- package/loaders/breakpoints.js +12 -8
- package/loaders/get-root.js +7 -1
- package/loaders/index.js +3 -3
- package/loaders/long-press-event.js +264 -0
- package/loaders/package.js +1 -1
- package/loaders/post-accordion-item2.js +3 -3
- package/loaders/post-accordion.js +3 -3
- package/loaders/post-avatar.js +4 -3
- package/loaders/post-back-to-top.js +8 -8
- package/loaders/post-banner.js +2 -6
- package/loaders/post-breadcrumb-item2.js +2 -2
- package/loaders/post-breadcrumb.js +28 -20
- package/loaders/post-card-control.js +25 -39
- package/loaders/post-closebutton.js +8 -3
- package/loaders/post-collapsible-trigger2.js +19 -31
- package/loaders/post-collapsible2.js +9 -12
- package/loaders/post-footer.js +8 -8
- package/loaders/post-header.js +15 -23
- package/loaders/post-icon2.js +5 -5
- package/loaders/post-language-option.js +3 -10
- package/loaders/post-language-switch.js +9 -18
- package/loaders/post-linkarea.js +5 -4
- package/loaders/post-list-item.js +2 -2
- package/loaders/post-list.js +2 -3
- package/loaders/post-logo.js +3 -2
- package/loaders/post-mainnavigation.js +94 -182
- package/loaders/post-megadropdown-trigger.js +38 -37
- package/loaders/post-megadropdown.js +21 -30
- package/loaders/post-menu-trigger2.js +15 -15
- package/loaders/post-menu2.js +48 -54
- package/loaders/post-popover.js +14 -12
- package/loaders/post-popovercontainer2.js +638 -36
- package/loaders/post-rating.js +2 -12
- package/loaders/post-tab-header.js +4 -3
- package/loaders/post-tab-panel.js +3 -3
- package/loaders/post-tabs.js +3 -10
- package/loaders/post-tag.js +1 -1
- package/loaders/post-togglebutton.js +12 -11
- package/loaders/post-tooltip.js +37 -294
- package/package.json +5 -5
- package/dist/cjs/debounce-158fd76f.js +0 -13
- package/dist/cjs/get-root-7a3498ef.js +0 -11
- package/dist/components/debounce.js +0 -11
- package/dist/esm/debounce-e54c7131.js +0 -11
- package/dist/esm/get-root-7af2e0d1.js +0 -9
- package/dist/esm/package-da68ab5a.js +0 -3
- package/dist/post-components/p-1376c653.js +0 -1
- package/dist/post-components/p-13835969.js +0 -1
- package/dist/post-components/p-13fdbaf6.entry.js +0 -1
- package/dist/post-components/p-1e2169ae.entry.js +0 -1
- package/dist/post-components/p-23e4c270.entry.js +0 -1
- package/dist/post-components/p-2641e06b.js +0 -1
- package/dist/post-components/p-2d3b16c7.js +0 -1
- package/dist/post-components/p-33c35e15.js +0 -1
- package/dist/post-components/p-3b247d71.entry.js +0 -1
- package/dist/post-components/p-42a5fdf8.js +0 -1
- package/dist/post-components/p-4ed7bab6.js +0 -1
- package/dist/post-components/p-5aeb3656.js +0 -1
- package/dist/post-components/p-5c518421.js +0 -1
- package/dist/post-components/p-6db1a2e0.entry.js +0 -1
- package/dist/post-components/p-6fe98184.entry.js +0 -1
- package/dist/post-components/p-7d731077.entry.js +0 -1
- package/dist/post-components/p-7ee47334.entry.js +0 -1
- package/dist/post-components/p-8223e97b.js +0 -1
- package/dist/post-components/p-8a8376d0.js +0 -1
- package/dist/post-components/p-8bb828cf.entry.js +0 -1
- package/dist/post-components/p-8e55ddd2.js +0 -1
- package/dist/post-components/p-9681efce.js +0 -1
- package/dist/post-components/p-96a59372.entry.js +0 -1
- package/dist/post-components/p-9748a355.js +0 -1
- package/dist/post-components/p-99c8fd43.entry.js +0 -1
- package/dist/post-components/p-ac042f7a.entry.js +0 -1
- package/dist/post-components/p-c34cacb7.js +0 -1
- package/dist/post-components/p-c3a970c5.js +0 -1
- package/dist/post-components/p-c4651d32.entry.js +0 -1
- package/dist/post-components/p-c9b61d31.entry.js +0 -1
- package/dist/post-components/p-d16dd7f9.js +0 -1
- package/dist/post-components/p-d81c5908.entry.js +0 -1
- package/dist/post-components/p-e1baac59.js +0 -1
- package/dist/post-components/p-e2294014.js +0 -15
- package/dist/post-components/p-e8ff8122.js +0 -1
- package/dist/post-components/p-ed78d04a.entry.js +0 -1
- package/dist/post-components/p-f1c0924a.js +0 -1
- package/dist/post-components/p-f1db96d0.entry.js +0 -1
- package/dist/post-components/p-f7aa917f.entry.js +0 -1
- package/dist/post-components/p-f96b80cc.entry.js +0 -1
- package/dist/post-components/p-fc91cbc2.js +0 -1
- package/dist/post-components/p-fd78716d.js +0 -1
- package/loaders/debounce.js +0 -11
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { v as version } from './package.js';
|
|
3
3
|
import { c as checkType } from './check-type.js';
|
|
4
|
+
import './breakpoints.js';
|
|
4
5
|
import { e as eventGuard } from './event-guard.js';
|
|
5
6
|
|
|
6
7
|
const postMegadropdownTriggerCss = "post-megadropdown-trigger{width:100%;position:relative;z-index:3}";
|
|
@@ -10,20 +11,45 @@ const PostMegadropdownTrigger = /*@__PURE__*/ proxyCustomElement(class PostMegad
|
|
|
10
11
|
constructor() {
|
|
11
12
|
super();
|
|
12
13
|
this.__registerHost();
|
|
14
|
+
/**
|
|
15
|
+
* Reference to the slotted button within the trigger, if present.
|
|
16
|
+
* Used to manage click and key events for mega dropdown control.
|
|
17
|
+
*/
|
|
18
|
+
this.slottedButton = null;
|
|
19
|
+
/**
|
|
20
|
+
* Tracks whether this trigger's dropdown was expanded before a state change.
|
|
21
|
+
* Used to determine if this trigger should handle focus when its dropdown closes.
|
|
22
|
+
*/
|
|
23
|
+
this.wasExpanded = false;
|
|
24
|
+
this.handleKeyDown = (event) => {
|
|
25
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
this.handleToggle();
|
|
28
|
+
if (this.megadropdown && !this.ariaExpanded) {
|
|
29
|
+
setTimeout(() => this.megadropdown.focusFirst(), 100);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
this.handleToggleMegadropdown = (event) => {
|
|
34
|
+
eventGuard(this.host, event, { targetLocalName: 'post-megadropdown' }, () => {
|
|
35
|
+
if (event.target.id === this.for) {
|
|
36
|
+
this.ariaExpanded = event.detail.isVisible;
|
|
37
|
+
// Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
|
|
38
|
+
if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
this.slottedButton?.focus();
|
|
41
|
+
}, 100);
|
|
42
|
+
}
|
|
43
|
+
this.wasExpanded = this.ariaExpanded;
|
|
44
|
+
if (this.slottedButton) {
|
|
45
|
+
this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
};
|
|
13
50
|
this.for = undefined;
|
|
14
51
|
this.ariaExpanded = false;
|
|
15
52
|
}
|
|
16
|
-
get host() { return this; }
|
|
17
|
-
/**
|
|
18
|
-
* Reference to the slotted button within the trigger, if present.
|
|
19
|
-
* Used to manage click and key events for mega dropdown control.
|
|
20
|
-
*/
|
|
21
|
-
slottedButton = null;
|
|
22
|
-
/**
|
|
23
|
-
* Tracks whether this trigger's dropdown was expanded before a state change.
|
|
24
|
-
* Used to determine if this trigger should handle focus when its dropdown closes.
|
|
25
|
-
*/
|
|
26
|
-
wasExpanded = false;
|
|
27
53
|
/**
|
|
28
54
|
* Watch for changes to the `for` property to validate its type and ensure it is a string.
|
|
29
55
|
* @param forValue - The new value of the `for` property.
|
|
@@ -45,32 +71,6 @@ const PostMegadropdownTrigger = /*@__PURE__*/ proxyCustomElement(class PostMegad
|
|
|
45
71
|
console.warn(`No post-megadropdown found with ID: ${this.for}`);
|
|
46
72
|
}
|
|
47
73
|
}
|
|
48
|
-
handleKeyDown = (event) => {
|
|
49
|
-
if (event.key === 'Enter' || event.key === ' ') {
|
|
50
|
-
event.preventDefault();
|
|
51
|
-
this.handleToggle();
|
|
52
|
-
if (this.megadropdown && !this.ariaExpanded) {
|
|
53
|
-
setTimeout(() => this.megadropdown.focusFirst(), 100);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
handleToggleMegadropdown = (event) => {
|
|
58
|
-
eventGuard(this.host, event, { targetLocalName: 'post-megadropdown' }, () => {
|
|
59
|
-
if (event.target.id === this.for) {
|
|
60
|
-
this.ariaExpanded = event.detail.isVisible;
|
|
61
|
-
// Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
|
|
62
|
-
if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
|
|
63
|
-
setTimeout(() => {
|
|
64
|
-
this.slottedButton?.focus();
|
|
65
|
-
}, 100);
|
|
66
|
-
}
|
|
67
|
-
this.wasExpanded = this.ariaExpanded;
|
|
68
|
-
if (this.slottedButton) {
|
|
69
|
-
this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
74
|
componentDidLoad() {
|
|
75
75
|
this.validateControlFor();
|
|
76
76
|
// Check if the mega dropdown attached to the trigger is expanded or not
|
|
@@ -93,6 +93,7 @@ const PostMegadropdownTrigger = /*@__PURE__*/ proxyCustomElement(class PostMegad
|
|
|
93
93
|
render() {
|
|
94
94
|
return (h(Host, { key: '86b85efede8d9b19f3f0560f500f33f5e172177f', "data-version": version, "tab-index": "-1" }, h("button", { key: '0f810e4c38bc4abf23ac60ab27b36d408e7ced0d' }, h("slot", { key: '2a522ac7e15ef8ac077b73cdebf629b89ea173c6' }))));
|
|
95
95
|
}
|
|
96
|
+
get host() { return this; }
|
|
96
97
|
static get watchers() { return {
|
|
97
98
|
"for": ["validateControlFor"]
|
|
98
99
|
}; }
|
|
@@ -11,28 +11,34 @@ const PostMegadropdown = /*@__PURE__*/ proxyCustomElement(class PostMegadropdown
|
|
|
11
11
|
super();
|
|
12
12
|
this.__registerHost();
|
|
13
13
|
this.postToggleMegadropdown = createEvent(this, "postToggleMegadropdown", 7);
|
|
14
|
+
this.handleClickOutside = (event) => {
|
|
15
|
+
if (this.device !== 'desktop')
|
|
16
|
+
return;
|
|
17
|
+
const target = event.target;
|
|
18
|
+
if (this.host.contains(target)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (target instanceof HTMLElement) {
|
|
22
|
+
const trigger = target.closest('post-megadropdown-trigger');
|
|
23
|
+
if (trigger) {
|
|
24
|
+
const targetDropdownId = trigger.getAttribute('for');
|
|
25
|
+
if (targetDropdownId !== this.host.id) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
this.hide(false);
|
|
31
|
+
};
|
|
14
32
|
this.device = breakpoint.get('name');
|
|
15
33
|
this.isVisible = false;
|
|
16
34
|
this.animationClass = null;
|
|
17
35
|
}
|
|
18
|
-
firstFocusableEl;
|
|
19
|
-
lastFocusableEl;
|
|
20
|
-
get host() { return this; }
|
|
21
|
-
/** Tracks the currently active dropdown instance. */
|
|
22
|
-
static activeDropdown = null;
|
|
23
36
|
breakpointChange(e) {
|
|
24
37
|
this.device = e.detail;
|
|
25
38
|
if (this.device === 'desktop' && this.isVisible) {
|
|
26
39
|
this.animationClass = null;
|
|
27
40
|
}
|
|
28
41
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Emits when the dropdown is shown or hidden.
|
|
31
|
-
* The event payload is an object.
|
|
32
|
-
* `isVisible` is true when the dropdown gets opened and false when it gets closed
|
|
33
|
-
* `focusParent` determines whether after the closing of the mega dropdown, the focus should go back to the trigger parent or naturally go to the next focusable element in the page
|
|
34
|
-
**/
|
|
35
|
-
postToggleMegadropdown;
|
|
36
42
|
disconnectedCallback() {
|
|
37
43
|
this.removeListeners();
|
|
38
44
|
window.removeEventListener('postBreakpoint:name', this.breakpointChange.bind(this));
|
|
@@ -112,24 +118,6 @@ const PostMegadropdown = /*@__PURE__*/ proxyCustomElement(class PostMegadropdown
|
|
|
112
118
|
this.removeListeners();
|
|
113
119
|
}
|
|
114
120
|
}
|
|
115
|
-
handleClickOutside = (event) => {
|
|
116
|
-
if (this.device !== 'desktop')
|
|
117
|
-
return;
|
|
118
|
-
const target = event.target;
|
|
119
|
-
if (this.host.contains(target)) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (target instanceof HTMLElement) {
|
|
123
|
-
const trigger = target.closest('post-megadropdown-trigger');
|
|
124
|
-
if (trigger) {
|
|
125
|
-
const targetDropdownId = trigger.getAttribute('for');
|
|
126
|
-
if (targetDropdownId !== this.host.id) {
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
this.hide(false);
|
|
132
|
-
};
|
|
133
121
|
addListeners() {
|
|
134
122
|
this.host.addEventListener('keydown', e => this.keyboardHandler(e));
|
|
135
123
|
document.addEventListener('keyup', e => this.handleTabOutside(e));
|
|
@@ -172,6 +160,7 @@ const PostMegadropdown = /*@__PURE__*/ proxyCustomElement(class PostMegadropdown
|
|
|
172
160
|
const containerStyle = this.isVisible ? {} : { display: 'none' };
|
|
173
161
|
return (h(Host, { key: '7426a12ebaeac0ce3b8402c3da4d5393daca059b', version: version }, h("div", { key: 'd47b60c334577f5662f19912f12ce941b4b52d94', class: `megadropdown-container ${this.animationClass || ''}`, style: containerStyle, onAnimationEnd: () => this.handleAnimationEnd() }, h("div", { key: '2798f217b2b3e43c3c63072884bbbbe7d99ed62f', class: "megadropdown" }, h("slot", { key: 'b61f82bbc7f87f65d9b6957e7a4e5d6790b6dd00', name: "megadropdown-title" }), h("div", { key: 'f4996a819511cb59185faeedbdcec4be6e6f8a24', class: "megadropdown-content" }, h("slot", { key: '54f695c3b3d30a6a1aae7f7dc6f65f4d4d27de68' })), h("div", { key: 'b1334295c7d758e20c85b6c6c8cefc31dcf09e20', onClick: () => this.hide(true), class: "back-button" }, h("slot", { key: 'c4db69fa3207ce4cb47b725e37b1993820a2a64c', name: "back-button" })), h("div", { key: '68b22a3222382586fc749dec63e36edae84360c1', onClick: () => this.hide(true), class: "close-button" }, h("slot", { key: '8023b75c931a95dbd9552c1a713790e77e40f526', name: "close-button" }))))));
|
|
174
162
|
}
|
|
163
|
+
get host() { return this; }
|
|
175
164
|
static get style() { return PostMegadropdownStyle0; }
|
|
176
165
|
}, [4, "post-megadropdown", {
|
|
177
166
|
"device": [32],
|
|
@@ -182,6 +171,8 @@ const PostMegadropdown = /*@__PURE__*/ proxyCustomElement(class PostMegadropdown
|
|
|
182
171
|
"hide": [64],
|
|
183
172
|
"focusFirst": [64]
|
|
184
173
|
}]);
|
|
174
|
+
/** Tracks the currently active dropdown instance. */
|
|
175
|
+
PostMegadropdown.activeDropdown = null;
|
|
185
176
|
function defineCustomElement() {
|
|
186
177
|
if (typeof customElements === "undefined") {
|
|
187
178
|
return;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { v as version } from './package.js';
|
|
3
3
|
import { c as checkType } from './check-type.js';
|
|
4
|
+
import './breakpoints.js';
|
|
4
5
|
import { g as getRoot } from './get-root.js';
|
|
5
6
|
|
|
6
7
|
const postMenuTriggerCss = ":host{display:inline-block}";
|
|
@@ -10,16 +11,20 @@ const PostMenuTrigger = /*@__PURE__*/ proxyCustomElement(class PostMenuTrigger e
|
|
|
10
11
|
constructor() {
|
|
11
12
|
super();
|
|
12
13
|
this.__registerHost();
|
|
14
|
+
/**
|
|
15
|
+
* Reference to the slotted button within the trigger, if present.
|
|
16
|
+
* Used to manage click and key events for menu control.
|
|
17
|
+
*/
|
|
18
|
+
this.slottedButton = null;
|
|
19
|
+
this.handleKeyDown = (e) => {
|
|
20
|
+
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
|
21
|
+
e.preventDefault();
|
|
22
|
+
this.handleToggle();
|
|
23
|
+
}
|
|
24
|
+
};
|
|
13
25
|
this.for = undefined;
|
|
14
26
|
this.ariaExpanded = false;
|
|
15
27
|
}
|
|
16
|
-
get host() { return this; }
|
|
17
|
-
/**
|
|
18
|
-
* Reference to the slotted button within the trigger, if present.
|
|
19
|
-
* Used to manage click and key events for menu control.
|
|
20
|
-
*/
|
|
21
|
-
slottedButton = null;
|
|
22
|
-
root;
|
|
23
28
|
/**
|
|
24
29
|
* Watch for changes to the `for` property to validate its type and ensure it is a string.
|
|
25
30
|
* @param forValue - The new value of the `for` property.
|
|
@@ -39,12 +44,6 @@ const PostMenuTrigger = /*@__PURE__*/ proxyCustomElement(class PostMenuTrigger e
|
|
|
39
44
|
console.warn(`No post-menu found with ID: ${this.for}`);
|
|
40
45
|
}
|
|
41
46
|
}
|
|
42
|
-
handleKeyDown = (e) => {
|
|
43
|
-
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
|
44
|
-
e.preventDefault();
|
|
45
|
-
this.handleToggle();
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
47
|
connectedCallback() {
|
|
49
48
|
this.root = getRoot(this.host);
|
|
50
49
|
}
|
|
@@ -80,14 +79,15 @@ const PostMenuTrigger = /*@__PURE__*/ proxyCustomElement(class PostMenuTrigger e
|
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
81
|
render() {
|
|
83
|
-
return (h(Host, { key: '
|
|
82
|
+
return (h(Host, { key: '1b9589febc2976d17eed3363d91b4321473b7b5e', "data-version": version, "tab-index": "-1" }, h("slot", { key: 'bec55f97274084ab4721dc085dc9e1c3a216c0a3' })));
|
|
84
83
|
}
|
|
84
|
+
get host() { return this; }
|
|
85
85
|
static get watchers() { return {
|
|
86
86
|
"for": ["validateControlFor"]
|
|
87
87
|
}; }
|
|
88
88
|
static get style() { return PostMenuTriggerStyle0; }
|
|
89
89
|
}, [4, "post-menu-trigger", {
|
|
90
|
-
"for": [
|
|
90
|
+
"for": [513],
|
|
91
91
|
"ariaExpanded": [32]
|
|
92
92
|
}, undefined, {
|
|
93
93
|
"for": ["validateControlFor"]
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { v as version } from './package.js';
|
|
3
3
|
import { g as getFocusableChildren } from './get-focusable-children.js';
|
|
4
|
-
import
|
|
4
|
+
import './breakpoints.js';
|
|
5
5
|
import { e as eventGuard } from './event-guard.js';
|
|
6
|
+
import { g as getRoot } from './get-root.js';
|
|
6
7
|
import { d as defineCustomElement$1 } from './post-popovercontainer2.js';
|
|
7
8
|
|
|
8
9
|
const postMenuCss = "/*!\n * Copyright 2021 by Swiss Post, Information Technology\n */:host{display:block}post-popovercontainer{padding:var(--post-menu-padding);background-color:var(--post-menu-bg, #ffffff);border-color:var(--post-menu-bg, #ffffff)}.popover-container{display:flex;flex-direction:column}";
|
|
@@ -14,28 +15,54 @@ const PostMenu = /*@__PURE__*/ proxyCustomElement(class PostMenu extends HTMLEle
|
|
|
14
15
|
this.__registerHost();
|
|
15
16
|
this.__attachShadow();
|
|
16
17
|
this.toggleMenu = createEvent(this, "toggleMenu", 7);
|
|
18
|
+
this.lastFocusedElement = null;
|
|
19
|
+
this.KEYCODES = {
|
|
20
|
+
SPACE: ' ',
|
|
21
|
+
ENTER: 'Enter',
|
|
22
|
+
UP: 'ArrowUp',
|
|
23
|
+
DOWN: 'ArrowDown',
|
|
24
|
+
TAB: 'Tab',
|
|
25
|
+
HOME: 'Home',
|
|
26
|
+
END: 'End',
|
|
27
|
+
ESCAPE: 'Escape',
|
|
28
|
+
};
|
|
29
|
+
this.handleKeyDown = (e) => {
|
|
30
|
+
e.stopPropagation();
|
|
31
|
+
if (e.key === this.KEYCODES.ESCAPE) {
|
|
32
|
+
this.toggle(this.host);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (Object.values(this.KEYCODES).includes(e.key)) {
|
|
36
|
+
this.controlKeyDownHandler(e);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
this.handlePostToggle = (event) => {
|
|
40
|
+
eventGuard(this.host, event, { targetLocalName: 'post-popovercontainer', delegatorSelector: 'post-menu' }, () => {
|
|
41
|
+
this.isVisible = event.detail;
|
|
42
|
+
this.toggleMenu.emit(this.isVisible);
|
|
43
|
+
requestAnimationFrame(() => {
|
|
44
|
+
if (this.isVisible) {
|
|
45
|
+
this.lastFocusedElement = this.root?.activeElement;
|
|
46
|
+
const menuItems = this.getSlottedItems();
|
|
47
|
+
if (menuItems.length > 0) {
|
|
48
|
+
menuItems[0].focus();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (this.lastFocusedElement) {
|
|
52
|
+
this.lastFocusedElement.focus();
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
this.handleClick = (e) => {
|
|
58
|
+
const target = e.target;
|
|
59
|
+
if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
|
|
60
|
+
this.toggle(this.host);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
17
63
|
this.placement = 'bottom';
|
|
18
64
|
this.isVisible = false;
|
|
19
65
|
}
|
|
20
|
-
popoverRef;
|
|
21
|
-
lastFocusedElement = null;
|
|
22
|
-
KEYCODES = {
|
|
23
|
-
SPACE: ' ',
|
|
24
|
-
ENTER: 'Enter',
|
|
25
|
-
UP: 'ArrowUp',
|
|
26
|
-
DOWN: 'ArrowDown',
|
|
27
|
-
TAB: 'Tab',
|
|
28
|
-
HOME: 'Home',
|
|
29
|
-
END: 'End',
|
|
30
|
-
ESCAPE: 'Escape',
|
|
31
|
-
};
|
|
32
|
-
get host() { return this; }
|
|
33
|
-
/**
|
|
34
|
-
* Emits when the menu is shown or hidden.
|
|
35
|
-
* The event payload is a boolean: `true` when the menu was opened, `false` when it was closed.
|
|
36
|
-
**/
|
|
37
|
-
toggleMenu;
|
|
38
|
-
root;
|
|
39
66
|
connectedCallback() {
|
|
40
67
|
this.root = getRoot(this.host);
|
|
41
68
|
this.host.addEventListener('keydown', this.handleKeyDown);
|
|
@@ -86,40 +113,6 @@ const PostMenu = /*@__PURE__*/ proxyCustomElement(class PostMenu extends HTMLEle
|
|
|
86
113
|
console.error('hide: popoverRef is null or undefined');
|
|
87
114
|
}
|
|
88
115
|
}
|
|
89
|
-
handleKeyDown = (e) => {
|
|
90
|
-
e.stopPropagation();
|
|
91
|
-
if (e.key === this.KEYCODES.ESCAPE) {
|
|
92
|
-
this.toggle(this.host);
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
if (Object.values(this.KEYCODES).includes(e.key)) {
|
|
96
|
-
this.controlKeyDownHandler(e);
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
handlePostToggle = (event) => {
|
|
100
|
-
eventGuard(this.host, event, { targetLocalName: 'post-popovercontainer', delegatorSelector: 'post-menu' }, () => {
|
|
101
|
-
this.isVisible = event.detail;
|
|
102
|
-
this.toggleMenu.emit(this.isVisible);
|
|
103
|
-
requestAnimationFrame(() => {
|
|
104
|
-
if (this.isVisible) {
|
|
105
|
-
this.lastFocusedElement = this.root?.activeElement;
|
|
106
|
-
const menuItems = this.getSlottedItems();
|
|
107
|
-
if (menuItems.length > 0) {
|
|
108
|
-
menuItems[0].focus();
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
else if (this.lastFocusedElement) {
|
|
112
|
-
this.lastFocusedElement.focus();
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
handleClick = (e) => {
|
|
118
|
-
const target = e.target;
|
|
119
|
-
if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
|
|
120
|
-
this.toggle(this.host);
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
116
|
controlKeyDownHandler(e) {
|
|
124
117
|
const menuItems = this.getSlottedItems();
|
|
125
118
|
if (!menuItems.length) {
|
|
@@ -168,6 +161,7 @@ const PostMenu = /*@__PURE__*/ proxyCustomElement(class PostMenu extends HTMLEle
|
|
|
168
161
|
render() {
|
|
169
162
|
return (h(Host, { key: 'a86276a1fefccbb1f2b50f1ad74dd98ddcbdae5d', "data-version": version, role: "menu" }, h("post-popovercontainer", { key: 'a0b2a35714ba370b7a73d92d1d6c036aa7039aea', placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: '98da2e21f8e4b4e02b4c347bc4f9238edc635b77', class: "popover-container", part: "popover-container" }, h("slot", { key: 'd3060c46482c5f3179827b8996a9a4b24abf49fa' })))));
|
|
170
163
|
}
|
|
164
|
+
get host() { return this; }
|
|
171
165
|
static get style() { return PostMenuStyle0; }
|
|
172
166
|
}, [1, "post-menu", {
|
|
173
167
|
"placement": [1],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
-
import { v as version } from './package.js';
|
|
3
2
|
import { g as getAttributeObserver } from './attribute-observer.js';
|
|
3
|
+
import { I as IS_BROWSER } from './breakpoints.js';
|
|
4
|
+
import { v as version } from './package.js';
|
|
4
5
|
import { d as defineCustomElement$1 } from './post-popovercontainer2.js';
|
|
5
6
|
|
|
6
7
|
const postPopoverCss = "/*!\n * Copyright 2021 by Swiss Post, Information Technology\n */.btn-close{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;border-radius:var(--post-device-border-radius-round);color:#000;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;cursor:pointer}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close{background-color:ButtonFace !important}.btn-close:hover{background-color:Highlight !important}}.btn-close{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.btn-close:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.btn-close:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.btn-close::before{mask-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/svg%3E\");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;content:\"\";display:block;height:var(--post-core-dimension-24);width:var(--post-core-dimension-24)}.btn-close:focus,.btn-close:not(:disabled):hover,.pretend-hover.btn-close{color:#000}.btn-close:disabled{color:#999}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close{color:CanvasText;forced-color-adjust:none}.btn-close:focus,.btn-close:not(:disabled):hover,.pretend-hover.btn-close{color:Highlight}}.btn-close-white{color:#e6e6e6}.btn-close-white:focus,.btn-close-white:not(:disabled):hover,.btn-close-white.pretend-hover{color:#fff}.btn-close-white:disabled{color:#999}*{box-sizing:border-box}:host{display:block}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.popover-container{display:flex;align-items:self-start;padding:.5em;min-width:160px;max-width:min(var(--post-popover-max-width, 280px),100vw)}.popover-content{padding:.5em;flex-grow:1}.btn-close{color:var(--post-scheme-color-surface-default-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close:hover{color:HighlightText !important}}";
|
|
@@ -25,19 +26,15 @@ const globalToggleHandler = (e) => {
|
|
|
25
26
|
const popover = document.getElementById(popoverTarget);
|
|
26
27
|
popover?.toggle(currentElement);
|
|
27
28
|
};
|
|
28
|
-
// Initialize a mutation observer for patching accessibility features
|
|
29
|
-
const triggerObserver = getAttributeObserver(popoverTargetAttribute, trigger => {
|
|
30
|
-
const force = trigger.hasAttribute(popoverTargetAttribute);
|
|
31
|
-
trigger.setAttribute('aria-expanded', force ? 'false' : null);
|
|
32
|
-
});
|
|
33
29
|
const PostPopover = /*@__PURE__*/ proxyCustomElement(class PostPopover extends HTMLElement {
|
|
34
|
-
popoverRef;
|
|
35
|
-
localBeforeToggleHandler;
|
|
36
|
-
get host() { return this; }
|
|
37
30
|
constructor() {
|
|
38
31
|
super();
|
|
39
32
|
this.__registerHost();
|
|
40
33
|
this.__attachShadow();
|
|
34
|
+
// Initialize a mutation observer for patching accessibility features
|
|
35
|
+
this.triggerObserver = IS_BROWSER
|
|
36
|
+
? getAttributeObserver(popoverTargetAttribute, this.patchAccessibilityFeatures)
|
|
37
|
+
: null;
|
|
41
38
|
this.placement = 'top';
|
|
42
39
|
this.closeButtonCaption = undefined;
|
|
43
40
|
this.arrow = true;
|
|
@@ -48,7 +45,7 @@ const PostPopover = /*@__PURE__*/ proxyCustomElement(class PostPopover extends H
|
|
|
48
45
|
if (popoverInstances === 0) {
|
|
49
46
|
window.addEventListener('pointerup', globalToggleHandler);
|
|
50
47
|
window.addEventListener('keydown', globalToggleHandler);
|
|
51
|
-
triggerObserver
|
|
48
|
+
this.triggerObserver?.observe(document.body, {
|
|
52
49
|
subtree: true,
|
|
53
50
|
childList: true,
|
|
54
51
|
attributeFilter: [popoverTargetAttribute],
|
|
@@ -66,7 +63,7 @@ const PostPopover = /*@__PURE__*/ proxyCustomElement(class PostPopover extends H
|
|
|
66
63
|
if (popoverInstances === 0) {
|
|
67
64
|
window.removeEventListener('click', globalToggleHandler);
|
|
68
65
|
window.removeEventListener('keydown', globalToggleHandler);
|
|
69
|
-
triggerObserver
|
|
66
|
+
this.triggerObserver?.disconnect();
|
|
70
67
|
}
|
|
71
68
|
this.popoverRef.removeEventListener('beforetoggle', this.localBeforeToggleHandler);
|
|
72
69
|
this.triggers.forEach(trigger => trigger.removeAttribute('aria-expanded'));
|
|
@@ -102,9 +99,14 @@ const PostPopover = /*@__PURE__*/ proxyCustomElement(class PostPopover extends H
|
|
|
102
99
|
beforeToggleHandler() {
|
|
103
100
|
this.triggers.forEach(trigger => trigger.setAttribute('aria-expanded', 'false'));
|
|
104
101
|
}
|
|
102
|
+
patchAccessibilityFeatures(trigger) {
|
|
103
|
+
const force = trigger.hasAttribute(popoverTargetAttribute);
|
|
104
|
+
trigger.setAttribute('aria-expanded', force ? 'false' : null);
|
|
105
|
+
}
|
|
105
106
|
render() {
|
|
106
|
-
return (h(Host, { key: '
|
|
107
|
+
return (h(Host, { key: '0eee6a532fc25170b70f2424b7238ae31f0efa2e', "data-version": version }, h("post-popovercontainer", { key: '52af51e794bd070a000fbdd5f0c05ee2f0c3ac1c', arrow: this.arrow, placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: '772b5efef90b136a38b69fccfce2d5607d46035a', class: "popover-container" }, h("div", { key: '8bfdf07447daa58f88c788f04fdfab483783ca7e', class: "popover-content" }, h("slot", { key: '7866899dbf93c856253e2448a0ca696499c94c12' })), h("button", { key: '5056fcd7654309c1f9810b8136ce472b6cf7946f', class: "btn-close", onClick: () => this.hide() }, h("span", { key: '9f9c9b8007a6431367197d824ca42cfd7ca91761', class: "visually-hidden" }, this.closeButtonCaption))))));
|
|
107
108
|
}
|
|
109
|
+
get host() { return this; }
|
|
108
110
|
static get style() { return PostPopoverStyle0; }
|
|
109
111
|
}, [1, "post-popover", {
|
|
110
112
|
"placement": [1],
|