@swisspost/design-system-components 9.0.0-next.13 → 9.0.0-next.14

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.
Files changed (382) hide show
  1. package/dist/cjs/{index-f1b08cdb.js → index-0ee3ab4a.js} +334 -152
  2. package/dist/cjs/index.cjs.js +22 -20
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{package-60e57542.js → package-7d11b6ea.js} +1 -1
  5. package/dist/cjs/{post-accordion-1e495c23.js → post-accordion-29861d97.js} +11 -5
  6. package/dist/cjs/{post-accordion-item-86b6950a.js → post-accordion-item-0da0f7aa.js} +15 -8
  7. package/dist/cjs/post-accordion-item.cjs.entry.js +3 -3
  8. package/dist/cjs/post-accordion.cjs.entry.js +3 -3
  9. package/dist/cjs/{post-avatar-067c033b.js → post-avatar-01b9cd6d.js} +23 -11
  10. package/dist/cjs/post-avatar.cjs.entry.js +3 -3
  11. package/dist/cjs/post-back-to-top-9a5647f7.js +80 -0
  12. package/dist/cjs/post-back-to-top.cjs.entry.js +3 -3
  13. package/dist/cjs/post-banner-33929088.js +110 -0
  14. package/dist/cjs/post-banner.cjs.entry.js +3 -3
  15. package/dist/cjs/{post-breadcrumb-b33abf67.js → post-breadcrumb-1384018e.js} +15 -9
  16. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +3 -3
  17. package/dist/cjs/post-breadcrumb.cjs.entry.js +3 -3
  18. package/dist/cjs/{post-card-control-7867a104.js → post-card-control-4c85eda3.js} +45 -14
  19. package/dist/cjs/post-card-control.cjs.entry.js +3 -3
  20. package/dist/cjs/post-closebutton_15.cjs.entry.js +3 -3
  21. package/dist/cjs/{post-collapsible-trigger-6affdc02.js → post-collapsible-trigger-0fb2596a.js} +11 -5
  22. package/dist/cjs/post-collapsible_2.cjs.entry.js +3 -3
  23. package/dist/cjs/post-components.cjs.js +3 -3
  24. package/dist/cjs/{post-footer-330e8999.js → post-footer-f621a563.js} +8 -5
  25. package/dist/cjs/post-footer.cjs.entry.js +3 -3
  26. package/dist/cjs/post-linkarea-865079c1.js +32 -0
  27. package/dist/cjs/post-linkarea.cjs.entry.js +11 -0
  28. package/dist/cjs/{post-menu-item-48191dfd.js → post-menu-item-ab3e2e7e.js} +8 -5
  29. package/dist/cjs/{post-popover-27f3e9aa.js → post-popover-a2ba9226.js} +18 -6
  30. package/dist/cjs/post-popover.cjs.entry.js +3 -3
  31. package/dist/cjs/{post-rating-28904e91.js → post-rating-c402c294.js} +21 -8
  32. package/dist/cjs/post-rating.cjs.entry.js +3 -3
  33. package/dist/cjs/{post-tab-header-86b129ab.js → post-tab-header-c819517d.js} +8 -5
  34. package/dist/cjs/post-tab-header.cjs.entry.js +3 -3
  35. package/dist/cjs/{post-tab-panel-94333a7e.js → post-tab-panel-3cb207f3.js} +8 -5
  36. package/dist/cjs/post-tab-panel.cjs.entry.js +3 -3
  37. package/dist/cjs/{post-tabs-f8581050.js → post-tabs-b6fa39c3.js} +10 -4
  38. package/dist/cjs/post-tabs.cjs.entry.js +3 -3
  39. package/dist/cjs/{post-tag-3a24c574.js → post-tag-9c366519.js} +18 -7
  40. package/dist/cjs/post-tag.cjs.entry.js +3 -3
  41. package/dist/cjs/{post-togglebutton-e7d697bf.js → post-togglebutton-d49bec2c.js} +515 -132
  42. package/dist/cjs/{post-tooltip-8c87dfe3.js → post-tooltip-425c01ba.js} +17 -6
  43. package/dist/cjs/post-tooltip.cjs.entry.js +3 -3
  44. package/dist/collection/collection-manifest.json +4 -3
  45. package/dist/collection/components/post-accordion/post-accordion.js +13 -5
  46. package/dist/collection/components/post-accordion-item/post-accordion-item.js +17 -8
  47. package/dist/collection/components/post-avatar/post-avatar.js +29 -11
  48. package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -1
  49. package/dist/collection/components/post-back-to-top/post-back-to-top.js +9 -5
  50. package/dist/collection/components/post-banner/post-banner.css +1 -1
  51. package/dist/collection/components/post-banner/post-banner.js +34 -14
  52. package/dist/collection/components/post-breadcrumb/post-breadcrumb.js +17 -9
  53. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +7 -4
  54. package/dist/collection/components/post-card-control/post-card-control.js +61 -12
  55. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
  56. package/dist/collection/components/post-collapsible/post-collapsible.js +7 -4
  57. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +6 -3
  58. package/dist/collection/components/post-footer/post-footer.js +8 -5
  59. package/dist/collection/components/post-header/post-header.css +1 -1
  60. package/dist/collection/components/post-header/post-header.js +82 -8
  61. package/dist/collection/components/post-icon/post-icon.js +43 -10
  62. package/dist/collection/components/post-language-option/post-language-option.js +32 -8
  63. package/dist/collection/components/post-language-switch/post-language-switch.css +1 -1
  64. package/dist/collection/components/post-language-switch/post-language-switch.js +22 -6
  65. package/dist/collection/components/post-linkarea/post-linkarea.css +1 -0
  66. package/dist/collection/components/post-linkarea/post-linkarea.js +32 -0
  67. package/dist/collection/components/post-list/post-list.js +17 -6
  68. package/dist/collection/components/post-list-item/post-list-item.js +1 -1
  69. package/dist/collection/components/post-logo/post-logo.js +7 -4
  70. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  71. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +193 -19
  72. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  73. package/dist/collection/components/post-megadropdown/post-megadropdown.js +124 -66
  74. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -1
  75. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +12 -6
  76. package/dist/collection/components/post-menu/post-menu.js +15 -5
  77. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  78. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +11 -5
  79. package/dist/collection/components/post-popover/post-popover.js +22 -4
  80. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  81. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +46 -8
  82. package/dist/collection/components/post-rating/post-rating.js +27 -6
  83. package/dist/collection/components/post-tab-header/post-tab-header.js +8 -5
  84. package/dist/collection/components/post-tab-panel/post-tab-panel.js +8 -5
  85. package/dist/collection/components/post-tabs/post-tabs.js +10 -4
  86. package/dist/collection/components/post-tag/post-tag.js +22 -5
  87. package/dist/collection/components/post-togglebutton/post-togglebutton.js +7 -4
  88. package/dist/collection/components/post-tooltip/post-tooltip.js +21 -6
  89. package/dist/collection/index.js +1 -0
  90. package/dist/components/index.js +36 -35
  91. package/dist/components/{post-collapsible-trigger2.js → p-05590ac0.js} +11 -8
  92. package/dist/components/{post-breadcrumb2.js → p-146677d1.js} +26 -20
  93. package/dist/components/p-1ee1742f.js +237 -0
  94. package/dist/components/p-2083ae2c.js +3 -0
  95. package/dist/components/{post-megadropdown-trigger2.js → p-27edc023.js} +15 -9
  96. package/dist/components/{post-tooltip2.js → p-2d9b46b4.js} +21 -10
  97. package/dist/components/{post-card-control2.js → p-38778a14.js} +49 -18
  98. package/dist/components/p-3aba7629.js +29 -0
  99. package/dist/components/{post-togglebutton2.js → p-3cee636a.js} +9 -6
  100. package/dist/components/p-3e8554e7.js +1646 -0
  101. package/dist/components/p-424d5ea9.js +199 -0
  102. package/dist/components/p-46a6c5ec.js +168 -0
  103. package/dist/components/p-4965cfe1.js +145 -0
  104. package/dist/components/{post-list2.js → p-536eba02.js} +17 -8
  105. package/dist/components/p-5653923a.js +44 -0
  106. package/dist/components/{post-footer2.js → p-58878996.js} +13 -10
  107. package/dist/components/{post-logo2.js → p-5f51ec58.js} +9 -6
  108. package/{loaders/post-popovercontainer2.js → dist/components/p-60cf53cc.js} +25 -10
  109. package/{loaders/post-accordion-item2.js → dist/components/p-68ecd276.js} +22 -15
  110. package/dist/components/{post-tab-header2.js → p-75b8b652.js} +11 -8
  111. package/dist/components/{post-tab-panel2.js → p-78e1d893.js} +10 -7
  112. package/dist/components/{post-menu-trigger2.js → p-8b053fd5.js} +14 -8
  113. package/dist/components/{post-icon2.js → p-91031e3b.js} +35 -14
  114. package/{loaders/post-menu2.js → dist/components/p-91882483.js} +19 -36
  115. package/dist/components/{post-list-item2.js → p-9e4b1f10.js} +3 -3
  116. package/dist/components/{post-accordion2.js → p-a3a004e6.js} +14 -8
  117. package/dist/components/{post-popover2.js → p-af23f7de.js} +21 -9
  118. package/dist/components/{post-collapsible2.js → p-b018d864.js} +9 -6
  119. package/dist/components/{check-non-empty.js → p-b095519d.js} +1 -1
  120. package/dist/components/{post-closebutton2.js → p-bf14d264.js} +5 -5
  121. package/dist/components/{post-breadcrumb-item2.js → p-c7c1d466.js} +10 -7
  122. package/dist/components/{post-tag2.js → p-cab43cee.js} +20 -9
  123. package/{loaders/post-menu-item2.js → dist/components/p-ccccf0c3.js} +4 -4
  124. package/dist/components/{post-tabs2.js → p-ce854a7d.js} +12 -6
  125. package/dist/components/{post-avatar2.js → p-d3fb70af.js} +25 -13
  126. package/dist/components/{post-language-option2.js → p-d47bb5bf.js} +27 -11
  127. package/dist/components/{post-back-to-top2.js → p-e20366a6.js} +15 -11
  128. package/dist/components/{index2.js → p-eabb09ad.js} +3 -3
  129. package/dist/components/{post-language-switch2.js → p-f6d80d76.js} +27 -15
  130. package/dist/components/p-f7b9f90a.js +135 -0
  131. package/dist/components/{post-rating2.js → p-fc59de7c.js} +23 -10
  132. package/dist/components/post-accordion-item.js +1 -1
  133. package/dist/components/post-accordion.js +1 -1
  134. package/dist/components/post-avatar.js +1 -1
  135. package/dist/components/post-back-to-top.js +1 -1
  136. package/dist/components/post-banner.js +1 -1
  137. package/dist/components/post-breadcrumb-item.js +1 -1
  138. package/dist/components/post-breadcrumb.js +1 -1
  139. package/dist/components/post-card-control.js +1 -1
  140. package/dist/components/post-closebutton.js +1 -1
  141. package/dist/components/post-collapsible-trigger.js +1 -1
  142. package/dist/components/post-collapsible.js +1 -1
  143. package/dist/components/post-footer.js +1 -1
  144. package/dist/components/post-header.js +1 -1
  145. package/dist/components/post-icon.js +1 -1
  146. package/dist/components/post-language-option.js +1 -1
  147. package/dist/components/post-language-switch.js +1 -1
  148. package/dist/components/post-linkarea.d.ts +11 -0
  149. package/dist/components/post-linkarea.js +6 -0
  150. package/dist/components/post-list-item.js +1 -1
  151. package/dist/components/post-list.js +1 -1
  152. package/dist/components/post-logo.js +1 -1
  153. package/dist/components/post-mainnavigation.js +1 -1
  154. package/dist/components/post-megadropdown-trigger.js +1 -1
  155. package/dist/components/post-megadropdown.js +1 -1
  156. package/dist/components/post-menu-item.js +1 -1
  157. package/dist/components/post-menu-trigger.js +1 -1
  158. package/dist/components/post-menu.js +1 -1
  159. package/dist/components/post-popover.js +1 -1
  160. package/dist/components/post-popovercontainer.js +1 -1
  161. package/dist/components/post-rating.js +1 -1
  162. package/dist/components/post-tab-header.js +1 -1
  163. package/dist/components/post-tab-panel.js +1 -1
  164. package/dist/components/post-tabs.js +1 -1
  165. package/dist/components/post-tag.js +1 -1
  166. package/dist/components/post-togglebutton.js +1 -1
  167. package/dist/components/post-tooltip.js +1 -1
  168. package/dist/docs.d.ts +8 -0
  169. package/dist/docs.json +333 -149
  170. package/dist/esm/{index-6bfe6554.js → index-2c232bf2.js} +334 -152
  171. package/dist/esm/index.js +21 -20
  172. package/dist/esm/loader.js +3 -3
  173. package/dist/esm/package-8c98af5e.js +3 -0
  174. package/dist/esm/{post-accordion-48eb17c3.js → post-accordion-49fba403.js} +11 -5
  175. package/dist/esm/{post-accordion-item-e0893bb3.js → post-accordion-item-c516517a.js} +15 -8
  176. package/dist/esm/post-accordion-item.entry.js +3 -3
  177. package/dist/esm/post-accordion.entry.js +3 -3
  178. package/dist/esm/{post-avatar-20cde806.js → post-avatar-b527ac63.js} +23 -11
  179. package/dist/esm/post-avatar.entry.js +3 -3
  180. package/dist/esm/post-back-to-top-f514c1f0.js +78 -0
  181. package/dist/esm/post-back-to-top.entry.js +3 -3
  182. package/dist/esm/post-banner-0ad7758b.js +108 -0
  183. package/dist/esm/post-banner.entry.js +3 -3
  184. package/dist/esm/{post-breadcrumb-39203792.js → post-breadcrumb-57bca9dd.js} +15 -9
  185. package/dist/esm/post-breadcrumb-item_2.entry.js +3 -3
  186. package/dist/esm/post-breadcrumb.entry.js +3 -3
  187. package/dist/esm/{post-card-control-d2c25c96.js → post-card-control-ea741f60.js} +45 -14
  188. package/dist/esm/post-card-control.entry.js +3 -3
  189. package/dist/esm/post-closebutton_15.entry.js +3 -3
  190. package/dist/esm/{post-collapsible-trigger-2f9ad9a5.js → post-collapsible-trigger-31155750.js} +11 -5
  191. package/dist/esm/post-collapsible_2.entry.js +3 -3
  192. package/dist/esm/post-components.js +4 -4
  193. package/dist/esm/{post-footer-e804a967.js → post-footer-cdde2086.js} +8 -5
  194. package/dist/esm/post-footer.entry.js +3 -3
  195. package/dist/esm/post-linkarea-cad95623.js +30 -0
  196. package/dist/esm/post-linkarea.entry.js +3 -0
  197. package/dist/esm/{post-menu-item-f9793958.js → post-menu-item-db732728.js} +8 -5
  198. package/dist/esm/{post-popover-8205412a.js → post-popover-00f427ac.js} +18 -6
  199. package/dist/esm/post-popover.entry.js +3 -3
  200. package/dist/esm/{post-rating-95ecb434.js → post-rating-cdcb2a1d.js} +21 -8
  201. package/dist/esm/post-rating.entry.js +3 -3
  202. package/dist/esm/{post-tab-header-d520b99a.js → post-tab-header-1d4113cb.js} +8 -5
  203. package/dist/esm/post-tab-header.entry.js +3 -3
  204. package/dist/esm/{post-tab-panel-8c8d2332.js → post-tab-panel-7a5c03ef.js} +8 -5
  205. package/dist/esm/post-tab-panel.entry.js +3 -3
  206. package/dist/esm/{post-tabs-dd6dfe43.js → post-tabs-308190c0.js} +10 -4
  207. package/dist/esm/post-tabs.entry.js +3 -3
  208. package/dist/esm/{post-tag-593813a4.js → post-tag-aebbda10.js} +18 -7
  209. package/dist/esm/post-tag.entry.js +3 -3
  210. package/dist/esm/{post-togglebutton-120df903.js → post-togglebutton-95ba85d2.js} +515 -132
  211. package/dist/esm/{post-tooltip-a13d6fbb.js → post-tooltip-918d3a54.js} +17 -6
  212. package/dist/esm/post-tooltip.entry.js +3 -3
  213. package/dist/post-components/index.esm.js +1 -1
  214. package/dist/post-components/p-037d6ef2.entry.js +1 -0
  215. package/dist/post-components/p-1e69a72f.js +1 -0
  216. package/dist/post-components/p-2083ae2c.js +1 -0
  217. package/dist/post-components/p-24297444.js +1 -0
  218. package/dist/post-components/{p-4fc83a1c.js → p-267f52a9.js} +3 -3
  219. package/dist/post-components/p-2e6c5b60.js +1 -0
  220. package/dist/post-components/p-3591d4e3.entry.js +1 -0
  221. package/dist/post-components/p-3dec4425.entry.js +1 -0
  222. package/dist/post-components/p-423aecd4.js +1 -0
  223. package/dist/post-components/p-43221de8.entry.js +1 -0
  224. package/dist/post-components/p-48fd00e7.entry.js +1 -0
  225. package/dist/post-components/p-4ca79b52.js +1 -0
  226. package/dist/post-components/p-4d2dee9f.entry.js +1 -0
  227. package/dist/post-components/p-4fedef65.js +1 -0
  228. package/dist/post-components/p-59109b3b.entry.js +1 -0
  229. package/dist/post-components/p-675352c3.entry.js +1 -0
  230. package/dist/post-components/p-6e4527d9.entry.js +1 -0
  231. package/dist/post-components/p-726bfda2.js +1 -0
  232. package/dist/post-components/p-767c0bf3.js +1 -0
  233. package/dist/post-components/p-796968bd.entry.js +1 -0
  234. package/dist/post-components/{p-a72cb18c.js → p-7c9758fa.js} +1 -1
  235. package/dist/post-components/p-8a452260.js +1 -0
  236. package/dist/post-components/p-8a50b900.js +1 -0
  237. package/dist/post-components/p-8de4f677.entry.js +1 -0
  238. package/dist/post-components/p-93632808.js +1 -0
  239. package/dist/post-components/p-9aca3d07.entry.js +1 -0
  240. package/dist/post-components/p-9f0c5164.js +1 -0
  241. package/dist/post-components/p-a6436e7f.js +1 -0
  242. package/dist/post-components/p-ad246c0d.js +1 -0
  243. package/dist/post-components/p-b015efcb.entry.js +1 -0
  244. package/dist/post-components/{p-92f8803c.entry.js → p-b0afc087.entry.js} +1 -1
  245. package/dist/post-components/p-b1adc221.js +1 -0
  246. package/dist/post-components/p-b2c0d21a.js +1 -0
  247. package/dist/post-components/p-b5a566f1.js +1 -0
  248. package/dist/post-components/p-c0961047.entry.js +1 -0
  249. package/dist/post-components/p-c388b7bb.entry.js +1 -0
  250. package/dist/post-components/{p-d6449a93.entry.js → p-ca41b899.entry.js} +1 -1
  251. package/dist/post-components/p-d2395ae9.entry.js +1 -0
  252. package/dist/post-components/p-d9833667.js +2 -0
  253. package/dist/post-components/p-da261c46.entry.js +1 -0
  254. package/dist/post-components/post-components.esm.js +1 -1
  255. package/dist/types/components/post-header/post-header.d.ts +11 -2
  256. package/dist/types/components/post-language-switch/post-language-switch.d.ts +1 -1
  257. package/dist/types/components/post-linkarea/post-linkarea.d.ts +5 -0
  258. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +57 -3
  259. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +26 -12
  260. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +4 -0
  261. package/dist/types/components.d.ts +49 -23
  262. package/dist/types/index.d.ts +3 -2
  263. package/dist/types/stencil-public-runtime.d.ts +6 -0
  264. package/loaders/index.d.ts +2 -0
  265. package/loaders/index.js +3 -2
  266. package/loaders/{post-collapsible-trigger2.js → p-05590ac0.js} +11 -8
  267. package/loaders/{post-breadcrumb-item2.js → p-1beacb73.js} +10 -7
  268. package/loaders/p-2083ae2c.js +3 -0
  269. package/loaders/p-3aba7629.js +29 -0
  270. package/loaders/p-3e8554e7.js +1646 -0
  271. package/loaders/{index2.js → p-56ad4838.js} +3 -3
  272. package/{dist/components/post-popovercontainer2.js → loaders/p-60cf53cc.js} +25 -10
  273. package/{dist/components/post-accordion-item2.js → loaders/p-83baa315.js} +22 -15
  274. package/loaders/{post-menu-trigger2.js → p-8b053fd5.js} +14 -8
  275. package/{dist/components/post-menu2.js → loaders/p-91882483.js} +19 -36
  276. package/loaders/{post-collapsible2.js → p-9fac5d7d.js} +9 -6
  277. package/loaders/{check-non-empty.js → p-b095519d.js} +1 -1
  278. package/{dist/components/post-menu-item2.js → loaders/p-ccccf0c3.js} +4 -4
  279. package/loaders/{post-icon2.js → p-f7177e26.js} +35 -14
  280. package/loaders/p-f7b9f90a.js +135 -0
  281. package/loaders/post-accordion-item.js +1 -1
  282. package/loaders/post-accordion.js +14 -8
  283. package/loaders/post-avatar.js +25 -13
  284. package/loaders/post-back-to-top.js +15 -11
  285. package/loaders/post-banner.js +36 -22
  286. package/loaders/post-breadcrumb-item.js +1 -1
  287. package/loaders/post-breadcrumb.js +26 -20
  288. package/loaders/post-card-control.js +49 -18
  289. package/loaders/post-closebutton.js +5 -5
  290. package/loaders/post-collapsible-trigger.js +1 -1
  291. package/loaders/post-collapsible.js +1 -1
  292. package/loaders/post-footer.js +13 -10
  293. package/loaders/post-header.js +65 -145
  294. package/loaders/post-icon.js +1 -1
  295. package/loaders/post-language-option.js +27 -11
  296. package/loaders/post-language-switch.js +27 -15
  297. package/loaders/post-linkarea.d.ts +11 -0
  298. package/loaders/post-linkarea.js +47 -0
  299. package/loaders/post-list-item.js +3 -3
  300. package/loaders/post-list.js +17 -8
  301. package/loaders/post-logo.js +9 -6
  302. package/loaders/post-mainnavigation.js +193 -9
  303. package/loaders/post-megadropdown-trigger.js +15 -9
  304. package/loaders/post-megadropdown.js +108 -51
  305. package/loaders/post-menu-item.js +1 -1
  306. package/loaders/post-menu-trigger.js +1 -1
  307. package/loaders/post-menu.js +1 -1
  308. package/loaders/post-popover.js +21 -9
  309. package/loaders/post-popovercontainer.js +1 -1
  310. package/loaders/post-rating.js +23 -10
  311. package/loaders/post-tab-header.js +11 -8
  312. package/loaders/post-tab-panel.js +10 -7
  313. package/loaders/post-tabs.js +12 -6
  314. package/loaders/post-tag.js +20 -9
  315. package/loaders/post-togglebutton.js +9 -6
  316. package/loaders/post-tooltip.js +21 -10
  317. package/package.json +10 -11
  318. package/dist/cjs/post-back-to-top-7efd1066.js +0 -76
  319. package/dist/cjs/post-banner-a6808d7d.js +0 -96
  320. package/dist/components/package.js +0 -3
  321. package/dist/components/post-banner2.js +0 -131
  322. package/dist/components/post-header2.js +0 -279
  323. package/dist/components/post-mainnavigation2.js +0 -53
  324. package/dist/components/post-megadropdown2.js +0 -111
  325. package/dist/esm/package-495dba42.js +0 -3
  326. package/dist/esm/post-back-to-top-e422c426.js +0 -74
  327. package/dist/esm/post-banner-7385397e.js +0 -94
  328. package/dist/post-components/p-0b613350.js +0 -1
  329. package/dist/post-components/p-0e216cc4.js +0 -2
  330. package/dist/post-components/p-20e1b680.js +0 -1
  331. package/dist/post-components/p-29bc8ddc.entry.js +0 -1
  332. package/dist/post-components/p-2b4c7ec7.entry.js +0 -1
  333. package/dist/post-components/p-2f327006.entry.js +0 -1
  334. package/dist/post-components/p-3632ace7.js +0 -1
  335. package/dist/post-components/p-3a978ea9.entry.js +0 -1
  336. package/dist/post-components/p-3d4fdde0.js +0 -1
  337. package/dist/post-components/p-427132e3.entry.js +0 -1
  338. package/dist/post-components/p-445dfa96.js +0 -1
  339. package/dist/post-components/p-4c0c13a9.js +0 -1
  340. package/dist/post-components/p-5384e6f4.js +0 -1
  341. package/dist/post-components/p-5630677a.entry.js +0 -1
  342. package/dist/post-components/p-5e5ee06d.entry.js +0 -1
  343. package/dist/post-components/p-68c43ef0.entry.js +0 -1
  344. package/dist/post-components/p-6e39bb59.entry.js +0 -1
  345. package/dist/post-components/p-6fede961.js +0 -1
  346. package/dist/post-components/p-72a5ee9b.js +0 -1
  347. package/dist/post-components/p-72d9d594.entry.js +0 -1
  348. package/dist/post-components/p-85bf673e.entry.js +0 -1
  349. package/dist/post-components/p-8decb072.entry.js +0 -1
  350. package/dist/post-components/p-9596c7d6.js +0 -1
  351. package/dist/post-components/p-975b30f5.js +0 -1
  352. package/dist/post-components/p-9a50697e.entry.js +0 -1
  353. package/dist/post-components/p-aaca7ca7.js +0 -1
  354. package/dist/post-components/p-ac2189b7.js +0 -1
  355. package/dist/post-components/p-afe3b28e.js +0 -1
  356. package/dist/post-components/p-b129c166.js +0 -1
  357. package/dist/post-components/p-bd49bb7e.entry.js +0 -1
  358. package/dist/post-components/p-c043686c.entry.js +0 -1
  359. package/dist/post-components/p-c8544b65.js +0 -1
  360. package/dist/post-components/p-c9f65844.entry.js +0 -1
  361. package/dist/post-components/p-f7c5b0c2.js +0 -1
  362. package/loaders/package.js +0 -3
  363. /package/dist/components/{heading-levels.js → p-247a1668.js} +0 -0
  364. /package/dist/components/{constants.js → p-440193f4.js} +0 -0
  365. /package/dist/components/{slide.js → p-4af6dbed.js} +0 -0
  366. /package/dist/components/{index.browser.js → p-5959f2bd.js} +0 -0
  367. /package/dist/components/{fade.js → p-64e3de38.js} +0 -0
  368. /package/dist/components/{check-type.js → p-8562c7dc.js} +0 -0
  369. /package/dist/components/{attribute-observer.js → p-9748a355.js} +0 -0
  370. /package/dist/components/{check-one-of.js → p-bacd3e2c.js} +0 -0
  371. /package/dist/components/{debounce.js → p-e1baac59.js} +0 -0
  372. /package/dist/components/{get-root.js → p-fc91cbc2.js} +0 -0
  373. /package/loaders/{heading-levels.js → p-247a1668.js} +0 -0
  374. /package/loaders/{constants.js → p-440193f4.js} +0 -0
  375. /package/loaders/{slide.js → p-4af6dbed.js} +0 -0
  376. /package/loaders/{index.browser.js → p-5959f2bd.js} +0 -0
  377. /package/loaders/{fade.js → p-64e3de38.js} +0 -0
  378. /package/loaders/{check-type.js → p-8562c7dc.js} +0 -0
  379. /package/loaders/{attribute-observer.js → p-9748a355.js} +0 -0
  380. /package/loaders/{check-one-of.js → p-bacd3e2c.js} +0 -0
  381. /package/loaders/{debounce.js → p-e1baac59.js} +0 -0
  382. /package/loaders/{get-root.js → p-fc91cbc2.js} +0 -0
