@swisspost/design-system-components 9.0.0-next.2 → 9.0.0-next.21
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/.config/bindings.angular.js +4 -0
- package/dist/cjs/{attribute-observer-10f08c04.js → attribute-observer-6d8b886b.js} +4 -4
- package/dist/cjs/check-non-empty-bd99d236.js +15 -0
- package/dist/cjs/check-one-of-75d270b5.js +13 -0
- package/dist/cjs/check-type-cdbf6d29.js +21 -0
- package/dist/cjs/check-url-220a286c.js +19 -0
- package/dist/cjs/debounce-158fd76f.js +13 -0
- package/dist/cjs/fade-72d5ef55.js +14 -0
- package/dist/cjs/get-root-7a3498ef.js +11 -0
- package/dist/cjs/index-23e36ff7.js +37 -0
- package/dist/cjs/{index-c15bd800.js → index-5acef487.js} +54 -17
- package/dist/cjs/index.browser-2f65f583.js +15 -0
- package/dist/cjs/index.cjs.js +56 -27
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-a7150f64.js → package-c6bc9e82.js} +1 -1
- package/dist/cjs/{post-accordion-62d2fd79.js → post-accordion-d1345784.js} +9 -8
- package/dist/cjs/post-accordion-item-a796d803.js +64 -0
- package/dist/cjs/post-accordion-item.cjs.entry.js +8 -5
- package/dist/cjs/post-accordion.cjs.entry.js +4 -4
- package/dist/cjs/post-avatar-b4e96354.js +144 -0
- package/dist/cjs/post-avatar.cjs.entry.js +13 -0
- package/dist/cjs/post-back-to-top-fc541c6b.js +76 -0
- package/dist/cjs/post-back-to-top.cjs.entry.js +15 -0
- package/dist/cjs/post-banner-46522b4f.js +96 -0
- package/dist/cjs/post-banner.cjs.entry.js +19 -0
- package/dist/cjs/post-breadcrumb-799d34da.js +112 -0
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +17 -0
- package/dist/cjs/post-breadcrumb.cjs.entry.js +13 -0
- package/dist/cjs/post-card-control-7bf7d3f2.js +283 -0
- package/dist/cjs/post-card-control.cjs.entry.js +5 -5
- package/dist/cjs/post-closebutton_15.cjs.entry.js +34 -0
- package/dist/cjs/{post-collapsible-trigger-9dca8493.js → post-collapsible-trigger-0568e3ec.js} +50 -56
- package/dist/cjs/post-collapsible_2.cjs.entry.js +10 -6
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/post-footer-f87a556b.js +88 -0
- package/dist/cjs/post-footer.cjs.entry.js +11 -0
- package/dist/cjs/post-linkarea-0ccf93fc.js +30 -0
- package/dist/cjs/post-linkarea.cjs.entry.js +11 -0
- package/dist/cjs/post-menu-item-eba24c40.js +68 -0
- package/dist/cjs/post-popover-35f679f6.js +106 -0
- package/dist/cjs/post-popover.cjs.entry.js +4 -4
- package/dist/cjs/{post-rating-db5a397a.js → post-rating-d12fa214.js} +16 -6
- package/dist/cjs/post-rating.cjs.entry.js +3 -3
- package/dist/cjs/post-tab-header-89dca04b.js +33 -0
- package/dist/cjs/post-tab-header.cjs.entry.js +5 -4
- package/dist/cjs/{post-tab-panel-d59cf1ec.js → post-tab-panel-ad1ab180.js} +6 -5
- package/dist/cjs/post-tab-panel.cjs.entry.js +4 -3
- package/dist/cjs/{post-tabs-7afae61a.js → post-tabs-0db75745.js} +23 -16
- package/dist/cjs/post-tabs.cjs.entry.js +4 -4
- package/dist/cjs/post-tag-396a46c9.js +47 -0
- package/dist/cjs/post-tag.cjs.entry.js +3 -3
- package/dist/cjs/post-togglebutton-69983699.js +3861 -0
- package/dist/cjs/{post-tooltip-432852c7.js → post-tooltip-7174ea97.js} +38 -25
- package/dist/cjs/post-tooltip.cjs.entry.js +8 -6
- package/dist/cjs/slide-8ae17ee4.js +28 -0
- package/dist/collection/animations/collapse.js +5 -5
- package/dist/collection/animations/fade.js +6 -2
- package/dist/collection/animations/slide.js +23 -0
- package/dist/collection/collection-manifest.json +22 -3
- package/dist/collection/components/post-accordion/post-accordion.css +1 -1
- package/dist/collection/components/post-accordion/post-accordion.js +5 -3
- package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +29 -11
- package/dist/collection/components/post-avatar/post-avatar.css +3 -0
- package/dist/collection/components/post-avatar/post-avatar.js +234 -0
- package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -0
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +109 -0
- package/dist/collection/components/post-banner/banner-types.js +1 -0
- package/dist/collection/components/post-banner/post-banner.css +3 -0
- package/dist/collection/components/{post-alert/post-alert.js → post-banner/post-banner.js} +51 -73
- package/dist/collection/components/post-breadcrumb/post-breadcrumb.css +3 -0
- package/dist/collection/components/post-breadcrumb/post-breadcrumb.js +163 -0
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -0
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +98 -0
- package/dist/collection/components/post-card-control/post-card-control.css +1 -1
- package/dist/collection/components/post-card-control/post-card-control.js +55 -43
- package/dist/collection/components/post-closebutton/post-closebutton.js +13 -0
- package/dist/collection/components/post-collapsible/post-collapsible.css +1 -1
- package/dist/collection/components/post-collapsible/post-collapsible.js +15 -6
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +21 -20
- package/dist/collection/components/post-footer/post-footer.css +1 -0
- package/dist/collection/components/post-footer/post-footer.js +76 -0
- package/dist/collection/components/post-header/post-header.css +1 -0
- package/dist/collection/components/post-header/post-header.js +267 -0
- package/dist/collection/components/post-icon/post-icon.js +80 -47
- package/dist/collection/components/post-language-option/post-language-option.css +3 -0
- package/dist/collection/components/post-language-option/post-language-option.js +224 -0
- package/dist/collection/components/post-language-switch/post-language-switch.css +1 -0
- package/dist/collection/components/post-language-switch/post-language-switch.js +164 -0
- package/dist/collection/components/post-language-switch/switch-variants.js +1 -0
- package/dist/collection/components/post-linkarea/post-linkarea.css +1 -0
- package/dist/collection/components/post-linkarea/post-linkarea.js +30 -0
- package/dist/collection/components/post-list/post-list.css +3 -0
- package/dist/collection/components/post-list/post-list.js +90 -0
- package/dist/collection/components/post-list-item/post-list-item.css +1 -0
- package/dist/collection/components/post-list-item/post-list-item.js +26 -0
- package/dist/collection/components/post-logo/post-logo.css +1 -1
- package/dist/collection/components/post-logo/post-logo.js +4 -3
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -0
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +255 -0
- package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -0
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +268 -0
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -0
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +127 -0
- package/dist/collection/components/post-menu/post-menu.css +3 -0
- package/dist/collection/components/post-menu/post-menu.js +297 -0
- package/dist/collection/components/post-menu-item/post-menu-item.js +8 -0
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.css +1 -0
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +122 -0
- package/dist/collection/components/post-popover/post-popover.css +1 -1
- package/dist/collection/components/post-popover/post-popover.js +6 -3
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +193 -38
- package/dist/collection/components/post-rating/post-rating.css +1 -1
- package/dist/collection/components/post-rating/post-rating.js +13 -2
- package/dist/collection/components/post-tab-header/post-tab-header.css +2 -2
- package/dist/collection/components/post-tab-header/post-tab-header.js +6 -4
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +4 -2
- package/dist/collection/components/post-tabs/post-tabs.css +1 -1
- package/dist/collection/components/post-tabs/post-tabs.js +17 -14
- package/dist/collection/components/post-tag/post-tag.css +1 -1
- package/dist/collection/components/post-tag/post-tag.js +3 -2
- package/dist/collection/components/post-togglebutton/post-togglebutton.css +1 -0
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +75 -0
- package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +35 -17
- package/dist/collection/index.js +21 -2
- package/dist/collection/utils/attribute-observer.js +4 -4
- package/dist/collection/utils/breakpoints.js +50 -0
- package/dist/collection/utils/component-on-ready.js +4 -4
- package/dist/collection/utils/debounce.js +2 -1
- package/dist/collection/utils/get-focusable-children.js +33 -0
- package/dist/collection/utils/property-checkers/check-non-empty.js +6 -2
- package/dist/collection/utils/property-checkers/check-one-of.js +8 -3
- package/dist/collection/utils/property-checkers/check-pattern.js +8 -3
- package/dist/collection/utils/property-checkers/check-type.js +11 -6
- package/dist/collection/utils/property-checkers/check-url.js +11 -6
- package/dist/collection/utils/property-checkers/empty-or.js +5 -2
- package/dist/collection/utils/sass-export.js +8 -5
- package/dist/components/attribute-observer.js +4 -4
- package/dist/components/check-non-empty.js +6 -2
- package/dist/components/check-one-of.js +8 -3
- package/dist/components/check-type.js +11 -6
- package/dist/components/debounce.js +11 -0
- package/dist/components/fade.js +6 -2
- package/dist/components/get-focusable-children.js +35 -0
- package/dist/components/get-root.js +9 -0
- package/dist/components/index.browser.js +13 -0
- package/dist/components/index.js +21 -2
- package/dist/components/index2.js +25 -12
- package/dist/components/index3.js +135 -0
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +36 -16
- package/dist/components/post-accordion2.js +6 -5
- package/dist/components/post-avatar.d.ts +11 -0
- package/dist/components/post-avatar.js +6 -0
- package/dist/components/post-avatar2.js +169 -0
- package/dist/components/post-back-to-top.d.ts +11 -0
- package/dist/components/post-back-to-top.js +6 -0
- package/dist/components/post-back-to-top2.js +101 -0
- package/dist/components/post-banner.d.ts +11 -0
- package/dist/components/post-banner.js +6 -0
- package/dist/components/post-banner2.js +131 -0
- package/dist/components/post-breadcrumb-item.d.ts +11 -0
- package/dist/components/post-breadcrumb-item.js +6 -0
- package/dist/components/post-breadcrumb-item2.js +82 -0
- package/dist/components/post-breadcrumb.d.ts +11 -0
- package/dist/components/post-breadcrumb.js +6 -0
- package/dist/components/post-breadcrumb2.js +169 -0
- package/dist/components/post-card-control2.js +50 -39
- package/dist/components/post-closebutton.d.ts +11 -0
- package/dist/components/post-closebutton.js +6 -0
- package/dist/components/post-closebutton2.js +34 -0
- package/dist/components/post-collapsible-trigger2.js +23 -38
- package/dist/components/post-collapsible2.js +22 -14
- package/dist/components/post-footer.d.ts +11 -0
- package/dist/components/post-footer.js +6 -0
- package/dist/components/post-footer2.js +128 -0
- package/dist/components/post-header.d.ts +11 -0
- package/dist/components/post-header.js +6 -0
- package/dist/components/post-header2.js +217 -0
- package/dist/components/post-icon2.js +82 -46
- package/dist/components/post-language-option.d.ts +11 -0
- package/dist/components/post-language-option.js +6 -0
- package/dist/components/post-language-option2.js +102 -0
- package/dist/components/post-language-switch.d.ts +11 -0
- package/dist/components/post-language-switch.js +6 -0
- package/dist/components/post-language-switch2.js +135 -0
- package/dist/components/post-linkarea.d.ts +11 -0
- package/dist/components/post-linkarea.js +6 -0
- package/dist/components/post-linkarea2.js +42 -0
- package/dist/components/post-list-item.d.ts +11 -0
- package/dist/components/post-list-item.js +6 -0
- package/dist/components/post-list-item2.js +35 -0
- package/dist/components/{post-alert.d.ts → post-list.d.ts} +4 -4
- package/dist/components/post-list.js +6 -0
- package/dist/components/post-list2.js +55 -0
- package/dist/components/post-logo2.js +5 -5
- package/dist/components/post-mainnavigation.d.ts +11 -0
- package/dist/components/post-mainnavigation.js +6 -0
- package/dist/components/post-mainnavigation2.js +258 -0
- package/dist/components/post-megadropdown-trigger.d.ts +11 -0
- package/dist/components/post-megadropdown-trigger.js +6 -0
- package/dist/components/post-megadropdown-trigger2.js +113 -0
- package/dist/components/post-megadropdown.d.ts +11 -0
- package/dist/components/post-megadropdown.js +6 -0
- package/dist/components/post-megadropdown2.js +186 -0
- package/dist/components/post-menu-item.d.ts +11 -0
- package/dist/components/post-menu-item.js +6 -0
- package/dist/components/post-menu-item2.js +27 -0
- package/dist/components/post-menu-trigger.d.ts +11 -0
- package/dist/components/post-menu-trigger.js +6 -0
- package/dist/components/post-menu-trigger2.js +109 -0
- package/dist/components/post-menu.d.ts +11 -0
- package/dist/components/post-menu.js +6 -0
- package/dist/components/post-menu2.js +193 -0
- package/dist/components/post-popover2.js +6 -4
- package/dist/components/post-popovercontainer2.js +227 -59
- package/dist/components/post-rating2.js +14 -4
- package/dist/components/post-tab-header2.js +7 -6
- package/dist/components/post-tab-panel2.js +4 -3
- package/dist/components/post-tabs2.js +20 -13
- package/dist/components/post-tag2.js +3 -3
- package/dist/components/post-togglebutton.d.ts +11 -0
- package/dist/components/post-togglebutton.js +6 -0
- package/dist/components/post-togglebutton2.js +61 -0
- package/dist/components/post-tooltip2.js +35 -22
- package/dist/components/slide.js +25 -0
- package/dist/docs.json +1956 -270
- package/dist/esm/{attribute-observer-37fa950a.js → attribute-observer-2f203993.js} +4 -4
- package/dist/esm/check-non-empty-258a56b3.js +13 -0
- package/dist/esm/check-one-of-0bee20f5.js +11 -0
- package/dist/esm/check-type-37d5d307.js +19 -0
- package/dist/esm/check-url-17962bc8.js +17 -0
- package/dist/esm/debounce-e54c7131.js +11 -0
- package/dist/esm/fade-1f3cacf4.js +11 -0
- package/dist/esm/get-root-7af2e0d1.js +9 -0
- package/dist/esm/{index-0b56fc28.js → index-40846676.js} +54 -17
- package/dist/esm/index-8f8fe5b0.js +32 -0
- package/dist/esm/index.browser-51485f85.js +13 -0
- package/dist/esm/index.js +32 -22
- package/dist/esm/loader.js +3 -3
- package/dist/esm/package-5614c98b.js +3 -0
- package/dist/esm/{post-accordion-6f4d2b9a.js → post-accordion-f6d1834d.js} +9 -8
- package/dist/esm/post-accordion-item-7cb93300.js +62 -0
- package/dist/esm/post-accordion-item.entry.js +8 -5
- package/dist/esm/post-accordion.entry.js +4 -4
- package/dist/esm/post-avatar-96108967.js +142 -0
- package/dist/esm/post-avatar.entry.js +5 -0
- package/dist/esm/post-back-to-top-7f8a61c8.js +74 -0
- package/dist/esm/post-back-to-top.entry.js +7 -0
- package/dist/esm/post-banner-bb69bce8.js +94 -0
- package/dist/esm/post-banner.entry.js +11 -0
- package/dist/esm/post-breadcrumb-9d9efa4e.js +110 -0
- package/dist/esm/post-breadcrumb-item_2.entry.js +8 -0
- package/dist/esm/post-breadcrumb.entry.js +5 -0
- package/dist/esm/post-card-control-fdced7d5.js +281 -0
- package/dist/esm/post-card-control.entry.js +5 -5
- package/dist/esm/post-closebutton_15.entry.js +12 -0
- package/dist/esm/{post-collapsible-trigger-85c2064a.js → post-collapsible-trigger-17b2f067.js} +49 -55
- package/dist/esm/post-collapsible_2.entry.js +10 -6
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/post-footer-2dcd8159.js +86 -0
- package/dist/esm/post-footer.entry.js +3 -0
- package/dist/esm/post-linkarea-06c5144d.js +28 -0
- package/dist/esm/post-linkarea.entry.js +3 -0
- package/dist/esm/post-menu-item-e917bf99.js +65 -0
- package/dist/esm/post-popover-67a3cbf2.js +104 -0
- package/dist/esm/post-popover.entry.js +4 -4
- package/dist/esm/{post-rating-d9fc0b40.js → post-rating-9613bee8.js} +16 -6
- package/dist/esm/post-rating.entry.js +3 -3
- package/dist/esm/post-tab-header-dff3a025.js +31 -0
- package/dist/esm/post-tab-header.entry.js +5 -4
- package/dist/esm/{post-tab-panel-926439f4.js → post-tab-panel-2b3f82a8.js} +6 -5
- package/dist/esm/post-tab-panel.entry.js +4 -3
- package/dist/esm/{post-tabs-13b2d9a6.js → post-tabs-46d1165f.js} +23 -16
- package/dist/esm/post-tabs.entry.js +4 -4
- package/dist/esm/post-tag-4176268e.js +45 -0
- package/dist/esm/post-tag.entry.js +3 -3
- package/dist/esm/post-togglebutton-5892c5bd.js +3845 -0
- package/dist/esm/{post-tooltip-3cde6b53.js → post-tooltip-5a45a569.js} +38 -25
- package/dist/esm/post-tooltip.entry.js +8 -6
- package/dist/esm/slide-62768431.js +25 -0
- package/dist/post-components/index.esm.js +1 -1
- package/dist/post-components/p-017dc6c7.js +1 -0
- package/dist/post-components/p-0227b899.js +1 -0
- package/dist/post-components/p-04895a54.js +1 -0
- package/dist/post-components/p-04c38bfe.entry.js +1 -0
- package/dist/post-components/p-07a0a626.js +1 -0
- package/dist/post-components/p-12573893.js +1 -0
- package/dist/post-components/p-1289b0a7.entry.js +1 -0
- package/dist/post-components/p-12a11565.js +1 -0
- package/dist/post-components/p-1542a80e.entry.js +1 -0
- package/dist/post-components/p-181c73d5.js +1 -0
- package/dist/post-components/p-254a9bd2.entry.js +1 -0
- package/dist/post-components/p-28500934.entry.js +1 -0
- package/dist/post-components/p-2b1281af.js +1 -0
- package/dist/post-components/p-2c69e7f2.entry.js +1 -0
- package/dist/post-components/p-30132b19.entry.js +1 -0
- package/dist/post-components/p-30af1d48.js +1 -0
- package/dist/post-components/p-3bdeb686.entry.js +1 -0
- package/dist/post-components/p-47cb31dd.js +1 -0
- package/dist/post-components/p-4af6dbed.js +1 -0
- package/dist/post-components/p-4f41f63e.js +1 -0
- package/dist/post-components/p-52790b8b.js +1 -0
- package/dist/post-components/p-5959f2bd.js +1 -0
- package/dist/post-components/{p-82dcf8c6.js → p-59ca0a13.js} +3 -3
- package/dist/post-components/p-5aaa5703.entry.js +1 -0
- package/dist/post-components/p-64e3de38.js +1 -0
- package/dist/post-components/p-67a45f16.js +1 -0
- package/dist/post-components/p-6d8ac9bd.entry.js +1 -0
- package/dist/post-components/p-7709c14a.js +1 -0
- package/dist/post-components/p-77cc2a5e.entry.js +1 -0
- package/dist/post-components/p-79c552fb.js +1 -0
- package/dist/post-components/p-7dd05e6d.entry.js +1 -0
- package/dist/post-components/p-803b7598.js +1 -0
- package/dist/post-components/p-85fdc2d3.js +1 -0
- package/dist/post-components/p-9748a355.js +1 -0
- package/dist/post-components/p-98fcf90b.entry.js +1 -0
- package/dist/post-components/p-994fae4c.entry.js +1 -0
- package/dist/post-components/p-a805515a.entry.js +1 -0
- package/dist/post-components/p-b5b48f66.entry.js +1 -0
- package/dist/post-components/p-b9bf5a5f.js +1 -0
- package/dist/post-components/p-c6b3a926.js +1 -0
- package/dist/post-components/p-c9dd3cdb.entry.js +1 -0
- package/dist/post-components/p-cb5e4a06.js +1 -0
- package/dist/post-components/p-d45df336.js +1 -0
- package/dist/post-components/p-dd4a5c0a.entry.js +1 -0
- package/dist/post-components/p-e1baac59.js +1 -0
- package/dist/post-components/p-e585c6fe.js +1 -0
- package/dist/post-components/p-e6d54838.entry.js +1 -0
- package/dist/post-components/p-f4b0cc7d.js +1 -0
- package/dist/post-components/p-fc91cbc2.js +1 -0
- package/dist/post-components/p-fe8c300c.js +1 -0
- package/dist/post-components/p-ff95dcd3.js +2 -0
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/types/animations/collapse.d.ts +2 -2
- package/dist/types/animations/fade.d.ts +2 -2
- package/dist/types/animations/slide.d.ts +2 -0
- package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +8 -2
- package/dist/types/components/post-avatar/post-avatar.d.ts +51 -0
- package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +19 -0
- package/dist/types/components/post-banner/banner-types.d.ts +2 -0
- package/dist/types/components/post-banner/post-banner.d.ts +49 -0
- package/dist/types/components/post-breadcrumb/post-breadcrumb.d.ts +30 -0
- package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +20 -0
- package/dist/types/components/post-card-control/post-card-control.d.ts +9 -9
- package/dist/types/components/post-closebutton/post-closebutton.d.ts +7 -0
- package/dist/types/components/post-footer/post-footer.d.ts +23 -0
- package/dist/types/components/post-header/post-header.d.ts +45 -0
- package/dist/types/components/post-icon/post-icon.d.ts +14 -12
- package/dist/types/components/post-language-option/post-language-option.d.ts +45 -0
- package/dist/types/components/post-language-switch/post-language-switch.d.ts +31 -0
- package/dist/types/components/post-language-switch/switch-variants.d.ts +2 -0
- package/dist/types/components/post-linkarea/post-linkarea.d.ts +5 -0
- package/dist/types/components/post-list/post-list.d.ts +24 -0
- package/dist/types/components/post-list-item/post-list-item.d.ts +8 -0
- package/dist/types/components/post-logo/post-logo.d.ts +1 -1
- package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +70 -0
- package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +57 -0
- package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +31 -0
- package/dist/types/components/post-menu/post-menu.d.ts +48 -0
- package/dist/types/components/post-menu-item/post-menu-item.d.ts +3 -0
- package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +28 -0
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +23 -1
- package/dist/types/components/post-tab-header/post-tab-header.d.ts +1 -1
- package/dist/types/components/post-tabs/post-tabs.d.ts +1 -1
- package/dist/types/components/post-tag/post-tag.d.ts +1 -1
- package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +15 -0
- package/dist/types/components.d.ts +609 -48
- package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/.config/bindings.angular.d.ts +2 -0
- package/dist/types/index.d.ts +22 -3
- package/dist/types/utils/attribute-observer.d.ts +1 -1
- package/dist/types/utils/breakpoints.d.ts +12 -0
- package/dist/types/utils/component-on-ready.d.ts +1 -1
- package/dist/types/utils/get-focusable-children.d.ts +1 -0
- package/dist/types/utils/get-root.d.ts +1 -1
- package/dist/types/utils/property-checkers/check-non-empty.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-one-of.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-pattern.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-type.d.ts +3 -1
- package/dist/types/utils/property-checkers/check-url.d.ts +3 -1
- package/dist/types/utils/property-checkers/index.d.ts +12 -4
- package/dist/types/utils/sass-export.d.ts +5 -1
- package/loaders/attribute-observer.js +4 -4
- package/loaders/check-non-empty.js +6 -2
- package/loaders/check-one-of.js +8 -3
- package/loaders/check-type.js +11 -6
- package/loaders/debounce.js +11 -0
- package/loaders/fade.js +6 -2
- package/loaders/get-focusable-children.js +35 -0
- package/loaders/get-root.js +9 -0
- package/loaders/index.browser.js +13 -0
- package/loaders/index.d.ts +40 -2
- package/loaders/index.js +21 -2
- package/loaders/index2.js +25 -12
- package/loaders/index3.js +135 -0
- package/loaders/package.js +1 -1
- package/loaders/post-accordion-item.js +1 -81
- package/loaders/post-accordion-item2.js +103 -0
- package/loaders/post-accordion.js +6 -5
- package/loaders/post-avatar.d.ts +11 -0
- package/loaders/post-avatar.js +172 -0
- package/loaders/post-back-to-top.d.ts +11 -0
- package/loaders/post-back-to-top.js +104 -0
- package/loaders/post-banner.d.ts +11 -0
- package/loaders/post-banner.js +134 -0
- package/loaders/post-breadcrumb-item.d.ts +11 -0
- package/loaders/post-breadcrumb-item.js +6 -0
- package/loaders/post-breadcrumb-item2.js +82 -0
- package/loaders/post-breadcrumb.d.ts +11 -0
- package/loaders/post-breadcrumb.js +172 -0
- package/loaders/post-card-control.js +50 -39
- package/loaders/post-closebutton.d.ts +11 -0
- package/loaders/post-closebutton.js +37 -0
- package/loaders/post-collapsible-trigger2.js +23 -38
- package/loaders/post-collapsible2.js +21 -13
- package/loaders/post-footer.d.ts +11 -0
- package/loaders/post-footer.js +131 -0
- package/loaders/post-header.d.ts +11 -0
- package/loaders/post-header.js +220 -0
- package/loaders/post-icon2.js +82 -46
- package/loaders/post-language-option.d.ts +11 -0
- package/loaders/post-language-option.js +105 -0
- package/loaders/post-language-switch.d.ts +11 -0
- package/loaders/post-language-switch.js +138 -0
- package/loaders/post-linkarea.d.ts +11 -0
- package/loaders/post-linkarea.js +45 -0
- package/loaders/post-list-item.d.ts +11 -0
- package/loaders/post-list-item.js +38 -0
- package/loaders/{post-alert.d.ts → post-list.d.ts} +4 -4
- package/loaders/post-list.js +58 -0
- package/loaders/post-logo.js +6 -6
- package/loaders/post-mainnavigation.d.ts +11 -0
- package/loaders/post-mainnavigation.js +261 -0
- package/loaders/post-megadropdown-trigger.d.ts +11 -0
- package/loaders/post-megadropdown-trigger.js +116 -0
- package/loaders/post-megadropdown.d.ts +11 -0
- package/loaders/post-megadropdown.js +189 -0
- package/loaders/post-menu-item.d.ts +11 -0
- package/loaders/post-menu-item.js +6 -0
- package/loaders/post-menu-item2.js +27 -0
- package/loaders/post-menu-trigger.d.ts +11 -0
- package/loaders/post-menu-trigger.js +6 -0
- package/loaders/post-menu-trigger2.js +109 -0
- package/loaders/post-menu.d.ts +11 -0
- package/loaders/post-menu.js +6 -0
- package/loaders/post-menu2.js +193 -0
- package/loaders/post-popover.js +6 -4
- package/loaders/post-popovercontainer2.js +227 -59
- package/loaders/post-rating.js +14 -4
- package/loaders/post-tab-header.js +7 -6
- package/loaders/post-tab-panel.js +4 -3
- package/loaders/post-tabs.js +20 -13
- package/loaders/post-tag.js +3 -3
- package/loaders/post-togglebutton.d.ts +11 -0
- package/loaders/post-togglebutton.js +64 -0
- package/loaders/post-tooltip.js +34 -21
- package/loaders/slide.js +25 -0
- package/package.json +26 -20
- package/dist/cjs/check-non-empty-eeaa8f77.js +0 -11
- package/dist/cjs/check-one-of-f4f5d0c0.js +0 -8
- package/dist/cjs/fade-35a3633a.js +0 -10
- package/dist/cjs/index-01f30442.js +0 -52
- package/dist/cjs/post-accordion-item-7b348fa5.js +0 -51
- package/dist/cjs/post-alert-fca3a4a3.js +0 -98
- package/dist/cjs/post-alert.cjs.entry.js +0 -16
- package/dist/cjs/post-card-control-b4e4b4d5.js +0 -272
- package/dist/cjs/post-icon-3934be0b.js +0 -104
- package/dist/cjs/post-icon.cjs.entry.js +0 -15
- package/dist/cjs/post-logo-c3603fc7.js +0 -39
- package/dist/cjs/post-logo.cjs.entry.js +0 -14
- package/dist/cjs/post-popover-15f9620a.js +0 -104
- package/dist/cjs/post-popovercontainer-7d536276.js +0 -2186
- package/dist/cjs/post-popovercontainer.cjs.entry.js +0 -11
- package/dist/cjs/post-tab-header-29b8d4e1.js +0 -32
- package/dist/cjs/post-tag-b7d0bbff.js +0 -47
- package/dist/collection/components/post-alert/alert-types.js +0 -1
- package/dist/collection/components/post-alert/post-alert.css +0 -7
- package/dist/components/post-alert.js +0 -6
- package/dist/components/post-alert2.js +0 -136
- package/dist/esm/check-non-empty-58bd6b17.js +0 -9
- package/dist/esm/check-one-of-6b3ef8eb.js +0 -6
- package/dist/esm/fade-7fd71785.js +0 -7
- package/dist/esm/index-f41b763f.js +0 -46
- package/dist/esm/package-3d758f77.js +0 -3
- package/dist/esm/post-accordion-item-6b5a65ad.js +0 -49
- package/dist/esm/post-alert-f19db551.js +0 -96
- package/dist/esm/post-alert.entry.js +0 -8
- package/dist/esm/post-card-control-1b5df6cb.js +0 -270
- package/dist/esm/post-icon-40929043.js +0 -102
- package/dist/esm/post-icon.entry.js +0 -7
- package/dist/esm/post-logo-c6351ba8.js +0 -37
- package/dist/esm/post-logo.entry.js +0 -6
- package/dist/esm/post-popover-58149de7.js +0 -102
- package/dist/esm/post-popovercontainer-8bde9fc3.js +0 -2184
- package/dist/esm/post-popovercontainer.entry.js +0 -3
- package/dist/esm/post-tab-header-ae8feb19.js +0 -30
- package/dist/esm/post-tag-887d5fbe.js +0 -45
- package/dist/post-components/p-0b71bf5a.js +0 -1
- package/dist/post-components/p-0e09dc41.js +0 -1
- package/dist/post-components/p-19e54be9.js +0 -1
- package/dist/post-components/p-1e8f0f36.js +0 -1
- package/dist/post-components/p-22257eff.entry.js +0 -1
- package/dist/post-components/p-249ac168.entry.js +0 -1
- package/dist/post-components/p-2737eaf5.js +0 -1
- package/dist/post-components/p-2b10e265.js +0 -1
- package/dist/post-components/p-3325086e.js +0 -1
- package/dist/post-components/p-3b823fee.entry.js +0 -1
- package/dist/post-components/p-45f4c803.entry.js +0 -1
- package/dist/post-components/p-47935dbb.js +0 -1
- package/dist/post-components/p-486fbbce.entry.js +0 -1
- package/dist/post-components/p-4a7fb0f3.entry.js +0 -1
- package/dist/post-components/p-5f231c2c.js +0 -1
- package/dist/post-components/p-611b3c41.js +0 -1
- package/dist/post-components/p-6a28f8b9.js +0 -1
- package/dist/post-components/p-6adeaa6c.js +0 -1
- package/dist/post-components/p-6ed3497a.entry.js +0 -1
- package/dist/post-components/p-820c5c19.entry.js +0 -1
- package/dist/post-components/p-8aeb549f.entry.js +0 -1
- package/dist/post-components/p-92aeec3c.js +0 -1
- package/dist/post-components/p-9a99cfc7.js +0 -1
- package/dist/post-components/p-aa8a08dc.entry.js +0 -1
- package/dist/post-components/p-b095519d.js +0 -1
- package/dist/post-components/p-b99fdec3.js +0 -1
- package/dist/post-components/p-ba40b28a.entry.js +0 -1
- package/dist/post-components/p-c62de925.js +0 -1
- package/dist/post-components/p-d2101b8a.entry.js +0 -1
- package/dist/post-components/p-d2f9de94.js +0 -2
- package/dist/post-components/p-d7a44f45.js +0 -1
- package/dist/post-components/p-db4b8ea1.entry.js +0 -1
- package/dist/post-components/p-deb4131c.js +0 -1
- package/dist/post-components/p-eedc6ae8.entry.js +0 -1
- package/dist/post-components/p-f217f420.js +0 -1
- package/dist/post-components/p-f707d163.entry.js +0 -1
- package/dist/types/components/post-alert/alert-types.d.ts +0 -2
- package/dist/types/components/post-alert/post-alert.d.ts +0 -54
- package/loaders/post-alert.js +0 -139
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { v as version } from './package.js';
|
|
3
|
+
import { n as nanoid } from './index.browser.js';
|
|
4
|
+
|
|
5
|
+
const postListCss = "/*!\n * Copyright 2021 by Swiss Post, Information Technology\n */post-list{display:flex;flex-direction:column;gap:var(--post-list-title-gap, 0)}post-list>[role=list]{display:flex;flex-direction:column;gap:var(--post-list-item-gap, 0)}post-list:where([horizontal]:not([horizontal=false])){flex-direction:row;align-items:center}post-list:where([horizontal]:not([horizontal=false]))>[role=list]{flex-direction:row;align-items:center}post-list>.list-title.visually-hidden{width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}post-list>.list-title.visually-hidden:not(caption){position:absolute !important}";
|
|
6
|
+
const PostListStyle0 = postListCss;
|
|
7
|
+
|
|
8
|
+
const PostList = /*@__PURE__*/ proxyCustomElement(class PostList extends HTMLElement {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.__registerHost();
|
|
12
|
+
this.titleId = undefined;
|
|
13
|
+
this.titleHidden = false;
|
|
14
|
+
this.horizontal = false;
|
|
15
|
+
}
|
|
16
|
+
get host() { return this; }
|
|
17
|
+
titleEl;
|
|
18
|
+
componentWillLoad() {
|
|
19
|
+
/**
|
|
20
|
+
* Get the id set on the host element or use a random id by default
|
|
21
|
+
*/
|
|
22
|
+
this.titleId = `title-${this.host.id || nanoid(6)}`;
|
|
23
|
+
}
|
|
24
|
+
componentDidLoad() {
|
|
25
|
+
this.checkTitle();
|
|
26
|
+
}
|
|
27
|
+
checkTitle() {
|
|
28
|
+
if (!this.titleEl.textContent.trim()) {
|
|
29
|
+
console.error('Please provide a title to the list component. Title is mandatory for accessibility purposes.');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
render() {
|
|
33
|
+
return (h(Host, { key: '085a63d7b4cc85461f2c8fd0c7b9d9f48f42055a', "data-version": version }, h("div", { key: 'd13a66ba16b71eff1a86666b04ca2f41957962e1', ref: el => (this.titleEl = el), id: this.titleId, class: `list-title${this.titleHidden ? ' visually-hidden' : ''}` }, h("slot", { key: '0270bcd71c8a3a34390b98b6374a1a2f06e0d606' })), h("div", { key: 'de04b08bf94900435c53f972c8fcd0798c8a5faf', role: "list", "aria-labelledby": this.titleId }, h("slot", { key: 'f7aa9976b3283ee4da3d32d84b36e2549c29e80f', name: "post-list-item" }))));
|
|
34
|
+
}
|
|
35
|
+
static get style() { return PostListStyle0; }
|
|
36
|
+
}, [4, "post-list", {
|
|
37
|
+
"titleHidden": [4, "title-hidden"],
|
|
38
|
+
"horizontal": [516],
|
|
39
|
+
"titleId": [32]
|
|
40
|
+
}]);
|
|
41
|
+
function defineCustomElement() {
|
|
42
|
+
if (typeof customElements === "undefined") {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const components = ["post-list"];
|
|
46
|
+
components.forEach(tagName => { switch (tagName) {
|
|
47
|
+
case "post-list":
|
|
48
|
+
if (!customElements.get(tagName)) {
|
|
49
|
+
customElements.define(tagName, PostList);
|
|
50
|
+
}
|
|
51
|
+
break;
|
|
52
|
+
} });
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { PostList as P, defineCustomElement as d };
|
|
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal
|
|
|
2
2
|
import { v as version } from './package.js';
|
|
3
3
|
import { d as checkEmptyOrUrl } from './index2.js';
|
|
4
4
|
|
|
5
|
-
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}";
|
|
5
|
+
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:2px}";
|
|
6
6
|
const PostLogoStyle0 = postLogoCss;
|
|
7
7
|
|
|
8
8
|
const PostLogo = /*@__PURE__*/ proxyCustomElement(class PostLogo extends HTMLElement {
|
|
@@ -12,10 +12,11 @@ const PostLogo = /*@__PURE__*/ proxyCustomElement(class PostLogo extends HTMLEle
|
|
|
12
12
|
this.__attachShadow();
|
|
13
13
|
this.url = undefined;
|
|
14
14
|
}
|
|
15
|
+
get host() { return this; }
|
|
15
16
|
validateUrl() {
|
|
16
|
-
checkEmptyOrUrl(this
|
|
17
|
+
checkEmptyOrUrl(this, 'url');
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
componentDidLoad() {
|
|
19
20
|
this.validateUrl();
|
|
20
21
|
this.checkDescription();
|
|
21
22
|
}
|
|
@@ -27,9 +28,8 @@ const PostLogo = /*@__PURE__*/ proxyCustomElement(class PostLogo extends HTMLEle
|
|
|
27
28
|
render() {
|
|
28
29
|
const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
|
|
29
30
|
const LogoTag = logoLink ? 'a' : 'span';
|
|
30
|
-
return (h(Host, { key: '
|
|
31
|
+
return (h(Host, { key: '128604612a51624b537f30b0b9c91d9ea6b950be', "data-version": version }, h(LogoTag, { key: '885f057200f9da839fd38cb7070f319f6c89793e', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: 'bee12585bf74fe5c2ce8a644c540c86626295526', class: "description" }, h("slot", { key: 'e516075c5138cef9378d3dc7137eb6c28d02b279', onSlotchange: () => this.checkDescription() })), h("svg", { key: 'c0056463b93f7c0e5da07db4656d9c8dc9161c32', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: '1dfc33886c9b1fb6cd3b08f448a89c11a6080598', id: "Logo" }, h("rect", { key: 'dd84426568259714379a92a3f56349c6b3220a61', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: '56fa6445c184a41355a968365098b75387a16f48', 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: 'f2abb1db77a2e795f477662453d7296a28882756', 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" }))))));
|
|
31
32
|
}
|
|
32
|
-
get host() { return this; }
|
|
33
33
|
static get watchers() { return {
|
|
34
34
|
"url": ["validateUrl"]
|
|
35
35
|
}; }
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface PostMainnavigation extends Components.PostMainnavigation, HTMLElement {}
|
|
4
|
+
export const PostMainnavigation: {
|
|
5
|
+
prototype: PostMainnavigation;
|
|
6
|
+
new (): PostMainnavigation;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { t as throttle } from './index3.js';
|
|
3
|
+
import { d as defineCustomElement$1 } from './post-icon2.js';
|
|
4
|
+
|
|
5
|
+
const postMainnavigationCss = "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 post-megadropdown-trigger 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-mainnavigation post-list-item post-megadropdown-trigger 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){post-mainnavigation post-list-item post-megadropdown-trigger button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-mainnavigation post-list-item post-megadropdown-trigger 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){post-mainnavigation post-list-item post-megadropdown-trigger button:is(:focus-visible,:focus-within,.pretend-focus){outline-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}post-mainnavigation .back-button post-icon{transform:rotate(180deg)}@media screen and (max-width: 1023.98px){post-mainnavigation .back-button{font-size:16px}}@media screen and (max-width: 599.98px){post-mainnavigation .back-button{font-size:14px}}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{content:\"\";mask-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m23.6 13.2-7.5 7.6-7.6-7.6.9-.9 6.6 6.6 6.6-6.6z'/%3E%3C/svg%3E\");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;height:24px;width:24px}@media screen and (min-width: 1024px){post-mainnavigation{display:block}post-mainnavigation nav{max-width:100vw;background:#fff;max-height:var(--main-navigation-height);user-select:none;transition:margin 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{z-index:4;position:absolute;inset-block-end:0;overflow:hidden}post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button 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;background:#fff;padding:16px;box-shadow:var(--post-device-elevation-500);line-height:100%;height:var(--main-navigation-height)}}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button button{background-color:ButtonFace !important}post-mainnavigation .left-scroll-button button:hover,post-mainnavigation .right-scroll-button button:hover{background-color:Highlight !important}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button button post-icon,post-mainnavigation .right-scroll-button button post-icon{font-size:1rem}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button{inset-inline-start:0;padding-inline-end:2rem}}@media screen and (min-width: 1024px){post-mainnavigation .right-scroll-button{inset-inline-end:0;padding-inline-start:2rem}}@media screen and (min-width: 1024px){post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{position:sticky;padding-inline:12px;height:var(--main-navigation-height);gap:4px;font-size:16px;z-index:4}post-mainnavigation post-list-item>a .nav-el-active,post-mainnavigation post-list-item>button .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{position:absolute;opacity:1;text-align:center;width:100%;left:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-mainnavigation post-list-item>a.selected .nav-el-active,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item>button.selected .nav-el-active,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-mainnavigation post-list-item>a.selected .nav-el-inactive,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item>button.selected .nav-el-inactive,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}}@media screen and (min-width: 1024px)and (max-width: 599.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:12px;transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button.selected::after,post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-mainnavigation post-list-item post-megadropdown-trigger button.selected::after,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}}@media screen and (min-width: 1024px){post-mainnavigation post-megadropdown button:not(.btn-icon-close),post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-megadropdown button:not(.btn-icon-close)::before,post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-megadropdown button:not(.btn-icon-close).selected,post-mainnavigation post-megadropdown button:not(.btn-icon-close)[aria-expanded=true],post-mainnavigation post-megadropdown a.selected,post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover,post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::before,post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}}@media screen and (min-width: 1024px){post-mainnavigation [slot=back-button]{display:none}}@media screen and (max-width: 1023.98px){post-mainnavigation nav{transform:none !important}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{display:none}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-list-item>a::before,post-mainnavigation post-list-item>button::before,post-mainnavigation post-list-item post-megadropdown-trigger button::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-list-item>a:hover::before,post-mainnavigation post-list-item>button:hover::before,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}}post-mainnavigation .back-button .btn{padding-inline:0}";
|
|
6
|
+
const PostMainnavigationStyle0 = postMainnavigationCss;
|
|
7
|
+
|
|
8
|
+
const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
|
|
9
|
+
const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
|
|
10
|
+
const NAVIGATION_LIST_SELECTOR = 'post-list > [role="list"]:not(post-megadropdown *)';
|
|
11
|
+
const NAVIGATION_ITEM_SELECTOR = 'post-list-item :is(a, button):not(post-megadropdown *)';
|
|
12
|
+
const PostMainnavigation = /*@__PURE__*/ proxyCustomElement(class PostMainnavigation extends HTMLElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
this.__registerHost();
|
|
16
|
+
this.canScrollLeft = false;
|
|
17
|
+
this.canScrollRight = false;
|
|
18
|
+
this.translationAmount = 0;
|
|
19
|
+
}
|
|
20
|
+
header;
|
|
21
|
+
navbar;
|
|
22
|
+
rightScrollButton;
|
|
23
|
+
leftScrollButton;
|
|
24
|
+
scrollRepeatInterval;
|
|
25
|
+
navbarDisableTimer;
|
|
26
|
+
mutationObserver = new MutationObserver(async (mutations) => {
|
|
27
|
+
// Wait for all elements to be hydrated
|
|
28
|
+
await Promise.all(mutations
|
|
29
|
+
.flatMap((mutation) => Array.from(mutation.addedNodes))
|
|
30
|
+
.map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
|
|
31
|
+
// Recalculate scrollability after DOM changes
|
|
32
|
+
this.checkScrollability();
|
|
33
|
+
});
|
|
34
|
+
get host() { return this; }
|
|
35
|
+
/**
|
|
36
|
+
* Update navbar translation when 'translateAmount' changes and recalculate scrollability
|
|
37
|
+
*/
|
|
38
|
+
onTranslateAmountChanges(value) {
|
|
39
|
+
this.navbar.style.marginInlineStart = `-${value}px`;
|
|
40
|
+
this.checkScrollability();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Retrieves a reference to the closest 'post-header' element when the main navigation is added to the DOM.
|
|
44
|
+
* This ensures that we can interact with the header for mobile menu toggling.
|
|
45
|
+
*/
|
|
46
|
+
connectedCallback() {
|
|
47
|
+
this.header = this.host.closest('post-header');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Cleans up references and disconnects the MutationObserver when the main navigation is removed from the DOM.
|
|
51
|
+
*/
|
|
52
|
+
disconnectedCallback() {
|
|
53
|
+
this.header = null;
|
|
54
|
+
this.mutationObserver.disconnect();
|
|
55
|
+
}
|
|
56
|
+
componentDidLoad() {
|
|
57
|
+
setTimeout(() => this.checkScrollability()); // Initial check to determine if scrolling is needed
|
|
58
|
+
this.mutationObserver.observe(this.navigationList, { subtree: true, childList: true }); // Recheck scrollability when navigation list changes
|
|
59
|
+
this.fixLayoutShift();
|
|
60
|
+
window.addEventListener('resize', // Recheck scrollability on window resize
|
|
61
|
+
throttle(100, () => this.checkScrollability()));
|
|
62
|
+
// Handle focus changes and adjust scroll as needed
|
|
63
|
+
this.navbar.addEventListener('focusin', e => this.adjustTranslation(e));
|
|
64
|
+
}
|
|
65
|
+
// Hack that duplicates navigation elements to fix the layout shift on active elements
|
|
66
|
+
fixLayoutShift() {
|
|
67
|
+
// Select first level of main navigation elements, both the links and the megadropdown trigger buttons
|
|
68
|
+
const children = this.host.querySelectorAll('nav > post-list > div > post-list-item > a, nav > post-list > div > post-list-item > post-megadropdown-trigger > button');
|
|
69
|
+
// Update HTML so that the content is duplicated
|
|
70
|
+
children.forEach(child => (child.innerHTML = `<span class="nav-el-active">${child.innerHTML}</span><span class="nav-el-inactive"aria-hidden="true">${child.innerHTML}</span>`));
|
|
71
|
+
}
|
|
72
|
+
handleBackButtonClick() {
|
|
73
|
+
if (this.header)
|
|
74
|
+
this.header.toggleMobileMenu();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Moves focus on the navbar and adjusts scrolling to bring focused element into view.
|
|
78
|
+
*/
|
|
79
|
+
adjustTranslation(e) {
|
|
80
|
+
const focusedElement = e.target;
|
|
81
|
+
if (!this.canScroll || !focusedElement.matches(NAVIGATION_ITEM_SELECTOR))
|
|
82
|
+
return;
|
|
83
|
+
// We need to move the element into the view before it is focused to avoid browser default behavior
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
this.withoutTransition(() => {
|
|
86
|
+
// Try scrolling in both directions, only the necessary translation will actually occur
|
|
87
|
+
this.translateRightTo(focusedElement);
|
|
88
|
+
this.translateLeftTo(focusedElement);
|
|
89
|
+
focusedElement.focus();
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Checks if scrolling is possible in either direction (left or right) and updates the state accordingly.
|
|
94
|
+
*/
|
|
95
|
+
checkScrollability() {
|
|
96
|
+
const { scrollWidth, clientWidth } = this.navbar;
|
|
97
|
+
const couldScroll = this.canScroll;
|
|
98
|
+
if (scrollWidth === clientWidth) {
|
|
99
|
+
// If scroll width equals client width, scrolling is disabled in both directions
|
|
100
|
+
this.canScrollLeft = this.canScrollRight = false;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.canScrollLeft = this.translationAmount > 0; // Scrolling left is possible if not at the start
|
|
104
|
+
this.canScrollRight = clientWidth + this.translationAmount < scrollWidth; // Scrolling right is possible if not at the end
|
|
105
|
+
}
|
|
106
|
+
if (couldScroll && !this.canScroll) {
|
|
107
|
+
this.withoutTransition(() => (this.translationAmount = 0));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Returns whether scrolling is enabled in either the left or right direction.
|
|
112
|
+
*/
|
|
113
|
+
get canScroll() {
|
|
114
|
+
return this.canScrollLeft || this.canScrollRight;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Handles the scrolling behavior when a user clicks on the left or right scroll buttons.
|
|
118
|
+
*/
|
|
119
|
+
handleScrollButtonClick(direction) {
|
|
120
|
+
if (!this.canScroll)
|
|
121
|
+
return;
|
|
122
|
+
// Disable interaction with the navbar during scrolling
|
|
123
|
+
this.disableNavbar();
|
|
124
|
+
// Perform the initial scroll action
|
|
125
|
+
this.scroll(direction);
|
|
126
|
+
// Repeat the scrolling action while the button is held down
|
|
127
|
+
this.scrollRepeatInterval = setInterval(() => {
|
|
128
|
+
this.scroll(direction);
|
|
129
|
+
}, SCROLL_REPEAT_INTERVAL);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Stops the repeated scrolling when the mouse button is released.
|
|
133
|
+
*/
|
|
134
|
+
stopScrolling() {
|
|
135
|
+
if (this.scrollRepeatInterval)
|
|
136
|
+
clearInterval(this.scrollRepeatInterval);
|
|
137
|
+
}
|
|
138
|
+
scroll(direction) {
|
|
139
|
+
const navigationItems = Array.from(this.navigationItems);
|
|
140
|
+
if (direction === 'left')
|
|
141
|
+
navigationItems.reverse();
|
|
142
|
+
for (const item of navigationItems) {
|
|
143
|
+
const couldScroll = direction === 'left' ? this.translateLeftTo(item, true) : this.translateRightTo(item, true);
|
|
144
|
+
if (couldScroll)
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
translateRightTo(navigationItem, skipSmallTranslation = false) {
|
|
149
|
+
const listItem = navigationItem.closest('post-list-item');
|
|
150
|
+
// Calculate the right edge position of the list item relative to the left of the screen
|
|
151
|
+
const rightEdgePosition = listItem.offsetLeft + listItem.offsetWidth;
|
|
152
|
+
// Calculate the last visible position on the screen, right before the right scroll button
|
|
153
|
+
const lastVisiblePosition = this.host.clientWidth - this.rightScrollButton.clientWidth;
|
|
154
|
+
// If the item is already fully visible, no translation is needed
|
|
155
|
+
if (rightEdgePosition < lastVisiblePosition)
|
|
156
|
+
return false;
|
|
157
|
+
const translationIncrease = rightEdgePosition - lastVisiblePosition + 1; // + 1 because offset values are rounded
|
|
158
|
+
// If the required scroll distance is too small (less than half the width of the item), avoid unnecessary scroll
|
|
159
|
+
if (skipSmallTranslation && translationIncrease < listItem.clientWidth / 2)
|
|
160
|
+
return false;
|
|
161
|
+
// Calculate the maximum translation amount to prevent scrolling past the end of the content
|
|
162
|
+
const maximumTranslation = this.navbar.scrollWidth - this.host.clientWidth;
|
|
163
|
+
// Adjust the translation amount, ensuring it doesn't exceed the maximum scrollable area
|
|
164
|
+
const { marginRight } = getComputedStyle(this.navigationList);
|
|
165
|
+
this.translationAmount =
|
|
166
|
+
Math.min(this.translationAmount + translationIncrease, maximumTranslation) +
|
|
167
|
+
parseInt(marginRight);
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
translateLeftTo(navigationItem, skipSmallTranslation = false) {
|
|
171
|
+
const listItem = navigationItem.closest('post-list-item');
|
|
172
|
+
// Get the left edge position of the list item relative to the left of the screen
|
|
173
|
+
const leftEdgePosition = listItem.offsetLeft;
|
|
174
|
+
// Calculate the first visible position on the screen to the left, right after the left scroll button
|
|
175
|
+
const firstVisiblePosition = this.leftScrollButton.clientWidth;
|
|
176
|
+
// If the item is already fully visible, no translation is needed
|
|
177
|
+
if (leftEdgePosition > firstVisiblePosition)
|
|
178
|
+
return false;
|
|
179
|
+
const translationDecrease = firstVisiblePosition - leftEdgePosition + 1; // + 1 because offset values are rounded
|
|
180
|
+
// If the required scroll distance is too small (less than half the width of the item), don't perform the scroll
|
|
181
|
+
if (skipSmallTranslation && translationDecrease < listItem.clientWidth / 2)
|
|
182
|
+
return false;
|
|
183
|
+
// Calculate the minimum allowed translation amount (no negative scrolling allowed)
|
|
184
|
+
const minimumTranslation = 0;
|
|
185
|
+
// Adjust the translation amount, ensuring it doesn't go below the minimum scrollable area
|
|
186
|
+
const { marginLeft } = getComputedStyle(this.navigationList);
|
|
187
|
+
this.translationAmount = Math.max(this.translationAmount - translationDecrease - parseInt(marginLeft), minimumTranslation);
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Returns the navigation list container element
|
|
192
|
+
*/
|
|
193
|
+
get navigationList() {
|
|
194
|
+
return this.navbar.querySelector(NAVIGATION_LIST_SELECTOR);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Returns the navigation items
|
|
198
|
+
*/
|
|
199
|
+
get navigationItems() {
|
|
200
|
+
return this.navbar.querySelectorAll(NAVIGATION_ITEM_SELECTOR);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Temporarily disables interactions with the navbar during scrolling to prevent accidental clicks.
|
|
204
|
+
* Re-enables interactions after a brief delay to avoid blocking the user entirely.
|
|
205
|
+
*/
|
|
206
|
+
disableNavbar() {
|
|
207
|
+
if (this.navbarDisableTimer)
|
|
208
|
+
clearTimeout(this.navbarDisableTimer);
|
|
209
|
+
this.navbar.style.pointerEvents = 'none';
|
|
210
|
+
this.navbarDisableTimer = setTimeout(() => {
|
|
211
|
+
this.navbar.style.pointerEvents = 'initial';
|
|
212
|
+
}, NAVBAR_DISABLE_DURATION);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Allows to translate the navbar without a transition
|
|
216
|
+
*/
|
|
217
|
+
withoutTransition(callback) {
|
|
218
|
+
const transition = this.navbar.style.transition;
|
|
219
|
+
this.navbar.style.transition = 'none';
|
|
220
|
+
callback();
|
|
221
|
+
setTimeout(() => {
|
|
222
|
+
this.navbar.style.transition = transition;
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
render() {
|
|
226
|
+
return (h(Host, { key: 'd9be56167f714c041eb05283832986ec38c451cd', slot: "post-mainnavigation" }, h("div", { key: '5852c66b93a6eb9697fd7c7b1379e748804c6917', onClick: () => this.handleBackButtonClick(), class: "back-button" }, h("slot", { key: '0d4d98897fb5a8f8cf1c0871037ac01023c41cc2', name: "back-button" })), h("nav", { key: 'c60635b5db5a54b9e7661b92eeec29ed6d453cfe', ref: el => (this.navbar = el) }, h("slot", { key: 'd83facd6cb8c2a892ad432e42357123660c647ed' })), h("div", { key: 'e9afc48596b3e877d9efb9a4189abb8c84aadb6d', class: `left-scroll-button${this.canScrollLeft ? '' : ' d-none'}`, "aria-hidden": "true" }, h("button", { key: 'ef11720ec4f6d7811eb10027871a336e46ba6b84', type: "button", tabindex: "-1", ref: el => (this.leftScrollButton = el), onMouseDown: () => this.handleScrollButtonClick('left') }, h("post-icon", { key: 'f85ff2ef87841409f4b4f6c33e6d0dca4c764cc6', "aria-hidden": "true", name: "chevronleft" }))), h("div", { key: '181dc100ddedcba3f07b5f0ff9aedf165499f74f', class: `right-scroll-button${this.canScrollRight ? '' : ' d-none'}`, "aria-hidden": "true" }, h("button", { key: '83a8a824fcfe499207f6030e11381e68d530c67d', type: "button", tabindex: "-1", ref: el => (this.rightScrollButton = el), onMouseDown: () => this.handleScrollButtonClick('right') }, h("post-icon", { key: '52caec8a9a8c15e97ea5702ec3fe30bd4777c728', "aria-hidden": "true", name: "chevronright" })))));
|
|
227
|
+
}
|
|
228
|
+
static get watchers() { return {
|
|
229
|
+
"translationAmount": ["onTranslateAmountChanges"]
|
|
230
|
+
}; }
|
|
231
|
+
static get style() { return PostMainnavigationStyle0; }
|
|
232
|
+
}, [4, "post-mainnavigation", {
|
|
233
|
+
"canScrollLeft": [32],
|
|
234
|
+
"canScrollRight": [32],
|
|
235
|
+
"translationAmount": [32]
|
|
236
|
+
}, [[9, "mouseup", "stopScrolling"]], {
|
|
237
|
+
"translationAmount": ["onTranslateAmountChanges"]
|
|
238
|
+
}]);
|
|
239
|
+
function defineCustomElement() {
|
|
240
|
+
if (typeof customElements === "undefined") {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const components = ["post-mainnavigation", "post-icon"];
|
|
244
|
+
components.forEach(tagName => { switch (tagName) {
|
|
245
|
+
case "post-mainnavigation":
|
|
246
|
+
if (!customElements.get(tagName)) {
|
|
247
|
+
customElements.define(tagName, PostMainnavigation);
|
|
248
|
+
}
|
|
249
|
+
break;
|
|
250
|
+
case "post-icon":
|
|
251
|
+
if (!customElements.get(tagName)) {
|
|
252
|
+
defineCustomElement$1();
|
|
253
|
+
}
|
|
254
|
+
break;
|
|
255
|
+
} });
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export { PostMainnavigation as P, defineCustomElement as d };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface PostMegadropdownTrigger extends Components.PostMegadropdownTrigger, HTMLElement {}
|
|
4
|
+
export const PostMegadropdownTrigger: {
|
|
5
|
+
prototype: PostMegadropdownTrigger;
|
|
6
|
+
new (): PostMegadropdownTrigger;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { P as PostMegadropdownTrigger$1, d as defineCustomElement$1 } from './post-megadropdown-trigger2.js';
|
|
2
|
+
|
|
3
|
+
const PostMegadropdownTrigger = PostMegadropdownTrigger$1;
|
|
4
|
+
const defineCustomElement = defineCustomElement$1;
|
|
5
|
+
|
|
6
|
+
export { PostMegadropdownTrigger, defineCustomElement };
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { v as version } from './package.js';
|
|
3
|
+
import { c as checkType } from './check-type.js';
|
|
4
|
+
|
|
5
|
+
const postMegadropdownTriggerCss = "post-megadropdown-trigger{width:100%;position:relative;z-index:3}";
|
|
6
|
+
const PostMegadropdownTriggerStyle0 = postMegadropdownTriggerCss;
|
|
7
|
+
|
|
8
|
+
const PostMegadropdownTrigger = /*@__PURE__*/ proxyCustomElement(class PostMegadropdownTrigger extends HTMLElement {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.__registerHost();
|
|
12
|
+
this.for = undefined;
|
|
13
|
+
this.ariaExpanded = false;
|
|
14
|
+
}
|
|
15
|
+
get host() { return this; }
|
|
16
|
+
/**
|
|
17
|
+
* Reference to the slotted button within the trigger, if present.
|
|
18
|
+
* Used to manage click and key events for mega dropdown control.
|
|
19
|
+
*/
|
|
20
|
+
slottedButton = null;
|
|
21
|
+
/**
|
|
22
|
+
* Tracks whether this trigger's dropdown was expanded before a state change.
|
|
23
|
+
* Used to determine if this trigger should handle focus when its dropdown closes.
|
|
24
|
+
*/
|
|
25
|
+
wasExpanded = false;
|
|
26
|
+
/**
|
|
27
|
+
* Watch for changes to the `for` property to validate its type and ensure it is a string.
|
|
28
|
+
* @param forValue - The new value of the `for` property.
|
|
29
|
+
*/
|
|
30
|
+
validateControlFor() {
|
|
31
|
+
checkType(this, 'for', 'string');
|
|
32
|
+
}
|
|
33
|
+
get megadropdown() {
|
|
34
|
+
const ref = document.getElementById(this.for);
|
|
35
|
+
return ref && ref.localName === 'post-megadropdown'
|
|
36
|
+
? ref
|
|
37
|
+
: null;
|
|
38
|
+
}
|
|
39
|
+
handleToggle() {
|
|
40
|
+
if (this.megadropdown) {
|
|
41
|
+
this.megadropdown.toggle();
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.warn(`No post-megadropdown found with ID: ${this.for}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
handleKeyDown = (event) => {
|
|
48
|
+
if (event.key === 'Enter') {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
this.handleToggle();
|
|
51
|
+
if (this.megadropdown && !this.ariaExpanded) {
|
|
52
|
+
setTimeout(() => this.megadropdown.focusFirst(), 100);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
componentDidLoad() {
|
|
57
|
+
this.validateControlFor();
|
|
58
|
+
// Check if the mega dropdown attached to the trigger is expanded or not
|
|
59
|
+
document.addEventListener('postToggleMegadropdown', (event) => {
|
|
60
|
+
if (event.target.id === this.for) {
|
|
61
|
+
this.ariaExpanded = event.detail.isVisible;
|
|
62
|
+
// Focus on the trigger parent of the dropdown after it's closed if close button had been clicked
|
|
63
|
+
if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
|
|
64
|
+
setTimeout(() => {
|
|
65
|
+
this.slottedButton?.focus();
|
|
66
|
+
}, 100);
|
|
67
|
+
}
|
|
68
|
+
this.wasExpanded = this.ariaExpanded;
|
|
69
|
+
if (this.slottedButton) {
|
|
70
|
+
this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
this.slottedButton = this.host.querySelector('button');
|
|
75
|
+
if (this.slottedButton) {
|
|
76
|
+
this.slottedButton.setAttribute('aria-haspopup', 'menu');
|
|
77
|
+
this.slottedButton.addEventListener('click', () => {
|
|
78
|
+
this.handleToggle();
|
|
79
|
+
});
|
|
80
|
+
this.slottedButton.addEventListener('keydown', this.handleKeyDown);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
console.warn('No button found within post-megadropdown-trigger');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
render() {
|
|
87
|
+
return (h(Host, { key: '99849b6b851d061c1365eb5d507cba0e7e6e3ae6', "data-version": version, "tab-index": "-1" }, h("button", { key: 'ddd553c4b893538155263e5bd82c763be68eb3f3' }, h("slot", { key: 'eb006c5b13c69a8e089702f1b46f88bc3d74b045' }))));
|
|
88
|
+
}
|
|
89
|
+
static get watchers() { return {
|
|
90
|
+
"for": ["validateControlFor"]
|
|
91
|
+
}; }
|
|
92
|
+
static get style() { return PostMegadropdownTriggerStyle0; }
|
|
93
|
+
}, [4, "post-megadropdown-trigger", {
|
|
94
|
+
"for": [1],
|
|
95
|
+
"ariaExpanded": [32]
|
|
96
|
+
}, undefined, {
|
|
97
|
+
"for": ["validateControlFor"]
|
|
98
|
+
}]);
|
|
99
|
+
function defineCustomElement() {
|
|
100
|
+
if (typeof customElements === "undefined") {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const components = ["post-megadropdown-trigger"];
|
|
104
|
+
components.forEach(tagName => { switch (tagName) {
|
|
105
|
+
case "post-megadropdown-trigger":
|
|
106
|
+
if (!customElements.get(tagName)) {
|
|
107
|
+
customElements.define(tagName, PostMegadropdownTrigger);
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
} });
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { PostMegadropdownTrigger as P, defineCustomElement as d };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface PostMegadropdown extends Components.PostMegadropdown, HTMLElement {}
|
|
4
|
+
export const PostMegadropdown: {
|
|
5
|
+
prototype: PostMegadropdown;
|
|
6
|
+
new (): PostMegadropdown;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|