@swisspost/design-system-components 10.7.0 → 10.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/{create-validator-decorator-D7nAb9KJ.js → create-validator-decorator-DVm_SDrR.js} +1 -1
- package/dist/cjs/{index-DWIlRT6N.js → index-DY4QxKNv.js} +5 -5
- package/dist/cjs/is-focus-visible-B3CqVQsX.js +19 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{one-of-B8RUgrZk.js → one-of-qu7_EPxf.js} +1 -1
- package/dist/cjs/{package-BtKYhTNj.js → package-kgRYEtTJ.js} +1 -1
- package/dist/cjs/{pattern-B6VoDk_m.js → pattern-EpwCKMyC.js} +1 -1
- package/dist/cjs/post-accordion_2.cjs.entry.js +6 -6
- package/dist/cjs/post-autocomplete.cjs.entry.js +5 -5
- package/dist/cjs/post-avatar.cjs.entry.js +85 -61
- package/dist/cjs/post-back-to-top.cjs.entry.js +6 -6
- package/dist/cjs/post-banner.cjs.entry.js +5 -5
- package/dist/cjs/post-breadcrumb-item.cjs.entry.js +8 -8
- package/dist/cjs/post-breadcrumbs.cjs.entry.js +7 -7
- package/dist/cjs/post-closebutton_14.cjs.entry.js +545 -607
- package/dist/cjs/post-collapsible_2.cjs.entry.js +13 -7
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/post-date-picker.cjs.entry.js +24 -9
- package/dist/cjs/post-footer.cjs.entry.js +6 -6
- package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
- package/dist/cjs/post-listbox-option.cjs.entry.js +4 -4
- package/dist/cjs/post-listbox.cjs.entry.js +4 -4
- package/dist/cjs/post-number-input.cjs.entry.js +5 -5
- package/dist/cjs/post-pagination.cjs.entry.js +6 -6
- package/dist/cjs/post-popover-trigger.cjs.entry.js +5 -5
- package/dist/cjs/post-popover.cjs.entry.js +9 -9
- package/dist/cjs/post-progressbar.cjs.entry.js +4 -4
- package/dist/cjs/post-rating.cjs.entry.js +6 -6
- package/dist/cjs/post-side-navigation-trigger.cjs.entry.js +6 -6
- package/dist/cjs/post-side-navigation.cjs.entry.js +14 -9
- package/dist/cjs/post-stepper-item.cjs.entry.js +3 -3
- package/dist/cjs/post-stepper.cjs.entry.js +7 -7
- package/dist/cjs/post-tab-item.cjs.entry.js +6 -6
- package/dist/cjs/post-tab-panel.cjs.entry.js +6 -6
- package/dist/cjs/post-tabs.cjs.entry.js +37 -9
- package/dist/cjs/post-tooltip-trigger.cjs.entry.js +6 -6
- package/dist/cjs/post-tooltip.cjs.entry.js +8 -6
- package/dist/cjs/{required-bXtlqqaA.js → required-Dgzo-rb5.js} +1 -1
- package/dist/cjs/{type-BqLE7Uui.js → type-DBRxpBZI.js} +1 -1
- package/dist/cjs/{url-CUy3C3sH.js → url-Dl1JABeP.js} +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
- package/dist/collection/components/post-avatar/avatar-utils.js +1 -2
- package/dist/collection/components/post-avatar/post-avatar.js +77 -59
- package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -1
- package/dist/collection/components/post-banner/post-banner.css +1 -1
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -1
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -1
- package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
- package/dist/collection/components/post-collapsible/post-collapsible.js +9 -3
- package/dist/collection/components/post-date-picker/post-date-picker.css +1 -1
- package/dist/collection/components/post-date-picker/post-date-picker.js +18 -3
- package/dist/collection/components/post-footer/post-footer.css +1 -1
- package/dist/collection/components/post-header/post-header.css +1 -1
- package/dist/collection/components/post-header/post-header.js +100 -18
- package/dist/collection/components/post-icon/post-icon.css +1 -1
- package/dist/collection/components/post-icon/post-icon.js +1 -2
- package/dist/collection/components/post-language-menu/post-language-menu.css +1 -1
- package/dist/collection/components/post-language-menu/post-language-menu.js +2 -2
- package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
- package/dist/collection/components/post-listbox/post-listbox.css +1 -1
- package/dist/collection/components/post-listbox/post-listbox.js +1 -1
- package/dist/collection/components/post-listbox-option/post-listbox-option.js +2 -2
- package/dist/collection/components/post-logo/post-logo.css +1 -1
- package/dist/collection/components/post-logo/post-logo.js +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +34 -16
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -1
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +1 -1
- package/dist/collection/components/post-menu/post-menu.css +1 -1
- package/dist/collection/components/post-menu/post-menu.js +3 -14
- package/dist/collection/components/post-menu-item/post-menu-item.css +1 -1
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
- package/dist/collection/components/post-number-input/post-number-input.css +2 -2
- package/dist/collection/components/post-number-input/post-number-input.js +2 -2
- package/dist/collection/components/post-pagination/post-pagination.css +1 -1
- package/dist/collection/components/post-popover/post-popover.css +1 -1
- package/dist/collection/components/post-popover/post-popover.js +2 -2
- package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +211 -323
- package/dist/collection/components/post-progressbar/post-progressbar.js +1 -1
- package/dist/collection/components/post-rating/post-rating.js +1 -1
- package/dist/collection/components/post-side-navigation/post-side-navigation.css +1 -1
- package/dist/collection/components/post-side-navigation/post-side-navigation.js +7 -3
- package/dist/collection/components/post-side-navigation-trigger/post-side-navigation-trigger.js +1 -1
- package/dist/collection/components/post-stepper/post-stepper.js +1 -1
- package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
- package/dist/collection/components/post-tab-item/post-tab-item.js +2 -2
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
- package/dist/collection/components/post-tabs/post-tabs.css +1 -1
- package/dist/collection/components/post-tabs/post-tabs.js +31 -3
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +3 -1
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
- package/dist/collection/test-setup.js +28 -0
- package/dist/collection/utils/floating-ui/middleware/flip.js +77 -0
- package/dist/collection/utils/floating-ui/middleware/safe-space.js +52 -0
- package/dist/collection/utils/floating-ui/util.js +10 -0
- package/dist/collection/utils/index.js +1 -0
- package/dist/collection/utils/is-focus-visible.js +15 -0
- package/dist/components/is-focus-visible.js +1 -0
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +1 -1
- package/dist/components/post-avatar.js +1 -1
- package/dist/components/post-back-to-top.js +1 -1
- package/dist/components/post-banner.js +1 -1
- package/dist/components/post-breadcrumb-item.js +1 -1
- package/dist/components/post-breadcrumbs.js +1 -1
- package/dist/components/post-closebutton2.js +1 -1
- package/dist/components/post-collapsible2.js +1 -1
- package/dist/components/post-date-picker.js +1 -1
- package/dist/components/post-footer.js +1 -1
- package/dist/components/post-header.js +1 -1
- package/dist/components/post-icon2.js +1 -1
- package/dist/components/post-language-menu.js +1 -1
- package/dist/components/post-linkarea.js +1 -1
- package/dist/components/post-listbox-option.js +1 -1
- package/dist/components/post-listbox.js +1 -1
- package/dist/components/post-logo.js +1 -1
- package/dist/components/post-mainnavigation.js +1 -1
- package/dist/components/post-megadropdown-trigger.js +1 -1
- package/dist/components/post-megadropdown.js +1 -1
- package/dist/components/post-menu-item2.js +1 -1
- package/dist/components/post-menu-trigger2.js +1 -1
- package/dist/components/post-menu2.js +1 -1
- package/dist/components/post-number-input.js +1 -1
- package/dist/components/post-pagination.js +1 -1
- package/dist/components/post-popover-trigger.js +1 -1
- package/dist/components/post-popover.js +1 -1
- package/dist/components/post-popovercontainer2.js +1 -1
- package/dist/components/post-progressbar.js +1 -1
- package/dist/components/post-rating.js +1 -1
- package/dist/components/post-side-navigation-trigger.js +1 -1
- package/dist/components/post-side-navigation.js +1 -1
- package/dist/components/post-stepper-item.js +1 -1
- package/dist/components/post-stepper.js +1 -1
- package/dist/components/post-tab-item.js +1 -1
- package/dist/components/post-tab-panel.js +1 -1
- package/dist/components/post-tabs.js +1 -1
- package/dist/components/post-togglebutton2.js +1 -1
- package/dist/components/post-tooltip-trigger.js +1 -1
- package/dist/components/post-tooltip.js +1 -1
- package/dist/components/react/index.js +1 -1
- package/dist/components/react/p-BWwWKRO5.js +1 -0
- package/dist/components/react/p-CAL337jJ.js +1 -0
- package/dist/components/react/p-CBVthgj-.js +1 -0
- package/dist/components/react/{p-DS46v3ju.js → p-CLkb55ud.js} +1 -1
- package/dist/components/react/{p-C8_zqgAP.js → p-CYBXVnUJ.js} +1 -1
- package/dist/components/react/p-Ci-TsJYj.js +1 -0
- package/dist/components/react/p-CtgMQs_Q.js +1 -0
- package/dist/components/react/p-D4LBzsbB.js +1 -0
- package/dist/components/react/p-D5lqOfVk.js +1 -0
- package/dist/components/react/p-DGpWjdFJ.js +1 -0
- package/dist/components/react/{p-BBv5JYsW.js → p-DSk0Nq8U.js} +1 -1
- package/dist/components/react/{p-1y1rv5Tw.js → p-Db3d6dKF.js} +1 -1
- package/dist/components/react/p-DkDIUTRi.js +1 -0
- package/dist/components/react/post-accordion-item.js +1 -1
- package/dist/components/react/post-accordion.js +1 -1
- package/dist/components/react/post-autocomplete.js +1 -1
- package/dist/components/react/post-avatar.js +1 -1
- package/dist/components/react/post-back-to-top.js +1 -1
- package/dist/components/react/post-banner.js +1 -1
- package/dist/components/react/post-breadcrumb-item.js +1 -1
- package/dist/components/react/post-breadcrumbs.js +1 -1
- package/dist/components/react/post-closebutton.js +1 -1
- package/dist/components/react/post-collapsible-trigger.js +1 -1
- package/dist/components/react/post-collapsible.js +1 -1
- package/dist/components/react/post-date-picker.js +1 -1
- package/dist/components/react/post-footer.js +1 -1
- package/dist/components/react/post-header.js +1 -1
- package/dist/components/react/post-icon.js +1 -1
- package/dist/components/react/post-language-menu-item.js +1 -1
- package/dist/components/react/post-language-menu.js +1 -1
- package/dist/components/react/post-linkarea.js +1 -1
- package/dist/components/react/post-listbox-option.js +1 -1
- package/dist/components/react/post-listbox.js +1 -1
- package/dist/components/react/post-logo.js +1 -1
- package/dist/components/react/post-mainnavigation.js +1 -1
- package/dist/components/react/post-megadropdown-trigger.js +1 -1
- package/dist/components/react/post-megadropdown.js +1 -1
- package/dist/components/react/post-menu-item.js +1 -1
- package/dist/components/react/post-menu-trigger.js +1 -1
- package/dist/components/react/post-menu.js +1 -1
- package/dist/components/react/post-number-input.js +1 -1
- package/dist/components/react/post-pagination.js +1 -1
- package/dist/components/react/post-popover-trigger.js +1 -1
- package/dist/components/react/post-popover.js +1 -1
- package/dist/components/react/post-popovercontainer.js +1 -1
- package/dist/components/react/post-progressbar.js +1 -1
- package/dist/components/react/post-rating.js +1 -1
- package/dist/components/react/post-side-navigation-trigger.js +1 -1
- package/dist/components/react/post-side-navigation.js +1 -1
- package/dist/components/react/post-stepper-item.js +1 -1
- package/dist/components/react/post-stepper.js +1 -1
- package/dist/components/react/post-tab-item.js +1 -1
- package/dist/components/react/post-tab-panel.js +1 -1
- package/dist/components/react/post-tabs.js +1 -1
- package/dist/components/react/post-togglebutton.js +1 -1
- package/dist/components/react/post-tooltip-trigger.js +1 -1
- package/dist/components/react/post-tooltip.js +1 -1
- package/dist/docs.json +67 -45
- package/dist/esm/{create-validator-decorator-DFpQtJzK.js → create-validator-decorator-Cp_NUmrr.js} +1 -1
- package/dist/esm/{index-Bs0zeM5Q.js → index-D0jX3Fts.js} +5 -5
- package/dist/esm/is-focus-visible-BWwWKRO5.js +17 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{one-of-DQCfaZpw.js → one-of-B9locHPx.js} +1 -1
- package/dist/esm/{package-BBz9PVf0.js → package-CAL337jJ.js} +1 -1
- package/dist/esm/{pattern-3lnaFlkk.js → pattern-BL3OBU8C.js} +1 -1
- package/dist/esm/post-accordion_2.entry.js +6 -6
- package/dist/esm/post-autocomplete.entry.js +5 -5
- package/dist/esm/post-avatar.entry.js +85 -61
- package/dist/esm/post-back-to-top.entry.js +6 -6
- package/dist/esm/post-banner.entry.js +5 -5
- package/dist/esm/post-breadcrumb-item.entry.js +8 -8
- package/dist/esm/post-breadcrumbs.entry.js +7 -7
- package/dist/esm/post-closebutton_14.entry.js +545 -607
- package/dist/esm/post-collapsible_2.entry.js +13 -7
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/post-date-picker.entry.js +24 -9
- package/dist/esm/post-footer.entry.js +6 -6
- package/dist/esm/post-linkarea.entry.js +3 -3
- package/dist/esm/post-listbox-option.entry.js +4 -4
- package/dist/esm/post-listbox.entry.js +4 -4
- package/dist/esm/post-number-input.entry.js +5 -5
- package/dist/esm/post-pagination.entry.js +6 -6
- package/dist/esm/post-popover-trigger.entry.js +5 -5
- package/dist/esm/post-popover.entry.js +9 -9
- package/dist/esm/post-progressbar.entry.js +4 -4
- package/dist/esm/post-rating.entry.js +6 -6
- package/dist/esm/post-side-navigation-trigger.entry.js +6 -6
- package/dist/esm/post-side-navigation.entry.js +14 -9
- package/dist/esm/post-stepper-item.entry.js +3 -3
- package/dist/esm/post-stepper.entry.js +7 -7
- package/dist/esm/post-tab-item.entry.js +6 -6
- package/dist/esm/post-tab-panel.entry.js +6 -6
- package/dist/esm/post-tabs.entry.js +37 -9
- package/dist/esm/post-tooltip-trigger.entry.js +6 -6
- package/dist/esm/post-tooltip.entry.js +8 -6
- package/dist/esm/{required-NuzPg5jZ.js → required-CDaQB1gC.js} +1 -1
- package/dist/esm/{type-ChnksJ25.js → type-CQ7XuPCZ.js} +1 -1
- package/dist/esm/{url-BCk3ZU-x.js → url-B-86gtTK.js} +1 -1
- package/dist/post-components/{p-63e570c4.entry.js → p-077be898.entry.js} +1 -1
- package/dist/post-components/{p-6a2f47af.entry.js → p-184bd61c.entry.js} +1 -1
- package/dist/post-components/p-1933e4fa.entry.js +1 -0
- package/dist/post-components/p-21e6f82a.entry.js +1 -0
- package/dist/post-components/{p-c2de3702.entry.js → p-2220db4c.entry.js} +1 -1
- package/dist/post-components/p-2aff3873.entry.js +1 -0
- package/dist/post-components/p-2b475cd7.entry.js +1 -0
- package/dist/post-components/p-33a898ec.entry.js +1 -0
- package/dist/post-components/p-405c1fff.entry.js +1 -0
- package/dist/post-components/{p-bd128657.entry.js → p-5efaca25.entry.js} +1 -1
- package/dist/post-components/p-6a9661d9.entry.js +1 -0
- package/dist/post-components/{p-f275b872.entry.js → p-7dd192b3.entry.js} +1 -1
- package/dist/post-components/p-8e5052d5.entry.js +1 -0
- package/dist/post-components/p-9440738d.entry.js +1 -0
- package/dist/post-components/{p-31550a50.entry.js → p-965a02fb.entry.js} +1 -1
- package/dist/post-components/{p-61a45246.entry.js → p-9740719e.entry.js} +1 -1
- package/dist/post-components/p-9af8f5af.entry.js +1 -0
- package/dist/post-components/{p-DeUk3rcv.js → p-BCPv4bcY.js} +1 -1
- package/dist/post-components/p-BWwWKRO5.js +1 -0
- package/dist/post-components/p-CAL337jJ.js +1 -0
- package/dist/post-components/{p-D1s6tESz.js → p-CP3LjuFR.js} +1 -1
- package/dist/post-components/p-D0jX3Fts.js +2 -0
- package/dist/post-components/{p-Bl-_v3aT.js → p-D6mVqZLg.js} +1 -1
- package/dist/post-components/{p-BwhzbRIR.js → p-DSaWK_q-.js} +1 -1
- package/dist/post-components/p-VPHnF9fB.js +1 -0
- package/dist/post-components/p-a6971c1c.entry.js +1 -0
- package/dist/post-components/p-a7d8f328.entry.js +1 -0
- package/dist/post-components/{p-f784e149.entry.js → p-bb9a0e1e.entry.js} +1 -1
- package/dist/post-components/{p-e6a4146b.entry.js → p-bf8c7dca.entry.js} +1 -1
- package/dist/post-components/p-c3351def.entry.js +1 -0
- package/dist/post-components/{p-31a97aae.entry.js → p-c87f33f0.entry.js} +1 -1
- package/dist/post-components/{p-64480e3a.entry.js → p-e30b534d.entry.js} +1 -1
- package/dist/post-components/{p-43240818.entry.js → p-e73eabac.entry.js} +1 -1
- package/dist/post-components/{p-f566768e.entry.js → p-e84fe883.entry.js} +1 -1
- package/dist/post-components/{p-aa33141b.entry.js → p-eaa28736.entry.js} +1 -1
- package/dist/post-components/{p-451ec8ee.entry.js → p-f2cb8ed1.entry.js} +1 -1
- package/dist/post-components/{p-58b66607.entry.js → p-ffbf2375.entry.js} +1 -1
- package/dist/post-components/p-gv9b-Z15.js +1 -0
- package/dist/post-components/post-components.css +2 -2
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/components/post-avatar/avatar-utils.d.ts +0 -2
- package/dist/types/components/post-avatar/post-avatar.d.ts +11 -9
- package/dist/types/components/post-date-picker/post-date-picker.d.ts +2 -0
- package/dist/types/components/post-header/post-header.d.ts +14 -0
- package/dist/types/components/post-language-menu/post-language-menu.d.ts +3 -0
- package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +1 -1
- package/dist/types/components/post-menu/post-menu.d.ts +0 -1
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +74 -69
- package/dist/types/components/post-tabs/post-tabs.d.ts +4 -0
- package/dist/types/components.d.ts +39 -26
- package/dist/types/utils/floating-ui/middleware/flip.d.ts +14 -0
- package/dist/types/utils/floating-ui/middleware/safe-space.d.ts +10 -0
- package/dist/types/utils/floating-ui/util.d.ts +4 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/is-focus-visible.d.ts +5 -0
- package/dist/vrt/helpers/header-test-config.js +2 -1
- package/hydrate/index.js +659 -634
- package/hydrate/index.mjs +659 -634
- package/package.json +22 -21
- package/dist/components/react/p-BBz9PVf0.js +0 -1
- package/dist/components/react/p-BgEY7xhT.js +0 -1
- package/dist/components/react/p-C3J7fIWx.js +0 -1
- package/dist/components/react/p-C5ibTdH5.js +0 -1
- package/dist/components/react/p-CUKzje9q.js +0 -1
- package/dist/components/react/p-DTBtJCjk.js +0 -1
- package/dist/components/react/p-XUkUhxaz.js +0 -1
- package/dist/components/react/p-ialuSSl2.js +0 -1
- package/dist/post-components/p-10e430c3.entry.js +0 -1
- package/dist/post-components/p-32e1e951.entry.js +0 -1
- package/dist/post-components/p-4f08b99b.entry.js +0 -1
- package/dist/post-components/p-54432b47.entry.js +0 -1
- package/dist/post-components/p-5d7de657.entry.js +0 -1
- package/dist/post-components/p-63dd9a76.entry.js +0 -1
- package/dist/post-components/p-96d07f2b.entry.js +0 -1
- package/dist/post-components/p-9a1e8b1d.entry.js +0 -1
- package/dist/post-components/p-BBz9PVf0.js +0 -1
- package/dist/post-components/p-Bs0zeM5Q.js +0 -2
- package/dist/post-components/p-DH-eJVHZ.js +0 -1
- package/dist/post-components/p-Dk-DtPZn.js +0 -1
- package/dist/post-components/p-aff180f5.entry.js +0 -1
- package/dist/post-components/p-d5327dd1.entry.js +0 -1
- package/dist/post-components/p-e1817744.entry.js +0 -1
- package/dist/post-components/p-f6da5e69.entry.js +0 -1
- package/dist/post-components/p-f917527c.entry.js +0 -1
- package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/vrt/helpers/header-variants.config.d.ts +0 -23
- package/dist/vrt/helpers/header-variants.config.js +0 -157
- /package/dist/collection/utils/{floating-ui.js → floating-ui/platform/safe-area.js} +0 -0
- /package/dist/types/utils/{floating-ui.d.ts → floating-ui/platform/safe-area.d.ts} +0 -0
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-DY4QxKNv.js');
|
|
4
4
|
var breakpoints = require('./breakpoints-Kruvy8Dm.js');
|
|
5
5
|
var eventFrom = require('./event-from-CTcQxB9-.js');
|
|
6
|
-
var _package = require('./package-
|
|
7
|
-
var oneOf = require('./one-of-
|
|
8
|
-
var required = require('./required-
|
|
6
|
+
var _package = require('./package-kgRYEtTJ.js');
|
|
7
|
+
var oneOf = require('./one-of-qu7_EPxf.js');
|
|
8
|
+
var required = require('./required-Dgzo-rb5.js');
|
|
9
9
|
var fade = require('./fade-CPQhl1fP.js');
|
|
10
10
|
var getFocusableChildren = require('./get-focusable-children-BGVgg7Te.js');
|
|
11
11
|
var index$1 = require('./index-CggFmZ8n.js');
|
|
12
|
-
var type = require('./type-
|
|
12
|
+
var type = require('./type-DBRxpBZI.js');
|
|
13
13
|
var nanoid = require('./nanoid-CmjyF1Cm.js');
|
|
14
|
-
var pattern = require('./pattern-
|
|
15
|
-
var url = require('./url-
|
|
14
|
+
var pattern = require('./pattern-EpwCKMyC.js');
|
|
15
|
+
var url = require('./url-Dl1JABeP.js');
|
|
16
16
|
var utils = require('./utils-s05L2ulk.js');
|
|
17
17
|
var fadeSlide = require('./fade-slide-dPhQa-I1.js');
|
|
18
18
|
var placement = require('./placement-qEFR9hmI.js');
|
|
19
19
|
var getRoot = require('./get-root-B1FnQ50K.js');
|
|
20
|
-
require('./
|
|
20
|
+
var isFocusVisible = require('./is-focus-visible-B3CqVQsX.js');
|
|
21
|
+
require('./create-validator-decorator-DVm_SDrR.js');
|
|
21
22
|
|
|
22
23
|
const CLOSABLE_TARGETS = [
|
|
23
24
|
{
|
|
@@ -61,7 +62,7 @@ const BUTTON_TYPES = ['button', 'reset'];
|
|
|
61
62
|
const PLACEMENT = ['manual', 'auto'];
|
|
62
63
|
const SIZE = ['default', 'small'];
|
|
63
64
|
|
|
64
|
-
const postClosebuttonCss = () => `.btn{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;min-height:var(--post-device-sizing-interactive-button-height-1);gap:var(--post-device-spacing-gap-inline-10);padding:0 var(--post-device-spacing-padding-inline-6)}.btn:not(:disabled):hover{text-decoration:none}.btn:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.btn{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:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.btn:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn{border-width:1px !important;transition:none}.btn:is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.btn>post-icon{width:var(--post-device-sizing-interactive-button-icon-4);height:var(--post-device-sizing-interactive-button-icon-4)}.btn-primary{box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);color:var(--post-scheme-color-interactive-button-primary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-primary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover{background-color:Highlight !important}.btn-primary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover>post-icon{color:HighlightText !important}}.btn-primary:disabled{border-color:var(--post-scheme-color-interactive-button-primary-disabled-stroke);color:var(--post-scheme-color-interactive-button-primary-disabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-disabled-bg)}.btn-primary:not(:disabled):hover,.btn-primary.pretend-hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg)}.btn-default{box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-secondary-enabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-enabled-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-default:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover{background-color:Highlight !important}.btn-default:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover>post-icon{color:HighlightText !important}}.btn-default:disabled{border-color:var(--post-scheme-color-interactive-button-secondary-disabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-disabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-disabled-bg)}.btn-default:not(:disabled):hover,.btn-default.pretend-hover{border-color:var(--post-scheme-color-interactive-button-secondary-hover-stroke);color:var(--post-scheme-color-interactive-button-secondary-hover-fg);background-color:var(--post-scheme-color-interactive-button-secondary-hover-bg)}.btn-secondary{box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-secondary-enabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-enabled-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-secondary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover{background-color:Highlight !important}.btn-secondary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover>post-icon{color:HighlightText !important}}.btn-secondary:disabled{border-color:var(--post-scheme-color-interactive-button-secondary-disabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-disabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-disabled-bg)}.btn-secondary:not(:disabled):hover,.btn-secondary.pretend-hover{border-color:var(--post-scheme-color-interactive-button-secondary-hover-stroke);color:var(--post-scheme-color-interactive-button-secondary-hover-fg);background-color:var(--post-scheme-color-interactive-button-secondary-hover-bg)}.btn-tertiary{border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-tertiary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover{background-color:Highlight !important}.btn-tertiary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover>post-icon{color:HighlightText !important}}.btn-tertiary:disabled{border-color:var(--post-scheme-color-interactive-button-tertiary-disabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-disabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-disabled-bg)}.btn-tertiary:not(:disabled):hover,.btn-tertiary.pretend-hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg)}.btn-link{border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-link:disabled,.btn-link.disabled{text-decoration:none}}.btn-link:disabled{border-color:var(--post-scheme-color-interactive-button-tertiary-disabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-disabled-fg)}.btn-link:not(:disabled):hover,.btn-link.pretend-hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.btn-sm{min-height:var(--post-device-sizing-interactive-button-height-4);gap:var(--post-device-spacing-gap-inline-11);padding:0 var(--post-device-spacing-padding-inline-7)}.btn-sm>post-icon{width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5)}.btn-lg{min-height:var(--post-device-sizing-interactive-button-height-2);gap:var(--post-device-spacing-gap-inline-1);padding:0 var(--post-device-spacing-padding-inline-5)}.btn-lg>post-icon{width:var(--post-device-sizing-interactive-button-icon-3);height:var(--post-device-sizing-interactive-button-icon-3)}.btn-link{-webkit-text-decoration:var(--post-core-text-decoration-underline);text-decoration:var(--post-core-text-decoration-underline);border:0 none;border-radius:0;min-height:0;font-size:inherit;font-weight:inherit;padding:0}.btn-link{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-link:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-link:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.btn-link:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-link:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.btn-link:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}.btn-icon{padding:0;width:var(--post-device-sizing-interactive-button-height-1);height:var(--post-device-sizing-interactive-button-height-1);min-height:0;vertical-align:text-bottom}.btn-icon.btn-link{width:var(--post-device-sizing-interactive-button-icon-4);height:var(--post-device-sizing-interactive-button-icon-4)}.btn-icon>post-icon{display:block;width:var(--post-device-sizing-interactive-button-icon-4);height:var(--post-device-sizing-interactive-button-icon-4)}.btn-icon.btn-sm{padding:0;width:var(--post-device-sizing-interactive-button-height-4);height:var(--post-device-sizing-interactive-button-height-4);min-height:0;vertical-align:text-bottom}.btn-icon.btn-sm.btn-link{width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5)}.btn-icon.btn-sm>post-icon{display:block;width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5)}.btn-icon.btn-lg{padding:0;width:var(--post-device-sizing-interactive-button-height-2);height:var(--post-device-sizing-interactive-button-height-2);min-height:0;vertical-align:text-bottom}.btn-icon.btn-lg.btn-link{width:var(--post-device-sizing-interactive-button-icon-3);height:var(--post-device-sizing-interactive-button-icon-3)}.btn-icon.btn-lg>post-icon{display:block;width:var(--post-device-sizing-interactive-button-icon-3);height:var(--post-device-sizing-interactive-button-icon-3)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:host .btn{background-color:var(--post-scheme-color-interactive-primary-enabled-bg1)}:host .btn:not(:disabled):hover,:host .btn.pretend-hover{background-color:var(--post-scheme-color-interactive-primary-hover-bg)}:host(:not([placement])),:host([placement=auto]){position:absolute;inset-block-start:0;inset-inline-end:0;transform:translate(50%, -50%)}:host([size=small]) .btn{height:var(--post-device-sizing-interactive-button-height-7);width:var(--post-device-sizing-interactive-button-height-7)}`;
|
|
65
|
+
const postClosebuttonCss = () => `.btn{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;white-space:normal;overflow-wrap:anywhere;text-wrap:pretty;text-align:center;min-height:var(--post-device-sizing-interactive-button-height-1);gap:var(--post-device-spacing-gap-inline-10);padding:0 var(--post-device-spacing-padding-inline-6);border-radius:calc(var(--post-device-sizing-interactive-button-height-1) / 2)}.btn:not(:disabled):hover{text-decoration:none}.btn:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.btn{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:focus-visible{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn:focus-visible{outline-color:Highlight !important}}.pretend-focus.btn{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.pretend-focus.btn{outline-color:Highlight !important}}.btn:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn:has(:focus-visible){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.btn:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn{border-width:1px !important;transition:none}.btn:is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.btn>post-icon{width:var(--post-device-sizing-interactive-button-icon-4);height:var(--post-device-sizing-interactive-button-icon-4);flex-shrink:0}.btn-primary{box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);color:var(--post-scheme-color-interactive-button-primary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-primary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover{background-color:Highlight !important}.btn-primary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover>post-icon{color:HighlightText !important}}.btn-primary:disabled{border-color:var(--post-scheme-color-interactive-button-primary-disabled-stroke);color:var(--post-scheme-color-interactive-button-primary-disabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-disabled-bg)}.btn-primary:not(:disabled):hover,.btn-primary.pretend-hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg)}.btn-default{box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-secondary-enabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-enabled-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-default:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover{background-color:Highlight !important}.btn-default:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover>post-icon{color:HighlightText !important}}.btn-default:disabled{border-color:var(--post-scheme-color-interactive-button-secondary-disabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-disabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-disabled-bg)}.btn-default:not(:disabled):hover,.btn-default.pretend-hover{border-color:var(--post-scheme-color-interactive-button-secondary-hover-stroke);color:var(--post-scheme-color-interactive-button-secondary-hover-fg);background-color:var(--post-scheme-color-interactive-button-secondary-hover-bg)}.btn-secondary{box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-secondary-enabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-enabled-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-secondary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover{background-color:Highlight !important}.btn-secondary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover>post-icon{color:HighlightText !important}}.btn-secondary:disabled{border-color:var(--post-scheme-color-interactive-button-secondary-disabled-stroke);color:var(--post-scheme-color-interactive-button-secondary-disabled-fg);background-color:var(--post-scheme-color-interactive-button-secondary-disabled-bg)}.btn-secondary:not(:disabled):hover,.btn-secondary.pretend-hover{border-color:var(--post-scheme-color-interactive-button-secondary-hover-stroke);color:var(--post-scheme-color-interactive-button-secondary-hover-fg);background-color:var(--post-scheme-color-interactive-button-secondary-hover-bg)}.btn-tertiary{border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-tertiary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover{background-color:Highlight !important}.btn-tertiary:not(:disabled,.disabled):not(a.btn-tertiary.px-0):hover>post-icon{color:HighlightText !important}}.btn-tertiary:disabled{border-color:var(--post-scheme-color-interactive-button-tertiary-disabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-disabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-disabled-bg)}.btn-tertiary:not(:disabled):hover,.btn-tertiary.pretend-hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg)}.btn-link{border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-link:disabled,.btn-link.disabled{text-decoration:none}}.btn-link:disabled{border-color:var(--post-scheme-color-interactive-button-tertiary-disabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-disabled-fg)}.btn-link:not(:disabled):hover,.btn-link.pretend-hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.btn-sm{min-height:var(--post-device-sizing-interactive-button-height-4);gap:var(--post-device-spacing-gap-inline-11);padding:0 var(--post-device-spacing-padding-inline-7);border-radius:calc(var(--post-device-sizing-interactive-button-height-4) / 2)}.btn-sm>post-icon{width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5);flex-shrink:0}.btn-lg{min-height:var(--post-device-sizing-interactive-button-height-2);gap:var(--post-device-spacing-gap-inline-1);padding:0 var(--post-device-spacing-padding-inline-5);border-radius:calc(var(--post-device-sizing-interactive-button-height-2) / 2)}.btn-lg>post-icon{width:var(--post-device-sizing-interactive-button-icon-3);height:var(--post-device-sizing-interactive-button-icon-3);flex-shrink:0}.btn-link{-webkit-text-decoration:var(--post-core-text-decoration-underline);text-decoration:var(--post-core-text-decoration-underline);border:0 none;border-radius:0;min-height:0;font-size:inherit;font-weight:inherit;padding:0}.btn-link{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-link:focus-visible{outline-style:var(--post-core-border-style-solid) !important;border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-link:focus-visible{outline-color:Highlight !important}}.btn-link.pretend-focus{outline-style:var(--post-core-border-style-solid) !important;border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-link.pretend-focus{outline-color:Highlight !important}}.btn-link:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important;border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-link:has(:focus-visible){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.btn-link:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-link:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.btn-link:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}.btn-link:disabled{color:var(--post-scheme-color-interactive-primary-disabled-fg1);text-decoration-style:var(--post-core-border-style-dash)}.btn-icon{padding:0;width:var(--post-device-sizing-interactive-button-height-1);height:var(--post-device-sizing-interactive-button-height-1);min-height:0;vertical-align:text-bottom}.btn-icon.btn-link{width:var(--post-device-sizing-interactive-button-icon-4);height:var(--post-device-sizing-interactive-button-icon-4)}.btn-icon>post-icon{display:block;width:var(--post-device-sizing-interactive-button-icon-4);height:var(--post-device-sizing-interactive-button-icon-4)}.btn-icon.btn-sm{padding:0;width:var(--post-device-sizing-interactive-button-height-4);height:var(--post-device-sizing-interactive-button-height-4);min-height:0;vertical-align:text-bottom}.btn-icon.btn-sm.btn-link{width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5)}.btn-icon.btn-sm>post-icon{display:block;width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5)}.btn-icon.btn-lg{padding:0;width:var(--post-device-sizing-interactive-button-height-2);height:var(--post-device-sizing-interactive-button-height-2);min-height:0;vertical-align:text-bottom}.btn-icon.btn-lg.btn-link{width:var(--post-device-sizing-interactive-button-icon-3);height:var(--post-device-sizing-interactive-button-icon-3)}.btn-icon.btn-lg>post-icon{display:block;width:var(--post-device-sizing-interactive-button-icon-3);height:var(--post-device-sizing-interactive-button-icon-3)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:host .btn{background-color:var(--post-scheme-color-interactive-primary-enabled-bg1)}:host .btn:not(:disabled):hover,:host .btn.pretend-hover{background-color:var(--post-scheme-color-interactive-primary-hover-bg)}:host(:not([placement])),:host([placement=auto]){position:absolute;inset-block-start:0;inset-inline-end:0;transform:translate(50%, -50%)}:host([size=small]) .btn{height:var(--post-device-sizing-interactive-button-height-7);width:var(--post-device-sizing-interactive-button-height-7)}`;
|
|
65
66
|
|
|
66
67
|
var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
67
68
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -170,7 +171,7 @@ function slide(el, direction, options = {}) {
|
|
|
170
171
|
return animateSlide(el, keyframes, options);
|
|
171
172
|
}
|
|
172
173
|
|
|
173
|
-
const postHeaderCss = () => `:host{--post-global-header-top:calc( var(--post-global-header-reduced-height) - var(--post-global-header-expanded-height) );--post-header-top:calc(var(--post-header-reduced-height) - var(--post-header-expanded-height));--post-logo-height:calc( var(--post-global-header-expanded-height) - var(--post-header-scroll-top, 0px) );--post-global-controls-top:clamp( 1000 * (var(--post-global-header-reduced-height) - var(--post-global-header-expanded-height)), calc( -1 * min(var(--post-header-scroll-top, 0px) / 4, var(--post-global-header-reduced-height)) ), 0px )}@media screen and (min-width: 1024px){:host{--post-header-gap:8px;--post-global-header-padding-inline-start:4px;--post-global-header-padding-inline-end:8px;--post-local-header-padding-inline-start:12px;--post-local-header-padding-inline-end:8px}}@media screen and (min-width: 600px)and (max-width: 1023.98px){:host{--post-header-gap:12px 8px;--post-global-header-padding-inline-start:4px;--post-global-header-padding-inline-end:4px;--post-local-header-padding-inline-start:12px;--post-local-header-padding-inline-end:4px;--post-local-header-padding-block:12px;--post-burger-menu-padding-inline:40px;--post-burger-menu-body-gap:32px;--post-burger-menu-footer-gap:24px}}@media screen and (min-width: 600px)and (max-width: 779.98px){:host{--post-burger-menu-padding-inline:16px}}@media screen and (min-width: 0)and (max-width: 599.98px){:host{--post-header-gap:12px 8px;--post-global-header-padding-inline-start:0px;--post-global-header-padding-inline-end:8px;--post-local-header-padding-inline-start:8px;--post-local-header-padding-inline-end:8px;--post-local-header-padding-block:8px;--post-burger-menu-padding-inline:16px;--post-burger-menu-body-gap:24px;--post-burger-menu-footer-gap:16px}}:host(:not([full-width])),:host([full-width=false]){--post-header-content-max-width:1440px}:host([data-expanded]),:host([data-menu-extended]){--post-header-top:0;--post-global-header-top:-0.001px;--post-global-controls-top:0;--post-global-header-reduced-height:var(--post-global-header-expanded-height)}*,::before,::after{box-sizing:border-box}:host,header,.global-header,.local-header{transition:inset-block-start 150ms cubic-bezier(0.4, 0, 0.2, 1)}.section,.sliding-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--post-header-gap);flex-wrap:wrap}.section{max-width:var(--post-header-content-max-width);margin-inline:auto}:host{display:block;position:sticky;inset-block-start:var(--post-header-top);z-index:1020;box-shadow:var(--post-device-elevation-300)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host{border-bottom:1px solid}}.global-header{z-index:2;position:sticky;inset-block-start:var(--post-global-header-top);background-color:#fc0}.global-header::before{position:absolute;z-index:-1;left:0;bottom:0;width:100%;height:100dvh;content:"";background-color:#fc0}.global-header .section{height:var(--post-global-header-expanded-height);padding-inline-start:var(--post-global-header-padding-inline-start);padding-inline-end:var(--post-global-header-padding-inline-end)}.global-header .logo{align-self:flex-end;width:var(--post-global-header-expanded-height);height:var(--post-logo-height);min-height:var(--post-global-header-reduced-height);max-height:100%;margin-inline-end:calc(20px - var(--post-header-gap));margin-inline-start:clamp(var(--post-logo-expanded-offset),var(--post-logo-expanded-offset) + (var(--post-logo-reduced-offset) - var(--post-logo-expanded-offset))*min(var(--post-header-scroll-top, 0px),var(--post-global-header-expanded-height) - var(--post-global-header-reduced-height))/max(1px,var(--post-global-header-expanded-height) - var(--post-global-header-reduced-height)),var(--post-logo-reduced-offset))}.global-header .sliding-controls{flex-grow:1;justify-content:flex-end;position:relative;inset-block-start:var(--post-global-controls-top)}.global-header .audience{margin-inline-end:auto}@media screen and (max-width: 1023.98px){.global-header slot:where([name=audience],[name=global-nav-secondary]){display:none}}.local-header{position:relative;background-color:#fff;min-height:var(--post-local-header-expanded-min-height);display:var(--post-local-header-display, flex);align-items:var(--post-local-header-align-items, center)}.local-header .section{width:100%;padding-inline-start:var(--post-local-header-padding-inline-start);padding-inline-end:var(--post-local-header-padding-inline-end);padding-block:var(--post-local-header-padding-block)}@media screen and (min-width: 1024px){.local-header .section{display:grid;grid-template:var(--post-local-header-grid-template)}}@media screen and (max-width: 1023.98px){.local-header .section{display:flex;align-self:center}}@media screen and (max-width: 1023.98px)and (max-width: 599.98px){.local-header .section{justify-content:end}}.local-header:where(.megadropdown-open)::after,.local-header:has(~.burger-menu.extended)::after{content:"";display:block;position:absolute;inset-inline:0;inset-block-end:0;height:1px;background-color:#e1e0dc}.local-header .local-nav{flex:0 0 auto}@media screen and (max-width: 1023.98px){.local-header slot[name=main-nav]{display:none}}.burger-button{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:4px 10px;gap:6px;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);display:var(--post-burger-button-display, flex)}.burger-button:not(:disabled):hover{text-decoration:none}.burger-button:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.burger-button{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}.burger-button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.burger-button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.burger-button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.burger-button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.burger-button{border-width:1px !important;transition:none}.burger-button:is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.burger-button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg)}.burger-button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);color:var(--post-scheme-color-interactive-button-primary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg)}.burger-button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg)}@media screen and (min-width: 0)and (max-width: 599.98px){.burger-button{padding:10px}.burger-button>:not(post-icon){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.burger-button>post-icon{font-size:1.5rem}}@media screen and (min-width: 1024px){.burger-button{display:none}}.burger-menu{z-index:-1;position:absolute;inset-inline:0;inset-block-start:100%;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));overflow:hidden auto;display:flex;flex-direction:column;background-color:#fafafa}.burger-menu.extended.second-level-open{overflow:hidden}.burger-menu:not(.extended){transform:translateY(-100%);display:none}.burger-menu:not(.extended)>*{display:none}.burger-menu .burger-menu-body,.burger-menu .burger-menu-footer{display:flex;flex-direction:column;padding-inline:var(--post-burger-menu-padding-inline)}.burger-menu .burger-menu-body{flex-grow:1;padding-block:24px;gap:var(--post-burger-menu-body-gap)}.burger-menu .burger-menu-footer{background-color:#f0efed;padding-block-start:16px;padding-block-end:max(24px, env(safe-area-inset-bottom, 0px));gap:var(--post-burger-menu-footer-gap)}.burger-menu .local-nav{min-height:56px;display:flex;align-items:center;justify-content:flex-end;padding-inline:4px}`;
|
|
174
|
+
const postHeaderCss = () => `:host{--post-global-header-top:calc( var(--post-global-header-reduced-height) - var(--post-global-header-expanded-height) );--post-header-top:calc(var(--post-header-reduced-height) - var(--post-header-expanded-height));--post-logo-height:calc( var(--post-global-header-expanded-height) - var(--post-header-scroll-top, 0px) );--post-global-controls-top:clamp( 1000 * (var(--post-global-header-reduced-height) - var(--post-global-header-expanded-height)), calc( -1 * min(var(--post-header-scroll-top, 0px) / 4, var(--post-global-header-reduced-height)) ), 0px )}@media screen and (min-width: 1024px){:host{--post-header-gap:8px;--post-global-header-padding-inline-start:4px;--post-global-header-padding-inline-end:8px;--post-local-header-padding-inline-start:12px;--post-local-header-padding-inline-end:8px}}@media screen and (min-width: 600px)and (max-width: 1023.98px){:host{--post-header-gap:12px 8px;--post-global-header-padding-inline-start:4px;--post-global-header-padding-inline-end:4px;--post-local-header-padding-inline-start:12px;--post-local-header-padding-inline-end:4px;--post-local-header-padding-block:12px;--post-burger-menu-padding-inline:40px;--post-burger-menu-body-gap:32px;--post-burger-menu-footer-gap:24px}}@media screen and (min-width: 600px)and (max-width: 779.98px){:host{--post-burger-menu-padding-inline:16px}}@media screen and (min-width: 0)and (max-width: 599.98px){:host{--post-header-gap:12px 8px;--post-global-header-padding-inline-start:0px;--post-global-header-padding-inline-end:8px;--post-local-header-padding-inline-start:8px;--post-local-header-padding-inline-end:8px;--post-local-header-padding-block:8px;--post-burger-menu-padding-inline:16px;--post-burger-menu-body-gap:24px;--post-burger-menu-footer-gap:16px}}:host(:not([full-width])),:host([full-width=false]){--post-header-content-max-width:1440px}:host([data-expanded]),:host([data-menu-extended]){--post-header-top:0;--post-global-header-top:-0.001px;--post-global-controls-top:0;--post-global-header-reduced-height:var(--post-global-header-expanded-height)}*,::before,::after{box-sizing:border-box}:host,header,.global-header,.local-header{transition:inset-block-start 150ms cubic-bezier(0.4, 0, 0.2, 1)}.section,.sliding-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--post-header-gap);flex-wrap:wrap}.section{max-width:var(--post-header-content-max-width);margin-inline:auto}:host{display:block;position:sticky;inset-block-start:var(--post-header-top);z-index:1020;box-shadow:var(--post-device-elevation-300)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host{border-bottom:1px solid}}.scroll-max{position:absolute;inset-block-start:0;inset-inline-start:0;inline-size:var(--post-header-scroll-max, 0);block-size:0;visibility:hidden;pointer-events:none}.global-header{z-index:2;position:sticky;inset-block-start:var(--post-global-header-top);background-color:#fc0}.global-header::before{position:absolute;z-index:-1;left:0;bottom:0;width:100%;height:100dvh;content:"";background-color:#fc0}.global-header .section{height:var(--post-global-header-expanded-height);padding-inline-start:var(--post-global-header-padding-inline-start);padding-inline-end:var(--post-global-header-padding-inline-end)}.global-header .logo{align-self:flex-end;width:var(--post-global-header-expanded-height);height:var(--post-logo-height);min-height:var(--post-global-header-reduced-height);max-height:100%;margin-inline-end:calc(20px - var(--post-header-gap));margin-inline-start:clamp(var(--post-logo-expanded-offset),var(--post-logo-expanded-offset) + (var(--post-logo-reduced-offset) - var(--post-logo-expanded-offset))*min(var(--post-header-scroll-top, 0px),var(--post-global-header-expanded-height) - var(--post-global-header-reduced-height))/max(1px,var(--post-global-header-expanded-height) - var(--post-global-header-reduced-height)),var(--post-logo-reduced-offset))}.global-header .sliding-controls{flex-grow:1;justify-content:flex-end;position:relative;inset-block-start:var(--post-global-controls-top)}.global-header .audience{margin-inline-end:auto}@media screen and (max-width: 1023.98px){.global-header slot:where([name=audience],[name=global-nav-secondary]){display:none}}.local-header{position:relative;background-color:#fff;min-height:var(--post-local-header-expanded-min-height);display:var(--post-local-header-display, flex);align-items:var(--post-local-header-align-items, center)}.local-header .section{width:100%;padding-inline-start:var(--post-local-header-padding-inline-start);padding-inline-end:var(--post-local-header-padding-inline-end);padding-block:var(--post-local-header-padding-block)}@media screen and (min-width: 1024px){.local-header .section{display:grid;grid-template:var(--post-local-header-grid-template)}}@media screen and (max-width: 1023.98px){.local-header .section{display:flex;align-self:center}}@media screen and (max-width: 1023.98px)and (max-width: 599.98px){.local-header .section{justify-content:end}}.local-header:where(.megadropdown-open)::after,.local-header:has(~.burger-menu.extended)::after{content:"";display:block;position:absolute;inset-inline:0;inset-block-end:0;height:1px;background-color:#e1e0dc}.local-header .local-nav{flex:0 0 auto}@media screen and (max-width: 1023.98px){.local-header slot[name=main-nav]{display:none}}.burger-button{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:4px 10px;gap:6px;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);display:var(--post-burger-button-display, flex)}.burger-button:not(:disabled):hover{text-decoration:none}.burger-button:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.burger-button{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}.burger-button:focus-visible{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.burger-button:focus-visible{outline-color:Highlight !important}}.burger-button.pretend-focus{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.burger-button.pretend-focus{outline-color:Highlight !important}}.burger-button:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.burger-button:has(:focus-visible){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.burger-button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.burger-button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.burger-button{border-width:1px !important;transition:none}.burger-button:is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.burger-button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg)}.burger-button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);color:var(--post-scheme-color-interactive-button-primary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg)}.burger-button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg)}@media screen and (min-width: 0)and (max-width: 599.98px){.burger-button{padding:10px}.burger-button>:not(post-icon){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.burger-button>post-icon{font-size:1.5rem}}@media screen and (min-width: 1024px){.burger-button{display:none}}.burger-menu{z-index:-1;position:absolute;inset-inline:0;inset-block-start:100%;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));overflow:hidden auto;display:flex;flex-direction:column;background-color:#fafafa}.burger-menu.extended.second-level-open{overflow:hidden}.burger-menu:not(.extended){transform:translateY(-100%);display:none}.burger-menu:not(.extended)>*{display:none}.burger-menu .burger-menu-body,.burger-menu .burger-menu-footer{display:flex;flex-direction:column;padding-inline:var(--post-burger-menu-padding-inline)}.burger-menu .burger-menu-body{flex-grow:1;padding-block:24px;gap:var(--post-burger-menu-body-gap)}.burger-menu .burger-menu-footer{background-color:#f0efed;padding-block-start:16px;padding-block-end:max(24px, env(safe-area-inset-bottom, 0px));gap:var(--post-burger-menu-footer-gap)}.burger-menu .local-nav{min-height:56px;display:flex;align-items:center;justify-content:flex-end;padding-inline:4px}`;
|
|
174
175
|
|
|
175
176
|
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
176
177
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -184,7 +185,8 @@ var __decorate$a = (undefined && undefined.__decorate) || function (decorators,
|
|
|
184
185
|
};
|
|
185
186
|
const PostHeader = class {
|
|
186
187
|
get hasBurgerMenu() {
|
|
187
|
-
return this.device !== 'desktop' &&
|
|
188
|
+
return (this.device !== 'desktop' &&
|
|
189
|
+
(this.hasMainNav || this.hasAudience || this.hasGlobalNavSecondary));
|
|
188
190
|
}
|
|
189
191
|
get scrollParent() {
|
|
190
192
|
const frozenScrollParent = document.querySelector('[data-post-scroll-locked]');
|
|
@@ -214,6 +216,8 @@ const PostHeader = class {
|
|
|
214
216
|
}
|
|
215
217
|
constructor(hostRef) {
|
|
216
218
|
index.registerInstance(this, hostRef);
|
|
219
|
+
this.scrollMax = Infinity;
|
|
220
|
+
this.scrollPosition = 0;
|
|
217
221
|
this.throttledResize = index$1.throttle(50, () => this.updateLocalHeaderHeight());
|
|
218
222
|
this.animationOptions = {
|
|
219
223
|
duration: 350,
|
|
@@ -222,6 +226,8 @@ const PostHeader = class {
|
|
|
222
226
|
this.device = breakpoints.breakpoint.get('device');
|
|
223
227
|
this.hasTitle = true;
|
|
224
228
|
this.hasMainNav = true;
|
|
229
|
+
this.hasAudience = true;
|
|
230
|
+
this.hasGlobalNavSecondary = true;
|
|
225
231
|
this.hasLocalNav = true;
|
|
226
232
|
this.burgerMenuExtended = false;
|
|
227
233
|
this.megadropdownOpen = false;
|
|
@@ -243,9 +249,14 @@ const PostHeader = class {
|
|
|
243
249
|
this.closeBurgerMenu();
|
|
244
250
|
}
|
|
245
251
|
};
|
|
252
|
+
this.onScroll = () => {
|
|
253
|
+
this.handleScrollEvent();
|
|
254
|
+
this.collapseIfNotKeyboardFocused();
|
|
255
|
+
};
|
|
246
256
|
this.handleScrollEvent = this.handleScrollEvent.bind(this);
|
|
247
257
|
this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
|
|
248
258
|
this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
|
|
259
|
+
this.updateScrollMax = this.updateScrollMax.bind(this);
|
|
249
260
|
this.keyboardHandler = this.keyboardHandler.bind(this);
|
|
250
261
|
this.handleLinkClick = this.handleLinkClick.bind(this);
|
|
251
262
|
this.checkSlottedContent = this.checkSlottedContent.bind(this);
|
|
@@ -253,15 +264,16 @@ const PostHeader = class {
|
|
|
253
264
|
}
|
|
254
265
|
connectedCallback() {
|
|
255
266
|
globalThis.addEventListener('resize', this.throttledResize, { passive: true });
|
|
256
|
-
globalThis.addEventListener('scroll', this.
|
|
267
|
+
globalThis.addEventListener('scroll', this.onScroll, {
|
|
257
268
|
passive: true,
|
|
258
269
|
});
|
|
259
|
-
this.scrollParent.addEventListener('scroll', this.
|
|
270
|
+
this.scrollParent.addEventListener('scroll', this.onScroll, {
|
|
260
271
|
passive: true,
|
|
261
272
|
});
|
|
262
273
|
document.addEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
|
|
263
274
|
globalThis.addEventListener('postBreakpoint:device', this.breakpointChange);
|
|
264
275
|
this.handleScrollParentResize();
|
|
276
|
+
this.handleScrollMaxResize();
|
|
265
277
|
this.lockBody(false, this.burgerMenuExtended, 'burgerMenuExtended');
|
|
266
278
|
}
|
|
267
279
|
componentWillRender() {
|
|
@@ -272,6 +284,7 @@ const PostHeader = class {
|
|
|
272
284
|
componentDidRender() {
|
|
273
285
|
this.getFocusableElements();
|
|
274
286
|
this.handleLocalHeaderResize();
|
|
287
|
+
this.handleScrollMaxResize();
|
|
275
288
|
// When a megadropdown is open on desktop and the user resizes to mobile, we set
|
|
276
289
|
// burgerMenuExtended = true but burgerMenuButton doesn't exist yet — it only renders
|
|
277
290
|
// on mobile/tablet. Syncing here ensures it gets the correct toggled state on resize.
|
|
@@ -288,9 +301,9 @@ const PostHeader = class {
|
|
|
288
301
|
const scrollParent = this.scrollParent;
|
|
289
302
|
globalThis.removeEventListener('postBreakpoint:device', this.breakpointChange);
|
|
290
303
|
globalThis.removeEventListener('resize', this.throttledResize);
|
|
291
|
-
globalThis.removeEventListener('scroll', this.
|
|
304
|
+
globalThis.removeEventListener('scroll', this.onScroll);
|
|
292
305
|
if (scrollParent)
|
|
293
|
-
scrollParent.removeEventListener('scroll', this.
|
|
306
|
+
scrollParent.removeEventListener('scroll', this.onScroll);
|
|
294
307
|
document.removeEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
|
|
295
308
|
this.host.removeEventListener('keydown', this.keyboardHandler);
|
|
296
309
|
if (this.host.shadowRoot) {
|
|
@@ -304,6 +317,11 @@ const PostHeader = class {
|
|
|
304
317
|
this.localHeaderResizeObserver.disconnect();
|
|
305
318
|
this.localHeaderResizeObserver = null;
|
|
306
319
|
}
|
|
320
|
+
if (this.scrollMaxResizeObserver) {
|
|
321
|
+
this.scrollMaxResizeObserver.disconnect();
|
|
322
|
+
this.scrollMaxResizeObserver = null;
|
|
323
|
+
}
|
|
324
|
+
this.lastScrollTop = undefined;
|
|
307
325
|
if (this.slottedContentObserver) {
|
|
308
326
|
this.slottedContentObserver.disconnect();
|
|
309
327
|
this.slottedContentObserver = null;
|
|
@@ -383,9 +401,46 @@ const PostHeader = class {
|
|
|
383
401
|
});
|
|
384
402
|
this.megadropdownOpen = false;
|
|
385
403
|
}
|
|
404
|
+
// The header only stays expanded to keep keyboard focus visible
|
|
405
|
+
// once focus is no longer keyboard focus (e.g. after a click), it can collapse on scroll
|
|
406
|
+
collapseIfNotKeyboardFocused() {
|
|
407
|
+
if (!('expanded' in this.host.dataset))
|
|
408
|
+
return;
|
|
409
|
+
if (this.getDeepActiveElement()?.matches(':focus-visible'))
|
|
410
|
+
return;
|
|
411
|
+
delete this.host.dataset.expanded;
|
|
412
|
+
}
|
|
413
|
+
getScrollPosition() {
|
|
414
|
+
const scrollParent = this.scrollParent;
|
|
415
|
+
return scrollParent === document.body ? globalThis.scrollY : scrollParent.scrollTop;
|
|
416
|
+
}
|
|
417
|
+
// Focusing a control of the collapsed header scrolls it into view before the focus events are dispatched
|
|
418
|
+
// the scroll event is not dispatched yet, so scrollPosition is still the position before the focus
|
|
419
|
+
// Never skip the scroll when the position is unchanged: an instant scroll cancels a pending smooth scroll
|
|
420
|
+
restoreScrollPosition() {
|
|
421
|
+
const scrollParent = this.scrollParent;
|
|
422
|
+
const scrollContainer = scrollParent === document.body ? globalThis : scrollParent;
|
|
423
|
+
scrollContainer.scrollTo({ top: this.scrollPosition, behavior: 'instant' });
|
|
424
|
+
}
|
|
386
425
|
handleScrollEvent() {
|
|
387
|
-
|
|
388
|
-
|
|
426
|
+
this.scrollPosition = this.getScrollPosition();
|
|
427
|
+
// Once the header is fully reduced, writing a new value would only trigger
|
|
428
|
+
// a style recalculation of the whole page without any visual change
|
|
429
|
+
const value = Math.min(Math.max(this.scrollPosition, 0), this.scrollMax);
|
|
430
|
+
if (value === this.lastScrollTop)
|
|
431
|
+
return;
|
|
432
|
+
this.lastScrollTop = value;
|
|
433
|
+
document.documentElement.style.setProperty('--post-header-scroll-top', `${value}px`);
|
|
434
|
+
}
|
|
435
|
+
updateScrollMax() {
|
|
436
|
+
if (!this.scrollMaxElement)
|
|
437
|
+
return;
|
|
438
|
+
// Never limit the scroll value when the header styles are not loaded
|
|
439
|
+
const isScrollMaxDefined = getComputedStyle(this.host).getPropertyValue('--post-header-scroll-max').trim() !== '';
|
|
440
|
+
this.scrollMax = isScrollMaxDefined
|
|
441
|
+
? Math.ceil(this.scrollMaxElement.getBoundingClientRect().width)
|
|
442
|
+
: Infinity;
|
|
443
|
+
this.handleScrollEvent();
|
|
389
444
|
}
|
|
390
445
|
updateLocalHeaderHeight() {
|
|
391
446
|
const localHeaderElement = this.host.shadowRoot.querySelector('.local-header');
|
|
@@ -426,16 +481,34 @@ const PostHeader = class {
|
|
|
426
481
|
this.localHeaderResizeObserver.observe(localHeader);
|
|
427
482
|
}
|
|
428
483
|
}
|
|
484
|
+
handleScrollMaxResize() {
|
|
485
|
+
if (!this.scrollMaxElement || this.scrollMaxResizeObserver)
|
|
486
|
+
return;
|
|
487
|
+
// The ResizeObserver is not called for an initial size of 0px (e.g. on mobile)
|
|
488
|
+
this.updateScrollMax();
|
|
489
|
+
this.scrollMaxResizeObserver = new ResizeObserver(this.updateScrollMax);
|
|
490
|
+
this.scrollMaxResizeObserver.observe(this.scrollMaxElement);
|
|
491
|
+
}
|
|
429
492
|
handleSlottedContentChanges() {
|
|
430
493
|
if (!this.slottedContentObserver) {
|
|
431
494
|
this.checkSlottedContent();
|
|
432
495
|
this.slottedContentObserver = new MutationObserver(this.checkSlottedContent);
|
|
433
|
-
this.slottedContentObserver.observe(this.host, {
|
|
496
|
+
this.slottedContentObserver.observe(this.host, {
|
|
497
|
+
childList: true,
|
|
498
|
+
subtree: true,
|
|
499
|
+
attributes: true,
|
|
500
|
+
attributeFilter: ['slot'],
|
|
501
|
+
});
|
|
434
502
|
}
|
|
435
503
|
}
|
|
504
|
+
slotHasNavigationItems(slotName, selector) {
|
|
505
|
+
return Array.from(this.host.querySelectorAll(`:scope > [slot="${slotName}"]`)).some(element => element.matches(selector) || !!element.querySelector(selector));
|
|
506
|
+
}
|
|
436
507
|
checkSlottedContent() {
|
|
437
508
|
this.hasTitle = !!this.host.querySelector('[slot="title"]');
|
|
438
|
-
this.hasMainNav =
|
|
509
|
+
this.hasMainNav = this.slotHasNavigationItems('main-nav', 'a:not(post-megadropdown *), post-megadropdown-trigger');
|
|
510
|
+
this.hasAudience = this.slotHasNavigationItems('audience', 'a, button');
|
|
511
|
+
this.hasGlobalNavSecondary = this.slotHasNavigationItems('global-nav-secondary', 'a, button');
|
|
439
512
|
this.hasLocalNav = !!this.host.querySelector('[slot="local-nav"]');
|
|
440
513
|
}
|
|
441
514
|
switchLanguageSwitchMode() {
|
|
@@ -445,16 +518,25 @@ const PostHeader = class {
|
|
|
445
518
|
});
|
|
446
519
|
}
|
|
447
520
|
onFocusChange(event) {
|
|
448
|
-
|
|
449
|
-
|
|
521
|
+
if (event.type === 'focusout') {
|
|
522
|
+
// Ignore focus moving between elements of the header (e.g. into the language menu flyout)
|
|
523
|
+
if (this.isWithinHeader(event.relatedTarget))
|
|
524
|
+
return;
|
|
525
|
+
delete this.host.dataset.expanded;
|
|
450
526
|
return;
|
|
527
|
+
}
|
|
528
|
+
// Mouse focus never changes the state
|
|
529
|
+
// collapsing here would move the controls away from the pointer before the click completes
|
|
451
530
|
const isFocusVisible = this.getDeepActiveElement()?.matches(':focus-visible');
|
|
452
|
-
|
|
453
|
-
|
|
531
|
+
if (!isFocusVisible)
|
|
532
|
+
return;
|
|
533
|
+
// Keyboard focus: expanded only while focus is in the part that collapses on scroll
|
|
454
534
|
const collapsiblePart = this.device === 'desktop' ? this.globalHeader : this.localHeader;
|
|
455
535
|
const isInCollapsiblePart = event.composedPath().includes(collapsiblePart);
|
|
456
|
-
|
|
457
|
-
|
|
536
|
+
this.host.toggleAttribute('data-expanded', isInCollapsiblePart);
|
|
537
|
+
// The header is now expanded, so the focused control stays visible at the previous position
|
|
538
|
+
if (isInCollapsiblePart)
|
|
539
|
+
this.restoreScrollPosition();
|
|
458
540
|
}
|
|
459
541
|
isWithinHeader(target) {
|
|
460
542
|
return target instanceof Node && (target === this.host || this.host.contains(target));
|
|
@@ -477,11 +559,10 @@ const PostHeader = class {
|
|
|
477
559
|
}
|
|
478
560
|
render() {
|
|
479
561
|
const onDesktop = this.device === 'desktop';
|
|
480
|
-
|
|
481
|
-
return (index.h(index.Host, { key: 'b56ff059c4b6b855a4b05012822d29b59893db1e', "data-version": _package.version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, index.h("header", { key: 'f8b6e0fc7f56e4b07e2efa518a83cbac1ca99aa1' }, index.h("div", { key: '46a213668dafe872c97ecc1eba14aa26f43e9d7b', ref: el => (this.globalHeader = el), class: "global-header" }, index.h("div", { key: '4b2e823d1b3029dec5fbe00bdc85cdac2d9620b7', class: "section" }, index.h("div", { key: 'd82d6fe19a4bb0fa5803e34f203e23bf0e50a54c', class: "logo" }, index.h("slot", { key: 'b7658b72eb94cd41f616c035b5bbdc5c74f54553', name: "post-logo" })), index.h("div", { key: '7e85473a77094a2636c33536dd97e8a1cbaef808', class: "sliding-controls" }, onDesktop && (index.h("div", { key: 'c517e32382d0d79152f41ba0027466a9d4248a31', class: "audience" }, index.h("slot", { key: '35904084eae6c4ac4181b3b60ce884413195c8f0', name: "audience" }))), index.h("slot", { key: '1de9359402c52f416c44607282f5a3f47af246b8', name: "global-nav-primary" }), (onDesktop || !this.hasMainNav) && [
|
|
562
|
+
return (index.h(index.Host, { key: '54f311b0483a77983c8a260a730e12b10f936f2d', "data-version": _package.version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, index.h("span", { key: '464d6e58d8e3beec6ae8a306510e669cb2e2fec9', class: "scroll-max", "aria-hidden": "true", ref: el => (this.scrollMaxElement = el) }), index.h("header", { key: '1819b5300843eb4c66141a97c46832cd1ca54466' }, index.h("div", { key: 'e1fd6075137cb64ef6d0835d1317659da19a17f6', ref: el => (this.globalHeader = el), class: "global-header" }, index.h("div", { key: 'd1833a01d27a59ef9ef3203734e14f8bfe4a1541', class: "section" }, index.h("div", { key: '299fcbb952c0402f239a721459a2ea48a5959131', class: "logo" }, index.h("slot", { key: 'cb0b192d7d12dd4ba7a5bcdfea2a9f51232ebc45', name: "post-logo" })), index.h("div", { key: '69a54116557786db7a1c6401c9fdff4808b64ee2', class: "sliding-controls" }, onDesktop && (index.h("div", { key: '3e81349af69790454a0ff80d058cc1d1d34d27a2', class: "audience" }, index.h("slot", { key: '37a1d787da40f9bd3188aa5b640262b802a27310', name: "audience" }))), index.h("slot", { key: '6af478e6aa380ead70df3b6202b1b8de0573f786', name: "global-nav-primary" }), (onDesktop || !this.hasBurgerMenu) && [
|
|
482
563
|
index.h("slot", { key: "global-nav-secondary", name: "global-nav-secondary" }),
|
|
483
564
|
index.h("slot", { key: "language-menu", name: "language-menu" }),
|
|
484
|
-
], index.h("slot", { key: '
|
|
565
|
+
], index.h("slot", { key: '9f1afec759f7c0ec8448077eb81164e5f2f2a86e', name: "post-login" }), (this.hasBurgerMenu) && (index.h("post-togglebutton", { key: '746afc808afffe295478d5ae8effdad99f551f44', class: "burger-button", ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, index.h("span", { key: '4ea61aa1d259b38254914b8f78b4edbd5dbaab2a' }, this.textMenu), index.h("post-icon", { key: '711fd906af8578dc7ecdb90d2d238828e7f184e6', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), index.h("post-icon", { key: '9797c5b101b734f47f35572fb63def04fd63c349', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" })))))), index.h("div", { key: '8e202c4085f060843bbb0e99c1b7af190fdb7c1d', ref: el => (this.localHeader = el), class: { 'local-header': true, 'megadropdown-open': this.megadropdownOpen } }, index.h("div", { key: '18035a103958aadc9187d33a938be44a8e13a2d6', class: "section" }, index.h("slot", { key: '77cb8436bea9bfae7a5ab2bcd5594dc92dc6a3ab', name: "side-nav" }), index.h("slot", { key: '4875e26bc0cc181e7b19771aafe56d27dd451844', name: "title" }), this.hasTitle && index.h("slot", { key: 'c3d1d22045c19a4ed860ae88e9ebb3d6279341af', name: "local-nav" }), onDesktop && index.h("slot", { key: '8e65de4132f2b7905b126849e2703da3e9b0a1a0', name: "main-nav" }), onDesktop && !this.hasTitle && index.h("slot", { key: '76b439a83965fe0669de37c1f2a29993abdbad30', name: "local-nav" }))), this.hasBurgerMenu && this.renderBurgerMenu())));
|
|
485
566
|
}
|
|
486
567
|
get host() { return index.getElement(this); }
|
|
487
568
|
static get watchers() { return {
|
|
@@ -515,7 +596,7 @@ const ANIMATION_KEYS = [
|
|
|
515
596
|
'throb',
|
|
516
597
|
];
|
|
517
598
|
|
|
518
|
-
const postIconCss = () => `:host{display:inline-block;width:1em;height:1em;vertical-align:-0.15em}span{display:block;width:100%;height:100%;fill:currentColor;forced-color-adjust:preserve-parent-color;background-color:currentColor
|
|
599
|
+
const postIconCss = () => `:host{display:inline-block;width:1em;height:1em;vertical-align:-0.15em}span{display:block;width:100%;height:100%;fill:currentColor;forced-color-adjust:preserve-parent-color;background-color:currentColor;mask-position:center center;mask-repeat:no-repeat;mask-size:100%}:host([flip-h]:not([flip-h=false])){scale:-1 1}:host([flip-v]:not([flip-v=false])){scale:1 -1}:host([flip-h][flip-v]:not([flip-h=false],[flip-v=false])){scale:-1}:host([animation]){transform-origin:center}:host([animation=cylon]){animation:icon-animation-cylon .75s ease-in-out infinite alternate}:host([animation=cylon-vertical]){animation:icon-animation-cylon-vertical .75s ease-in-out infinite alternate}:host([animation=spin]){animation:icon-animation-spin 2s linear infinite normal}:host([animation=spin-reverse]){animation:icon-animation-spin 2s linear infinite reverse}:host([animation=fade]){animation:icon-animation-fade .75s ease-in-out infinite alternate}:host([animation=throb]){animation:icon-animation-throb .75s ease-in-out infinite alternate}@keyframes icon-animation-cylon{from{transform:translateX(-25%)}to{transform:translateX(25%)}}@keyframes icon-animation-cylon-vertical{from{transform:translateY(25%)}to{transform:translateY(-25%)}}@keyframes icon-animation-fade{from{opacity:.1}to{opacity:1}}@keyframes icon-animation-spin{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes icon-animation-throb{from{opacity:.5;transform:scale(0.5)}to{opacity:1;transform:scale(1)}}`;
|
|
519
600
|
|
|
520
601
|
var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
521
602
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -602,7 +683,6 @@ const PostIcon = class {
|
|
|
602
683
|
getStyles() {
|
|
603
684
|
const url = this.getUrl();
|
|
604
685
|
return Object.fromEntries(Object.entries({
|
|
605
|
-
'-webkit-mask-image': `url(${url})`,
|
|
606
686
|
'mask-image': `url('${url}')`,
|
|
607
687
|
'transform': (this.scale && !Number.isNaN(Number(this.scale)) ? 'scale(' + this.scale + ')' : '') +
|
|
608
688
|
(this.rotate && !Number.isNaN(Number(this.rotate))
|
|
@@ -611,7 +691,7 @@ const PostIcon = class {
|
|
|
611
691
|
}).filter(([_key, value]) => value !== null));
|
|
612
692
|
}
|
|
613
693
|
render() {
|
|
614
|
-
return (index.h(index.Host, { key: '
|
|
694
|
+
return (index.h(index.Host, { key: '2d49a76d0f02832caf330d3419aea80f0aefb4d1', "data-version": _package.version }, index.h("span", { key: 'bf5ee6b7fc3e7acf2b23d7787928f59b49ce73d5', style: this.getStyles() })));
|
|
615
695
|
}
|
|
616
696
|
get host() { return index.getElement(this); }
|
|
617
697
|
};
|
|
@@ -635,7 +715,7 @@ PostIcon.style = postIconCss();
|
|
|
635
715
|
|
|
636
716
|
const SWITCH_VARIANTS = ['list', 'menu'];
|
|
637
717
|
|
|
638
|
-
const postLanguageMenuCss = () => `:host{display:flex}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.post-language-menu-dropdown-container{display:flex;flex-direction:column}.post-language-menu-trigger{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:4px 10px;gap:6px;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);text-transform:uppercase;line-height:inherit;cursor:pointer}.post-language-menu-trigger:not(:disabled):hover{text-decoration:none}.post-language-menu-trigger:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.post-language-menu-trigger{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}.post-language-menu-trigger:
|
|
718
|
+
const postLanguageMenuCss = () => `:host{display:flex}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.post-language-menu-dropdown-container{display:flex;flex-direction:column}.post-language-menu-trigger{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:4px 10px;gap:6px;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);text-transform:uppercase;line-height:inherit;cursor:pointer}.post-language-menu-trigger:not(:disabled):hover{text-decoration:none}.post-language-menu-trigger:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.post-language-menu-trigger{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}.post-language-menu-trigger:focus-visible{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:focus-visible{outline-color:Highlight !important}}.post-language-menu-trigger.pretend-focus{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger.pretend-focus{outline-color:Highlight !important}}.post-language-menu-trigger:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:has(:focus-visible){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.post-language-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger{border-width:1px !important;transition:none}.post-language-menu-trigger:is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.post-language-menu-trigger:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);color:var(--post-scheme-color-interactive-button-primary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg)}.post-language-menu-trigger post-icon{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true]) post-icon{transform:rotate(180deg)}.post-language-menu-list{display:flex;gap:8px;margin-top:16px}`;
|
|
639
719
|
|
|
640
720
|
var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
641
721
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -817,7 +897,7 @@ __decorate$7([
|
|
|
817
897
|
], PostLanguageMenuItem.prototype, "url", void 0);
|
|
818
898
|
PostLanguageMenuItem.style = postLanguageMenuItemCss();
|
|
819
899
|
|
|
820
|
-
const postLogoCss = () => `:host,.logo{display:inline-block}:host,:host .logo>svg,.logo,.logo .logo>svg{height:100%}.description{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.logo-link{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}.logo-link:
|
|
900
|
+
const postLogoCss = () => `:host,.logo{display:inline-block}:host,:host .logo>svg,.logo,.logo .logo>svg{height:100%}.description{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.logo-link{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}.logo-link:focus-visible{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.logo-link:focus-visible{outline-color:Highlight !important}}.logo-link.pretend-focus{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.logo-link.pretend-focus{outline-color:Highlight !important}}.logo-link:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.logo-link:has(:focus-visible){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.logo-link:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.logo-link:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.logo-link{outline-offset:var(--post-device-spacing-padding-28) !important}.logo-link:focus,.logo-link:focus-visible{border-radius:var(--post-device-border-radius-focus)}`;
|
|
821
901
|
|
|
822
902
|
var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
823
903
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -844,7 +924,7 @@ const PostLogo = class {
|
|
|
844
924
|
render() {
|
|
845
925
|
const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
|
|
846
926
|
const LogoTag = logoLink ? 'a' : 'span';
|
|
847
|
-
return (index.h(index.Host, { key: '
|
|
927
|
+
return (index.h(index.Host, { key: '84ece8e71d7dec66aa634d9a8a37d6bf3197c1b6', "data-version": _package.version }, index.h(LogoTag, { key: '1531c6e8f32d42e63f5482d2983f18e4c9a23b1a', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, index.h("span", { key: 'd45d33329e30de0de9de56f2d588995a7f97d01e', class: "description" }, index.h("slot", { key: 'e8665c8d739dc2a2968bf1193c26ba1d1e731b38', onSlotchange: () => this.checkDescription() })), index.h("svg", { key: 'bb3f534952e29e2e43816c5a5dd55541d05bee26', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, index.h("g", { key: '9ca05c263f6c9f41cc5406ccfd030a713ffe0254', id: "Logo" }, index.h("rect", { key: '30a59adc0eec11af2d90180da1f5a95b03175d21', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), index.h("polygon", { key: 'b1cbe7c575d36cf26a1cc41c9124625c2d1e5ef1', fill: "#ff0000", points: "34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3" }), index.h("path", { key: '398027f23c8c9a4cf2bc7f8d7c8aa4ec0466f0be', d: "M53.56234,31.10526c0,2.41272-1.99154,4.29475-4.51723,4.29475H45.2v-8.3h3.84511C51.66802,27.1,53.56234,28.78889,53.56234,31.10526z M50.69666,19H36v34h9.2V42.9h5.49666c6.75131,0,11.9971-5.15137,11.9971-11.8057C62.69376,24.39136,57.35099,19,50.69666,19z" }))))));
|
|
848
928
|
}
|
|
849
929
|
get host() { return index.getElement(this); }
|
|
850
930
|
};
|
|
@@ -853,7 +933,7 @@ __decorate$6([
|
|
|
853
933
|
], PostLogo.prototype, "url", void 0);
|
|
854
934
|
PostLogo.style = postLogoCss();
|
|
855
935
|
|
|
856
|
-
const postMainnavigationCss = () => `:host{display:flex;user-select:none;max-width:var(--post-header-content-max-width)}@media screen and (min-width: 1024px){:host{width:fit-content;margin-inline-start:calc(-1*var(--post-local-header-padding-inline-start));margin-inline-end:calc(-1*var(--post-local-header-padding-inline-end));overflow:hidden}}nav{flex:1 1 auto}@media screen and (min-width: 1024px){nav{scroll-behavior:smooth;max-width:100vw;overflow:hidden;height:var(--post-main-navigation-height)}}.scroll-control{z-index:1;cursor:pointer;padding:16px;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}.scroll-control.scroll-left{margin-inline-end:-48px}.scroll-control.scroll-right{margin-inline-start:-48px}.scroll-control.d-none{display:none}.scroll-control post-icon{font-size:16px}`;
|
|
936
|
+
const postMainnavigationCss = () => `:host{display:flex;user-select:none;max-width:var(--post-header-content-max-width)}@media screen and (min-width: 1024px){:host{width:fit-content;margin-inline-start:calc(-1*var(--post-local-header-padding-inline-start));margin-inline-end:calc(-1*var(--post-local-header-padding-inline-end));overflow:hidden}}nav{flex:1 1 auto}@media screen and (min-width: 1024px){nav{scroll-behavior:smooth;max-width:100vw;overflow:hidden;height:var(--post-main-navigation-height)}}.scroll-control{z-index:1;cursor:pointer;padding:16px;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}.scroll-control:hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg)}.scroll-control.scroll-left{margin-inline-end:-48px}.scroll-control.scroll-right{margin-inline-start:-48px}.scroll-control.d-none{display:none}.scroll-control post-icon{font-size:16px}`;
|
|
857
937
|
|
|
858
938
|
var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
859
939
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -984,7 +1064,7 @@ const PostMainnavigation = class {
|
|
|
984
1064
|
}, NAVBAR_DISABLE_DURATION);
|
|
985
1065
|
}
|
|
986
1066
|
render() {
|
|
987
|
-
return (index.h(index.Host, { key: '
|
|
1067
|
+
return (index.h(index.Host, { key: '2e9f2361426298f620411b1d064e166992ba326e', version: _package.version, class: this.canScroll ? 'scrollable' : '' }, index.h("div", { key: '10103d153e37fd591c2ce062ef7455228adbf5b9', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, index.h("post-icon", { key: '8bb9b82626d05c1fe8f4fd1bb9f8e6d6be59ad8a', "aria-hidden": "true", name: "chevronleft" })), index.h("nav", { key: '6905afe8c2dfcf0f2411b45237b52d63f187d2c9', ref: el => (this.navbar = el), "aria-label": this.textMain }, index.h("slot", { key: '2db905e52b1604d9c6097734d055100a58625f09' })), index.h("div", { key: 'f8ec4f906f1c99fec2198bb350ac1735c2de8469', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, index.h("post-icon", { key: 'afed8c1778691ca5b849d78ee20d51a4b8c02fe6', "aria-hidden": "true", name: "chevronright" }))));
|
|
988
1068
|
}
|
|
989
1069
|
get host() { return index.getElement(this); }
|
|
990
1070
|
};
|
|
@@ -994,7 +1074,7 @@ __decorate$5([
|
|
|
994
1074
|
], PostMainnavigation.prototype, "textMain", void 0);
|
|
995
1075
|
PostMainnavigation.style = postMainnavigationCss();
|
|
996
1076
|
|
|
997
|
-
const postMegadropdownCss = () => `*,::before,::after{box-sizing:border-box}.megadropdown{position:absolute;inset-inline:0;overflow-y:auto;box-shadow:var(--post-device-elevation-300)}@media screen and (min-width: 1024px){.megadropdown{max-height:calc(100vh - var(--post-header-height) - 48px);background-color:#f0efed;z-index:-1;inset-block-start:100%}.megadropdown.slide-in{animation:slide-down 350ms forwards}.megadropdown.slide-out{animation:slide-up 350ms forwards}}@media screen and (max-width: 1023.98px){.megadropdown{background-color:#fafafa;z-index:1;inset-block-start:var(--post-header-navigation-current-inset);overscroll-behavior:contain}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.megadropdown{border-block-end:1px solid CanvasText}}.section{width:100%;max-width:var(--post-header-content-max-width);margin-inline:auto;position:relative}@media screen and (min-width: 1024px){.section{padding:48px 40px 40px}}@media screen and (max-width: 1023.98px){.section{display:flex;flex-direction:column;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));padding-inline:var(--post-burger-menu-padding-inline);padding-block-start:24px}}@media screen and (max-width: 1023.98px){.section .megadropdown-content{padding-block-end:max(24px, env(safe-area-inset-bottom, 0px))}}.megadropdown-title{margin-block:0 16px;font-weight:950}@media screen and (min-width: 600px)and (max-width: 1023.98px){.megadropdown-title{font-size:1.25rem}}@media screen and (min-width: 0)and (max-width: 599.98px){.megadropdown-title{font-size:1.125rem}}.back-button{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;min-height:var(--post-device-sizing-interactive-button-height-4);gap:var(--post-device-spacing-gap-inline-11);padding:0 var(--post-device-spacing-padding-inline-7);border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);order:-1;width:fit-content;padding-inline:0}.back-button:not(:disabled):hover{text-decoration:none}.back-button:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.back-button{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}.back-button:
|
|
1077
|
+
const postMegadropdownCss = () => `*,::before,::after{box-sizing:border-box}.megadropdown{position:absolute;inset-inline:0;overflow-y:auto;box-shadow:var(--post-device-elevation-300)}@media screen and (min-width: 1024px){.megadropdown{max-height:calc(100vh - var(--post-header-height) - 48px);background-color:#f0efed;z-index:-1;inset-block-start:100%}.megadropdown.slide-in{animation:slide-down 350ms forwards}.megadropdown.slide-out{animation:slide-up 350ms forwards}}@media screen and (max-width: 1023.98px){.megadropdown{background-color:#fafafa;z-index:1;inset-block-start:var(--post-header-navigation-current-inset);overscroll-behavior:contain}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.megadropdown{border-block-end:1px solid CanvasText}}.section{width:100%;max-width:var(--post-header-content-max-width);margin-inline:auto;position:relative}@media screen and (min-width: 1024px){.section{padding:48px 40px 40px}}@media screen and (max-width: 1023.98px){.section{display:flex;flex-direction:column;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));padding-inline:var(--post-burger-menu-padding-inline);padding-block-start:24px}}@media screen and (max-width: 1023.98px){.section .megadropdown-content{padding-block-end:max(24px, env(safe-area-inset-bottom, 0px))}}.megadropdown-title{margin-block:0 16px;font-weight:950}@media screen and (min-width: 600px)and (max-width: 1023.98px){.megadropdown-title{font-size:1.25rem}}@media screen and (min-width: 0)and (max-width: 599.98px){.megadropdown-title{font-size:1.125rem}}.back-button{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;min-height:var(--post-device-sizing-interactive-button-height-4);gap:var(--post-device-spacing-gap-inline-11);padding:0 var(--post-device-spacing-padding-inline-7);border-radius:calc(var(--post-device-sizing-interactive-button-height-4) / 2);border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);order:-1;width:fit-content;padding-inline:0}.back-button:not(:disabled):hover{text-decoration:none}.back-button:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.back-button{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}.back-button:focus-visible{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.back-button:focus-visible{outline-color:Highlight !important}}.back-button.pretend-focus{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.back-button.pretend-focus{outline-color:Highlight !important}}.back-button:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.back-button:has(:focus-visible){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.back-button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.back-button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.back-button{border-width:1px !important;transition:none}.back-button:is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.back-button>post-icon{width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5);flex-shrink:0}.back-button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg)}@media screen and (min-width: 600px)and (max-width: 1023.98px){.back-button{margin-block-end:32px}}@media screen and (min-width: 0)and (max-width: 599.98px){.back-button{margin-block-end:24px}}.close-button{position:absolute;inset-block-start:8px;inset-inline-end:8px}@media screen and (max-width: 1023.98px){.close-button{display:none}}`;
|
|
998
1078
|
|
|
999
1079
|
var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1000
1080
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1017,7 +1097,7 @@ const PostMegadropdown = class {
|
|
|
1017
1097
|
index.registerInstance(this, hostRef);
|
|
1018
1098
|
this.postToggleMegadropdown = index.createEvent(this, "postToggleMegadropdown");
|
|
1019
1099
|
this.currentAnimation = null;
|
|
1020
|
-
this.
|
|
1100
|
+
this.animationDirection = null;
|
|
1021
1101
|
this.fsAnimationOptions = {
|
|
1022
1102
|
translate: -10,
|
|
1023
1103
|
duration: 350,
|
|
@@ -1045,7 +1125,7 @@ const PostMegadropdown = class {
|
|
|
1045
1125
|
return;
|
|
1046
1126
|
}
|
|
1047
1127
|
// Ignore clicks on the trigger or its contents to prevent running hide() twice
|
|
1048
|
-
if (this.megadropdownTrigger
|
|
1128
|
+
if (this.megadropdownTrigger?.contains(target)) {
|
|
1049
1129
|
return;
|
|
1050
1130
|
}
|
|
1051
1131
|
if (target instanceof HTMLElement) {
|
|
@@ -1087,9 +1167,9 @@ const PostMegadropdown = class {
|
|
|
1087
1167
|
* Toggles the dropdown visibility based on its current state.
|
|
1088
1168
|
*/
|
|
1089
1169
|
async toggle() {
|
|
1090
|
-
if (this.
|
|
1170
|
+
if (this.animationDirection) {
|
|
1091
1171
|
// If this is already animating towards a future state -> reverse intent
|
|
1092
|
-
return this.
|
|
1172
|
+
return this.animationDirection === 'in' ? this.hide() : this.show();
|
|
1093
1173
|
}
|
|
1094
1174
|
return this.isVisible ? this.hide() : this.show();
|
|
1095
1175
|
}
|
|
@@ -1145,6 +1225,9 @@ const PostMegadropdown = class {
|
|
|
1145
1225
|
this.forceClose();
|
|
1146
1226
|
return;
|
|
1147
1227
|
}
|
|
1228
|
+
// Already closed or already closing
|
|
1229
|
+
if (!this.isVisible || this.animationDirection === 'out')
|
|
1230
|
+
return;
|
|
1148
1231
|
// Update trigger state
|
|
1149
1232
|
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
|
|
1150
1233
|
try {
|
|
@@ -1181,23 +1264,34 @@ const PostMegadropdown = class {
|
|
|
1181
1264
|
}
|
|
1182
1265
|
// Run the respective animation
|
|
1183
1266
|
createAnimation(direction) {
|
|
1267
|
+
// Keep the last frame of the closing animation until the container is hidden,
|
|
1268
|
+
// otherwise it snaps back to full opacity for a frame before display: none is applied
|
|
1269
|
+
const fill = direction === 'out' ? 'forwards' : 'none';
|
|
1184
1270
|
if (this.device === 'desktop') {
|
|
1185
|
-
return fadeSlide.fadeSlide(this.animatedContainer, direction, this.fsAnimationOptions);
|
|
1271
|
+
return fadeSlide.fadeSlide(this.animatedContainer, direction, { ...this.fsAnimationOptions, fill });
|
|
1186
1272
|
}
|
|
1187
1273
|
return slide(this.animatedContainer, direction, {
|
|
1188
1274
|
translate: 100,
|
|
1189
1275
|
duration: 350,
|
|
1190
1276
|
easing: direction === 'in' ? 'ease-in' : 'ease-out',
|
|
1277
|
+
fill,
|
|
1191
1278
|
});
|
|
1192
1279
|
}
|
|
1193
1280
|
async animate(direction) {
|
|
1194
1281
|
this.cancelAnimation();
|
|
1195
1282
|
this.currentAnimation = this.createAnimation(direction);
|
|
1196
|
-
//
|
|
1197
|
-
this.
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1283
|
+
// Used to avoid toggle() de-sync and double hide() calls
|
|
1284
|
+
this.animationDirection = direction;
|
|
1285
|
+
try {
|
|
1286
|
+
await this.currentAnimation.finished;
|
|
1287
|
+
}
|
|
1288
|
+
finally {
|
|
1289
|
+
if (this.animationDirection === direction)
|
|
1290
|
+
this.animationDirection = null;
|
|
1291
|
+
}
|
|
1292
|
+
// The closing animation is kept (fill: forwards) and cancelled by the next animate() call
|
|
1293
|
+
if (direction === 'in')
|
|
1294
|
+
this.currentAnimation = null;
|
|
1201
1295
|
}
|
|
1202
1296
|
cancelAnimation() {
|
|
1203
1297
|
this.currentAnimation?.cancel();
|
|
@@ -1238,11 +1332,15 @@ const PostMegadropdown = class {
|
|
|
1238
1332
|
}
|
|
1239
1333
|
}
|
|
1240
1334
|
handleTabOutside(e) {
|
|
1241
|
-
if (e.key
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1335
|
+
if (e.key !== 'Tab' || this.device !== 'desktop' || !this.isVisible)
|
|
1336
|
+
return;
|
|
1337
|
+
const target = e.target;
|
|
1338
|
+
if (this.host.contains(target))
|
|
1339
|
+
return;
|
|
1340
|
+
// Focus on the own trigger keeps it open, Enter / Space on the trigger closes it
|
|
1341
|
+
if (this.megadropdownTrigger?.contains(target))
|
|
1342
|
+
return;
|
|
1343
|
+
this.hide(false);
|
|
1246
1344
|
}
|
|
1247
1345
|
/**
|
|
1248
1346
|
* Sets up a MutationObserver on the host to watch for changes
|
|
@@ -1290,7 +1388,7 @@ const PostMegadropdown = class {
|
|
|
1290
1388
|
}
|
|
1291
1389
|
render() {
|
|
1292
1390
|
const containerStyle = this.isVisible ? {} : { display: 'none' };
|
|
1293
|
-
return (index.h(index.Host, { key: '
|
|
1391
|
+
return (index.h(index.Host, { key: '9be9668e8fa4599cdbd8299d6e317d7207254558', version: _package.version }, index.h("div", { key: '1e655c82f2bdfb5f796c77e25e553869b0afd5f6', ref: el => (this.animatedContainer = el), class: "megadropdown", style: containerStyle }, index.h("div", { key: '9da73fb287424b30cafe0d8c899407dc752391b4', class: "section" }, this.device !== 'desktop' && this.megadropdownTitle && (index.h("p", { key: '86b94b9b304b490ad5a688ef9be2707b857c43a8', class: "megadropdown-title" }, this.megadropdownTitle)), index.h("div", { key: 'c49520cc0027cc62d6a5fce2bd8eda32989cdfef', class: "megadropdown-content" }, index.h("slot", { key: '1f7169574e12f8395f6b5eacfc03f1171238c5e9' })), this.device === 'desktop' ? (index.h("post-closebutton", { onClick: () => this.hide(true), class: "close-button", size: "small", placement: "manual" }, this.textClose)) : (index.h("button", { onClick: () => this.hide(true), class: "back-button" }, index.h("post-icon", { name: "arrowleft" }), this.textBack))))));
|
|
1294
1392
|
}
|
|
1295
1393
|
get host() { return index.getElement(this); }
|
|
1296
1394
|
};
|
|
@@ -1304,7 +1402,7 @@ __decorate$4([
|
|
|
1304
1402
|
], PostMegadropdown.prototype, "textBack", void 0);
|
|
1305
1403
|
PostMegadropdown.style = postMegadropdownCss();
|
|
1306
1404
|
|
|
1307
|
-
const postMegadropdownTriggerCss = () => `button{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:4px 10px;gap:6px;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg)}button:not(:disabled):hover{text-decoration:none}button:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}button{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}button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button{border-width:1px !important;transition:none}button:is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);color:var(--post-scheme-color-interactive-button-primary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg)}button{--post-nav-item-border-width:1px;width:100%;justify-content:start;position:relative;padding:12px 12px calc(12px - var(--post-nav-item-border-width)) 8px;gap:16px;border-radius:0;line-height:1.5;outline-color:currentColor !important;border-bottom:var(--post-nav-item-border-width) solid currentColor;height:100%}button:hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);border-bottom-color:rgba(0,0,0,0)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:none}button{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}button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;outline:none !important}button:is(:focus-visible,:has(:focus-visible),.pretend-focus)::after{content:"";position:absolute;inset:calc(-1*var(--post-device-spacing-padding-28));border-width:var(--post-device-border-width-focus);border-style:var(--post-core-border-style-solid);border-color:var(--post-scheme-color-interactive-focus-stroke);border-radius:var(--post-device-border-radius-focus);pointer-events:none}button:is(:focus-visible,:has(:focus-visible),.pretend-focus):hover::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}button:is(:focus-visible,:has(:focus-visible),.pretend-focus):is([aria-current],[aria-pressed=true],[aria-expanded=true],.active)::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;outline:none !important}button:is(:focus-visible,:focus-within,.pretend-focus)::after{content:"";position:absolute;inset:calc(-1*var(--post-device-spacing-padding-28));border-width:var(--post-device-border-width-focus);border-style:var(--post-core-border-style-solid);border-color:var(--post-scheme-color-interactive-focus-stroke);border-radius:var(--post-device-border-radius-focus);pointer-events:none}button:is(:focus-visible,:focus-within,.pretend-focus):hover::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}button:is(:focus-visible,:focus-within,.pretend-focus):is([aria-current],[aria-pressed=true],[aria-expanded=true],.active)::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}button>post-icon:where(:last-child){margin-inline-start:auto}@media screen and (min-width: 0)and (max-width: 599.98px){button{padding:9.5px 12px calc(9.5px - var(--post-nav-item-border-width)) 8px;gap:8px;font-size:.875rem}button>post-icon{font-size:1rem}}@media screen and (min-width: 600px)and (max-width: 1023.98px){button>post-icon{font-size:1.5rem}}@media screen and (min-width: 1024px){button{padding:16px 12px;gap:8px;border-bottom:0}}:host{position:relative;display:inline-block}button post-icon{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true]) post-icon{transform:rotate(180deg)}button>span{position:relative}button>span>span[aria-hidden]{font-weight:700;visibility:hidden}button>span>span[aria-hidden]:where(span:empty+*){visibility:visible}button>span>span:not([aria-hidden]){position:absolute;inset:0}@media screen and (min-width: 1024px){button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){font-weight:700}button[aria-expanded=true]{background-color:#f0efed;color:#050400;z-index:2}button[aria-expanded=true]:hover{box-shadow:inset 0 -0.7px 0 0 #f0efed}button[aria-expanded=true]{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}button[aria-expanded=true]:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}button[aria-expanded=true]:is(:focus-visible,:has(:focus-visible),.pretend-focus)::after{border-color:var(--post-scheme-color-interactive-focus-stroke)}}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){button[aria-expanded=true]:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@media screen and (min-width: 1024px){@supports not selector(:has(:focus-visible)){button[aria-expanded=true]:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}button[aria-expanded=true]:is(:focus-visible,:focus-within,.pretend-focus)::after{border-color:var(--post-scheme-color-interactive-focus-stroke)}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){button[aria-expanded=true]:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}}@media screen and (max-width: 1023.98px){button post-icon{margin-inline-start:auto;transform:rotate(-90deg) !important}}`;
|
|
1405
|
+
const postMegadropdownTriggerCss = () => `button{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:4px 10px;gap:6px;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg)}button:not(:disabled):hover{text-decoration:none}button:disabled{border-style:var(--post-core-border-style-dash);cursor:unset}button{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}button:focus-visible{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:focus-visible{outline-color:Highlight !important}}button.pretend-focus{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button.pretend-focus{outline-color:Highlight !important}}button:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:has(:focus-visible){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button{border-width:1px !important;transition:none}button:is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);color:var(--post-scheme-color-interactive-button-primary-enabled-fg);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg)}button{--post-nav-item-border-width:1px;width:100%;justify-content:start;position:relative;padding:12px 12px calc(12px - var(--post-nav-item-border-width)) 8px;gap:16px;border-radius:0;line-height:1.5;outline-color:currentColor !important;border-bottom:var(--post-nav-item-border-width) solid currentColor;height:100%}button:hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);color:var(--post-scheme-color-interactive-button-primary-hover-fg);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);border-bottom-color:rgba(0,0,0,0)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:none}button{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}button:focus-visible{outline-style:var(--post-core-border-style-solid) !important;outline:none !important}button:focus-visible::after{content:"";position:absolute;inset:calc(-1*var(--post-device-spacing-padding-28));border-width:var(--post-device-border-width-focus);border-style:var(--post-core-border-style-solid);border-color:var(--post-scheme-color-interactive-focus-stroke);border-radius:var(--post-device-border-radius-focus);pointer-events:none}button:focus-visible:hover::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}button:focus-visible:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active)::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:focus-visible{outline-color:Highlight !important}}button.pretend-focus{outline-style:var(--post-core-border-style-solid) !important;outline:none !important}button.pretend-focus::after{content:"";position:absolute;inset:calc(-1*var(--post-device-spacing-padding-28));border-width:var(--post-device-border-width-focus);border-style:var(--post-core-border-style-solid);border-color:var(--post-scheme-color-interactive-focus-stroke);border-radius:var(--post-device-border-radius-focus);pointer-events:none}button.pretend-focus:hover::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}button.pretend-focus:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active)::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button.pretend-focus{outline-color:Highlight !important}}button:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important;outline:none !important}button:has(:focus-visible)::after{content:"";position:absolute;inset:calc(-1*var(--post-device-spacing-padding-28));border-width:var(--post-device-border-width-focus);border-style:var(--post-core-border-style-solid);border-color:var(--post-scheme-color-interactive-focus-stroke);border-radius:var(--post-device-border-radius-focus);pointer-events:none}button:has(:focus-visible):hover::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}button:has(:focus-visible):is([aria-current],[aria-pressed=true],[aria-expanded=true],.active)::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:has(:focus-visible){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;outline:none !important}button:is(:focus-visible,:focus-within,.pretend-focus)::after{content:"";position:absolute;inset:calc(-1*var(--post-device-spacing-padding-28));border-width:var(--post-device-border-width-focus);border-style:var(--post-core-border-style-solid);border-color:var(--post-scheme-color-interactive-focus-stroke);border-radius:var(--post-device-border-radius-focus);pointer-events:none}button:is(:focus-visible,:focus-within,.pretend-focus):hover::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}button:is(:focus-visible,:focus-within,.pretend-focus):is([aria-current],[aria-pressed=true],[aria-expanded=true],.active)::after{border-color:var(--post-scheme-color-interactive-focus-stroke-inverted)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}button>post-icon:where(:last-child){margin-inline-start:auto}@media screen and (min-width: 0)and (max-width: 599.98px){button{padding:9.5px 12px calc(9.5px - var(--post-nav-item-border-width)) 8px;gap:8px;font-size:.875rem}button>post-icon{font-size:1rem}}@media screen and (min-width: 600px)and (max-width: 1023.98px){button>post-icon{font-size:1.5rem}}@media screen and (min-width: 1024px){button{padding:16px 12px;gap:8px;border-bottom:0}}:host{position:relative;display:inline-block}button post-icon{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true]) post-icon{transform:rotate(180deg)}button>span{position:relative}button>span>span[aria-hidden]{font-weight:700;visibility:hidden}button>span>span[aria-hidden]:where(span:empty+*){visibility:visible}button>span>span:not([aria-hidden]){position:absolute;inset:0}@media screen and (min-width: 1024px){button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){font-weight:700}button[aria-expanded=true]{background-color:#f0efed;color:#050400;z-index:2}button[aria-expanded=true]:hover{box-shadow:inset 0 -0.7px 0 0 #f0efed}button[aria-expanded=true]{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}button[aria-expanded=true]:focus-visible{outline-style:var(--post-core-border-style-solid) !important;outline-style:none !important}button[aria-expanded=true]:focus-visible::after{border-color:var(--post-scheme-color-interactive-focus-stroke)}}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){button[aria-expanded=true]:focus-visible{outline-color:Highlight !important}}@media screen and (min-width: 1024px){button[aria-expanded=true].pretend-focus{outline-style:var(--post-core-border-style-solid) !important;outline-style:none !important}button[aria-expanded=true].pretend-focus::after{border-color:var(--post-scheme-color-interactive-focus-stroke)}}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){button[aria-expanded=true].pretend-focus{outline-color:Highlight !important}}@media screen and (min-width: 1024px){button[aria-expanded=true]:has(:focus-visible){outline-style:var(--post-core-border-style-solid) !important;outline-style:none !important}button[aria-expanded=true]:has(:focus-visible)::after{border-color:var(--post-scheme-color-interactive-focus-stroke)}}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){button[aria-expanded=true]:has(:focus-visible){outline-color:Highlight !important}}@media screen and (min-width: 1024px){@supports not selector(:has(:focus-visible)){button[aria-expanded=true]:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;outline-style:none !important}button[aria-expanded=true]:is(:focus-visible,:focus-within,.pretend-focus)::after{border-color:var(--post-scheme-color-interactive-focus-stroke)}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){button[aria-expanded=true]:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}}@media screen and (max-width: 1023.98px){button post-icon{margin-inline-start:auto;transform:rotate(-90deg) !important}}`;
|
|
1308
1406
|
|
|
1309
1407
|
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1310
1408
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1375,7 +1473,7 @@ const PostMegadropdownTrigger = class {
|
|
|
1375
1473
|
this.megadropdown.toggle();
|
|
1376
1474
|
}
|
|
1377
1475
|
render() {
|
|
1378
|
-
return (index.h(index.Host, { key: '
|
|
1476
|
+
return (index.h(index.Host, { key: '40d8afcb6b0ec482c0a13f7b78493a66243e03a5', "data-version": _package.version }, index.h("button", { key: '6c1362cd4e1af22d26cf9ae74af4092cd083360c', ref: el => (this.interactiveButton = el), type: "button", "aria-haspopup": "menu", "aria-expanded": this.isMegadropdownExpanded.toString(), onClick: this.onClick.bind(this), onKeyDown: this.onKeyDown.bind(this), class: { active: this.active } }, index.h("span", { key: '6bd7d94da2055c1c6fb933402f2478a3cee12cc7' }, index.h("span", { key: '8109bdcc23c4a0f8c0861b774a974dde75b464f3', innerHTML: this.slottedContent }), index.h("span", { key: 'edd54adde0d7af4eb9cf7796183d01705d217500', "aria-hidden": "true" }, index.h("slot", { key: 'dbcc08bb882273f1074dd8963a4b86f67deb0c0a' }))), index.h("post-icon", { key: '7437573a492181cc3e5ddd59ac3695dc94d43e09', name: "chevrondown" }))));
|
|
1379
1477
|
}
|
|
1380
1478
|
get host() { return index.getElement(this); }
|
|
1381
1479
|
};
|
|
@@ -1388,7 +1486,7 @@ __decorate$3([
|
|
|
1388
1486
|
], PostMegadropdownTrigger.prototype, "onMegadropdownToggled", null);
|
|
1389
1487
|
PostMegadropdownTrigger.style = postMegadropdownTriggerCss();
|
|
1390
1488
|
|
|
1391
|
-
const postMenuCss = () => `:host{display:block}:where([part=post-menu]){display:flex;flex-direction:column;padding-block:8px}::slotted([slot=header]){margin-top:-8px;padding:16px;display:flex;align-items:center;gap:8px;border-block-end:1px solid #050400;font-weight:700}@media screen and (max-width: 1023.98px){::slotted([slot=header]){padding:12px 16px}}@media screen and (max-width: 779.98px){::slotted([slot=header]){padding:8px 16px}}post-popovercontainer::part(post-popovercontainer-content){background-color:#fff}`;
|
|
1489
|
+
const postMenuCss = () => `:host{display:block}:where([part=post-menu]){display:flex;flex-direction:column;padding-block:8px;overflow-y:auto;overscroll-behavior:contain}::slotted([slot=header]){margin-top:-8px;padding:16px;display:flex;align-items:center;gap:8px;border-block-end:1px solid #050400;font-weight:700}@media screen and (max-width: 1023.98px){::slotted([slot=header]){padding:12px 16px}}@media screen and (max-width: 779.98px){::slotted([slot=header]){padding:8px 16px}}post-popovercontainer::part(post-popovercontainer-content){background-color:#fff}`;
|
|
1392
1490
|
|
|
1393
1491
|
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1394
1492
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1508,7 +1606,7 @@ const PostMenu = class {
|
|
|
1508
1606
|
this.lastFocusedElement = this.root?.activeElement;
|
|
1509
1607
|
// Only focus the first item if the trigger was keyboard-focus-visible
|
|
1510
1608
|
// that's the browser's own signal for a keyboard-driven interaction.
|
|
1511
|
-
if (
|
|
1609
|
+
if (isFocusVisible.isFocusVisible(this.lastFocusedElement)) {
|
|
1512
1610
|
requestAnimationFrame(() => {
|
|
1513
1611
|
const menuItems = this.getSlottedItems();
|
|
1514
1612
|
if (menuItems.length > 0) {
|
|
@@ -1521,17 +1619,6 @@ const PostMenu = class {
|
|
|
1521
1619
|
this.lastFocusedElement.focus();
|
|
1522
1620
|
}
|
|
1523
1621
|
}
|
|
1524
|
-
wasFocusVisible(element) {
|
|
1525
|
-
if (!element)
|
|
1526
|
-
return false;
|
|
1527
|
-
try {
|
|
1528
|
-
return element.matches(':focus-visible');
|
|
1529
|
-
}
|
|
1530
|
-
catch {
|
|
1531
|
-
// Not supported, fall back to always focusing
|
|
1532
|
-
return true;
|
|
1533
|
-
}
|
|
1534
|
-
}
|
|
1535
1622
|
controlKeyDownHandler(e) {
|
|
1536
1623
|
const menuItems = this.getSlottedItems();
|
|
1537
1624
|
if (menuItems.length === 0) {
|
|
@@ -1583,7 +1670,7 @@ const PostMenu = class {
|
|
|
1583
1670
|
]));
|
|
1584
1671
|
}
|
|
1585
1672
|
render() {
|
|
1586
|
-
return (index.h(index.Host, { key: '
|
|
1673
|
+
return (index.h(index.Host, { key: '424d6a6b439f05d8fecca4814f2aeba53e7333b9', "data-version": _package.version }, index.h("post-popovercontainer", { key: '0dce87ba2c4731ac458105a10a80514c2db07b52', autoHide: true, autoResize: true, onPostShow: this.handlePostShown.bind(this), onPostBeforeToggle: this.handlePostBeforeToggle.bind(this), placement: this.placement, ref: e => (this.popoverRef = e) }, index.h("div", { key: '693bbd1e352d8c52f76dae4fba41558ef1ad4308', part: "post-menu" }, index.h("slot", { key: '7e3a24f00f99c99120ca75bf8a0b34aad27cbac3', name: "header" }), index.h("slot", { key: '1d9d360db4880ebc6e35cf2ac6cbdd738289f102' })))));
|
|
1587
1674
|
}
|
|
1588
1675
|
get host() { return index.getElement(this); }
|
|
1589
1676
|
};
|
|
@@ -1602,7 +1689,7 @@ __decorate$2([
|
|
|
1602
1689
|
], PostMenu.prototype, "handlePostBeforeToggle", null);
|
|
1603
1690
|
PostMenu.style = postMenuCss();
|
|
1604
1691
|
|
|
1605
|
-
const postMenuItemCss = () => `post-menu-item button{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;width:100%}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button{background-color:ButtonFace !important}post-menu-item button:hover{background-color:Highlight !important}}post-menu-item button,post-menu-item a{position:relative;display:flex;align-items:center;padding:8px 12px 8px 16px;gap:12px;font-size:.875rem;color:#050400;border-radius:0;text-decoration:none}@media screen and (min-width: 780px){post-menu-item button,post-menu-item a{font-size:1rem;padding-block:12px;gap:16px}}@media screen and (min-width: 1024px){post-menu-item button,post-menu-item a{font-size:1.25rem;padding-block:13px}}post-menu-item button:focus-visible,post-menu-item a:focus-visible{outline-
|
|
1692
|
+
const postMenuItemCss = () => `post-menu-item button{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;width:100%}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button{background-color:ButtonFace !important}post-menu-item button:hover{background-color:Highlight !important}}post-menu-item button,post-menu-item a{position:relative;display:flex;align-items:center;padding:8px 12px 8px 16px;gap:12px;font-size:.875rem;color:#050400;border-radius:0;text-decoration:none}@media screen and (min-width: 780px){post-menu-item button,post-menu-item a{font-size:1rem;padding-block:12px;gap:16px}}@media screen and (min-width: 1024px){post-menu-item button,post-menu-item a{font-size:1.25rem;padding-block:13px}}post-menu-item button:focus-visible,post-menu-item a:focus-visible{outline:none !important}post-menu-item button.pretend-focus,post-menu-item a.pretend-focus{outline:none !important}post-menu-item button:has(:focus-visible),post-menu-item a:has(:focus-visible){outline:none !important}@supports not selector(:has(:focus-visible)){post-menu-item button:is(:focus-visible,:focus-within,.pretend-focus),post-menu-item a:is(:focus-visible,:focus-within,.pretend-focus){outline:none !important}}post-menu-item button::after,post-menu-item a::after{content:"";position:absolute;inset:0;width:100%;height:100%;border-radius:calc(var(--post-device-border-radius-focus) - var(--post-device-spacing-padding-44))}post-menu-item button::after,post-menu-item a::after{outline-offset:var(--post-device-spacing-padding-44) !important;outline:#050400 none var(--post-device-border-width-focus) !important}post-menu-item button:focus-visible::after,post-menu-item a:focus-visible::after{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button:focus-visible::after,post-menu-item a:focus-visible::after{outline-color:Highlight !important}}post-menu-item button.pretend-focus::after,post-menu-item a.pretend-focus::after{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button.pretend-focus::after,post-menu-item a.pretend-focus::after{outline-color:Highlight !important}}post-menu-item button:has(:focus-visible)::after,post-menu-item a:has(:focus-visible)::after{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button:has(:focus-visible)::after,post-menu-item a:has(:focus-visible)::after{outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-menu-item button:is(:focus-visible,:focus-within,.pretend-focus)::after,post-menu-item a:is(:focus-visible,:focus-within,.pretend-focus)::after{outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button:is(:focus-visible,:focus-within,.pretend-focus)::after,post-menu-item a:is(:focus-visible,:focus-within,.pretend-focus)::after{outline-color:Highlight !important}}}post-menu-item button:hover,post-menu-item a:hover{background-color:#504f4b;color:#fff}post-menu-item button:hover:focus-visible::after,post-menu-item a:hover:focus-visible::after{outline-color:#fff !important}post-menu-item button:hover.pretend-focus::after,post-menu-item a:hover.pretend-focus::after{outline-color:#fff !important}post-menu-item button:hover:has(:focus-visible)::after,post-menu-item a:hover:has(:focus-visible)::after{outline-color:#fff !important}@supports not selector(:has(:focus-visible)){post-menu-item button:hover:is(:focus-visible,:focus-within,.pretend-focus)::after,post-menu-item a:hover:is(:focus-visible,:focus-within,.pretend-focus)::after{outline-color:#fff !important}}post-menu-item button post-icon,post-menu-item a post-icon{width:16px;height:16px;margin-block:4px}@media screen and (min-width: 780px){post-menu-item button post-icon,post-menu-item a post-icon{width:24px;height:24px;margin:0}}`;
|
|
1606
1693
|
|
|
1607
1694
|
const PostMenuItem = class {
|
|
1608
1695
|
constructor(hostRef) {
|
|
@@ -1682,7 +1769,7 @@ const PostMenuTrigger = class {
|
|
|
1682
1769
|
return null;
|
|
1683
1770
|
}
|
|
1684
1771
|
render() {
|
|
1685
|
-
return (index.h(index.Host, { key: '
|
|
1772
|
+
return (index.h(index.Host, { key: '8f43fe80dd56550141481f157a06caf559494291', "data-version": _package.version }, index.h("slot", { key: '1b5d220cff9894918aedc54b0585df75095dcb0e' })));
|
|
1686
1773
|
}
|
|
1687
1774
|
get host() { return index.getElement(this); }
|
|
1688
1775
|
};
|
|
@@ -1692,6 +1779,21 @@ __decorate$1([
|
|
|
1692
1779
|
], PostMenuTrigger.prototype, "for", void 0);
|
|
1693
1780
|
PostMenuTrigger.style = postMenuTriggerCss();
|
|
1694
1781
|
|
|
1782
|
+
const duration = 250;
|
|
1783
|
+
const easing = 'ease-out';
|
|
1784
|
+
function popIn(el) {
|
|
1785
|
+
if (!el)
|
|
1786
|
+
return;
|
|
1787
|
+
return el.animate([
|
|
1788
|
+
{ transform: 'scale(0.9)', opacity: 0 },
|
|
1789
|
+
{ transform: 'scale(1)', opacity: 1 },
|
|
1790
|
+
], {
|
|
1791
|
+
duration,
|
|
1792
|
+
easing,
|
|
1793
|
+
fill: 'forwards',
|
|
1794
|
+
});
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1695
1797
|
/**
|
|
1696
1798
|
* Custom positioning reference element.
|
|
1697
1799
|
* @see https://floating-ui.com/docs/virtual-elements
|
|
@@ -1737,23 +1839,6 @@ function getSideAxis(placement) {
|
|
|
1737
1839
|
function getAlignmentAxis(placement) {
|
|
1738
1840
|
return getOppositeAxis(getSideAxis(placement));
|
|
1739
1841
|
}
|
|
1740
|
-
function getAlignmentSides(placement, rects, rtl) {
|
|
1741
|
-
if (rtl === void 0) {
|
|
1742
|
-
rtl = false;
|
|
1743
|
-
}
|
|
1744
|
-
const alignment = getAlignment(placement);
|
|
1745
|
-
const alignmentAxis = getAlignmentAxis(placement);
|
|
1746
|
-
const length = getAxisLength(alignmentAxis);
|
|
1747
|
-
let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';
|
|
1748
|
-
if (rects.reference[length] > rects.floating[length]) {
|
|
1749
|
-
mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
|
|
1750
|
-
}
|
|
1751
|
-
return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
|
|
1752
|
-
}
|
|
1753
|
-
function getExpandedPlacements(placement) {
|
|
1754
|
-
const oppositePlacement = getOppositePlacement(placement);
|
|
1755
|
-
return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
|
|
1756
|
-
}
|
|
1757
1842
|
function getOppositeAlignmentPlacement(placement) {
|
|
1758
1843
|
return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');
|
|
1759
1844
|
}
|
|
@@ -1779,7 +1864,7 @@ function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
|
|
|
1779
1864
|
let list = getSideList(getSide(placement), direction === 'start', rtl);
|
|
1780
1865
|
if (alignment) {
|
|
1781
1866
|
list = list.map(side => side + "-" + alignment);
|
|
1782
|
-
|
|
1867
|
+
{
|
|
1783
1868
|
list = list.concat(list.map(getOppositeAlignmentPlacement));
|
|
1784
1869
|
}
|
|
1785
1870
|
}
|
|
@@ -1885,7 +1970,7 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
|
|
|
1885
1970
|
* - 0 = lies flush with the boundary
|
|
1886
1971
|
* @see https://floating-ui.com/docs/detectOverflow
|
|
1887
1972
|
*/
|
|
1888
|
-
async function detectOverflow(state, options) {
|
|
1973
|
+
async function detectOverflow$1(state, options) {
|
|
1889
1974
|
var _await$platform$isEle;
|
|
1890
1975
|
if (options === void 0) {
|
|
1891
1976
|
options = {};
|
|
@@ -1958,7 +2043,7 @@ const computePosition$1 = async (reference, floating, config) => {
|
|
|
1958
2043
|
} = config;
|
|
1959
2044
|
const platformWithDetectOverflow = platform.detectOverflow ? platform : {
|
|
1960
2045
|
...platform,
|
|
1961
|
-
detectOverflow
|
|
2046
|
+
detectOverflow: detectOverflow$1
|
|
1962
2047
|
};
|
|
1963
2048
|
const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
|
|
1964
2049
|
let rects = await platform.getElementRects({
|
|
@@ -2118,138 +2203,6 @@ const arrow$1 = options => ({
|
|
|
2118
2203
|
}
|
|
2119
2204
|
});
|
|
2120
2205
|
|
|
2121
|
-
/**
|
|
2122
|
-
* Optimizes the visibility of the floating element by flipping the `placement`
|
|
2123
|
-
* in order to keep it in view when the preferred placement(s) will overflow the
|
|
2124
|
-
* clipping boundary. Alternative to `autoPlacement`.
|
|
2125
|
-
* @see https://floating-ui.com/docs/flip
|
|
2126
|
-
*/
|
|
2127
|
-
const flip$1 = function (options) {
|
|
2128
|
-
if (options === void 0) {
|
|
2129
|
-
options = {};
|
|
2130
|
-
}
|
|
2131
|
-
return {
|
|
2132
|
-
name: 'flip',
|
|
2133
|
-
options,
|
|
2134
|
-
async fn(state) {
|
|
2135
|
-
var _middlewareData$arrow, _middlewareData$flip;
|
|
2136
|
-
const {
|
|
2137
|
-
placement,
|
|
2138
|
-
middlewareData,
|
|
2139
|
-
rects,
|
|
2140
|
-
initialPlacement,
|
|
2141
|
-
platform,
|
|
2142
|
-
elements
|
|
2143
|
-
} = state;
|
|
2144
|
-
const {
|
|
2145
|
-
mainAxis: checkMainAxis = true,
|
|
2146
|
-
crossAxis: checkCrossAxis = true,
|
|
2147
|
-
fallbackPlacements: specifiedFallbackPlacements,
|
|
2148
|
-
fallbackStrategy = 'bestFit',
|
|
2149
|
-
fallbackAxisSideDirection = 'none',
|
|
2150
|
-
flipAlignment = true,
|
|
2151
|
-
...detectOverflowOptions
|
|
2152
|
-
} = evaluate(options, state);
|
|
2153
|
-
|
|
2154
|
-
// If a reset by the arrow was caused due to an alignment offset being
|
|
2155
|
-
// added, we should skip any logic now since `flip()` has already done its
|
|
2156
|
-
// work.
|
|
2157
|
-
// https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643
|
|
2158
|
-
if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
|
|
2159
|
-
return {};
|
|
2160
|
-
}
|
|
2161
|
-
const side = getSide(placement);
|
|
2162
|
-
const initialSideAxis = getSideAxis(initialPlacement);
|
|
2163
|
-
const isBasePlacement = getSide(initialPlacement) === initialPlacement;
|
|
2164
|
-
const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
|
|
2165
|
-
const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
|
|
2166
|
-
const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';
|
|
2167
|
-
if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
|
|
2168
|
-
fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
|
|
2169
|
-
}
|
|
2170
|
-
const placements = [initialPlacement, ...fallbackPlacements];
|
|
2171
|
-
const overflow = await platform.detectOverflow(state, detectOverflowOptions);
|
|
2172
|
-
const overflows = [];
|
|
2173
|
-
let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
|
|
2174
|
-
if (checkMainAxis) {
|
|
2175
|
-
overflows.push(overflow[side]);
|
|
2176
|
-
}
|
|
2177
|
-
if (checkCrossAxis) {
|
|
2178
|
-
const sides = getAlignmentSides(placement, rects, rtl);
|
|
2179
|
-
overflows.push(overflow[sides[0]], overflow[sides[1]]);
|
|
2180
|
-
}
|
|
2181
|
-
overflowsData = [...overflowsData, {
|
|
2182
|
-
placement,
|
|
2183
|
-
overflows
|
|
2184
|
-
}];
|
|
2185
|
-
|
|
2186
|
-
// One or more sides is overflowing.
|
|
2187
|
-
if (!overflows.every(side => side <= 0)) {
|
|
2188
|
-
var _middlewareData$flip2, _overflowsData$filter;
|
|
2189
|
-
const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
|
|
2190
|
-
const nextPlacement = placements[nextIndex];
|
|
2191
|
-
if (nextPlacement) {
|
|
2192
|
-
const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
|
|
2193
|
-
if (!ignoreCrossAxisOverflow ||
|
|
2194
|
-
// We leave the current main axis only if every placement on that axis
|
|
2195
|
-
// overflows the main axis.
|
|
2196
|
-
overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
|
|
2197
|
-
// Try next placement and re-run the lifecycle.
|
|
2198
|
-
return {
|
|
2199
|
-
data: {
|
|
2200
|
-
index: nextIndex,
|
|
2201
|
-
overflows: overflowsData
|
|
2202
|
-
},
|
|
2203
|
-
reset: {
|
|
2204
|
-
placement: nextPlacement
|
|
2205
|
-
}
|
|
2206
|
-
};
|
|
2207
|
-
}
|
|
2208
|
-
}
|
|
2209
|
-
|
|
2210
|
-
// First, find the candidates that fit on the mainAxis side of overflow,
|
|
2211
|
-
// then find the placement that fits the best on the main crossAxis side.
|
|
2212
|
-
let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
|
|
2213
|
-
|
|
2214
|
-
// Otherwise fallback.
|
|
2215
|
-
if (!resetPlacement) {
|
|
2216
|
-
switch (fallbackStrategy) {
|
|
2217
|
-
case 'bestFit':
|
|
2218
|
-
{
|
|
2219
|
-
var _overflowsData$filter2;
|
|
2220
|
-
const placement = (_overflowsData$filter2 = overflowsData.filter(d => {
|
|
2221
|
-
if (hasFallbackAxisSideDirection) {
|
|
2222
|
-
const currentSideAxis = getSideAxis(d.placement);
|
|
2223
|
-
return currentSideAxis === initialSideAxis ||
|
|
2224
|
-
// Create a bias to the `y` side axis due to horizontal
|
|
2225
|
-
// reading directions favoring greater width.
|
|
2226
|
-
currentSideAxis === 'y';
|
|
2227
|
-
}
|
|
2228
|
-
return true;
|
|
2229
|
-
}).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];
|
|
2230
|
-
if (placement) {
|
|
2231
|
-
resetPlacement = placement;
|
|
2232
|
-
}
|
|
2233
|
-
break;
|
|
2234
|
-
}
|
|
2235
|
-
case 'initialPlacement':
|
|
2236
|
-
resetPlacement = initialPlacement;
|
|
2237
|
-
break;
|
|
2238
|
-
}
|
|
2239
|
-
}
|
|
2240
|
-
if (placement !== resetPlacement) {
|
|
2241
|
-
return {
|
|
2242
|
-
reset: {
|
|
2243
|
-
placement: resetPlacement
|
|
2244
|
-
}
|
|
2245
|
-
};
|
|
2246
|
-
}
|
|
2247
|
-
}
|
|
2248
|
-
return {};
|
|
2249
|
-
}
|
|
2250
|
-
};
|
|
2251
|
-
};
|
|
2252
|
-
|
|
2253
2206
|
function getSideOffsets(overflow, rect) {
|
|
2254
2207
|
return {
|
|
2255
2208
|
top: overflow.top - rect.height,
|
|
@@ -3132,7 +3085,7 @@ function getDocumentRect(html) {
|
|
|
3132
3085
|
// calculation is affected by unusual styles.
|
|
3133
3086
|
// Most scrollbars leave 15-18px of space.
|
|
3134
3087
|
const SCROLLBAR_MAX = 25;
|
|
3135
|
-
function getViewportRect(element, strategy, rootBoundary) {
|
|
3088
|
+
function getViewportRect$1(element, strategy, rootBoundary) {
|
|
3136
3089
|
if (rootBoundary === void 0) {
|
|
3137
3090
|
rootBoundary = 'viewport';
|
|
3138
3091
|
}
|
|
@@ -3210,7 +3163,7 @@ function getInnerBoundingClientRect(element, strategy) {
|
|
|
3210
3163
|
function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
|
|
3211
3164
|
let rect;
|
|
3212
3165
|
if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {
|
|
3213
|
-
rect = getViewportRect(element, strategy, clippingAncestor);
|
|
3166
|
+
rect = getViewportRect$1(element, strategy, clippingAncestor);
|
|
3214
3167
|
} else if (clippingAncestor === 'document') {
|
|
3215
3168
|
rect = getDocumentRect(getDocumentElement(element));
|
|
3216
3169
|
} else if (isElement(clippingAncestor)) {
|
|
@@ -3606,6 +3559,16 @@ function autoUpdate(reference, floating, update, options) {
|
|
|
3606
3559
|
};
|
|
3607
3560
|
}
|
|
3608
3561
|
|
|
3562
|
+
/**
|
|
3563
|
+
* Resolves with an object of overflow side offsets that determine how much the
|
|
3564
|
+
* element is overflowing a given clipping boundary on each side.
|
|
3565
|
+
* - positive = overflowing the boundary by that number of pixels
|
|
3566
|
+
* - negative = how many pixels left before it will overflow
|
|
3567
|
+
* - 0 = lies flush with the boundary
|
|
3568
|
+
* @see https://floating-ui.com/docs/detectOverflow
|
|
3569
|
+
*/
|
|
3570
|
+
const detectOverflow = detectOverflow$1;
|
|
3571
|
+
|
|
3609
3572
|
/**
|
|
3610
3573
|
* Modifies the placement by translating the floating element along the
|
|
3611
3574
|
* specified axes.
|
|
@@ -3622,14 +3585,6 @@ const offset = offset$1;
|
|
|
3622
3585
|
*/
|
|
3623
3586
|
const shift = shift$1;
|
|
3624
3587
|
|
|
3625
|
-
/**
|
|
3626
|
-
* Optimizes the visibility of the floating element by flipping the `placement`
|
|
3627
|
-
* in order to keep it in view when the preferred placement(s) will overflow the
|
|
3628
|
-
* clipping boundary. Alternative to `autoPlacement`.
|
|
3629
|
-
* @see https://floating-ui.com/docs/flip
|
|
3630
|
-
*/
|
|
3631
|
-
const flip = flip$1;
|
|
3632
|
-
|
|
3633
3588
|
/**
|
|
3634
3589
|
* Provides data that allows you to change the size of the floating element —
|
|
3635
3590
|
* for instance, prevent it from overflowing the clipping boundary or match the
|
|
@@ -3685,19 +3640,211 @@ const computePosition = (reference, floating, options) => {
|
|
|
3685
3640
|
});
|
|
3686
3641
|
};
|
|
3687
3642
|
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3643
|
+
/**
|
|
3644
|
+
* Returns the nth side in clockwise direction relative to the given side.
|
|
3645
|
+
*/
|
|
3646
|
+
function getRelativeSide(side, n) {
|
|
3647
|
+
return sides[(sides.indexOf(side) + n) % 4];
|
|
3648
|
+
}
|
|
3649
|
+
const getNextSide = (side) => getRelativeSide(side, 1);
|
|
3650
|
+
const getOppositeSide = (side) => getRelativeSide(side, 2);
|
|
3651
|
+
const getPreviousSide = (side) => getRelativeSide(side, 3);
|
|
3652
|
+
|
|
3653
|
+
const FLIP_MIDDLEWARE = 'post-flip';
|
|
3654
|
+
/**
|
|
3655
|
+
* Changes the placement of the floating element to keep it in view.
|
|
3656
|
+
*
|
|
3657
|
+
* Unlike the Floating UI `flip` middleware, placements are measured against `minSize` rather than
|
|
3658
|
+
* against the current size of the floating element, and the placement with the smallest deficit is
|
|
3659
|
+
* used when none of them fits.
|
|
3660
|
+
*/
|
|
3661
|
+
function flip(options = {}) {
|
|
3662
|
+
return {
|
|
3663
|
+
name: FLIP_MIDDLEWARE,
|
|
3664
|
+
options,
|
|
3665
|
+
async fn(state) {
|
|
3666
|
+
const { middlewareData, placement } = state;
|
|
3667
|
+
// see https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643
|
|
3668
|
+
if (middlewareData.arrow?.alignmentOffset)
|
|
3669
|
+
return {};
|
|
3670
|
+
const { minSize = {}, ...detectOverflowOptions } = evaluate(options, state);
|
|
3671
|
+
const gap = Math.abs(middlewareData.offset?.[getSideAxis(placement)] ?? 0);
|
|
3672
|
+
const side = getSide(placement);
|
|
3673
|
+
const referenceOverflow = await detectOverflow(state, {
|
|
3674
|
+
...detectOverflowOptions,
|
|
3675
|
+
elementContext: 'reference',
|
|
3676
|
+
});
|
|
3677
|
+
const floatingOverflow = await detectOverflow(state, {
|
|
3678
|
+
...detectOverflowOptions,
|
|
3679
|
+
elementContext: 'floating',
|
|
3680
|
+
});
|
|
3681
|
+
// The floating element fits at its current placement, there is nothing left to do.
|
|
3682
|
+
if (Math.max(referenceOverflow[side], floatingOverflow[side]) <= 0)
|
|
3683
|
+
return {};
|
|
3684
|
+
const previous = middlewareData[FLIP_MIDDLEWARE];
|
|
3685
|
+
const measurement = { overflow: referenceOverflow, minSize, gap };
|
|
3686
|
+
let deficits = previous?.deficits ?? [];
|
|
3687
|
+
const placements = previous?.placements ?? (await getPlacements(state, measurement));
|
|
3688
|
+
if (deficits.length < placements.length) {
|
|
3689
|
+
deficits = [...deficits, getDeficit(side, measurement)];
|
|
3690
|
+
}
|
|
3691
|
+
const data = { placements, deficits };
|
|
3692
|
+
// If there are still placements to try, move on to the next one.
|
|
3693
|
+
if (deficits.length < placements.length) {
|
|
3694
|
+
return { data, reset: { placement: placements[deficits.length] } };
|
|
3695
|
+
}
|
|
3696
|
+
// If none of the placements fit, fall back to the one that loses the least space.
|
|
3697
|
+
const fallback = data.placements[data.deficits.indexOf(Math.min(...data.deficits))];
|
|
3698
|
+
return fallback === placement ? { data } : { data, reset: { placement: fallback } };
|
|
3699
|
+
},
|
|
3700
|
+
};
|
|
3701
|
+
}
|
|
3702
|
+
/**
|
|
3703
|
+
* Returns the placements to try, ordered from most to least promising.
|
|
3704
|
+
*/
|
|
3705
|
+
async function getPlacements(state, measurement) {
|
|
3706
|
+
const { placement, platform, elements } = state;
|
|
3707
|
+
const { overflow } = measurement;
|
|
3708
|
+
const side = getSide(placement);
|
|
3709
|
+
const placements = [placement, getOppositePlacement(placement)];
|
|
3710
|
+
const mainAxisDeficit = Math.min(getDeficit(side, measurement), getDeficit(getOppositeSide(side), measurement));
|
|
3711
|
+
if (mainAxisDeficit <= 0)
|
|
3712
|
+
return placements;
|
|
3713
|
+
const rtl = (await platform.isRTL?.(elements.floating)) ?? false;
|
|
3714
|
+
const crossAxisPlacements = getOppositeAxisPlacements(placement, true, 'start', rtl);
|
|
3715
|
+
// Try the side with the most available space first.
|
|
3716
|
+
crossAxisPlacements.sort((a, b) => overflow[getSide(a)] - overflow[getSide(b)]);
|
|
3717
|
+
return [...placements, ...crossAxisPlacements];
|
|
3718
|
+
}
|
|
3719
|
+
/**
|
|
3720
|
+
* Returns the amount of space required to display the floating element at its minimum size on the
|
|
3721
|
+
* given side of the reference element.
|
|
3722
|
+
*/
|
|
3723
|
+
function getDeficit(side, { minSize, overflow, gap }) {
|
|
3724
|
+
const minLength = minSize[getAxisLength(getSideAxis(side))] ?? 0;
|
|
3725
|
+
return gap + minLength + overflow[side];
|
|
3726
|
+
}
|
|
3727
|
+
|
|
3728
|
+
/**
|
|
3729
|
+
* This utility is covered by the end-to-end tests under 'clipping' in `popovercontainer.cy.ts`.
|
|
3730
|
+
*/
|
|
3731
|
+
const CLIPPING_RECT_CACHE = Symbol('Clipping Rect Cache');
|
|
3732
|
+
/**
|
|
3733
|
+
* A custom floating UI platform that restricts clipping rectangles to the safe area.
|
|
3734
|
+
*/
|
|
3735
|
+
const safeAreaPlatform = { ...platform, getClippingRect };
|
|
3736
|
+
/**
|
|
3737
|
+
* Computes the clipping rectangle of an element while accounting for the safe area.
|
|
3738
|
+
*/
|
|
3739
|
+
async function getClippingRect(...args) {
|
|
3740
|
+
const element = args[0].element;
|
|
3741
|
+
// Check whether the clipping rectangle of the given element has already been computed during
|
|
3742
|
+
// this pass.
|
|
3743
|
+
const hit = this[CLIPPING_RECT_CACHE].get(element);
|
|
3744
|
+
if (hit)
|
|
3745
|
+
return hit;
|
|
3746
|
+
// Compute the clipping rectangle with the Floating UI DOM platform, then restrict it to the safe
|
|
3747
|
+
// area.
|
|
3748
|
+
const clippingRect = await platform.getClippingRect.apply(this, args);
|
|
3749
|
+
applySafeArea(clippingRect, element);
|
|
3750
|
+
this[CLIPPING_RECT_CACHE].set(element, clippingRect);
|
|
3751
|
+
return clippingRect;
|
|
3752
|
+
}
|
|
3753
|
+
/**
|
|
3754
|
+
* Restricts the `clippingRect` computed for `element` to the safe area, modifying it in place.
|
|
3755
|
+
*
|
|
3756
|
+
* The safe area only applies to elements that the header can actually cover, which excludes
|
|
3757
|
+
* elements without a header on their page, elements on a top layer and elements within the header.
|
|
3758
|
+
*/
|
|
3759
|
+
function applySafeArea(clippingRect, element) {
|
|
3760
|
+
const headerElement = element.ownerDocument.querySelector('post-header');
|
|
3761
|
+
if (headerElement === null)
|
|
3692
3762
|
return;
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3763
|
+
let parent = element;
|
|
3764
|
+
while (!isLastTraversableNode(parent)) {
|
|
3765
|
+
parent = getParentNode(parent);
|
|
3766
|
+
if (!isHTMLElement(parent))
|
|
3767
|
+
continue;
|
|
3768
|
+
// Do not apply the safe area of the header to
|
|
3769
|
+
// - elements that are on a top layer, such as a dialog.
|
|
3770
|
+
// - elements that are located within the header itself.
|
|
3771
|
+
if (isTopLayer(parent) || parent === headerElement)
|
|
3772
|
+
return;
|
|
3773
|
+
}
|
|
3774
|
+
const headerRect = headerElement.getBoundingClientRect();
|
|
3775
|
+
const top = Math.max(clippingRect.y, headerRect.bottom);
|
|
3776
|
+
clippingRect.height -= top - clippingRect.y;
|
|
3777
|
+
clippingRect.y = top;
|
|
3778
|
+
}
|
|
3779
|
+
/**
|
|
3780
|
+
* Computes the coordinates that will position the `floating` element next to a given `reference`
|
|
3781
|
+
* element while accounting for the safe area.
|
|
3782
|
+
*
|
|
3783
|
+
* The safe area is the part of the viewport that the header does not cover. Restricting the
|
|
3784
|
+
* clipping rectangles to it makes floating elements behave as if they were clipped by the header.
|
|
3785
|
+
*/
|
|
3786
|
+
const computePositionWithSafeArea = (reference, floating, options) => {
|
|
3787
|
+
// Adapted from https://github.com/floating-ui/floating-ui/blob/27629b74ba36ab8ceb2a968051927b9b69511a3b/packages/dom/src/index.ts#L15
|
|
3788
|
+
options ??= {};
|
|
3789
|
+
return computePosition(reference, floating, {
|
|
3790
|
+
...options,
|
|
3791
|
+
platform: {
|
|
3792
|
+
...safeAreaPlatform,
|
|
3793
|
+
...options.platform,
|
|
3794
|
+
[CLIPPING_RECT_CACHE]: new Map(),
|
|
3795
|
+
},
|
|
3796
|
+
});
|
|
3797
|
+
};
|
|
3798
|
+
|
|
3799
|
+
const SAFE_SPACE_MIDDLEWARE = 'post-safe-space';
|
|
3800
|
+
/**
|
|
3801
|
+
* Computes the safe space, the area the pointer can travel through to get from the reference to
|
|
3802
|
+
* the floating element.
|
|
3803
|
+
*/
|
|
3804
|
+
function safeSpace() {
|
|
3805
|
+
return {
|
|
3806
|
+
name: SAFE_SPACE_MIDDLEWARE,
|
|
3807
|
+
async fn(state) {
|
|
3808
|
+
const { placement, rects, x, y } = state;
|
|
3809
|
+
const side = getSide(placement);
|
|
3810
|
+
const reference = await getViewportRect(state, rects.reference);
|
|
3811
|
+
const floating = await getViewportRect(state, { ...rects.floating, x, y });
|
|
3812
|
+
const path = [
|
|
3813
|
+
...getPathAlongSide(floating, getOppositeSide(side)),
|
|
3814
|
+
...getPathAlongSide(reference, side),
|
|
3815
|
+
];
|
|
3816
|
+
const points = [];
|
|
3817
|
+
for (let i = 0; i < path.length; i += 2) {
|
|
3818
|
+
points.push(`${path[i]}px ${path[i + 1]}px`);
|
|
3819
|
+
}
|
|
3820
|
+
const data = { polygon: `polygon(${points.join(', ')})` };
|
|
3821
|
+
return { data };
|
|
3822
|
+
},
|
|
3823
|
+
};
|
|
3824
|
+
}
|
|
3825
|
+
/**
|
|
3826
|
+
* Converts a rectangle from the floating element's offset parent's coordinate system to viewport
|
|
3827
|
+
* coordinates.
|
|
3828
|
+
*/
|
|
3829
|
+
async function getViewportRect({ elements, platform, strategy }, rect) {
|
|
3830
|
+
const viewportRect = await platform.convertOffsetParentRelativeRectToViewportRelativeRect?.({
|
|
3831
|
+
offsetParent: await platform.getOffsetParent?.(elements.floating),
|
|
3832
|
+
rect,
|
|
3833
|
+
elements,
|
|
3834
|
+
strategy,
|
|
3700
3835
|
});
|
|
3836
|
+
return rectToClientRect(viewportRect ?? rect);
|
|
3837
|
+
}
|
|
3838
|
+
/**
|
|
3839
|
+
* Returns the path along the specified side of the given rectangle.
|
|
3840
|
+
*
|
|
3841
|
+
* The path is a list of coordinates in the form of [x₁, y₁, x₂, y₂] and is given in clockwise order.
|
|
3842
|
+
*/
|
|
3843
|
+
function getPathAlongSide(rect, side) {
|
|
3844
|
+
const self = rect[side];
|
|
3845
|
+
const prev = rect[getPreviousSide(side)];
|
|
3846
|
+
const next = rect[getNextSide(side)];
|
|
3847
|
+
return getSideAxis(side) === 'x' ? [self, prev, self, next] : [prev, self, next, self];
|
|
3701
3848
|
}
|
|
3702
3849
|
|
|
3703
3850
|
// src/events.ts
|
|
@@ -4492,78 +4639,7 @@ function apply() {
|
|
|
4492
4639
|
injectStyles(document);
|
|
4493
4640
|
}
|
|
4494
4641
|
|
|
4495
|
-
|
|
4496
|
-
* This utility is covered by the end-to-end tests under 'clipping' in `popovercontainer.cy.ts`.
|
|
4497
|
-
*/
|
|
4498
|
-
const CLIPPING_RECT_CACHE = Symbol('Clipping Rect Cache');
|
|
4499
|
-
/**
|
|
4500
|
-
* A custom floating UI platform that restricts clipping rectangles to the safe area.
|
|
4501
|
-
*/
|
|
4502
|
-
const safeAreaPlatform = { ...platform, getClippingRect };
|
|
4503
|
-
/**
|
|
4504
|
-
* Computes the clipping rectangle of an element while accounting for the safe area.
|
|
4505
|
-
*/
|
|
4506
|
-
async function getClippingRect(...args) {
|
|
4507
|
-
const element = args[0].element;
|
|
4508
|
-
// Check whether the clipping rectangle of the given element has already been computed during
|
|
4509
|
-
// this pass.
|
|
4510
|
-
const hit = this[CLIPPING_RECT_CACHE].get(element);
|
|
4511
|
-
if (hit)
|
|
4512
|
-
return hit;
|
|
4513
|
-
// Compute the clipping rectangle with the Floating UI DOM platform, then restrict it to the safe
|
|
4514
|
-
// area.
|
|
4515
|
-
const clippingRect = await platform.getClippingRect.apply(this, args);
|
|
4516
|
-
applySafeArea(clippingRect, element);
|
|
4517
|
-
this[CLIPPING_RECT_CACHE].set(element, clippingRect);
|
|
4518
|
-
return clippingRect;
|
|
4519
|
-
}
|
|
4520
|
-
/**
|
|
4521
|
-
* Restricts the `clippingRect` computed for `element` to the safe area, modifying it in place.
|
|
4522
|
-
*
|
|
4523
|
-
* The safe area only applies to elements that the header can actually cover, which excludes
|
|
4524
|
-
* elements without a header on their page, elements on a top layer and elements within the header.
|
|
4525
|
-
*/
|
|
4526
|
-
function applySafeArea(clippingRect, element) {
|
|
4527
|
-
const headerElement = element.ownerDocument.querySelector('post-header');
|
|
4528
|
-
if (headerElement === null)
|
|
4529
|
-
return;
|
|
4530
|
-
let parent = element;
|
|
4531
|
-
while (!isLastTraversableNode(parent)) {
|
|
4532
|
-
parent = getParentNode(parent);
|
|
4533
|
-
if (!isHTMLElement(parent))
|
|
4534
|
-
continue;
|
|
4535
|
-
// Do not apply the safe area of the header to
|
|
4536
|
-
// - elements that are on a top layer, such as a dialog.
|
|
4537
|
-
// - elements that are located within the header itself.
|
|
4538
|
-
if (isTopLayer(parent) || parent === headerElement)
|
|
4539
|
-
return;
|
|
4540
|
-
}
|
|
4541
|
-
const headerRect = headerElement.getBoundingClientRect();
|
|
4542
|
-
const top = Math.max(clippingRect.y, headerRect.bottom);
|
|
4543
|
-
clippingRect.height -= top - clippingRect.y;
|
|
4544
|
-
clippingRect.y = top;
|
|
4545
|
-
}
|
|
4546
|
-
/**
|
|
4547
|
-
* Computes the coordinates that will position the `floating` element next to a given `reference`
|
|
4548
|
-
* element while accounting for the safe area.
|
|
4549
|
-
*
|
|
4550
|
-
* The safe area is the part of the viewport that the header does not cover. Restricting the
|
|
4551
|
-
* clipping rectangles to it makes floating elements behave as if they were clipped by the header.
|
|
4552
|
-
*/
|
|
4553
|
-
const computePositionWithSafeArea = (reference, floating, options) => {
|
|
4554
|
-
// Adapted from https://github.com/floating-ui/floating-ui/blob/27629b74ba36ab8ceb2a968051927b9b69511a3b/packages/dom/src/index.ts#L15
|
|
4555
|
-
options ??= {};
|
|
4556
|
-
return computePosition(reference, floating, {
|
|
4557
|
-
...options,
|
|
4558
|
-
platform: {
|
|
4559
|
-
...safeAreaPlatform,
|
|
4560
|
-
...options.platform,
|
|
4561
|
-
[CLIPPING_RECT_CACHE]: new Map(),
|
|
4562
|
-
},
|
|
4563
|
-
});
|
|
4564
|
-
};
|
|
4565
|
-
|
|
4566
|
-
const postPopovercontainerCss = () => `@layer polyfill{@supports not selector(:popover-open){:host([popover]:not(.\\:popover-open)){display:none}}}:host{background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:host>div{box-shadow:var(--post-device-elevation-300);width:max-content;max-width:100%;color:var(--post-current-fg);background-color:var(--post-current-bg);border-radius:4px;position:relative}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host>div{border:2px solid rgba(0,0,0,0)}}:host [part=post-popovercontainer-border-mask]{display:none;position:absolute;inset:0;border-radius:4px;pointer-events:none}:host .arrow{--post-popovercontainer-arrow-border: var(--post-popovercontainer-arrow-border-width, 0px) solid var(--post-popovercontainer-arrow-border-color, transparent);position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:host .arrow[dynamic-placement=top]{border-bottom-right-radius:2px;border-bottom:var(--post-popovercontainer-arrow-border);border-right:var(--post-popovercontainer-arrow-border)}:host .arrow[dynamic-placement=right]{border-bottom-left-radius:2px;border-bottom:var(--post-popovercontainer-arrow-border);border-left:var(--post-popovercontainer-arrow-border)}:host .arrow[dynamic-placement=bottom]{border-top-left-radius:2px;border-top:var(--post-popovercontainer-arrow-border);border-left:var(--post-popovercontainer-arrow-border)}:host .arrow[dynamic-placement=left]{border-top-right-radius:2px;border-top:var(--post-popovercontainer-arrow-border);border-right:var(--post-popovercontainer-arrow-border)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .arrow[dynamic-placement=top]{border-block-end:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);bottom:-0.3796735336rem !important}:host .arrow[dynamic-placement=left]{border-block-start:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);right:-0.3796735336rem !important}:host .arrow[dynamic-placement=right]{border-block-end:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);left:-0.3796735336rem !important}:host .arrow[dynamic-placement=bottom]{border-block-start:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);top:-0.3796735336rem !important}}:host([tooltip]){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:host([safe-space])::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:auto}:host([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)))}:host([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)))}:host(:not(:has(.arrow)))>div{box-shadow:var(--post-device-elevation-300)}:host(: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))}:host(:has(.arrow[dynamic-placement=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))}:host(:has(.arrow[dynamic-placement=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))}:host(:has(.arrow[dynamic-placement=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))}`;
|
|
4642
|
+
const postPopovercontainerCss = () => `@layer polyfill{@supports not selector(:popover-open){:host([popover]:not(.\\:popover-open)){display:none}}}:host{background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:host [part=post-popovercontainer-content]{box-sizing:border-box;box-shadow:var(--post-device-elevation-300);width:max-content;max-width:var(--post-popovercontainer-available-width);max-height:var(--post-popovercontainer-available-height);color:var(--post-current-fg);background-color:var(--post-current-bg);border-radius:4px;position:relative;display:flex}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host [part=post-popovercontainer-content]{border:2px solid rgba(0,0,0,0)}}:host [part=post-popovercontainer-border-mask]{display:none;position:absolute;inset:0;border-radius:4px;pointer-events:none}:host .arrow{--post-popovercontainer-arrow-border: var(--post-popovercontainer-arrow-border-width, 0px) solid var(--post-popovercontainer-arrow-border-color, transparent);position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:host .arrow[data-side=top]{border-bottom-right-radius:2px;border-bottom:var(--post-popovercontainer-arrow-border);border-right:var(--post-popovercontainer-arrow-border)}:host .arrow[data-side=right]{border-bottom-left-radius:2px;border-bottom:var(--post-popovercontainer-arrow-border);border-left:var(--post-popovercontainer-arrow-border)}:host .arrow[data-side=bottom]{border-top-left-radius:2px;border-top:var(--post-popovercontainer-arrow-border);border-left:var(--post-popovercontainer-arrow-border)}:host .arrow[data-side=left]{border-top-right-radius:2px;border-top:var(--post-popovercontainer-arrow-border);border-right:var(--post-popovercontainer-arrow-border)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .arrow[data-side=top]{border-block-end:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);bottom:-0.3796735336rem !important}:host .arrow[data-side=left]{border-block-start:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);right:-0.3796735336rem !important}:host .arrow[data-side=right]{border-block-end:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);left:-0.3796735336rem !important}:host .arrow[data-side=bottom]{border-block-start:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);top:-0.3796735336rem !important}}:host([tooltip]){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:host([safe-space])::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:auto;clip-path:var(--post-popovercontainer-safe-space, polygon(0 0, 0 0, 0 0))}:host(:not(:has(.arrow)))>div{box-shadow:var(--post-device-elevation-300)}:host(: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))}:host(:has(.arrow[data-side=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))}:host(:has(.arrow[data-side=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))}:host(:has(.arrow[data-side=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))}`;
|
|
4567
4643
|
|
|
4568
4644
|
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4569
4645
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -4575,34 +4651,10 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
|
|
|
4575
4651
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
4576
4652
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4577
4653
|
};
|
|
4578
|
-
const
|
|
4579
|
-
|
|
4580
|
-
|
|
4654
|
+
const AVAILABLE_WIDTH_PROPERTY = '--post-popovercontainer-available-width';
|
|
4655
|
+
const AVAILABLE_HEIGHT_PROPERTY = '--post-popovercontainer-available-height';
|
|
4656
|
+
const SAFE_SPACE_PROPERTY = '--post-popovercontainer-safe-space';
|
|
4581
4657
|
const PostPopovercontainer = class {
|
|
4582
|
-
static {
|
|
4583
|
-
this.STATIC_SIDES = {
|
|
4584
|
-
top: 'bottom',
|
|
4585
|
-
right: 'left',
|
|
4586
|
-
bottom: 'top',
|
|
4587
|
-
left: 'right',
|
|
4588
|
-
};
|
|
4589
|
-
}
|
|
4590
|
-
static {
|
|
4591
|
-
this.PROPERTIES_TO_CLEAR = [
|
|
4592
|
-
'--post-safe-space-popover-x',
|
|
4593
|
-
'--post-safe-space-popover-y',
|
|
4594
|
-
'--post-safe-space-popover-x-start',
|
|
4595
|
-
'--post-safe-space-popover-x-end',
|
|
4596
|
-
'--post-safe-space-popover-y-start',
|
|
4597
|
-
'--post-safe-space-popover-y-end',
|
|
4598
|
-
'--post-safe-space-trigger-x',
|
|
4599
|
-
'--post-safe-space-trigger-y',
|
|
4600
|
-
'--post-safe-space-trigger-x-start',
|
|
4601
|
-
'--post-safe-space-trigger-x-end',
|
|
4602
|
-
'--post-safe-space-trigger-y-start',
|
|
4603
|
-
'--post-safe-space-trigger-y-end',
|
|
4604
|
-
];
|
|
4605
|
-
}
|
|
4606
4658
|
constructor(hostRef) {
|
|
4607
4659
|
index.registerInstance(this, hostRef);
|
|
4608
4660
|
this.postBeforeShow = index.createEvent(this, "postBeforeShow");
|
|
@@ -4610,37 +4662,25 @@ const PostPopovercontainer = class {
|
|
|
4610
4662
|
this.postHide = index.createEvent(this, "postHide");
|
|
4611
4663
|
this.postBeforeToggle = index.createEvent(this, "postBeforeToggle");
|
|
4612
4664
|
this.postToggle = index.createEvent(this, "postToggle");
|
|
4665
|
+
/** The element the popover is anchored to */
|
|
4666
|
+
this.anchorRef = null;
|
|
4667
|
+
this.arrowRef = null;
|
|
4668
|
+
this.hasBeenOpened = false;
|
|
4613
4669
|
this.toggleTimeoutId = null;
|
|
4614
|
-
this.
|
|
4670
|
+
this.runningAnimation = null;
|
|
4671
|
+
this.stopAutoUpdate = null;
|
|
4615
4672
|
/**
|
|
4616
|
-
*
|
|
4617
|
-
* Popovercontainers are automatically flipped to the opposite side if there is not enough available space and are shifted
|
|
4618
|
-
* towards the viewport if they would overlap edge boundaries.
|
|
4673
|
+
* Placement of the popover according to the floating-ui options.
|
|
4619
4674
|
*/
|
|
4620
4675
|
this.placement = 'top';
|
|
4621
4676
|
/**
|
|
4622
|
-
* Gap between the edge of the
|
|
4677
|
+
* Gap between the edge of the viewport and the popover.
|
|
4623
4678
|
*/
|
|
4624
4679
|
this.edgeGap = 8;
|
|
4625
4680
|
/**
|
|
4626
|
-
*
|
|
4681
|
+
* Show a little indicator arrow
|
|
4627
4682
|
*/
|
|
4628
4683
|
this.arrow = false;
|
|
4629
|
-
/**
|
|
4630
|
-
* Animation style
|
|
4631
|
-
*/
|
|
4632
|
-
this.animation = 'pop-in';
|
|
4633
|
-
this.currentAnimation = null;
|
|
4634
|
-
this.boundMouseTrackingHandler = this.mouseTrackingHandler.bind(this);
|
|
4635
|
-
}
|
|
4636
|
-
/**
|
|
4637
|
-
* Updates cursor position for safe space feature when popover is open.
|
|
4638
|
-
* Sets CSS custom properties for dynamic styling of safe area.
|
|
4639
|
-
* @param event MouseEvent with cursor position
|
|
4640
|
-
*/
|
|
4641
|
-
mouseTrackingHandler(event) {
|
|
4642
|
-
this.host.style.setProperty('--post-safe-space-cursor-x', `${event.clientX}px`);
|
|
4643
|
-
this.host.style.setProperty('--post-safe-space-cursor-y', `${event.clientY}px`);
|
|
4644
4684
|
}
|
|
4645
4685
|
connectedCallback() {
|
|
4646
4686
|
if (!isSupported()) {
|
|
@@ -4651,296 +4691,197 @@ const PostPopovercontainer = class {
|
|
|
4651
4691
|
this.host.addEventListener('beforetoggle', this.handleToggle.bind(this));
|
|
4652
4692
|
}
|
|
4653
4693
|
disconnectedCallback() {
|
|
4654
|
-
|
|
4655
|
-
this.clearAutoUpdate();
|
|
4656
|
-
}
|
|
4694
|
+
this.cleanup();
|
|
4657
4695
|
this.host.removeEventListener('beforetoggle', this.handleToggle.bind(this));
|
|
4658
4696
|
}
|
|
4697
|
+
cleanup() {
|
|
4698
|
+
this.stopAutoUpdate?.();
|
|
4699
|
+
if (this.runningAnimation) {
|
|
4700
|
+
this.runningAnimation.cancel();
|
|
4701
|
+
this.runningAnimation = null;
|
|
4702
|
+
}
|
|
4703
|
+
}
|
|
4704
|
+
isOpen() {
|
|
4705
|
+
return this.host?.matches(':where(:popover-open, .popover-open)');
|
|
4706
|
+
}
|
|
4707
|
+
getContent() {
|
|
4708
|
+
return this.host?.shadowRoot.querySelector('[part="post-popovercontainer-content"]');
|
|
4709
|
+
}
|
|
4710
|
+
getContentMinSize() {
|
|
4711
|
+
const content = this.getContent();
|
|
4712
|
+
if (!content)
|
|
4713
|
+
return {};
|
|
4714
|
+
const { minWidth, minHeight } = getComputedStyle(content);
|
|
4715
|
+
return {
|
|
4716
|
+
width: Number.parseFloat(minWidth) || 0,
|
|
4717
|
+
height: Number.parseFloat(minHeight) || 0,
|
|
4718
|
+
};
|
|
4719
|
+
}
|
|
4659
4720
|
/**
|
|
4660
|
-
*
|
|
4661
|
-
* @param
|
|
4721
|
+
* Shows the popover.
|
|
4722
|
+
* @param anchor the element that the popover is visually anchored to.
|
|
4662
4723
|
*/
|
|
4663
|
-
async show(
|
|
4664
|
-
if (this.toggleTimeoutId || !
|
|
4724
|
+
async show(anchor) {
|
|
4725
|
+
if (this.toggleTimeoutId || !anchor || this.isOpen())
|
|
4665
4726
|
return;
|
|
4666
|
-
this.
|
|
4667
|
-
this.updatePosition();
|
|
4727
|
+
this.anchorRef = anchor;
|
|
4668
4728
|
this.host.showPopover();
|
|
4669
4729
|
}
|
|
4670
4730
|
/**
|
|
4671
|
-
*
|
|
4731
|
+
* Hides the popover.
|
|
4672
4732
|
*/
|
|
4673
4733
|
async hide() {
|
|
4674
|
-
if (!this.
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4734
|
+
if (this.toggleTimeoutId || !this.isOpen())
|
|
4735
|
+
return;
|
|
4736
|
+
this.anchorRef = null;
|
|
4737
|
+
this.host.hidePopover();
|
|
4738
|
+
this.postHide.emit();
|
|
4679
4739
|
}
|
|
4680
4740
|
/**
|
|
4681
|
-
*
|
|
4682
|
-
*
|
|
4683
|
-
*
|
|
4741
|
+
* Toggles the popover's state from hidden to showing and vice versa.
|
|
4742
|
+
*
|
|
4743
|
+
* If `state` is specified, the popover is forced to be shown if the is set to `true`, or hidden
|
|
4744
|
+
* if it is set to `false`.
|
|
4745
|
+
*
|
|
4746
|
+
* @param anchor the element that the popover is visually anchored to.
|
|
4747
|
+
* @param force the next state of the popover.
|
|
4748
|
+
* @returns the new state of the popover: `true` if it is shown, `false` if it is hidden.
|
|
4684
4749
|
*/
|
|
4685
|
-
async toggle(
|
|
4686
|
-
const isOpen = this.
|
|
4687
|
-
|
|
4688
|
-
if (willOpen && !target)
|
|
4750
|
+
async toggle(anchor, force) {
|
|
4751
|
+
const isOpen = this.isOpen();
|
|
4752
|
+
if (!this.host || this.toggleTimeoutId)
|
|
4689
4753
|
return isOpen;
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4694
|
-
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
return this.host.matches(':where(:popover-open, .popover-open)');
|
|
4754
|
+
const shouldOpen = force === true || (force === undefined && !isOpen);
|
|
4755
|
+
if (isOpen === shouldOpen || (shouldOpen && !anchor))
|
|
4756
|
+
return isOpen;
|
|
4757
|
+
this.anchorRef = shouldOpen ? anchor : null;
|
|
4758
|
+
this.host.togglePopover(force);
|
|
4759
|
+
this.toggleTimeoutId = null;
|
|
4760
|
+
return this.isOpen();
|
|
4698
4761
|
}
|
|
4699
4762
|
/**
|
|
4700
|
-
* Handles the popover
|
|
4763
|
+
* Handles the popover's state transition from hidden to showing and vice versa.
|
|
4701
4764
|
*/
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
if (typeof animationFn === 'function') {
|
|
4709
|
-
this.runOpenAnimation(animationFn, content);
|
|
4710
|
-
}
|
|
4711
|
-
else {
|
|
4712
|
-
// No animation case
|
|
4713
|
-
this.postBeforeToggle.emit({ willOpen: true });
|
|
4714
|
-
this.postBeforeShow.emit({ first: this.hasOpenedOnce });
|
|
4715
|
-
this.postToggle.emit({ isOpen: true });
|
|
4716
|
-
this.postShow.emit({ first: this.hasOpenedOnce });
|
|
4717
|
-
if (this.hasOpenedOnce)
|
|
4718
|
-
this.hasOpenedOnce = false;
|
|
4719
|
-
}
|
|
4720
|
-
}
|
|
4721
|
-
if (this.safeSpace) {
|
|
4722
|
-
globalThis.addEventListener('mousemove', this.boundMouseTrackingHandler);
|
|
4723
|
-
}
|
|
4765
|
+
async handleToggle(event) {
|
|
4766
|
+
this.toggleTimeoutId = globalThis.setTimeout(() => (this.toggleTimeoutId = null), 10);
|
|
4767
|
+
if (event.newState === 'open')
|
|
4768
|
+
await this.handleOpen();
|
|
4769
|
+
else
|
|
4770
|
+
await this.handleClose();
|
|
4724
4771
|
}
|
|
4725
4772
|
/**
|
|
4726
|
-
* Handles the popover
|
|
4773
|
+
* Handles the popover's state transition from hidden to showing, emitting related events.
|
|
4727
4774
|
*/
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4775
|
+
async handleOpen() {
|
|
4776
|
+
this.postBeforeToggle.emit({ willOpen: true });
|
|
4777
|
+
this.postBeforeShow.emit({ first: !this.hasBeenOpened });
|
|
4778
|
+
await this.updatePosition(true);
|
|
4779
|
+
this.startAutoUpdate();
|
|
4780
|
+
try {
|
|
4781
|
+
await this.runOpenAnimation();
|
|
4734
4782
|
}
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
this.currentAnimation.cancel();
|
|
4738
|
-
this.currentAnimation = null;
|
|
4783
|
+
catch {
|
|
4784
|
+
return;
|
|
4739
4785
|
}
|
|
4740
|
-
this.
|
|
4741
|
-
this.
|
|
4742
|
-
this.
|
|
4786
|
+
this.postToggle.emit({ isOpen: true });
|
|
4787
|
+
this.postShow.emit({ first: !this.hasBeenOpened });
|
|
4788
|
+
this.hasBeenOpened = true;
|
|
4743
4789
|
}
|
|
4744
4790
|
/**
|
|
4745
|
-
*
|
|
4791
|
+
* Run the open animation for the popover.
|
|
4746
4792
|
*/
|
|
4747
|
-
async runOpenAnimation(
|
|
4748
|
-
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
|
|
4752
|
-
|
|
4753
|
-
this.postBeforeToggle.emit({ willOpen: true });
|
|
4754
|
-
this.postBeforeShow.emit({ first: this.hasOpenedOnce });
|
|
4755
|
-
this.postToggle.emit({ isOpen: true });
|
|
4756
|
-
this.postShow.emit({ first: this.hasOpenedOnce });
|
|
4757
|
-
return;
|
|
4758
|
-
}
|
|
4759
|
-
this.currentAnimation = animation;
|
|
4760
|
-
if (animation.playState === 'running') {
|
|
4761
|
-
this.postBeforeToggle.emit({ willOpen: true });
|
|
4762
|
-
this.postBeforeShow.emit({ first: this.hasOpenedOnce });
|
|
4763
|
-
}
|
|
4764
|
-
await animation.finished;
|
|
4765
|
-
this.postToggle.emit({ isOpen: true });
|
|
4766
|
-
this.postShow.emit({ first: this.hasOpenedOnce });
|
|
4767
|
-
this.hasOpenedOnce = true;
|
|
4768
|
-
}
|
|
4769
|
-
catch (err) {
|
|
4770
|
-
console.warn('Animation failed or was interrupted:', err);
|
|
4771
|
-
// Reset all states to closing
|
|
4772
|
-
this.postBeforeToggle.emit({ willOpen: false });
|
|
4773
|
-
this.postBeforeShow.emit({ first: this.hasOpenedOnce });
|
|
4774
|
-
this.postToggle.emit({ isOpen: false });
|
|
4775
|
-
}
|
|
4776
|
-
finally {
|
|
4777
|
-
if (this.currentAnimation === animation) {
|
|
4778
|
-
this.currentAnimation = null;
|
|
4779
|
-
}
|
|
4780
|
-
}
|
|
4793
|
+
async runOpenAnimation() {
|
|
4794
|
+
const content = this.getContent();
|
|
4795
|
+
if (!content)
|
|
4796
|
+
return;
|
|
4797
|
+
this.runningAnimation = popIn(content);
|
|
4798
|
+
await this.runningAnimation.finished;
|
|
4781
4799
|
}
|
|
4782
4800
|
/**
|
|
4783
|
-
*
|
|
4784
|
-
* Popovercontainers can be closed or opened with other methods than class members,
|
|
4785
|
-
* therefore listening to the toggle event is safer for cleaning up.
|
|
4786
|
-
* @param e ToggleEvent
|
|
4801
|
+
* Handles the popover's state transition from showing to hidden, emitting related events.
|
|
4787
4802
|
*/
|
|
4788
|
-
|
|
4789
|
-
this.
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
}
|
|
4803
|
+
async handleClose() {
|
|
4804
|
+
this.postBeforeToggle.emit({ willOpen: false });
|
|
4805
|
+
this.cleanup();
|
|
4806
|
+
this.host.style.removeProperty(AVAILABLE_WIDTH_PROPERTY);
|
|
4807
|
+
this.host.style.removeProperty(AVAILABLE_HEIGHT_PROPERTY);
|
|
4808
|
+
this.host.style.removeProperty(SAFE_SPACE_PROPERTY);
|
|
4809
|
+
this.postToggle.emit({ isOpen: false });
|
|
4810
|
+
this.postHide.emit();
|
|
4797
4811
|
}
|
|
4798
4812
|
/**
|
|
4799
|
-
*
|
|
4800
|
-
* an influence on popovercontainer positioning
|
|
4813
|
+
* Listen for changes that affect the popover's position and update it accordingly.
|
|
4801
4814
|
*/
|
|
4802
|
-
|
|
4803
|
-
if (!this.
|
|
4815
|
+
startAutoUpdate() {
|
|
4816
|
+
if (!this.host || !this.anchorRef)
|
|
4804
4817
|
return;
|
|
4805
|
-
this.
|
|
4818
|
+
this.stopAutoUpdate = autoUpdate(this.anchorRef, this.host, () => this.updatePosition(this.autoResize));
|
|
4806
4819
|
}
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4820
|
+
/**
|
|
4821
|
+
* Updates the position of the popover based on the anchor's position and the specified placement.
|
|
4822
|
+
* @param withSize whether to resize the popover based on the available space.
|
|
4823
|
+
*/
|
|
4824
|
+
async updatePosition(withSize = false) {
|
|
4825
|
+
const { x, y, middlewareData, placement } = await this.computePosition(withSize);
|
|
4826
|
+
// Hide the popover if the anchor is outside the scrollport.
|
|
4810
4827
|
if (middlewareData.hide?.referenceHidden) {
|
|
4811
4828
|
this.host.hidePopover();
|
|
4829
|
+
return;
|
|
4812
4830
|
}
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
// Position popover
|
|
4831
|
+
this.side = getSide(placement);
|
|
4832
|
+
// Position the popover.
|
|
4816
4833
|
this.host.style.left = `${x}px`;
|
|
4817
4834
|
this.host.style.top = `${y}px`;
|
|
4818
|
-
// Position
|
|
4819
|
-
if (
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
const halfSide = -0.5 * arrowSizePx;
|
|
4824
|
-
if (staticSide) {
|
|
4825
|
-
Object.assign(this.arrowRef.style, {
|
|
4826
|
-
left: arrowX ? `${arrowX}px` : '',
|
|
4827
|
-
top: arrowY ? `${arrowY}px` : '',
|
|
4828
|
-
[staticSide]: `${halfSide}px`,
|
|
4829
|
-
});
|
|
4830
|
-
}
|
|
4835
|
+
// Position the indicator arrow.
|
|
4836
|
+
if (middlewareData.arrow) {
|
|
4837
|
+
this.arrowRef.style.left = middlewareData.arrow.x ? `${middlewareData.arrow.x}px` : '';
|
|
4838
|
+
this.arrowRef.style.top = middlewareData.arrow.y ? `${middlewareData.arrow.y}px` : '';
|
|
4839
|
+
this.arrowRef.style[getOppositeSide(this.side)] = `-${this.arrowRef.offsetWidth / 2}px`;
|
|
4831
4840
|
}
|
|
4832
|
-
//
|
|
4833
|
-
if (
|
|
4834
|
-
|
|
4841
|
+
// Set the safe space polygon.
|
|
4842
|
+
if (middlewareData[SAFE_SPACE_MIDDLEWARE]) {
|
|
4843
|
+
this.host.style.setProperty(SAFE_SPACE_PROPERTY, middlewareData[SAFE_SPACE_MIDDLEWARE].polygon);
|
|
4835
4844
|
}
|
|
4836
4845
|
}
|
|
4837
|
-
async
|
|
4838
|
-
const
|
|
4839
|
-
const isAligned = (this.placement || 'top').includes('-');
|
|
4840
|
-
const flipMiddleware = [
|
|
4841
|
-
// Flip the popover if the target moves outside the viewport
|
|
4842
|
-
flip({ elementContext: 'reference', crossAxis: false }),
|
|
4843
|
-
// Flip the popover if the popover itself moves outside the viewport
|
|
4844
|
-
flip({ elementContext: 'floating', crossAxis: false }),
|
|
4845
|
-
];
|
|
4846
|
-
const shiftMiddleware = shift({
|
|
4847
|
-
padding: gap,
|
|
4848
|
-
limiter: limitShift({
|
|
4849
|
-
offset: 32,
|
|
4850
|
-
}),
|
|
4851
|
-
});
|
|
4846
|
+
async computePosition(withSize) {
|
|
4847
|
+
const padding = this.edgeGap ?? 0;
|
|
4852
4848
|
const middleware = [
|
|
4853
|
-
offset(this.offset ?? (this.arrow ?
|
|
4849
|
+
offset(this.offset ?? (this.arrow ? padding + 4 : padding)),
|
|
4854
4850
|
inline(),
|
|
4855
|
-
// Per floating-ui docs: for aligned placements (e.g. bottom-end),
|
|
4856
|
-
// flip should come before shift. For non-aligned, shift before flip.
|
|
4857
|
-
...(isAligned ? [...flipMiddleware, shiftMiddleware] : [shiftMiddleware, ...flipMiddleware]),
|
|
4858
|
-
size({
|
|
4859
|
-
apply({ availableWidth, elements }) {
|
|
4860
|
-
Object.assign(elements.floating.style, {
|
|
4861
|
-
maxWidth: `${availableWidth - gap * 2}px`,
|
|
4862
|
-
});
|
|
4863
|
-
},
|
|
4864
|
-
}),
|
|
4865
4851
|
];
|
|
4866
|
-
|
|
4867
|
-
|
|
4852
|
+
const flipMiddleware = flip({ padding, minSize: this.getContentMinSize() });
|
|
4853
|
+
const shiftMiddleware = shift({ limiter: limitShift({ offset: 32 }), padding });
|
|
4854
|
+
// `flip` should come before `shift` for edge-aligned placements
|
|
4855
|
+
// (see https://floating-ui.com/docs/flip#combining-with-shift).
|
|
4856
|
+
if (this.placement?.includes('-'))
|
|
4857
|
+
middleware.push(flipMiddleware, shiftMiddleware);
|
|
4858
|
+
else
|
|
4859
|
+
middleware.push(shiftMiddleware, flipMiddleware);
|
|
4860
|
+
if (withSize) {
|
|
4861
|
+
middleware.push(size({
|
|
4862
|
+
padding,
|
|
4863
|
+
apply({ availableWidth, availableHeight, elements }) {
|
|
4864
|
+
elements.floating.style.setProperty(AVAILABLE_WIDTH_PROPERTY, `${Math.max(0, availableWidth)}px`);
|
|
4865
|
+
elements.floating.style.setProperty(AVAILABLE_HEIGHT_PROPERTY, `${Math.max(0, availableHeight)}px`);
|
|
4866
|
+
},
|
|
4867
|
+
}));
|
|
4868
4868
|
}
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4869
|
+
if (this.arrow)
|
|
4870
|
+
middleware.push(arrow({ element: this.arrowRef, padding }));
|
|
4871
|
+
if (this.safeSpace)
|
|
4872
|
+
middleware.push(safeSpace());
|
|
4873
|
+
// `hide` should generally be placed at the end of the middleware chain
|
|
4874
|
+
// (see https://floating-ui.com/docs/hide#order).
|
|
4875
|
+
if (this.autoHide)
|
|
4872
4876
|
middleware.push(hide({ strategy: 'referenceHidden' }));
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
placement: this.placement || 'top',
|
|
4877
|
+
return computePositionWithSafeArea(this.anchorRef, this.host, {
|
|
4878
|
+
placement: this.placement ?? 'top',
|
|
4876
4879
|
strategy: 'fixed',
|
|
4877
4880
|
middleware,
|
|
4878
4881
|
});
|
|
4879
4882
|
}
|
|
4880
|
-
async updateSafeSpaceBoundaries(currentPlacement) {
|
|
4881
|
-
const targetRect = this.eventTarget.getBoundingClientRect();
|
|
4882
|
-
const popoverRect = this.host.getBoundingClientRect();
|
|
4883
|
-
const isVertical = currentPlacement === 'top' || currentPlacement === 'bottom';
|
|
4884
|
-
// Helper function to get positioning data based on placement
|
|
4885
|
-
const getPositioningData = (placement, popoverRect, targetRect) => {
|
|
4886
|
-
if (placement === 'top' || placement === 'bottom') {
|
|
4887
|
-
return {
|
|
4888
|
-
popover: {
|
|
4889
|
-
y: placement === 'top' ? popoverRect.bottom : popoverRect.top,
|
|
4890
|
-
xStart: popoverRect.left,
|
|
4891
|
-
xEnd: popoverRect.right,
|
|
4892
|
-
},
|
|
4893
|
-
trigger: {
|
|
4894
|
-
y: placement === 'top' ? targetRect.top : targetRect.bottom,
|
|
4895
|
-
xStart: targetRect.left,
|
|
4896
|
-
xEnd: targetRect.right,
|
|
4897
|
-
},
|
|
4898
|
-
};
|
|
4899
|
-
}
|
|
4900
|
-
else {
|
|
4901
|
-
// left or right
|
|
4902
|
-
return {
|
|
4903
|
-
popover: {
|
|
4904
|
-
x: placement === 'left' ? popoverRect.right : popoverRect.left,
|
|
4905
|
-
yStart: popoverRect.top,
|
|
4906
|
-
yEnd: popoverRect.bottom,
|
|
4907
|
-
},
|
|
4908
|
-
trigger: {
|
|
4909
|
-
x: placement === 'left' ? targetRect.left : targetRect.right,
|
|
4910
|
-
yStart: targetRect.top,
|
|
4911
|
-
yEnd: targetRect.bottom,
|
|
4912
|
-
},
|
|
4913
|
-
};
|
|
4914
|
-
}
|
|
4915
|
-
};
|
|
4916
|
-
const posData = getPositioningData(currentPlacement, popoverRect, targetRect);
|
|
4917
|
-
// Clear previous values
|
|
4918
|
-
PostPopovercontainer.PROPERTIES_TO_CLEAR.forEach(prop => {
|
|
4919
|
-
this.host.style.removeProperty(prop);
|
|
4920
|
-
});
|
|
4921
|
-
if (isVertical) {
|
|
4922
|
-
// For top/bottom placement
|
|
4923
|
-
this.host.style.setProperty('--post-safe-space-popover-y', `${posData.popover.y}px`);
|
|
4924
|
-
this.host.style.setProperty('--post-safe-space-popover-x-start', `${posData.popover.xStart}px`);
|
|
4925
|
-
this.host.style.setProperty('--post-safe-space-popover-x-end', `${posData.popover.xEnd}px`);
|
|
4926
|
-
this.host.style.setProperty('--post-safe-space-trigger-y', `${posData.trigger.y}px`);
|
|
4927
|
-
this.host.style.setProperty('--post-safe-space-trigger-x-start', `${posData.trigger.xStart}px`);
|
|
4928
|
-
this.host.style.setProperty('--post-safe-space-trigger-x-end', `${posData.trigger.xEnd}px`);
|
|
4929
|
-
}
|
|
4930
|
-
else {
|
|
4931
|
-
// For left/right placement
|
|
4932
|
-
this.host.style.setProperty('--post-safe-space-popover-x', `${posData.popover.x}px`);
|
|
4933
|
-
this.host.style.setProperty('--post-safe-space-popover-y-start', `${posData.popover.yStart}px`);
|
|
4934
|
-
this.host.style.setProperty('--post-safe-space-popover-y-end', `${posData.popover.yEnd}px`);
|
|
4935
|
-
this.host.style.setProperty('--post-safe-space-trigger-x', `${posData.trigger.x}px`);
|
|
4936
|
-
this.host.style.setProperty('--post-safe-space-trigger-y-start', `${posData.trigger.yStart}px`);
|
|
4937
|
-
this.host.style.setProperty('--post-safe-space-trigger-y-end', `${posData.trigger.yEnd}px`);
|
|
4938
|
-
}
|
|
4939
|
-
}
|
|
4940
4883
|
render() {
|
|
4941
|
-
return (index.h(index.Host, { key: '
|
|
4942
|
-
this.arrowRef = el;
|
|
4943
|
-
} })), index.h("span", { key: 'deadbcc5892ed545a64b4a0e5e0936e0dd1feb70', part: "post-popovercontainer-border-mask" }), index.h("slot", { key: '48c4db7ab222f3ef18157ce19d8ba15d75441f98' }))));
|
|
4884
|
+
return (index.h(index.Host, { key: '2240dfd6d585287ad6c50d7582053c2187dc924d', "data-version": _package.version, popover: "auto" }, index.h("div", { key: '2793bd5f9dd3e72f5a6bc8344eab48262e6cea71', part: "post-popovercontainer-content" }, this.arrow && (index.h("span", { key: '3d0913954cead346a850f7d8ed1aaa97cbfa2d83', "data-side": this.side, class: "arrow", ref: el => (this.arrowRef = el) })), index.h("span", { key: 'c21d5332cfc0c0a7b7a8403f492bb4ba28b509f4', part: "post-popovercontainer-border-mask" }), index.h("slot", { key: 'eb6112e8dfa783304e286f65386e6e0741c2a571' }))));
|
|
4944
4885
|
}
|
|
4945
4886
|
get host() { return index.getElement(this); }
|
|
4946
4887
|
};
|
|
@@ -4950,9 +4891,6 @@ __decorate([
|
|
|
4950
4891
|
__decorate([
|
|
4951
4892
|
type.Type('number')
|
|
4952
4893
|
], PostPopovercontainer.prototype, "edgeGap", void 0);
|
|
4953
|
-
__decorate([
|
|
4954
|
-
oneOf.OneOf(['triangle', 'trapezoid'])
|
|
4955
|
-
], PostPopovercontainer.prototype, "safeSpace", void 0);
|
|
4956
4894
|
PostPopovercontainer.style = postPopovercontainerCss();
|
|
4957
4895
|
|
|
4958
4896
|
const postTogglebuttonCss = () => `:host{cursor:pointer;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}:host(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:focus-visible){outline-color:Highlight !important}}:host([aria-pressed=true]) ::slotted([data-showwhen=untoggled]){display:none}:host([aria-pressed=false]) ::slotted([data-showwhen=toggled]){display:none}`;
|
|
@@ -4984,7 +4922,7 @@ const PostTogglebutton = class {
|
|
|
4984
4922
|
});
|
|
4985
4923
|
}
|
|
4986
4924
|
render() {
|
|
4987
|
-
return (index.h(index.Host, { key: '
|
|
4925
|
+
return (index.h(index.Host, { key: '6f61a07946f3e67bace0a883b73c424893c4043d', "data-version": _package.version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, index.h("slot", { key: 'fd9b93e45da499dbb790ad675f3db36e248c1960' })));
|
|
4988
4926
|
}
|
|
4989
4927
|
get host() { return index.getElement(this); }
|
|
4990
4928
|
};
|