@@ -5,23 +5,37 @@ import { version } from "../../../../package";
5
5
  * @slot default - Slot for placing the content inside the anchor or button.
6
6
  */
7
7
  export class PostLanguageOption {
8
- constructor() {
9
- this.code = undefined;
10
- this.active = undefined;
11
- this.variant = undefined;
12
- this.name = undefined;
13
- this.url = undefined;
14
- }
15
8
  host;
9
+ /**
10
+ * The ISO 639 language code, formatted according to [RFC 5646 (also known as BCP 47)](https://datatracker.ietf.org/doc/html/rfc5646). For example, "de".
11
+ */
12
+ code;
16
13
  validateCode(value = this.code) {
17
14
  checkType(value, 'string', 'The "code" property of the post-language-option component must be a string.');
18
15
  }
16
+ /**
17
+ * If set to `true`, the language option is considered the current language for the page.
18
+ */
19
+ active;
19
20
  validateActiveProp(value = this.active) {
20
21
  checkEmptyOrType(value, 'boolean', 'The "active" property of the post-language-option component must be a boolean value.');
21
22
  }
23
+ /**
24
+ * The variant of the post-language-switch parent (dynamically set by the parent)
25
+ */
26
+ variant;
27
+ /**
28
+ * The full name of the language. For example, "Deutsch".
29
+ */
30
+ name;
22
31
  validateName(value = this.name) {
23
32
  checkEmptyOrType(value, 'string', 'The "name" property of the post-language-option component must be a string.');
24
33
  }
34
+ /**
35
+ * The URL used for the href attribute of the internal anchor.
36
+ * This field is optional; if not provided, a button will be used internally instead of an anchor.
37
+ */
38
+ url;
25
39
  validateUrl(value = this.url) {
26
40
  checkEmptyOrType(value, 'string', 'The "url" property of the post-language-option component must be a valid URL.');
27
41
  }
@@ -58,7 +72,7 @@ export class PostLanguageOption {
58
72
  this.emitChange();
59
73
  }
60
74
  };
