@swisspost/design-system-components 10.0.0-next.54 → 10.0.0-next.56
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-Cb8CTrOz.js → index-CKNxhb0S.js} +29 -13
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-CvZxvdTJ.js → package-CY7IOoiw.js} +1 -1
- package/dist/cjs/post-accordion_2.cjs.entry.js +12 -12
- package/dist/cjs/post-avatar.cjs.entry.js +11 -11
- package/dist/cjs/post-back-to-top.cjs.entry.js +16 -40
- package/dist/cjs/post-banner.cjs.entry.js +11 -10
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +7 -7
- package/dist/cjs/post-breadcrumbs.cjs.entry.js +22 -31
- package/dist/cjs/post-card-control.cjs.entry.js +16 -16
- package/dist/cjs/{post-closebutton_15.cjs.entry.js → post-closebutton_13.cjs.entry.js} +537 -507
- package/dist/cjs/post-collapsible_2.cjs.entry.js +39 -38
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/post-env-test.cjs.entry.js +15 -0
- package/dist/cjs/post-footer.cjs.entry.js +21 -19
- package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
- package/dist/cjs/post-pagination.cjs.entry.js +589 -0
- package/dist/cjs/post-popover-trigger.cjs.entry.js +46 -30
- package/dist/cjs/post-popover.cjs.entry.js +12 -12
- package/dist/cjs/post-rating.cjs.entry.js +13 -13
- package/dist/cjs/post-stepper-item.cjs.entry.js +18 -0
- package/dist/cjs/post-stepper.cjs.entry.js +109 -0
- package/dist/cjs/post-tab-item.cjs.entry.js +49 -0
- package/dist/cjs/post-tab-panel.cjs.entry.js +9 -9
- package/dist/cjs/post-tabs.cjs.entry.js +191 -38
- package/dist/cjs/post-tooltip-trigger.cjs.entry.js +8 -8
- package/dist/cjs/post-tooltip.cjs.entry.js +7 -7
- 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 -6
- package/dist/collection/components/post-accordion/post-accordion.css +1 -1
- package/dist/collection/components/post-accordion/post-accordion.js +2 -2
- package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +4 -4
- package/dist/collection/components/post-avatar/post-avatar.css +1 -1
- package/dist/collection/components/post-avatar/post-avatar.js +1 -1
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +14 -14
- package/dist/collection/components/post-banner/post-banner.css +4 -1
- package/dist/collection/components/post-banner/post-banner.js +3 -3
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +28 -28
- package/dist/collection/components/post-card-control/post-card-control.js +3 -3
- package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
- package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
- package/dist/collection/components/post-collapsible/post-collapsible.js +27 -27
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +6 -5
- 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 +186 -105
- package/dist/collection/components/post-icon/post-icon.js +6 -4
- 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} +25 -25
- 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} +14 -14
- 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 +1 -1
- 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 +184 -75
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +80 -74
- package/dist/collection/components/post-menu/post-menu.css +1 -1
- package/dist/collection/components/post-menu/post-menu.js +35 -35
- package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
- 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.css +1 -1
- package/dist/collection/components/post-popover/post-popover.js +10 -10
- package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +43 -27
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +45 -92
- package/dist/collection/components/post-rating/post-rating.js +3 -3
- package/dist/collection/components/post-stepper/post-stepper.css +1 -0
- package/dist/collection/components/post-stepper/post-stepper.js +207 -0
- package/dist/collection/components/post-stepper-item/post-stepper-item.css +7 -0
- package/dist/collection/components/post-stepper-item/post-stepper-item.js +18 -0
- 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 +9 -9
- package/dist/collection/components/post-tabs/post-tabs.js +230 -57
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +1 -1
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
- 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 +6 -5
- package/dist/components/breakpoints.js +90 -3
- package/dist/components/debounce.js +11 -0
- package/dist/components/environment.js +49 -0
- package/dist/components/event-from.js +2 -2
- package/dist/components/fade-slide.js +36 -0
- package/dist/components/fade.js +21 -8
- package/dist/components/get-focusable-children.js +29 -21
- package/dist/components/get-root.js +1 -1
- package/dist/components/index.d.ts +14 -10
- package/dist/components/index.js +7 -5
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +4 -5
- package/dist/components/post-accordion2.js +4 -5
- package/dist/components/post-avatar.js +3 -4
- package/dist/components/post-back-to-top.js +14 -40
- package/dist/components/post-banner.js +5 -6
- package/dist/components/post-breadcrumb-item2.js +2 -3
- package/dist/components/post-breadcrumbs.js +24 -34
- package/dist/components/post-card-control.js +4 -5
- package/dist/components/post-closebutton2.js +3 -4
- package/dist/components/post-collapsible-trigger2.js +10 -10
- package/dist/components/post-collapsible2.js +25 -25
- package/dist/components/{post-list.d.ts → post-env-test.d.ts} +4 -4
- package/dist/components/post-env-test.js +31 -0
- package/dist/components/post-footer.js +17 -16
- package/dist/components/post-header.js +156 -119
- package/dist/components/post-icon2.js +8 -6
- package/dist/components/post-language-menu-item.d.ts +11 -0
- package/dist/components/post-language-menu-item.js +98 -0
- package/dist/components/{post-language-switch.d.ts → post-language-menu.d.ts} +4 -4
- package/dist/components/post-language-menu.js +156 -0
- package/dist/components/post-linkarea.js +1 -1
- package/dist/components/post-logo.js +3 -4
- package/dist/components/post-mainnavigation.js +21 -32
- package/dist/components/post-megadropdown-trigger.js +72 -79
- package/dist/components/post-megadropdown.js +183 -78
- package/dist/components/post-menu-item2.js +1 -1
- package/dist/components/post-menu-trigger2.js +2 -3
- package/dist/components/post-menu2.js +35 -36
- package/dist/components/post-pagination.d.ts +11 -0
- package/dist/components/post-pagination.js +635 -0
- package/dist/components/post-popover-trigger.js +41 -26
- package/dist/components/post-popover.js +9 -10
- package/dist/components/post-popovercontainer2.js +44 -40
- package/dist/components/post-rating.js +3 -4
- package/dist/components/post-stepper-item.d.ts +11 -0
- package/dist/components/post-stepper-item.js +33 -0
- package/dist/components/{post-list-item.d.ts → post-stepper.d.ts} +4 -4
- package/dist/components/post-stepper.js +136 -0
- package/dist/components/{post-tab-header.d.ts → post-tab-item.d.ts} +4 -4
- package/dist/components/post-tab-item.js +70 -0
- package/dist/components/post-tab-panel.js +8 -9
- package/dist/components/post-tabs.js +192 -37
- package/dist/components/post-togglebutton.js +1 -51
- package/dist/components/post-togglebutton2.js +53 -0
- package/dist/components/post-tooltip-trigger.js +3 -3
- package/dist/components/post-tooltip.js +3 -4
- package/dist/components/react/index.js +1 -1
- package/dist/{cjs/breakpoints-CEkeixld.js → components/react/p-B8YiQ3mz.js} +89 -6
- package/dist/components/react/{p-2U_BGLjc.js → p-BOLlAY91.js} +9 -7
- package/dist/components/react/p-BVCjnh6Q.js +36 -0
- package/dist/components/react/{p-CBFgkSgY.js → p-BVGcVycs.js} +1 -1
- package/dist/components/react/{p-D4NSCxrX.js → p-BYCGzO-t.js} +13 -13
- package/dist/components/react/p-C9hMpmsD.js +11 -0
- package/dist/components/react/{p-BVXiQdHq.js → p-CJ13r5fi.js} +29 -21
- package/dist/components/react/{p-nSFSgY-P.js → p-CnZWXrbA.js} +40 -41
- package/dist/components/react/p-CoDiS_Ik.js +24 -0
- package/dist/components/react/p-CyniMNY-.js +54 -0
- package/dist/components/react/p-D5knoiyy.js +24 -0
- package/dist/components/react/{p-Ccgu_WOx.js → p-DBO6FfHt.js} +4 -5
- package/dist/components/react/{p-BfLuYwf7.js → p-DRfa3MOV.js} +26 -26
- package/dist/components/react/{p-BUxAs8N5.js → p-DYImHx0e.js} +4 -5
- package/dist/components/react/p-DZ5m2Ttg.js +3 -0
- package/dist/components/react/p-FxUVQ4Tx.js +49 -0
- package/dist/components/react/{p-BK474oMI.js → p-L36-yvgK.js} +2 -2
- package/dist/components/react/{p-DVxZMuPW.js → p-NCAcc7ZZ.js} +6 -7
- package/dist/components/react/{p-mENtrn2l.js → p-QNPIvxLq.js} +45 -41
- package/dist/components/react/{p-D3CFjhAf.js → p-_pLhqTys.js} +5 -6
- package/dist/components/react/p-c6yNOQwn.js +113 -0
- package/dist/components/react/{p-CzIKqBrS.js → p-rEfV4v4a.js} +2 -2
- package/dist/components/react/post-accordion-item.js +1 -1
- package/dist/components/react/post-accordion.js +1 -1
- package/dist/components/react/post-avatar.js +4 -5
- package/dist/components/react/post-back-to-top.js +16 -42
- package/dist/components/react/post-banner.js +7 -8
- package/dist/components/react/post-breadcrumb-item.js +1 -1
- package/dist/components/react/post-breadcrumbs.js +31 -41
- package/dist/components/react/post-card-control.js +6 -7
- package/dist/components/react/post-closebutton.js +1 -1
- package/dist/components/react/post-collapsible-trigger.js +1 -1
- package/dist/components/react/post-collapsible.js +1 -1
- package/dist/components/react/{post-list.d.ts → post-env-test.d.ts} +4 -4
- package/dist/components/react/post-env-test.js +32 -0
- package/dist/components/react/post-footer.js +23 -22
- package/dist/components/react/post-header.js +158 -121
- package/dist/components/react/post-icon.js +1 -1
- package/dist/components/react/post-language-menu-item.d.ts +11 -0
- package/dist/components/react/post-language-menu-item.js +99 -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 +157 -0
- package/dist/components/react/post-linkarea.js +2 -2
- package/dist/components/react/post-logo.js +4 -5
- package/dist/components/react/post-mainnavigation.js +23 -34
- package/dist/components/react/post-megadropdown-trigger.js +74 -81
- package/dist/components/react/post-megadropdown.js +185 -80
- package/dist/components/react/post-menu-item.js +1 -1
- package/dist/components/react/post-menu-trigger.js +1 -1
- package/dist/components/react/post-menu.js +1 -1
- package/dist/components/react/post-pagination.d.ts +11 -0
- package/dist/components/react/post-pagination.js +636 -0
- package/dist/components/react/post-popover-trigger.js +42 -27
- package/dist/components/react/post-popover.js +14 -15
- package/dist/components/react/post-popovercontainer.js +1 -1
- package/dist/components/react/post-rating.js +5 -6
- package/dist/components/react/post-stepper-item.d.ts +11 -0
- package/dist/components/react/post-stepper-item.js +34 -0
- package/dist/components/react/{post-list-item.d.ts → post-stepper.d.ts} +4 -4
- package/dist/components/react/post-stepper.js +137 -0
- package/dist/components/react/{post-tab-header.d.ts → post-tab-item.d.ts} +4 -4
- package/dist/components/react/post-tab-item.js +71 -0
- package/dist/components/react/post-tab-panel.js +9 -10
- package/dist/components/react/post-tabs.js +193 -38
- package/dist/components/react/post-togglebutton.js +1 -52
- package/dist/components/react/post-tooltip-trigger.js +4 -4
- package/dist/components/react/post-tooltip.js +5 -6
- package/dist/components/utils.js +24 -0
- package/dist/docs.json +968 -563
- package/dist/esm/{breakpoints-CJ80BZ06.js → breakpoints-DYoSKGHO.js} +90 -3
- package/dist/esm/debounce-C9hMpmsD.js +11 -0
- package/dist/esm/environment-CEmnRoA6.js +49 -0
- package/dist/esm/{event-from-CzIKqBrS.js → 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/esm/{get-root-BkQ3CrLq.js → get-root-CXfAA093.js} +1 -1
- package/dist/esm/{index-CFNKgUjL.js → index-1ReqxAnI.js} +29 -13
- package/dist/esm/loader.js +3 -3
- package/dist/esm/package-DZ5m2Ttg.js +3 -0
- package/dist/esm/post-accordion_2.entry.js +10 -10
- package/dist/esm/post-avatar.entry.js +6 -6
- package/dist/esm/post-back-to-top.entry.js +16 -40
- package/dist/esm/post-banner.entry.js +10 -9
- package/dist/esm/post-breadcrumb-item_2.entry.js +6 -6
- package/dist/esm/post-breadcrumbs.entry.js +20 -29
- package/dist/esm/post-card-control.entry.js +6 -6
- package/dist/esm/{post-closebutton_15.entry.js → post-closebutton_13.entry.js} +518 -486
- package/dist/esm/post-collapsible_2.entry.js +36 -35
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/post-env-test.entry.js +13 -0
- package/dist/esm/post-footer.entry.js +18 -16
- package/dist/esm/post-linkarea.entry.js +3 -3
- package/dist/esm/post-pagination.entry.js +587 -0
- package/dist/esm/post-popover-trigger.entry.js +44 -28
- package/dist/esm/post-popover.entry.js +11 -11
- package/dist/esm/post-rating.entry.js +5 -5
- package/dist/esm/post-stepper-item.entry.js +16 -0
- package/dist/esm/post-stepper.entry.js +107 -0
- package/dist/esm/post-tab-item.entry.js +47 -0
- package/dist/esm/post-tab-panel.entry.js +9 -9
- package/dist/esm/post-tabs.entry.js +191 -38
- package/dist/esm/post-tooltip-trigger.entry.js +5 -5
- package/dist/esm/post-tooltip.entry.js +6 -6
- package/dist/esm/utils-CoDiS_Ik.js +24 -0
- package/dist/post-components/{p-8f0fc02a.entry.js → p-130eb074.entry.js} +1 -1
- package/dist/post-components/p-13d018fe.entry.js +1 -0
- package/dist/post-components/p-143e5a84.entry.js +1 -0
- package/dist/post-components/p-1ReqxAnI.js +2 -0
- package/dist/post-components/p-2b220851.entry.js +1 -0
- package/dist/post-components/{p-96750e25.entry.js → p-390f111f.entry.js} +1 -1
- package/dist/post-components/p-3cf09fbd.entry.js +1 -0
- package/dist/post-components/p-52e584ca.entry.js +1 -0
- package/dist/post-components/p-56a4040c.entry.js +1 -0
- package/dist/post-components/p-675dab57.entry.js +1 -0
- package/dist/post-components/p-6857fd9d.entry.js +1 -0
- package/dist/post-components/p-7cd00e3e.entry.js +1 -0
- package/dist/post-components/p-7f5d2487.entry.js +1 -0
- package/dist/post-components/{p-bf41fe56.entry.js → p-88201353.entry.js} +1 -1
- package/dist/post-components/p-89360cd1.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-CEmnRoA6.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-DZ5m2Ttg.js +1 -0
- package/dist/post-components/p-a740eaed.entry.js +1 -0
- package/dist/post-components/{p-261b1452.entry.js → p-a79590f5.entry.js} +1 -1
- package/dist/post-components/p-b708d96a.entry.js +1 -0
- package/dist/post-components/p-bcf5786f.entry.js +1 -0
- package/dist/post-components/p-c92512f5.entry.js +1 -0
- package/dist/post-components/{p-658b1ccc.entry.js → p-d7cb3a61.entry.js} +1 -1
- package/dist/post-components/p-d7f33813.entry.js +1 -0
- package/dist/post-components/p-da97ee21.entry.js +1 -0
- package/dist/post-components/{p-11c204e0.entry.js → p-ed4db774.entry.js} +1 -1
- 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-collapsible-trigger/post-collapsible-trigger.d.ts +1 -0
- package/dist/types/components/post-footer/post-footer.d.ts +4 -4
- package/dist/types/components/post-header/post-header.d.ts +28 -19
- package/dist/types/components/{post-language-switch/post-language-switch.d.ts → post-language-menu/post-language-menu.d.ts} +6 -6
- 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 +3 -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 +13 -16
- package/dist/types/components/post-rating/post-rating.d.ts +1 -1
- package/dist/types/components/post-stepper/post-stepper.d.ts +39 -0
- package/dist/types/components/post-stepper-item/post-stepper-item.d.ts +3 -0
- 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.d.ts +357 -186
- package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +9 -0
- 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.js +1882 -833
- package/hydrate/index.mjs +1882 -833
- package/package.json +9 -11
- package/dist/cjs/fade-nS5zzDQS.js +0 -14
- package/dist/cjs/index-DtvYdwe1.js +0 -96
- 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 -88
- 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-BXRsHuTS.js +0 -3
- package/dist/components/react/p-CV7fm1rW.js +0 -88
- package/dist/components/react/p-Dj7qWba5.js +0 -114
- package/dist/components/react/p-SbIC4aZX.js +0 -11
- 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/fade-SbIC4aZX.js +0 -11
- package/dist/esm/index-VmK3ABCB.js +0 -88
- package/dist/esm/package-BXRsHuTS.js +0 -3
- package/dist/esm/post-tab-header.entry.js +0 -29
- package/dist/post-components/p-02ea3ec5.entry.js +0 -1
- package/dist/post-components/p-0e92dbef.entry.js +0 -1
- package/dist/post-components/p-0ec2bdd7.entry.js +0 -1
- package/dist/post-components/p-197a0f25.entry.js +0 -1
- package/dist/post-components/p-3274ab81.entry.js +0 -1
- package/dist/post-components/p-77e43032.entry.js +0 -1
- package/dist/post-components/p-BXRsHuTS.js +0 -1
- package/dist/post-components/p-CBFgkSgY.js +0 -1
- package/dist/post-components/p-CFNKgUjL.js +0 -2
- 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-VmK3ABCB.js +0 -1
- package/dist/post-components/p-b5b5e4b9.entry.js +0 -1
- package/dist/post-components/p-b8059ba1.entry.js +0 -1
- package/dist/post-components/p-d6134e24.entry.js +0 -1
- package/dist/post-components/p-e7029b9e.entry.js +0 -1
- package/dist/post-components/p-e90688ab.entry.js +0 -1
- package/dist/post-components/p-ea5da614.entry.js +0 -1
- package/dist/post-components/p-f1b815b6.entry.js +0 -1
- 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 → p-rEfV4v4a.js} +0 -0
- /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var _package = require('./package-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var getFocusableChildren = require('./get-focusable-children-
|
|
8
|
-
var eventFrom = require('./event-from-
|
|
3
|
+
var index = require('./index-CKNxhb0S.js');
|
|
4
|
+
var _package = require('./package-CY7IOoiw.js');
|
|
5
|
+
var breakpoints = require('./breakpoints-Df03Ct7n.js');
|
|
6
|
+
var fade = require('./fade-CPQhl1fP.js');
|
|
7
|
+
var getFocusableChildren = require('./get-focusable-children-ChETM1wK.js');
|
|
8
|
+
var eventFrom = require('./event-from-CwMw19f8.js');
|
|
9
|
+
var environment = require('./environment-BQE9Unf_.js');
|
|
9
10
|
var index_browser = require('./index.browser-Doj636JV.js');
|
|
11
|
+
var utils = require('./utils-s05L2ulk.js');
|
|
12
|
+
var fadeSlide = require('./fade-slide-dPhQa-I1.js');
|
|
10
13
|
var placement = require('./placement-qEFR9hmI.js');
|
|
11
|
-
var getRoot = require('./get-root-
|
|
14
|
+
var getRoot = require('./get-root-CUAv4k4C.js');
|
|
12
15
|
|
|
13
16
|
const BUTTON_TYPES = ['button', 'submit', 'reset'];
|
|
14
17
|
|
|
15
|
-
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: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}}";
|
|
18
|
+
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}}";
|
|
16
19
|
|
|
17
20
|
const PostClosebutton = class {
|
|
18
21
|
constructor(hostRef) {
|
|
@@ -24,7 +27,7 @@ const PostClosebutton = class {
|
|
|
24
27
|
this.buttonType = 'button';
|
|
25
28
|
}
|
|
26
29
|
validateButtonType() {
|
|
27
|
-
|
|
30
|
+
breakpoints.checkEmptyOrOneOf(this, 'buttonType', BUTTON_TYPES);
|
|
28
31
|
}
|
|
29
32
|
componentDidLoad() {
|
|
30
33
|
this.checkContent();
|
|
@@ -48,7 +51,7 @@ const PostClosebutton = class {
|
|
|
48
51
|
}
|
|
49
52
|
}
|
|
50
53
|
render() {
|
|
51
|
-
return (index.h(index.Host, { key: '
|
|
54
|
+
return (index.h(index.Host, { key: '6965a8cb5fb765b4fcec0439ceeafe19d34970c2', "data-version": _package.version }, index.h("button", { key: '7e718f70b0a4ac79e9439784dac46bd1ffd60fd1', class: "btn", type: this.buttonType }, index.h("post-icon", { key: '70acda3fbe6c9420f0be708fde6b29a7d5337d13', "aria-hidden": "true", name: "closex" }), index.h("span", { key: '899b3814c0898b521e4166e1cd951af628558e78', class: "visually-hidden" }, index.h("slot", { key: 'b13d0e95fd567c86e93e5185389909c7c0e7107d' })))));
|
|
52
55
|
}
|
|
53
56
|
get host() { return index.getElement(this); }
|
|
54
57
|
static get watchers() { return {
|
|
@@ -57,31 +60,34 @@ const PostClosebutton = class {
|
|
|
57
60
|
};
|
|
58
61
|
PostClosebutton.style = postClosebuttonCss;
|
|
59
62
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
});
|
|
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: utils.resolveEasing(easing), fill });
|
|
72
75
|
}
|
|
73
|
-
function
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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);
|
|
82
88
|
}
|
|
83
89
|
|
|
84
|
-
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([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)}.global-header,.sliding-controls,.local-header,.navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--post-header-gap)}: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;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;flex-wrap:wrap;background-color:#fff;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){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}";
|
|
85
91
|
|
|
86
92
|
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
87
93
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -94,7 +100,7 @@ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
94
100
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
95
101
|
};
|
|
96
102
|
const PostHeader = class {
|
|
97
|
-
get
|
|
103
|
+
get hasBurgerMenu() {
|
|
98
104
|
return this.device !== 'desktop' && this.hasNavigation;
|
|
99
105
|
}
|
|
100
106
|
get scrollParent() {
|
|
@@ -111,10 +117,13 @@ const PostHeader = class {
|
|
|
111
117
|
}
|
|
112
118
|
return document.body;
|
|
113
119
|
}
|
|
120
|
+
validateTextMenu() {
|
|
121
|
+
breakpoints.checkRequiredAndType(this, 'textMenu', 'string');
|
|
122
|
+
}
|
|
114
123
|
lockBody(newValue, _oldValue, propName) {
|
|
115
124
|
const scrollParent = this.scrollParent;
|
|
116
|
-
const
|
|
117
|
-
if (this.device !== 'desktop' &&
|
|
125
|
+
const burgerMenuExtended = propName === 'burgerMenuExtended' ? newValue : this.burgerMenuExtended;
|
|
126
|
+
if (this.device !== 'desktop' && burgerMenuExtended) {
|
|
118
127
|
scrollParent.setAttribute('data-post-scroll-locked', '');
|
|
119
128
|
this.host.addEventListener('keydown', this.keyboardHandler);
|
|
120
129
|
}
|
|
@@ -126,16 +135,22 @@ const PostHeader = class {
|
|
|
126
135
|
constructor(hostRef) {
|
|
127
136
|
index.registerInstance(this, hostRef);
|
|
128
137
|
this.throttledResize = breakpoints.throttle(50, () => this.updateLocalHeaderHeight());
|
|
138
|
+
this.animationOptions = {
|
|
139
|
+
duration: 350,
|
|
140
|
+
easing: 'headerEase',
|
|
141
|
+
};
|
|
129
142
|
this.device = breakpoints.breakpoint.get('device');
|
|
130
143
|
this.hasNavigation = false;
|
|
144
|
+
this.hasLocalNav = false;
|
|
145
|
+
this.hasAudience = false;
|
|
131
146
|
this.hasTitle = false;
|
|
132
|
-
this.
|
|
147
|
+
this.burgerMenuExtended = false;
|
|
133
148
|
this.megadropdownOpen = false;
|
|
134
149
|
this.breakpointChange = (e) => {
|
|
135
150
|
this.device = e.detail;
|
|
136
151
|
this.switchLanguageSwitchMode();
|
|
137
|
-
if (this.device === 'desktop' && this.
|
|
138
|
-
this.
|
|
152
|
+
if (this.device === 'desktop' && this.burgerMenuExtended) {
|
|
153
|
+
this.closeBurgerMenu();
|
|
139
154
|
}
|
|
140
155
|
if (this.device !== 'desktop') {
|
|
141
156
|
Array.from(this.host.querySelectorAll('post-megadropdown')).forEach(dropdown => {
|
|
@@ -144,14 +159,14 @@ const PostHeader = class {
|
|
|
144
159
|
this.megadropdownOpen = false;
|
|
145
160
|
}
|
|
146
161
|
};
|
|
147
|
-
this.megadropdownStateHandler = (event) => {
|
|
148
|
-
this.megadropdownOpen = event.detail.isVisible;
|
|
149
|
-
};
|
|
150
162
|
this.handleScrollEvent = this.handleScrollEvent.bind(this);
|
|
151
163
|
this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
|
|
152
164
|
this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
|
|
153
165
|
this.keyboardHandler = this.keyboardHandler.bind(this);
|
|
154
166
|
this.handleLinkClick = this.handleLinkClick.bind(this);
|
|
167
|
+
this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
|
|
168
|
+
this.checkSlottedContent = this.checkSlottedContent.bind(this);
|
|
169
|
+
this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
|
|
155
170
|
}
|
|
156
171
|
connectedCallback() {
|
|
157
172
|
window.addEventListener('resize', this.throttledResize, { passive: true });
|
|
@@ -162,23 +177,23 @@ const PostHeader = class {
|
|
|
162
177
|
passive: true,
|
|
163
178
|
});
|
|
164
179
|
document.addEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
|
|
165
|
-
this.host.addEventListener('click', this.handleLinkClick);
|
|
166
180
|
window.addEventListener('postBreakpoint:device', this.breakpointChange);
|
|
167
|
-
this.checkNavigationExistence();
|
|
168
|
-
this.checkTitleExistence();
|
|
169
|
-
this.switchLanguageSwitchMode();
|
|
170
181
|
this.handleScrollParentResize();
|
|
171
|
-
this.lockBody(false, this.
|
|
182
|
+
this.lockBody(false, this.burgerMenuExtended, 'burgerMenuExtended');
|
|
172
183
|
}
|
|
173
184
|
componentWillRender() {
|
|
174
185
|
this.handleScrollEvent();
|
|
186
|
+
this.handleSlottedContentChanges();
|
|
187
|
+
this.switchLanguageSwitchMode();
|
|
175
188
|
}
|
|
176
189
|
componentDidRender() {
|
|
190
|
+
this.validateTextMenu();
|
|
177
191
|
this.getFocusableElements();
|
|
178
192
|
this.handleLocalHeaderResize();
|
|
179
193
|
}
|
|
180
194
|
componentDidLoad() {
|
|
181
195
|
this.updateLocalHeaderHeight();
|
|
196
|
+
this.host.shadowRoot.addEventListener('click', this.handleLinkClick);
|
|
182
197
|
}
|
|
183
198
|
// Clean up possible side effects when post-header is disconnected
|
|
184
199
|
disconnectedCallback() {
|
|
@@ -190,7 +205,9 @@ const PostHeader = class {
|
|
|
190
205
|
scrollParent.removeEventListener('scroll', this.handleScrollEvent);
|
|
191
206
|
document.removeEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
|
|
192
207
|
this.host.removeEventListener('keydown', this.keyboardHandler);
|
|
193
|
-
this.host.
|
|
208
|
+
if (this.host.shadowRoot) {
|
|
209
|
+
this.host.shadowRoot.removeEventListener('click', this.handleLinkClick);
|
|
210
|
+
}
|
|
194
211
|
if (this.scrollParentResizeObserver) {
|
|
195
212
|
this.scrollParentResizeObserver.disconnect();
|
|
196
213
|
this.scrollParentResizeObserver = null;
|
|
@@ -199,81 +216,72 @@ const PostHeader = class {
|
|
|
199
216
|
this.localHeaderResizeObserver.disconnect();
|
|
200
217
|
this.localHeaderResizeObserver = null;
|
|
201
218
|
}
|
|
202
|
-
this.
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
this.hasNavigation = this.host.querySelectorAll('post-mainnavigation').length > 0;
|
|
206
|
-
}
|
|
207
|
-
checkTitleExistence() {
|
|
208
|
-
this.hasTitle = this.host.querySelectorAll('[slot="title"]').length > 0;
|
|
209
|
-
}
|
|
210
|
-
async closeMobileMenu() {
|
|
211
|
-
this.mobileMenuAnimation.finish();
|
|
212
|
-
const menuButton = this.getMenuButton();
|
|
213
|
-
if (menuButton) {
|
|
214
|
-
menuButton.toggled = false;
|
|
219
|
+
if (this.slottedContentObserver) {
|
|
220
|
+
this.slottedContentObserver.disconnect();
|
|
221
|
+
this.slottedContentObserver = null;
|
|
215
222
|
}
|
|
216
|
-
this.
|
|
223
|
+
this.burgerMenuExtended = false;
|
|
224
|
+
}
|
|
225
|
+
async closeBurgerMenu() {
|
|
226
|
+
this.burgerMenuAnimation?.finish();
|
|
227
|
+
if (this.burgerMenuButton)
|
|
228
|
+
this.burgerMenuButton.toggled = false;
|
|
229
|
+
this.burgerMenuExtended = false;
|
|
217
230
|
}
|
|
218
231
|
/**
|
|
219
|
-
* Toggles the
|
|
232
|
+
* Toggles the burger navigation menu.
|
|
220
233
|
*/
|
|
221
|
-
async
|
|
234
|
+
async toggleBurgerMenu(force) {
|
|
222
235
|
if (this.device === 'desktop')
|
|
223
236
|
return;
|
|
224
|
-
this.
|
|
225
|
-
?
|
|
226
|
-
:
|
|
237
|
+
this.burgerMenuAnimation = this.burgerMenuExtended
|
|
238
|
+
? fade.fade(this.burgerMenu, 'out', this.animationOptions)
|
|
239
|
+
: fade.fade(this.burgerMenu, 'in', this.animationOptions);
|
|
227
240
|
// Update the state of the toggle button
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
if (this.
|
|
241
|
+
if (this.burgerMenuButton)
|
|
242
|
+
this.burgerMenuButton.toggled = force ?? !this.burgerMenuExtended;
|
|
243
|
+
if (this.burgerMenuExtended) {
|
|
231
244
|
// Wait for the close animation to finish before hiding megadropdowns
|
|
232
|
-
await this.
|
|
233
|
-
this.
|
|
234
|
-
if (this.
|
|
245
|
+
await this.burgerMenuAnimation.finished;
|
|
246
|
+
this.burgerMenuExtended = force ?? !this.burgerMenuExtended;
|
|
247
|
+
if (this.burgerMenuExtended === false) {
|
|
235
248
|
this.closeAllMegadropdowns();
|
|
249
|
+
this.burgerMenu.scrollTop = 0;
|
|
236
250
|
}
|
|
237
251
|
}
|
|
238
252
|
else {
|
|
239
|
-
this.
|
|
253
|
+
this.burgerMenuExtended = force ?? !this.burgerMenuExtended;
|
|
240
254
|
// If opening, close any open megadropdowns immediately
|
|
241
255
|
if (this.megadropdownOpen) {
|
|
242
256
|
this.closeAllMegadropdowns();
|
|
243
257
|
}
|
|
244
258
|
}
|
|
245
259
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
// Get elements in the correct order (different as the DOM order)
|
|
249
|
-
const focusableEls = [
|
|
250
|
-
...Array.from(this.host.querySelectorAll('.list-inline:not([slot="meta-navigation"]) > li')),
|
|
251
|
-
...Array.from(this.host.querySelectorAll('nav > post-list > div > post-list-item, post-megadropdown-trigger')),
|
|
252
|
-
...Array.from(this.host.querySelectorAll('.list-inline[slot="meta-navigation"] > li, post-language-option')),
|
|
253
|
-
];
|
|
254
|
-
// Add the main toggle menu button to the list of focusable children
|
|
255
|
-
const focusableChildren = [
|
|
256
|
-
this.host.querySelector('post-togglebutton'),
|
|
257
|
-
...focusableEls.flatMap(el => Array.from(getFocusableChildren.getFocusableChildren(el))),
|
|
258
|
-
];
|
|
259
|
-
this.firstFocusableEl = focusableChildren[0];
|
|
260
|
-
this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
|
|
260
|
+
megadropdownStateHandler(event) {
|
|
261
|
+
this.megadropdownOpen = event.detail.isVisible;
|
|
261
262
|
}
|
|
262
|
-
|
|
263
|
-
|
|
263
|
+
// Get all the focusable elements in the post-header burger menu
|
|
264
|
+
getFocusableElements() {
|
|
265
|
+
if (!this.burgerMenu)
|
|
266
|
+
return;
|
|
267
|
+
const focusableElements = [this.burgerMenuButton];
|
|
268
|
+
focusableElements.push(...getFocusableChildren.getDeepFocusableChildren(this.localHeader, el => !el.matches('post-megadropdown')), ...getFocusableChildren.getDeepFocusableChildren(this.burgerMenu, el => !el.matches('post-megadropdown')));
|
|
269
|
+
this.firstFocusableEl = focusableElements[0];
|
|
270
|
+
this.lastFocusableEl = focusableElements[focusableElements.length - 1];
|
|
264
271
|
}
|
|
265
272
|
keyboardHandler(e) {
|
|
266
|
-
if (e.key
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
273
|
+
if (e.key !== 'Tab' || !this.burgerMenuExtended)
|
|
274
|
+
return;
|
|
275
|
+
const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
|
|
276
|
+
if (e.shiftKey && activeElement === this.firstFocusableEl) {
|
|
277
|
+
// If back tab (Tab + Shift) and first element is focused, focus goes to the last element of the megadropdown
|
|
278
|
+
e.preventDefault();
|
|
279
|
+
this.lastFocusableEl.focus();
|
|
280
|
+
}
|
|
281
|
+
else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
|
|
282
|
+
// If Tab and last element is focused, focus goes back to the first element of the megadropdown
|
|
283
|
+
e.preventDefault();
|
|
284
|
+
this.firstFocusableEl.focus();
|
|
277
285
|
}
|
|
278
286
|
}
|
|
279
287
|
closeAllMegadropdowns() {
|
|
@@ -284,7 +292,7 @@ const PostHeader = class {
|
|
|
284
292
|
}
|
|
285
293
|
handleScrollEvent() {
|
|
286
294
|
const scrollTop = this.scrollParent === document.body ? window.scrollY : this.scrollParent.scrollTop;
|
|
287
|
-
document.documentElement.style.setProperty('--post-header-scroll-top', `${scrollTop}px`);
|
|
295
|
+
document.documentElement.style.setProperty('--post-header-scroll-top', `${Math.max(scrollTop, 0)}px`);
|
|
288
296
|
}
|
|
289
297
|
updateLocalHeaderHeight() {
|
|
290
298
|
const localHeaderElement = this.host.shadowRoot.querySelector('.local-header');
|
|
@@ -302,8 +310,8 @@ const PostHeader = class {
|
|
|
302
310
|
if (!isLinkInMainNav && !isLinkInMegadropdown) {
|
|
303
311
|
return;
|
|
304
312
|
}
|
|
305
|
-
if (this.
|
|
306
|
-
this.
|
|
313
|
+
if (this.burgerMenuExtended && (isLinkInMainNav || isLinkInMegadropdown)) {
|
|
314
|
+
this.toggleBurgerMenu(false);
|
|
307
315
|
}
|
|
308
316
|
if (this.device === 'desktop' && isLinkInMegadropdown) {
|
|
309
317
|
const megadropdownLink = target.closest('post-megadropdown a');
|
|
@@ -325,38 +333,80 @@ const PostHeader = class {
|
|
|
325
333
|
this.localHeaderResizeObserver.observe(localHeader);
|
|
326
334
|
}
|
|
327
335
|
}
|
|
336
|
+
handleSlottedContentChanges() {
|
|
337
|
+
if (!this.slottedContentObserver) {
|
|
338
|
+
this.checkSlottedContent();
|
|
339
|
+
this.slottedContentObserver = new MutationObserver(this.checkSlottedContent);
|
|
340
|
+
this.slottedContentObserver.observe(this.host, { childList: true });
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
checkSlottedContent() {
|
|
344
|
+
this.hasNavigation = !!this.host.querySelector('[slot="main-nav"]');
|
|
345
|
+
this.hasLocalNav = !!this.host.querySelector('[slot="local-nav"]');
|
|
346
|
+
this.hasAudience = !!this.host.querySelector('[slot="audience"]');
|
|
347
|
+
this.hasTitle = !!this.host.querySelector('[slot="title"]');
|
|
348
|
+
}
|
|
328
349
|
switchLanguageSwitchMode() {
|
|
329
|
-
const variant = this.
|
|
330
|
-
Array.from(this.host.querySelectorAll('post-language-
|
|
350
|
+
const variant = this.hasBurgerMenu ? 'list' : 'menu';
|
|
351
|
+
Array.from(this.host.querySelectorAll('post-language-menu')).forEach(languageSwitch => {
|
|
331
352
|
languageSwitch?.setAttribute('variant', variant);
|
|
332
353
|
});
|
|
333
354
|
}
|
|
355
|
+
onFocusChange(e) {
|
|
356
|
+
const alwaysVisibleElements = this.device === 'desktop'
|
|
357
|
+
? '.navigation' // logo isn’t included since it would be too small to focus on effectively.
|
|
358
|
+
: '.global-header, .burger-menu';
|
|
359
|
+
const isHeaderExpanded =
|
|
360
|
+
// ensure the expanded state stays accurate during focus changes,
|
|
361
|
+
// e.g., when the focused element is removed from the DOM
|
|
362
|
+
// during a window resize
|
|
363
|
+
e.target === document.activeElement &&
|
|
364
|
+
this.host.matches(':focus-within') &&
|
|
365
|
+
!this.host.shadowRoot.querySelector(`:where(${alwaysVisibleElements}):focus-within`);
|
|
366
|
+
if (isHeaderExpanded) {
|
|
367
|
+
this.host.setAttribute('data-expanded', '');
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
this.host.removeAttribute('data-expanded');
|
|
371
|
+
}
|
|
372
|
+
}
|
|
334
373
|
renderNavigation() {
|
|
335
|
-
const
|
|
374
|
+
const localNav = !this.hasTitle && (index.h("div", { class: "local-nav" }, index.h("slot", { name: "local-nav" })));
|
|
336
375
|
if (this.device === 'desktop') {
|
|
337
|
-
return (index.h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } },
|
|
376
|
+
return (index.h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, index.h("slot", { name: "main-nav" }), localNav));
|
|
338
377
|
}
|
|
339
|
-
return (index.h("div", { class: {
|
|
378
|
+
return (index.h("div", { class: {
|
|
379
|
+
'burger-menu': true,
|
|
380
|
+
'extended': this.burgerMenuExtended,
|
|
381
|
+
'no-local-nav': !this.hasLocalNav,
|
|
382
|
+
'megadropdown-open': this.megadropdownOpen,
|
|
383
|
+
}, style: { '--post-header-navigation-current-inset': `${this.burgerMenu?.scrollTop ?? 0}px` }, ref: el => (this.burgerMenu = el) }, localNav, index.h("div", { class: "burger-menu-body" }, index.h("slot", { name: "audience" }), index.h("slot", { name: "main-nav" })), index.h("div", { class: "burger-menu-footer" }, index.h("slot", { name: "global-nav-secondary" }), index.h("slot", { name: "language-menu" }))));
|
|
340
384
|
}
|
|
341
385
|
render() {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
386
|
+
return (index.h(index.Host, { key: '15de1ff6ccac94813df10fc0b41a518de68dee94', "data-version": _package.version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, index.h("header", { key: '0af40c8b8944c7ffcf2bf0fe704671f4012ae8c8' }, index.h("div", { key: 'cd4564c5c375c015c673df195ba04fe4d89ff1c2', class: {
|
|
387
|
+
'global-header': true,
|
|
388
|
+
'no-audience': !this.hasAudience,
|
|
389
|
+
} }, index.h("div", { key: 'c4ad8a22fed57e54266c6584548f5203a499b63c', class: "logo" }, index.h("slot", { key: 'bf86f7ccf2e46263365023f287f18305160cede6', name: "post-logo" })), index.h("div", { key: 'e89c405cf97ddb08850d3b15ab8977e7e484ba73', class: "sliding-controls" }, this.device === 'desktop' && (index.h("div", { key: 'c3e9f49a105894d0df44a3d2654065b452292154', class: "audience" }, index.h("slot", { key: '20effc0592ca8665de464cc5d45d11ef02894acb', name: "audience" }))), index.h("slot", { key: 'f0ca8a59134520ccbb38907e32bedd4c05800d36', name: "global-nav-primary" }), !this.hasBurgerMenu && [
|
|
390
|
+
index.h("slot", { key: '7e2b2982403f491f083fc9f32cee46cbaeca7c50', name: "global-nav-secondary" }),
|
|
391
|
+
index.h("slot", { key: '3e7b5f6cb16b2cf2bc64b9b11c70f8b363e80134', name: "language-menu" }),
|
|
392
|
+
], index.h("slot", { key: 'd91059cc4dd4529040aa6436db46f66f2db84e71', name: "post-login" }), this.hasNavigation && this.device !== 'desktop' && (index.h("div", { key: 'f97161e09b27c11c6f85d112e85a59ddf2925aec', onClick: () => this.toggleBurgerMenu(), class: "burger-menu-toggle" }, index.h("slot", { key: '18304b858fa2173b63e842ba4d0512bd438a89b0', name: "post-togglebutton" }))), this.hasNavigation && this.device !== 'desktop' && (index.h("post-togglebutton", { key: '0599e4d106262b7be6557b476becacaf9f5656ba', ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, index.h("span", { key: '3f3578f6172a9d87c531b5bef6a201b255042511' }, this.textMenu), index.h("post-icon", { key: '7a92cec5793716225cf9dc4646ccff585e02723b', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), index.h("post-icon", { key: '9170844d117e8f0bf7f35049debe973ff391158e', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" }))))), index.h("div", { key: 'db13d084905b4633595bb1d4d83cc88c82c3c679', ref: el => (this.localHeader = el), class: {
|
|
393
|
+
'local-header': true,
|
|
394
|
+
'no-title': !this.hasTitle,
|
|
395
|
+
'no-audience': !this.hasAudience,
|
|
396
|
+
'no-navigation': this.device !== 'desktop' || !this.hasNavigation,
|
|
397
|
+
'no-local-nav': !this.hasLocalNav,
|
|
398
|
+
} }, index.h("slot", { key: 'f6fb25aef128bf1712995427014c5ff62c3710d0', name: "title" }), this.hasTitle && index.h("slot", { key: '8cba1c7b544d950140d59336baaf7398a4fb23d8', name: "local-nav" }), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation())));
|
|
350
399
|
}
|
|
351
400
|
get host() { return index.getElement(this); }
|
|
352
401
|
static get watchers() { return {
|
|
402
|
+
"textMenu": ["validateTextMenu"],
|
|
353
403
|
"device": ["lockBody"],
|
|
354
|
-
"
|
|
404
|
+
"burgerMenuExtended": ["lockBody"]
|
|
355
405
|
}; }
|
|
356
406
|
};
|
|
357
407
|
__decorate$3([
|
|
358
408
|
eventFrom.EventFrom('post-megadropdown')
|
|
359
|
-
], PostHeader.prototype, "megadropdownStateHandler",
|
|
409
|
+
], PostHeader.prototype, "megadropdownStateHandler", null);
|
|
360
410
|
PostHeader.style = postHeaderCss;
|
|
361
411
|
|
|
362
412
|
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)}}";
|
|
@@ -384,19 +434,19 @@ const PostIcon = class {
|
|
|
384
434
|
this.flipV = false;
|
|
385
435
|
}
|
|
386
436
|
validateAnimation() {
|
|
387
|
-
|
|
437
|
+
breakpoints.checkEmptyOrOneOf(this, 'animation', ANIMATION_KEYS);
|
|
388
438
|
}
|
|
389
439
|
validateBase() {
|
|
390
|
-
|
|
440
|
+
breakpoints.checkEmptyOrType(this, 'base', 'string');
|
|
391
441
|
}
|
|
392
442
|
validateName() {
|
|
393
|
-
|
|
443
|
+
breakpoints.checkRequiredAndType(this, 'name', 'string');
|
|
394
444
|
}
|
|
395
445
|
validateRotate() {
|
|
396
|
-
|
|
446
|
+
breakpoints.checkEmptyOrType(this, 'rotate', 'number');
|
|
397
447
|
}
|
|
398
448
|
validateScale() {
|
|
399
|
-
|
|
449
|
+
breakpoints.checkEmptyOrType(this, 'scale', 'number');
|
|
400
450
|
}
|
|
401
451
|
/**
|
|
402
452
|
* Construct the icon URL according to the following rules:
|
|
@@ -411,19 +461,21 @@ const PostIcon = class {
|
|
|
411
461
|
**/
|
|
412
462
|
getUrl() {
|
|
413
463
|
const fileName = `${this.name}.svg`;
|
|
414
|
-
if (!
|
|
464
|
+
if (!environment.IS_BROWSER && !this.base) {
|
|
415
465
|
return `${CDN_URL}${fileName}`;
|
|
416
466
|
}
|
|
417
467
|
const isAbsolute = (url) => /^https?:\/\//.test(url);
|
|
418
468
|
const normalizeUrl = (url) => (url && !url.endsWith('/') ? `${url}/` : url);
|
|
419
469
|
const cleanUrl = (url) => url.replace(/([^:])\/\//g, '$1/');
|
|
420
|
-
const currentDomain =
|
|
421
|
-
const baseHref =
|
|
470
|
+
const currentDomain = environment.IS_BROWSER ? window.location.origin : '';
|
|
471
|
+
const baseHref = environment.IS_BROWSER
|
|
422
472
|
? document.querySelector('base[href]')?.getAttribute('href') || ''
|
|
423
473
|
: '';
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
474
|
+
let metaIconBase = '';
|
|
475
|
+
if (environment.IS_BROWSER) {
|
|
476
|
+
const metaTag = document.querySelector('meta[name="design-system-settings"]');
|
|
477
|
+
metaIconBase = metaTag?.getAttribute('data-post-icon-base') || '';
|
|
478
|
+
}
|
|
427
479
|
// Function to build the first part of the URL when 'this.base' or 'metaIconBase' are relative
|
|
428
480
|
const buildUrlWithBase = (relativeUrl) => {
|
|
429
481
|
const normalizedHref = normalizeUrl(baseHref);
|
|
@@ -470,7 +522,7 @@ const PostIcon = class {
|
|
|
470
522
|
this.validateAnimation();
|
|
471
523
|
}
|
|
472
524
|
render() {
|
|
473
|
-
return (index.h(index.Host, { key: '
|
|
525
|
+
return (index.h(index.Host, { key: '6469b748f2792c383593dacd1d9f1f17daf9cde0', "data-version": _package.version }, index.h("span", { key: '9f4d9766dc97a07a2562dbc3bb0931de29fe9757', style: this.getStyles() })));
|
|
474
526
|
}
|
|
475
527
|
get host() { return index.getElement(this); }
|
|
476
528
|
static get watchers() { return {
|
|
@@ -485,70 +537,7 @@ PostIcon.style = postIconCss;
|
|
|
485
537
|
|
|
486
538
|
const SWITCH_VARIANTS = ['list', 'menu'];
|
|
487
539
|
|
|
488
|
-
const
|
|
489
|
-
|
|
490
|
-
const PostLanguageOption = class {
|
|
491
|
-
constructor(hostRef) {
|
|
492
|
-
index.registerInstance(this, hostRef);
|
|
493
|
-
this.postChange = index.createEvent(this, "postChange");
|
|
494
|
-
this.postLanguageOptionInitiallyActive = index.createEvent(this, "postLanguageOptionInitiallyActive");
|
|
495
|
-
}
|
|
496
|
-
validateCode() {
|
|
497
|
-
index$1.checkRequiredAndType(this, 'code', 'string');
|
|
498
|
-
}
|
|
499
|
-
validateVariant() {
|
|
500
|
-
index$1.checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
501
|
-
}
|
|
502
|
-
validateName() {
|
|
503
|
-
index$1.checkEmptyOrType(this, 'name', 'string');
|
|
504
|
-
}
|
|
505
|
-
validateUrl() {
|
|
506
|
-
index$1.checkEmptyOrUrl(this, 'url');
|
|
507
|
-
}
|
|
508
|
-
componentDidLoad() {
|
|
509
|
-
this.validateCode();
|
|
510
|
-
this.validateName();
|
|
511
|
-
this.validateUrl();
|
|
512
|
-
if (!this.name && this.isNameRequired()) {
|
|
513
|
-
throw new Error('The "name" property of the post-language-option component is required when the full language name is not displayed.');
|
|
514
|
-
}
|
|
515
|
-
if (this.active) {
|
|
516
|
-
this.postLanguageOptionInitiallyActive.emit(this.code);
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
/**
|
|
520
|
-
* Selects the language option programmatically.
|
|
521
|
-
*/
|
|
522
|
-
async select() {
|
|
523
|
-
this.active = true;
|
|
524
|
-
this.emitChange();
|
|
525
|
-
}
|
|
526
|
-
emitChange() {
|
|
527
|
-
this.postChange.emit(this.code);
|
|
528
|
-
}
|
|
529
|
-
isNameRequired() {
|
|
530
|
-
return this.host.textContent.toLowerCase() === this.code.toLowerCase();
|
|
531
|
-
}
|
|
532
|
-
render() {
|
|
533
|
-
const lang = this.code.toLowerCase();
|
|
534
|
-
const emitOnKeyDown = (e) => {
|
|
535
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
536
|
-
this.emitChange();
|
|
537
|
-
}
|
|
538
|
-
};
|
|
539
|
-
return (index.h(index.Host, { key: 'b86bf33feb890e5dfbfae16f45ce2e56fdfaf16a', "data-version": _package.version, role: this.variant === 'list' ? 'listitem' : undefined }, this.url ? (index.h("a", { "aria-current": this.active ? 'page' : undefined, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, index.h("slot", null), index.h("span", { class: "visually-hidden" }, this.name))) : (index.h("button", { "aria-current": this.active ? 'true' : undefined, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, index.h("slot", null), index.h("span", { class: "visually-hidden" }, this.name)))));
|
|
540
|
-
}
|
|
541
|
-
get host() { return index.getElement(this); }
|
|
542
|
-
static get watchers() { return {
|
|
543
|
-
"code": ["validateCode"],
|
|
544
|
-
"variant": ["validateVariant"],
|
|
545
|
-
"name": ["validateName"],
|
|
546
|
-
"url": ["validateUrl"]
|
|
547
|
-
}; }
|
|
548
|
-
};
|
|
549
|
-
PostLanguageOption.style = postLanguageOptionCss;
|
|
550
|
-
|
|
551
|
-
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}";
|
|
540
|
+
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}";
|
|
552
541
|
|
|
553
542
|
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
554
543
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -560,7 +549,7 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
560
549
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
561
550
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
562
551
|
};
|
|
563
|
-
const
|
|
552
|
+
const PostLanguageMenu = class {
|
|
564
553
|
constructor(hostRef) {
|
|
565
554
|
index.registerInstance(this, hostRef);
|
|
566
555
|
this.menuId = `p${index_browser.nanoid(11)}`;
|
|
@@ -571,16 +560,16 @@ const PostLanguageSwitch = class {
|
|
|
571
560
|
this.variant = 'list';
|
|
572
561
|
}
|
|
573
562
|
get languageOptions() {
|
|
574
|
-
return Array.from(this.host.querySelectorAll('post-language-
|
|
563
|
+
return Array.from(this.host.querySelectorAll('post-language-menu-item'));
|
|
575
564
|
}
|
|
576
565
|
validateCaption() {
|
|
577
|
-
|
|
566
|
+
breakpoints.checkRequiredAndType(this, 'textChangeLanguage', 'string');
|
|
578
567
|
}
|
|
579
568
|
validateDescription() {
|
|
580
|
-
|
|
569
|
+
breakpoints.checkRequiredAndType(this, 'textCurrentLanguage', 'string');
|
|
581
570
|
}
|
|
582
571
|
validateVariant() {
|
|
583
|
-
|
|
572
|
+
breakpoints.checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
584
573
|
this.updateChildrenVariant();
|
|
585
574
|
}
|
|
586
575
|
componentDidLoad() {
|
|
@@ -592,11 +581,11 @@ const PostLanguageSwitch = class {
|
|
|
592
581
|
this.updateChildrenVariant();
|
|
593
582
|
}
|
|
594
583
|
/**
|
|
595
|
-
* Listen for the postChange event and guard it to run only for events originating from a <post-language-
|
|
584
|
+
* Listen for the postChange event and guard it to run only for events originating from a <post-language-menu-item> element.
|
|
596
585
|
*/
|
|
597
586
|
handlePostChange(event) {
|
|
598
587
|
this.activeLang = event.detail;
|
|
599
|
-
// Update the active state in the children post-language-
|
|
588
|
+
// Update the active state in the children post-language-menu-item components
|
|
600
589
|
this.languageOptions.forEach(lang => {
|
|
601
590
|
if (lang.code && lang.code === this.activeLang) {
|
|
602
591
|
lang.setAttribute('active', '');
|
|
@@ -613,97 +602,109 @@ const PostLanguageSwitch = class {
|
|
|
613
602
|
}
|
|
614
603
|
/**
|
|
615
604
|
* Handles cases where the language switch is being rendered before options are available
|
|
616
|
-
* @param event Initially emitted by <post-
|
|
605
|
+
* @param event Initially emitted by <post-language-menu-item>
|
|
617
606
|
*/
|
|
618
607
|
handleInitiallyActive(event) {
|
|
619
608
|
this.activeLang = event.detail;
|
|
620
609
|
}
|
|
621
|
-
// Update post-language-
|
|
610
|
+
// Update post-language-menu-item variant to have the correct style
|
|
622
611
|
updateChildrenVariant() {
|
|
623
612
|
this.languageOptions.forEach(el => {
|
|
624
613
|
el.setAttribute('variant', this.variant);
|
|
625
614
|
});
|
|
626
615
|
}
|
|
627
616
|
renderList() {
|
|
628
|
-
return (index.h(index.Host, { "data-version": _package.version }, index.h("div", { class: "post-language-
|
|
617
|
+
return (index.h(index.Host, { "data-version": _package.version }, index.h("div", { class: "post-language-menu-list", role: "list", "aria-label": this.textChangeLanguage, "aria-describedby": this.listSpanId }, index.h("span", { id: this.listSpanId, class: "visually-hidden" }, this.textCurrentLanguage), index.h("slot", null))));
|
|
629
618
|
}
|
|
630
619
|
renderDropdown() {
|
|
631
|
-
return (index.h(index.Host, { "data-version": _package.version }, index.h("post-menu-trigger", { for: this.menuId }, index.h("button", { class: "post-language-
|
|
620
|
+
return (index.h(index.Host, { "data-version": _package.version }, index.h("post-menu-trigger", { for: this.menuId }, index.h("button", { class: "post-language-menu-trigger" }, this.activeLang, index.h("span", { class: "visually-hidden" }, this.textChangeLanguage), index.h("span", { class: "visually-hidden" }, this.textCurrentLanguage), index.h("post-icon", { "aria-hidden": "true", name: "chevrondown" }))), index.h("post-menu", { id: this.menuId, class: "post-language-menu-dropdown-container", label: this.textChangeLanguage, placement: "bottom-end" }, index.h("slot", null))));
|
|
632
621
|
}
|
|
633
622
|
render() {
|
|
634
623
|
return this.variant === 'list' ? this.renderList() : this.renderDropdown();
|
|
635
624
|
}
|
|
636
625
|
get host() { return index.getElement(this); }
|
|
637
626
|
static get watchers() { return {
|
|
638
|
-
"
|
|
639
|
-
"
|
|
627
|
+
"textChangeLanguage": ["validateCaption"],
|
|
628
|
+
"textCurrentLanguage": ["validateDescription"],
|
|
640
629
|
"variant": ["validateVariant"]
|
|
641
630
|
}; }
|
|
642
631
|
};
|
|
643
632
|
__decorate$2([
|
|
644
|
-
eventFrom.EventFrom('post-language-
|
|
645
|
-
],
|
|
646
|
-
|
|
633
|
+
eventFrom.EventFrom('post-language-menu-item')
|
|
634
|
+
], PostLanguageMenu.prototype, "handlePostChange", null);
|
|
635
|
+
PostLanguageMenu.style = postLanguageMenuCss;
|
|
647
636
|
|
|
648
|
-
const
|
|
637
|
+
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}";
|
|
649
638
|
|
|
650
|
-
const
|
|
639
|
+
const PostLanguageMenuItem = class {
|
|
651
640
|
constructor(hostRef) {
|
|
652
641
|
index.registerInstance(this, hostRef);
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
*/
|
|
656
|
-
this.titleHidden = false;
|
|
657
|
-
/**
|
|
658
|
-
* The list can become horizontal by setting `horizontal="true"` or just `horizontal`
|
|
659
|
-
*/
|
|
660
|
-
this.horizontal = false;
|
|
642
|
+
this.postChange = index.createEvent(this, "postChange");
|
|
643
|
+
this.postLanguageMenuItemInitiallyActive = index.createEvent(this, "postLanguageMenuItemInitiallyActive");
|
|
661
644
|
}
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
* Get the id set on the host element or use a random id by default
|
|
665
|
-
*/
|
|
666
|
-
this.titleId = `title-${this.host.id || index_browser.nanoid(6)}`;
|
|
645
|
+
validateCode() {
|
|
646
|
+
breakpoints.checkRequiredAndType(this, 'code', 'string');
|
|
667
647
|
}
|
|
668
|
-
|
|
669
|
-
|
|
648
|
+
validateVariant() {
|
|
649
|
+
breakpoints.checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
670
650
|
}
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
651
|
+
validateName() {
|
|
652
|
+
breakpoints.checkEmptyOrType(this, 'name', 'string');
|
|
653
|
+
}
|
|
654
|
+
validateUrl() {
|
|
655
|
+
breakpoints.checkEmptyOrUrl(this, 'url');
|
|
656
|
+
}
|
|
657
|
+
componentDidLoad() {
|
|
658
|
+
this.validateCode();
|
|
659
|
+
this.validateName();
|
|
660
|
+
this.validateUrl();
|
|
661
|
+
if (!this.name && this.isNameRequired()) {
|
|
662
|
+
throw new Error('The "name" property of the post-language-menu-item component is required when the full language name is not displayed.');
|
|
663
|
+
}
|
|
664
|
+
if (this.active) {
|
|
665
|
+
this.postLanguageMenuItemInitiallyActive.emit(this.code);
|
|
674
666
|
}
|
|
675
667
|
}
|
|
676
|
-
|
|
677
|
-
|
|
668
|
+
/**
|
|
669
|
+
* Selects the language option programmatically.
|
|
670
|
+
*/
|
|
671
|
+
async select() {
|
|
672
|
+
this.active = true;
|
|
673
|
+
this.emitChange();
|
|
678
674
|
}
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
PostList.style = postListCss;
|
|
682
|
-
|
|
683
|
-
const postListItemCss = ":host{display:flex}";
|
|
684
|
-
|
|
685
|
-
const PostListItem = class {
|
|
686
|
-
constructor(hostRef) {
|
|
687
|
-
index.registerInstance(this, hostRef);
|
|
675
|
+
emitChange() {
|
|
676
|
+
this.postChange.emit(this.code);
|
|
688
677
|
}
|
|
689
|
-
|
|
690
|
-
this.host.
|
|
678
|
+
isNameRequired() {
|
|
679
|
+
return this.host.textContent.toLowerCase() === this.code.toLowerCase();
|
|
691
680
|
}
|
|
692
681
|
render() {
|
|
693
|
-
|
|
682
|
+
const lang = this.code.toLowerCase();
|
|
683
|
+
const emitOnKeyDown = (e) => {
|
|
684
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
685
|
+
this.emitChange();
|
|
686
|
+
}
|
|
687
|
+
};
|
|
688
|
+
return (index.h(index.Host, { key: '0a0f6a2e04d61991696e86fa9a20b34d154e89ac', "data-version": _package.version, role: this.variant === 'list' ? 'listitem' : undefined }, this.url ? (index.h("a", { "aria-current": this.active ? 'page' : undefined, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, index.h("slot", null), index.h("span", { class: "visually-hidden" }, this.name))) : (index.h("button", { "aria-current": this.active ? 'true' : undefined, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, index.h("slot", null), index.h("span", { class: "visually-hidden" }, this.name)))));
|
|
694
689
|
}
|
|
695
690
|
get host() { return index.getElement(this); }
|
|
691
|
+
static get watchers() { return {
|
|
692
|
+
"code": ["validateCode"],
|
|
693
|
+
"variant": ["validateVariant"],
|
|
694
|
+
"name": ["validateName"],
|
|
695
|
+
"url": ["validateUrl"]
|
|
696
|
+
}; }
|
|
696
697
|
};
|
|
697
|
-
|
|
698
|
+
PostLanguageMenuItem.style = postLanguageMenuItemCss;
|
|
698
699
|
|
|
699
|
-
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 :focus,:focus-visible{border-radius
|
|
700
|
+
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(\n -2px - var(--post-device-border-width-focus)\n ) !important}.logo-link :focus,:focus-visible{border-radius:.5rem}";
|
|
700
701
|
|
|
701
702
|
const PostLogo = class {
|
|
702
703
|
constructor(hostRef) {
|
|
703
704
|
index.registerInstance(this, hostRef);
|
|
704
705
|
}
|
|
705
706
|
validateUrl() {
|
|
706
|
-
|
|
707
|
+
breakpoints.checkEmptyOrUrl(this, 'url');
|
|
707
708
|
}
|
|
708
709
|
componentDidLoad() {
|
|
709
710
|
this.validateUrl();
|
|
@@ -717,7 +718,7 @@ const PostLogo = class {
|
|
|
717
718
|
render() {
|
|
718
719
|
const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
|
|
719
720
|
const LogoTag = logoLink ? 'a' : 'span';
|
|
720
|
-
return (index.h(index.Host, { key: '
|
|
721
|
+
return (index.h(index.Host, { key: '39444d3dd1a87425c7134de5af6ad623a68197c0', "data-version": _package.version }, index.h(LogoTag, { key: '8f41d8c85212f7fde23c11fa0a0fb506deb5e0c9', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, index.h("span", { key: '06b777726f42914b941a980bce9dd4ba3dc3637e', class: "description" }, index.h("slot", { key: 'd95f99a2d3b09ffab6d0e7c11b99178d6c1fb7ef', onSlotchange: () => this.checkDescription() })), index.h("svg", { key: '57fa969750327b0907cd3f5abefd14b52d176dd8', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, index.h("g", { key: '61172060743d8d155bcde7d636da3c5569ec1951', id: "Logo" }, index.h("rect", { key: 'ef042aea64e01c52d241ff599290646af309f868', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), index.h("polygon", { key: 'ef5b2d4666dc676157fddacfe9b3f15c017e2e02', fill: "#ff0000", points: "34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3" }), index.h("path", { key: '816fd96b39a89ba22571e7e3257758e39b2599b0', 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" }))))));
|
|
721
722
|
}
|
|
722
723
|
get host() { return index.getElement(this); }
|
|
723
724
|
static get watchers() { return {
|
|
@@ -726,25 +727,27 @@ const PostLogo = class {
|
|
|
726
727
|
};
|
|
727
728
|
PostLogo.style = postLogoCss;
|
|
728
729
|
|
|
729
|
-
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;outline-offset:-2px !important}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}}@media screen and (min-width: 1024px){post-mainnavigation{display:flex;overflow:hidden;height:var(--post-main-navigation-height, 0);background:#fff;user-select:none}post-mainnavigation nav{flex:1 1 auto;overflow:hidden;scroll-behavior:smooth}post-mainnavigation .scroll-control{cursor:pointer;z-index:5;padding:1rem;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}post-mainnavigation .scroll-control.scroll-left{margin-inline-end:-3rem}post-mainnavigation .scroll-control.scroll-right{margin-inline-start:-3rem}post-mainnavigation .scroll-control.d-none{display:none}post-mainnavigation .scroll-control post-icon{font-size:1rem}post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,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;z-index:4}}@media screen and (min-width: 1024px)and (max-width: 1023.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{z-index:5}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a .nav-el-active,post-mainnavigation post-list-item>button .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,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}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a.active,post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *),post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.active,post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *),post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *),post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-mainnavigation post-list-item>a.active .nav-el-active,post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item>button.active .nav-el-active,post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button.active .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-mainnavigation post-list-item>a.active .nav-el-inactive,post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item>button.active .nav-el-inactive,post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button.active .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}}@media screen and (min-width: 1024px)and (max-width: 599.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>button,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-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}}@media screen and (min-width: 1024px){post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)),post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))::before,post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)).active,post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))[aria-current=page],post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))[aria-expanded=true],post-mainnavigation post-megadropdown a.active,post-mainnavigation post-megadropdown a[aria-current=page],post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)):hover,post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)):hover::before,post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}}@media screen and (max-width: 1023.98px){post-mainnavigation nav{transform:none !important}post-mainnavigation .scroll-control{display:none}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,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-mainnavigation post-list-item>a::before,post-mainnavigation post-list-item>button::before,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-mainnavigation post-list-item>a.active,post-mainnavigation post-list-item>a[aria-current=page],post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.active,post-mainnavigation post-list-item>button[aria-current=page],post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page],post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-list-item>a:hover::before,post-mainnavigation post-list-item>button:hover::before,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}}";
|
|
730
|
+
const postMainnavigationCss = ":host{display:flex;user-select:none}@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}";
|
|
730
731
|
|
|
731
732
|
const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
|
|
732
733
|
const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
|
|
733
734
|
const PostMainnavigation = class {
|
|
735
|
+
validateTextMain() {
|
|
736
|
+
breakpoints.checkRequiredAndType(this, 'textMain', 'string');
|
|
737
|
+
}
|
|
734
738
|
constructor(hostRef) {
|
|
735
739
|
index.registerInstance(this, hostRef);
|
|
736
740
|
this.canScrollLeft = false;
|
|
737
741
|
this.canScrollRight = false;
|
|
738
742
|
this.scrollRight = this.scrollRight.bind(this);
|
|
739
743
|
this.scrollLeft = this.scrollLeft.bind(this);
|
|
740
|
-
this.handleMutations = this.handleMutations.bind(this);
|
|
741
744
|
this.checkScrollability = this.checkScrollability.bind(this);
|
|
742
745
|
this.resizeObserver = new ResizeObserver(this.checkScrollability);
|
|
743
|
-
this.mutationObserver = new MutationObserver(this.
|
|
746
|
+
this.mutationObserver = new MutationObserver(this.checkScrollability);
|
|
744
747
|
}
|
|
745
748
|
componentDidLoad() {
|
|
749
|
+
this.validateTextMain();
|
|
746
750
|
setTimeout(() => {
|
|
747
|
-
this.fixLayoutShift();
|
|
748
751
|
this.checkScrollability();
|
|
749
752
|
});
|
|
750
753
|
// Observe the navbar for size changes
|
|
@@ -769,30 +772,8 @@ const PostMainnavigation = class {
|
|
|
769
772
|
if (this.scrollRepeatInterval)
|
|
770
773
|
clearInterval(this.scrollRepeatInterval);
|
|
771
774
|
}
|
|
772
|
-
async handleMutations(mutations) {
|
|
773
|
-
const addedNodes = mutations.flatMap((mutation) => {
|
|
774
|
-
return Array.from(mutation.addedNodes);
|
|
775
|
-
});
|
|
776
|
-
// Wait for all elements to be hydrated
|
|
777
|
-
await Promise.all(addedNodes.map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
|
|
778
|
-
this.fixLayoutShift();
|
|
779
|
-
this.checkScrollability();
|
|
780
|
-
}
|
|
781
775
|
get navigationItems() {
|
|
782
|
-
return Array.from(this.
|
|
783
|
-
}
|
|
784
|
-
/**
|
|
785
|
-
* Hack to fix the layout shift due to bold text on active elements
|
|
786
|
-
*/
|
|
787
|
-
fixLayoutShift() {
|
|
788
|
-
this.navigationItems
|
|
789
|
-
.filter(item => !item.matches(':has(.nav-el-active)'))
|
|
790
|
-
.forEach(item => {
|
|
791
|
-
item.innerHTML = `
|
|
792
|
-
<span class="nav-el-active">${item.innerHTML}</span>
|
|
793
|
-
<span class="nav-el-inactive" aria-hidden="true">${item.innerHTML}</span>
|
|
794
|
-
`;
|
|
795
|
-
});
|
|
776
|
+
return Array.from(this.host.querySelectorAll('a:not(post-megadropdown *), post-megadropdown-trigger'));
|
|
796
777
|
}
|
|
797
778
|
/**
|
|
798
779
|
* Returns whether scrolling is enabled in either the left or right direction.
|
|
@@ -831,7 +812,7 @@ const PostMainnavigation = class {
|
|
|
831
812
|
}, SCROLL_REPEAT_INTERVAL);
|
|
832
813
|
}
|
|
833
814
|
scrollRight() {
|
|
834
|
-
const scrollRightLeftEdge =
|
|
815
|
+
const scrollRightLeftEdge = this.host.shadowRoot
|
|
835
816
|
.querySelector('.scroll-right')
|
|
836
817
|
.getBoundingClientRect().left;
|
|
837
818
|
for (const navigationItem of this.navigationItems) {
|
|
@@ -845,7 +826,7 @@ const PostMainnavigation = class {
|
|
|
845
826
|
}
|
|
846
827
|
}
|
|
847
828
|
scrollLeft() {
|
|
848
|
-
const scrollLeftRightEdge =
|
|
829
|
+
const scrollLeftRightEdge = this.host.shadowRoot
|
|
849
830
|
.querySelector('.scroll-left')
|
|
850
831
|
.getBoundingClientRect().right;
|
|
851
832
|
for (const navigationItem of this.navigationItems.reverse()) {
|
|
@@ -871,17 +852,38 @@ const PostMainnavigation = class {
|
|
|
871
852
|
}, NAVBAR_DISABLE_DURATION);
|
|
872
853
|
}
|
|
873
854
|
render() {
|
|
874
|
-
return (index.h(index.Host, { key: '
|
|
855
|
+
return (index.h(index.Host, { key: '14ca9714f09e1dbbe8c976b8947db07906ec2eb8', version: _package.version, class: this.canScroll ? 'scrollable' : '' }, index.h("div", { key: 'e886823d21e52db04afc91ecbd12149c47d69038', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, index.h("post-icon", { key: '3afd56232da3cf120038b68c714c560db16ac30e', "aria-hidden": "true", name: "chevronleft" })), index.h("nav", { key: '69c39d75c1f90f01c12904c98fc6e3f8de2ba09d', ref: el => (this.navbar = el), "aria-label": this.textMain }, index.h("slot", { key: '9251d7cec53c05bf9146d0b2c75533c50f7fe070' })), index.h("div", { key: '649e7ec3c9f65447a2da965bb7fe0c92b3ff8207', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, index.h("post-icon", { key: 'ac2823ab5195c59ea2831ffb24a1d8a033f7266a', "aria-hidden": "true", name: "chevronright" }))));
|
|
875
856
|
}
|
|
857
|
+
get host() { return index.getElement(this); }
|
|
858
|
+
static get watchers() { return {
|
|
859
|
+
"textMain": ["validateTextMain"]
|
|
860
|
+
}; }
|
|
876
861
|
};
|
|
877
862
|
PostMainnavigation.style = postMainnavigationCss;
|
|
878
863
|
|
|
879
|
-
const postMegadropdownCss = "
|
|
864
|
+
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%;max-height:calc(100vh - var(--post-header-height) - 3rem);padding:2rem 2.5rem 2.5rem}.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;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;display:flex;flex-direction:column}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.megadropdown{border-block-end:1px solid CanvasText}}.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}}";
|
|
880
865
|
|
|
881
866
|
const PostMegadropdown = class {
|
|
867
|
+
validateTextClose() {
|
|
868
|
+
breakpoints.checkRequiredAndType(this, 'textClose', 'string');
|
|
869
|
+
}
|
|
870
|
+
validateTextBack() {
|
|
871
|
+
breakpoints.checkRequiredAndType(this, 'textBack', 'string');
|
|
872
|
+
}
|
|
873
|
+
get megadropdownTrigger() {
|
|
874
|
+
const hostId = this.host.getAttribute('id');
|
|
875
|
+
return hostId ? document.querySelector(`post-megadropdown-trigger[for="${hostId}"]`) : null;
|
|
876
|
+
}
|
|
882
877
|
constructor(hostRef) {
|
|
883
878
|
index.registerInstance(this, hostRef);
|
|
884
879
|
this.postToggleMegadropdown = index.createEvent(this, "postToggleMegadropdown");
|
|
880
|
+
this.currentAnimation = null;
|
|
881
|
+
this.isAnimating = false;
|
|
882
|
+
this.fsAnimationOptions = {
|
|
883
|
+
translate: -10,
|
|
884
|
+
duration: 350,
|
|
885
|
+
easing: 'headerEase',
|
|
886
|
+
};
|
|
885
887
|
this.device = breakpoints.breakpoint.get('device');
|
|
886
888
|
/**
|
|
887
889
|
* Holds the current visibility state of the dropdown.
|
|
@@ -892,13 +894,17 @@ const PostMegadropdown = class {
|
|
|
892
894
|
this.trigger = false;
|
|
893
895
|
/** Holds the current animation class. */
|
|
894
896
|
this.animationClass = null;
|
|
895
|
-
this.handleClickOutside = (event) => {
|
|
897
|
+
this.handleClickOutside = async (event) => {
|
|
896
898
|
if (this.device !== 'desktop')
|
|
897
899
|
return;
|
|
898
900
|
const target = event.target;
|
|
899
901
|
if (this.host.contains(target)) {
|
|
900
902
|
return;
|
|
901
903
|
}
|
|
904
|
+
// Ignore clicks on the trigger or its contents to prevent running hide() twice
|
|
905
|
+
if (this.megadropdownTrigger.contains(target)) {
|
|
906
|
+
return;
|
|
907
|
+
}
|
|
902
908
|
if (target instanceof HTMLElement) {
|
|
903
909
|
const trigger = target.closest('post-megadropdown-trigger');
|
|
904
910
|
if (trigger) {
|
|
@@ -908,14 +914,11 @@ const PostMegadropdown = class {
|
|
|
908
914
|
}
|
|
909
915
|
}
|
|
910
916
|
}
|
|
911
|
-
this.hide(false);
|
|
917
|
+
await this.hide(false);
|
|
912
918
|
};
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
return hostId
|
|
917
|
-
? document.querySelector(`post-megadropdown-trigger[for="${hostId}"] > button`)
|
|
918
|
-
: null;
|
|
919
|
+
this.keyboardHandler = this.keyboardHandler.bind(this);
|
|
920
|
+
this.handleTabOutside = this.handleTabOutside.bind(this);
|
|
921
|
+
this.handleClickOutside = this.handleClickOutside.bind(this);
|
|
919
922
|
}
|
|
920
923
|
connectedCallback() {
|
|
921
924
|
window.addEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
|
|
@@ -924,16 +927,17 @@ const PostMegadropdown = class {
|
|
|
924
927
|
this.getFocusableElements();
|
|
925
928
|
}
|
|
926
929
|
componentDidLoad() {
|
|
930
|
+
this.validateTextClose();
|
|
931
|
+
this.validateTextBack();
|
|
927
932
|
this.checkInitialAriaCurrent();
|
|
928
933
|
this.setupObserver();
|
|
929
934
|
this.handleAriaCurrentChange([]);
|
|
930
935
|
}
|
|
931
936
|
disconnectedCallback() {
|
|
932
|
-
this.removeListeners();
|
|
933
937
|
window.removeEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
|
|
934
|
-
if (PostMegadropdown.activeDropdown === this)
|
|
938
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
935
939
|
PostMegadropdown.activeDropdown = null;
|
|
936
|
-
|
|
940
|
+
this.removeListeners();
|
|
937
941
|
if (this.defaultSlotObserver) {
|
|
938
942
|
this.defaultSlotObserver.disconnect();
|
|
939
943
|
}
|
|
@@ -942,41 +946,70 @@ const PostMegadropdown = class {
|
|
|
942
946
|
* Toggles the dropdown visibility based on its current state.
|
|
943
947
|
*/
|
|
944
948
|
async toggle() {
|
|
945
|
-
if (this.
|
|
946
|
-
this
|
|
947
|
-
|
|
948
|
-
else {
|
|
949
|
-
await this.show();
|
|
949
|
+
if (this.isAnimating) {
|
|
950
|
+
// If this is already animating towards a future state -> reverse intent
|
|
951
|
+
return this.isVisible ? this.show() : this.hide();
|
|
950
952
|
}
|
|
953
|
+
return this.isVisible ? this.hide() : this.show();
|
|
951
954
|
}
|
|
952
955
|
/**
|
|
953
956
|
* Displays the dropdown.
|
|
954
957
|
*/
|
|
955
958
|
async show() {
|
|
959
|
+
if (this.device !== 'desktop') {
|
|
960
|
+
const trigger = this.megadropdownTrigger;
|
|
961
|
+
if (trigger)
|
|
962
|
+
this.megadropdownTitle = trigger.innerHTML;
|
|
963
|
+
}
|
|
956
964
|
if (PostMegadropdown.activeDropdown && PostMegadropdown.activeDropdown !== this) {
|
|
957
965
|
// Close the previously active dropdown without animation
|
|
958
966
|
PostMegadropdown.activeDropdown.forceClose();
|
|
959
967
|
}
|
|
960
|
-
this.
|
|
968
|
+
this.cancelAnimation();
|
|
969
|
+
// Set the megadropdown visible and mark it as the active dropdown
|
|
961
970
|
this.isVisible = true;
|
|
962
971
|
PostMegadropdown.activeDropdown = this;
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
this.
|
|
972
|
+
// Update trigger state
|
|
973
|
+
this.postToggleMegadropdown.emit({ isVisible: true });
|
|
974
|
+
try {
|
|
975
|
+
await this.animate('in');
|
|
976
|
+
this.focusFirst();
|
|
977
|
+
// After the megadropdown has finished entry animation
|
|
978
|
+
this.addListeners();
|
|
979
|
+
}
|
|
980
|
+
catch {
|
|
981
|
+
// Open animation was cancelled - reset state
|
|
982
|
+
this.removeListeners();
|
|
983
|
+
this.isVisible = false;
|
|
984
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
985
|
+
PostMegadropdown.activeDropdown = null;
|
|
986
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: true });
|
|
967
987
|
}
|
|
968
|
-
this.addListeners();
|
|
969
988
|
}
|
|
970
989
|
/**
|
|
971
990
|
* Hides the dropdown with an animation.
|
|
972
991
|
*/
|
|
973
992
|
async hide(focusParent = true, forceClose = false) {
|
|
974
|
-
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
|
|
975
993
|
if (forceClose) {
|
|
976
994
|
this.forceClose();
|
|
995
|
+
return;
|
|
977
996
|
}
|
|
978
|
-
|
|
979
|
-
|
|
997
|
+
// Update trigger state
|
|
998
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
|
|
999
|
+
try {
|
|
1000
|
+
await this.animate('out');
|
|
1001
|
+
// After the closing animation finishes set the megadropdown as non visible
|
|
1002
|
+
this.isVisible = false;
|
|
1003
|
+
this.removeListeners();
|
|
1004
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
1005
|
+
PostMegadropdown.activeDropdown = null;
|
|
1006
|
+
}
|
|
1007
|
+
catch {
|
|
1008
|
+
// Closing animation was cancelled - reset state
|
|
1009
|
+
PostMegadropdown.activeDropdown = this;
|
|
1010
|
+
this.addListeners();
|
|
1011
|
+
this.isVisible = true;
|
|
1012
|
+
this.postToggleMegadropdown.emit({ isVisible: true, focusParent: false });
|
|
980
1013
|
}
|
|
981
1014
|
}
|
|
982
1015
|
/**
|
|
@@ -985,68 +1018,79 @@ const PostMegadropdown = class {
|
|
|
985
1018
|
async focusFirst() {
|
|
986
1019
|
this.firstFocusableEl?.focus();
|
|
987
1020
|
}
|
|
988
|
-
breakpointChange(e) {
|
|
989
|
-
this.device = e.detail;
|
|
990
|
-
if (this.device === 'desktop' && this.isVisible) {
|
|
991
|
-
this.animationClass = null;
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
1021
|
/**
|
|
995
1022
|
* Forces the dropdown to close without animation.
|
|
996
1023
|
*/
|
|
997
1024
|
forceClose() {
|
|
998
|
-
this.isVisible = false;
|
|
999
|
-
this.animationClass = null;
|
|
1000
|
-
this.postToggleMegadropdown.emit({ isVisible: this.isVisible, focusParent: false });
|
|
1001
1025
|
this.removeListeners();
|
|
1026
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: false });
|
|
1027
|
+
this.isVisible = false;
|
|
1002
1028
|
}
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
this.
|
|
1007
|
-
PostMegadropdown.activeDropdown = null;
|
|
1008
|
-
this.removeListeners();
|
|
1029
|
+
// Run the respective animation
|
|
1030
|
+
createAnimation(direction) {
|
|
1031
|
+
if (this.device === 'desktop') {
|
|
1032
|
+
return fadeSlide.fadeSlide(this.animatedContainer, direction, this.fsAnimationOptions);
|
|
1009
1033
|
}
|
|
1034
|
+
return slide(this.animatedContainer, direction, {
|
|
1035
|
+
translate: 100,
|
|
1036
|
+
duration: 350,
|
|
1037
|
+
easing: direction === 'in' ? 'ease-in' : 'ease-out',
|
|
1038
|
+
});
|
|
1039
|
+
}
|
|
1040
|
+
async animate(direction) {
|
|
1041
|
+
this.cancelAnimation();
|
|
1042
|
+
this.currentAnimation = this.createAnimation(direction);
|
|
1043
|
+
// Flag isAnimating used to avoid toggle() de-sync
|
|
1044
|
+
this.isAnimating = true;
|
|
1045
|
+
await this.currentAnimation.finished;
|
|
1046
|
+
this.isAnimating = false;
|
|
1047
|
+
this.currentAnimation = null;
|
|
1048
|
+
}
|
|
1049
|
+
cancelAnimation() {
|
|
1050
|
+
this.currentAnimation?.cancel();
|
|
1051
|
+
this.currentAnimation = null;
|
|
1052
|
+
}
|
|
1053
|
+
breakpointChange(e) {
|
|
1054
|
+
this.device = e.detail;
|
|
1055
|
+
this.cancelAnimation();
|
|
1010
1056
|
}
|
|
1011
1057
|
addListeners() {
|
|
1012
|
-
this.host.addEventListener('keydown',
|
|
1013
|
-
document.addEventListener('keyup',
|
|
1058
|
+
this.host.addEventListener('keydown', this.keyboardHandler);
|
|
1059
|
+
document.addEventListener('keyup', this.handleTabOutside);
|
|
1014
1060
|
document.addEventListener('mousedown', this.handleClickOutside);
|
|
1015
1061
|
}
|
|
1016
1062
|
removeListeners() {
|
|
1017
|
-
this.host.removeEventListener('keydown',
|
|
1018
|
-
document.removeEventListener('keyup',
|
|
1063
|
+
this.host.removeEventListener('keydown', this.keyboardHandler);
|
|
1064
|
+
document.removeEventListener('keyup', this.handleTabOutside);
|
|
1019
1065
|
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
1020
1066
|
}
|
|
1021
1067
|
getFocusableElements() {
|
|
1022
|
-
const
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
}
|
|
1029
|
-
this.firstFocusableEl = focusableChildren[0];
|
|
1030
|
-
this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
|
|
1068
|
+
const focusableElements = [
|
|
1069
|
+
...getFocusableChildren.getFocusableChildren(this.host),
|
|
1070
|
+
...getFocusableChildren.getFocusableChildren(this.host.shadowRoot),
|
|
1071
|
+
];
|
|
1072
|
+
this.firstFocusableEl = focusableElements[0];
|
|
1073
|
+
this.lastFocusableEl = focusableElements[focusableElements.length - 1];
|
|
1031
1074
|
}
|
|
1032
1075
|
// Loop through the focusable children
|
|
1033
1076
|
keyboardHandler(e) {
|
|
1034
|
-
if (e.key
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1077
|
+
if (e.key !== 'Tab' || this.device === 'desktop')
|
|
1078
|
+
return;
|
|
1079
|
+
const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
|
|
1080
|
+
if (e.shiftKey && activeElement === this.firstFocusableEl) {
|
|
1081
|
+
// If back tab (TAB + Shift) and first element is focused, focus goes to the last element of the megadropdown
|
|
1082
|
+
e.preventDefault();
|
|
1083
|
+
this.lastFocusableEl.focus();
|
|
1084
|
+
}
|
|
1085
|
+
else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
|
|
1086
|
+
// If TAB and last element is focused, focus goes back to the first element of the megadropdown
|
|
1087
|
+
e.preventDefault();
|
|
1088
|
+
this.firstFocusableEl.focus();
|
|
1045
1089
|
}
|
|
1046
1090
|
}
|
|
1047
1091
|
handleTabOutside(e) {
|
|
1048
1092
|
if (e.key === 'Tab' && this.device === 'desktop') {
|
|
1049
|
-
if (!this.host.contains(e.target)) {
|
|
1093
|
+
if (this.isVisible && !this.host.contains(e.target)) {
|
|
1050
1094
|
this.hide(false);
|
|
1051
1095
|
}
|
|
1052
1096
|
}
|
|
@@ -1072,14 +1116,8 @@ const PostMegadropdown = class {
|
|
|
1072
1116
|
*/
|
|
1073
1117
|
setTriggerActive(isActive) {
|
|
1074
1118
|
const trigger = this.megadropdownTrigger;
|
|
1075
|
-
if (
|
|
1076
|
-
|
|
1077
|
-
if (isActive) {
|
|
1078
|
-
trigger.classList.add('active');
|
|
1079
|
-
}
|
|
1080
|
-
else {
|
|
1081
|
-
trigger.classList.remove('active');
|
|
1082
|
-
}
|
|
1119
|
+
if (trigger)
|
|
1120
|
+
trigger.setAttribute('active', isActive.toString());
|
|
1083
1121
|
}
|
|
1084
1122
|
/**
|
|
1085
1123
|
* Updates the megadropdown trigger state when the megadropdown content changes.
|
|
@@ -1103,15 +1141,19 @@ const PostMegadropdown = class {
|
|
|
1103
1141
|
}
|
|
1104
1142
|
render() {
|
|
1105
1143
|
const containerStyle = this.isVisible ? {} : { display: 'none' };
|
|
1106
|
-
return (index.h(index.Host, { key: '
|
|
1144
|
+
return (index.h(index.Host, { key: 'f099891f24c60ca48ddceeadf754debdf3d8bff1', version: _package.version }, index.h("div", { key: 'd964a72ec31632a6061f8c656fcc171bc584b764', ref: el => (this.animatedContainer = el), class: "megadropdown", style: containerStyle }, this.device !== 'desktop' && this.megadropdownTitle && (index.h("p", { key: 'b04d8fb83e5658365a1d722572d82237a7bf4eba', class: "megadropdown-title" }, this.megadropdownTitle)), index.h("div", { key: 'b7e654a69375c4e8f3af2e8ff65f0a5b7b2ee2cd', class: "megadropdown-content" }, index.h("slot", { key: '9608aa8b0d9458b593917e66e3fd4db9c447cac2' })), this.device === 'desktop' ? (index.h("post-closebutton", { onClick: () => this.hide(true), class: "close-button" }, this.textClose)) : (index.h("button", { onClick: () => this.hide(true), class: "back-button" }, index.h("post-icon", { name: "arrowleft" }), this.textBack)))));
|
|
1107
1145
|
}
|
|
1108
1146
|
get host() { return index.getElement(this); }
|
|
1147
|
+
static get watchers() { return {
|
|
1148
|
+
"textClose": ["validateTextClose"],
|
|
1149
|
+
"textBack": ["validateTextBack"]
|
|
1150
|
+
}; }
|
|
1109
1151
|
};
|
|
1110
1152
|
/** Tracks the currently active dropdown instance. */
|
|
1111
1153
|
PostMegadropdown.activeDropdown = null;
|
|
1112
1154
|
PostMegadropdown.style = postMegadropdownCss;
|
|
1113
1155
|
|
|
1114
|
-
const postMegadropdownTriggerCss = "post-
|
|
1156
|
+
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(\n -2px - var(--post-device-border-width-focus)\n ) !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}}";
|
|
1115
1157
|
|
|
1116
1158
|
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1117
1159
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1124,101 +1166,85 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1124
1166
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1125
1167
|
};
|
|
1126
1168
|
const PostMegadropdownTrigger = class {
|
|
1169
|
+
validateFor() {
|
|
1170
|
+
breakpoints.checkRequiredAndType(this, 'for', 'string');
|
|
1171
|
+
}
|
|
1127
1172
|
constructor(hostRef) {
|
|
1128
1173
|
index.registerInstance(this, hostRef);
|
|
1174
|
+
this.mutationObserver = new MutationObserver(this.cloneSlottedButton.bind(this));
|
|
1175
|
+
this.isMegadropdownExpanded = false;
|
|
1176
|
+
this.slottedContent = null;
|
|
1129
1177
|
/**
|
|
1130
|
-
*
|
|
1131
|
-
*/
|
|
1132
|
-
this.ariaExpanded = false;
|
|
1133
|
-
/**
|
|
1134
|
-
* Reference to the slotted button within the trigger, if present.
|
|
1135
|
-
* Used to manage click and key events for mega dropdown control.
|
|
1136
|
-
*/
|
|
1137
|
-
this.slottedButton = null;
|
|
1138
|
-
/**
|
|
1139
|
-
* Tracks whether this trigger's dropdown was expanded before a state change.
|
|
1140
|
-
* Used to determine if this trigger should handle focus when its dropdown closes.
|
|
1178
|
+
* Sets the trigger state to be active or inactive.
|
|
1141
1179
|
*/
|
|
1142
|
-
this.
|
|
1143
|
-
this.
|
|
1144
|
-
if (event.key === 'Enter' || event.key === ' ') {
|
|
1145
|
-
event.preventDefault();
|
|
1146
|
-
this.handleToggle();
|
|
1147
|
-
if (this.megadropdown && !this.ariaExpanded) {
|
|
1148
|
-
setTimeout(() => this.megadropdown.focusFirst(), 100);
|
|
1149
|
-
}
|
|
1150
|
-
}
|
|
1151
|
-
};
|
|
1152
|
-
this.handleToggleMegadropdown = (event) => {
|
|
1153
|
-
if (event.target.id === this.for) {
|
|
1154
|
-
this.ariaExpanded = event.detail.isVisible;
|
|
1155
|
-
// Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
|
|
1156
|
-
if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
|
|
1157
|
-
setTimeout(() => {
|
|
1158
|
-
this.slottedButton?.focus();
|
|
1159
|
-
}, 100);
|
|
1160
|
-
}
|
|
1161
|
-
this.wasExpanded = this.ariaExpanded;
|
|
1162
|
-
if (this.slottedButton) {
|
|
1163
|
-
this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
|
|
1164
|
-
}
|
|
1165
|
-
}
|
|
1166
|
-
};
|
|
1180
|
+
this.active = false;
|
|
1181
|
+
this.onMegadropdownToggled = this.onMegadropdownToggled.bind(this);
|
|
1167
1182
|
}
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1183
|
+
connectedCallback() {
|
|
1184
|
+
this.mutationObserver.observe(this.host, { childList: true, subtree: true });
|
|
1185
|
+
}
|
|
1186
|
+
componentWillLoad() {
|
|
1187
|
+
this.cloneSlottedButton();
|
|
1188
|
+
}
|
|
1189
|
+
componentDidLoad() {
|
|
1190
|
+
this.validateFor();
|
|
1191
|
+
// Check if the mega dropdown attached to the trigger is expanded or not
|
|
1192
|
+
if (environment.IS_BROWSER)
|
|
1193
|
+
document.addEventListener('postToggleMegadropdown', this.onMegadropdownToggled);
|
|
1194
|
+
}
|
|
1195
|
+
disconnectedCallback() {
|
|
1196
|
+
document.removeEventListener('postToggleMegadropdown', this.onMegadropdownToggled);
|
|
1197
|
+
}
|
|
1198
|
+
cloneSlottedButton() {
|
|
1199
|
+
this.slottedContent = this.host.innerHTML;
|
|
1174
1200
|
}
|
|
1175
1201
|
get megadropdown() {
|
|
1176
1202
|
const ref = document.getElementById(this.for);
|
|
1177
|
-
|
|
1178
|
-
? ref
|
|
1179
|
-
: null;
|
|
1180
|
-
}
|
|
1181
|
-
handleToggle() {
|
|
1182
|
-
if (this.megadropdown) {
|
|
1183
|
-
this.megadropdown.toggle();
|
|
1184
|
-
}
|
|
1185
|
-
else {
|
|
1203
|
+
if (ref?.localName !== 'post-megadropdown') {
|
|
1186
1204
|
console.warn(`No post-megadropdown found with ID: ${this.for}`);
|
|
1205
|
+
return null;
|
|
1187
1206
|
}
|
|
1207
|
+
return ref;
|
|
1188
1208
|
}
|
|
1189
|
-
|
|
1190
|
-
this.
|
|
1191
|
-
// Check if the mega dropdown attached to the trigger is expanded or not
|
|
1192
|
-
document.addEventListener('postToggleMegadropdown', this.handleToggleMegadropdown);
|
|
1193
|
-
this.slottedButton = this.host.querySelector('button');
|
|
1194
|
-
if (this.slottedButton) {
|
|
1195
|
-
this.slottedButton.setAttribute('aria-haspopup', 'menu');
|
|
1196
|
-
this.slottedButton.addEventListener('click', () => {
|
|
1197
|
-
this.handleToggle();
|
|
1198
|
-
});
|
|
1199
|
-
this.slottedButton.addEventListener('keydown', this.handleKeyDown);
|
|
1200
|
-
}
|
|
1201
|
-
else {
|
|
1202
|
-
console.warn('No button found within post-megadropdown-trigger');
|
|
1203
|
-
}
|
|
1209
|
+
onClick() {
|
|
1210
|
+
this.megadropdown?.toggle();
|
|
1204
1211
|
}
|
|
1205
|
-
|
|
1206
|
-
|
|
1212
|
+
onKeyDown(event) {
|
|
1213
|
+
if (event.key !== 'Enter' && event.key !== ' ')
|
|
1214
|
+
return;
|
|
1215
|
+
const megadropdown = this.megadropdown;
|
|
1216
|
+
if (!megadropdown)
|
|
1217
|
+
return;
|
|
1218
|
+
event.preventDefault();
|
|
1219
|
+
this.megadropdown.toggle();
|
|
1220
|
+
}
|
|
1221
|
+
onMegadropdownToggled(event) {
|
|
1222
|
+
if (event.target.id === this.for) {
|
|
1223
|
+
const wasMegadropdownExpanded = this.isMegadropdownExpanded;
|
|
1224
|
+
this.isMegadropdownExpanded = event.detail.isVisible;
|
|
1225
|
+
const haveBeenClosed = wasMegadropdownExpanded && !this.isMegadropdownExpanded;
|
|
1226
|
+
if (!haveBeenClosed || !event.detail.focusParent)
|
|
1227
|
+
return;
|
|
1228
|
+
// Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
|
|
1229
|
+
setTimeout(() => {
|
|
1230
|
+
this.interactiveButton.focus();
|
|
1231
|
+
}, 100);
|
|
1232
|
+
}
|
|
1207
1233
|
}
|
|
1208
1234
|
render() {
|
|
1209
|
-
return (index.h(index.Host, { key: '
|
|
1235
|
+
return (index.h(index.Host, { key: '73479c3c80cda63b9f82ec584c962ffa53b7b85c', "data-version": _package.version }, index.h("button", { key: 'e76d5077f1ac2e6c16e365799ea79f6985ec0d14', ref: el => (this.interactiveButton = el), type: "button", "aria-haspopup": "menu", "aria-expanded": this.isMegadropdownExpanded.toString(), onClick: this.onClick.bind(this), onKeyDown: this.onKeyDown.bind(this), class: { active: this.active } }, index.h("span", { key: 'a60b5838443ccd75fc08e07f791cb4ef088343f3' }, index.h("span", { key: 'da180bb66704712c0cba7b575ba260765a0df36f' }, index.h("slot", { key: 'c27dbc706a82fc49acb3414855e0e57d1dac0923' })), index.h("span", { key: '87ebe5fdcba5a160b2698965284fc5ce66d0fa90', "aria-hidden": "true", innerHTML: this.slottedContent })), index.h("post-icon", { key: '76f620188ebc3ad60b04523ea70ee4f3b642a2e8', name: "chevrondown" }))));
|
|
1210
1236
|
}
|
|
1211
1237
|
get host() { return index.getElement(this); }
|
|
1212
1238
|
static get watchers() { return {
|
|
1213
|
-
"for": ["
|
|
1239
|
+
"for": ["validateFor"]
|
|
1214
1240
|
}; }
|
|
1215
1241
|
};
|
|
1216
1242
|
__decorate$1([
|
|
1217
1243
|
eventFrom.EventFrom('post-megadropdown', { ignoreNestedComponents: false })
|
|
1218
|
-
], PostMegadropdownTrigger.prototype, "
|
|
1244
|
+
], PostMegadropdownTrigger.prototype, "onMegadropdownToggled", null);
|
|
1219
1245
|
PostMegadropdownTrigger.style = postMegadropdownTriggerCss;
|
|
1220
1246
|
|
|
1221
|
-
const postMenuCss = ":host{display:block}:where([part=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}}";
|
|
1247
|
+
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}}";
|
|
1222
1248
|
|
|
1223
1249
|
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1224
1250
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1267,35 +1293,6 @@ const PostMenu = class {
|
|
|
1267
1293
|
this.controlKeyDownHandler(e);
|
|
1268
1294
|
}
|
|
1269
1295
|
};
|
|
1270
|
-
this.handlePostShown = (event) => {
|
|
1271
|
-
// Only for the first open
|
|
1272
|
-
if (event.detail.first) {
|
|
1273
|
-
// Add "menu" and "menuitem" aria roles and aria-label
|
|
1274
|
-
this.host.setAttribute('role', 'menu');
|
|
1275
|
-
const menuItems = this.getSlottedItems();
|
|
1276
|
-
for (const item of menuItems) {
|
|
1277
|
-
item.setAttribute('role', 'menuitem');
|
|
1278
|
-
}
|
|
1279
|
-
if (this.label)
|
|
1280
|
-
this.host.setAttribute('aria-label', this.label);
|
|
1281
|
-
}
|
|
1282
|
-
};
|
|
1283
|
-
this.handlePostToggled = (event) => {
|
|
1284
|
-
this.isVisible = event.detail.isOpen;
|
|
1285
|
-
this.toggleMenu.emit(this.isVisible);
|
|
1286
|
-
if (this.isVisible) {
|
|
1287
|
-
this.lastFocusedElement = this.root?.activeElement;
|
|
1288
|
-
requestAnimationFrame(() => {
|
|
1289
|
-
const menuItems = this.getSlottedItems();
|
|
1290
|
-
if (menuItems.length > 0) {
|
|
1291
|
-
menuItems[0].focus();
|
|
1292
|
-
}
|
|
1293
|
-
});
|
|
1294
|
-
}
|
|
1295
|
-
else if (this.lastFocusedElement) {
|
|
1296
|
-
this.lastFocusedElement.focus();
|
|
1297
|
-
}
|
|
1298
|
-
};
|
|
1299
1296
|
this.handleClick = (e) => {
|
|
1300
1297
|
const target = e.target;
|
|
1301
1298
|
if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
|
|
@@ -1304,10 +1301,10 @@ const PostMenu = class {
|
|
|
1304
1301
|
};
|
|
1305
1302
|
}
|
|
1306
1303
|
validatePlacement() {
|
|
1307
|
-
|
|
1304
|
+
breakpoints.checkEmptyOrOneOf(this, 'placement', placement.PLACEMENT_TYPES);
|
|
1308
1305
|
}
|
|
1309
1306
|
validateLabel() {
|
|
1310
|
-
|
|
1307
|
+
breakpoints.checkRequiredAndType(this, 'label', 'string');
|
|
1311
1308
|
}
|
|
1312
1309
|
connectedCallback() {
|
|
1313
1310
|
this.root = getRoot.getRoot(this.host);
|
|
@@ -1357,6 +1354,35 @@ const PostMenu = class {
|
|
|
1357
1354
|
console.error('hide: popoverRef is null or undefined');
|
|
1358
1355
|
}
|
|
1359
1356
|
}
|
|
1357
|
+
handlePostShown(event) {
|
|
1358
|
+
// Only for the first open
|
|
1359
|
+
if (event.detail.first) {
|
|
1360
|
+
// Add "menu" and "menuitem" aria roles and aria-label
|
|
1361
|
+
this.host.setAttribute('role', 'menu');
|
|
1362
|
+
const menuItems = this.getSlottedItems();
|
|
1363
|
+
for (const item of menuItems) {
|
|
1364
|
+
item.setAttribute('role', 'menuitem');
|
|
1365
|
+
}
|
|
1366
|
+
if (this.label)
|
|
1367
|
+
this.host.setAttribute('aria-label', this.label);
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
handlePostToggled(event) {
|
|
1371
|
+
this.isVisible = event.detail.isOpen;
|
|
1372
|
+
this.toggleMenu.emit(this.isVisible);
|
|
1373
|
+
if (this.isVisible) {
|
|
1374
|
+
this.lastFocusedElement = this.root?.activeElement;
|
|
1375
|
+
requestAnimationFrame(() => {
|
|
1376
|
+
const menuItems = this.getSlottedItems();
|
|
1377
|
+
if (menuItems.length > 0) {
|
|
1378
|
+
menuItems[0].focus();
|
|
1379
|
+
}
|
|
1380
|
+
});
|
|
1381
|
+
}
|
|
1382
|
+
else if (this.lastFocusedElement) {
|
|
1383
|
+
this.lastFocusedElement.focus();
|
|
1384
|
+
}
|
|
1385
|
+
}
|
|
1360
1386
|
controlKeyDownHandler(e) {
|
|
1361
1387
|
const menuItems = this.getSlottedItems();
|
|
1362
1388
|
if (!menuItems.length) {
|
|
@@ -1404,7 +1430,7 @@ const PostMenu = class {
|
|
|
1404
1430
|
.flatMap(el => Array.from(getFocusableChildren.getFocusableChildren(el))));
|
|
1405
1431
|
}
|
|
1406
1432
|
render() {
|
|
1407
|
-
return (index.h(index.Host, { key: '
|
|
1433
|
+
return (index.h(index.Host, { key: '08285b17608e5bc3133a3da6015a5a0d4de6ec29', "data-version": _package.version }, index.h("post-popovercontainer", { key: '17e45869b5e76cdd9bd43ca77b2f0b3876462014', onPostShow: this.handlePostShown.bind(this), onPostToggle: this.handlePostToggled.bind(this), placement: this.placement, ref: e => (this.popoverRef = e) }, index.h("div", { key: 'e2486aa099ffc8ac59885a0971ebb13649a49a35', part: "post-menu" }, index.h("slot", { key: '9f0e05f211fe18cf5beed8e1b33bde26d4974e24', name: "header" }), index.h("slot", { key: '971ac8ad433467a2ebe2429574cb10dbdadbcf25' })))));
|
|
1408
1434
|
}
|
|
1409
1435
|
get host() { return index.getElement(this); }
|
|
1410
1436
|
static get watchers() { return {
|
|
@@ -1414,10 +1440,10 @@ const PostMenu = class {
|
|
|
1414
1440
|
};
|
|
1415
1441
|
__decorate([
|
|
1416
1442
|
eventFrom.EventFrom('post-popovercontainer')
|
|
1417
|
-
], PostMenu.prototype, "handlePostShown",
|
|
1443
|
+
], PostMenu.prototype, "handlePostShown", null);
|
|
1418
1444
|
__decorate([
|
|
1419
1445
|
eventFrom.EventFrom('post-popovercontainer')
|
|
1420
|
-
], PostMenu.prototype, "handlePostToggled",
|
|
1446
|
+
], PostMenu.prototype, "handlePostToggled", null);
|
|
1421
1447
|
PostMenu.style = postMenuCss;
|
|
1422
1448
|
|
|
1423
1449
|
const postMenuTriggerCss = ":host{display:inline-block}";
|
|
@@ -1446,7 +1472,7 @@ const PostMenuTrigger = class {
|
|
|
1446
1472
|
* @param forValue - The new value of the `for` property.
|
|
1447
1473
|
*/
|
|
1448
1474
|
validateControlFor() {
|
|
1449
|
-
|
|
1475
|
+
breakpoints.checkRequiredAndType(this, 'for', 'string');
|
|
1450
1476
|
}
|
|
1451
1477
|
get menu() {
|
|
1452
1478
|
const ref = this.root.getElementById(this.for);
|
|
@@ -1495,7 +1521,7 @@ const PostMenuTrigger = class {
|
|
|
1495
1521
|
}
|
|
1496
1522
|
}
|
|
1497
1523
|
render() {
|
|
1498
|
-
return (index.h(index.Host, { key: '
|
|
1524
|
+
return (index.h(index.Host, { key: '3ef7e372c9c655bf1da5d5a7d4bca6925a010f65', "data-version": _package.version, "tab-index": "-1" }, index.h("slot", { key: '771db943ad5aa639c325f055ba6f9d763bf4256d' })));
|
|
1499
1525
|
}
|
|
1500
1526
|
get host() { return index.getElement(this); }
|
|
1501
1527
|
static get watchers() { return {
|
|
@@ -4225,7 +4251,7 @@ function popIn(el) {
|
|
|
4225
4251
|
});
|
|
4226
4252
|
}
|
|
4227
4253
|
|
|
4228
|
-
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{position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:where(post-popovercontainer) .arrow.top{border-block-
|
|
4254
|
+
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}}";
|
|
4229
4255
|
|
|
4230
4256
|
const PostPopovercontainer = class {
|
|
4231
4257
|
constructor(hostRef) {
|
|
@@ -4254,20 +4280,16 @@ const PostPopovercontainer = class {
|
|
|
4254
4280
|
* Whether or not to display a little pointer arrow
|
|
4255
4281
|
*/
|
|
4256
4282
|
this.arrow = false;
|
|
4257
|
-
/**
|
|
4258
|
-
* Whether or not the popovercontainer should close when user clicks outside of it
|
|
4259
|
-
*/
|
|
4260
|
-
this.manualClose = false;
|
|
4261
4283
|
this.currentAnimation = null;
|
|
4262
4284
|
}
|
|
4263
4285
|
validatePlacement() {
|
|
4264
|
-
|
|
4286
|
+
breakpoints.checkEmptyOrOneOf(this, 'placement', placement.PLACEMENT_TYPES);
|
|
4265
4287
|
}
|
|
4266
4288
|
validateEdgeGap() {
|
|
4267
|
-
|
|
4289
|
+
breakpoints.checkEmptyOrType(this, 'edgeGap', 'number');
|
|
4268
4290
|
}
|
|
4269
4291
|
validateSafeSpace() {
|
|
4270
|
-
|
|
4292
|
+
breakpoints.checkEmptyOrOneOf(this, 'safeSpace', ['triangle', 'trapezoid']);
|
|
4271
4293
|
}
|
|
4272
4294
|
/**
|
|
4273
4295
|
* Updates cursor position for safe space feature when popover is open.
|
|
@@ -4279,7 +4301,7 @@ const PostPopovercontainer = class {
|
|
|
4279
4301
|
this.host.style.setProperty('--post-safe-space-cursor-y', `${event.clientY}px`);
|
|
4280
4302
|
}
|
|
4281
4303
|
connectedCallback() {
|
|
4282
|
-
if (
|
|
4304
|
+
if (environment.IS_BROWSER && !isSupported()) {
|
|
4283
4305
|
apply();
|
|
4284
4306
|
}
|
|
4285
4307
|
}
|
|
@@ -4303,10 +4325,35 @@ const PostPopovercontainer = class {
|
|
|
4303
4325
|
this.calculatePosition();
|
|
4304
4326
|
this.host.showPopover();
|
|
4305
4327
|
}
|
|
4328
|
+
/**
|
|
4329
|
+
* Programmatically hide the popovercontainer
|
|
4330
|
+
*/
|
|
4331
|
+
async hide() {
|
|
4332
|
+
if (!this.toggleTimeoutId) {
|
|
4333
|
+
this.eventTarget = null;
|
|
4334
|
+
this.host.hidePopover();
|
|
4335
|
+
this.postHide.emit();
|
|
4336
|
+
}
|
|
4337
|
+
}
|
|
4338
|
+
/**
|
|
4339
|
+
* Toggle popovercontainer display
|
|
4340
|
+
* @param target A focusable element inside the <post-popover-trigger> component that controls the popover
|
|
4341
|
+
* @param force Pass true to always show or false to always hide
|
|
4342
|
+
*/
|
|
4343
|
+
async toggle(target, force) {
|
|
4344
|
+
this.eventTarget = target;
|
|
4345
|
+
// Prevent instant double toggle
|
|
4346
|
+
if (!this.toggleTimeoutId) {
|
|
4347
|
+
this.calculatePosition();
|
|
4348
|
+
this.host.togglePopover(force);
|
|
4349
|
+
this.toggleTimeoutId = null;
|
|
4350
|
+
}
|
|
4351
|
+
return this.host.matches(':where(:popover-open, .popover-open)');
|
|
4352
|
+
}
|
|
4306
4353
|
/**
|
|
4307
4354
|
* Handles the popover opening process and emits related events.
|
|
4308
4355
|
*/
|
|
4309
|
-
|
|
4356
|
+
open() {
|
|
4310
4357
|
const content = this.host.querySelector('.popover-content');
|
|
4311
4358
|
this.startAutoupdates();
|
|
4312
4359
|
if (content) {
|
|
@@ -4331,7 +4378,7 @@ const PostPopovercontainer = class {
|
|
|
4331
4378
|
/**
|
|
4332
4379
|
* Handles the popover closing process and emits related events.
|
|
4333
4380
|
*/
|
|
4334
|
-
|
|
4381
|
+
close() {
|
|
4335
4382
|
if (typeof this.clearAutoUpdate === 'function') {
|
|
4336
4383
|
this.clearAutoUpdate();
|
|
4337
4384
|
}
|
|
@@ -4377,31 +4424,6 @@ const PostPopovercontainer = class {
|
|
|
4377
4424
|
}
|
|
4378
4425
|
}
|
|
4379
4426
|
}
|
|
4380
|
-
/**
|
|
4381
|
-
* Programmatically hide the popovercontainer
|
|
4382
|
-
*/
|
|
4383
|
-
async hide() {
|
|
4384
|
-
if (!this.toggleTimeoutId) {
|
|
4385
|
-
this.eventTarget = null;
|
|
4386
|
-
this.host.hidePopover();
|
|
4387
|
-
this.postHide.emit();
|
|
4388
|
-
}
|
|
4389
|
-
}
|
|
4390
|
-
/**
|
|
4391
|
-
* Toggle popovercontainer display
|
|
4392
|
-
* @param target A focusable element inside the <post-popover-trigger> component that controls the popover
|
|
4393
|
-
* @param force Pass true to always show or false to always hide
|
|
4394
|
-
*/
|
|
4395
|
-
async toggle(target, force) {
|
|
4396
|
-
this.eventTarget = target;
|
|
4397
|
-
// Prevent instant double toggle
|
|
4398
|
-
if (!this.toggleTimeoutId) {
|
|
4399
|
-
this.calculatePosition();
|
|
4400
|
-
this.host.togglePopover(force);
|
|
4401
|
-
this.toggleTimeoutId = null;
|
|
4402
|
-
}
|
|
4403
|
-
return this.host.matches(':where(:popover-open, .popover-open)');
|
|
4404
|
-
}
|
|
4405
4427
|
/**
|
|
4406
4428
|
* Start or stop auto updates based on popovercontainer events.
|
|
4407
4429
|
* Popovercontainers can be closed or opened with other methods than class members,
|
|
@@ -4435,6 +4457,7 @@ const PostPopovercontainer = class {
|
|
|
4435
4457
|
async calculatePosition() {
|
|
4436
4458
|
const { x, y, middlewareData, placement } = await this.computeMainPosition();
|
|
4437
4459
|
const currentPlacement = placement.split('-')[0];
|
|
4460
|
+
this.dynamicPlacement = currentPlacement;
|
|
4438
4461
|
// Position popover
|
|
4439
4462
|
this.host.style.left = `${x}px`;
|
|
4440
4463
|
this.host.style.top = `${y}px`;
|
|
@@ -4442,11 +4465,20 @@ const PostPopovercontainer = class {
|
|
|
4442
4465
|
if (this.arrow && middlewareData.arrow) {
|
|
4443
4466
|
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
4444
4467
|
const staticSide = PostPopovercontainer.STATIC_SIDES[currentPlacement];
|
|
4468
|
+
const rootFontSize = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
4469
|
+
// Calculate dynamically the half side which provides the static side offset
|
|
4470
|
+
const arrowSizeValue = getComputedStyle(this.arrowRef)
|
|
4471
|
+
.getPropertyValue('--arrow-size')
|
|
4472
|
+
.trim();
|
|
4473
|
+
const arrowSizePx = arrowSizeValue.endsWith('rem')
|
|
4474
|
+
? Number.parseFloat(arrowSizeValue) * rootFontSize
|
|
4475
|
+
: Number.parseFloat(arrowSizeValue);
|
|
4476
|
+
const halfSide = -0.5 * arrowSizePx;
|
|
4445
4477
|
if (staticSide) {
|
|
4446
4478
|
Object.assign(this.arrowRef.style, {
|
|
4447
4479
|
left: arrowX ? `${arrowX}px` : '',
|
|
4448
4480
|
top: arrowY ? `${arrowY}px` : '',
|
|
4449
|
-
[staticSide]:
|
|
4481
|
+
[staticSide]: `${halfSide}px`,
|
|
4450
4482
|
});
|
|
4451
4483
|
}
|
|
4452
4484
|
}
|
|
@@ -4547,9 +4579,9 @@ const PostPopovercontainer = class {
|
|
|
4547
4579
|
}
|
|
4548
4580
|
}
|
|
4549
4581
|
render() {
|
|
4550
|
-
return (index.h(index.Host, { key: '
|
|
4582
|
+
return (index.h(index.Host, { key: '0aaf70cb284e7227149f2e500aa7c72cab69d90a', "data-version": _package.version, popover: "auto" }, index.h("div", { key: '9762887bdddca93acc6dfda715f2f41f4f6c98d6', class: "popover-content" }, this.arrow && (index.h("span", { key: 'e77f16be0b3b0cdb02886ea928aa6986d3f477e3', "dynamic-placement": this.dynamicPlacement, class: "arrow", ref: el => {
|
|
4551
4583
|
this.arrowRef = el;
|
|
4552
|
-
} })), index.h("slot", { key: '
|
|
4584
|
+
} })), index.h("slot", { key: 'e8737e5acec3a20d258d462a7d82278d303ba353' }))));
|
|
4553
4585
|
}
|
|
4554
4586
|
get host() { return index.getElement(this); }
|
|
4555
4587
|
static get watchers() { return {
|
|
@@ -4606,7 +4638,7 @@ const PostTogglebutton = class {
|
|
|
4606
4638
|
this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
|
|
4607
4639
|
}
|
|
4608
4640
|
render() {
|
|
4609
|
-
return (index.h(index.Host, { key: '
|
|
4641
|
+
return (index.h(index.Host, { key: 'a526ab3b0ae14c93bb4e1a8dc6d3ded4ff1bf014', "data-version": _package.version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, index.h("slot", { key: 'e8a5bdd99d9270cfcf014306a8d7fe8a2b6b79ba' })));
|
|
4610
4642
|
}
|
|
4611
4643
|
get host() { return index.getElement(this); }
|
|
4612
4644
|
};
|
|
@@ -4615,10 +4647,8 @@ PostTogglebutton.style = postTogglebuttonCss;
|
|
|
4615
4647
|
exports.post_closebutton = PostClosebutton;
|
|
4616
4648
|
exports.post_header = PostHeader;
|
|
4617
4649
|
exports.post_icon = PostIcon;
|
|
4618
|
-
exports.
|
|
4619
|
-
exports.
|
|
4620
|
-
exports.post_list = PostList;
|
|
4621
|
-
exports.post_list_item = PostListItem;
|
|
4650
|
+
exports.post_language_menu = PostLanguageMenu;
|
|
4651
|
+
exports.post_language_menu_item = PostLanguageMenuItem;
|
|
4622
4652
|
exports.post_logo = PostLogo;
|
|
4623
4653
|
exports.post_mainnavigation = PostMainnavigation;
|
|
4624
4654
|
exports.post_megadropdown = PostMegadropdown;
|