@swisspost/design-system-components 10.0.0-next.55 → 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/{esm/breakpoints-CJ80BZ06.js → cjs/breakpoints-Df03Ct7n.js} +103 -5
- package/dist/cjs/debounce-BsIBi_-2.js +13 -0
- package/dist/cjs/environment-BQE9Unf_.js +52 -0
- package/dist/cjs/{event-from-CLvtSUKf.js → event-from-CwMw19f8.js} +2 -2
- package/dist/cjs/fade-CPQhl1fP.js +26 -0
- package/dist/cjs/fade-slide-dPhQa-I1.js +38 -0
- package/dist/cjs/{get-focusable-children-Bx63XUQg.js → get-focusable-children-ChETM1wK.js} +29 -21
- package/dist/cjs/{get-root-CyMf3Vsd.js → get-root-CUAv4k4C.js} +2 -2
- package/dist/cjs/{index-B4gYpuJF.js → index-CKNxhb0S.js} +21 -13
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-DkJrv93P.js → package-CY7IOoiw.js} +1 -1
- package/dist/cjs/post-accordion_2.cjs.entry.js +11 -11
- package/dist/cjs/post-avatar.cjs.entry.js +10 -10
- 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} +481 -484
- package/dist/cjs/post-collapsible_2.cjs.entry.js +33 -33
- 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 +11 -11
- package/dist/cjs/post-rating.cjs.entry.js +13 -13
- package/dist/cjs/post-stepper-item.cjs.entry.js +4 -4
- package/dist/cjs/post-stepper.cjs.entry.js +29 -26
- 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 +6 -6
- 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 +6 -6
- package/dist/collection/components/post-accordion/post-accordion.css +1 -1
- 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.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 +24 -24
- package/dist/collection/components/post-card-control/post-card-control.js +2 -2
- 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 +1 -1
- package/dist/collection/components/post-footer/post-footer.css +1 -1
- package/dist/collection/components/post-footer/post-footer.js +17 -15
- package/dist/collection/components/post-header/post-header.css +1 -1
- package/dist/collection/components/post-header/post-header.js +113 -82
- 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} +23 -23
- 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} +13 -13
- 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 +183 -74
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +79 -73
- package/dist/collection/components/post-menu/post-menu.css +1 -1
- package/dist/collection/components/post-menu/post-menu.js +34 -34
- 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.js +9 -9
- 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 +2 -2
- package/dist/collection/components/post-stepper/post-stepper.js +34 -31
- package/dist/collection/components/post-stepper-item/post-stepper-item.css +2 -2
- package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
- package/dist/collection/components/post-tab-item/post-tab-item.css +1 -0
- package/dist/collection/components/post-tab-item/post-tab-item.js +86 -0
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +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.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 +4 -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 +10 -10
- package/dist/components/index.js +5 -5
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +4 -5
- package/dist/components/post-accordion2.js +2 -3
- package/dist/components/post-avatar.js +2 -3
- 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 +23 -33
- package/dist/components/post-card-control.js +3 -4
- package/dist/components/post-closebutton2.js +3 -4
- package/dist/components/post-collapsible-trigger2.js +2 -3
- 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 +97 -95
- 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 +71 -78
- package/dist/components/post-megadropdown.js +182 -77
- package/dist/components/post-menu-item2.js +1 -1
- package/dist/components/post-menu-trigger2.js +2 -3
- package/dist/components/post-menu2.js +34 -35
- package/dist/components/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
- package/dist/components/post-pagination.js +635 -0
- package/dist/components/post-popover-trigger.js +41 -26
- package/dist/components/post-popover.js +8 -9
- package/dist/components/post-popovercontainer2.js +44 -40
- package/dist/components/post-rating.js +2 -3
- package/dist/components/post-stepper-item.js +2 -2
- package/dist/components/post-stepper.js +31 -29
- package/dist/components/{post-list-item.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 +2 -3
- 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-DBPOV12C.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-LtiDhYis.js → p-BYCGzO-t.js} +5 -6
- 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-CSAMO7iJ.js → p-CnZWXrbA.js} +39 -40
- 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-Djvj8fd2.js → p-DBO6FfHt.js} +4 -5
- package/dist/components/react/{p-Ccrl2AQn.js → p-DRfa3MOV.js} +26 -26
- package/dist/components/react/{p-Cwiv86_f.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-D2waO0Zc.js → p-L36-yvgK.js} +2 -2
- package/dist/components/react/{p-CewRvBtg.js → p-NCAcc7ZZ.js} +4 -5
- package/dist/components/react/{p-DVGEExot.js → p-QNPIvxLq.js} +45 -41
- package/dist/components/react/{p-XrZzCOKT.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 +3 -4
- 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 +30 -40
- package/dist/components/react/post-card-control.js +5 -6
- 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 +99 -97
- 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 +73 -80
- package/dist/components/react/post-megadropdown.js +184 -79
- 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-tab-header.d.ts → post-pagination.d.ts} +4 -4
- 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 +13 -14
- package/dist/components/react/post-popovercontainer.js +1 -1
- package/dist/components/react/post-rating.js +4 -5
- package/dist/components/react/post-stepper-item.js +3 -3
- package/dist/components/react/post-stepper.js +32 -30
- package/dist/components/react/{post-list-item.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 +4 -5
- package/dist/components/utils.js +24 -0
- package/dist/docs.json +854 -597
- package/dist/{components/react/p-CJ80BZ06.js → esm/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-wEFJ-c34.js → index-1ReqxAnI.js} +21 -13
- package/dist/esm/loader.js +3 -3
- package/dist/esm/package-DZ5m2Ttg.js +3 -0
- package/dist/esm/post-accordion_2.entry.js +9 -9
- package/dist/esm/post-avatar.entry.js +5 -5
- 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} +462 -463
- package/dist/esm/post-collapsible_2.entry.js +30 -30
- 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 +10 -10
- package/dist/esm/post-rating.entry.js +5 -5
- package/dist/esm/post-stepper-item.entry.js +4 -4
- package/dist/esm/post-stepper.entry.js +28 -25
- 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 +5 -5
- package/dist/esm/utils-CoDiS_Ik.js +24 -0
- package/dist/post-components/{p-7f635728.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-a9644e54.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-cd03e6f2.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-57288cb2.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-af030a3a.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-e62e1f57.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-footer/post-footer.d.ts +4 -4
- package/dist/types/components/post-header/post-header.d.ts +18 -13
- 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 +9 -8
- package/dist/types/components/post-tab-item/post-tab-item.d.ts +19 -0
- package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +3 -3
- package/dist/types/components/post-tabs/post-tabs.d.ts +33 -12
- package/dist/types/components.d.ts +311 -200
- 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 +1740 -863
- package/hydrate/index.mjs +1740 -863
- package/package.json +6 -7
- package/dist/cjs/fade-nS5zzDQS.js +0 -14
- package/dist/cjs/index-UFKR6Ok0.js +0 -98
- package/dist/cjs/post-tab-header.cjs.entry.js +0 -31
- package/dist/collection/animations/slide-and-fade.js +0 -25
- package/dist/collection/components/post-language-option/post-language-option.css +0 -1
- package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
- package/dist/collection/components/post-list/post-list.css +0 -1
- package/dist/collection/components/post-list/post-list.js +0 -97
- package/dist/collection/components/post-list-item/post-list-item.css +0 -1
- package/dist/collection/components/post-list-item/post-list-item.js +0 -26
- package/dist/collection/components/post-tab-header/post-tab-header.css +0 -1
- package/dist/collection/components/post-tab-header/post-tab-header.js +0 -65
- package/dist/components/index2.js +0 -89
- package/dist/components/post-language-option.d.ts +0 -11
- package/dist/components/post-language-option.js +0 -99
- package/dist/components/post-language-switch.js +0 -157
- package/dist/components/post-list-item.js +0 -38
- package/dist/components/post-list.js +0 -61
- package/dist/components/post-tab-header.js +0 -52
- package/dist/components/react/p-BhxZzOEC.js +0 -3
- package/dist/components/react/p-CYkf_7Y5.js +0 -89
- package/dist/components/react/p-SbIC4aZX.js +0 -11
- package/dist/components/react/p-v3pOrMNQ.js +0 -114
- package/dist/components/react/post-language-option.js +0 -100
- package/dist/components/react/post-language-switch.d.ts +0 -11
- package/dist/components/react/post-language-switch.js +0 -158
- package/dist/components/react/post-list-item.js +0 -39
- package/dist/components/react/post-list.js +0 -62
- package/dist/components/react/post-tab-header.js +0 -53
- package/dist/esm/fade-SbIC4aZX.js +0 -11
- package/dist/esm/index-Beaz8wEe.js +0 -89
- package/dist/esm/package-BhxZzOEC.js +0 -3
- package/dist/esm/post-tab-header.entry.js +0 -29
- package/dist/post-components/p-01e678c9.entry.js +0 -1
- package/dist/post-components/p-034a453f.entry.js +0 -1
- package/dist/post-components/p-15a4cdbf.entry.js +0 -1
- package/dist/post-components/p-24dc54d1.entry.js +0 -1
- package/dist/post-components/p-2a2030bf.entry.js +0 -1
- package/dist/post-components/p-2ed84cc3.entry.js +0 -1
- package/dist/post-components/p-3228968f.entry.js +0 -1
- package/dist/post-components/p-3c01ddfe.entry.js +0 -1
- package/dist/post-components/p-748b1f01.entry.js +0 -1
- package/dist/post-components/p-7745e46e.entry.js +0 -1
- package/dist/post-components/p-82c178a3.entry.js +0 -1
- package/dist/post-components/p-9b5f8319.entry.js +0 -1
- package/dist/post-components/p-Beaz8wEe.js +0 -1
- package/dist/post-components/p-BhxZzOEC.js +0 -1
- package/dist/post-components/p-CBFgkSgY.js +0 -1
- package/dist/post-components/p-CJ80BZ06.js +0 -1
- package/dist/post-components/p-D9ZHp2FP.js +0 -1
- package/dist/post-components/p-SbIC4aZX.js +0 -1
- package/dist/post-components/p-b8ba8139.entry.js +0 -1
- package/dist/post-components/p-db935e8e.entry.js +0 -1
- package/dist/post-components/p-fb4b1641.entry.js +0 -1
- package/dist/post-components/p-wEFJ-c34.js +0 -2
- package/dist/types/animations/slide-and-fade.d.ts +0 -2
- package/dist/types/components/post-list/post-list.d.ts +0 -24
- package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
- package/dist/types/components/post-tab-header/post-tab-header.d.ts +0 -14
- /package/dist/collection/components/{post-language-switch → post-language-menu}/switch-variants.js +0 -0
- /package/dist/post-components/{p-CzIKqBrS.js → p-rEfV4v4a.js} +0 -0
- /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host, a as getElement, c as createEvent } from './index-
|
|
2
|
-
import { v as version } from './package-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { a as getFocusableChildren } from './get-focusable-children-
|
|
6
|
-
import { E as EventFrom } from './event-from-
|
|
1
|
+
import { r as registerInstance, h, H as Host, a as getElement, c as createEvent } from './index-1ReqxAnI.js';
|
|
2
|
+
import { v as version } from './package-DZ5m2Ttg.js';
|
|
3
|
+
import { f as checkEmptyOrOneOf, c as checkRequiredAndType, t as throttle, e as breakpoint, b as checkEmptyOrType, i as checkEmptyOrUrl } from './breakpoints-DYoSKGHO.js';
|
|
4
|
+
import { f as fade } from './fade-DsgPYmAa.js';
|
|
5
|
+
import { g as getDeepFocusableChildren, a as getFocusableChildren } from './get-focusable-children-BXNs2_sw.js';
|
|
6
|
+
import { E as EventFrom } from './event-from-rEfV4v4a.js';
|
|
7
|
+
import { a as IS_BROWSER } from './environment-CEmnRoA6.js';
|
|
7
8
|
import { n as nanoid } from './index.browser-BLchVpF6.js';
|
|
9
|
+
import { r as resolveEasing } from './utils-CoDiS_Ik.js';
|
|
10
|
+
import { f as fadeSlide } from './fade-slide-CvOvauo9.js';
|
|
8
11
|
import { P as PLACEMENT_TYPES } from './placement-DRiVosES.js';
|
|
9
|
-
import { g as getRoot } from './get-root-
|
|
12
|
+
import { g as getRoot } from './get-root-CXfAA093.js';
|
|
10
13
|
|
|
11
14
|
const BUTTON_TYPES = ['button', 'submit', 'reset'];
|
|
12
15
|
|
|
13
|
-
const postClosebuttonCss = ".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}}";
|
|
16
|
+
const postClosebuttonCss = ".visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}post-closebutton .btn{padding:0;border:unset;min-height:unset;min-width:unset;width:var(--post-device-sizing-notification-1);height:var(--post-device-sizing-notification-1);border-radius:var(--post-device-border-radius-round);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);display:flex;align-items:center;justify-content:center}post-closebutton .btn>post-icon{min-width:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);height:var(--post-device-sizing-interactive-icon-size4)}post-closebutton .btn{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}post-closebutton .btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-closebutton .btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-closebutton .btn:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-closebutton .btn:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-closebutton .btn:not(:disabled):hover,post-closebutton .btn.pretend-hover{cursor:pointer;background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-closebutton .btn:not(:disabled):hover,post-closebutton .btn.pretend-hover{color:HighlightText !important}}";
|
|
14
17
|
|
|
15
18
|
const PostClosebutton = class {
|
|
16
19
|
constructor(hostRef) {
|
|
@@ -46,7 +49,7 @@ const PostClosebutton = class {
|
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
render() {
|
|
49
|
-
return (h(Host, { key: '
|
|
52
|
+
return (h(Host, { key: '6965a8cb5fb765b4fcec0439ceeafe19d34970c2', "data-version": version }, h("button", { key: '7e718f70b0a4ac79e9439784dac46bd1ffd60fd1', class: "btn", type: this.buttonType }, h("post-icon", { key: '70acda3fbe6c9420f0be708fde6b29a7d5337d13', "aria-hidden": "true", name: "closex" }), h("span", { key: '899b3814c0898b521e4166e1cd951af628558e78', class: "visually-hidden" }, h("slot", { key: 'b13d0e95fd567c86e93e5185389909c7c0e7107d' })))));
|
|
50
53
|
}
|
|
51
54
|
get host() { return getElement(this); }
|
|
52
55
|
static get watchers() { return {
|
|
@@ -55,31 +58,34 @@ const PostClosebutton = class {
|
|
|
55
58
|
};
|
|
56
59
|
PostClosebutton.style = postClosebuttonCss;
|
|
57
60
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
});
|
|
61
|
+
/**
|
|
62
|
+
* Used by PostMegadropdown (burger menu)
|
|
63
|
+
*/
|
|
64
|
+
const defaultOptions = {
|
|
65
|
+
translate: 100,
|
|
66
|
+
duration: 500,
|
|
67
|
+
easing: 'ease',
|
|
68
|
+
fill: 'none',
|
|
69
|
+
};
|
|
70
|
+
function animateSlide(el, keyframes, options) {
|
|
71
|
+
const { duration, easing, fill } = { ...defaultOptions, ...options };
|
|
72
|
+
return el.animate(keyframes, { duration, easing: resolveEasing(easing), fill });
|
|
70
73
|
}
|
|
71
|
-
function
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
function slide(el, direction, options = {}) {
|
|
75
|
+
const mergedOptions = {
|
|
76
|
+
...defaultOptions,
|
|
77
|
+
...options,
|
|
78
|
+
};
|
|
79
|
+
const { translate } = mergedOptions;
|
|
80
|
+
const baseKeyframes = [
|
|
81
|
+
{ transform: `translateX(${translate}%)` },
|
|
82
|
+
{ transform: 'translateX(0)' },
|
|
83
|
+
];
|
|
84
|
+
const keyframes = direction === 'in' ? baseKeyframes : [...baseKeyframes].reverse();
|
|
85
|
+
return animateSlide(el, keyframes, options);
|
|
80
86
|
}
|
|
81
87
|
|
|
82
|
-
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]){--post-header-top:0;--post-global-header-top
|
|
88
|
+
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}";
|
|
83
89
|
|
|
84
90
|
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
85
91
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -109,6 +115,9 @@ const PostHeader = class {
|
|
|
109
115
|
}
|
|
110
116
|
return document.body;
|
|
111
117
|
}
|
|
118
|
+
validateTextMenu() {
|
|
119
|
+
checkRequiredAndType(this, 'textMenu', 'string');
|
|
120
|
+
}
|
|
112
121
|
lockBody(newValue, _oldValue, propName) {
|
|
113
122
|
const scrollParent = this.scrollParent;
|
|
114
123
|
const burgerMenuExtended = propName === 'burgerMenuExtended' ? newValue : this.burgerMenuExtended;
|
|
@@ -124,10 +133,14 @@ const PostHeader = class {
|
|
|
124
133
|
constructor(hostRef) {
|
|
125
134
|
registerInstance(this, hostRef);
|
|
126
135
|
this.throttledResize = throttle(50, () => this.updateLocalHeaderHeight());
|
|
136
|
+
this.animationOptions = {
|
|
137
|
+
duration: 350,
|
|
138
|
+
easing: 'headerEase',
|
|
139
|
+
};
|
|
127
140
|
this.device = breakpoint.get('device');
|
|
128
141
|
this.hasNavigation = false;
|
|
129
|
-
this.
|
|
130
|
-
this.
|
|
142
|
+
this.hasLocalNav = false;
|
|
143
|
+
this.hasAudience = false;
|
|
131
144
|
this.hasTitle = false;
|
|
132
145
|
this.burgerMenuExtended = false;
|
|
133
146
|
this.megadropdownOpen = false;
|
|
@@ -144,15 +157,14 @@ const PostHeader = class {
|
|
|
144
157
|
this.megadropdownOpen = false;
|
|
145
158
|
}
|
|
146
159
|
};
|
|
147
|
-
this.megadropdownStateHandler = (event) => {
|
|
148
|
-
this.megadropdownOpen = event.detail.isVisible;
|
|
149
|
-
};
|
|
150
160
|
this.handleScrollEvent = this.handleScrollEvent.bind(this);
|
|
151
161
|
this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
|
|
152
162
|
this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
|
|
153
163
|
this.keyboardHandler = this.keyboardHandler.bind(this);
|
|
154
164
|
this.handleLinkClick = this.handleLinkClick.bind(this);
|
|
165
|
+
this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
|
|
155
166
|
this.checkSlottedContent = this.checkSlottedContent.bind(this);
|
|
167
|
+
this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
|
|
156
168
|
}
|
|
157
169
|
connectedCallback() {
|
|
158
170
|
window.addEventListener('resize', this.throttledResize, { passive: true });
|
|
@@ -163,7 +175,6 @@ const PostHeader = class {
|
|
|
163
175
|
passive: true,
|
|
164
176
|
});
|
|
165
177
|
document.addEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
|
|
166
|
-
this.host.addEventListener('click', this.handleLinkClick);
|
|
167
178
|
window.addEventListener('postBreakpoint:device', this.breakpointChange);
|
|
168
179
|
this.handleScrollParentResize();
|
|
169
180
|
this.lockBody(false, this.burgerMenuExtended, 'burgerMenuExtended');
|
|
@@ -174,11 +185,13 @@ const PostHeader = class {
|
|
|
174
185
|
this.switchLanguageSwitchMode();
|
|
175
186
|
}
|
|
176
187
|
componentDidRender() {
|
|
188
|
+
this.validateTextMenu();
|
|
177
189
|
this.getFocusableElements();
|
|
178
190
|
this.handleLocalHeaderResize();
|
|
179
191
|
}
|
|
180
192
|
componentDidLoad() {
|
|
181
193
|
this.updateLocalHeaderHeight();
|
|
194
|
+
this.host.shadowRoot.addEventListener('click', this.handleLinkClick);
|
|
182
195
|
}
|
|
183
196
|
// Clean up possible side effects when post-header is disconnected
|
|
184
197
|
disconnectedCallback() {
|
|
@@ -190,7 +203,9 @@ const PostHeader = class {
|
|
|
190
203
|
scrollParent.removeEventListener('scroll', this.handleScrollEvent);
|
|
191
204
|
document.removeEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
|
|
192
205
|
this.host.removeEventListener('keydown', this.keyboardHandler);
|
|
193
|
-
this.host.
|
|
206
|
+
if (this.host.shadowRoot) {
|
|
207
|
+
this.host.shadowRoot.removeEventListener('click', this.handleLinkClick);
|
|
208
|
+
}
|
|
194
209
|
if (this.scrollParentResizeObserver) {
|
|
195
210
|
this.scrollParentResizeObserver.disconnect();
|
|
196
211
|
this.scrollParentResizeObserver = null;
|
|
@@ -206,11 +221,9 @@ const PostHeader = class {
|
|
|
206
221
|
this.burgerMenuExtended = false;
|
|
207
222
|
}
|
|
208
223
|
async closeBurgerMenu() {
|
|
209
|
-
this.burgerMenuAnimation
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
menuButton.toggled = false;
|
|
213
|
-
}
|
|
224
|
+
this.burgerMenuAnimation?.finish();
|
|
225
|
+
if (this.burgerMenuButton)
|
|
226
|
+
this.burgerMenuButton.toggled = false;
|
|
214
227
|
this.burgerMenuExtended = false;
|
|
215
228
|
}
|
|
216
229
|
/**
|
|
@@ -220,18 +233,18 @@ const PostHeader = class {
|
|
|
220
233
|
if (this.device === 'desktop')
|
|
221
234
|
return;
|
|
222
235
|
this.burgerMenuAnimation = this.burgerMenuExtended
|
|
223
|
-
?
|
|
224
|
-
:
|
|
236
|
+
? fade(this.burgerMenu, 'out', this.animationOptions)
|
|
237
|
+
: fade(this.burgerMenu, 'in', this.animationOptions);
|
|
225
238
|
// Update the state of the toggle button
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
menuButton.toggled = force ?? !this.burgerMenuExtended;
|
|
239
|
+
if (this.burgerMenuButton)
|
|
240
|
+
this.burgerMenuButton.toggled = force ?? !this.burgerMenuExtended;
|
|
229
241
|
if (this.burgerMenuExtended) {
|
|
230
242
|
// Wait for the close animation to finish before hiding megadropdowns
|
|
231
243
|
await this.burgerMenuAnimation.finished;
|
|
232
244
|
this.burgerMenuExtended = force ?? !this.burgerMenuExtended;
|
|
233
245
|
if (this.burgerMenuExtended === false) {
|
|
234
246
|
this.closeAllMegadropdowns();
|
|
247
|
+
this.burgerMenu.scrollTop = 0;
|
|
235
248
|
}
|
|
236
249
|
}
|
|
237
250
|
else {
|
|
@@ -242,37 +255,31 @@ const PostHeader = class {
|
|
|
242
255
|
}
|
|
243
256
|
}
|
|
244
257
|
}
|
|
258
|
+
megadropdownStateHandler(event) {
|
|
259
|
+
this.megadropdownOpen = event.detail.isVisible;
|
|
260
|
+
}
|
|
245
261
|
// Get all the focusable elements in the post-header burger menu
|
|
246
262
|
getFocusableElements() {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
];
|
|
253
|
-
// Add the main toggle menu button to the list of focusable children
|
|
254
|
-
const focusableChildren = [
|
|
255
|
-
this.host.querySelector('post-togglebutton'),
|
|
256
|
-
...focusableEls.flatMap(el => Array.from(getFocusableChildren(el))),
|
|
257
|
-
];
|
|
258
|
-
this.firstFocusableEl = focusableChildren[0];
|
|
259
|
-
this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
|
|
260
|
-
}
|
|
261
|
-
getMenuButton() {
|
|
262
|
-
return this.host.querySelector('post-togglebutton');
|
|
263
|
+
if (!this.burgerMenu)
|
|
264
|
+
return;
|
|
265
|
+
const focusableElements = [this.burgerMenuButton];
|
|
266
|
+
focusableElements.push(...getDeepFocusableChildren(this.localHeader, el => !el.matches('post-megadropdown')), ...getDeepFocusableChildren(this.burgerMenu, el => !el.matches('post-megadropdown')));
|
|
267
|
+
this.firstFocusableEl = focusableElements[0];
|
|
268
|
+
this.lastFocusableEl = focusableElements[focusableElements.length - 1];
|
|
263
269
|
}
|
|
264
270
|
keyboardHandler(e) {
|
|
265
|
-
if (e.key
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
271
|
+
if (e.key !== 'Tab' || !this.burgerMenuExtended)
|
|
272
|
+
return;
|
|
273
|
+
const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
|
|
274
|
+
if (e.shiftKey && activeElement === this.firstFocusableEl) {
|
|
275
|
+
// If back tab (Tab + Shift) and first element is focused, focus goes to the last element of the megadropdown
|
|
276
|
+
e.preventDefault();
|
|
277
|
+
this.lastFocusableEl.focus();
|
|
278
|
+
}
|
|
279
|
+
else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
|
|
280
|
+
// If Tab and last element is focused, focus goes back to the first element of the megadropdown
|
|
281
|
+
e.preventDefault();
|
|
282
|
+
this.firstFocusableEl.focus();
|
|
276
283
|
}
|
|
277
284
|
}
|
|
278
285
|
closeAllMegadropdowns() {
|
|
@@ -332,21 +339,28 @@ const PostHeader = class {
|
|
|
332
339
|
}
|
|
333
340
|
}
|
|
334
341
|
checkSlottedContent() {
|
|
335
|
-
this.hasNavigation = !!this.host.querySelector('[slot="
|
|
336
|
-
this.
|
|
337
|
-
this.
|
|
342
|
+
this.hasNavigation = !!this.host.querySelector('[slot="main-nav"]');
|
|
343
|
+
this.hasLocalNav = !!this.host.querySelector('[slot="local-nav"]');
|
|
344
|
+
this.hasAudience = !!this.host.querySelector('[slot="audience"]');
|
|
338
345
|
this.hasTitle = !!this.host.querySelector('[slot="title"]');
|
|
339
346
|
}
|
|
340
347
|
switchLanguageSwitchMode() {
|
|
341
348
|
const variant = this.hasBurgerMenu ? 'list' : 'menu';
|
|
342
|
-
Array.from(this.host.querySelectorAll('post-language-
|
|
349
|
+
Array.from(this.host.querySelectorAll('post-language-menu')).forEach(languageSwitch => {
|
|
343
350
|
languageSwitch?.setAttribute('variant', variant);
|
|
344
351
|
});
|
|
345
352
|
}
|
|
346
|
-
onFocusChange() {
|
|
347
|
-
const
|
|
348
|
-
|
|
349
|
-
|
|
353
|
+
onFocusChange(e) {
|
|
354
|
+
const alwaysVisibleElements = this.device === 'desktop'
|
|
355
|
+
? '.navigation' // logo isn’t included since it would be too small to focus on effectively.
|
|
356
|
+
: '.global-header, .burger-menu';
|
|
357
|
+
const isHeaderExpanded =
|
|
358
|
+
// ensure the expanded state stays accurate during focus changes,
|
|
359
|
+
// e.g., when the focused element is removed from the DOM
|
|
360
|
+
// during a window resize
|
|
361
|
+
e.target === document.activeElement &&
|
|
362
|
+
this.host.matches(':focus-within') &&
|
|
363
|
+
!this.host.shadowRoot.querySelector(`:where(${alwaysVisibleElements}):focus-within`);
|
|
350
364
|
if (isHeaderExpanded) {
|
|
351
365
|
this.host.setAttribute('data-expanded', '');
|
|
352
366
|
}
|
|
@@ -355,39 +369,42 @@ const PostHeader = class {
|
|
|
355
369
|
}
|
|
356
370
|
}
|
|
357
371
|
renderNavigation() {
|
|
372
|
+
const localNav = !this.hasTitle && (h("div", { class: "local-nav" }, h("slot", { name: "local-nav" })));
|
|
358
373
|
if (this.device === 'desktop') {
|
|
359
|
-
return (h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, h("slot", { name: "
|
|
374
|
+
return (h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, h("slot", { name: "main-nav" }), localNav));
|
|
360
375
|
}
|
|
361
376
|
return (h("div", { class: {
|
|
362
377
|
'burger-menu': true,
|
|
363
378
|
'extended': this.burgerMenuExtended,
|
|
364
|
-
'no-
|
|
365
|
-
|
|
379
|
+
'no-local-nav': !this.hasLocalNav,
|
|
380
|
+
'megadropdown-open': this.megadropdownOpen,
|
|
381
|
+
}, style: { '--post-header-navigation-current-inset': `${this.burgerMenu?.scrollTop ?? 0}px` }, ref: el => (this.burgerMenu = el) }, localNav, h("div", { class: "burger-menu-body" }, h("slot", { name: "audience" }), h("slot", { name: "main-nav" })), h("div", { class: "burger-menu-footer" }, h("slot", { name: "global-nav-secondary" }), h("slot", { name: "language-menu" }))));
|
|
366
382
|
}
|
|
367
383
|
render() {
|
|
368
|
-
return (h(Host, { key: '
|
|
384
|
+
return (h(Host, { key: '15de1ff6ccac94813df10fc0b41a518de68dee94', "data-version": version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, h("header", { key: '0af40c8b8944c7ffcf2bf0fe704671f4012ae8c8' }, h("div", { key: 'cd4564c5c375c015c673df195ba04fe4d89ff1c2', class: {
|
|
369
385
|
'global-header': true,
|
|
370
|
-
'no-
|
|
371
|
-
} }, h("div", { key: '
|
|
372
|
-
h("slot", { key: '
|
|
373
|
-
h("slot", { key: '
|
|
374
|
-
], h("slot", { key: '
|
|
386
|
+
'no-audience': !this.hasAudience,
|
|
387
|
+
} }, h("div", { key: 'c4ad8a22fed57e54266c6584548f5203a499b63c', class: "logo" }, h("slot", { key: 'bf86f7ccf2e46263365023f287f18305160cede6', name: "post-logo" })), h("div", { key: 'e89c405cf97ddb08850d3b15ab8977e7e484ba73', class: "sliding-controls" }, this.device === 'desktop' && (h("div", { key: 'c3e9f49a105894d0df44a3d2654065b452292154', class: "audience" }, h("slot", { key: '20effc0592ca8665de464cc5d45d11ef02894acb', name: "audience" }))), h("slot", { key: 'f0ca8a59134520ccbb38907e32bedd4c05800d36', name: "global-nav-primary" }), !this.hasBurgerMenu && [
|
|
388
|
+
h("slot", { key: '7e2b2982403f491f083fc9f32cee46cbaeca7c50', name: "global-nav-secondary" }),
|
|
389
|
+
h("slot", { key: '3e7b5f6cb16b2cf2bc64b9b11c70f8b363e80134', name: "language-menu" }),
|
|
390
|
+
], h("slot", { key: 'd91059cc4dd4529040aa6436db46f66f2db84e71', name: "post-login" }), this.hasNavigation && this.device !== 'desktop' && (h("div", { key: 'f97161e09b27c11c6f85d112e85a59ddf2925aec', onClick: () => this.toggleBurgerMenu(), class: "burger-menu-toggle" }, h("slot", { key: '18304b858fa2173b63e842ba4d0512bd438a89b0', name: "post-togglebutton" }))), this.hasNavigation && this.device !== 'desktop' && (h("post-togglebutton", { key: '0599e4d106262b7be6557b476becacaf9f5656ba', ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, h("span", { key: '3f3578f6172a9d87c531b5bef6a201b255042511' }, this.textMenu), h("post-icon", { key: '7a92cec5793716225cf9dc4646ccff585e02723b', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), h("post-icon", { key: '9170844d117e8f0bf7f35049debe973ff391158e', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" }))))), h("div", { key: 'db13d084905b4633595bb1d4d83cc88c82c3c679', ref: el => (this.localHeader = el), class: {
|
|
375
391
|
'local-header': true,
|
|
376
392
|
'no-title': !this.hasTitle,
|
|
377
|
-
'no-
|
|
393
|
+
'no-audience': !this.hasAudience,
|
|
378
394
|
'no-navigation': this.device !== 'desktop' || !this.hasNavigation,
|
|
379
|
-
'no-
|
|
380
|
-
} }, h("slot", { key: '
|
|
395
|
+
'no-local-nav': !this.hasLocalNav,
|
|
396
|
+
} }, h("slot", { key: 'f6fb25aef128bf1712995427014c5ff62c3710d0', name: "title" }), this.hasTitle && h("slot", { key: '8cba1c7b544d950140d59336baaf7398a4fb23d8', name: "local-nav" }), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation())));
|
|
381
397
|
}
|
|
382
398
|
get host() { return getElement(this); }
|
|
383
399
|
static get watchers() { return {
|
|
400
|
+
"textMenu": ["validateTextMenu"],
|
|
384
401
|
"device": ["lockBody"],
|
|
385
402
|
"burgerMenuExtended": ["lockBody"]
|
|
386
403
|
}; }
|
|
387
404
|
};
|
|
388
405
|
__decorate$3([
|
|
389
406
|
EventFrom('post-megadropdown')
|
|
390
|
-
], PostHeader.prototype, "megadropdownStateHandler",
|
|
407
|
+
], PostHeader.prototype, "megadropdownStateHandler", null);
|
|
391
408
|
PostHeader.style = postHeaderCss;
|
|
392
409
|
|
|
393
410
|
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)}}";
|
|
@@ -452,9 +469,11 @@ const PostIcon = class {
|
|
|
452
469
|
const baseHref = IS_BROWSER
|
|
453
470
|
? document.querySelector('base[href]')?.getAttribute('href') || ''
|
|
454
471
|
: '';
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
472
|
+
let metaIconBase = '';
|
|
473
|
+
if (IS_BROWSER) {
|
|
474
|
+
const metaTag = document.querySelector('meta[name="design-system-settings"]');
|
|
475
|
+
metaIconBase = metaTag?.getAttribute('data-post-icon-base') || '';
|
|
476
|
+
}
|
|
458
477
|
// Function to build the first part of the URL when 'this.base' or 'metaIconBase' are relative
|
|
459
478
|
const buildUrlWithBase = (relativeUrl) => {
|
|
460
479
|
const normalizedHref = normalizeUrl(baseHref);
|
|
@@ -501,7 +520,7 @@ const PostIcon = class {
|
|
|
501
520
|
this.validateAnimation();
|
|
502
521
|
}
|
|
503
522
|
render() {
|
|
504
|
-
return (h(Host, { key: '
|
|
523
|
+
return (h(Host, { key: '6469b748f2792c383593dacd1d9f1f17daf9cde0', "data-version": version }, h("span", { key: '9f4d9766dc97a07a2562dbc3bb0931de29fe9757', style: this.getStyles() })));
|
|
505
524
|
}
|
|
506
525
|
get host() { return getElement(this); }
|
|
507
526
|
static get watchers() { return {
|
|
@@ -516,70 +535,7 @@ PostIcon.style = postIconCss;
|
|
|
516
535
|
|
|
517
536
|
const SWITCH_VARIANTS = ['list', 'menu'];
|
|
518
537
|
|
|
519
|
-
const
|
|
520
|
-
|
|
521
|
-
const PostLanguageOption = class {
|
|
522
|
-
constructor(hostRef) {
|
|
523
|
-
registerInstance(this, hostRef);
|
|
524
|
-
this.postChange = createEvent(this, "postChange");
|
|
525
|
-
this.postLanguageOptionInitiallyActive = createEvent(this, "postLanguageOptionInitiallyActive");
|
|
526
|
-
}
|
|
527
|
-
validateCode() {
|
|
528
|
-
checkRequiredAndType(this, 'code', 'string');
|
|
529
|
-
}
|
|
530
|
-
validateVariant() {
|
|
531
|
-
checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
532
|
-
}
|
|
533
|
-
validateName() {
|
|
534
|
-
checkEmptyOrType(this, 'name', 'string');
|
|
535
|
-
}
|
|
536
|
-
validateUrl() {
|
|
537
|
-
checkEmptyOrUrl(this, 'url');
|
|
538
|
-
}
|
|
539
|
-
componentDidLoad() {
|
|
540
|
-
this.validateCode();
|
|
541
|
-
this.validateName();
|
|
542
|
-
this.validateUrl();
|
|
543
|
-
if (!this.name && this.isNameRequired()) {
|
|
544
|
-
throw new Error('The "name" property of the post-language-option component is required when the full language name is not displayed.');
|
|
545
|
-
}
|
|
546
|
-
if (this.active) {
|
|
547
|
-
this.postLanguageOptionInitiallyActive.emit(this.code);
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
/**
|
|
551
|
-
* Selects the language option programmatically.
|
|
552
|
-
*/
|
|
553
|
-
async select() {
|
|
554
|
-
this.active = true;
|
|
555
|
-
this.emitChange();
|
|
556
|
-
}
|
|
557
|
-
emitChange() {
|
|
558
|
-
this.postChange.emit(this.code);
|
|
559
|
-
}
|
|
560
|
-
isNameRequired() {
|
|
561
|
-
return this.host.textContent.toLowerCase() === this.code.toLowerCase();
|
|
562
|
-
}
|
|
563
|
-
render() {
|
|
564
|
-
const lang = this.code.toLowerCase();
|
|
565
|
-
const emitOnKeyDown = (e) => {
|
|
566
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
567
|
-
this.emitChange();
|
|
568
|
-
}
|
|
569
|
-
};
|
|
570
|
-
return (h(Host, { key: '06ba54de702d5014b34f1b0cb6396cb947ac3ca6', "data-version": version, role: this.variant === 'list' ? 'listitem' : undefined }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name))) : (h("button", { "aria-current": this.active ? 'true' : undefined, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name)))));
|
|
571
|
-
}
|
|
572
|
-
get host() { return getElement(this); }
|
|
573
|
-
static get watchers() { return {
|
|
574
|
-
"code": ["validateCode"],
|
|
575
|
-
"variant": ["validateVariant"],
|
|
576
|
-
"name": ["validateName"],
|
|
577
|
-
"url": ["validateUrl"]
|
|
578
|
-
}; }
|
|
579
|
-
};
|
|
580
|
-
PostLanguageOption.style = postLanguageOptionCss;
|
|
581
|
-
|
|
582
|
-
const postLanguageSwitchCss = ":host{display:flex !important;flex-wrap:wrap;gap:.5rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.post-language-switch-dropdown-container{display:flex;flex-direction:column}.post-language-switch-trigger{cursor:pointer;text-transform:uppercase;padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-decoration:none;display:inline-flex;align-items:center;gap:6px;border-radius:24px;font-size:16px;padding:3px 10px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger{background-color:ButtonFace !important}.post-language-switch-trigger:hover{background-color:Highlight !important}}.post-language-switch-trigger{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.post-language-switch-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.post-language-switch-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.post-language-switch-trigger:not(:disabled):hover,.post-language-switch-trigger.pretend-hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.post-language-switch-trigger post-icon{height:24px;width:24px}.post-language-switch-trigger[aria-expanded=true]{background-color:#050400;color:#fff}.post-language-switch-trigger[aria-expanded=true] post-icon{transform:rotate(180deg)}.post-language-switch-trigger[aria-expanded=true]:hover{background-color:#504f4b;color:#fff}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger{border:1px solid ButtonBorder}.post-language-switch-trigger[aria-expanded=true] post-icon,.post-language-switch-trigger:hover post-icon{color:HighlightText}}post-menu::part(menu){padding-block:0}.post-language-switch-list{margin-top:1rem}";
|
|
538
|
+
const postLanguageMenuCss = ":host{display:flex !important}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.post-language-menu-dropdown-container{display:flex;flex-direction:column}.post-language-menu-trigger{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:.25rem .625rem;gap:.375rem;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);text-transform:uppercase;cursor:pointer}.post-language-menu-trigger:hover{text-decoration:none}.post-language-menu-trigger:disabled{border-style:var(--post-core-border-style-dash)}.post-language-menu-trigger{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.post-language-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.post-language-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(a){color:LinkText;border:unset}.post-language-menu-trigger:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}.post-language-menu-trigger:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}.post-language-menu-trigger:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}.post-language-menu-trigger:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg);color:var(--post-scheme-color-interactive-button-primary-enabled-fg)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}.post-language-menu-trigger post-icon{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true]) post-icon{transform:rotate(180deg)}post-menu::part(post-menu){padding-block:0}.post-language-menu-list{margin-top:1rem}";
|
|
583
539
|
|
|
584
540
|
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
585
541
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -591,7 +547,7 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
591
547
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
592
548
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
593
549
|
};
|
|
594
|
-
const
|
|
550
|
+
const PostLanguageMenu = class {
|
|
595
551
|
constructor(hostRef) {
|
|
596
552
|
registerInstance(this, hostRef);
|
|
597
553
|
this.menuId = `p${nanoid(11)}`;
|
|
@@ -602,13 +558,13 @@ const PostLanguageSwitch = class {
|
|
|
602
558
|
this.variant = 'list';
|
|
603
559
|
}
|
|
604
560
|
get languageOptions() {
|
|
605
|
-
return Array.from(this.host.querySelectorAll('post-language-
|
|
561
|
+
return Array.from(this.host.querySelectorAll('post-language-menu-item'));
|
|
606
562
|
}
|
|
607
563
|
validateCaption() {
|
|
608
|
-
checkRequiredAndType(this, '
|
|
564
|
+
checkRequiredAndType(this, 'textChangeLanguage', 'string');
|
|
609
565
|
}
|
|
610
566
|
validateDescription() {
|
|
611
|
-
checkRequiredAndType(this, '
|
|
567
|
+
checkRequiredAndType(this, 'textCurrentLanguage', 'string');
|
|
612
568
|
}
|
|
613
569
|
validateVariant() {
|
|
614
570
|
checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
@@ -623,11 +579,11 @@ const PostLanguageSwitch = class {
|
|
|
623
579
|
this.updateChildrenVariant();
|
|
624
580
|
}
|
|
625
581
|
/**
|
|
626
|
-
* Listen for the postChange event and guard it to run only for events originating from a <post-language-
|
|
582
|
+
* Listen for the postChange event and guard it to run only for events originating from a <post-language-menu-item> element.
|
|
627
583
|
*/
|
|
628
584
|
handlePostChange(event) {
|
|
629
585
|
this.activeLang = event.detail;
|
|
630
|
-
// Update the active state in the children post-language-
|
|
586
|
+
// Update the active state in the children post-language-menu-item components
|
|
631
587
|
this.languageOptions.forEach(lang => {
|
|
632
588
|
if (lang.code && lang.code === this.activeLang) {
|
|
633
589
|
lang.setAttribute('active', '');
|
|
@@ -644,90 +600,102 @@ const PostLanguageSwitch = class {
|
|
|
644
600
|
}
|
|
645
601
|
/**
|
|
646
602
|
* Handles cases where the language switch is being rendered before options are available
|
|
647
|
-
* @param event Initially emitted by <post-
|
|
603
|
+
* @param event Initially emitted by <post-language-menu-item>
|
|
648
604
|
*/
|
|
649
605
|
handleInitiallyActive(event) {
|
|
650
606
|
this.activeLang = event.detail;
|
|
651
607
|
}
|
|
652
|
-
// Update post-language-
|
|
608
|
+
// Update post-language-menu-item variant to have the correct style
|
|
653
609
|
updateChildrenVariant() {
|
|
654
610
|
this.languageOptions.forEach(el => {
|
|
655
611
|
el.setAttribute('variant', this.variant);
|
|
656
612
|
});
|
|
657
613
|
}
|
|
658
614
|
renderList() {
|
|
659
|
-
return (h(Host, { "data-version": version }, h("div", { class: "post-language-
|
|
615
|
+
return (h(Host, { "data-version": version }, h("div", { class: "post-language-menu-list", role: "list", "aria-label": this.textChangeLanguage, "aria-describedby": this.listSpanId }, h("span", { id: this.listSpanId, class: "visually-hidden" }, this.textCurrentLanguage), h("slot", null))));
|
|
660
616
|
}
|
|
661
617
|
renderDropdown() {
|
|
662
|
-
return (h(Host, { "data-version": version }, h("post-menu-trigger", { for: this.menuId }, h("button", { class: "post-language-
|
|
618
|
+
return (h(Host, { "data-version": version }, h("post-menu-trigger", { for: this.menuId }, h("button", { class: "post-language-menu-trigger" }, this.activeLang, h("span", { class: "visually-hidden" }, this.textChangeLanguage), h("span", { class: "visually-hidden" }, this.textCurrentLanguage), h("post-icon", { "aria-hidden": "true", name: "chevrondown" }))), h("post-menu", { id: this.menuId, class: "post-language-menu-dropdown-container", label: this.textChangeLanguage, placement: "bottom-end" }, h("slot", null))));
|
|
663
619
|
}
|
|
664
620
|
render() {
|
|
665
621
|
return this.variant === 'list' ? this.renderList() : this.renderDropdown();
|
|
666
622
|
}
|
|
667
623
|
get host() { return getElement(this); }
|
|
668
624
|
static get watchers() { return {
|
|
669
|
-
"
|
|
670
|
-
"
|
|
625
|
+
"textChangeLanguage": ["validateCaption"],
|
|
626
|
+
"textCurrentLanguage": ["validateDescription"],
|
|
671
627
|
"variant": ["validateVariant"]
|
|
672
628
|
}; }
|
|
673
629
|
};
|
|
674
630
|
__decorate$2([
|
|
675
|
-
EventFrom('post-language-
|
|
676
|
-
],
|
|
677
|
-
|
|
631
|
+
EventFrom('post-language-menu-item')
|
|
632
|
+
], PostLanguageMenu.prototype, "handlePostChange", null);
|
|
633
|
+
PostLanguageMenu.style = postLanguageMenuCss;
|
|
678
634
|
|
|
679
|
-
const
|
|
635
|
+
const postLanguageMenuItemCss = "post-language-menu-item{display:inline-block}post-language-menu-item button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item button{background-color:ButtonFace !important}post-language-menu-item button:hover{background-color:Highlight !important}}post-language-menu-item button .visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}post-language-menu-item a{color:var(--post-current-fg);text-decoration:none}post-language-menu-item :is(a,button){cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-transform:uppercase}post-language-menu-item :is(a,button){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}post-language-menu-item :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-language-menu-item :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-language-menu-item:where([variant=list]) :is(a,button){padding-inline:0;width:40px;height:40px;border-radius:2px}post-language-menu-item:where([variant=list]) :is(a,button):hover{color:#504f4b}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item:where([variant=list]) :is(a,button){border:1px solid ButtonBorder;color:ButtonText}}post-language-menu-item:where([variant=list])[active]:not([active=false]) :is(a,button){background-color:#050400 !important;color:#fff;pointer-events:none}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item:where([variant=list])[active]:not([active=false]) :is(a,button){background-color:Highlight !important;color:HighlightText}}post-language-menu-item:where([variant=menu]){min-width:72px}post-language-menu-item:where([variant=menu])[active]:not([active=false]){display:none}post-language-menu-item:where([variant=menu]) :is(a,button){padding-block:13px;padding-inline:16px;box-sizing:border-box;justify-content:flex-start;position:relative;border-radius:0}post-language-menu-item:where([variant=menu]) :is(a,button):hover{color:#fff;background-color:#504f4b}post-language-menu-item:where([variant=menu]):first-child :is(a,button){border-start-start-radius:4px;border-start-end-radius:4px}post-language-menu-item:where([variant=menu]):last-child :is(a,button){border-end-start-radius:4px;border-end-end-radius:4px}";
|
|
680
636
|
|
|
681
|
-
const
|
|
637
|
+
const PostLanguageMenuItem = class {
|
|
682
638
|
constructor(hostRef) {
|
|
683
639
|
registerInstance(this, hostRef);
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
*/
|
|
687
|
-
this.titleHidden = false;
|
|
688
|
-
/**
|
|
689
|
-
* The list can become horizontal by setting `horizontal="true"` or just `horizontal`
|
|
690
|
-
*/
|
|
691
|
-
this.horizontal = false;
|
|
640
|
+
this.postChange = createEvent(this, "postChange");
|
|
641
|
+
this.postLanguageMenuItemInitiallyActive = createEvent(this, "postLanguageMenuItemInitiallyActive");
|
|
692
642
|
}
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
* Get the id set on the host element or use a random id by default
|
|
696
|
-
*/
|
|
697
|
-
this.titleId = `title-${this.host.id || nanoid(6)}`;
|
|
643
|
+
validateCode() {
|
|
644
|
+
checkRequiredAndType(this, 'code', 'string');
|
|
698
645
|
}
|
|
699
|
-
|
|
700
|
-
this
|
|
646
|
+
validateVariant() {
|
|
647
|
+
checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
|
|
701
648
|
}
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
649
|
+
validateName() {
|
|
650
|
+
checkEmptyOrType(this, 'name', 'string');
|
|
651
|
+
}
|
|
652
|
+
validateUrl() {
|
|
653
|
+
checkEmptyOrUrl(this, 'url');
|
|
654
|
+
}
|
|
655
|
+
componentDidLoad() {
|
|
656
|
+
this.validateCode();
|
|
657
|
+
this.validateName();
|
|
658
|
+
this.validateUrl();
|
|
659
|
+
if (!this.name && this.isNameRequired()) {
|
|
660
|
+
throw new Error('The "name" property of the post-language-menu-item component is required when the full language name is not displayed.');
|
|
661
|
+
}
|
|
662
|
+
if (this.active) {
|
|
663
|
+
this.postLanguageMenuItemInitiallyActive.emit(this.code);
|
|
705
664
|
}
|
|
706
665
|
}
|
|
707
|
-
|
|
708
|
-
|
|
666
|
+
/**
|
|
667
|
+
* Selects the language option programmatically.
|
|
668
|
+
*/
|
|
669
|
+
async select() {
|
|
670
|
+
this.active = true;
|
|
671
|
+
this.emitChange();
|
|
709
672
|
}
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
PostList.style = postListCss;
|
|
713
|
-
|
|
714
|
-
const postListItemCss = ":host{display:flex}";
|
|
715
|
-
|
|
716
|
-
const PostListItem = class {
|
|
717
|
-
constructor(hostRef) {
|
|
718
|
-
registerInstance(this, hostRef);
|
|
673
|
+
emitChange() {
|
|
674
|
+
this.postChange.emit(this.code);
|
|
719
675
|
}
|
|
720
|
-
|
|
721
|
-
this.host.
|
|
676
|
+
isNameRequired() {
|
|
677
|
+
return this.host.textContent.toLowerCase() === this.code.toLowerCase();
|
|
722
678
|
}
|
|
723
679
|
render() {
|
|
724
|
-
|
|
680
|
+
const lang = this.code.toLowerCase();
|
|
681
|
+
const emitOnKeyDown = (e) => {
|
|
682
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
683
|
+
this.emitChange();
|
|
684
|
+
}
|
|
685
|
+
};
|
|
686
|
+
return (h(Host, { key: '0a0f6a2e04d61991696e86fa9a20b34d154e89ac', "data-version": version, role: this.variant === 'list' ? 'listitem' : undefined }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name))) : (h("button", { "aria-current": this.active ? 'true' : undefined, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name)))));
|
|
725
687
|
}
|
|
726
688
|
get host() { return getElement(this); }
|
|
689
|
+
static get watchers() { return {
|
|
690
|
+
"code": ["validateCode"],
|
|
691
|
+
"variant": ["validateVariant"],
|
|
692
|
+
"name": ["validateName"],
|
|
693
|
+
"url": ["validateUrl"]
|
|
694
|
+
}; }
|
|
727
695
|
};
|
|
728
|
-
|
|
696
|
+
PostLanguageMenuItem.style = postLanguageMenuItemCss;
|
|
729
697
|
|
|
730
|
-
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
|
|
698
|
+
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}";
|
|
731
699
|
|
|
732
700
|
const PostLogo = class {
|
|
733
701
|
constructor(hostRef) {
|
|
@@ -748,7 +716,7 @@ const PostLogo = class {
|
|
|
748
716
|
render() {
|
|
749
717
|
const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
|
|
750
718
|
const LogoTag = logoLink ? 'a' : 'span';
|
|
751
|
-
return (h(Host, { key: '
|
|
719
|
+
return (h(Host, { key: '39444d3dd1a87425c7134de5af6ad623a68197c0', "data-version": version }, h(LogoTag, { key: '8f41d8c85212f7fde23c11fa0a0fb506deb5e0c9', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: '06b777726f42914b941a980bce9dd4ba3dc3637e', class: "description" }, h("slot", { key: 'd95f99a2d3b09ffab6d0e7c11b99178d6c1fb7ef', onSlotchange: () => this.checkDescription() })), h("svg", { key: '57fa969750327b0907cd3f5abefd14b52d176dd8', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: '61172060743d8d155bcde7d636da3c5569ec1951', id: "Logo" }, h("rect", { key: 'ef042aea64e01c52d241ff599290646af309f868', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), 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" }), 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" }))))));
|
|
752
720
|
}
|
|
753
721
|
get host() { return getElement(this); }
|
|
754
722
|
static get watchers() { return {
|
|
@@ -757,25 +725,27 @@ const PostLogo = class {
|
|
|
757
725
|
};
|
|
758
726
|
PostLogo.style = postLogoCss;
|
|
759
727
|
|
|
760
|
-
const postMainnavigationCss = ":root{--post-icon-chevrondown:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbmRvd24iPjxzeW1ib2wgaWQ9InMxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJNMi4wMSA1LjIyYzAtLjE5LjA3LS4zOC4yMi0uNTMuMjktLjI5Ljc3LS4yOSAxLjA2IDBsNC43MiA0LjcyIDQuNzItNC43MmMuMjktLjI5Ljc3LS4yOSAxLjA2IDBzLjI5Ljc3IDAgMS4wNmwtNS43OCA1Ljc4LTUuNzgtNS43OGEuNzQuNzQgMCAwIDEtLjIyLS41MyIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InMyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMy4yNiA3Ljg1YzAtLjIyLjA4LS40NS4yNi0uNjIuMzQtLjM0LjktLjM0IDEuMjQgMGw3LjI2IDcuMjYgNy4yNi03LjI2Yy4zNC0uMzQuOS0uMzQgMS4yNCAwcy4zNC45IDAgMS4yNGwtOC41IDguNS04LjUxLTguNWEuOS45IDAgMCAxLS4yNi0uNjJaIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxwYXRoIGQ9Ik00LjUgMTAuNTRjMC0uMjYuMS0uNTEuMjktLjcxYS45OTYuOTk2IDAgMCAxIDEuNDEgMGw5Ljc5IDkuNzkgOS44LTkuOGEuOTk2Ljk5NiAwIDEgMSAxLjQxIDEuNDFMMTUuOTkgMjIuNDQgNC44IDExLjI1Yy0uMi0uMi0uMjktLjQ1LS4yOS0uNzFaIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczQwIiB2aWV3Qm94PSIwIDAgNDAgNDAiPjxwYXRoIGQ9Ik01LjggMTMuMTdhMS4xMjMgMS4xMjMgMCAwIDEgMS45Mi0uOEwyMC4wNSAyNC43bDEyLjM0LTEyLjM0Yy40NC0uNDQgMS4xNS0uNDQgMS41OSAwcy40NCAxLjE1IDAgMS41OUwyMC4wNSAyNy44OCA2LjEzIDEzLjk3Yy0uMjItLjIyLS4zMy0uNTEtLjMzLS44Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczQ4IiB2aWV3Qm94PSIwIDAgNDggNDgiPjxwYXRoIGQ9Ik03IDE1Ljg3YzAtLjMyLjEyLS42NC4zNy0uODhhMS4yNSAxLjI1IDAgMCAxIDEuNzcgMGwxNC44NyAxNC44NyAxNC44OC0xNC44OGMuNDktLjQ5IDEuMjgtLjQ5IDEuNzcgMHMuNDkgMS4yOCAwIDEuNzdMMjQuMDIgMzMuMzkgNy4zNyAxNi43NWMtLjI0LS4yNC0uMzctLjU2LS4zNy0uODgiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZD0iTTkuNjMgMjEuMjRhMS4zOCAxLjM4IDAgMCAxIDIuMzUtLjk3TDMyLjAxIDQwLjNsMjAuMDQtMjAuMDRjLjU0LS41NCAxLjQxLS41NCAxLjk1IDBzLjU0IDEuNDEgMCAxLjk1TDMyLjAxIDQ0LjE5IDEwLjAzIDIyLjIyYy0uMjctLjI3LS40LS42Mi0uNC0uOTdaTTAgLjAzaDY0djY0SDB6Ii8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25kb3duIi8+PC9nPjwvc3ZnPg==\")}post-mainnavigation post-list-item>a{text-decoration:none;border-radius:0}post-mainnavigation post-list-item post-megadropdown-trigger button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-align:start}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation post-list-item post-megadropdown-trigger button{background-color:ButtonFace !important}post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:Highlight !important}}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item post-megadropdown-trigger button{flex:0 0 fit-content;white-space:nowrap;display:flex;align-items:center;justify-content:space-between}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}post-mainnavigation post-list-item>a:focus-visible,post-mainnavigation post-list-item post-megadropdown-trigger button:focus-visible{border-radius:4px;z-index:2}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{content:\"\";mask-image:var(--post-icon-chevrondown);background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;height:24px;width:24px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation>button,post-mainnavigation post-megadropdown-trigger button{border:1px solid ButtonBorder !important}post-mainnavigation>button:hover::after,post-mainnavigation>button[aria-expanded=true]::after,post-mainnavigation post-megadropdown-trigger button:hover::after,post-mainnavigation post-megadropdown-trigger button[aria-expanded=true]::after{color:HighlightText}}post-header:not([data-burger-menu])>post-mainnavigation{display:flex;height:var(--post-main-navigation-height, 0);background:#fff;user-select:none}post-header:not([data-burger-menu])>post-mainnavigation nav{flex:1 1 auto;scroll-behavior:smooth}post-header:not([data-burger-menu])>post-mainnavigation.scrollable,post-header:not([data-burger-menu])>post-mainnavigation.scrollable nav{overflow:hidden}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control{z-index:2;cursor:pointer;padding:1rem;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.scroll-left{margin-inline-end:-3rem}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.scroll-right{margin-inline-start:-3rem}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.d-none{display:none}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control post-icon{font-size:1rem}post-header:not([data-burger-menu])>post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{position:sticky;padding-inline:12px;height:var(--post-main-navigation-height, 0);gap:4px;font-size:16px}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{position:absolute;opacity:1;text-align:center;width:100%;inset-inline-start:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a:hover,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button:hover,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}@media screen and (max-width: 599.98px){post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:12px;transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button::after,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)),post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))::before,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)).active,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))[aria-current=page],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a.active,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a[aria-current=page],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)):hover,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)):hover::before,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}post-header[data-burger-menu]>post-mainnavigation nav{transform:none !important}post-header[data-burger-menu]>post-mainnavigation .scroll-control{display:none}post-header[data-burger-menu]>post-mainnavigation post-list-item>a,post-header[data-burger-menu]>post-mainnavigation post-list-item>button,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-header[data-burger-menu]>post-mainnavigation post-list-item>a::before,post-header[data-burger-menu]>post-mainnavigation post-list-item>button::before,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-header[data-burger-menu]>post-mainnavigation post-list-item>a.active,post-header[data-burger-menu]>post-mainnavigation post-list-item>a[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item>a[aria-expanded=true],post-header[data-burger-menu]>post-mainnavigation post-list-item>button.active,post-header[data-burger-menu]>post-mainnavigation post-list-item>button[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item>button[aria-expanded=true],post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button.active,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-header[data-burger-menu]>post-mainnavigation post-list-item>a:hover,post-header[data-burger-menu]>post-mainnavigation post-list-item>button:hover,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-header[data-burger-menu]>post-mainnavigation post-list-item>a:hover::before,post-header[data-burger-menu]>post-mainnavigation post-list-item>button:hover::before,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-header[data-burger-menu]>post-mainnavigation post-list-item>a .nav-el-inactive,post-header[data-burger-menu]>post-mainnavigation post-list-item>button .nav-el-inactive,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-header[data-burger-menu]>post-mainnavigation>button::after,post-header[data-burger-menu]>post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}";
|
|
728
|
+
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}";
|
|
761
729
|
|
|
762
730
|
const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
|
|
763
731
|
const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
|
|
764
732
|
const PostMainnavigation = class {
|
|
733
|
+
validateTextMain() {
|
|
734
|
+
checkRequiredAndType(this, 'textMain', 'string');
|
|
735
|
+
}
|
|
765
736
|
constructor(hostRef) {
|
|
766
737
|
registerInstance(this, hostRef);
|
|
767
738
|
this.canScrollLeft = false;
|
|
768
739
|
this.canScrollRight = false;
|
|
769
740
|
this.scrollRight = this.scrollRight.bind(this);
|
|
770
741
|
this.scrollLeft = this.scrollLeft.bind(this);
|
|
771
|
-
this.handleMutations = this.handleMutations.bind(this);
|
|
772
742
|
this.checkScrollability = this.checkScrollability.bind(this);
|
|
773
743
|
this.resizeObserver = new ResizeObserver(this.checkScrollability);
|
|
774
|
-
this.mutationObserver = new MutationObserver(this.
|
|
744
|
+
this.mutationObserver = new MutationObserver(this.checkScrollability);
|
|
775
745
|
}
|
|
776
746
|
componentDidLoad() {
|
|
747
|
+
this.validateTextMain();
|
|
777
748
|
setTimeout(() => {
|
|
778
|
-
this.fixLayoutShift();
|
|
779
749
|
this.checkScrollability();
|
|
780
750
|
});
|
|
781
751
|
// Observe the navbar for size changes
|
|
@@ -800,30 +770,8 @@ const PostMainnavigation = class {
|
|
|
800
770
|
if (this.scrollRepeatInterval)
|
|
801
771
|
clearInterval(this.scrollRepeatInterval);
|
|
802
772
|
}
|
|
803
|
-
async handleMutations(mutations) {
|
|
804
|
-
const addedNodes = mutations.flatMap((mutation) => {
|
|
805
|
-
return Array.from(mutation.addedNodes);
|
|
806
|
-
});
|
|
807
|
-
// Wait for all elements to be hydrated
|
|
808
|
-
await Promise.all(addedNodes.map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
|
|
809
|
-
this.fixLayoutShift();
|
|
810
|
-
this.checkScrollability();
|
|
811
|
-
}
|
|
812
773
|
get navigationItems() {
|
|
813
|
-
return Array.from(this.
|
|
814
|
-
}
|
|
815
|
-
/**
|
|
816
|
-
* Hack to fix the layout shift due to bold text on active elements
|
|
817
|
-
*/
|
|
818
|
-
fixLayoutShift() {
|
|
819
|
-
this.navigationItems
|
|
820
|
-
.filter(item => !item.matches(':has(.nav-el-active)'))
|
|
821
|
-
.forEach(item => {
|
|
822
|
-
item.innerHTML = `
|
|
823
|
-
<span class="nav-el-active">${item.innerHTML}</span>
|
|
824
|
-
<span class="nav-el-inactive" aria-hidden="true">${item.innerHTML}</span>
|
|
825
|
-
`;
|
|
826
|
-
});
|
|
774
|
+
return Array.from(this.host.querySelectorAll('a:not(post-megadropdown *), post-megadropdown-trigger'));
|
|
827
775
|
}
|
|
828
776
|
/**
|
|
829
777
|
* Returns whether scrolling is enabled in either the left or right direction.
|
|
@@ -862,7 +810,7 @@ const PostMainnavigation = class {
|
|
|
862
810
|
}, SCROLL_REPEAT_INTERVAL);
|
|
863
811
|
}
|
|
864
812
|
scrollRight() {
|
|
865
|
-
const scrollRightLeftEdge =
|
|
813
|
+
const scrollRightLeftEdge = this.host.shadowRoot
|
|
866
814
|
.querySelector('.scroll-right')
|
|
867
815
|
.getBoundingClientRect().left;
|
|
868
816
|
for (const navigationItem of this.navigationItems) {
|
|
@@ -876,7 +824,7 @@ const PostMainnavigation = class {
|
|
|
876
824
|
}
|
|
877
825
|
}
|
|
878
826
|
scrollLeft() {
|
|
879
|
-
const scrollLeftRightEdge =
|
|
827
|
+
const scrollLeftRightEdge = this.host.shadowRoot
|
|
880
828
|
.querySelector('.scroll-left')
|
|
881
829
|
.getBoundingClientRect().right;
|
|
882
830
|
for (const navigationItem of this.navigationItems.reverse()) {
|
|
@@ -902,17 +850,38 @@ const PostMainnavigation = class {
|
|
|
902
850
|
}, NAVBAR_DISABLE_DURATION);
|
|
903
851
|
}
|
|
904
852
|
render() {
|
|
905
|
-
return (h(Host, { key: '
|
|
853
|
+
return (h(Host, { key: '14ca9714f09e1dbbe8c976b8947db07906ec2eb8', version: version, class: this.canScroll ? 'scrollable' : '' }, h("div", { key: 'e886823d21e52db04afc91ecbd12149c47d69038', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, h("post-icon", { key: '3afd56232da3cf120038b68c714c560db16ac30e', "aria-hidden": "true", name: "chevronleft" })), h("nav", { key: '69c39d75c1f90f01c12904c98fc6e3f8de2ba09d', ref: el => (this.navbar = el), "aria-label": this.textMain }, h("slot", { key: '9251d7cec53c05bf9146d0b2c75533c50f7fe070' })), h("div", { key: '649e7ec3c9f65447a2da965bb7fe0c92b3ff8207', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, h("post-icon", { key: 'ac2823ab5195c59ea2831ffb24a1d8a033f7266a', "aria-hidden": "true", name: "chevronright" }))));
|
|
906
854
|
}
|
|
855
|
+
get host() { return getElement(this); }
|
|
856
|
+
static get watchers() { return {
|
|
857
|
+
"textMain": ["validateTextMain"]
|
|
858
|
+
}; }
|
|
907
859
|
};
|
|
908
860
|
PostMainnavigation.style = postMainnavigationCss;
|
|
909
861
|
|
|
910
|
-
const postMegadropdownCss = "
|
|
862
|
+
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}}";
|
|
911
863
|
|
|
912
864
|
const PostMegadropdown = class {
|
|
865
|
+
validateTextClose() {
|
|
866
|
+
checkRequiredAndType(this, 'textClose', 'string');
|
|
867
|
+
}
|
|
868
|
+
validateTextBack() {
|
|
869
|
+
checkRequiredAndType(this, 'textBack', 'string');
|
|
870
|
+
}
|
|
871
|
+
get megadropdownTrigger() {
|
|
872
|
+
const hostId = this.host.getAttribute('id');
|
|
873
|
+
return hostId ? document.querySelector(`post-megadropdown-trigger[for="${hostId}"]`) : null;
|
|
874
|
+
}
|
|
913
875
|
constructor(hostRef) {
|
|
914
876
|
registerInstance(this, hostRef);
|
|
915
877
|
this.postToggleMegadropdown = createEvent(this, "postToggleMegadropdown");
|
|
878
|
+
this.currentAnimation = null;
|
|
879
|
+
this.isAnimating = false;
|
|
880
|
+
this.fsAnimationOptions = {
|
|
881
|
+
translate: -10,
|
|
882
|
+
duration: 350,
|
|
883
|
+
easing: 'headerEase',
|
|
884
|
+
};
|
|
916
885
|
this.device = breakpoint.get('device');
|
|
917
886
|
/**
|
|
918
887
|
* Holds the current visibility state of the dropdown.
|
|
@@ -923,13 +892,17 @@ const PostMegadropdown = class {
|
|
|
923
892
|
this.trigger = false;
|
|
924
893
|
/** Holds the current animation class. */
|
|
925
894
|
this.animationClass = null;
|
|
926
|
-
this.handleClickOutside = (event) => {
|
|
895
|
+
this.handleClickOutside = async (event) => {
|
|
927
896
|
if (this.device !== 'desktop')
|
|
928
897
|
return;
|
|
929
898
|
const target = event.target;
|
|
930
899
|
if (this.host.contains(target)) {
|
|
931
900
|
return;
|
|
932
901
|
}
|
|
902
|
+
// Ignore clicks on the trigger or its contents to prevent running hide() twice
|
|
903
|
+
if (this.megadropdownTrigger.contains(target)) {
|
|
904
|
+
return;
|
|
905
|
+
}
|
|
933
906
|
if (target instanceof HTMLElement) {
|
|
934
907
|
const trigger = target.closest('post-megadropdown-trigger');
|
|
935
908
|
if (trigger) {
|
|
@@ -939,14 +912,11 @@ const PostMegadropdown = class {
|
|
|
939
912
|
}
|
|
940
913
|
}
|
|
941
914
|
}
|
|
942
|
-
this.hide(false);
|
|
915
|
+
await this.hide(false);
|
|
943
916
|
};
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
return hostId
|
|
948
|
-
? document.querySelector(`post-megadropdown-trigger[for="${hostId}"] > button`)
|
|
949
|
-
: null;
|
|
917
|
+
this.keyboardHandler = this.keyboardHandler.bind(this);
|
|
918
|
+
this.handleTabOutside = this.handleTabOutside.bind(this);
|
|
919
|
+
this.handleClickOutside = this.handleClickOutside.bind(this);
|
|
950
920
|
}
|
|
951
921
|
connectedCallback() {
|
|
952
922
|
window.addEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
|
|
@@ -955,16 +925,17 @@ const PostMegadropdown = class {
|
|
|
955
925
|
this.getFocusableElements();
|
|
956
926
|
}
|
|
957
927
|
componentDidLoad() {
|
|
928
|
+
this.validateTextClose();
|
|
929
|
+
this.validateTextBack();
|
|
958
930
|
this.checkInitialAriaCurrent();
|
|
959
931
|
this.setupObserver();
|
|
960
932
|
this.handleAriaCurrentChange([]);
|
|
961
933
|
}
|
|
962
934
|
disconnectedCallback() {
|
|
963
|
-
this.removeListeners();
|
|
964
935
|
window.removeEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
|
|
965
|
-
if (PostMegadropdown.activeDropdown === this)
|
|
936
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
966
937
|
PostMegadropdown.activeDropdown = null;
|
|
967
|
-
|
|
938
|
+
this.removeListeners();
|
|
968
939
|
if (this.defaultSlotObserver) {
|
|
969
940
|
this.defaultSlotObserver.disconnect();
|
|
970
941
|
}
|
|
@@ -973,41 +944,70 @@ const PostMegadropdown = class {
|
|
|
973
944
|
* Toggles the dropdown visibility based on its current state.
|
|
974
945
|
*/
|
|
975
946
|
async toggle() {
|
|
976
|
-
if (this.
|
|
977
|
-
this
|
|
978
|
-
|
|
979
|
-
else {
|
|
980
|
-
await this.show();
|
|
947
|
+
if (this.isAnimating) {
|
|
948
|
+
// If this is already animating towards a future state -> reverse intent
|
|
949
|
+
return this.isVisible ? this.show() : this.hide();
|
|
981
950
|
}
|
|
951
|
+
return this.isVisible ? this.hide() : this.show();
|
|
982
952
|
}
|
|
983
953
|
/**
|
|
984
954
|
* Displays the dropdown.
|
|
985
955
|
*/
|
|
986
956
|
async show() {
|
|
957
|
+
if (this.device !== 'desktop') {
|
|
958
|
+
const trigger = this.megadropdownTrigger;
|
|
959
|
+
if (trigger)
|
|
960
|
+
this.megadropdownTitle = trigger.innerHTML;
|
|
961
|
+
}
|
|
987
962
|
if (PostMegadropdown.activeDropdown && PostMegadropdown.activeDropdown !== this) {
|
|
988
963
|
// Close the previously active dropdown without animation
|
|
989
964
|
PostMegadropdown.activeDropdown.forceClose();
|
|
990
965
|
}
|
|
991
|
-
this.
|
|
966
|
+
this.cancelAnimation();
|
|
967
|
+
// Set the megadropdown visible and mark it as the active dropdown
|
|
992
968
|
this.isVisible = true;
|
|
993
969
|
PostMegadropdown.activeDropdown = this;
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
this.
|
|
970
|
+
// Update trigger state
|
|
971
|
+
this.postToggleMegadropdown.emit({ isVisible: true });
|
|
972
|
+
try {
|
|
973
|
+
await this.animate('in');
|
|
974
|
+
this.focusFirst();
|
|
975
|
+
// After the megadropdown has finished entry animation
|
|
976
|
+
this.addListeners();
|
|
977
|
+
}
|
|
978
|
+
catch {
|
|
979
|
+
// Open animation was cancelled - reset state
|
|
980
|
+
this.removeListeners();
|
|
981
|
+
this.isVisible = false;
|
|
982
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
983
|
+
PostMegadropdown.activeDropdown = null;
|
|
984
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: true });
|
|
998
985
|
}
|
|
999
|
-
this.addListeners();
|
|
1000
986
|
}
|
|
1001
987
|
/**
|
|
1002
988
|
* Hides the dropdown with an animation.
|
|
1003
989
|
*/
|
|
1004
990
|
async hide(focusParent = true, forceClose = false) {
|
|
1005
|
-
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
|
|
1006
991
|
if (forceClose) {
|
|
1007
992
|
this.forceClose();
|
|
993
|
+
return;
|
|
1008
994
|
}
|
|
1009
|
-
|
|
1010
|
-
|
|
995
|
+
// Update trigger state
|
|
996
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
|
|
997
|
+
try {
|
|
998
|
+
await this.animate('out');
|
|
999
|
+
// After the closing animation finishes set the megadropdown as non visible
|
|
1000
|
+
this.isVisible = false;
|
|
1001
|
+
this.removeListeners();
|
|
1002
|
+
if (PostMegadropdown.activeDropdown === this)
|
|
1003
|
+
PostMegadropdown.activeDropdown = null;
|
|
1004
|
+
}
|
|
1005
|
+
catch {
|
|
1006
|
+
// Closing animation was cancelled - reset state
|
|
1007
|
+
PostMegadropdown.activeDropdown = this;
|
|
1008
|
+
this.addListeners();
|
|
1009
|
+
this.isVisible = true;
|
|
1010
|
+
this.postToggleMegadropdown.emit({ isVisible: true, focusParent: false });
|
|
1011
1011
|
}
|
|
1012
1012
|
}
|
|
1013
1013
|
/**
|
|
@@ -1016,63 +1016,74 @@ const PostMegadropdown = class {
|
|
|
1016
1016
|
async focusFirst() {
|
|
1017
1017
|
this.firstFocusableEl?.focus();
|
|
1018
1018
|
}
|
|
1019
|
-
breakpointChange(e) {
|
|
1020
|
-
this.device = e.detail;
|
|
1021
|
-
if (this.device === 'desktop' && this.isVisible) {
|
|
1022
|
-
this.animationClass = null;
|
|
1023
|
-
}
|
|
1024
|
-
}
|
|
1025
1019
|
/**
|
|
1026
1020
|
* Forces the dropdown to close without animation.
|
|
1027
1021
|
*/
|
|
1028
1022
|
forceClose() {
|
|
1029
|
-
this.isVisible = false;
|
|
1030
|
-
this.animationClass = null;
|
|
1031
|
-
this.postToggleMegadropdown.emit({ isVisible: this.isVisible, focusParent: false });
|
|
1032
1023
|
this.removeListeners();
|
|
1024
|
+
this.postToggleMegadropdown.emit({ isVisible: false, focusParent: false });
|
|
1025
|
+
this.isVisible = false;
|
|
1033
1026
|
}
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
this.
|
|
1038
|
-
PostMegadropdown.activeDropdown = null;
|
|
1039
|
-
this.removeListeners();
|
|
1027
|
+
// Run the respective animation
|
|
1028
|
+
createAnimation(direction) {
|
|
1029
|
+
if (this.device === 'desktop') {
|
|
1030
|
+
return fadeSlide(this.animatedContainer, direction, this.fsAnimationOptions);
|
|
1040
1031
|
}
|
|
1032
|
+
return slide(this.animatedContainer, direction, {
|
|
1033
|
+
translate: 100,
|
|
1034
|
+
duration: 350,
|
|
1035
|
+
easing: direction === 'in' ? 'ease-in' : 'ease-out',
|
|
1036
|
+
});
|
|
1037
|
+
}
|
|
1038
|
+
async animate(direction) {
|
|
1039
|
+
this.cancelAnimation();
|
|
1040
|
+
this.currentAnimation = this.createAnimation(direction);
|
|
1041
|
+
// Flag isAnimating used to avoid toggle() de-sync
|
|
1042
|
+
this.isAnimating = true;
|
|
1043
|
+
await this.currentAnimation.finished;
|
|
1044
|
+
this.isAnimating = false;
|
|
1045
|
+
this.currentAnimation = null;
|
|
1046
|
+
}
|
|
1047
|
+
cancelAnimation() {
|
|
1048
|
+
this.currentAnimation?.cancel();
|
|
1049
|
+
this.currentAnimation = null;
|
|
1050
|
+
}
|
|
1051
|
+
breakpointChange(e) {
|
|
1052
|
+
this.device = e.detail;
|
|
1053
|
+
this.cancelAnimation();
|
|
1041
1054
|
}
|
|
1042
1055
|
addListeners() {
|
|
1043
|
-
this.host.addEventListener('keydown',
|
|
1044
|
-
document.addEventListener('keyup',
|
|
1056
|
+
this.host.addEventListener('keydown', this.keyboardHandler);
|
|
1057
|
+
document.addEventListener('keyup', this.handleTabOutside);
|
|
1045
1058
|
document.addEventListener('mousedown', this.handleClickOutside);
|
|
1046
1059
|
}
|
|
1047
1060
|
removeListeners() {
|
|
1048
|
-
this.host.removeEventListener('keydown',
|
|
1049
|
-
document.removeEventListener('keyup',
|
|
1061
|
+
this.host.removeEventListener('keydown', this.keyboardHandler);
|
|
1062
|
+
document.removeEventListener('keyup', this.handleTabOutside);
|
|
1050
1063
|
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
1051
1064
|
}
|
|
1052
1065
|
getFocusableElements() {
|
|
1053
|
-
const
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
}
|
|
1060
|
-
this.firstFocusableEl = focusableChildren[0];
|
|
1061
|
-
this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
|
|
1066
|
+
const focusableElements = [
|
|
1067
|
+
...getFocusableChildren(this.host),
|
|
1068
|
+
...getFocusableChildren(this.host.shadowRoot),
|
|
1069
|
+
];
|
|
1070
|
+
this.firstFocusableEl = focusableElements[0];
|
|
1071
|
+
this.lastFocusableEl = focusableElements[focusableElements.length - 1];
|
|
1062
1072
|
}
|
|
1063
1073
|
// Loop through the focusable children
|
|
1064
1074
|
keyboardHandler(e) {
|
|
1065
|
-
if (e.key
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1075
|
+
if (e.key !== 'Tab' || this.device === 'desktop')
|
|
1076
|
+
return;
|
|
1077
|
+
const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
|
|
1078
|
+
if (e.shiftKey && activeElement === this.firstFocusableEl) {
|
|
1079
|
+
// If back tab (TAB + Shift) and first element is focused, focus goes to the last element of the megadropdown
|
|
1080
|
+
e.preventDefault();
|
|
1081
|
+
this.lastFocusableEl.focus();
|
|
1082
|
+
}
|
|
1083
|
+
else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
|
|
1084
|
+
// If TAB and last element is focused, focus goes back to the first element of the megadropdown
|
|
1085
|
+
e.preventDefault();
|
|
1086
|
+
this.firstFocusableEl.focus();
|
|
1076
1087
|
}
|
|
1077
1088
|
}
|
|
1078
1089
|
handleTabOutside(e) {
|
|
@@ -1103,14 +1114,8 @@ const PostMegadropdown = class {
|
|
|
1103
1114
|
*/
|
|
1104
1115
|
setTriggerActive(isActive) {
|
|
1105
1116
|
const trigger = this.megadropdownTrigger;
|
|
1106
|
-
if (
|
|
1107
|
-
|
|
1108
|
-
if (isActive) {
|
|
1109
|
-
trigger.classList.add('active');
|
|
1110
|
-
}
|
|
1111
|
-
else {
|
|
1112
|
-
trigger.classList.remove('active');
|
|
1113
|
-
}
|
|
1117
|
+
if (trigger)
|
|
1118
|
+
trigger.setAttribute('active', isActive.toString());
|
|
1114
1119
|
}
|
|
1115
1120
|
/**
|
|
1116
1121
|
* Updates the megadropdown trigger state when the megadropdown content changes.
|
|
@@ -1134,15 +1139,19 @@ const PostMegadropdown = class {
|
|
|
1134
1139
|
}
|
|
1135
1140
|
render() {
|
|
1136
1141
|
const containerStyle = this.isVisible ? {} : { display: 'none' };
|
|
1137
|
-
return (h(Host, { key: '
|
|
1142
|
+
return (h(Host, { key: 'f099891f24c60ca48ddceeadf754debdf3d8bff1', version: version }, h("div", { key: 'd964a72ec31632a6061f8c656fcc171bc584b764', ref: el => (this.animatedContainer = el), class: "megadropdown", style: containerStyle }, this.device !== 'desktop' && this.megadropdownTitle && (h("p", { key: 'b04d8fb83e5658365a1d722572d82237a7bf4eba', class: "megadropdown-title" }, this.megadropdownTitle)), h("div", { key: 'b7e654a69375c4e8f3af2e8ff65f0a5b7b2ee2cd', class: "megadropdown-content" }, h("slot", { key: '9608aa8b0d9458b593917e66e3fd4db9c447cac2' })), this.device === 'desktop' ? (h("post-closebutton", { onClick: () => this.hide(true), class: "close-button" }, this.textClose)) : (h("button", { onClick: () => this.hide(true), class: "back-button" }, h("post-icon", { name: "arrowleft" }), this.textBack)))));
|
|
1138
1143
|
}
|
|
1139
1144
|
get host() { return getElement(this); }
|
|
1145
|
+
static get watchers() { return {
|
|
1146
|
+
"textClose": ["validateTextClose"],
|
|
1147
|
+
"textBack": ["validateTextBack"]
|
|
1148
|
+
}; }
|
|
1140
1149
|
};
|
|
1141
1150
|
/** Tracks the currently active dropdown instance. */
|
|
1142
1151
|
PostMegadropdown.activeDropdown = null;
|
|
1143
1152
|
PostMegadropdown.style = postMegadropdownCss;
|
|
1144
1153
|
|
|
1145
|
-
const postMegadropdownTriggerCss = "post-
|
|
1154
|
+
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}}";
|
|
1146
1155
|
|
|
1147
1156
|
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1148
1157
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1155,101 +1164,85 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1155
1164
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1156
1165
|
};
|
|
1157
1166
|
const PostMegadropdownTrigger = class {
|
|
1167
|
+
validateFor() {
|
|
1168
|
+
checkRequiredAndType(this, 'for', 'string');
|
|
1169
|
+
}
|
|
1158
1170
|
constructor(hostRef) {
|
|
1159
1171
|
registerInstance(this, hostRef);
|
|
1172
|
+
this.mutationObserver = new MutationObserver(this.cloneSlottedButton.bind(this));
|
|
1173
|
+
this.isMegadropdownExpanded = false;
|
|
1174
|
+
this.slottedContent = null;
|
|
1160
1175
|
/**
|
|
1161
|
-
*
|
|
1176
|
+
* Sets the trigger state to be active or inactive.
|
|
1162
1177
|
*/
|
|
1163
|
-
this.
|
|
1164
|
-
|
|
1165
|
-
* Reference to the slotted button within the trigger, if present.
|
|
1166
|
-
* Used to manage click and key events for mega dropdown control.
|
|
1167
|
-
*/
|
|
1168
|
-
this.slottedButton = null;
|
|
1169
|
-
/**
|
|
1170
|
-
* Tracks whether this trigger's dropdown was expanded before a state change.
|
|
1171
|
-
* Used to determine if this trigger should handle focus when its dropdown closes.
|
|
1172
|
-
*/
|
|
1173
|
-
this.wasExpanded = false;
|
|
1174
|
-
this.handleKeyDown = (event) => {
|
|
1175
|
-
if (event.key === 'Enter' || event.key === ' ') {
|
|
1176
|
-
event.preventDefault();
|
|
1177
|
-
this.handleToggle();
|
|
1178
|
-
if (this.megadropdown && !this.ariaExpanded) {
|
|
1179
|
-
setTimeout(() => this.megadropdown.focusFirst(), 100);
|
|
1180
|
-
}
|
|
1181
|
-
}
|
|
1182
|
-
};
|
|
1183
|
-
this.handleToggleMegadropdown = (event) => {
|
|
1184
|
-
if (event.target.id === this.for) {
|
|
1185
|
-
this.ariaExpanded = event.detail.isVisible;
|
|
1186
|
-
// Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
|
|
1187
|
-
if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
|
|
1188
|
-
setTimeout(() => {
|
|
1189
|
-
this.slottedButton?.focus();
|
|
1190
|
-
}, 100);
|
|
1191
|
-
}
|
|
1192
|
-
this.wasExpanded = this.ariaExpanded;
|
|
1193
|
-
if (this.slottedButton) {
|
|
1194
|
-
this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
|
|
1195
|
-
}
|
|
1196
|
-
}
|
|
1197
|
-
};
|
|
1178
|
+
this.active = false;
|
|
1179
|
+
this.onMegadropdownToggled = this.onMegadropdownToggled.bind(this);
|
|
1198
1180
|
}
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1181
|
+
connectedCallback() {
|
|
1182
|
+
this.mutationObserver.observe(this.host, { childList: true, subtree: true });
|
|
1183
|
+
}
|
|
1184
|
+
componentWillLoad() {
|
|
1185
|
+
this.cloneSlottedButton();
|
|
1186
|
+
}
|
|
1187
|
+
componentDidLoad() {
|
|
1188
|
+
this.validateFor();
|
|
1189
|
+
// Check if the mega dropdown attached to the trigger is expanded or not
|
|
1190
|
+
if (IS_BROWSER)
|
|
1191
|
+
document.addEventListener('postToggleMegadropdown', this.onMegadropdownToggled);
|
|
1192
|
+
}
|
|
1193
|
+
disconnectedCallback() {
|
|
1194
|
+
document.removeEventListener('postToggleMegadropdown', this.onMegadropdownToggled);
|
|
1195
|
+
}
|
|
1196
|
+
cloneSlottedButton() {
|
|
1197
|
+
this.slottedContent = this.host.innerHTML;
|
|
1205
1198
|
}
|
|
1206
1199
|
get megadropdown() {
|
|
1207
1200
|
const ref = document.getElementById(this.for);
|
|
1208
|
-
|
|
1209
|
-
? ref
|
|
1210
|
-
: null;
|
|
1211
|
-
}
|
|
1212
|
-
handleToggle() {
|
|
1213
|
-
if (this.megadropdown) {
|
|
1214
|
-
this.megadropdown.toggle();
|
|
1215
|
-
}
|
|
1216
|
-
else {
|
|
1201
|
+
if (ref?.localName !== 'post-megadropdown') {
|
|
1217
1202
|
console.warn(`No post-megadropdown found with ID: ${this.for}`);
|
|
1203
|
+
return null;
|
|
1218
1204
|
}
|
|
1205
|
+
return ref;
|
|
1219
1206
|
}
|
|
1220
|
-
|
|
1221
|
-
this.
|
|
1222
|
-
// Check if the mega dropdown attached to the trigger is expanded or not
|
|
1223
|
-
document.addEventListener('postToggleMegadropdown', this.handleToggleMegadropdown);
|
|
1224
|
-
this.slottedButton = this.host.querySelector('button');
|
|
1225
|
-
if (this.slottedButton) {
|
|
1226
|
-
this.slottedButton.setAttribute('aria-haspopup', 'menu');
|
|
1227
|
-
this.slottedButton.addEventListener('click', () => {
|
|
1228
|
-
this.handleToggle();
|
|
1229
|
-
});
|
|
1230
|
-
this.slottedButton.addEventListener('keydown', this.handleKeyDown);
|
|
1231
|
-
}
|
|
1232
|
-
else {
|
|
1233
|
-
console.warn('No button found within post-megadropdown-trigger');
|
|
1234
|
-
}
|
|
1207
|
+
onClick() {
|
|
1208
|
+
this.megadropdown?.toggle();
|
|
1235
1209
|
}
|
|
1236
|
-
|
|
1237
|
-
|
|
1210
|
+
onKeyDown(event) {
|
|
1211
|
+
if (event.key !== 'Enter' && event.key !== ' ')
|
|
1212
|
+
return;
|
|
1213
|
+
const megadropdown = this.megadropdown;
|
|
1214
|
+
if (!megadropdown)
|
|
1215
|
+
return;
|
|
1216
|
+
event.preventDefault();
|
|
1217
|
+
this.megadropdown.toggle();
|
|
1218
|
+
}
|
|
1219
|
+
onMegadropdownToggled(event) {
|
|
1220
|
+
if (event.target.id === this.for) {
|
|
1221
|
+
const wasMegadropdownExpanded = this.isMegadropdownExpanded;
|
|
1222
|
+
this.isMegadropdownExpanded = event.detail.isVisible;
|
|
1223
|
+
const haveBeenClosed = wasMegadropdownExpanded && !this.isMegadropdownExpanded;
|
|
1224
|
+
if (!haveBeenClosed || !event.detail.focusParent)
|
|
1225
|
+
return;
|
|
1226
|
+
// Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
|
|
1227
|
+
setTimeout(() => {
|
|
1228
|
+
this.interactiveButton.focus();
|
|
1229
|
+
}, 100);
|
|
1230
|
+
}
|
|
1238
1231
|
}
|
|
1239
1232
|
render() {
|
|
1240
|
-
return (h(Host, { key: '
|
|
1233
|
+
return (h(Host, { key: '73479c3c80cda63b9f82ec584c962ffa53b7b85c', "data-version": version }, 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 } }, h("span", { key: 'a60b5838443ccd75fc08e07f791cb4ef088343f3' }, h("span", { key: 'da180bb66704712c0cba7b575ba260765a0df36f' }, h("slot", { key: 'c27dbc706a82fc49acb3414855e0e57d1dac0923' })), h("span", { key: '87ebe5fdcba5a160b2698965284fc5ce66d0fa90', "aria-hidden": "true", innerHTML: this.slottedContent })), h("post-icon", { key: '76f620188ebc3ad60b04523ea70ee4f3b642a2e8', name: "chevrondown" }))));
|
|
1241
1234
|
}
|
|
1242
1235
|
get host() { return getElement(this); }
|
|
1243
1236
|
static get watchers() { return {
|
|
1244
|
-
"for": ["
|
|
1237
|
+
"for": ["validateFor"]
|
|
1245
1238
|
}; }
|
|
1246
1239
|
};
|
|
1247
1240
|
__decorate$1([
|
|
1248
1241
|
EventFrom('post-megadropdown', { ignoreNestedComponents: false })
|
|
1249
|
-
], PostMegadropdownTrigger.prototype, "
|
|
1242
|
+
], PostMegadropdownTrigger.prototype, "onMegadropdownToggled", null);
|
|
1250
1243
|
PostMegadropdownTrigger.style = postMegadropdownTriggerCss;
|
|
1251
1244
|
|
|
1252
|
-
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}}";
|
|
1245
|
+
const postMenuCss = ":host{display:block}:where([part=post-menu]){display:flex;flex-direction:column;padding-block:.5rem}::slotted([slot=header]){margin-top:-0.5rem;padding:1rem;display:flex;align-items:center;gap:.5rem;border-block-end:1px solid #050400;font-weight:700}@media screen and (max-width: 1023.98px){::slotted([slot=header]){padding:.75rem 1rem}}@media screen and (max-width: 779.98px){::slotted([slot=header]){padding:.5rem 1rem}}";
|
|
1253
1246
|
|
|
1254
1247
|
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1255
1248
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1298,35 +1291,6 @@ const PostMenu = class {
|
|
|
1298
1291
|
this.controlKeyDownHandler(e);
|
|
1299
1292
|
}
|
|
1300
1293
|
};
|
|
1301
|
-
this.handlePostShown = (event) => {
|
|
1302
|
-
// Only for the first open
|
|
1303
|
-
if (event.detail.first) {
|
|
1304
|
-
// Add "menu" and "menuitem" aria roles and aria-label
|
|
1305
|
-
this.host.setAttribute('role', 'menu');
|
|
1306
|
-
const menuItems = this.getSlottedItems();
|
|
1307
|
-
for (const item of menuItems) {
|
|
1308
|
-
item.setAttribute('role', 'menuitem');
|
|
1309
|
-
}
|
|
1310
|
-
if (this.label)
|
|
1311
|
-
this.host.setAttribute('aria-label', this.label);
|
|
1312
|
-
}
|
|
1313
|
-
};
|
|
1314
|
-
this.handlePostToggled = (event) => {
|
|
1315
|
-
this.isVisible = event.detail.isOpen;
|
|
1316
|
-
this.toggleMenu.emit(this.isVisible);
|
|
1317
|
-
if (this.isVisible) {
|
|
1318
|
-
this.lastFocusedElement = this.root?.activeElement;
|
|
1319
|
-
requestAnimationFrame(() => {
|
|
1320
|
-
const menuItems = this.getSlottedItems();
|
|
1321
|
-
if (menuItems.length > 0) {
|
|
1322
|
-
menuItems[0].focus();
|
|
1323
|
-
}
|
|
1324
|
-
});
|
|
1325
|
-
}
|
|
1326
|
-
else if (this.lastFocusedElement) {
|
|
1327
|
-
this.lastFocusedElement.focus();
|
|
1328
|
-
}
|
|
1329
|
-
};
|
|
1330
1294
|
this.handleClick = (e) => {
|
|
1331
1295
|
const target = e.target;
|
|
1332
1296
|
if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
|
|
@@ -1388,6 +1352,35 @@ const PostMenu = class {
|
|
|
1388
1352
|
console.error('hide: popoverRef is null or undefined');
|
|
1389
1353
|
}
|
|
1390
1354
|
}
|
|
1355
|
+
handlePostShown(event) {
|
|
1356
|
+
// Only for the first open
|
|
1357
|
+
if (event.detail.first) {
|
|
1358
|
+
// Add "menu" and "menuitem" aria roles and aria-label
|
|
1359
|
+
this.host.setAttribute('role', 'menu');
|
|
1360
|
+
const menuItems = this.getSlottedItems();
|
|
1361
|
+
for (const item of menuItems) {
|
|
1362
|
+
item.setAttribute('role', 'menuitem');
|
|
1363
|
+
}
|
|
1364
|
+
if (this.label)
|
|
1365
|
+
this.host.setAttribute('aria-label', this.label);
|
|
1366
|
+
}
|
|
1367
|
+
}
|
|
1368
|
+
handlePostToggled(event) {
|
|
1369
|
+
this.isVisible = event.detail.isOpen;
|
|
1370
|
+
this.toggleMenu.emit(this.isVisible);
|
|
1371
|
+
if (this.isVisible) {
|
|
1372
|
+
this.lastFocusedElement = this.root?.activeElement;
|
|
1373
|
+
requestAnimationFrame(() => {
|
|
1374
|
+
const menuItems = this.getSlottedItems();
|
|
1375
|
+
if (menuItems.length > 0) {
|
|
1376
|
+
menuItems[0].focus();
|
|
1377
|
+
}
|
|
1378
|
+
});
|
|
1379
|
+
}
|
|
1380
|
+
else if (this.lastFocusedElement) {
|
|
1381
|
+
this.lastFocusedElement.focus();
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1391
1384
|
controlKeyDownHandler(e) {
|
|
1392
1385
|
const menuItems = this.getSlottedItems();
|
|
1393
1386
|
if (!menuItems.length) {
|
|
@@ -1435,7 +1428,7 @@ const PostMenu = class {
|
|
|
1435
1428
|
.flatMap(el => Array.from(getFocusableChildren(el))));
|
|
1436
1429
|
}
|
|
1437
1430
|
render() {
|
|
1438
|
-
return (h(Host, { key: '
|
|
1431
|
+
return (h(Host, { key: '08285b17608e5bc3133a3da6015a5a0d4de6ec29', "data-version": version }, h("post-popovercontainer", { key: '17e45869b5e76cdd9bd43ca77b2f0b3876462014', onPostShow: this.handlePostShown.bind(this), onPostToggle: this.handlePostToggled.bind(this), placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: 'e2486aa099ffc8ac59885a0971ebb13649a49a35', part: "post-menu" }, h("slot", { key: '9f0e05f211fe18cf5beed8e1b33bde26d4974e24', name: "header" }), h("slot", { key: '971ac8ad433467a2ebe2429574cb10dbdadbcf25' })))));
|
|
1439
1432
|
}
|
|
1440
1433
|
get host() { return getElement(this); }
|
|
1441
1434
|
static get watchers() { return {
|
|
@@ -1445,10 +1438,10 @@ const PostMenu = class {
|
|
|
1445
1438
|
};
|
|
1446
1439
|
__decorate([
|
|
1447
1440
|
EventFrom('post-popovercontainer')
|
|
1448
|
-
], PostMenu.prototype, "handlePostShown",
|
|
1441
|
+
], PostMenu.prototype, "handlePostShown", null);
|
|
1449
1442
|
__decorate([
|
|
1450
1443
|
EventFrom('post-popovercontainer')
|
|
1451
|
-
], PostMenu.prototype, "handlePostToggled",
|
|
1444
|
+
], PostMenu.prototype, "handlePostToggled", null);
|
|
1452
1445
|
PostMenu.style = postMenuCss;
|
|
1453
1446
|
|
|
1454
1447
|
const postMenuTriggerCss = ":host{display:inline-block}";
|
|
@@ -1526,7 +1519,7 @@ const PostMenuTrigger = class {
|
|
|
1526
1519
|
}
|
|
1527
1520
|
}
|
|
1528
1521
|
render() {
|
|
1529
|
-
return (h(Host, { key: '
|
|
1522
|
+
return (h(Host, { key: '3ef7e372c9c655bf1da5d5a7d4bca6925a010f65', "data-version": version, "tab-index": "-1" }, h("slot", { key: '771db943ad5aa639c325f055ba6f9d763bf4256d' })));
|
|
1530
1523
|
}
|
|
1531
1524
|
get host() { return getElement(this); }
|
|
1532
1525
|
static get watchers() { return {
|
|
@@ -4256,7 +4249,7 @@ function popIn(el) {
|
|
|
4256
4249
|
});
|
|
4257
4250
|
}
|
|
4258
4251
|
|
|
4259
|
-
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-
|
|
4252
|
+
const postPopovercontainerCss = "@layer polyfill{@supports not selector(:popover-open){[popover]:not(.\\:popover-open){display:none}}}:where(post-popovercontainer){background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:where(post-popovercontainer)>div{box-shadow:var(--post-device-elevation-300);width:max-content;max-width:100%;color:var(--post-current-fg);background-color:var(--post-current-bg);border-radius:4px}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:where(post-popovercontainer)>div{border:2px solid rgba(0,0,0,0)}}:where(post-popovercontainer)[tooltip]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:where(post-popovercontainer)[safe-space]::after{content:\"\";position:fixed;inset:0;z-index:-1;pointer-events:auto}:where(post-popovercontainer)[safe-space=triangle]::after{clip-path:polygon(var(--post-safe-space-cursor-x, 0) var(--post-safe-space-cursor-y, 0), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)))}:where(post-popovercontainer)[safe-space=trapezoid]::after{clip-path:polygon(var(--post-safe-space-trigger-x-start, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-start, 0)), var(--post-safe-space-trigger-x-end, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-end, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)))}:where(post-popovercontainer):not(:has(.arrow))>div{box-shadow:var(--post-device-elevation-300)}:where(post-popovercontainer):has(.arrow)>div{filter:drop-shadow(1px 2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(2px 4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(4px 8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.top)>div{filter:drop-shadow(0px -2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(0px -4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(0px -8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.left)>div{filter:drop-shadow(-2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(-4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(-8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.right)>div{filter:drop-shadow(2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer) .arrow{--arrow-size: 0.5825rem;position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:where(post-popovercontainer) .arrow[dynamic-placement=top]{border-bottom-right-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=right]{border-bottom-left-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=bottom]{border-top-left-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=left]{border-top-right-radius:2px}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:where(post-popovercontainer) .arrow[dynamic-placement=top]{border-block-end:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);bottom:-0.3796735336rem !important}:where(post-popovercontainer) .arrow[dynamic-placement=left]{border-block-start:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);right:-0.3796735336rem !important}:where(post-popovercontainer) .arrow[dynamic-placement=right]{border-block-end:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);left:-0.3796735336rem !important}:where(post-popovercontainer) .arrow[dynamic-placement=bottom]{border-block-start:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);top:-0.3796735336rem !important}}";
|
|
4260
4253
|
|
|
4261
4254
|
const PostPopovercontainer = class {
|
|
4262
4255
|
constructor(hostRef) {
|
|
@@ -4285,10 +4278,6 @@ const PostPopovercontainer = class {
|
|
|
4285
4278
|
* Whether or not to display a little pointer arrow
|
|
4286
4279
|
*/
|
|
4287
4280
|
this.arrow = false;
|
|
4288
|
-
/**
|
|
4289
|
-
* Whether or not the popovercontainer should close when user clicks outside of it
|
|
4290
|
-
*/
|
|
4291
|
-
this.manualClose = false;
|
|
4292
4281
|
this.currentAnimation = null;
|
|
4293
4282
|
}
|
|
4294
4283
|
validatePlacement() {
|
|
@@ -4334,10 +4323,35 @@ const PostPopovercontainer = class {
|
|
|
4334
4323
|
this.calculatePosition();
|
|
4335
4324
|
this.host.showPopover();
|
|
4336
4325
|
}
|
|
4326
|
+
/**
|
|
4327
|
+
* Programmatically hide the popovercontainer
|
|
4328
|
+
*/
|
|
4329
|
+
async hide() {
|
|
4330
|
+
if (!this.toggleTimeoutId) {
|
|
4331
|
+
this.eventTarget = null;
|
|
4332
|
+
this.host.hidePopover();
|
|
4333
|
+
this.postHide.emit();
|
|
4334
|
+
}
|
|
4335
|
+
}
|
|
4336
|
+
/**
|
|
4337
|
+
* Toggle popovercontainer display
|
|
4338
|
+
* @param target A focusable element inside the <post-popover-trigger> component that controls the popover
|
|
4339
|
+
* @param force Pass true to always show or false to always hide
|
|
4340
|
+
*/
|
|
4341
|
+
async toggle(target, force) {
|
|
4342
|
+
this.eventTarget = target;
|
|
4343
|
+
// Prevent instant double toggle
|
|
4344
|
+
if (!this.toggleTimeoutId) {
|
|
4345
|
+
this.calculatePosition();
|
|
4346
|
+
this.host.togglePopover(force);
|
|
4347
|
+
this.toggleTimeoutId = null;
|
|
4348
|
+
}
|
|
4349
|
+
return this.host.matches(':where(:popover-open, .popover-open)');
|
|
4350
|
+
}
|
|
4337
4351
|
/**
|
|
4338
4352
|
* Handles the popover opening process and emits related events.
|
|
4339
4353
|
*/
|
|
4340
|
-
|
|
4354
|
+
open() {
|
|
4341
4355
|
const content = this.host.querySelector('.popover-content');
|
|
4342
4356
|
this.startAutoupdates();
|
|
4343
4357
|
if (content) {
|
|
@@ -4362,7 +4376,7 @@ const PostPopovercontainer = class {
|
|
|
4362
4376
|
/**
|
|
4363
4377
|
* Handles the popover closing process and emits related events.
|
|
4364
4378
|
*/
|
|
4365
|
-
|
|
4379
|
+
close() {
|
|
4366
4380
|
if (typeof this.clearAutoUpdate === 'function') {
|
|
4367
4381
|
this.clearAutoUpdate();
|
|
4368
4382
|
}
|
|
@@ -4408,31 +4422,6 @@ const PostPopovercontainer = class {
|
|
|
4408
4422
|
}
|
|
4409
4423
|
}
|
|
4410
4424
|
}
|
|
4411
|
-
/**
|
|
4412
|
-
* Programmatically hide the popovercontainer
|
|
4413
|
-
*/
|
|
4414
|
-
async hide() {
|
|
4415
|
-
if (!this.toggleTimeoutId) {
|
|
4416
|
-
this.eventTarget = null;
|
|
4417
|
-
this.host.hidePopover();
|
|
4418
|
-
this.postHide.emit();
|
|
4419
|
-
}
|
|
4420
|
-
}
|
|
4421
|
-
/**
|
|
4422
|
-
* Toggle popovercontainer display
|
|
4423
|
-
* @param target A focusable element inside the <post-popover-trigger> component that controls the popover
|
|
4424
|
-
* @param force Pass true to always show or false to always hide
|
|
4425
|
-
*/
|
|
4426
|
-
async toggle(target, force) {
|
|
4427
|
-
this.eventTarget = target;
|
|
4428
|
-
// Prevent instant double toggle
|
|
4429
|
-
if (!this.toggleTimeoutId) {
|
|
4430
|
-
this.calculatePosition();
|
|
4431
|
-
this.host.togglePopover(force);
|
|
4432
|
-
this.toggleTimeoutId = null;
|
|
4433
|
-
}
|
|
4434
|
-
return this.host.matches(':where(:popover-open, .popover-open)');
|
|
4435
|
-
}
|
|
4436
4425
|
/**
|
|
4437
4426
|
* Start or stop auto updates based on popovercontainer events.
|
|
4438
4427
|
* Popovercontainers can be closed or opened with other methods than class members,
|
|
@@ -4466,6 +4455,7 @@ const PostPopovercontainer = class {
|
|
|
4466
4455
|
async calculatePosition() {
|
|
4467
4456
|
const { x, y, middlewareData, placement } = await this.computeMainPosition();
|
|
4468
4457
|
const currentPlacement = placement.split('-')[0];
|
|
4458
|
+
this.dynamicPlacement = currentPlacement;
|
|
4469
4459
|
// Position popover
|
|
4470
4460
|
this.host.style.left = `${x}px`;
|
|
4471
4461
|
this.host.style.top = `${y}px`;
|
|
@@ -4473,11 +4463,20 @@ const PostPopovercontainer = class {
|
|
|
4473
4463
|
if (this.arrow && middlewareData.arrow) {
|
|
4474
4464
|
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
4475
4465
|
const staticSide = PostPopovercontainer.STATIC_SIDES[currentPlacement];
|
|
4466
|
+
const rootFontSize = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
4467
|
+
// Calculate dynamically the half side which provides the static side offset
|
|
4468
|
+
const arrowSizeValue = getComputedStyle(this.arrowRef)
|
|
4469
|
+
.getPropertyValue('--arrow-size')
|
|
4470
|
+
.trim();
|
|
4471
|
+
const arrowSizePx = arrowSizeValue.endsWith('rem')
|
|
4472
|
+
? Number.parseFloat(arrowSizeValue) * rootFontSize
|
|
4473
|
+
: Number.parseFloat(arrowSizeValue);
|
|
4474
|
+
const halfSide = -0.5 * arrowSizePx;
|
|
4476
4475
|
if (staticSide) {
|
|
4477
4476
|
Object.assign(this.arrowRef.style, {
|
|
4478
4477
|
left: arrowX ? `${arrowX}px` : '',
|
|
4479
4478
|
top: arrowY ? `${arrowY}px` : '',
|
|
4480
|
-
[staticSide]:
|
|
4479
|
+
[staticSide]: `${halfSide}px`,
|
|
4481
4480
|
});
|
|
4482
4481
|
}
|
|
4483
4482
|
}
|
|
@@ -4578,9 +4577,9 @@ const PostPopovercontainer = class {
|
|
|
4578
4577
|
}
|
|
4579
4578
|
}
|
|
4580
4579
|
render() {
|
|
4581
|
-
return (h(Host, { key: '
|
|
4580
|
+
return (h(Host, { key: '0aaf70cb284e7227149f2e500aa7c72cab69d90a', "data-version": version, popover: "auto" }, h("div", { key: '9762887bdddca93acc6dfda715f2f41f4f6c98d6', class: "popover-content" }, this.arrow && (h("span", { key: 'e77f16be0b3b0cdb02886ea928aa6986d3f477e3', "dynamic-placement": this.dynamicPlacement, class: "arrow", ref: el => {
|
|
4582
4581
|
this.arrowRef = el;
|
|
4583
|
-
} })), h("slot", { key: '
|
|
4582
|
+
} })), h("slot", { key: 'e8737e5acec3a20d258d462a7d82278d303ba353' }))));
|
|
4584
4583
|
}
|
|
4585
4584
|
get host() { return getElement(this); }
|
|
4586
4585
|
static get watchers() { return {
|
|
@@ -4637,10 +4636,10 @@ const PostTogglebutton = class {
|
|
|
4637
4636
|
this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
|
|
4638
4637
|
}
|
|
4639
4638
|
render() {
|
|
4640
|
-
return (h(Host, { key: '
|
|
4639
|
+
return (h(Host, { key: 'a526ab3b0ae14c93bb4e1a8dc6d3ded4ff1bf014', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: 'e8a5bdd99d9270cfcf014306a8d7fe8a2b6b79ba' })));
|
|
4641
4640
|
}
|
|
4642
4641
|
get host() { return getElement(this); }
|
|
4643
4642
|
};
|
|
4644
4643
|
PostTogglebutton.style = postTogglebuttonCss;
|
|
4645
4644
|
|
|
4646
|
-
export { PostClosebutton as post_closebutton, PostHeader as post_header, PostIcon as post_icon,
|
|
4645
|
+
export { PostClosebutton as post_closebutton, PostHeader as post_header, PostIcon as post_icon, PostLanguageMenu as post_language_menu, PostLanguageMenuItem as post_language_menu_item, PostLogo as post_logo, PostMainnavigation as post_mainnavigation, PostMegadropdown as post_megadropdown, PostMegadropdownTrigger as post_megadropdown_trigger, PostMenu as post_menu, PostMenuTrigger as post_menu_trigger, PostPopovercontainer as post_popovercontainer, PostTogglebutton as post_togglebutton };
|