61
- return (h(Host, { key: '6a7c4af5ab0a953cc2c70621efc6fff905638900', "data-version": version, role: this.variant ? `${this.variant}item` : null }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, "aria-label": this.name, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null))) : (h("button", { "aria-current": this.active ? 'true' : undefined, "aria-label": this.name, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null)))));
75
+ return (h(Host, { key: 'eff35e907ca174aa239604d8e3c937309d306cd1', "data-version": version, role: this.variant ? `${this.variant}item` : null }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, "aria-label": this.name, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null))) : (h("button", { "aria-current": this.active ? 'true' : undefined, "aria-label": this.name, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null)))));
62
76
  }
63
77
  static get is() { return "post-language-option"; }
64
78
  static get originalStyleUrls() {
@@ -87,6 +101,8 @@ export class PostLanguageOption {
87
101
  "tags": [],
88
102
  "text": "The ISO 639 language code, formatted according to [RFC 5646 (also known as BCP 47)](https://datatracker.ietf.org/doc/html/rfc5646). For example, \"de\"."
89
103
  },
104
+ "getter": false,
105
+ "setter": false,
90
106
  "attribute": "code",
91
107
  "reflect": false
92
108
  },
@@ -104,6 +120,8 @@ export class PostLanguageOption {
104
120
  "tags": [],
105
121
  "text": "If set to `true`, the language option is considered the current language for the page."
106
122
  },
