@swisspost/design-system-components 10.0.0-next.55 → 10.0.0-next.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{components/react/p-CJ80BZ06.js → cjs/breakpoints-Df03Ct7n.js} +103 -5
- package/dist/cjs/debounce-BsIBi_-2.js +13 -0
- package/dist/cjs/environment-BQE9Unf_.js +52 -0
- package/dist/cjs/{event-from-CLvtSUKf.js → event-from-CwMw19f8.js} +2 -2
- package/dist/cjs/fade-CPQhl1fP.js +26 -0
- package/dist/cjs/fade-slide-dPhQa-I1.js +38 -0
- package/dist/cjs/{get-focusable-children-Bx63XUQg.js → get-focusable-children-ChETM1wK.js} +29 -21
- package/dist/cjs/{get-root-CyMf3Vsd.js → get-root-CUAv4k4C.js} +2 -2
- package/dist/cjs/{index-B4gYpuJF.js → index-B4rc1pqu.js} +2150 -292
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-DkJrv93P.js → package-uQ5oiSiN.js} +1 -1
- package/dist/cjs/post-accordion_2.cjs.entry.js +19 -15
- package/dist/cjs/post-avatar.cjs.entry.js +27 -17
- package/dist/cjs/post-back-to-top.cjs.entry.js +23 -43
- package/dist/cjs/post-banner.cjs.entry.js +15 -12
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +14 -12
- package/dist/cjs/post-breadcrumbs.cjs.entry.js +33 -34
- package/dist/cjs/post-card-control.cjs.entry.js +42 -26
- package/dist/cjs/{post-closebutton_15.cjs.entry.js → post-closebutton_13.cjs.entry.js} +618 -531
- package/dist/cjs/post-collapsible_2.cjs.entry.js +41 -37
- package/dist/cjs/post-components.cjs.js +3 -3
- package/dist/cjs/post-env-test.cjs.entry.js +15 -0
- package/dist/cjs/post-footer.cjs.entry.js +24 -20
- package/dist/cjs/post-linkarea.cjs.entry.js +5 -5
- package/dist/cjs/post-pagination.cjs.entry.js +615 -0
- package/dist/cjs/post-popover-trigger.cjs.entry.js +54 -34
- package/dist/cjs/post-popover.cjs.entry.js +26 -17
- package/dist/cjs/post-rating.cjs.entry.js +24 -18
- package/dist/cjs/post-stepper-item.cjs.entry.js +5 -5
- package/dist/cjs/post-stepper.cjs.entry.js +40 -29
- package/dist/cjs/post-tab-item.cjs.entry.js +51 -0
- package/dist/cjs/post-tab-panel.cjs.entry.js +13 -11
- package/dist/cjs/post-tabs.cjs.entry.js +195 -40
- package/dist/cjs/post-tooltip-trigger.cjs.entry.js +13 -11
- package/dist/cjs/post-tooltip.cjs.entry.js +14 -12
- package/dist/cjs/utils-s05L2ulk.js +26 -0
- package/dist/collection/animations/collapse.js +3 -3
- package/dist/collection/animations/fade-slide.js +33 -0
- package/dist/collection/animations/fade.js +19 -7
- package/dist/collection/animations/index.js +2 -0
- package/dist/collection/animations/slide.js +25 -21
- package/dist/collection/animations/types.js +14 -0
- package/dist/collection/animations/utils.js +8 -0
- package/dist/collection/collection-manifest.json +8 -8
- package/dist/collection/components/post-accordion/post-accordion.css +1 -1
- package/dist/collection/components/post-accordion/post-accordion.js +5 -4
- package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +9 -8
- package/dist/collection/components/post-avatar/post-avatar.js +11 -11
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +15 -15
- package/dist/collection/components/post-banner/post-banner.css +4 -1
- package/dist/collection/components/post-banner/post-banner.js +6 -5
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +3 -3
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +29 -29
- package/dist/collection/components/post-card-control/post-card-control.js +18 -18
- package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
- package/dist/collection/components/post-closebutton/post-closebutton.js +4 -3
- package/dist/collection/components/post-collapsible/post-collapsible.js +28 -28
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +3 -3
- package/dist/collection/components/post-footer/post-footer.css +1 -1
- package/dist/collection/components/post-footer/post-footer.js +18 -16
- package/dist/collection/components/post-header/post-header.css +1 -1
- package/dist/collection/components/post-header/post-header.js +144 -82
- package/dist/collection/components/post-icon/post-icon.js +18 -16
- package/dist/collection/components/post-language-menu/post-language-menu.css +1 -0
- package/dist/collection/components/{post-language-switch/post-language-switch.js → post-language-menu/post-language-menu.js} +45 -36
- package/dist/collection/components/post-language-menu-item/post-language-menu-item.css +1 -0
- package/dist/collection/components/{post-language-option/post-language-option.js → post-language-menu-item/post-language-menu-item.js} +24 -23
- package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
- package/dist/collection/components/post-logo/post-logo.css +3 -1
- package/dist/collection/components/post-logo/post-logo.js +3 -3
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +41 -29
- package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +183 -74
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +81 -75
- package/dist/collection/components/post-menu/post-menu.css +1 -1
- package/dist/collection/components/post-menu/post-menu.js +39 -38
- package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +3 -3
- package/dist/collection/components/post-pagination/post-pagination.css +1 -0
- package/dist/collection/components/post-pagination/post-pagination.js +838 -0
- package/dist/collection/components/post-popover/post-popover.js +22 -16
- package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +45 -29
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +82 -131
- package/dist/collection/components/post-rating/post-rating.js +7 -7
- package/dist/collection/components/post-stepper/post-stepper.js +38 -35
- package/dist/collection/components/post-stepper-item/post-stepper-item.css +2 -2
- package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
- package/dist/collection/components/post-tab-item/post-tab-item.css +1 -0
- package/dist/collection/components/post-tab-item/post-tab-item.js +86 -0
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +10 -10
- package/dist/collection/components/post-tabs/post-tabs.js +232 -59
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +2 -2
- package/dist/collection/components/post-tooltip/post-tooltip.js +9 -27
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +4 -4
- package/dist/collection/utils/environment.js +47 -2
- package/dist/collection/utils/event-from.js +2 -2
- package/dist/collection/utils/get-focusable-children.js +29 -21
- package/dist/collection/utils/is-motion-reduced.js +1 -1
- package/dist/collection/utils/tests/environment/hydrate-app-helper.js +16 -0
- package/dist/collection/utils/tests/environment/post-env-test.js +9 -0
- package/dist/component-names.json +4 -5
- package/dist/components/breakpoints.js +1 -178
- package/dist/components/debounce.js +1 -0
- package/dist/components/environment.js +1 -0
- package/dist/components/event-from.js +1 -119
- package/dist/components/fade-slide.js +1 -0
- package/dist/components/fade.js +1 -11
- package/dist/components/focusable.js +1 -5018
- package/dist/components/get-focusable-children.js +1 -64
- package/dist/components/get-root.js +1 -15
- package/dist/components/heading-levels.js +1 -3
- package/dist/components/index.browser.js +1 -14
- package/dist/components/index.d.ts +11 -10
- package/dist/components/index.js +1 -39
- package/dist/components/long-press-event.js +1 -257
- package/dist/components/package.js +1 -3
- package/dist/components/post-accordion-item.js +1 -6
- package/dist/components/post-accordion-item2.js +1 -113
- package/dist/components/post-accordion.js +1 -6
- package/dist/components/post-accordion2.js +1 -138
- package/dist/components/post-avatar.js +1 -217
- package/dist/components/post-back-to-top.js +1 -144
- package/dist/components/post-banner.js +1 -98
- package/dist/components/post-breadcrumb-item.js +1 -6
- package/dist/components/post-breadcrumb-item2.js +1 -79
- package/dist/components/post-breadcrumbs.js +1 -196
- package/dist/components/post-card-control.js +1 -326
- package/dist/components/post-closebutton.js +1 -6
- package/dist/components/post-closebutton2.js +1 -77
- package/dist/components/post-collapsible-trigger.js +1 -6
- package/dist/components/post-collapsible-trigger2.js +1 -136
- package/dist/components/post-collapsible.js +1 -6
- package/dist/components/post-collapsible2.js +1 -110
- package/dist/components/{post-list.d.ts → post-env-test.d.ts} +4 -4
- package/dist/components/post-env-test.js +1 -0
- package/dist/components/post-footer.js +1 -116
- package/dist/components/post-header.js +1 -372
- package/dist/components/post-icon.js +1 -6
- package/dist/components/post-icon2.js +1 -159
- package/dist/components/post-language-menu-item.d.ts +11 -0
- package/dist/components/post-language-menu-item.js +1 -0
- package/dist/components/{post-language-switch.d.ts → post-language-menu.d.ts} +4 -4
- package/dist/components/post-language-menu.js +1 -0
- package/dist/components/post-linkarea.js +1 -58
- package/dist/components/post-logo.js +1 -58
- package/dist/components/post-mainnavigation.js +1 -180
- package/dist/components/post-megadropdown-trigger.js +1 -136
- package/dist/components/post-megadropdown.js +1 -267
- package/dist/components/post-menu-item.js +1 -6
- package/dist/components/post-menu-item2.js +1 -30
- package/dist/components/post-menu-trigger.js +1 -6
- package/dist/components/post-menu-trigger2.js +1 -110
- package/dist/components/post-menu.js +1 -6
- package/dist/components/post-menu2.js +1 -242
- package/dist/components/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
- package/dist/components/post-pagination.js +1 -0
- package/dist/components/post-popover-trigger.js +1 -132
- package/dist/components/post-popover.js +1 -118
- package/dist/components/post-popovercontainer.js +1 -6
- package/dist/components/post-popovercontainer2.js +1 -3127
- package/dist/components/post-rating.js +1 -148
- package/dist/components/post-stepper-item.js +1 -33
- package/dist/components/post-stepper.js +1 -134
- package/dist/components/{post-list-item.d.ts → post-tab-item.d.ts} +4 -4
- package/dist/components/post-tab-item.js +1 -0
- package/dist/components/post-tab-panel.js +1 -54
- package/dist/components/post-tabs.js +1 -196
- package/dist/components/post-togglebutton.js +1 -56
- package/dist/components/post-togglebutton2.js +1 -0
- package/dist/components/post-tooltip-trigger.js +1 -206
- package/dist/components/post-tooltip.js +1 -114
- package/dist/components/react/index.d.ts +2 -0
- package/dist/components/react/index.js +1 -2315
- package/dist/components/react/p-B8YiQ3mz.js +1 -0
- package/dist/components/react/p-BC5nlBvn.js +1 -0
- package/dist/components/react/p-BLchVpF6.js +1 -14
- package/dist/components/react/p-BVCjnh6Q.js +1 -0
- package/dist/{post-components/p-CBFgkSgY.js → components/react/p-BVGcVycs.js} +1 -1
- package/dist/components/react/p-B_XPj2c8.js +1 -0
- package/dist/components/react/p-BllOMLDs.js +1 -0
- package/dist/components/react/p-BmRNjQUZ.js +1 -0
- package/dist/components/react/p-ByFh05IW.js +1 -0
- package/dist/components/react/p-C9hMpmsD.js +1 -0
- package/dist/components/react/p-CJ13r5fi.js +1 -0
- package/dist/components/react/p-CZvbetqX.js +1 -0
- package/dist/components/react/p-C_2k3G1c.js +1 -257
- package/dist/components/react/p-CoDiS_Ik.js +1 -0
- package/dist/components/react/p-Cou17ld8.js +1 -0
- package/dist/components/react/p-D5knoiyy.js +1 -0
- package/dist/components/react/p-D9DDtvFM.js +1 -0
- package/dist/components/react/p-DY2U5CQt.js +1 -0
- package/dist/components/react/p-DjIHLduJ.js +1 -3
- package/dist/components/react/p-DpATRD2W.js +1 -0
- package/dist/components/react/p-FxUVQ4Tx.js +1 -0
- package/dist/components/react/p-HygIVKXC.js +1 -5018
- package/dist/components/react/p-YR7U0Z_g.js +1 -0
- package/dist/components/react/p-ZeKXASQs.js +1 -0
- package/dist/components/react/p-r4txK0AC.js +1 -3
- package/dist/components/react/p-sSn0kXFi.js +1 -0
- package/dist/components/react/post-accordion-item.js +1 -6
- package/dist/components/react/post-accordion.js +1 -6
- package/dist/components/react/post-avatar.js +1 -218
- package/dist/components/react/post-back-to-top.js +1 -145
- package/dist/components/react/post-banner.js +1 -99
- package/dist/components/react/post-breadcrumb-item.js +1 -6
- package/dist/components/react/post-breadcrumbs.js +1 -197
- package/dist/components/react/post-card-control.js +1 -327
- package/dist/components/react/post-closebutton.js +1 -6
- package/dist/components/react/post-collapsible-trigger.js +1 -6
- package/dist/components/react/post-collapsible.js +1 -6
- package/dist/components/react/{post-list.d.ts → post-env-test.d.ts} +4 -4
- package/dist/components/react/post-env-test.js +1 -0
- package/dist/components/react/post-footer.js +1 -117
- package/dist/components/react/post-header.js +1 -373
- package/dist/components/react/post-icon.js +1 -6
- package/dist/components/react/post-language-menu-item.d.ts +11 -0
- package/dist/components/react/post-language-menu-item.js +1 -0
- package/dist/components/react/{post-language-option.d.ts → post-language-menu.d.ts} +4 -4
- package/dist/components/react/post-language-menu.js +1 -0
- package/dist/components/react/post-linkarea.js +1 -59
- package/dist/components/react/post-logo.js +1 -59
- package/dist/components/react/post-mainnavigation.js +1 -181
- package/dist/components/react/post-megadropdown-trigger.js +1 -137
- package/dist/components/react/post-megadropdown.js +1 -268
- package/dist/components/react/post-menu-item.js +1 -6
- package/dist/components/react/post-menu-trigger.js +1 -6
- package/dist/components/react/post-menu.js +1 -6
- package/dist/components/react/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
- package/dist/components/react/post-pagination.js +1 -0
- package/dist/components/react/post-popover-trigger.js +1 -133
- package/dist/components/react/post-popover.js +1 -119
- package/dist/components/react/post-popovercontainer.js +1 -6
- package/dist/components/react/post-rating.js +1 -149
- package/dist/components/react/post-stepper-item.js +1 -34
- package/dist/components/react/post-stepper.js +1 -135
- package/dist/components/react/{post-list-item.d.ts → post-tab-item.d.ts} +4 -4
- package/dist/components/react/post-tab-item.js +1 -0
- package/dist/components/react/post-tab-panel.js +1 -55
- package/dist/components/react/post-tabs.js +1 -197
- package/dist/components/react/post-togglebutton.js +1 -57
- package/dist/components/react/post-tooltip-trigger.js +1 -207
- package/dist/components/react/post-tooltip.js +1 -115
- package/dist/components/switch-variants.js +1 -3
- package/dist/components/utils.js +1 -0
- package/dist/docs.d.ts +11 -0
- package/dist/docs.json +873 -631
- package/dist/{cjs/breakpoints-CEkeixld.js → esm/breakpoints-DYoSKGHO.js} +89 -6
- package/dist/esm/debounce-C9hMpmsD.js +11 -0
- package/dist/esm/environment-CEmnRoA6.js +49 -0
- package/dist/{components/react/p-CzIKqBrS.js → esm/event-from-rEfV4v4a.js} +2 -2
- package/dist/esm/fade-DsgPYmAa.js +24 -0
- package/dist/esm/fade-slide-CvOvauo9.js +36 -0
- package/dist/esm/{get-focusable-children-D9ZHp2FP.js → get-focusable-children-BXNs2_sw.js} +29 -21
- package/dist/{components/react/p-CBFgkSgY.js → esm/get-root-CXfAA093.js} +1 -1
- package/dist/esm/{index-wEFJ-c34.js → index-CDZBzSdV.js} +2150 -292
- package/dist/esm/loader.js +3 -3
- package/dist/esm/package-CZvbetqX.js +3 -0
- package/dist/esm/post-accordion_2.entry.js +17 -13
- package/dist/esm/post-avatar.entry.js +22 -12
- package/dist/esm/post-back-to-top.entry.js +23 -43
- package/dist/esm/post-banner.entry.js +14 -11
- package/dist/esm/post-breadcrumb-item_2.entry.js +13 -11
- package/dist/esm/post-breadcrumbs.entry.js +31 -32
- package/dist/esm/post-card-control.entry.js +32 -16
- package/dist/esm/{post-closebutton_15.entry.js → post-closebutton_13.entry.js} +599 -510
- package/dist/esm/post-collapsible_2.entry.js +38 -34
- package/dist/esm/post-components.js +4 -4
- package/dist/esm/post-env-test.entry.js +13 -0
- package/dist/esm/post-footer.entry.js +21 -17
- package/dist/esm/post-linkarea.entry.js +5 -5
- package/dist/esm/post-pagination.entry.js +613 -0
- package/dist/esm/post-popover-trigger.entry.js +52 -32
- package/dist/esm/post-popover.entry.js +25 -16
- package/dist/esm/post-rating.entry.js +16 -10
- package/dist/esm/post-stepper-item.entry.js +5 -5
- package/dist/esm/post-stepper.entry.js +39 -28
- package/dist/esm/post-tab-item.entry.js +49 -0
- package/dist/esm/post-tab-panel.entry.js +13 -11
- package/dist/esm/post-tabs.entry.js +195 -40
- package/dist/esm/post-tooltip-trigger.entry.js +10 -8
- package/dist/esm/post-tooltip.entry.js +13 -11
- package/dist/esm/utils-CoDiS_Ik.js +24 -0
- package/dist/post-components/p-09ba7cf9.entry.js +1 -0
- package/dist/post-components/p-0c091898.entry.js +1 -0
- package/dist/post-components/{p-cd03e6f2.entry.js → p-0e97fcfd.entry.js} +1 -1
- package/dist/post-components/p-296f1dd5.entry.js +1 -0
- package/dist/post-components/p-32ad2b21.entry.js +1 -0
- package/dist/post-components/p-366c28cb.entry.js +1 -0
- package/dist/post-components/p-41ae68d5.entry.js +1 -0
- package/dist/post-components/p-448e7265.entry.js +1 -0
- package/dist/post-components/p-554da188.entry.js +1 -0
- package/dist/post-components/p-5912f8f1.entry.js +1 -0
- package/dist/post-components/p-790f300d.entry.js +1 -0
- package/dist/post-components/p-7ed5a493.entry.js +1 -0
- package/dist/post-components/p-85bea1b6.entry.js +1 -0
- package/dist/post-components/p-8bcff4d2.entry.js +1 -0
- package/dist/post-components/p-9dc9c245.entry.js +1 -0
- package/dist/post-components/p-B7ebLhHc.js +1 -0
- package/dist/post-components/p-BVCjnh6Q.js +1 -0
- package/dist/post-components/p-BXNs2_sw.js +1 -0
- package/dist/post-components/p-C9hMpmsD.js +1 -0
- package/dist/post-components/p-CDZBzSdV.js +2 -0
- package/dist/post-components/p-CEmnRoA6.js +1 -0
- package/dist/post-components/p-CZvbetqX.js +1 -0
- package/dist/post-components/p-CoDiS_Ik.js +1 -0
- package/dist/post-components/p-D5knoiyy.js +1 -0
- package/dist/post-components/p-DI-h_mEL.js +1 -0
- package/dist/post-components/p-a06f9695.entry.js +1 -0
- package/dist/post-components/p-a191f1df.entry.js +1 -0
- package/dist/post-components/p-c5d19d62.entry.js +1 -0
- package/dist/post-components/{p-24dc54d1.entry.js → p-c8c4d05b.entry.js} +1 -1
- package/dist/post-components/{p-57288cb2.entry.js → p-d1a5c980.entry.js} +1 -1
- package/dist/post-components/p-d4e2c556.entry.js +1 -0
- package/dist/post-components/p-f96a310c.entry.js +1 -0
- package/dist/post-components/p-fab2327d.entry.js +1 -0
- package/dist/post-components/p-rEfV4v4a.js +1 -0
- package/dist/post-components/post-components.css +1 -1
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/prebuild.js +46 -0
- package/dist/types/animations/collapse.d.ts +1 -0
- package/dist/types/animations/fade-slide.d.ts +11 -0
- package/dist/types/animations/fade.d.ts +2 -2
- package/dist/types/animations/index.d.ts +2 -0
- package/dist/types/animations/slide.d.ts +9 -2
- package/dist/types/animations/types.d.ts +13 -0
- package/dist/types/animations/utils.d.ts +2 -0
- package/dist/types/components/post-accordion-item/heading-levels.d.ts +1 -1
- package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +2 -2
- package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -2
- package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +6 -6
- package/dist/types/components/post-collapsible/post-collapsible.d.ts +4 -5
- package/dist/types/components/post-footer/post-footer.d.ts +4 -4
- package/dist/types/components/post-header/post-header.d.ts +23 -13
- package/dist/types/components/{post-language-switch/post-language-switch.d.ts → post-language-menu/post-language-menu.d.ts} +12 -11
- package/dist/types/components/{post-language-option/post-language-option.d.ts → post-language-menu-item/post-language-menu-item.d.ts} +5 -5
- package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +6 -5
- package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +20 -2
- package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +17 -23
- package/dist/types/components/post-menu/post-menu.d.ts +4 -4
- package/dist/types/components/post-pagination/post-pagination.d.ts +224 -0
- package/dist/types/components/post-popover/post-popover.d.ts +4 -3
- package/dist/types/components/post-popover-trigger/post-popover-trigger.d.ts +2 -1
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +23 -21
- package/dist/types/components/post-rating/post-rating.d.ts +1 -1
- package/dist/types/components/post-stepper/post-stepper.d.ts +9 -8
- package/dist/types/components/post-tab-item/post-tab-item.d.ts +19 -0
- package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +3 -3
- package/dist/types/components/post-tabs/post-tabs.d.ts +33 -12
- package/dist/types/components/post-tooltip/post-tooltip.d.ts +1 -5
- package/dist/types/components.d.ts +322 -219
- package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +9 -0
- package/dist/types/stencil-public-runtime.d.ts +147 -10
- package/dist/types/types/heading-levels.d.ts +1 -1
- package/dist/types/utils/environment.d.ts +25 -1
- package/dist/types/utils/get-focusable-children.d.ts +2 -2
- package/dist/types/utils/tests/environment/hydrate-app-helper.d.ts +5 -0
- package/dist/types/utils/tests/environment/post-env-test.d.ts +3 -0
- package/hydrate/index.d.ts +14 -0
- package/hydrate/index.js +7494 -2714
- package/hydrate/index.mjs +7493 -2715
- package/package.json +7 -8
- package/dist/cjs/fade-nS5zzDQS.js +0 -14
- package/dist/cjs/index-UFKR6Ok0.js +0 -98
- package/dist/cjs/post-tab-header.cjs.entry.js +0 -31
- package/dist/collection/animations/slide-and-fade.js +0 -25
- package/dist/collection/components/post-language-option/post-language-option.css +0 -1
- package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
- package/dist/collection/components/post-list/post-list.css +0 -1
- package/dist/collection/components/post-list/post-list.js +0 -97
- package/dist/collection/components/post-list-item/post-list-item.css +0 -1
- package/dist/collection/components/post-list-item/post-list-item.js +0 -26
- package/dist/collection/components/post-tab-header/post-tab-header.css +0 -1
- package/dist/collection/components/post-tab-header/post-tab-header.js +0 -65
- package/dist/components/index2.js +0 -89
- package/dist/components/post-language-option.d.ts +0 -11
- package/dist/components/post-language-option.js +0 -99
- package/dist/components/post-language-switch.js +0 -157
- package/dist/components/post-list-item.js +0 -38
- package/dist/components/post-list.js +0 -61
- package/dist/components/post-tab-header.js +0 -52
- package/dist/components/react/p-BVXiQdHq.js +0 -64
- package/dist/components/react/p-BhxZzOEC.js +0 -3
- package/dist/components/react/p-CSAMO7iJ.js +0 -243
- package/dist/components/react/p-CYkf_7Y5.js +0 -89
- package/dist/components/react/p-Ccrl2AQn.js +0 -111
- package/dist/components/react/p-CewRvBtg.js +0 -139
- package/dist/components/react/p-Cwiv86_f.js +0 -111
- package/dist/components/react/p-D2waO0Zc.js +0 -31
- package/dist/components/react/p-DBPOV12C.js +0 -160
- package/dist/components/react/p-DVGEExot.js +0 -3128
- package/dist/components/react/p-Djvj8fd2.js +0 -80
- package/dist/components/react/p-LtiDhYis.js +0 -137
- package/dist/components/react/p-SbIC4aZX.js +0 -11
- package/dist/components/react/p-XrZzCOKT.js +0 -78
- package/dist/components/react/p-v3pOrMNQ.js +0 -114
- package/dist/components/react/post-language-option.js +0 -100
- package/dist/components/react/post-language-switch.d.ts +0 -11
- package/dist/components/react/post-language-switch.js +0 -158
- package/dist/components/react/post-list-item.js +0 -39
- package/dist/components/react/post-list.js +0 -62
- package/dist/components/react/post-tab-header.js +0 -53
- package/dist/esm/breakpoints-CJ80BZ06.js +0 -178
- package/dist/esm/event-from-CzIKqBrS.js +0 -119
- package/dist/esm/fade-SbIC4aZX.js +0 -11
- package/dist/esm/get-root-BkQ3CrLq.js +0 -15
- package/dist/esm/index-Beaz8wEe.js +0 -89
- package/dist/esm/package-BhxZzOEC.js +0 -3
- package/dist/esm/post-tab-header.entry.js +0 -29
- package/dist/post-components/p-01e678c9.entry.js +0 -1
- package/dist/post-components/p-034a453f.entry.js +0 -1
- package/dist/post-components/p-15a4cdbf.entry.js +0 -1
- package/dist/post-components/p-2a2030bf.entry.js +0 -1
- package/dist/post-components/p-2ed84cc3.entry.js +0 -1
- package/dist/post-components/p-3228968f.entry.js +0 -1
- package/dist/post-components/p-3c01ddfe.entry.js +0 -1
- package/dist/post-components/p-748b1f01.entry.js +0 -1
- package/dist/post-components/p-7745e46e.entry.js +0 -1
- package/dist/post-components/p-7f635728.entry.js +0 -1
- package/dist/post-components/p-82c178a3.entry.js +0 -1
- package/dist/post-components/p-9b5f8319.entry.js +0 -1
- package/dist/post-components/p-Beaz8wEe.js +0 -1
- package/dist/post-components/p-BhxZzOEC.js +0 -1
- package/dist/post-components/p-CJ80BZ06.js +0 -1
- package/dist/post-components/p-D9ZHp2FP.js +0 -1
- package/dist/post-components/p-SbIC4aZX.js +0 -1
- package/dist/post-components/p-a9644e54.entry.js +0 -1
- package/dist/post-components/p-af030a3a.entry.js +0 -1
- package/dist/post-components/p-b8ba8139.entry.js +0 -1
- package/dist/post-components/p-db935e8e.entry.js +0 -1
- package/dist/post-components/p-e62e1f57.entry.js +0 -1
- package/dist/post-components/p-fb4b1641.entry.js +0 -1
- package/dist/post-components/p-wEFJ-c34.js +0 -2
- package/dist/types/animations/slide-and-fade.d.ts +0 -2
- package/dist/types/components/post-list/post-list.d.ts +0 -24
- package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
- package/dist/types/components/post-tab-header/post-tab-header.d.ts +0 -14
- /package/dist/collection/components/{post-language-switch → post-language-menu}/switch-variants.js +0 -0
- /package/dist/{post-components/p-CzIKqBrS.js → components/react/p-rEfV4v4a.js} +0 -0
- /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host, a as getElement, c as createEvent } from './index-
|
|
2
|
-
import { v as version } from './package-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { a as getFocusableChildren } from './get-focusable-children-
|
|
6
|
-
import { E as EventFrom } from './event-from-
|
|
1
|
+
import { r as registerInstance, h, H as Host, a as getElement, c as createEvent } from './index-CDZBzSdV.js';
|
|
2
|
+
import { v as version } from './package-CZvbetqX.js';
|
|
3
|
+
import { f as checkEmptyOrOneOf, c as checkRequiredAndType, t as throttle, e as breakpoint, b as checkEmptyOrType, g as checkRequiredAndPattern, i as checkEmptyOrUrl } from './breakpoints-DYoSKGHO.js';
|
|
4
|
+
import { f as fade } from './fade-DsgPYmAa.js';
|
|
5
|
+
import { g as getDeepFocusableChildren, a as getFocusableChildren } from './get-focusable-children-BXNs2_sw.js';
|
|
6
|
+
import { E as EventFrom } from './event-from-rEfV4v4a.js';
|
|
7
|
+
import { a as IS_BROWSER } from './environment-CEmnRoA6.js';
|
|
7
8
|
import { n as nanoid } from './index.browser-BLchVpF6.js';
|
|
9
|
+
import { r as resolveEasing } from './utils-CoDiS_Ik.js';
|
|
10
|
+
import { f as fadeSlide } from './fade-slide-CvOvauo9.js';
|
|
8
11
|
import { P as PLACEMENT_TYPES } from './placement-DRiVosES.js';
|
|
9
|
-
import { g as getRoot } from './get-root-
|
|
12
|
+
import { g as getRoot } from './get-root-CXfAA093.js';
|
|
10
13
|
|
|
11
14
|
const BUTTON_TYPES = ['button', 'submit', 'reset'];
|
|
12
15
|
|
|
13
|
-
const postClosebuttonCss =
|
|
16
|
+
const postClosebuttonCss = () => `.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}post-closebutton .btn{padding:0;border:unset;min-height:unset;min-width:unset;width:var(--post-device-sizing-notification-1);height:var(--post-device-sizing-notification-1);border-radius:var(--post-device-border-radius-round);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);display:flex;align-items:center;justify-content:center}post-closebutton .btn>post-icon{min-width:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);height:var(--post-device-sizing-interactive-icon-size4)}post-closebutton .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}post-closebutton .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){post-closebutton .btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-closebutton .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){post-closebutton .btn:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-closebutton .btn:not(:disabled):hover,post-closebutton .btn.pretend-hover{cursor:pointer;background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-closebutton .btn:not(:disabled):hover,post-closebutton .btn.pretend-hover{color:HighlightText !important}}`;
|
|
14
17
|
|
|
15
18
|
const PostClosebutton = class {
|
|
16
19
|
constructor(hostRef) {
|
|
@@ -46,40 +49,45 @@ const PostClosebutton = class {
|
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
render() {
|
|
49
|
-
return (h(Host, { key: '
|
|
52
|
+
return (h(Host, { key: '6965a8cb5fb765b4fcec0439ceeafe19d34970c2', "data-version": version }, h("button", { key: '7e718f70b0a4ac79e9439784dac46bd1ffd60fd1', class: "btn", type: this.buttonType }, h("post-icon", { key: '70acda3fbe6c9420f0be708fde6b29a7d5337d13', "aria-hidden": "true", name: "closex" }), h("span", { key: '899b3814c0898b521e4166e1cd951af628558e78', class: "visually-hidden" }, h("slot", { key: 'b13d0e95fd567c86e93e5185389909c7c0e7107d' })))));
|
|
50
53
|
}
|
|
51
54
|
get host() { return getElement(this); }
|
|
52
55
|
static get watchers() { return {
|
|
53
|
-
"buttonType": [
|
|
56
|
+
"buttonType": [{
|
|
57
|
+
"validateButtonType": 0
|
|
58
|
+
}]
|
|
54
59
|
}; }
|
|
55
60
|
};
|
|
56
|
-
PostClosebutton.style = postClosebuttonCss;
|
|
61
|
+
PostClosebutton.style = postClosebuttonCss();
|
|
57
62
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
});
|
|
63
|
+
/**
|
|
64
|
+
* Used by PostMegadropdown (burger menu)
|
|
65
|
+
*/
|
|
66
|
+
const defaultOptions = {
|
|
67
|
+
translate: 100,
|
|
68
|
+
duration: 500,
|
|
69
|
+
easing: 'ease',
|
|
70
|
+
fill: 'none',
|
|
71
|
+
};
|
|
72
|
+
function animateSlide(el, keyframes, options) {
|
|
73
|
+
const { duration, easing, fill } = { ...defaultOptions, ...options };
|
|
74
|
+
return el.animate(keyframes, { duration, easing: resolveEasing(easing), fill });
|
|
70
75
|
}
|
|
71
|
-
function
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
function slide(el, direction, options = {}) {
|
|
77
|
+
const mergedOptions = {
|
|
78
|
+
...defaultOptions,
|
|
79
|
+
...options,
|
|
80
|
+
};
|
|
81
|
+
const { translate } = mergedOptions;
|
|
82
|
+
const baseKeyframes = [
|
|
83
|
+
{ transform: `translateX(${translate}%)` },
|
|
84
|
+
{ transform: 'translateX(0)' },
|
|
85
|
+
];
|
|
86
|
+
const keyframes = direction === 'in' ? baseKeyframes : [...baseKeyframes].reverse();
|
|
87
|
+
return animateSlide(el, keyframes, options);
|
|
80
88
|
}
|
|
81
89
|
|
|
82
|
-
const postHeaderCss =
|
|
90
|
+
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:0.25rem;--post-global-header-padding-inline-start:0.25rem;--post-global-header-padding-inline-end:0.5rem;--post-local-header-padding-inline-start:0.75rem;--post-local-header-padding-inline-end:0.5rem}}@media screen and (min-width: 600px)and (max-width: 1023.98px){:host{--post-header-gap:0.75rem 0.25rem;--post-global-header-padding-inline-start:0.25rem;--post-global-header-padding-inline-end:0.25rem;--post-local-header-padding-inline-start:0.75rem;--post-local-header-padding-inline-end:0.25rem;--post-local-header-padding-block:0rem;--post-burger-menu-padding-inline:2.5rem;--post-burger-menu-body-gap:2rem;--post-burger-menu-footer-gap:1.5rem}}@media screen and (min-width: 600px)and (max-width: 779.98px){:host{--post-burger-menu-padding-inline:1rem}}@media screen and (min-width: 0)and (max-width: 599.98px){:host{--post-header-gap:0.75rem 0.25rem;--post-global-header-padding-inline-start:0rem;--post-global-header-padding-inline-end:0.5rem;--post-local-header-padding-inline-start:0.5rem;--post-local-header-padding-inline-end:0.5rem;--post-local-header-padding-block:0rem;--post-burger-menu-padding-inline:1rem;--post-burger-menu-body-gap:1.5rem;--post-burger-menu-footer-gap:1rem}}: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-logo-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)}.global-header,.local-header,.burger-menu{box-shadow:var(--post-device-elevation-300)}.section,.navigation,.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{container-type:inline-size;display:block;position:sticky;inset-block-start:var(--post-header-top);z-index:1020}:host post-togglebutton{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-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:.25rem .625rem;gap:.375rem;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}:host post-togglebutton:hover{text-decoration:none}:host post-togglebutton:disabled{border-style:var(--post-core-border-style-dash)}:host post-togglebutton{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 post-togglebutton: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){:host post-togglebutton:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host post-togglebutton: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){:host post-togglebutton: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){:host post-togglebutton:is(a){color:LinkText;border:unset}:host post-togglebutton:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}:host post-togglebutton:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}:host post-togglebutton:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}:host post-togglebutton:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}:host post-togglebutton: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);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg);color:var(--post-scheme-color-interactive-button-primary-enabled-fg)}:host post-togglebutton:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}@media screen and (min-width: 0)and (max-width: 599.98px){:host post-togglebutton{padding:.625rem}:host post-togglebutton>:not(post-icon){display:none}:host post-togglebutton>post-icon{font-size:1.5rem}}.global-header{z-index:2;position:sticky;inset-block-start:var(--post-global-header-top);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:has(~.local-header:not(.no-title.no-navigation)),.global-header:has(~.burger-menu.extended){box-shadow:none}.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(1.25rem - var(--post-header-gap))}.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}.global-header.no-audience .audience{display:none}.local-header{position:relative;background-color:#fff}.local-header .section{min-height:var(--post-local-header-expanded-min-height);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)}.local-header:not(.no-title,.no-navigation) .section{padding-block-start:1.125rem}.local-header.no-title.no-navigation{display:none}.local-header:has(.navigation.megadropdown-open),.local-header:has(~.burger-menu.extended){box-shadow:none}.local-header:has(.navigation.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 .navigation{flex:1 0 100%;height:var(--post-main-navigation-height);margin-inline-start:calc(-1*var(--post-local-header-padding-inline-start));max-width:100cqw}.local-header.no-navigation .navigation{display:none}.local-header .local-nav{flex:0 0 auto}.local-header.no-local-nav .navigation{margin-inline-end:calc(-1*var(--post-local-header-padding-inline-end))}.local-header.no-local-nav .local-nav{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.megadropdown-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:1.5rem;gap:var(--post-burger-menu-body-gap)}.burger-menu .burger-menu-footer{background-color:#f0efed;padding-block:1rem 1.5rem;gap:var(--post-burger-menu-footer-gap)}.burger-menu .local-nav{min-height:3.5rem;display:flex;align-items:center;justify-content:flex-end;padding-inline:.25rem}.burger-menu.no-local-nav .local-nav{display:none}`;
|
|
83
91
|
|
|
84
92
|
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
85
93
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -109,6 +117,12 @@ const PostHeader = class {
|
|
|
109
117
|
}
|
|
110
118
|
return document.body;
|
|
111
119
|
}
|
|
120
|
+
validateFullWidth() {
|
|
121
|
+
checkRequiredAndType(this, 'fullWidth', 'boolean');
|
|
122
|
+
}
|
|
123
|
+
validateTextMenu() {
|
|
124
|
+
checkRequiredAndType(this, 'textMenu', 'string');
|
|
125
|
+
}
|
|
112
126
|
lockBody(newValue, _oldValue, propName) {
|
|
113
127
|
const scrollParent = this.scrollParent;
|
|
114
128
|
const burgerMenuExtended = propName === 'burgerMenuExtended' ? newValue : this.burgerMenuExtended;
|
|
@@ -124,13 +138,21 @@ const PostHeader = class {
|
|
|
124
138
|
constructor(hostRef) {
|
|
125
139
|
registerInstance(this, hostRef);
|
|
126
140
|
this.throttledResize = throttle(50, () => this.updateLocalHeaderHeight());
|
|
141
|
+
this.animationOptions = {
|
|
142
|
+
duration: 350,
|
|
143
|
+
easing: 'headerEase',
|
|
144
|
+
};
|
|
127
145
|
this.device = breakpoint.get('device');
|
|
128
146
|
this.hasNavigation = false;
|
|
129
|
-
this.
|
|
130
|
-
this.
|
|
147
|
+
this.hasLocalNav = false;
|
|
148
|
+
this.hasAudience = false;
|
|
131
149
|
this.hasTitle = false;
|
|
132
150
|
this.burgerMenuExtended = false;
|
|
133
151
|
this.megadropdownOpen = false;
|
|
152
|
+
/**
|
|
153
|
+
* Makes the header content span the full width on screens larger than 1440px.
|
|
154
|
+
*/
|
|
155
|
+
this.fullWidth = false;
|
|
134
156
|
this.breakpointChange = (e) => {
|
|
135
157
|
this.device = e.detail;
|
|
136
158
|
this.switchLanguageSwitchMode();
|
|
@@ -144,15 +166,14 @@ const PostHeader = class {
|
|
|
144
166
|
this.megadropdownOpen = false;
|
|
145
167
|
}
|
|
146
168
|
};
|
|
147
|
-
this.megadropdownStateHandler = (event) => {
|
|
148
|
-
this.megadropdownOpen = event.detail.isVisible;
|
|
149
|
-
};
|
|
150
169
|
this.handleScrollEvent = this.handleScrollEvent.bind(this);
|
|
151
170
|
this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
|
|
152
171
|
this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
|
|
153
172
|
this.keyboardHandler = this.keyboardHandler.bind(this);
|
|
154
173
|
this.handleLinkClick = this.handleLinkClick.bind(this);
|
|
174
|
+
this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
|
|
155
175
|
this.checkSlottedContent = this.checkSlottedContent.bind(this);
|
|
176
|
+
this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
|
|
156
177
|
}
|
|
157
178
|
connectedCallback() {
|
|
158
179
|
window.addEventListener('resize', this.throttledResize, { passive: true });
|
|
@@ -163,7 +184,6 @@ const PostHeader = class {
|
|
|
163
184
|
passive: true,
|
|
164
185
|
});
|
|
165
186
|
document.addEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
|
|
166
|
-
this.host.addEventListener('click', this.handleLinkClick);
|
|
167
187
|
window.addEventListener('postBreakpoint:device', this.breakpointChange);
|
|
168
188
|
this.handleScrollParentResize();
|
|
169
189
|
this.lockBody(false, this.burgerMenuExtended, 'burgerMenuExtended');
|
|
@@ -174,11 +194,14 @@ const PostHeader = class {
|
|
|
174
194
|
this.switchLanguageSwitchMode();
|
|
175
195
|
}
|
|
176
196
|
componentDidRender() {
|
|
197
|
+
this.validateTextMenu();
|
|
198
|
+
this.validateFullWidth();
|
|
177
199
|
this.getFocusableElements();
|
|
178
200
|
this.handleLocalHeaderResize();
|
|
179
201
|
}
|
|
180
202
|
componentDidLoad() {
|
|
181
203
|
this.updateLocalHeaderHeight();
|
|
204
|
+
this.host.shadowRoot.addEventListener('click', this.handleLinkClick);
|
|
182
205
|
}
|
|
183
206
|
// Clean up possible side effects when post-header is disconnected
|
|
184
207
|
disconnectedCallback() {
|
|
@@ -190,7 +213,9 @@ const PostHeader = class {
|
|
|
190
213
|
scrollParent.removeEventListener('scroll', this.handleScrollEvent);
|
|
191
214
|
document.removeEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
|
|
192
215
|
this.host.removeEventListener('keydown', this.keyboardHandler);
|
|
193
|
-
this.host.
|
|
216
|
+
if (this.host.shadowRoot) {
|
|
217
|
+
this.host.shadowRoot.removeEventListener('click', this.handleLinkClick);
|
|
218
|
+
}
|
|
194
219
|
if (this.scrollParentResizeObserver) {
|
|
195
220
|
this.scrollParentResizeObserver.disconnect();
|
|
196
221
|
this.scrollParentResizeObserver = null;
|
|
@@ -206,11 +231,9 @@ const PostHeader = class {
|
|
|
206
231
|
this.burgerMenuExtended = false;
|
|
207
232
|
}
|
|
208
233
|
async closeBurgerMenu() {
|
|
209
|
-
this.burgerMenuAnimation
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
menuButton.toggled = false;
|
|
213
|
-
}
|
|
234
|
+
this.burgerMenuAnimation?.finish();
|
|
235
|
+
if (this.burgerMenuButton)
|
|
236
|
+
this.burgerMenuButton.toggled = false;
|
|
214
237
|
this.burgerMenuExtended = false;
|
|
215
238
|
}
|
|
216
239
|
/**
|
|
@@ -220,18 +243,18 @@ const PostHeader = class {
|
|
|
220
243
|
if (this.device === 'desktop')
|
|
221
244
|
return;
|
|
222
245
|
this.burgerMenuAnimation = this.burgerMenuExtended
|
|
223
|
-
?
|
|
224
|
-
:
|
|
246
|
+
? fade(this.burgerMenu, 'out', this.animationOptions)
|
|
247
|
+
: fade(this.burgerMenu, 'in', this.animationOptions);
|
|
225
248
|
// Update the state of the toggle button
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
menuButton.toggled = force ?? !this.burgerMenuExtended;
|
|
249
|
+
if (this.burgerMenuButton)
|
|
250
|
+
this.burgerMenuButton.toggled = force ?? !this.burgerMenuExtended;
|
|
229
251
|
if (this.burgerMenuExtended) {
|
|
230
252
|
// Wait for the close animation to finish before hiding megadropdowns
|
|
231
253
|
await this.burgerMenuAnimation.finished;
|
|
232
254
|
this.burgerMenuExtended = force ?? !this.burgerMenuExtended;
|
|
233
255
|
if (this.burgerMenuExtended === false) {
|
|
234
256
|
this.closeAllMegadropdowns();
|
|
257
|
+
this.burgerMenu.scrollTop = 0;
|
|
235
258
|
}
|
|
236
259
|
}
|
|
237
260
|
else {
|
|
@@ -242,37 +265,31 @@ const PostHeader = class {
|
|
|
242
265
|
}
|
|
243
266
|
}
|
|
244
267
|
}
|
|
268
|
+
megadropdownStateHandler(event) {
|
|
269
|
+
this.megadropdownOpen = event.detail.isVisible;
|
|
270
|
+
}
|
|
245
271
|
// Get all the focusable elements in the post-header burger menu
|
|
246
272
|
getFocusableElements() {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
];
|
|
253
|
-
// Add the main toggle menu button to the list of focusable children
|
|
254
|
-
const focusableChildren = [
|
|
255
|
-
this.host.querySelector('post-togglebutton'),
|
|
256
|
-
...focusableEls.flatMap(el => Array.from(getFocusableChildren(el))),
|
|
257
|
-
];
|
|
258
|
-
this.firstFocusableEl = focusableChildren[0];
|
|
259
|
-
this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
|
|
260
|
-
}
|
|
261
|
-
getMenuButton() {
|
|
262
|
-
return this.host.querySelector('post-togglebutton');
|
|
273
|
+
if (!this.burgerMenu)
|
|
274
|
+
return;
|
|
275
|
+
const focusableElements = [this.burgerMenuButton];
|
|
276
|
+
focusableElements.push(...getDeepFocusableChildren(this.localHeader, el => !el.matches('post-megadropdown')), ...getDeepFocusableChildren(this.burgerMenu, el => !el.matches('post-megadropdown')));
|
|
277
|
+
this.firstFocusableEl = focusableElements[0];
|
|
278
|
+
this.lastFocusableEl = focusableElements[focusableElements.length - 1];
|
|
263
279
|
}
|
|
264
280
|
keyboardHandler(e) {
|
|
265
|
-
if (e.key
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
281
|
+
if (e.key !== 'Tab' || !this.burgerMenuExtended)
|
|
282
|
+
return;
|
|
283
|
+
const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
|
|
284
|
+
if (e.shiftKey && activeElement === this.firstFocusableEl) {
|
|
285
|
+
// If back tab (Tab + Shift) and first element is focused, focus goes to the last element of the megadropdown
|
|
286
|
+
e.preventDefault();
|
|
287
|
+
this.lastFocusableEl.focus();
|
|
288
|
+
}
|
|
289
|
+
else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
|
|
290
|
+
// If Tab and last element is focused, focus goes back to the first element of the megadropdown
|
|
291
|
+
e.preventDefault();
|
|
292
|
+
this.firstFocusableEl.focus();
|
|
276
293
|
}
|
|
277
294
|
}
|
|
278
295
|
closeAllMegadropdowns() {
|
|
@@ -332,21 +349,28 @@ const PostHeader = class {
|
|
|
332
349
|
}
|
|
333
350
|
}
|
|
334
351
|
checkSlottedContent() {
|
|
335
|
-
this.hasNavigation = !!this.host.querySelector('[slot="
|
|
336
|
-
this.
|
|
337
|
-
this.
|
|
352
|
+
this.hasNavigation = !!this.host.querySelector('[slot="main-nav"]');
|
|
353
|
+
this.hasLocalNav = !!this.host.querySelector('[slot="local-nav"]');
|
|
354
|
+
this.hasAudience = !!this.host.querySelector('[slot="audience"]');
|
|
338
355
|
this.hasTitle = !!this.host.querySelector('[slot="title"]');
|
|
339
356
|
}
|
|
340
357
|
switchLanguageSwitchMode() {
|
|
341
358
|
const variant = this.hasBurgerMenu ? 'list' : 'menu';
|
|
342
|
-
Array.from(this.host.querySelectorAll('post-language-
|
|
359
|
+
Array.from(this.host.querySelectorAll('post-language-menu')).forEach(languageSwitch => {
|
|
343
360
|
languageSwitch?.setAttribute('variant', variant);
|
|
344
361
|
});
|
|
345
362
|
}
|
|
346
|
-
onFocusChange() {
|
|
347
|
-
const
|
|
348
|
-
|
|
349
|
-
|
|
363
|
+
onFocusChange(e) {
|
|
364
|
+
const alwaysVisibleElements = this.device === 'desktop'
|
|
365
|
+
? '.navigation' // logo isn’t included since it would be too small to focus on effectively.
|
|
366
|
+
: '.global-header, .burger-menu';
|
|
367
|
+
const isHeaderExpanded =
|
|
368
|
+
// ensure the expanded state stays accurate during focus changes,
|
|
369
|
+
// e.g., when the focused element is removed from the DOM
|
|
370
|
+
// during a window resize
|
|
371
|
+
e.target === document.activeElement &&
|
|
372
|
+
this.host.matches(':focus-within') &&
|
|
373
|
+
!this.host.shadowRoot.querySelector(`:where(${alwaysVisibleElements}):focus-within`);
|
|
350
374
|
if (isHeaderExpanded) {
|
|
351
375
|
this.host.setAttribute('data-expanded', '');
|
|
352
376
|
}
|
|
@@ -355,42 +379,54 @@ const PostHeader = class {
|
|
|
355
379
|
}
|
|
356
380
|
}
|
|
357
381
|
renderNavigation() {
|
|
382
|
+
const localNav = !this.hasTitle && (h("div", { class: "local-nav" }, h("slot", { name: "local-nav" })));
|
|
358
383
|
if (this.device === 'desktop') {
|
|
359
|
-
return (h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, h("slot", { name: "
|
|
384
|
+
return (h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, h("slot", { name: "main-nav" }), localNav));
|
|
360
385
|
}
|
|
361
386
|
return (h("div", { class: {
|
|
362
387
|
'burger-menu': true,
|
|
363
388
|
'extended': this.burgerMenuExtended,
|
|
364
|
-
'no-
|
|
365
|
-
|
|
389
|
+
'no-local-nav': !this.hasLocalNav,
|
|
390
|
+
'megadropdown-open': this.megadropdownOpen,
|
|
391
|
+
}, style: { '--post-header-navigation-current-inset': `${this.burgerMenu?.scrollTop ?? 0}px` }, ref: el => (this.burgerMenu = el) }, localNav, h("div", { class: "burger-menu-body" }, h("slot", { name: "audience" }), h("slot", { name: "main-nav" })), h("div", { class: "burger-menu-footer" }, h("slot", { name: "global-nav-secondary" }), h("slot", { name: "language-menu" }))));
|
|
366
392
|
}
|
|
367
393
|
render() {
|
|
368
|
-
return (h(Host, { key: '
|
|
394
|
+
return (h(Host, { key: '3f5431ebd9b726f8a73ee4a0b8b406d11bab5cf2', "data-version": version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, h("header", { key: 'ea55944e7f5f0750e3cb229a94b2aef7738c397a' }, h("div", { key: 'f70653f47812b951519cc001a42d4827f327cffd', class: {
|
|
369
395
|
'global-header': true,
|
|
370
|
-
'no-
|
|
371
|
-
} }, h("div", { key: '
|
|
372
|
-
h("slot", { key: '
|
|
373
|
-
h("slot", { key: '
|
|
374
|
-
], h("slot", { key: '
|
|
396
|
+
'no-audience': !this.hasAudience,
|
|
397
|
+
} }, h("div", { key: '60d43f32a71169d6d4314b9cc4d8a9e11ec7834e', class: "section" }, h("div", { key: 'ce0f3a9fff1225456f823189093fe960d3f49033', class: "logo" }, h("slot", { key: 'd96003c9bafbe7914b84a9f7b80ab8ed4bd71ddb', name: "post-logo" })), h("div", { key: 'c85e70b4a9adbdd4d95c4ff8a53248b9b707ff2b', class: "sliding-controls" }, this.device === 'desktop' && (h("div", { key: 'd297bba4782a50df1942d96a4eea6c9aeb76965d', class: "audience" }, h("slot", { key: '8a923e9a27d811c204d212843b611885b1a2b257', name: "audience" }))), h("slot", { key: '44a6294e62add92191e5ee8f6b0606a2e367a3d5', name: "global-nav-primary" }), !this.hasBurgerMenu && [
|
|
398
|
+
h("slot", { key: '843b9a656a289b51aea5db4634323999286ccb64', name: "global-nav-secondary" }),
|
|
399
|
+
h("slot", { key: '55268cf25f98a76c377ad48c2578f2f8b3a5b025', name: "language-menu" }),
|
|
400
|
+
], h("slot", { key: '7885e754087572e48a0a62cccbbae3ea70a56bd3', name: "post-login" }), this.hasNavigation && this.device !== 'desktop' && (h("div", { key: '7713dede3877c4bd97cae59d78ea0a38daa15a8e', onClick: () => this.toggleBurgerMenu(), class: "burger-menu-toggle" }, h("slot", { key: '611df14f6646ae994ad090a482c20f09c3e1a39a', name: "post-togglebutton" }))), this.hasNavigation && this.device !== 'desktop' && (h("post-togglebutton", { key: 'e932a70cfd057cec4670867581e380d313cc23d1', ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, h("span", { key: 'c418e4ca4698ebefc5c7410cf6037620db0314f9' }, this.textMenu), h("post-icon", { key: '438bfc7ee2f0d853fa92385c8e0f159608d76313', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), h("post-icon", { key: 'd6b48e5078b8e96d3fc8fef27a50544b3ed58355', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" })))))), h("div", { key: '0909b5778d908f48521abd7635bfd6eb320fc16a', ref: el => (this.localHeader = el), class: {
|
|
375
401
|
'local-header': true,
|
|
376
402
|
'no-title': !this.hasTitle,
|
|
377
|
-
'no-
|
|
403
|
+
'no-audience': !this.hasAudience,
|
|
378
404
|
'no-navigation': this.device !== 'desktop' || !this.hasNavigation,
|
|
379
|
-
'no-
|
|
380
|
-
} }, h("slot", { key: '
|
|
405
|
+
'no-local-nav': !this.hasLocalNav,
|
|
406
|
+
} }, h("div", { key: 'b5d0280efefc560a89f3a1cbeeeaec1b90a82359', class: "section" }, h("slot", { key: 'b0f25a30d6970cde7b1b9e3c1de1ffb667e4cb97', name: "title" }), this.hasTitle && h("slot", { key: '9140fb3550e1f71824add9f90b43cf622223a4a1', name: "local-nav" }), this.device === 'desktop' && this.renderNavigation())), this.device !== 'desktop' && this.renderNavigation())));
|
|
381
407
|
}
|
|
382
408
|
get host() { return getElement(this); }
|
|
383
409
|
static get watchers() { return {
|
|
384
|
-
"
|
|
385
|
-
|
|
410
|
+
"fullWidth": [{
|
|
411
|
+
"validateFullWidth": 0
|
|
412
|
+
}],
|
|
413
|
+
"textMenu": [{
|
|
414
|
+
"validateTextMenu": 0
|
|
415
|
+
}],
|
|
416
|
+
"device": [{
|
|
417
|
+
"lockBody": 0
|
|
418
|
+
}],
|
|
419
|
+
"burgerMenuExtended": [{
|
|
420
|
+
"lockBody": 0
|
|
421
|
+
}]
|
|
386
422
|
}; }
|
|
387
423
|
};
|
|
388
424
|
__decorate$3([
|
|
389
425
|
EventFrom('post-megadropdown')
|
|
390
|
-
], PostHeader.prototype, "megadropdownStateHandler",
|
|
391
|
-
PostHeader.style = postHeaderCss;
|
|
426
|
+
], PostHeader.prototype, "megadropdownStateHandler", null);
|
|
427
|
+
PostHeader.style = postHeaderCss();
|
|
392
428
|
|
|
393
|
-
const postIconCss =
|
|
429
|
+
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;-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;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)}}`;
|
|
394
430
|
|
|
395
431
|
const CDN_URL = `https://unpkg.com/@swisspost/design-system-icons@${version}/public/post-icons/`;
|
|
396
432
|
const ANIMATION_NAMES = [
|
|
@@ -452,9 +488,11 @@ const PostIcon = class {
|
|
|
452
488
|
const baseHref = IS_BROWSER
|
|
453
489
|
? document.querySelector('base[href]')?.getAttribute('href') || ''
|
|
454
490
|
: '';
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
491
|
+
let metaIconBase = '';
|
|
492
|
+
if (IS_BROWSER) {
|
|
493
|
+
const metaTag = document.querySelector('meta[name="design-system-settings"]');
|
|
494
|
+
metaIconBase = metaTag?.getAttribute('data-post-icon-base') || '';
|
|
495
|
+
}
|
|
458
496
|
// Function to build the first part of the URL when 'this.base' or 'metaIconBase' are relative
|
|
459
497
|
const buildUrlWithBase = (relativeUrl) => {
|
|
460
498
|
const normalizedHref = normalizeUrl(baseHref);
|
|
@@ -501,85 +539,32 @@ const PostIcon = class {
|
|
|
501
539
|
this.validateAnimation();
|
|
502
540
|
}
|
|
503
541
|
render() {
|
|
504
|
-
return (h(Host, { key: '
|
|
542
|
+
return (h(Host, { key: 'fe1b4d0541c75c1ed0adb92111d106ed874a9b2f', "data-version": version }, h("span", { key: 'ca2b749e407d9ec54eb881c6662b59626e16083d', style: this.getStyles() })));
|
|
505
543
|
}
|
|
506
544
|
get host() { return getElement(this); }
|
|
507
545
|
static get watchers() { return {
|
|
508
|
-
"animation": [
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
"
|
|
512
|
-
|
|
546
|
+
"animation": [{
|
|
547
|
+
"validateAnimation": 0
|
|
548
|
+
}],
|
|
549
|
+
"base": [{
|
|
550
|
+
"validateBase": 0
|
|
551
|
+
}],
|
|
552
|
+
"name": [{
|
|
553
|
+
"validateName": 0
|
|
554
|
+
}],
|
|
555
|
+
"rotate": [{
|
|
556
|
+
"validateRotate": 0
|
|
557
|
+
}],
|
|
558
|
+
"scale": [{
|
|
559
|
+
"validateScale": 0
|
|
560
|
+
}]
|
|
513
561
|
}; }
|
|
514
562
|
};
|
|
515
|
-
PostIcon.style = postIconCss;
|
|
563
|
+
PostIcon.style = postIconCss();
|
|
516
564
|
|
|
517
565
|
const SWITCH_VARIANTS = ['list', 'menu'];
|
|
518
566
|
|
|
519
|
-
const
|
|
520
|
-
|
|
521
|
-
const PostLanguageOption = class {
|
|
522
|
-
constructor(hostRef) {
|
|
523
|
-
registerInstance(this, hostRef);
|
|
524
|
-
this.postChange = createEvent(this, "postChange");
|
|
525
|
-
this.postLanguageOptionInitiallyActive = createEvent(this, "postLanguageOptionInitiallyActive");
|
|
526
|
-
}
|
|
527
|
-
validateCode() {
|
|
528
|
-
checkRequiredAndType(this, 'code', 'string');
|
|
529
|
-
}
|
|
530
|
-
validateVariant() {
|
|
531
|
-
checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
532
|
-
}
|
|
533
|
-
validateName() {
|
|
534
|
-
checkEmptyOrType(this, 'name', 'string');
|
|
535
|
-
}
|
|
536
|
-
validateUrl() {
|
|
537
|
-
checkEmptyOrUrl(this, 'url');
|
|
538
|
-
}
|
|
539
|
-
componentDidLoad() {
|
|
540
|
-
this.validateCode();
|
|
541
|
-
this.validateName();
|
|
542
|
-
this.validateUrl();
|
|
543
|
-
if (!this.name && this.isNameRequired()) {
|
|
544
|
-
throw new Error('The "name" property of the post-language-option component is required when the full language name is not displayed.');
|
|
545
|
-
}
|
|
546
|
-
if (this.active) {
|
|
547
|
-
this.postLanguageOptionInitiallyActive.emit(this.code);
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
/**
|
|
551
|
-
* Selects the language option programmatically.
|
|
552
|
-
*/
|
|
553
|
-
async select() {
|
|
554
|
-
this.active = true;
|
|
555
|
-
this.emitChange();
|
|
556
|
-
}
|
|
557
|
-
emitChange() {
|
|
558
|
-
this.postChange.emit(this.code);
|
|
559
|
-
}
|
|
560
|
-
isNameRequired() {
|
|
561
|
-
return this.host.textContent.toLowerCase() === this.code.toLowerCase();
|
|
562
|
-
}
|
|
563
|
-
render() {
|
|
564
|
-
const lang = this.code.toLowerCase();
|
|
565
|
-
const emitOnKeyDown = (e) => {
|
|
566
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
567
|
-
this.emitChange();
|
|
568
|
-
}
|
|
569
|
-
};
|
|
570
|
-
return (h(Host, { key: '06ba54de702d5014b34f1b0cb6396cb947ac3ca6', "data-version": version, role: this.variant === 'list' ? 'listitem' : undefined }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name))) : (h("button", { "aria-current": this.active ? 'true' : undefined, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name)))));
|
|
571
|
-
}
|
|
572
|
-
get host() { return getElement(this); }
|
|
573
|
-
static get watchers() { return {
|
|
574
|
-
"code": ["validateCode"],
|
|
575
|
-
"variant": ["validateVariant"],
|
|
576
|
-
"name": ["validateName"],
|
|
577
|
-
"url": ["validateUrl"]
|
|
578
|
-
}; }
|
|
579
|
-
};
|
|
580
|
-
PostLanguageOption.style = postLanguageOptionCss;
|
|
581
|
-
|
|
582
|
-
const postLanguageSwitchCss = ":host{display:flex !important;flex-wrap:wrap;gap:.5rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.post-language-switch-dropdown-container{display:flex;flex-direction:column}.post-language-switch-trigger{cursor:pointer;text-transform:uppercase;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;text-decoration:none;display:inline-flex;align-items:center;gap:6px;border-radius:24px;font-size:16px;padding:3px 10px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger{background-color:ButtonFace !important}.post-language-switch-trigger:hover{background-color:Highlight !important}}.post-language-switch-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-switch-trigger: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){.post-language-switch-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.post-language-switch-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-switch-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.post-language-switch-trigger:not(:disabled):hover,.post-language-switch-trigger.pretend-hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.post-language-switch-trigger post-icon{height:24px;width:24px}.post-language-switch-trigger[aria-expanded=true]{background-color:#050400;color:#fff}.post-language-switch-trigger[aria-expanded=true] post-icon{transform:rotate(180deg)}.post-language-switch-trigger[aria-expanded=true]:hover{background-color:#504f4b;color:#fff}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger{border:1px solid ButtonBorder}.post-language-switch-trigger[aria-expanded=true] post-icon,.post-language-switch-trigger:hover post-icon{color:HighlightText}}post-menu::part(menu){padding-block:0}.post-language-switch-list{margin-top:1rem}";
|
|
567
|
+
const postLanguageMenuCss = () => `:host{display:flex !important}.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-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:.25rem .625rem;gap:.375rem;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);text-transform:uppercase;cursor:pointer}.post-language-menu-trigger:hover{text-decoration:none}.post-language-menu-trigger:disabled{border-style:var(--post-core-border-style-dash)}.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: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){.post-language-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){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:is(a){color:LinkText;border:unset}.post-language-menu-trigger:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}.post-language-menu-trigger:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}.post-language-menu-trigger:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}.post-language-menu-trigger:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.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);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg);color:var(--post-scheme-color-interactive-button-primary-enabled-fg)}.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);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}.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-menu::part(post-menu){padding-block:0}.post-language-menu-list{margin-top:1rem}`;
|
|
583
568
|
|
|
584
569
|
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
585
570
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -591,7 +576,7 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
591
576
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
592
577
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
593
578
|
};
|
|
594
|
-
const
|
|
579
|
+
const PostLanguageMenu = class {
|
|
595
580
|
constructor(hostRef) {
|
|
596
581
|
registerInstance(this, hostRef);
|
|
597
582
|
this.menuId = `p${nanoid(11)}`;
|
|
@@ -602,32 +587,40 @@ const PostLanguageSwitch = class {
|
|
|
602
587
|
this.variant = 'list';
|
|
603
588
|
}
|
|
604
589
|
get languageOptions() {
|
|
605
|
-
return Array.from(this.host.querySelectorAll('post-language-
|
|
590
|
+
return Array.from(this.host.querySelectorAll('post-language-menu-item'));
|
|
606
591
|
}
|
|
607
|
-
|
|
608
|
-
checkRequiredAndType(this, '
|
|
592
|
+
validateTextChangeLanguage() {
|
|
593
|
+
checkRequiredAndType(this, 'textChangeLanguage', 'string');
|
|
609
594
|
}
|
|
610
|
-
|
|
611
|
-
|
|
595
|
+
validateTextCurrentLanguage() {
|
|
596
|
+
checkRequiredAndPattern(this, 'textCurrentLanguage', /#name\b/);
|
|
612
597
|
}
|
|
613
598
|
validateVariant() {
|
|
614
599
|
checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
615
600
|
this.updateChildrenVariant();
|
|
616
601
|
}
|
|
602
|
+
/* The complete accessible description */
|
|
603
|
+
get description() {
|
|
604
|
+
const activeLanguage = this.activeLang &&
|
|
605
|
+
document.querySelector(`post-language-menu-item[code="${this.activeLang}"]`);
|
|
606
|
+
return activeLanguage
|
|
607
|
+
? this.textCurrentLanguage.replace(/#name/g, activeLanguage.name)
|
|
608
|
+
: undefined;
|
|
609
|
+
}
|
|
617
610
|
componentDidLoad() {
|
|
618
|
-
this.
|
|
619
|
-
this.
|
|
611
|
+
this.validateTextChangeLanguage();
|
|
612
|
+
this.validateTextCurrentLanguage();
|
|
620
613
|
this.validateVariant();
|
|
621
614
|
// Initially set variants and active language
|
|
622
|
-
// Handles cases where the language-
|
|
615
|
+
// Handles cases where the language-menu is rendered after the language-options have been rendered
|
|
623
616
|
this.updateChildrenVariant();
|
|
624
617
|
}
|
|
625
618
|
/**
|
|
626
|
-
* Listen for the postChange event and guard it to run only for events originating from a <post-language-
|
|
619
|
+
* Listen for the postChange event and guard it to run only for events originating from a <post-language-menu-item> element.
|
|
627
620
|
*/
|
|
628
621
|
handlePostChange(event) {
|
|
629
622
|
this.activeLang = event.detail;
|
|
630
|
-
// Update the active state in the children post-language-
|
|
623
|
+
// Update the active state in the children post-language-menu-item components
|
|
631
624
|
this.languageOptions.forEach(lang => {
|
|
632
625
|
if (lang.code && lang.code === this.activeLang) {
|
|
633
626
|
lang.setAttribute('active', '');
|
|
@@ -643,91 +636,117 @@ const PostLanguageSwitch = class {
|
|
|
643
636
|
}
|
|
644
637
|
}
|
|
645
638
|
/**
|
|
646
|
-
* Handles cases where the language
|
|
647
|
-
* @param event Initially emitted by <post-
|
|
639
|
+
* Handles cases where the language menu is being rendered before options are available
|
|
640
|
+
* @param event Initially emitted by <post-language-menu-item>
|
|
648
641
|
*/
|
|
649
642
|
handleInitiallyActive(event) {
|
|
650
643
|
this.activeLang = event.detail;
|
|
651
644
|
}
|
|
652
|
-
// Update post-language-
|
|
645
|
+
// Update post-language-menu-item variant to have the correct style
|
|
653
646
|
updateChildrenVariant() {
|
|
654
647
|
this.languageOptions.forEach(el => {
|
|
655
648
|
el.setAttribute('variant', this.variant);
|
|
656
649
|
});
|
|
657
650
|
}
|
|
658
651
|
renderList() {
|
|
659
|
-
return (h(Host, { "data-version": version }, h("div", { class: "post-language-
|
|
652
|
+
return (h(Host, { "data-version": version }, h("div", { class: "post-language-menu-list", role: "list", "aria-label": this.textChangeLanguage, "aria-describedby": this.listSpanId }, h("span", { id: this.listSpanId, class: "visually-hidden" }, this.description), h("slot", null))));
|
|
660
653
|
}
|
|
661
654
|
renderDropdown() {
|
|
662
|
-
return (h(Host, { "data-version": version }, h("post-menu-trigger", { for: this.menuId }, h("button", { class: "post-language-
|
|
655
|
+
return (h(Host, { "data-version": version }, h("post-menu-trigger", { for: this.menuId }, h("button", { class: "post-language-menu-trigger" }, this.activeLang, h("span", { class: "visually-hidden" }, this.textChangeLanguage), h("span", { class: "visually-hidden" }, this.description), h("post-icon", { "aria-hidden": "true", name: "chevrondown" }))), h("post-menu", { id: this.menuId, class: "post-language-menu-dropdown-container", label: this.textChangeLanguage, placement: "bottom-end" }, h("slot", null))));
|
|
663
656
|
}
|
|
664
657
|
render() {
|
|
665
658
|
return this.variant === 'list' ? this.renderList() : this.renderDropdown();
|
|
666
659
|
}
|
|
667
660
|
get host() { return getElement(this); }
|
|
668
661
|
static get watchers() { return {
|
|
669
|
-
"
|
|
670
|
-
|
|
671
|
-
|
|
662
|
+
"textChangeLanguage": [{
|
|
663
|
+
"validateTextChangeLanguage": 0
|
|
664
|
+
}],
|
|
665
|
+
"textCurrentLanguage": [{
|
|
666
|
+
"validateTextCurrentLanguage": 0
|
|
667
|
+
}],
|
|
668
|
+
"variant": [{
|
|
669
|
+
"validateVariant": 0
|
|
670
|
+
}]
|
|
672
671
|
}; }
|
|
673
672
|
};
|
|
674
673
|
__decorate$2([
|
|
675
|
-
EventFrom('post-language-
|
|
676
|
-
],
|
|
677
|
-
|
|
674
|
+
EventFrom('post-language-menu-item')
|
|
675
|
+
], PostLanguageMenu.prototype, "handlePostChange", null);
|
|
676
|
+
PostLanguageMenu.style = postLanguageMenuCss();
|
|
678
677
|
|
|
679
|
-
const
|
|
678
|
+
const postLanguageMenuItemCss = () => `post-language-menu-item{display:inline-block}post-language-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}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item button{background-color:ButtonFace !important}post-language-menu-item button:hover{background-color:Highlight !important}}post-language-menu-item button .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-item a{color:var(--post-current-fg);text-decoration:none}post-language-menu-item :is(a,button){cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-transform:uppercase}post-language-menu-item :is(a,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}post-language-menu-item :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-language-menu-item :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-language-menu-item:where([variant=list]) :is(a,button){padding-inline:0;width:40px;height:40px;border-radius:2px}post-language-menu-item:where([variant=list]) :is(a,button):hover{color:#504f4b}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item:where([variant=list]) :is(a,button){border:1px solid ButtonBorder;color:ButtonText}}post-language-menu-item:where([variant=list])[active]:not([active=false]) :is(a,button){background-color:#050400 !important;color:#fff;pointer-events:none}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item:where([variant=list])[active]:not([active=false]) :is(a,button){background-color:Highlight !important;color:HighlightText}}post-language-menu-item:where([variant=menu]){min-width:72px}post-language-menu-item:where([variant=menu])[active]:not([active=false]){display:none}post-language-menu-item:where([variant=menu]) :is(a,button){padding-block:13px;padding-inline:16px;box-sizing:border-box;justify-content:flex-start;position:relative;border-radius:0}post-language-menu-item:where([variant=menu]) :is(a,button):hover{color:#fff;background-color:#504f4b}post-language-menu-item:where([variant=menu]):first-child :is(a,button){border-start-start-radius:4px;border-start-end-radius:4px}post-language-menu-item:where([variant=menu]):last-child :is(a,button){border-end-start-radius:4px;border-end-end-radius:4px}`;
|
|
680
679
|
|
|
681
|
-
const
|
|
680
|
+
const PostLanguageMenuItem = class {
|
|
682
681
|
constructor(hostRef) {
|
|
683
682
|
registerInstance(this, hostRef);
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
*/
|
|
687
|
-
this.titleHidden = false;
|
|
688
|
-
/**
|
|
689
|
-
* The list can become horizontal by setting `horizontal="true"` or just `horizontal`
|
|
690
|
-
*/
|
|
691
|
-
this.horizontal = false;
|
|
683
|
+
this.postChange = createEvent(this, "postChange");
|
|
684
|
+
this.postLanguageMenuItemInitiallyActive = createEvent(this, "postLanguageMenuItemInitiallyActive");
|
|
692
685
|
}
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
* Get the id set on the host element or use a random id by default
|
|
696
|
-
*/
|
|
697
|
-
this.titleId = `title-${this.host.id || nanoid(6)}`;
|
|
686
|
+
validateCode() {
|
|
687
|
+
checkRequiredAndType(this, 'code', 'string');
|
|
698
688
|
}
|
|
699
|
-
|
|
700
|
-
this
|
|
689
|
+
validateVariant() {
|
|
690
|
+
checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
691
|
+
}
|
|
692
|
+
validateName() {
|
|
693
|
+
checkEmptyOrType(this, 'name', 'string');
|
|
701
694
|
}
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
695
|
+
validateUrl() {
|
|
696
|
+
checkEmptyOrUrl(this, 'url');
|
|
697
|
+
}
|
|
698
|
+
componentDidLoad() {
|
|
699
|
+
this.validateCode();
|
|
700
|
+
this.validateName();
|
|
701
|
+
this.validateUrl();
|
|
702
|
+
if (!this.name && this.isNameRequired()) {
|
|
703
|
+
throw new Error('The "name" property of the post-language-menu-item component is required when the full language name is not displayed.');
|
|
704
|
+
}
|
|
705
|
+
if (this.active) {
|
|
706
|
+
this.postLanguageMenuItemInitiallyActive.emit(this.code);
|
|
705
707
|
}
|
|
706
708
|
}
|
|
707
|
-
|
|
708
|
-
|
|
709
|
+
/**
|
|
710
|
+
* Selects the language option programmatically.
|
|
711
|
+
*/
|
|
712
|
+
async select() {
|
|
713
|
+
this.active = true;
|
|
714
|
+
this.emitChange();
|
|
709
715
|
}
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
PostList.style = postListCss;
|
|
713
|
-
|
|
714
|
-
const postListItemCss = ":host{display:flex}";
|
|
715
|
-
|
|
716
|
-
const PostListItem = class {
|
|
717
|
-
constructor(hostRef) {
|
|
718
|
-
registerInstance(this, hostRef);
|
|
716
|
+
emitChange() {
|
|
717
|
+
this.postChange.emit(this.code);
|
|
719
718
|
}
|
|
720
|
-
|
|
721
|
-
this.host.
|
|
719
|
+
isNameRequired() {
|
|
720
|
+
return this.host.textContent.toLowerCase() === this.code.toLowerCase();
|
|
722
721
|
}
|
|
723
722
|
render() {
|
|
724
|
-
|
|
723
|
+
const lang = this.code.toLowerCase();
|
|
724
|
+
const emitOnKeyDown = (e) => {
|
|
725
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
726
|
+
this.emitChange();
|
|
727
|
+
}
|
|
728
|
+
};
|
|
729
|
+
return (h(Host, { key: 'f95d1aba997cbb1b7b4805428443a35e9db4c8e6', "data-version": version, role: this.variant === 'list' ? 'listitem' : undefined }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name))) : (h("button", { "aria-current": this.active ? 'true' : undefined, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name)))));
|
|
725
730
|
}
|
|
726
731
|
get host() { return getElement(this); }
|
|
732
|
+
static get watchers() { return {
|
|
733
|
+
"code": [{
|
|
734
|
+
"validateCode": 0
|
|
735
|
+
}],
|
|
736
|
+
"variant": [{
|
|
737
|
+
"validateVariant": 0
|
|
738
|
+
}],
|
|
739
|
+
"name": [{
|
|
740
|
+
"validateName": 0
|
|
741
|
+
}],
|
|
742
|
+
"url": [{
|
|
743
|
+
"validateUrl": 0
|
|
744
|
+
}]
|
|
745
|
+
}; }
|
|
727
746
|
};
|
|
728
|
-
|
|
747
|
+
PostLanguageMenuItem.style = postLanguageMenuItemCss();
|
|
729
748
|
|
|
730
|
-
const postLogoCss =
|
|
749
|
+
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: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){.logo-link:is(:focus-visible,:has(:focus-visible),.pretend-focus){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:calc( -2px - var(--post-device-border-width-focus) ) !important}.logo-link :focus,:focus-visible{border-radius:.5rem}`;
|
|
731
750
|
|
|
732
751
|
const PostLogo = class {
|
|
733
752
|
constructor(hostRef) {
|
|
@@ -748,34 +767,38 @@ const PostLogo = class {
|
|
|
748
767
|
render() {
|
|
749
768
|
const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
|
|
750
769
|
const LogoTag = logoLink ? 'a' : 'span';
|
|
751
|
-
return (h(Host, { key: '
|
|
770
|
+
return (h(Host, { key: 'c433a75f67606eeb5bcc52825f3f9a3c30bbaa4b', "data-version": version }, h(LogoTag, { key: 'ab323bbad61548226f75a77df4f95315a9f6a31d', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: 'af7f93ac30e9ee7f2d2b02451f6a00764bc29c28', class: "description" }, h("slot", { key: 'd7ab10f5a8076d40ac310398390f38bcbc9790f3', onSlotchange: () => this.checkDescription() })), h("svg", { key: '02f954f34f91f7666a480dbbdeacb6e0e5bfc993', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: '04dd994e423ba9675c1b83b51e66c32898cd9b47', id: "Logo" }, h("rect", { key: 'e2c61f0848276c5c93f08e88be2b6470559b0957', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: '149967b476d723c3a3ee0e80474b600a31c2857f', 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" }), h("path", { key: '9deb7a46d7fd69c38ae499f12741593955df716d', 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" }))))));
|
|
752
771
|
}
|
|
753
772
|
get host() { return getElement(this); }
|
|
754
773
|
static get watchers() { return {
|
|
755
|
-
"url": [
|
|
774
|
+
"url": [{
|
|
775
|
+
"validateUrl": 0
|
|
776
|
+
}]
|
|
756
777
|
}; }
|
|
757
778
|
};
|
|
758
|
-
PostLogo.style = postLogoCss;
|
|
779
|
+
PostLogo.style = postLogoCss();
|
|
759
780
|
|
|
760
|
-
const postMainnavigationCss = ":root{--post-icon-chevrondown:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbmRvd24iPjxzeW1ib2wgaWQ9InMxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJNMi4wMSA1LjIyYzAtLjE5LjA3LS4zOC4yMi0uNTMuMjktLjI5Ljc3LS4yOSAxLjA2IDBsNC43MiA0LjcyIDQuNzItNC43MmMuMjktLjI5Ljc3LS4yOSAxLjA2IDBzLjI5Ljc3IDAgMS4wNmwtNS43OCA1Ljc4LTUuNzgtNS43OGEuNzQuNzQgMCAwIDEtLjIyLS41MyIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InMyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMy4yNiA3Ljg1YzAtLjIyLjA4LS40NS4yNi0uNjIuMzQtLjM0LjktLjM0IDEuMjQgMGw3LjI2IDcuMjYgNy4yNi03LjI2Yy4zNC0uMzQuOS0uMzQgMS4yNCAwcy4zNC45IDAgMS4yNGwtOC41IDguNS04LjUxLTguNWEuOS45IDAgMCAxLS4yNi0uNjJaIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxwYXRoIGQ9Ik00LjUgMTAuNTRjMC0uMjYuMS0uNTEuMjktLjcxYS45OTYuOTk2IDAgMCAxIDEuNDEgMGw5Ljc5IDkuNzkgOS44LTkuOGEuOTk2Ljk5NiAwIDEgMSAxLjQxIDEuNDFMMTUuOTkgMjIuNDQgNC44IDExLjI1Yy0uMi0uMi0uMjktLjQ1LS4yOS0uNzFaIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczQwIiB2aWV3Qm94PSIwIDAgNDAgNDAiPjxwYXRoIGQ9Ik01LjggMTMuMTdhMS4xMjMgMS4xMjMgMCAwIDEgMS45Mi0uOEwyMC4wNSAyNC43bDEyLjM0LTEyLjM0Yy40NC0uNDQgMS4xNS0uNDQgMS41OSAwcy40NCAxLjE1IDAgMS41OUwyMC4wNSAyNy44OCA2LjEzIDEzLjk3Yy0uMjItLjIyLS4zMy0uNTEtLjMzLS44Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczQ4IiB2aWV3Qm94PSIwIDAgNDggNDgiPjxwYXRoIGQ9Ik03IDE1Ljg3YzAtLjMyLjEyLS42NC4zNy0uODhhMS4yNSAxLjI1IDAgMCAxIDEuNzcgMGwxNC44NyAxNC44NyAxNC44OC0xNC44OGMuNDktLjQ5IDEuMjgtLjQ5IDEuNzcgMHMuNDkgMS4yOCAwIDEuNzdMMjQuMDIgMzMuMzkgNy4zNyAxNi43NWMtLjI0LS4yNC0uMzctLjU2LS4zNy0uODgiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZD0iTTkuNjMgMjEuMjRhMS4zOCAxLjM4IDAgMCAxIDIuMzUtLjk3TDMyLjAxIDQwLjNsMjAuMDQtMjAuMDRjLjU0LS41NCAxLjQxLS41NCAxLjk1IDBzLjU0IDEuNDEgMCAxLjk1TDMyLjAxIDQ0LjE5IDEwLjAzIDIyLjIyYy0uMjctLjI3LS40LS42Mi0uNC0uOTdaTTAgLjAzaDY0djY0SDB6Ii8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25kb3duIi8+PC9nPjwvc3ZnPg==\")}post-mainnavigation post-list-item>a{text-decoration:none;border-radius:0}post-mainnavigation post-list-item post-megadropdown-trigger 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;text-align:start}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation post-list-item post-megadropdown-trigger button{background-color:ButtonFace !important}post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:Highlight !important}}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item post-megadropdown-trigger button{flex:0 0 fit-content;white-space:nowrap;display:flex;align-items:center;justify-content:space-between}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}post-mainnavigation post-list-item>a:focus-visible,post-mainnavigation post-list-item post-megadropdown-trigger button:focus-visible{border-radius:4px;z-index:2}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{content:\"\";mask-image:var(--post-icon-chevrondown);background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;height:24px;width:24px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation>button,post-mainnavigation post-megadropdown-trigger button{border:1px solid ButtonBorder !important}post-mainnavigation>button:hover::after,post-mainnavigation>button[aria-expanded=true]::after,post-mainnavigation post-megadropdown-trigger button:hover::after,post-mainnavigation post-megadropdown-trigger button[aria-expanded=true]::after{color:HighlightText}}post-header:not([data-burger-menu])>post-mainnavigation{display:flex;height:var(--post-main-navigation-height, 0);background:#fff;user-select:none}post-header:not([data-burger-menu])>post-mainnavigation nav{flex:1 1 auto;scroll-behavior:smooth}post-header:not([data-burger-menu])>post-mainnavigation.scrollable,post-header:not([data-burger-menu])>post-mainnavigation.scrollable nav{overflow:hidden}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control{z-index:2;cursor:pointer;padding:1rem;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.scroll-left{margin-inline-end:-3rem}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.scroll-right{margin-inline-start:-3rem}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.d-none{display:none}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control post-icon{font-size:1rem}post-header:not([data-burger-menu])>post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{position:sticky;padding-inline:12px;height:var(--post-main-navigation-height, 0);gap:4px;font-size:16px}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{position:absolute;opacity:1;text-align:center;width:100%;inset-inline-start:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a:hover,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button:hover,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}@media screen and (max-width: 599.98px){post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:12px;transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button::after,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)),post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))::before,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)).active,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))[aria-current=page],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a.active,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a[aria-current=page],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)):hover,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)):hover::before,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}post-header[data-burger-menu]>post-mainnavigation nav{transform:none !important}post-header[data-burger-menu]>post-mainnavigation .scroll-control{display:none}post-header[data-burger-menu]>post-mainnavigation post-list-item>a,post-header[data-burger-menu]>post-mainnavigation post-list-item>button,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-header[data-burger-menu]>post-mainnavigation post-list-item>a::before,post-header[data-burger-menu]>post-mainnavigation post-list-item>button::before,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-header[data-burger-menu]>post-mainnavigation post-list-item>a.active,post-header[data-burger-menu]>post-mainnavigation post-list-item>a[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item>a[aria-expanded=true],post-header[data-burger-menu]>post-mainnavigation post-list-item>button.active,post-header[data-burger-menu]>post-mainnavigation post-list-item>button[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item>button[aria-expanded=true],post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button.active,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-header[data-burger-menu]>post-mainnavigation post-list-item>a:hover,post-header[data-burger-menu]>post-mainnavigation post-list-item>button:hover,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-header[data-burger-menu]>post-mainnavigation post-list-item>a:hover::before,post-header[data-burger-menu]>post-mainnavigation post-list-item>button:hover::before,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-header[data-burger-menu]>post-mainnavigation post-list-item>a .nav-el-inactive,post-header[data-burger-menu]>post-mainnavigation post-list-item>button .nav-el-inactive,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-header[data-burger-menu]>post-mainnavigation>button::after,post-header[data-burger-menu]>post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}";
|
|
781
|
+
const postMainnavigationCss = () => `:host{display:flex;user-select:none;max-width:var(--post-header-content-max-width)}@media screen and (min-width: 1024px){:host{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:1rem;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}.scroll-control.scroll-left{margin-inline-end:-3rem}.scroll-control.scroll-right{margin-inline-start:-3rem}.scroll-control.d-none{display:none}.scroll-control post-icon{font-size:1rem}`;
|
|
761
782
|
|
|
762
783
|
const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
|
|
763
784
|
const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
|
|
764
785
|
const PostMainnavigation = class {
|
|
786
|
+
validateTextMain() {
|
|
787
|
+
checkRequiredAndType(this, 'textMain', 'string');
|
|
788
|
+
}
|
|
765
789
|
constructor(hostRef) {
|
|
766
790
|
registerInstance(this, hostRef);
|
|
767
791
|
this.canScrollLeft = false;
|
|
768
792
|
this.canScrollRight = false;
|
|
769
793
|
this.scrollRight = this.scrollRight.bind(this);
|
|
770
794
|
this.scrollLeft = this.scrollLeft.bind(this);
|
|
771
|
-
this.handleMutations = this.handleMutations.bind(this);
|
|
772
795
|
this.checkScrollability = this.checkScrollability.bind(this);
|
|
773
796
|
this.resizeObserver = new ResizeObserver(this.checkScrollability);
|
|
774
|
-
this.mutationObserver = new MutationObserver(this.
|
|
797
|
+
this.mutationObserver = new MutationObserver(this.checkScrollability);
|
|
775
798
|
}
|
|
776
799
|
componentDidLoad() {
|
|
800
|
+
this.validateTextMain();
|
|
777
801
|
setTimeout(() => {
|
|
778
|
-
this.fixLayoutShift();
|
|
779
802
|
this.checkScrollability();
|
|
780
803
|
});
|
|
781
804
|
// Observe the navbar for size changes
|
|
@@ -800,30 +823,8 @@ const PostMainnavigation = class {
|
|
|
800
823
|
if (this.scrollRepeatInterval)
|
|
801
824
|
clearInterval(this.scrollRepeatInterval);
|
|
802
825
|
}
|
|
803
|
-
async handleMutations(mutations) {
|
|
804
|
-
const addedNodes = mutations.flatMap((mutation) => {
|
|
805
|
-
return Array.from(mutation.addedNodes);
|
|
806
|
-
});
|
|
807
|
-
// Wait for all elements to be hydrated
|
|
808
|
-
await Promise.all(addedNodes.map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
|
|
809
|
-
this.fixLayoutShift();
|
|
810
|
-
this.checkScrollability();
|
|
811
|
-
}
|
|
812
826
|
get navigationItems() {
|
|
813
|
-
return Array.from(this.
|
|
814
|
-
}
|
|
815
|
-
/**
|
|
816
|
-
* Hack to fix the layout shift due to bold text on active elements
|
|
817
|
-
*/
|
|
818
|
-
fixLayoutShift() {
|
|
819
|
-
this.navigationItems
|
|
820
|
-
.filter(item => !item.matches(':has(.nav-el-active)'))
|
|
821
|
-
.forEach(item => {
|
|
822
|
-
item.innerHTML = `
|
|
823
|
-
<span class="nav-el-active">${item.innerHTML}</span>
|
|
824
|
-
<span class="nav-el-inactive" aria-hidden="true">${item.innerHTML}</span>
|
|
825
|
-
`;
|
|
826
|
-
});
|
|
827
|
+
return Array.from(this.host.querySelectorAll('a:not(post-megadropdown *), post-megadropdown-trigger'));
|
|
827
828
|
}
|
|
828
829
|
/**
|
|
829
830
|
* Returns whether scrolling is enabled in either the left or right direction.
|
|
@@ -862,7 +863,7 @@ const PostMainnavigation = class {
|
|
|
862
863
|
}, SCROLL_REPEAT_INTERVAL);
|
|
863
864
|
}
|
|
864
865
|
scrollRight() {
|
|
865
|
-
const scrollRightLeftEdge =
|
|
866
|
+
const scrollRightLeftEdge = this.host.shadowRoot
|
|
866
867
|
.querySelector('.scroll-right')
|
|
867
868
|
.getBoundingClientRect().left;
|
|
868
869
|
for (const navigationItem of this.navigationItems) {
|
|
@@ -876,7 +877,7 @@ const PostMainnavigation = class {
|
|
|
876
877
|
}
|
|
877
878
|
}
|
|
878
879
|
scrollLeft() {
|
|
879
|
-
const scrollLeftRightEdge =
|
|
880
|
+
const scrollLeftRightEdge = this.host.shadowRoot
|
|
880
881
|
.querySelector('.scroll-left')
|
|
881
882
|
.getBoundingClientRect().right;
|
|
882
883
|
for (const navigationItem of this.navigationItems.reverse()) {
|
|
@@ -902,17 +903,40 @@ const PostMainnavigation = class {
|
|
|
902
903
|
}, NAVBAR_DISABLE_DURATION);
|
|
903
904
|
}
|
|
904
905
|
render() {
|
|
905
|
-
return (h(Host, { key: '
|
|
906
|
+
return (h(Host, { key: 'b6bfb6256a2a129a16737b9d97da629842c6b2d5', version: version, class: this.canScroll ? 'scrollable' : '' }, h("div", { key: '3c250f1a09bf9d1c88d4469bb820be4d2ae3dc0a', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, h("post-icon", { key: '8bfdcafdb2594ef323a9cf2408f2c45158fd1632', "aria-hidden": "true", name: "chevronleft" })), h("nav", { key: 'c1d1043ec8448346414a1bbc5cd95b3fe0d0e790', ref: el => (this.navbar = el), "aria-label": this.textMain }, h("slot", { key: 'cc078e4c7d8e24c77027f94598af09be5b80498c' })), h("div", { key: '1fe3c4fae7a9b2cb8bee6677ae528b2cd11d9fa9', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, h("post-icon", { key: '6636d014fd1862d9cbb2116da5cd303f83c7c0f3', "aria-hidden": "true", name: "chevronright" }))));
|
|
906
907
|
}
|
|
908
|
+
get host() { return getElement(this); }
|
|
909
|
+
static get watchers() { return {
|
|
910
|
+
"textMain": [{
|
|
911
|
+
"validateTextMain": 0
|
|
912
|
+
}]
|
|
913
|
+
}; }
|
|
907
914
|
};
|
|
908
|
-
PostMainnavigation.style = postMainnavigationCss;
|
|
915
|
+
PostMainnavigation.style = postMainnavigationCss();
|
|
909
916
|
|
|
910
|
-
const postMegadropdownCss =
|
|
917
|
+
const postMegadropdownCss = () => `*,::before,::after{box-sizing:border-box}.megadropdown{position:absolute;inset-inline:0;overflow-y:auto;background-color:#fafafa;box-shadow:var(--post-device-elevation-300)}@media screen and (min-width: 1024px){.megadropdown{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{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{max-height:calc(100vh - var(--post-header-height) - 3rem);padding:2rem 2.5rem 2.5rem}}@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:1.5rem}}.megadropdown-title{margin-block:0 1rem;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-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;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);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);order:-1;width:fit-content;padding-inline:0}.back-button:hover{text-decoration:none}.back-button:disabled{border-style:var(--post-core-border-style-dash)}.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: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){.back-button:is(:focus-visible,:has(:focus-visible),.pretend-focus){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:is(a){color:LinkText;border:unset}.back-button:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}.back-button:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}.back-button:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}.back-button>post-icon{width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5)}.back-button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media screen and (min-width: 600px)and (max-width: 1023.98px){.back-button{margin-block-end:2rem}}@media screen and (min-width: 0)and (max-width: 599.98px){.back-button{margin-block-end:1.5rem}}.close-button{position:absolute;inset-block-start:1rem;inset-inline-end:1rem}@media screen and (max-width: 1023.98px){.close-button{display:none}}`;
|
|
911
918
|
|
|
912
919
|
const PostMegadropdown = class {
|
|
920
|
+
validateTextClose() {
|
|
921
|
+
checkRequiredAndType(this, 'textClose', 'string');
|
|
922
|
+
}
|
|
923
|
+
validateTextBack() {
|
|
924
|
+
checkRequiredAndType(this, 'textBack', 'string');
|
|
925
|
+
}
|
|
926
|
+
get megadropdownTrigger() {
|
|
927
|
+
const hostId = this.host.getAttribute('id');
|
|
928
|
+
return hostId ? document.querySelector(`post-megadropdown-trigger[for="${hostId}"]`) : null;
|
|
929
|
+
}
|
|
913
930
|
constructor(hostRef) {
|
|
914
931
|
registerInstance(this, hostRef);
|
|
915
932
|
this.postToggleMegadropdown = createEvent(this, "postToggleMegadropdown");
|
|
933
|
+
this.currentAnimation = null;
|
|
934
|
+
this.isAnimating = false;
|
|
935
|
+
this.fsAnimationOptions = {
|
|
936
|
+
translate: -10,
|
|
937
|
+
duration: 350,
|
|
938
|
+
easing: 'headerEase',
|
|
939
|
+
};
|
|
916
940
|
this.device = breakpoint.get('device');
|
|
917
941
|
/**
|
|
918
942
|
* Holds the current visibility state of the dropdown.
|
|
@@ -923,13 +947,17 @@ const PostMegadropdown = class {
|
|
|
923
947
|
this.trigger = false;
|
|
924
948
|
/** Holds the current animation class. */
|
|
925
949
|
this.animationClass = null;
|
|
926
|
-
this.handleClickOutside = (event) => {
|
|
950
|
+
this.handleClickOutside = async (event) => {
|
|
927
951
|
if (this.device !== 'desktop')
|
|
928
952
|
return;
|
|
929
953
|
const target = event.target;
|
|
930
954
|
if (this.host.contains(target)) {
|
|
931
955
|
return;
|
|
932
956
|
}
|
|
957
|
+
// Ignore clicks on the trigger or its contents to prevent running hide() twice
|
|
958
|
+
if (this.megadropdownTrigger.contains(target)) {
|
|
959
|
+
return;
|
|
960
|
+
}
|
|
933
961
|
if (target instanceof HTMLElement) {
|
|
934
962
|
const trigger = target.closest('post-megadropdown-trigger');
|
|
935
963
|
if (trigger) {
|
|
@@ -939,14 +967,11 @@ const PostMegadropdown = class {
|
|
|
939
967
|
}
|
|
940
968
|
}
|
|
941
969
|
}
|
|
942
|
-
this.hide(false);
|
|
970
|
+
await this.hide(false);
|
|
943
971
|
};
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
return hostId
|
|
948
|
-
? document.querySelector(`post-megadropdown-trigger[for="${hostId}"] > button`)
|
|
949
|
-
: null;
|
|
972
|
+
this.keyboardHandler = this.keyboardHandler.bind(this);
|
|
973
|
+
this.handleTabOutside = this.handleTabOutside.bind(this);
|
|
974
|
+
this.handleClickOutside = this.handleClickOutside.bind(this);
|
|
950
975
|
}
|
|
951
976
|
connectedCallback() {
|
|
952
977
|
window.addEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
|
|
@@ -955,16 +980,17 @@ const PostMegadropdown = class {
|
|
|
955
980
|
this.getFocusableElements();
|
|
956
981
|
}
|
|
957
982
|
componentDidLoad() {
|
|
983
|
+
this.validateTextClose();
|
|
984
|
+
this.validateTextBack();
|
|
958
985
|
this.checkInitialAriaCurrent();
|
|
959
986
|
this.setupObserver();
|
|
960
987
|
this.handleAriaCurrentChange([]);
|
|
961
988
|
}
|
|
962
989
|
disconnectedCallback() {
|
|
963
|
-
this.removeListeners();
|
|
964
990
|
window.removeEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
|
|
965
|
-
if (PostMegadropdown.activeDropdown === this)
|
|
991
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
966
992
|
PostMegadropdown.activeDropdown = null;
|
|
967
|
-
|
|
993
|
+
this.removeListeners();
|
|
968
994
|
if (this.defaultSlotObserver) {
|
|
969
995
|
this.defaultSlotObserver.disconnect();
|
|
970
996
|
}
|
|
@@ -973,41 +999,70 @@ const PostMegadropdown = class {
|
|
|
973
999
|
* Toggles the dropdown visibility based on its current state.
|
|
974
1000
|
*/
|
|
975
1001
|
async toggle() {
|
|
976
|
-
if (this.
|
|
977
|
-
this
|
|
978
|
-
|
|
979
|
-
else {
|
|
980
|
-
await this.show();
|
|
1002
|
+
if (this.isAnimating) {
|
|
1003
|
+
// If this is already animating towards a future state -> reverse intent
|
|
1004
|
+
return this.isVisible ? this.show() : this.hide();
|
|
981
1005
|
}
|
|
1006
|
+
return this.isVisible ? this.hide() : this.show();
|
|
982
1007
|
}
|
|
983
1008
|
/**
|
|
984
1009
|
* Displays the dropdown.
|
|
985
1010
|
*/
|
|
986
1011
|
async show() {
|
|
1012
|
+
if (this.device !== 'desktop') {
|
|
1013
|
+
const trigger = this.megadropdownTrigger;
|
|
1014
|
+
if (trigger)
|
|
1015
|
+
this.megadropdownTitle = trigger.innerHTML;
|
|
1016
|
+
}
|
|
987
1017
|
if (PostMegadropdown.activeDropdown && PostMegadropdown.activeDropdown !== this) {
|
|
988
1018
|
// Close the previously active dropdown without animation
|
|
989
1019
|
PostMegadropdown.activeDropdown.forceClose();
|
|
990
1020
|
}
|
|
991
|
-
this.
|
|
1021
|
+
this.cancelAnimation();
|
|
1022
|
+
// Set the megadropdown visible and mark it as the active dropdown
|
|
992
1023
|
this.isVisible = true;
|
|
993
1024
|
PostMegadropdown.activeDropdown = this;
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
this.
|
|
1025
|
+
// Update trigger state
|
|
1026
|
+
this.postToggleMegadropdown.emit({ isVisible: true });
|
|
1027
|
+
try {
|
|
1028
|
+
await this.animate('in');
|
|
1029
|
+
this.focusFirst();
|
|
1030
|
+
// After the megadropdown has finished entry animation
|
|
1031
|
+
this.addListeners();
|
|
1032
|
+
}
|
|
1033
|
+
catch {
|
|
1034
|
+
// Open animation was cancelled - reset state
|
|
1035
|
+
this.removeListeners();
|
|
1036
|
+
this.isVisible = false;
|
|
1037
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
1038
|
+
PostMegadropdown.activeDropdown = null;
|
|
1039
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: true });
|
|
998
1040
|
}
|
|
999
|
-
this.addListeners();
|
|
1000
1041
|
}
|
|
1001
1042
|
/**
|
|
1002
1043
|
* Hides the dropdown with an animation.
|
|
1003
1044
|
*/
|
|
1004
1045
|
async hide(focusParent = true, forceClose = false) {
|
|
1005
|
-
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
|
|
1006
1046
|
if (forceClose) {
|
|
1007
1047
|
this.forceClose();
|
|
1048
|
+
return;
|
|
1008
1049
|
}
|
|
1009
|
-
|
|
1010
|
-
|
|
1050
|
+
// Update trigger state
|
|
1051
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
|
|
1052
|
+
try {
|
|
1053
|
+
await this.animate('out');
|
|
1054
|
+
// After the closing animation finishes set the megadropdown as non visible
|
|
1055
|
+
this.isVisible = false;
|
|
1056
|
+
this.removeListeners();
|
|
1057
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
1058
|
+
PostMegadropdown.activeDropdown = null;
|
|
1059
|
+
}
|
|
1060
|
+
catch {
|
|
1061
|
+
// Closing animation was cancelled - reset state
|
|
1062
|
+
PostMegadropdown.activeDropdown = this;
|
|
1063
|
+
this.addListeners();
|
|
1064
|
+
this.isVisible = true;
|
|
1065
|
+
this.postToggleMegadropdown.emit({ isVisible: true, focusParent: false });
|
|
1011
1066
|
}
|
|
1012
1067
|
}
|
|
1013
1068
|
/**
|
|
@@ -1016,63 +1071,74 @@ const PostMegadropdown = class {
|
|
|
1016
1071
|
async focusFirst() {
|
|
1017
1072
|
this.firstFocusableEl?.focus();
|
|
1018
1073
|
}
|
|
1019
|
-
breakpointChange(e) {
|
|
1020
|
-
this.device = e.detail;
|
|
1021
|
-
if (this.device === 'desktop' && this.isVisible) {
|
|
1022
|
-
this.animationClass = null;
|
|
1023
|
-
}
|
|
1024
|
-
}
|
|
1025
1074
|
/**
|
|
1026
1075
|
* Forces the dropdown to close without animation.
|
|
1027
1076
|
*/
|
|
1028
1077
|
forceClose() {
|
|
1029
|
-
this.isVisible = false;
|
|
1030
|
-
this.animationClass = null;
|
|
1031
|
-
this.postToggleMegadropdown.emit({ isVisible: this.isVisible, focusParent: false });
|
|
1032
1078
|
this.removeListeners();
|
|
1079
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: false });
|
|
1080
|
+
this.isVisible = false;
|
|
1033
1081
|
}
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
this.
|
|
1038
|
-
PostMegadropdown.activeDropdown = null;
|
|
1039
|
-
this.removeListeners();
|
|
1082
|
+
// Run the respective animation
|
|
1083
|
+
createAnimation(direction) {
|
|
1084
|
+
if (this.device === 'desktop') {
|
|
1085
|
+
return fadeSlide(this.animatedContainer, direction, this.fsAnimationOptions);
|
|
1040
1086
|
}
|
|
1087
|
+
return slide(this.animatedContainer, direction, {
|
|
1088
|
+
translate: 100,
|
|
1089
|
+
duration: 350,
|
|
1090
|
+
easing: direction === 'in' ? 'ease-in' : 'ease-out',
|
|
1091
|
+
});
|
|
1092
|
+
}
|
|
1093
|
+
async animate(direction) {
|
|
1094
|
+
this.cancelAnimation();
|
|
1095
|
+
this.currentAnimation = this.createAnimation(direction);
|
|
1096
|
+
// Flag isAnimating used to avoid toggle() de-sync
|
|
1097
|
+
this.isAnimating = true;
|
|
1098
|
+
await this.currentAnimation.finished;
|
|
1099
|
+
this.isAnimating = false;
|
|
1100
|
+
this.currentAnimation = null;
|
|
1101
|
+
}
|
|
1102
|
+
cancelAnimation() {
|
|
1103
|
+
this.currentAnimation?.cancel();
|
|
1104
|
+
this.currentAnimation = null;
|
|
1105
|
+
}
|
|
1106
|
+
breakpointChange(e) {
|
|
1107
|
+
this.device = e.detail;
|
|
1108
|
+
this.cancelAnimation();
|
|
1041
1109
|
}
|
|
1042
1110
|
addListeners() {
|
|
1043
|
-
this.host.addEventListener('keydown',
|
|
1044
|
-
document.addEventListener('keyup',
|
|
1111
|
+
this.host.addEventListener('keydown', this.keyboardHandler);
|
|
1112
|
+
document.addEventListener('keyup', this.handleTabOutside);
|
|
1045
1113
|
document.addEventListener('mousedown', this.handleClickOutside);
|
|
1046
1114
|
}
|
|
1047
1115
|
removeListeners() {
|
|
1048
|
-
this.host.removeEventListener('keydown',
|
|
1049
|
-
document.removeEventListener('keyup',
|
|
1116
|
+
this.host.removeEventListener('keydown', this.keyboardHandler);
|
|
1117
|
+
document.removeEventListener('keyup', this.handleTabOutside);
|
|
1050
1118
|
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
1051
1119
|
}
|
|
1052
1120
|
getFocusableElements() {
|
|
1053
|
-
const
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
}
|
|
1060
|
-
this.firstFocusableEl = focusableChildren[0];
|
|
1061
|
-
this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
|
|
1121
|
+
const focusableElements = [
|
|
1122
|
+
...getFocusableChildren(this.host),
|
|
1123
|
+
...getFocusableChildren(this.host.shadowRoot),
|
|
1124
|
+
];
|
|
1125
|
+
this.firstFocusableEl = focusableElements[0];
|
|
1126
|
+
this.lastFocusableEl = focusableElements[focusableElements.length - 1];
|
|
1062
1127
|
}
|
|
1063
1128
|
// Loop through the focusable children
|
|
1064
1129
|
keyboardHandler(e) {
|
|
1065
|
-
if (e.key
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1130
|
+
if (e.key !== 'Tab' || this.device === 'desktop')
|
|
1131
|
+
return;
|
|
1132
|
+
const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
|
|
1133
|
+
if (e.shiftKey && activeElement === this.firstFocusableEl) {
|
|
1134
|
+
// If back tab (TAB + Shift) and first element is focused, focus goes to the last element of the megadropdown
|
|
1135
|
+
e.preventDefault();
|
|
1136
|
+
this.lastFocusableEl.focus();
|
|
1137
|
+
}
|
|
1138
|
+
else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
|
|
1139
|
+
// If TAB and last element is focused, focus goes back to the first element of the megadropdown
|
|
1140
|
+
e.preventDefault();
|
|
1141
|
+
this.firstFocusableEl.focus();
|
|
1076
1142
|
}
|
|
1077
1143
|
}
|
|
1078
1144
|
handleTabOutside(e) {
|
|
@@ -1103,14 +1169,8 @@ const PostMegadropdown = class {
|
|
|
1103
1169
|
*/
|
|
1104
1170
|
setTriggerActive(isActive) {
|
|
1105
1171
|
const trigger = this.megadropdownTrigger;
|
|
1106
|
-
if (
|
|
1107
|
-
|
|
1108
|
-
if (isActive) {
|
|
1109
|
-
trigger.classList.add('active');
|
|
1110
|
-
}
|
|
1111
|
-
else {
|
|
1112
|
-
trigger.classList.remove('active');
|
|
1113
|
-
}
|
|
1172
|
+
if (trigger)
|
|
1173
|
+
trigger.setAttribute('active', isActive.toString());
|
|
1114
1174
|
}
|
|
1115
1175
|
/**
|
|
1116
1176
|
* Updates the megadropdown trigger state when the megadropdown content changes.
|
|
@@ -1134,15 +1194,23 @@ const PostMegadropdown = class {
|
|
|
1134
1194
|
}
|
|
1135
1195
|
render() {
|
|
1136
1196
|
const containerStyle = this.isVisible ? {} : { display: 'none' };
|
|
1137
|
-
return (h(Host, { key: '
|
|
1197
|
+
return (h(Host, { key: '02194ee3593dd471e2fc3aadb1d69041d613ce0a', version: version }, h("div", { key: '77ab3faeb3705ac0d97ab0d72cc3fbf12c19badc', ref: el => (this.animatedContainer = el), class: "megadropdown", style: containerStyle }, h("div", { key: '5d8b3ef651c3eb19f08e3ccd6c9356e01463a2e0', class: "section" }, this.device !== 'desktop' && this.megadropdownTitle && (h("p", { key: 'e99a5751ea896f3ab55dc9bf58635f7b2fef2a1c', class: "megadropdown-title" }, this.megadropdownTitle)), h("div", { key: 'a0a1bfa04de139d48c825df8fdb24f93e031ea66', class: "megadropdown-content" }, h("slot", { key: '68e44ce30fec1efed2855490b5d9af56ba41e004' })), this.device === 'desktop' ? (h("post-closebutton", { onClick: () => this.hide(true), class: "close-button" }, this.textClose)) : (h("button", { onClick: () => this.hide(true), class: "back-button" }, h("post-icon", { name: "arrowleft" }), this.textBack))))));
|
|
1138
1198
|
}
|
|
1139
1199
|
get host() { return getElement(this); }
|
|
1200
|
+
static get watchers() { return {
|
|
1201
|
+
"textClose": [{
|
|
1202
|
+
"validateTextClose": 0
|
|
1203
|
+
}],
|
|
1204
|
+
"textBack": [{
|
|
1205
|
+
"validateTextBack": 0
|
|
1206
|
+
}]
|
|
1207
|
+
}; }
|
|
1140
1208
|
};
|
|
1141
1209
|
/** Tracks the currently active dropdown instance. */
|
|
1142
1210
|
PostMegadropdown.activeDropdown = null;
|
|
1143
|
-
PostMegadropdown.style = postMegadropdownCss;
|
|
1211
|
+
PostMegadropdown.style = postMegadropdownCss();
|
|
1144
1212
|
|
|
1145
|
-
const postMegadropdownTriggerCss =
|
|
1213
|
+
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-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:.25rem .625rem;gap:.375rem;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}button:hover{text-decoration:none}button:disabled{border-style:var(--post-core-border-style-dash)}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:is(a){color:LinkText;border:unset}button:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}button:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}button:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}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);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg);color:var(--post-scheme-color-interactive-button-primary-enabled-fg)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}button{--post-nav-item-border-width:1px;width:100%;justify-content:start;position:relative;padding:.75rem .75rem calc(.75rem - var(--post-nav-item-border-width)) .5rem;gap:1rem;border-radius:0;line-height:1.5;outline-color:currentColor !important;height:100%}button::before{content:"";background-color:#050400;position:absolute;inset-inline:0;inset-block-end:0;height:var(--post-nav-item-border-width)}button:hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}button:hover::before{background-color:rgba(0,0,0,0)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:none}button{outline-offset:calc( -2px - var(--post-device-border-width-focus) ) !important}button>post-icon:where(:last-child){margin-inline-start:auto}@media screen and (min-width: 0)and (max-width: 599.98px){button{padding:calc(.5rem + 1.5px) .75rem calc(.5rem + 1.5px - var(--post-nav-item-border-width)) .5rem;gap:.5rem;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:1rem .75rem;gap:.5rem}button::before{content:unset}}: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: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}}@media screen and (max-width: 1023.98px){button post-icon{margin-inline-start:auto;transform:rotate(-90deg) !important}}`;
|
|
1146
1214
|
|
|
1147
1215
|
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1148
1216
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1155,101 +1223,87 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1155
1223
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1156
1224
|
};
|
|
1157
1225
|
const PostMegadropdownTrigger = class {
|
|
1226
|
+
validateFor() {
|
|
1227
|
+
checkRequiredAndType(this, 'for', 'string');
|
|
1228
|
+
}
|
|
1158
1229
|
constructor(hostRef) {
|
|
1159
1230
|
registerInstance(this, hostRef);
|
|
1231
|
+
this.mutationObserver = new MutationObserver(this.cloneSlottedButton.bind(this));
|
|
1232
|
+
this.isMegadropdownExpanded = false;
|
|
1233
|
+
this.slottedContent = null;
|
|
1160
1234
|
/**
|
|
1161
|
-
*
|
|
1162
|
-
*/
|
|
1163
|
-
this.ariaExpanded = false;
|
|
1164
|
-
/**
|
|
1165
|
-
* Reference to the slotted button within the trigger, if present.
|
|
1166
|
-
* Used to manage click and key events for mega dropdown control.
|
|
1167
|
-
*/
|
|
1168
|
-
this.slottedButton = null;
|
|
1169
|
-
/**
|
|
1170
|
-
* Tracks whether this trigger's dropdown was expanded before a state change.
|
|
1171
|
-
* Used to determine if this trigger should handle focus when its dropdown closes.
|
|
1235
|
+
* Sets the trigger state to be active or inactive.
|
|
1172
1236
|
*/
|
|
1173
|
-
this.
|
|
1174
|
-
this.
|
|
1175
|
-
if (event.key === 'Enter' || event.key === ' ') {
|
|
1176
|
-
event.preventDefault();
|
|
1177
|
-
this.handleToggle();
|
|
1178
|
-
if (this.megadropdown && !this.ariaExpanded) {
|
|
1179
|
-
setTimeout(() => this.megadropdown.focusFirst(), 100);
|
|
1180
|
-
}
|
|
1181
|
-
}
|
|
1182
|
-
};
|
|
1183
|
-
this.handleToggleMegadropdown = (event) => {
|
|
1184
|
-
if (event.target.id === this.for) {
|
|
1185
|
-
this.ariaExpanded = event.detail.isVisible;
|
|
1186
|
-
// Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
|
|
1187
|
-
if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
|
|
1188
|
-
setTimeout(() => {
|
|
1189
|
-
this.slottedButton?.focus();
|
|
1190
|
-
}, 100);
|
|
1191
|
-
}
|
|
1192
|
-
this.wasExpanded = this.ariaExpanded;
|
|
1193
|
-
if (this.slottedButton) {
|
|
1194
|
-
this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
|
|
1195
|
-
}
|
|
1196
|
-
}
|
|
1197
|
-
};
|
|
1237
|
+
this.active = false;
|
|
1238
|
+
this.onMegadropdownToggled = this.onMegadropdownToggled.bind(this);
|
|
1198
1239
|
}
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1240
|
+
connectedCallback() {
|
|
1241
|
+
this.mutationObserver.observe(this.host, { childList: true, subtree: true });
|
|
1242
|
+
}
|
|
1243
|
+
componentWillLoad() {
|
|
1244
|
+
this.cloneSlottedButton();
|
|
1245
|
+
}
|
|
1246
|
+
componentDidLoad() {
|
|
1247
|
+
this.validateFor();
|
|
1248
|
+
// Check if the mega dropdown attached to the trigger is expanded or not
|
|
1249
|
+
if (IS_BROWSER)
|
|
1250
|
+
document.addEventListener('postToggleMegadropdown', this.onMegadropdownToggled);
|
|
1251
|
+
}
|
|
1252
|
+
disconnectedCallback() {
|
|
1253
|
+
document.removeEventListener('postToggleMegadropdown', this.onMegadropdownToggled);
|
|
1254
|
+
}
|
|
1255
|
+
cloneSlottedButton() {
|
|
1256
|
+
this.slottedContent = this.host.innerHTML;
|
|
1205
1257
|
}
|
|
1206
1258
|
get megadropdown() {
|
|
1207
1259
|
const ref = document.getElementById(this.for);
|
|
1208
|
-
|
|
1209
|
-
? ref
|
|
1210
|
-
: null;
|
|
1211
|
-
}
|
|
1212
|
-
handleToggle() {
|
|
1213
|
-
if (this.megadropdown) {
|
|
1214
|
-
this.megadropdown.toggle();
|
|
1215
|
-
}
|
|
1216
|
-
else {
|
|
1260
|
+
if (ref?.localName !== 'post-megadropdown') {
|
|
1217
1261
|
console.warn(`No post-megadropdown found with ID: ${this.for}`);
|
|
1262
|
+
return null;
|
|
1218
1263
|
}
|
|
1264
|
+
return ref;
|
|
1219
1265
|
}
|
|
1220
|
-
|
|
1221
|
-
this.
|
|
1222
|
-
// Check if the mega dropdown attached to the trigger is expanded or not
|
|
1223
|
-
document.addEventListener('postToggleMegadropdown', this.handleToggleMegadropdown);
|
|
1224
|
-
this.slottedButton = this.host.querySelector('button');
|
|
1225
|
-
if (this.slottedButton) {
|
|
1226
|
-
this.slottedButton.setAttribute('aria-haspopup', 'menu');
|
|
1227
|
-
this.slottedButton.addEventListener('click', () => {
|
|
1228
|
-
this.handleToggle();
|
|
1229
|
-
});
|
|
1230
|
-
this.slottedButton.addEventListener('keydown', this.handleKeyDown);
|
|
1231
|
-
}
|
|
1232
|
-
else {
|
|
1233
|
-
console.warn('No button found within post-megadropdown-trigger');
|
|
1234
|
-
}
|
|
1266
|
+
onClick() {
|
|
1267
|
+
this.megadropdown?.toggle();
|
|
1235
1268
|
}
|
|
1236
|
-
|
|
1237
|
-
|
|
1269
|
+
onKeyDown(event) {
|
|
1270
|
+
if (event.key !== 'Enter' && event.key !== ' ')
|
|
1271
|
+
return;
|
|
1272
|
+
const megadropdown = this.megadropdown;
|
|
1273
|
+
if (!megadropdown)
|
|
1274
|
+
return;
|
|
1275
|
+
event.preventDefault();
|
|
1276
|
+
this.megadropdown.toggle();
|
|
1277
|
+
}
|
|
1278
|
+
onMegadropdownToggled(event) {
|
|
1279
|
+
if (event.target.id === this.for) {
|
|
1280
|
+
const wasMegadropdownExpanded = this.isMegadropdownExpanded;
|
|
1281
|
+
this.isMegadropdownExpanded = event.detail.isVisible;
|
|
1282
|
+
const haveBeenClosed = wasMegadropdownExpanded && !this.isMegadropdownExpanded;
|
|
1283
|
+
if (!haveBeenClosed || !event.detail.focusParent)
|
|
1284
|
+
return;
|
|
1285
|
+
// Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
|
|
1286
|
+
setTimeout(() => {
|
|
1287
|
+
this.interactiveButton.focus();
|
|
1288
|
+
}, 100);
|
|
1289
|
+
}
|
|
1238
1290
|
}
|
|
1239
1291
|
render() {
|
|
1240
|
-
return (h(Host, { key: '
|
|
1292
|
+
return (h(Host, { key: 'e2fccf83b9957d929e8014bcaae51511ddbb3e8f', "data-version": version }, h("button", { key: '1b796d6f5e3be99db7037dce808a42a7ca82cff7', 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 } }, h("span", { key: '4de2cc323cfb9d7288ca950ba20c9072cf4b9a38' }, h("span", { key: '64829988553f7086a8d79e15a3282d2e577bc6ba' }, h("slot", { key: '8e59c15428d9a201ef38419db3f502be82458462' })), h("span", { key: '323e643fc73b41b4dfb6ae813a3132b99e671ae6', "aria-hidden": "true", innerHTML: this.slottedContent })), h("post-icon", { key: '8a48e81632b6e290f6176a006e5adf5cf871ef45', name: "chevrondown" }))));
|
|
1241
1293
|
}
|
|
1242
1294
|
get host() { return getElement(this); }
|
|
1243
1295
|
static get watchers() { return {
|
|
1244
|
-
"for": [
|
|
1296
|
+
"for": [{
|
|
1297
|
+
"validateFor": 0
|
|
1298
|
+
}]
|
|
1245
1299
|
}; }
|
|
1246
1300
|
};
|
|
1247
1301
|
__decorate$1([
|
|
1248
1302
|
EventFrom('post-megadropdown', { ignoreNestedComponents: false })
|
|
1249
|
-
], PostMegadropdownTrigger.prototype, "
|
|
1250
|
-
PostMegadropdownTrigger.style = postMegadropdownTriggerCss;
|
|
1303
|
+
], PostMegadropdownTrigger.prototype, "onMegadropdownToggled", null);
|
|
1304
|
+
PostMegadropdownTrigger.style = postMegadropdownTriggerCss();
|
|
1251
1305
|
|
|
1252
|
-
const postMenuCss =
|
|
1306
|
+
const postMenuCss = () => `:host{display:block}:where([part=post-menu]){display:flex;flex-direction:column;padding-block:.5rem}::slotted([slot=header]){margin-top:-0.5rem;padding:1rem;display:flex;align-items:center;gap:.5rem;border-block-end:1px solid #050400;font-weight:700}@media screen and (max-width: 1023.98px){::slotted([slot=header]){padding:.75rem 1rem}}@media screen and (max-width: 779.98px){::slotted([slot=header]){padding:.5rem 1rem}}`;
|
|
1253
1307
|
|
|
1254
1308
|
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1255
1309
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1298,35 +1352,6 @@ const PostMenu = class {
|
|
|
1298
1352
|
this.controlKeyDownHandler(e);
|
|
1299
1353
|
}
|
|
1300
1354
|
};
|
|
1301
|
-
this.handlePostShown = (event) => {
|
|
1302
|
-
// Only for the first open
|
|
1303
|
-
if (event.detail.first) {
|
|
1304
|
-
// Add "menu" and "menuitem" aria roles and aria-label
|
|
1305
|
-
this.host.setAttribute('role', 'menu');
|
|
1306
|
-
const menuItems = this.getSlottedItems();
|
|
1307
|
-
for (const item of menuItems) {
|
|
1308
|
-
item.setAttribute('role', 'menuitem');
|
|
1309
|
-
}
|
|
1310
|
-
if (this.label)
|
|
1311
|
-
this.host.setAttribute('aria-label', this.label);
|
|
1312
|
-
}
|
|
1313
|
-
};
|
|
1314
|
-
this.handlePostToggled = (event) => {
|
|
1315
|
-
this.isVisible = event.detail.isOpen;
|
|
1316
|
-
this.toggleMenu.emit(this.isVisible);
|
|
1317
|
-
if (this.isVisible) {
|
|
1318
|
-
this.lastFocusedElement = this.root?.activeElement;
|
|
1319
|
-
requestAnimationFrame(() => {
|
|
1320
|
-
const menuItems = this.getSlottedItems();
|
|
1321
|
-
if (menuItems.length > 0) {
|
|
1322
|
-
menuItems[0].focus();
|
|
1323
|
-
}
|
|
1324
|
-
});
|
|
1325
|
-
}
|
|
1326
|
-
else if (this.lastFocusedElement) {
|
|
1327
|
-
this.lastFocusedElement.focus();
|
|
1328
|
-
}
|
|
1329
|
-
};
|
|
1330
1355
|
this.handleClick = (e) => {
|
|
1331
1356
|
const target = e.target;
|
|
1332
1357
|
if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
|
|
@@ -1388,6 +1413,35 @@ const PostMenu = class {
|
|
|
1388
1413
|
console.error('hide: popoverRef is null or undefined');
|
|
1389
1414
|
}
|
|
1390
1415
|
}
|
|
1416
|
+
handlePostShown(event) {
|
|
1417
|
+
// Only for the first open
|
|
1418
|
+
if (event.detail.first) {
|
|
1419
|
+
// Add "menu" and "menuitem" aria roles and aria-label
|
|
1420
|
+
this.host.setAttribute('role', 'menu');
|
|
1421
|
+
const menuItems = this.getSlottedItems();
|
|
1422
|
+
for (const item of menuItems) {
|
|
1423
|
+
item.setAttribute('role', 'menuitem');
|
|
1424
|
+
}
|
|
1425
|
+
if (this.label)
|
|
1426
|
+
this.host.setAttribute('aria-label', this.label);
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
handlePostBeforeToggle(event) {
|
|
1430
|
+
this.isVisible = event.detail.willOpen;
|
|
1431
|
+
this.toggleMenu.emit(this.isVisible);
|
|
1432
|
+
if (this.isVisible) {
|
|
1433
|
+
this.lastFocusedElement = this.root?.activeElement;
|
|
1434
|
+
requestAnimationFrame(() => {
|
|
1435
|
+
const menuItems = this.getSlottedItems();
|
|
1436
|
+
if (menuItems.length > 0) {
|
|
1437
|
+
menuItems[0].focus();
|
|
1438
|
+
}
|
|
1439
|
+
});
|
|
1440
|
+
}
|
|
1441
|
+
else if (this.lastFocusedElement) {
|
|
1442
|
+
this.lastFocusedElement.focus();
|
|
1443
|
+
}
|
|
1444
|
+
}
|
|
1391
1445
|
controlKeyDownHandler(e) {
|
|
1392
1446
|
const menuItems = this.getSlottedItems();
|
|
1393
1447
|
if (!menuItems.length) {
|
|
@@ -1435,23 +1489,27 @@ const PostMenu = class {
|
|
|
1435
1489
|
.flatMap(el => Array.from(getFocusableChildren(el))));
|
|
1436
1490
|
}
|
|
1437
1491
|
render() {
|
|
1438
|
-
return (h(Host, { key: '
|
|
1492
|
+
return (h(Host, { key: 'b8eed085445b840a741ee5115c10ef4e9b3fb387', "data-version": version }, h("post-popovercontainer", { key: '4d885d0d4a23c5b29312588bccdc0cbbf7e3da23', onPostShow: this.handlePostShown.bind(this), onPostBeforeToggle: this.handlePostBeforeToggle.bind(this), placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: '69ed7ce44051026ca85f6a6cd25aeb1f2ef56a3c', part: "post-menu" }, h("slot", { key: '431d56f067986a0eded7b15c6dbc4ab0662a5b86', name: "header" }), h("slot", { key: '3b906c3a19cce7372de493b5dfe90d1587925a2c' })))));
|
|
1439
1493
|
}
|
|
1440
1494
|
get host() { return getElement(this); }
|
|
1441
1495
|
static get watchers() { return {
|
|
1442
|
-
"placement": [
|
|
1443
|
-
|
|
1496
|
+
"placement": [{
|
|
1497
|
+
"validatePlacement": 0
|
|
1498
|
+
}],
|
|
1499
|
+
"label": [{
|
|
1500
|
+
"validateLabel": 0
|
|
1501
|
+
}]
|
|
1444
1502
|
}; }
|
|
1445
1503
|
};
|
|
1446
1504
|
__decorate([
|
|
1447
1505
|
EventFrom('post-popovercontainer')
|
|
1448
|
-
], PostMenu.prototype, "handlePostShown",
|
|
1506
|
+
], PostMenu.prototype, "handlePostShown", null);
|
|
1449
1507
|
__decorate([
|
|
1450
1508
|
EventFrom('post-popovercontainer')
|
|
1451
|
-
], PostMenu.prototype, "
|
|
1452
|
-
PostMenu.style = postMenuCss;
|
|
1509
|
+
], PostMenu.prototype, "handlePostBeforeToggle", null);
|
|
1510
|
+
PostMenu.style = postMenuCss();
|
|
1453
1511
|
|
|
1454
|
-
const postMenuTriggerCss =
|
|
1512
|
+
const postMenuTriggerCss = () => `:host{display:inline-block}`;
|
|
1455
1513
|
|
|
1456
1514
|
const PostMenuTrigger = class {
|
|
1457
1515
|
constructor(hostRef) {
|
|
@@ -1526,14 +1584,16 @@ const PostMenuTrigger = class {
|
|
|
1526
1584
|
}
|
|
1527
1585
|
}
|
|
1528
1586
|
render() {
|
|
1529
|
-
return (h(Host, { key: '
|
|
1587
|
+
return (h(Host, { key: '13701a50f739c2252ab296e13c657e1d4c51444b', "data-version": version, "tab-index": "-1" }, h("slot", { key: 'dc5fd68d917d3cfe2a9703553b1fba4047770260' })));
|
|
1530
1588
|
}
|
|
1531
1589
|
get host() { return getElement(this); }
|
|
1532
1590
|
static get watchers() { return {
|
|
1533
|
-
"for": [
|
|
1591
|
+
"for": [{
|
|
1592
|
+
"validateControlFor": 0
|
|
1593
|
+
}]
|
|
1534
1594
|
}; }
|
|
1535
1595
|
};
|
|
1536
|
-
PostMenuTrigger.style = postMenuTriggerCss;
|
|
1596
|
+
PostMenuTrigger.style = postMenuTriggerCss();
|
|
1537
1597
|
|
|
1538
1598
|
/**
|
|
1539
1599
|
* Custom positioning reference element.
|
|
@@ -4256,8 +4316,11 @@ function popIn(el) {
|
|
|
4256
4316
|
});
|
|
4257
4317
|
}
|
|
4258
4318
|
|
|
4259
|
-
const postPopovercontainerCss =
|
|
4319
|
+
const postPopovercontainerCss = () => `@layer polyfill{@supports not selector(:popover-open){[popover]:not(.\\:popover-open){display:none}}}:where(post-popovercontainer){background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:where(post-popovercontainer)>div{box-shadow:var(--post-device-elevation-300);width:max-content;max-width:100%;color:var(--post-current-fg);background-color:var(--post-current-bg);border-radius:4px}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:where(post-popovercontainer)>div{border:2px solid rgba(0,0,0,0)}}:where(post-popovercontainer)[tooltip]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:where(post-popovercontainer)[safe-space]::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:auto}:where(post-popovercontainer)[safe-space=triangle]::after{clip-path:polygon(var(--post-safe-space-cursor-x, 0) var(--post-safe-space-cursor-y, 0), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)))}:where(post-popovercontainer)[safe-space=trapezoid]::after{clip-path:polygon(var(--post-safe-space-trigger-x-start, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-start, 0)), var(--post-safe-space-trigger-x-end, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-end, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)))}:where(post-popovercontainer):not(:has(.arrow))>div{box-shadow:var(--post-device-elevation-300)}:where(post-popovercontainer):has(.arrow)>div{filter:drop-shadow(1px 2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(2px 4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(4px 8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.top)>div{filter:drop-shadow(0px -2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(0px -4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(0px -8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.left)>div{filter:drop-shadow(-2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(-4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(-8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.right)>div{filter:drop-shadow(2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer) .arrow{--arrow-size: 0.5825rem;position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:where(post-popovercontainer) .arrow[dynamic-placement=top]{border-bottom-right-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=right]{border-bottom-left-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=bottom]{border-top-left-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=left]{border-top-right-radius:2px}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:where(post-popovercontainer) .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}:where(post-popovercontainer) .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}:where(post-popovercontainer) .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}:where(post-popovercontainer) .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}}`;
|
|
4260
4320
|
|
|
4321
|
+
const ANIMATIONS = {
|
|
4322
|
+
'pop-in': popIn,
|
|
4323
|
+
};
|
|
4261
4324
|
const PostPopovercontainer = class {
|
|
4262
4325
|
constructor(hostRef) {
|
|
4263
4326
|
registerInstance(this, hostRef);
|
|
@@ -4277,18 +4340,14 @@ const PostPopovercontainer = class {
|
|
|
4277
4340
|
* Gap between the edge of the page and the popovercontainer
|
|
4278
4341
|
*/
|
|
4279
4342
|
this.edgeGap = 8;
|
|
4280
|
-
/**
|
|
4281
|
-
* Animation style
|
|
4282
|
-
*/
|
|
4283
|
-
this.animation = null;
|
|
4284
4343
|
/**
|
|
4285
4344
|
* Whether or not to display a little pointer arrow
|
|
4286
4345
|
*/
|
|
4287
4346
|
this.arrow = false;
|
|
4288
4347
|
/**
|
|
4289
|
-
*
|
|
4348
|
+
* Animation style
|
|
4290
4349
|
*/
|
|
4291
|
-
this.
|
|
4350
|
+
this.animation = 'pop-in';
|
|
4292
4351
|
this.currentAnimation = null;
|
|
4293
4352
|
}
|
|
4294
4353
|
validatePlacement() {
|
|
@@ -4315,6 +4374,9 @@ const PostPopovercontainer = class {
|
|
|
4315
4374
|
}
|
|
4316
4375
|
}
|
|
4317
4376
|
componentDidLoad() {
|
|
4377
|
+
this.validatePlacement();
|
|
4378
|
+
this.validateEdgeGap();
|
|
4379
|
+
this.validateSafeSpace();
|
|
4318
4380
|
this.host.addEventListener('beforetoggle', this.handleToggle.bind(this));
|
|
4319
4381
|
}
|
|
4320
4382
|
disconnectedCallback() {
|
|
@@ -4325,7 +4387,7 @@ const PostPopovercontainer = class {
|
|
|
4325
4387
|
}
|
|
4326
4388
|
/**
|
|
4327
4389
|
* Programmatically display the popovercontainer
|
|
4328
|
-
* @param target A focusable element inside the
|
|
4390
|
+
* @param target A focusable element inside the trigger component that controls the popover
|
|
4329
4391
|
*/
|
|
4330
4392
|
async show(target) {
|
|
4331
4393
|
if (this.toggleTimeoutId)
|
|
@@ -4334,15 +4396,44 @@ const PostPopovercontainer = class {
|
|
|
4334
4396
|
this.calculatePosition();
|
|
4335
4397
|
this.host.showPopover();
|
|
4336
4398
|
}
|
|
4399
|
+
/**
|
|
4400
|
+
* Programmatically hide the popovercontainer
|
|
4401
|
+
*/
|
|
4402
|
+
async hide() {
|
|
4403
|
+
if (!this.toggleTimeoutId) {
|
|
4404
|
+
this.eventTarget = null;
|
|
4405
|
+
this.host.hidePopover();
|
|
4406
|
+
this.postHide.emit();
|
|
4407
|
+
}
|
|
4408
|
+
}
|
|
4409
|
+
/**
|
|
4410
|
+
* Toggle popovercontainer display
|
|
4411
|
+
* @param target A focusable element inside the <post-popover-trigger> component that controls the popover
|
|
4412
|
+
* @param force Pass true to always show or false to always hide
|
|
4413
|
+
*/
|
|
4414
|
+
async toggle(target, force) {
|
|
4415
|
+
this.eventTarget = target;
|
|
4416
|
+
// Prevent instant double toggle
|
|
4417
|
+
if (!this.toggleTimeoutId) {
|
|
4418
|
+
this.calculatePosition();
|
|
4419
|
+
this.host.togglePopover(force);
|
|
4420
|
+
this.toggleTimeoutId = null;
|
|
4421
|
+
}
|
|
4422
|
+
return this.host.matches(':where(:popover-open, .popover-open)');
|
|
4423
|
+
}
|
|
4337
4424
|
/**
|
|
4338
4425
|
* Handles the popover opening process and emits related events.
|
|
4339
4426
|
*/
|
|
4340
|
-
|
|
4427
|
+
open() {
|
|
4341
4428
|
const content = this.host.querySelector('.popover-content');
|
|
4342
4429
|
this.startAutoupdates();
|
|
4343
4430
|
if (content) {
|
|
4344
|
-
|
|
4345
|
-
|
|
4431
|
+
const animationFn = ANIMATIONS[this.animation];
|
|
4432
|
+
// Only run the animation if it corresponds to a valid, registered animation function
|
|
4433
|
+
if (typeof animationFn === 'function') {
|
|
4434
|
+
this.runOpenAnimation(animationFn, content);
|
|
4435
|
+
}
|
|
4436
|
+
else {
|
|
4346
4437
|
// No animation case
|
|
4347
4438
|
this.postBeforeToggle.emit({ willOpen: true });
|
|
4348
4439
|
this.postBeforeShow.emit({ first: this.hasOpenedOnce });
|
|
@@ -4351,9 +4442,6 @@ const PostPopovercontainer = class {
|
|
|
4351
4442
|
if (this.hasOpenedOnce)
|
|
4352
4443
|
this.hasOpenedOnce = false;
|
|
4353
4444
|
}
|
|
4354
|
-
else {
|
|
4355
|
-
this.runOpenAnimation(content);
|
|
4356
|
-
}
|
|
4357
4445
|
}
|
|
4358
4446
|
if (this.safeSpace) {
|
|
4359
4447
|
window.addEventListener('mousemove', this.mouseTrackingHandler.bind(this));
|
|
@@ -4362,7 +4450,7 @@ const PostPopovercontainer = class {
|
|
|
4362
4450
|
/**
|
|
4363
4451
|
* Handles the popover closing process and emits related events.
|
|
4364
4452
|
*/
|
|
4365
|
-
|
|
4453
|
+
close() {
|
|
4366
4454
|
if (typeof this.clearAutoUpdate === 'function') {
|
|
4367
4455
|
this.clearAutoUpdate();
|
|
4368
4456
|
}
|
|
@@ -4370,7 +4458,7 @@ const PostPopovercontainer = class {
|
|
|
4370
4458
|
window.removeEventListener('mousemove', this.mouseTrackingHandler.bind(this));
|
|
4371
4459
|
}
|
|
4372
4460
|
// Cancel any running animation
|
|
4373
|
-
if (this.
|
|
4461
|
+
if (this.currentAnimation) {
|
|
4374
4462
|
this.currentAnimation.cancel();
|
|
4375
4463
|
this.currentAnimation = null;
|
|
4376
4464
|
}
|
|
@@ -4381,10 +4469,18 @@ const PostPopovercontainer = class {
|
|
|
4381
4469
|
/**
|
|
4382
4470
|
* Runs the animation and emits the toggle/show/hide events in the correct timing
|
|
4383
4471
|
*/
|
|
4384
|
-
async runOpenAnimation(element) {
|
|
4472
|
+
async runOpenAnimation(animationFn, element) {
|
|
4385
4473
|
let animation;
|
|
4386
4474
|
try {
|
|
4387
|
-
animation =
|
|
4475
|
+
animation = animationFn(element);
|
|
4476
|
+
if (!animation) {
|
|
4477
|
+
// Fallback: no animation, just emit open events directly
|
|
4478
|
+
this.postBeforeToggle.emit({ willOpen: true });
|
|
4479
|
+
this.postBeforeShow.emit({ first: this.hasOpenedOnce });
|
|
4480
|
+
this.postToggle.emit({ isOpen: true });
|
|
4481
|
+
this.postShow.emit({ first: this.hasOpenedOnce });
|
|
4482
|
+
return;
|
|
4483
|
+
}
|
|
4388
4484
|
this.currentAnimation = animation;
|
|
4389
4485
|
if (animation.playState === 'running') {
|
|
4390
4486
|
this.postBeforeToggle.emit({ willOpen: true });
|
|
@@ -4408,31 +4504,6 @@ const PostPopovercontainer = class {
|
|
|
4408
4504
|
}
|
|
4409
4505
|
}
|
|
4410
4506
|
}
|
|
4411
|
-
/**
|
|
4412
|
-
* Programmatically hide the popovercontainer
|
|
4413
|
-
*/
|
|
4414
|
-
async hide() {
|
|
4415
|
-
if (!this.toggleTimeoutId) {
|
|
4416
|
-
this.eventTarget = null;
|
|
4417
|
-
this.host.hidePopover();
|
|
4418
|
-
this.postHide.emit();
|
|
4419
|
-
}
|
|
4420
|
-
}
|
|
4421
|
-
/**
|
|
4422
|
-
* Toggle popovercontainer display
|
|
4423
|
-
* @param target A focusable element inside the <post-popover-trigger> component that controls the popover
|
|
4424
|
-
* @param force Pass true to always show or false to always hide
|
|
4425
|
-
*/
|
|
4426
|
-
async toggle(target, force) {
|
|
4427
|
-
this.eventTarget = target;
|
|
4428
|
-
// Prevent instant double toggle
|
|
4429
|
-
if (!this.toggleTimeoutId) {
|
|
4430
|
-
this.calculatePosition();
|
|
4431
|
-
this.host.togglePopover(force);
|
|
4432
|
-
this.toggleTimeoutId = null;
|
|
4433
|
-
}
|
|
4434
|
-
return this.host.matches(':where(:popover-open, .popover-open)');
|
|
4435
|
-
}
|
|
4436
4507
|
/**
|
|
4437
4508
|
* Start or stop auto updates based on popovercontainer events.
|
|
4438
4509
|
* Popovercontainers can be closed or opened with other methods than class members,
|
|
@@ -4454,6 +4525,8 @@ const PostPopovercontainer = class {
|
|
|
4454
4525
|
* an influence on popovercontainer positioning
|
|
4455
4526
|
*/
|
|
4456
4527
|
startAutoupdates() {
|
|
4528
|
+
if (!this.eventTarget || !this.host)
|
|
4529
|
+
return;
|
|
4457
4530
|
this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.calculatePosition.bind(this));
|
|
4458
4531
|
}
|
|
4459
4532
|
/**
|
|
@@ -4466,6 +4539,7 @@ const PostPopovercontainer = class {
|
|
|
4466
4539
|
async calculatePosition() {
|
|
4467
4540
|
const { x, y, middlewareData, placement } = await this.computeMainPosition();
|
|
4468
4541
|
const currentPlacement = placement.split('-')[0];
|
|
4542
|
+
this.dynamicPlacement = currentPlacement;
|
|
4469
4543
|
// Position popover
|
|
4470
4544
|
this.host.style.left = `${x}px`;
|
|
4471
4545
|
this.host.style.top = `${y}px`;
|
|
@@ -4473,11 +4547,20 @@ const PostPopovercontainer = class {
|
|
|
4473
4547
|
if (this.arrow && middlewareData.arrow) {
|
|
4474
4548
|
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
4475
4549
|
const staticSide = PostPopovercontainer.STATIC_SIDES[currentPlacement];
|
|
4550
|
+
const rootFontSize = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
4551
|
+
// Calculate dynamically the half side which provides the static side offset
|
|
4552
|
+
const arrowSizeValue = getComputedStyle(this.arrowRef)
|
|
4553
|
+
.getPropertyValue('--arrow-size')
|
|
4554
|
+
.trim();
|
|
4555
|
+
const arrowSizePx = arrowSizeValue.endsWith('rem')
|
|
4556
|
+
? Number.parseFloat(arrowSizeValue) * rootFontSize
|
|
4557
|
+
: Number.parseFloat(arrowSizeValue);
|
|
4558
|
+
const halfSide = -0.5 * arrowSizePx;
|
|
4476
4559
|
if (staticSide) {
|
|
4477
4560
|
Object.assign(this.arrowRef.style, {
|
|
4478
4561
|
left: arrowX ? `${arrowX}px` : '',
|
|
4479
4562
|
top: arrowY ? `${arrowY}px` : '',
|
|
4480
|
-
[staticSide]:
|
|
4563
|
+
[staticSide]: `${halfSide}px`,
|
|
4481
4564
|
});
|
|
4482
4565
|
}
|
|
4483
4566
|
}
|
|
@@ -4578,15 +4661,21 @@ const PostPopovercontainer = class {
|
|
|
4578
4661
|
}
|
|
4579
4662
|
}
|
|
4580
4663
|
render() {
|
|
4581
|
-
return (h(Host, { key: '
|
|
4664
|
+
return (h(Host, { key: 'f675b14ed97d7f2931781549df8aafd9072faa96', "data-version": version, popover: "auto" }, h("div", { key: 'f66186a7448f60b9f9dcb1b3cbe047a74a85dc7b', class: "popover-content" }, this.arrow && (h("span", { key: 'd0f8f2baa005522140ac1ef49a0bccc13be72c72', "dynamic-placement": this.dynamicPlacement, class: "arrow", ref: el => {
|
|
4582
4665
|
this.arrowRef = el;
|
|
4583
|
-
} })), h("slot", { key: '
|
|
4666
|
+
} })), h("slot", { key: '5fbdad6fa76951f4d886ef0ab57e7471ac38c59d' }))));
|
|
4584
4667
|
}
|
|
4585
4668
|
get host() { return getElement(this); }
|
|
4586
4669
|
static get watchers() { return {
|
|
4587
|
-
"placement": [
|
|
4588
|
-
|
|
4589
|
-
|
|
4670
|
+
"placement": [{
|
|
4671
|
+
"validatePlacement": 0
|
|
4672
|
+
}],
|
|
4673
|
+
"edgeGap": [{
|
|
4674
|
+
"validateEdgeGap": 0
|
|
4675
|
+
}],
|
|
4676
|
+
"safeSpace": [{
|
|
4677
|
+
"validateSafeSpace": 0
|
|
4678
|
+
}]
|
|
4590
4679
|
}; }
|
|
4591
4680
|
};
|
|
4592
4681
|
PostPopovercontainer.STATIC_SIDES = {
|
|
@@ -4609,9 +4698,9 @@ PostPopovercontainer.PROPERTIES_TO_CLEAR = [
|
|
|
4609
4698
|
'--post-safe-space-trigger-y-start',
|
|
4610
4699
|
'--post-safe-space-trigger-y-end',
|
|
4611
4700
|
];
|
|
4612
|
-
PostPopovercontainer.style = postPopovercontainerCss;
|
|
4701
|
+
PostPopovercontainer.style = postPopovercontainerCss();
|
|
4613
4702
|
|
|
4614
|
-
const postTogglebuttonCss =
|
|
4703
|
+
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}`;
|
|
4615
4704
|
|
|
4616
4705
|
const PostTogglebutton = class {
|
|
4617
4706
|
constructor(hostRef) {
|
|
@@ -4637,10 +4726,10 @@ const PostTogglebutton = class {
|
|
|
4637
4726
|
this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
|
|
4638
4727
|
}
|
|
4639
4728
|
render() {
|
|
4640
|
-
return (h(Host, { key: '
|
|
4729
|
+
return (h(Host, { key: 'e0708bda008257aeab8e9ad82c33c66eff4aedb6', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: 'a10862573155edbef1a88bd8a1f9f8abf9dbe4c0' })));
|
|
4641
4730
|
}
|
|
4642
4731
|
get host() { return getElement(this); }
|
|
4643
4732
|
};
|
|
4644
|
-
PostTogglebutton.style = postTogglebuttonCss;
|
|
4733
|
+
PostTogglebutton.style = postTogglebuttonCss();
|
|
4645
4734
|
|
|
4646
|
-
export { PostClosebutton as post_closebutton, PostHeader as post_header, PostIcon as post_icon,
|
|
4735
|
+
export { PostClosebutton as post_closebutton, PostHeader as post_header, PostIcon as post_icon, PostLanguageMenu as post_language_menu, PostLanguageMenuItem as post_language_menu_item, PostLogo as post_logo, PostMainnavigation as post_mainnavigation, PostMegadropdown as post_megadropdown, PostMegadropdownTrigger as post_megadropdown_trigger, PostMenu as post_menu, PostMenuTrigger as post_menu_trigger, PostPopovercontainer as post_popovercontainer, PostTogglebutton as post_togglebutton };
|