123
+ "getter": false,
124
+ "setter": false,
107
125
  "attribute": "active",
108
126
  "reflect": true
109
127
  },
@@ -127,6 +145,8 @@ export class PostLanguageOption {
127
145
  "tags": [],
128
146
  "text": "The variant of the post-language-switch parent (dynamically set by the parent)"
129
147
  },
148
+ "getter": false,
149
+ "setter": false,
130
150
  "attribute": "variant",
131
151
  "reflect": false
132
152
  },
@@ -144,6 +164,8 @@ export class PostLanguageOption {
144
164
  "tags": [],
145
165
  "text": "The full name of the language. For example, \"Deutsch\"."
146
166
  },
167
+ "getter": false,
168
+ "setter": false,
147
169
  "attribute": "name",
148
170
  "reflect": false
149
171
  },
@@ -161,6 +183,8 @@ export class PostLanguageOption {
161
183
  "tags": [],
162
184
  "text": "The URL used for the href attribute of the internal anchor.\nThis field is optional; if not provided, a button will be used internally instead of an anchor."
163
185
  },
186
+ "getter": false,
187
+ "setter": false,
164
188
  "attribute": "url",
165
189
  "reflect": false
166
190
  }
@@ -1 +1 @@
1
- :host{display:block}@media screen and (max-width: 1023.99px){:host{display:flex !important;gap:.5rem}}.post-language-switch-dropdown-container{display:flex;flex-direction:column}.post-language-switch-dropdown-container>*{width:100%}.post-language-switch-trigger{cursor:pointer;padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-decoration:none;display:inline-flex;align-items:center;gap:var(--post-core-dimension-6);border-radius:var(--post-core-dimension-24);font-size:var(--post-core-font-size-16);padding:var(--post-core-dimension-3) var(--post-core-dimension-10)}.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:var(--post-core-dimension-16);width:var(--post-core-dimension-16)}
1
+ :host{display:block}@media screen and (max-width: 1023.98px){:host{display:flex !important;gap:.5rem}}.post-language-switch-dropdown-container{display:flex;flex-direction:column}.post-language-switch-dropdown-container>*{width:100%}.post-language-switch-trigger{cursor:pointer;padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-decoration:none;display:inline-flex;align-items:center;gap:var(--post-core-dimension-6);border-radius:var(--post-core-dimension-24);font-size:var(--post-core-font-size-16);padding:var(--post-core-dimension-3) var(--post-core-dimension-10)}.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:var(--post-core-dimension-16);width:var(--post-core-dimension-16)}
@@ -4,22 +4,32 @@ import { version } from "../../../../package";
4
4
  import { SWITCH_VARIANTS } from "./switch-variants";
5
5
  import { nanoid } from "nanoid";
6
6
  export class PostLanguageSwitch {
7
- constructor() {
8
- this.caption = undefined;
9
- this.description = undefined;
10
- this.variant = 'list';
11
- this.activeLang = undefined;
12
- }
13
7
  host;
8
+ /**
9
+ * A title for the list of language options
10
+ */
11
+ caption;
14
12
  validateCaption(value = this.caption) {
15
13
  checkType(value, 'string', 'The "caption" property of the post-language-switch component must be a string.');
16
14
  }
15
+ /**
16
+ * A descriptive text for the list of language options
17
+ */
18
+ description;
17
19
  validateDescription(value = this.description) {
18
20
  checkType(value, 'string', 'The "description" property of the post-language-switch component must be a string.');
19
21
  }
22
+ /**
23
+ * Variant that determines the rendering of the language switch either as a list (used on mobile in the header) or a dropdown (used on desktop in the header)
24
+ */
25
+ variant = 'list';
20
26
  validateVariant(value = this.variant) {
21
27
  checkEmptyOrOneOf(value, SWITCH_VARIANTS, `The "variant" property of the post-language-switch component must be: ${SWITCH_VARIANTS.join(', ')}`);
22
28
  }
29
+ /**
30
+ * The active language of the language switch
31
+ */
32
+ activeLang;
23
33
  connectedCallback() {
24
34
  this.updateChildrenVariant();
25
35
  // Get the active language based on children's active state
@@ -97,6 +107,8 @@ export class PostLanguageSwitch {
97
107
  "tags": [],
98
108
  "text": "A title for the list of language options"
99
109
  },
110
+ "getter": false,
111
+ "setter": false,
100
112
  "attribute": "caption",
101
113
  "reflect": false
102
114
  },
@@ -114,6 +126,8 @@ export class PostLanguageSwitch {
114
126
  "tags": [],
115
127
  "text": "A descriptive text for the list of language options"
116
128
  },
129
+ "getter": false,
130
+ "setter": false,
117
131
  "attribute": "description",
118
132
  "reflect": false
119
133
  },
@@ -137,6 +151,8 @@ export class PostLanguageSwitch {
137
151
  "tags": [],
138
152
  "text": "Variant that determines the rendering of the language switch either as a list (used on mobile in the header) or a dropdown (used on desktop in the header)"
139
153
  },
154
+ "getter": false,
155
+ "setter": false,
140
156
  "attribute": "variant",
141
157
  "reflect": false,
142
158
  "defaultValue": "'list'"
@@ -0,0 +1 @@
1
+ :host{display:contents;cursor:pointer}
@@ -0,0 +1,32 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { version } from "../../../../package";
3
+ export class PostLinkarea {
4
+ hostElement;
5
+ handleClick = () => {
6
+ const customSlottedLink = this.hostElement.querySelector('a[data-link]');
7
+ const linkElement = customSlottedLink
8
+ ? customSlottedLink
9
+ : this.hostElement.querySelector('a');
10
+ if (linkElement.href) {
11
+ window.location.href = linkElement.href;
12
+ }
13
+ else {
14
+ console.error('<post-linkarea> : Your element must contain a child with a `href` property.');
15
+ }
16
+ };
17
+ render() {
18
+ return (h(Host, { key: 'fd83dca8dca965d14f5a844454e79d7fb449639d', "data-version": version, onClick: this.handleClick, tabindex: "0" }, h("slot", { key: '278537c9aabe710d118cdd6075ab506a8a4dcfe2' })));
19
+ }
20
+ static get is() { return "post-linkarea"; }
21
+ static get originalStyleUrls() {
22
+ return {
23
+ "$": ["post-linkarea.scss"]
24
+ };
25
+ }
26
+ static get styleUrls() {
27
+ return {
28
+ "$": ["post-linkarea.css"]
29
+ };
30
+ }
31
+ static get elementRef() { return "hostElement"; }
32
+ }
@@ -6,12 +6,19 @@ import { nanoid } from "nanoid";
6
6
  * @slot post-list-item - Slot for placing post-list-item components.
7
7
  */
8
8
  export class PostList {
9
- constructor() {
10
- this.titleId = undefined;
11
- this.titleHidden = false;
12
- this.horizontal = false;
13
- }
14
9
  host;
10
+ /**
11
+ * The unique title of the list that is also referenced in the labelledby
12
+ */
13
+ titleId;
14
+ /**
15
+ * If `true`, the list title will be hidden. Otherwise, it will be displayed.`
16
+ */
17
+ titleHidden = false;
18
+ /**
19
+ * The list can become horizontal by setting `horizontal="true"` or just `horizontal`
20
+ */
21
+ horizontal = false;
15
22
  titleEl;
16
23
  componentWillLoad() {
17
24
  /**
@@ -28,7 +35,7 @@ export class PostList {
28
35
  }
29
36
  }
30
37
  render() {
31
- return (h(Host, { key: '70594af566e1fe34ce0b9ebe1a8cbbc868dab973', "data-version": version }, h("div", { key: '27b6c4af3d51a0d83f968ec751b6bcf46feb7d05', ref: el => (this.titleEl = el), id: this.titleId, class: `list-title${this.titleHidden ? ' visually-hidden' : ''}` }, h("slot", { key: 'a913bd018199bb031e3d96d487bd528831453387' })), h("div", { key: 'e1a3ddecc643a78f57b91cc9ccb0de6b02302a47', role: "list", "aria-labelledby": this.titleId }, h("slot", { key: 'bd7c6df300d28fe0b9f1dd3135eb42da00e731b9', name: "post-list-item" }))));
38
+ return (h(Host, { key: 'bdd973098d8b2a74635d489dca8f0f6825e31c51', "data-version": version }, h("div", { key: '9dcd6ca7069658c3e7f0d14fc130d18ebe522acb', ref: el => (this.titleEl = el), id: this.titleId, class: `list-title${this.titleHidden ? ' visually-hidden' : ''}` }, h("slot", { key: 'ad51f345b2c120796d02dbc3d6815a58addc7fb4' })), h("div", { key: '47fddd7b977c85c195757f461c0ec009270cdb8b', role: "list", "aria-labelledby": this.titleId }, h("slot", { key: '176662b40ca47b6aeeded26256bc84bdee6483a6', name: "post-list-item" }))));
32
39
  }
33
40
  static get is() { return "post-list"; }
34
41
  static get originalStyleUrls() {
@@ -57,6 +64,8 @@ export class PostList {
57
64
  "tags": [],
58
65
  "text": "If `true`, the list title will be hidden. Otherwise, it will be displayed.`"
59
66
  },
67
+ "getter": false,
68
+ "setter": false,
60
69
  "attribute": "title-hidden",
61
70
  "reflect": false,
62
71
  "defaultValue": "false"
@@ -75,6 +84,8 @@ export class PostList {
75
84
  "tags": [],
76
85
  "text": "The list can become horizontal by setting `horizontal=\"true\"` or just `horizontal`"
77
86
  },
87
+ "getter": false,
88
+ "setter": false,
78
89
  "attribute": "horizontal",
79
90
  "reflect": true,
80
91
  "defaultValue": "false"
@@ -8,7 +8,7 @@ export class PostListItem {
8
8
  this.host.setAttribute('slot', 'post-list-item');
9
9
  }
10
10
  render() {
11
- return (h(Host, { key: 'f7b26e05f1fa8bab9909dcee305dbf74960671eb', role: "listitem", slot: "post-list-item" }, h("slot", { key: '3d75b0acf3f4a89c64c447e8d182bbc9a4f930a0' })));
11
+ return (h(Host, { key: '8e209e77859bd05d62cae41aec9dec6fb2e820cb', role: "listitem", slot: "post-list-item" }, h("slot", { key: 'ce79a335e80401465b74208957e22983d6df4ce0' })));
12
12
  }
13
13
  static get is() { return "post-list-item"; }
14
14
  static get encapsulation() { return "shadow"; }
@@ -5,10 +5,11 @@ import { checkEmptyOrUrl } from "../../utils/index";
5
5
  * @slot default - Slot for placing hidden descriptive text. If `url` is set, this text will serve as the accessible name of the link; otherwise, it will be used as the title of the SVG.
6
6
  */
7
7
  export class PostLogo {
8
- constructor() {
9
- this.url = undefined;
10
- }
11
8
  host;
9
+ /**
10
+ * The URL to which the user is redirected upon clicking the logo.
11
+ */
12
+ url;
12
13
  validateUrl() {
13
14
  checkEmptyOrUrl(this.url, 'The "url" property of the post-logo is invalid');
14
15
  }
@@ -24,7 +25,7 @@ export class PostLogo {
24
25
  render() {
25
26
  const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
26
27
  const LogoTag = logoLink ? 'a' : 'span';
27
- return (h(Host, { key: 'c20cf7b8d3684d33cf9b85448a560a93cd4df118', "data-version": version }, h(LogoTag, { key: '16f5f647935c87124d7bf1be5dd5fb4c6d56a76f', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: '1373265c0c2271069c1ee540fb6d5576e67dd923', class: "description" }, h("slot", { key: 'd52c8c0d28e8292f7a30733dc195e1e1e32edf2a', onSlotchange: () => this.checkDescription() })), h("svg", { key: 'ad1c0ff356325415a1f99c4bc941895d1448801a', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: 'ca8015671b16c192d44a1b48699e45ff7adc6123', id: "Logo" }, h("rect", { key: 'e862e2ea34630326ca6f6eea164f227b138d44c1', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: 'd25e571bd67524c33c343312826e37dafedf918c', 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: 'a053c52cf9de963d52bc6a0f078a986c836b6038', 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" }))))));
28
+ return (h(Host, { key: 'd5f61d2740588571b77c9317d535b5c12c9ba996', "data-version": version }, h(LogoTag, { key: '95d19b08bae7e4137f43c0b7e345fa44ed1a6e9e', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: 'd7a4e97a9685ebc099e57737926d0fbe6d8ed12f', class: "description" }, h("slot", { key: '6b08a53ad00b103930f0b1aab1d305ae77feccba', onSlotchange: () => this.checkDescription() })), h("svg", { key: 'a7adc544f620325bdec5fa3fbc5a880d10a85f7e', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: 'f68e9b4b0ef8b0d4b34a47a23cb4f0a0e04b5456', id: "Logo" }, h("rect", { key: 'b21a948f30baa4808182ccee37822315d87282eb', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: '57ec911498cb069aaa80b4857447c1da3aa76959', 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: 'fed41d70f4532da5769cbc51740e21520568af7f', 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" }))))));
28
29
  }
29
30
  static get is() { return "post-logo"; }
30
31
  static get encapsulation() { return "shadow"; }
@@ -59,6 +60,8 @@ export class PostLogo {
59
60
  "tags": [],
60
61
  "text": "The URL to which the user is redirected upon clicking the logo."
61
62
  },
63
+ "getter": false,
64
+ "setter": false,
62
65
  "attribute": "url",
63
66
  "reflect": false
64
67
  }
@@ -1 +1 @@
1
- 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:inherit;font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-align:start}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>button,post-mainnavigation post-list-item post-megadropdown-trigger button{display:flex;align-items:center;justify-content:space-between}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button: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>button:focus-visible,post-mainnavigation post-list-item post-megadropdown-trigger button:focus-visible{border-radius:var(--post-core-dimension-4);z-index:1}post-mainnavigation .back-button post-icon{transform:rotate(180deg)}@media screen and (max-width: 1023.99px){post-mainnavigation .back-button{font-size:var(--post-core-font-size-16)}}@media screen and (max-width: 599.99px){post-mainnavigation .back-button{font-size:var(--post-core-font-size-14)}}@media screen and (min-width: 1024px){post-mainnavigation nav{position:relative;max-width:100vw;max-height:var(--post-core-dimension-56);user-select:none}post-mainnavigation post-list{margin-inline:var(--post-core-dimension-4)}post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline:var(--post-core-dimension-12);height:var(--post-core-dimension-56);gap:var(--post-core-dimension-4);font-size:var(--post-core-font-size-16);border-block:0 solid rgba(0,0,0,0);border-block-end-color:currentColor}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{border-block-width:var(--post-core-dimension-2)}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]{border-block-width:var(--post-core-dimension-4);font-weight:var(--post-core-font-weight-700)}}@media screen and (min-width: 1024px)and (max-width: 599.99px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:var(--post-core-font-size-14)}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:var(--post-core-dimension-12);transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item 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:var(--post-core-dimension-24);width:var(--post-core-dimension-24);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%;height:var(--post-core-dimension-48);padding-inline-end:calc(var(--post-core-dimension-6) + var(--post-core-dimension-24) + var(--post-core-dimension-16));gap:var(--post-core-dimension-16);font-weight:var(--post-core-font-weight-400);position:relative}post-mainnavigation post-megadropdown button:not(.btn-icon-close)::before,post-mainnavigation post-megadropdown a::before{content:"";background-color:currentColor;bottom:0;width:100%;height:var(--post-core-dimension-1);position:absolute;left:0}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::before,post-mainnavigation post-megadropdown a:hover::before{height:var(--post-core-dimension-3)}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::after,post-mainnavigation post-megadropdown a:hover::after{content:"";display:block;margin-right:calc((var(--post-core-dimension-24) + var(--post-core-dimension-16))*-1);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='m31.95 16-9.11 9.11c-.2.2-.45.29-.71.29s-.51-.1-.71-.29a.996.996 0 0 1 0-1.41l6.69-6.69H-.05v-2h28.17l-6.69-6.69a.996.996 0 1 1 1.41-1.41l9.11 9.11Z'%3E%3C/path%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;width:var(--post-core-dimension-20);min-width:var(--post-core-dimension-20);height:var(--post-core-dimension-20)}}@media screen and (min-width: 1024px){post-mainnavigation [slot=back-button]{display:none}}@media screen and (max-width: 1023.99px){post-mainnavigation post-list>[role=list]{transform:none !important}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;height:var(--post-core-dimension-48);padding-inline-end:calc(var(--post-core-dimension-6) + var(--post-core-dimension-24) + var(--post-core-dimension-16));gap:var(--post-core-dimension-16);font-weight:var(--post-core-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:currentColor;bottom:0;width:100%;height:var(--post-core-dimension-1);position:absolute;left:0}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{height:var(--post-core-dimension-3)}post-mainnavigation post-list-item>a:hover::after,post-mainnavigation post-list-item>button:hover::after,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::after{content:"";display:block;margin-right:calc((var(--post-core-dimension-24) + var(--post-core-dimension-16))*-1);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='m31.95 16-9.11 9.11c-.2.2-.45.29-.71.29s-.51-.1-.71-.29a.996.996 0 0 1 0-1.41l6.69-6.69H-.05v-2h28.17l-6.69-6.69a.996.996 0 1 1 1.41-1.41l9.11 9.11Z'%3E%3C/path%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;width:var(--post-core-dimension-20);min-width:var(--post-core-dimension-20);height:var(--post-core-dimension-20)}}post-mainnavigation .back-button .btn{padding-inline:0}
1
+ post-mainnavigation{flex:0 0 auto}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:inherit;font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-align:start}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:var(--post-core-dimension-4)}post-mainnavigation .back-button post-icon{transform:rotate(180deg)}@media screen and (max-width: 1023.98px){post-mainnavigation .back-button{font-size:var(--post-core-font-size-16)}}@media screen and (max-width: 599.98px){post-mainnavigation .back-button{font-size:var(--post-core-font-size-14)}}@media screen and (min-width: 1024px){post-mainnavigation{display:block}post-mainnavigation nav{max-width:100vw;background:var(--post-core-color-brand-white);max-height:var(--main-navigation-height);user-select:none;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{position:absolute;inset-block:0;overflow:hidden}post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button button{padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;appearance:button;background:var(--post-core-color-brand-white);padding:var(--post-core-dimension-16);box-shadow:var(--post-core-elevation-5);line-height:var(--post-core-line-height-100);height:100%}post-mainnavigation .left-scroll-button button post-icon,post-mainnavigation .right-scroll-button button post-icon{font-size:1rem}post-mainnavigation .left-scroll-button{inset-inline-start:0;padding-inline-end:2rem}post-mainnavigation .right-scroll-button{inset-inline-end:0;padding-inline-start:2rem}post-mainnavigation post-list{margin-inline:var(--post-core-dimension-4)}post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}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:var(--post-core-dimension-12);height:var(--main-navigation-height);gap:var(--post-core-dimension-4);font-size:var(--post-core-font-size-16);border-block:0 solid rgba(0,0,0,0);border-block-end-color:currentColor}}@media screen and (min-width: 1024px)and (max-width: 1023.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{z-index:3}}@media screen and (min-width: 1024px)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{z-index:4}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{border-block-width:var(--post-core-dimension-2)}}@media screen and (min-width: 1024px){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]{border-block-width:var(--post-core-dimension-4);font-weight:var(--post-core-font-weight-700)}}@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:var(--post-core-font-size-14)}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:var(--post-core-dimension-12);transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item 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:var(--post-core-dimension-24);width:var(--post-core-dimension-24);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:var(--post-core-dimension-48);padding-inline-end:calc(var(--post-core-dimension-6) + var(--post-core-dimension-24) + var(--post-core-dimension-16));gap:var(--post-core-dimension-16);font-weight:var(--post-core-font-weight-400);position:relative}post-mainnavigation post-megadropdown button:not(.btn-icon-close)::before,post-mainnavigation post-megadropdown a::before{content:"";background-color:currentColor;bottom:0;width:100%;height:var(--post-core-dimension-1);position:absolute;left:0}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::before,post-mainnavigation post-megadropdown a:hover::before{height:var(--post-core-dimension-3)}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::after,post-mainnavigation post-megadropdown a:hover::after{content:"";display:block;margin-right:calc((var(--post-core-dimension-24) + var(--post-core-dimension-16))*-1);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='m31.95 16-9.11 9.11c-.2.2-.45.29-.71.29s-.51-.1-.71-.29a.996.996 0 0 1 0-1.41l6.69-6.69H-.05v-2h28.17l-6.69-6.69a.996.996 0 1 1 1.41-1.41l9.11 9.11Z'%3E%3C/path%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;width:var(--post-core-dimension-20);min-width:var(--post-core-dimension-20);height:var(--post-core-dimension-20)}}@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:var(--post-core-dimension-48);padding-inline-end:calc(var(--post-core-dimension-6) + var(--post-core-dimension-24) + var(--post-core-dimension-16));gap:var(--post-core-dimension-16);font-weight:var(--post-core-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:currentColor;bottom:0;width:100%;height:var(--post-core-dimension-1);position:absolute;left:0}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{height:var(--post-core-dimension-3)}post-mainnavigation post-list-item>a:hover::after,post-mainnavigation post-list-item>button:hover::after,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::after{content:"";display:block;margin-right:calc((var(--post-core-dimension-24) + var(--post-core-dimension-16))*-1);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='m31.95 16-9.11 9.11c-.2.2-.45.29-.71.29s-.51-.1-.71-.29a.996.996 0 0 1 0-1.41l6.69-6.69H-.05v-2h28.17l-6.69-6.69a.996.996 0 1 1 1.41-1.41l9.11 9.11Z'%3E%3C/path%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;width:var(--post-core-dimension-20);min-width:var(--post-core-dimension-20);height:var(--post-core-dimension-20)}}post-mainnavigation .back-button .btn{padding-inline:0}
@@ -1,13 +1,38 @@
1
1
  import { Host, h } from "@stencil/core";
2
+ import { throttle } from "throttle-debounce";
3
+ const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
4
+ const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
5
+ const NAVIGATION_LIST_SELECTOR = 'post-list:not(post-megadropdown *) > [role="list"]';
6
+ const NAVIGATION_ITEM_SELECTOR = ':is(post-list-item > a, post-list-item > post-megadropdown-trigger > button):not(post-megadropdown *)';
2
7
  export class PostMainnavigation {
3
8
  header;
9
+ navbar;
10
+ rightScrollButton;
11
+ leftScrollButton;
12
+ scrollRepeatInterval;
13
+ navbarDisableTimer;
14
+ mutationObserver = new MutationObserver(async (mutations) => {
15
+ // Wait for all elements to be hydrated
16
+ await Promise.all(mutations
17
+ .flatMap((mutation) => Array.from(mutation.addedNodes))
18
+ .map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
19
+ // Recalculate scrollability after DOM changes
20
+ this.checkScrollability();
21
+ });
4
22
  host;
23
+ canScrollLeft = false;
24
+ canScrollRight = false;
25
+ translateAmount = 0;
5
26
  /**
6
- * Gets emitted when a user closes the main navigation on mobile
27
+ * Update navbar translation when 'translateAmount' changes and recalculate scrollability
7
28
  */
8
- postToggle;
29
+ onTranslateAmountChanges(value) {
30
+ this.navbar.style.transform = `translateX(-${value}px)`;
31
+ this.checkScrollability();
32
+ }
9
33
  /**
10
34
  * Retrieves a reference to the closest 'post-header' element when the main navigation is added to the DOM.
35
+ * This ensures that we can interact with the header for mobile menu toggling.
11
36
  */
12
37
  connectedCallback() {
13
38
  this.header = this.host.closest('post-header');
@@ -17,13 +42,158 @@ export class PostMainnavigation {
17
42
  */
18
43
  disconnectedCallback() {
19
44
  this.header = null;
45
+ this.mutationObserver.disconnect();
46
+ }
47
+ componentDidLoad() {
48
+ setTimeout(() => this.checkScrollability()); // Initial check to determine if scrolling is needed
49
+ this.mutationObserver.observe(this.navigationList, { subtree: true, childList: true }); // Recheck scrollability when navigation list changes
50
+ window.addEventListener('resize', // Recheck scrollability on window resize
51
+ throttle(100, () => this.checkScrollability()));
52
+ // Handle focus changes and adjust scroll as needed
53
+ this.navbar.addEventListener('focusin', e => this.adjustTranslation(e));
20
54
  }
21
55
  handleBackButtonClick() {
22
56
  if (this.header)
23
57
  this.header.toggleMobileMenu();
24
58
  }
59
+ /**
60
+ * Moves focus on the navbar and adjusts scrolling to bring focused element into view.
61
+ */
62
+ adjustTranslation(e) {
63
+ const focusedElement = e.target;
64
+ if (!this.canScroll || !focusedElement.matches(NAVIGATION_ITEM_SELECTOR))
65
+ return;
66
+ // We need to move the element into the view before it is focused to avoid browser default behavior
67
+ e.preventDefault();
68
+ this.withoutTransition(() => {
69
+ // Try scrolling in both directions, only the necessary translation will actually occur
70
+ this.translateRightTo(focusedElement);
71
+ this.translateLeftTo(focusedElement);
72
+ focusedElement.focus();
73
+ });
74
+ }
75
+ /**
76
+ * Checks if scrolling is possible in either direction (left or right) and updates the state accordingly.
77
+ */
78
+ checkScrollability() {
79
+ const { scrollWidth, clientWidth } = this.navbar;
80
+ const couldScroll = this.canScroll;
81
+ if (scrollWidth === clientWidth) {
82
+ // If scroll width equals client width, scrolling is disabled in both directions
83
+ this.canScrollLeft = this.canScrollRight = false;
84
+ }
85
+ else {
86
+ this.canScrollLeft = this.translateAmount !== 0; // Scrolling left is possible if not at the start
87
+ this.canScrollRight = clientWidth + this.translateAmount !== scrollWidth; // Scrolling right is possible if not at the end
88
+ }
89
+ if (couldScroll && !this.canScroll) {
90
+ this.withoutTransition(() => (this.translateAmount = 0));
91
+ }
92
+ }
93
+ /**
94
+ * Returns whether scrolling is enabled in either the left or right direction.
95
+ */
96
+ get canScroll() {
97
+ return this.canScrollLeft || this.canScrollRight;
98
+ }
99
+ /**
100
+ * Handles the scrolling behavior when a user clicks on the left or right scroll buttons.
101
+ */
102
+ handleScrollButtonClick(direction) {
103
+ if (!this.canScroll)
104
+ return;
105
+ // Disable interaction with the navbar during scrolling
106
+ this.disableNavbar();
107
+ // Perform the initial scroll action
108
+ this.scroll(direction);
109
+ // Repeat the scrolling action while the button is held down
110
+ this.scrollRepeatInterval = setInterval(() => {
111
+ this.scroll(direction);
112
+ }, SCROLL_REPEAT_INTERVAL);
113
+ }
114
+ /**
115
+ * Stops the repeated scrolling when the mouse button is released.
116
+ */
117
+ stopScrolling() {
118
+ if (this.scrollRepeatInterval)
119
+ clearInterval(this.scrollRepeatInterval);
120
+ }
121
+ scroll(direction) {
122
+ const navigationItems = Array.from(this.navigationItems);
123
+ if (direction === 'left')
124
+ navigationItems.reverse();
125
+ for (const item of navigationItems) {
126
+ const couldScroll = direction === 'left' ? this.translateLeftTo(item) : this.translateRightTo(item);
127
+ if (couldScroll)
128
+ break;
129
+ }
130
+ }
131
+ translateRightTo(navigationItem) {
132
+ const itemRightEdgePosition = navigationItem.offsetLeft + navigationItem.offsetWidth + this.getFocusMargin(navigationItem);
133
+ const lastVisiblePosition = this.navbar.clientWidth + this.translateAmount;
134
+ // If the item is already fully visible, don't scroll
135
+ if (itemRightEdgePosition < lastVisiblePosition)
136
+ return false;
137
+ const maxTranslateAmount = this.navbar.scrollWidth - this.navbar.clientWidth;
138
+ const newRightEdgePosition = itemRightEdgePosition + this.rightScrollButton.clientWidth - this.navbar.clientWidth;
139
+ this.translateAmount = Math.min(maxTranslateAmount, newRightEdgePosition);
140
+ return true;
141
+ }
142
+ translateLeftTo(navigationItem) {
143
+ const itemLeftEdgePosition = navigationItem.offsetLeft - this.getFocusMargin(navigationItem);
144
+ const firstVisiblePosition = this.translateAmount;
145
+ // If the item is already fully visible, don't scroll
146
+ if (itemLeftEdgePosition > firstVisiblePosition)
147
+ return false;
148
+ const minTranslateAmount = 0;
149
+ const newRightEdgePosition = itemLeftEdgePosition - this.leftScrollButton.clientWidth;
150
+ this.translateAmount = Math.max(minTranslateAmount, newRightEdgePosition);
151
+ return true;
152
+ }
153
+ /**
154
+ * Calculate the margin required for focus outline around navigation items
155
+ */
156
+ getFocusMargin(navigationItem) {
157
+ const { outlineWidth, outlineOffset } = getComputedStyle(navigationItem);
158
+ return parseInt(outlineWidth) + parseInt(outlineOffset) + 1;
159
+ }
160
+ /**
161
+ * Returns the navigation list container element
162
+ */
163
+ get navigationList() {
164
+ return this.navbar.querySelector(NAVIGATION_LIST_SELECTOR);
165
+ }
166
+ /**
167
+ * Returns the navigation items
168
+ */
169
+ get navigationItems() {
170
+ return this.navbar.querySelectorAll(NAVIGATION_ITEM_SELECTOR);
171
+ }
172
+ /**
173
+ * Temporarily disables interactions with the navbar during scrolling to prevent accidental clicks.
174
+ * Re-enables interactions after a brief delay to avoid blocking the user entirely.
175
+ */
176
+ disableNavbar() {
177
+ if (this.navbarDisableTimer)
178
+ clearTimeout(this.navbarDisableTimer);
179
+ this.navbar.style.pointerEvents = 'none';
180
+ this.navbarDisableTimer = setTimeout(() => {
181
+ this.navbar.style.pointerEvents = 'initial';
182
+ }, NAVBAR_DISABLE_DURATION);
183
+ }
184
+ /**
185
+ * Allows to translate the navbar without a transition
186
+ */
187
+ withoutTransition(callback) {
188
+ const transition = this.navbar.style.transition;
189
+ this.navbar.style.transition = 'none';
190
+ callback();
191
+ setTimeout(() => {
192
+ this.navbar.style.transition = transition;
193
+ });
194
+ }
25
195
  render() {
26
- return (h(Host, { key: '23d1cc3919d15543bf409e8fa25be02973532a12', slot: "post-mainnavigation" }, h("div", { key: '8d35b8b7715fbac387361706a03a10e4af481301', onClick: () => this.handleBackButtonClick(), class: "back-button" }, h("slot", { key: '01899ddef2cdc321ff7383eec310877335e951a7', name: "back-button" })), h("nav", { key: '3237225f2608b28355e669e11189ba1ccc9c593a' }, h("slot", { key: '32105f3acf726a590631896c707a2149706a90d5' }))));
196
+ return (h(Host, { key: '3280c55d0f8e7aec6e1dc3f59744114b2557cb04', slot: "post-mainnavigation" }, h("div", { key: '446ede19ef62a21022a771edb8a6e8eb30a5c5d3', onClick: () => this.handleBackButtonClick(), class: "back-button" }, h("slot", { key: '5e923b62133d3452676445349624157fd7d3d957', name: "back-button" })), h("nav", { key: 'd67723ba6b42ec2b083197091ec7226dc258897e', ref: el => (this.navbar = el) }, h("slot", { key: 'ea1a0fd7f76e02b89789713a49fc4d7fd6e8a022' })), h("div", { key: '1a3d640acfe23ae5c5f9ab26a7bca9c3c2bc4434', class: `left-scroll-button${this.canScrollLeft ? '' : ' d-none'}`, "aria-hidden": "true" }, h("button", { key: 'a3260bba8104bf9155120e04fed6ba0aa102e529', type: "button", tabindex: "-1", ref: el => (this.leftScrollButton = el), onMouseDown: () => this.handleScrollButtonClick('left') }, h("post-icon", { key: '0bba0a76f93098267be8432636391641f55d5df8', "aria-hidden": "true", name: "chevronleft" }))), h("div", { key: '401ef6821f258737d17ed54ae1c577cc4783a3f9', class: `right-scroll-button${this.canScrollRight ? '' : ' d-none'}`, "aria-hidden": "true" }, h("button", { key: 'd964f4b74ad8fef86115b12fcda12cc54da936f3', type: "button", tabindex: "-1", ref: el => (this.rightScrollButton = el), onMouseDown: () => this.handleScrollButtonClick('right') }, h("post-icon", { key: '5758f48df24b4a3ea241f43464b448878e31977d', "aria-hidden": "true", name: "chevronright" })))));
27
197
  }
28
198
  static get is() { return "post-mainnavigation"; }
29
199
  static get originalStyleUrls() {
@@ -36,23 +206,27 @@ export class PostMainnavigation {
36
206
  "$": ["post-mainnavigation.css"]
37
207
  };
38
208
  }
39
- static get events() {
209
+ static get states() {
210
+ return {
211
+ "canScrollLeft": {},
212
+ "canScrollRight": {},
213
+ "translateAmount": {}
214
+ };
215
+ }
216
+ static get elementRef() { return "host"; }
217
+ static get watchers() {
40
218
  return [{
41
- "method": "postToggle",
42
- "name": "postToggle",
43
- "bubbles": true,
44
- "cancelable": true,
45
- "composed": true,
46
- "docs": {
47
- "tags": [],
48
- "text": "Gets emitted when a user closes the main navigation on mobile"
49
- },
50
- "complexType": {
51
- "original": "any",
52
- "resolved": "any",
53
- "references": {}
54
- }
219
+ "propName": "translateAmount",
220
+ "methodName": "onTranslateAmountChanges"
221
+ }];
222
+ }
223
+ static get listeners() {
224
+ return [{
225
+ "name": "mouseup",
226
+ "method": "stopScrolling",
227
+ "target": "window",
228
+ "capture": false,
229
+ "passive": true
55
230
  }];
56
231
  }
57
- static get elementRef() { return "host"; }
58
232
  }
@@ -1 +1 @@
1
- @keyframes slide-in{0%{transform:translateX(100%)}100%{transform:translateX(0%)}}@keyframes slide-out{from{transform:translateX(0%)}to{transform:translateX(100%)}}*,::before,::after{box-sizing:border-box}post-popovercontainer{background-color:#fafafa;border:none;border-top:1px solid #e1e0dc;width:100%;border-radius:0;box-shadow:0 8px 6px rgba(0,0,0,.16)}@media screen and (max-width: 1023.99px){post-popovercontainer{position:absolute;top:var(--header-height) !important;bottom:0;left:0;width:100%;height:auto;border-top:unset}post-popovercontainer.slide-in{animation:slide-in;animation-duration:350ms;animation-fill-mode:forwards}post-popovercontainer.slide-out{animation:slide-out;animation-duration:350ms;animation-fill-mode:forwards}}.megadropdown{padding:31px 40px 40px}@media screen and (max-width: 1023.99px){.megadropdown{padding:16px 32px 24px}}@media screen and (max-width: 599.99px){.megadropdown{padding-inline:16px}}.megadropdown .megadropdown-content{gap:1.5rem;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(15vw, 100%), 1fr));grid-auto-rows:1fr auto;grid-auto-flow:dense}@media screen and (max-width: 1023.99px){.megadropdown .megadropdown-content{grid-template-columns:repeat(auto-fit, minmax(min(35vw, 100%), 1fr))}}@media screen and (max-width: 599.99px){.megadropdown .megadropdown-content{grid-template-columns:1fr}}.megadropdown h2{display:none;margin-top:0;margin-bottom:8px;font-weight:900}.megadropdown h2 a{text-decoration:none;font-weight:inherit;border-bottom:0;border-top:0}@media screen and (max-width: 1023.99px){.megadropdown h2{display:block;font-size:1.25rem}}@media screen and (max-width: 599.99px){.megadropdown h2{font-size:1.125rem}}.megadropdown post-list{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0px}.megadropdown post-list>[role=list]{flex-direction:unset;display:unset}.megadropdown post-list>*{width:100%}.megadropdown post-list .list-title{display:flex;flex-direction:column-reverse;height:100%}.megadropdown post-list .list-title h3{font-size:20px;display:block;font-weight:900}.megadropdown post-list .list-title h3:not(:has(a)){padding:15px 12px 14px 8px;border-bottom:1px solid #050400}.megadropdown post-list .list-title h3 a{padding-block:15px 14px;padding-inline-start:8px;border-radius:0;text-decoration:none;font-size:inherit;display:flex;align-items:center;justify-content:space-between;min-height:53px;width:100%;height:var(--post-core-dimension-48);padding-inline-end:calc(var(--post-core-dimension-6) + var(--post-core-dimension-24) + var(--post-core-dimension-16));gap:var(--post-core-dimension-16);font-weight:var(--post-core-font-weight-400);position:relative;height:unset;font-weight:900}.megadropdown post-list .list-title h3 a::before{content:"";background-color:currentColor;bottom:0;width:100%;height:var(--post-core-dimension-1);position:absolute;left:0}.megadropdown post-list .list-title h3 a:hover::before{height:var(--post-core-dimension-3)}.megadropdown post-list .list-title h3 a:hover::after{content:"";display:block;margin-right:calc((var(--post-core-dimension-24) + var(--post-core-dimension-16))*-1);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='m31.95 16-9.11 9.11c-.2.2-.45.29-.71.29s-.51-.1-.71-.29a.996.996 0 0 1 0-1.41l6.69-6.69H-.05v-2h28.17l-6.69-6.69a.996.996 0 1 1 1.41-1.41l9.11 9.11Z'%3E%3C/path%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;width:var(--post-core-dimension-20);min-width:var(--post-core-dimension-20);height:var(--post-core-dimension-20)}@media screen and (max-width: 1023.99px){.megadropdown post-list .list-title h3{font-size:1rem}.megadropdown post-list .list-title h3:not(:has(a)){padding:15px 12px 14px 8px;border-bottom:1px solid #050400}}@media screen and (max-width: 599.99px){.megadropdown post-list .list-title h3{font-size:.875rem}}.megadropdown post-list-item>a{padding-block:13px 12px;padding-inline-start:8px;display:flex;text-decoration:none;width:100%;height:auto;min-height:48px}.megadropdown post-list-item>a:hover{border-block-width:0}@media screen and (min-width: 1024px){.megadropdown post-list-item>a{font-size:1.25rem}}@media screen and (max-width: 1023.99px){.megadropdown post-list-item>a{padding-block:12px 11px}}@media screen and (max-width: 599.99px){.megadropdown post-list-item>a{font-size:.875rem}}.megadropdown .back-button{display:none;margin-bottom:2rem}.megadropdown .back-button .btn{width:auto}@media screen and (max-width: 1023.99px){.megadropdown .back-button{display:block}}.megadropdown .close-button{position:absolute;top:1rem;right:1rem}@media screen and (max-width: 1023.99px){.megadropdown .close-button{display:none}}
1
+ @keyframes slide-in{0%{transform:translateX(100%)}100%{transform:translateX(0%)}}@keyframes slide-out{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes slide-down{from{transform:translateY(-100%)}to{transform:translateY(0%)}}@keyframes slide-up{0%{transform:translateY(0%)}100%{transform:translateY(-100%)}}*,::before,::after{box-sizing:border-box}.megadropdown-container{--post-main-header-height: 56px;--post-global-header-height: 72px;--post-header-height: calc(var(--post-global-header-height) + var(--post-main-header-height));box-shadow:0 8px 6px rgba(0,0,0,.16);position:absolute;background-color:#fafafa;border:none;z-index:1;border-top:1px solid #e1e0dc;width:100%;top:100%;left:0;border-radius:0}.megadropdown-container.slide-in{animation:slide-down 350ms forwards}.megadropdown-container.slide-out{animation:slide-up 350ms forwards}@media screen and (max-width: 1023.98px){.megadropdown-container{--post-global-header-height: 64px;z-index:4;top:0 !important;left:0;width:100%;position:fixed;height:calc(100vh - var(--post-header-height));max-height:calc(100vh - var(--header-height));border-top:unset;overflow:auto}.megadropdown-container.slide-in{animation:slide-in 350ms forwards}.megadropdown-container.slide-out{animation:slide-out 350ms forwards}}.megadropdown{padding:31px 40px 40px;background-color:#fafafa}@media screen and (max-width: 1023.98px){.megadropdown{padding:16px 32px 24px}}@media screen and (max-width: 599.98px){.megadropdown{padding-inline:16px}}.megadropdown .megadropdown-content{gap:1.5rem;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(15vw, 100%), 1fr));grid-auto-rows:1fr auto;grid-auto-flow:dense}@media screen and (max-width: 1023.98px){.megadropdown .megadropdown-content{grid-template-columns:repeat(auto-fit, minmax(min(35vw, 100%), 1fr))}}@media screen and (max-width: 599.98px){.megadropdown .megadropdown-content{grid-template-columns:1fr}}.megadropdown h2{display:none;margin-top:0;margin-bottom:8px;font-weight:900}.megadropdown h2 a{text-decoration:none;font-weight:inherit;border-bottom:0;border-top:0}@media screen and (max-width: 1023.98px){.megadropdown h2{display:block;font-size:1.25rem}}@media screen and (max-width: 599.98px){.megadropdown h2{font-size:1.125rem}}.megadropdown post-list{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0px}.megadropdown post-list>[role=list]{flex-direction:unset;display:unset}.megadropdown post-list>*{width:100%}.megadropdown post-list .list-title{display:flex;flex-direction:column-reverse;height:100%}.megadropdown post-list .list-title h3{font-size:20px;display:block;font-weight:900}.megadropdown post-list .list-title h3:not(:has(a)){padding:15px 12px 14px 8px;border-bottom:1px solid #050400}.megadropdown post-list .list-title h3 a{padding-block:15px 14px;padding-inline-start:8px;border-radius:0;text-decoration:none;font-size:inherit;display:flex;align-items:center;justify-content:space-between;min-height:53px;width:100%;min-width:100%;height:var(--post-core-dimension-48);padding-inline-end:calc(var(--post-core-dimension-6) + var(--post-core-dimension-24) + var(--post-core-dimension-16));gap:var(--post-core-dimension-16);font-weight:var(--post-core-font-weight-400);position:relative;height:unset;font-weight:900}.megadropdown post-list .list-title h3 a::before{content:"";background-color:currentColor;bottom:0;width:100%;height:var(--post-core-dimension-1);position:absolute;left:0}.megadropdown post-list .list-title h3 a:hover::before{height:var(--post-core-dimension-3)}.megadropdown post-list .list-title h3 a:hover::after{content:"";display:block;margin-right:calc((var(--post-core-dimension-24) + var(--post-core-dimension-16))*-1);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='m31.95 16-9.11 9.11c-.2.2-.45.29-.71.29s-.51-.1-.71-.29a.996.996 0 0 1 0-1.41l6.69-6.69H-.05v-2h28.17l-6.69-6.69a.996.996 0 1 1 1.41-1.41l9.11 9.11Z'%3E%3C/path%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;width:var(--post-core-dimension-20);min-width:var(--post-core-dimension-20);height:var(--post-core-dimension-20)}@media screen and (max-width: 1023.98px){.megadropdown post-list .list-title h3{font-size:1rem}.megadropdown post-list .list-title h3:not(:has(a)){padding:15px 12px 14px 8px;border-bottom:1px solid #050400}}@media screen and (max-width: 599.98px){.megadropdown post-list .list-title h3{font-size:.875rem}}.megadropdown post-list-item>a{padding-block:13px 12px;padding-inline-start:8px;display:flex;text-decoration:none;width:100%;min-width:100%;height:auto;min-height:48px}.megadropdown post-list-item>a:hover{border-block-width:0}@media screen and (min-width: 1024px){.megadropdown post-list-item>a{font-size:1.25rem}}@media screen and (max-width: 1023.98px){.megadropdown post-list-item>a{padding-block:12px 11px}}@media screen and (max-width: 599.98px){.megadropdown post-list-item>a{font-size:.875rem}}.megadropdown .back-button{display:none;margin-bottom:2rem}.megadropdown .back-button .btn{width:auto}@media screen and (max-width: 1023.98px){.megadropdown .back-button{display:block}}.megadropdown .close-button{position:absolute;top:1rem;right:1rem}@media screen and (max-width: 1023.98px){.megadropdown .close-button{display:none}}