@swisspost/design-system-components 10.0.0-next.54 → 10.0.0-next.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/dist/{components/react/p-CJ80BZ06.js → cjs/breakpoints-Df03Ct7n.js} +103 -5
  2. package/dist/cjs/debounce-BsIBi_-2.js +13 -0
  3. package/dist/cjs/environment-BQE9Unf_.js +52 -0
  4. package/dist/cjs/{event-from-CLvtSUKf.js → event-from-CwMw19f8.js} +2 -2
  5. package/dist/cjs/fade-CPQhl1fP.js +26 -0
  6. package/dist/cjs/fade-slide-dPhQa-I1.js +38 -0
  7. package/dist/cjs/{get-focusable-children-Bx63XUQg.js → get-focusable-children-ChETM1wK.js} +29 -21
  8. package/dist/cjs/{get-root-CyMf3Vsd.js → get-root-CUAv4k4C.js} +2 -2
  9. package/dist/cjs/{index-Cb8CTrOz.js → index-CKNxhb0S.js} +29 -13
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/{package-CvZxvdTJ.js → package-CY7IOoiw.js} +1 -1
  12. package/dist/cjs/post-accordion_2.cjs.entry.js +12 -12
  13. package/dist/cjs/post-avatar.cjs.entry.js +11 -11
  14. package/dist/cjs/post-back-to-top.cjs.entry.js +16 -40
  15. package/dist/cjs/post-banner.cjs.entry.js +11 -10
  16. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +7 -7
  17. package/dist/cjs/post-breadcrumbs.cjs.entry.js +22 -31
  18. package/dist/cjs/post-card-control.cjs.entry.js +16 -16
  19. package/dist/cjs/{post-closebutton_15.cjs.entry.js → post-closebutton_13.cjs.entry.js} +537 -507
  20. package/dist/cjs/post-collapsible_2.cjs.entry.js +39 -38
  21. package/dist/cjs/post-components.cjs.js +2 -2
  22. package/dist/cjs/post-env-test.cjs.entry.js +15 -0
  23. package/dist/cjs/post-footer.cjs.entry.js +21 -19
  24. package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
  25. package/dist/cjs/post-pagination.cjs.entry.js +589 -0
  26. package/dist/cjs/post-popover-trigger.cjs.entry.js +46 -30
  27. package/dist/cjs/post-popover.cjs.entry.js +12 -12
  28. package/dist/cjs/post-rating.cjs.entry.js +13 -13
  29. package/dist/cjs/post-stepper-item.cjs.entry.js +18 -0
  30. package/dist/cjs/post-stepper.cjs.entry.js +109 -0
  31. package/dist/cjs/post-tab-item.cjs.entry.js +49 -0
  32. package/dist/cjs/post-tab-panel.cjs.entry.js +9 -9
  33. package/dist/cjs/post-tabs.cjs.entry.js +191 -38
  34. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +8 -8
  35. package/dist/cjs/post-tooltip.cjs.entry.js +7 -7
  36. package/dist/cjs/utils-s05L2ulk.js +26 -0
  37. package/dist/collection/animations/collapse.js +3 -3
  38. package/dist/collection/animations/fade-slide.js +33 -0
  39. package/dist/collection/animations/fade.js +19 -7
  40. package/dist/collection/animations/index.js +2 -0
  41. package/dist/collection/animations/slide.js +25 -21
  42. package/dist/collection/animations/types.js +14 -0
  43. package/dist/collection/animations/utils.js +8 -0
  44. package/dist/collection/collection-manifest.json +8 -6
  45. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  46. package/dist/collection/components/post-accordion/post-accordion.js +2 -2
  47. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  48. package/dist/collection/components/post-accordion-item/post-accordion-item.js +4 -4
  49. package/dist/collection/components/post-avatar/post-avatar.css +1 -1
  50. package/dist/collection/components/post-avatar/post-avatar.js +1 -1
  51. package/dist/collection/components/post-back-to-top/post-back-to-top.js +14 -14
  52. package/dist/collection/components/post-banner/post-banner.css +4 -1
  53. package/dist/collection/components/post-banner/post-banner.js +3 -3
  54. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
  55. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +28 -28
  56. package/dist/collection/components/post-card-control/post-card-control.js +3 -3
  57. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
  58. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
  59. package/dist/collection/components/post-collapsible/post-collapsible.js +27 -27
  60. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +6 -5
  61. package/dist/collection/components/post-footer/post-footer.css +1 -1
  62. package/dist/collection/components/post-footer/post-footer.js +18 -16
  63. package/dist/collection/components/post-header/post-header.css +1 -1
  64. package/dist/collection/components/post-header/post-header.js +186 -105
  65. package/dist/collection/components/post-icon/post-icon.js +6 -4
  66. package/dist/collection/components/post-language-menu/post-language-menu.css +1 -0
  67. package/dist/collection/components/{post-language-switch/post-language-switch.js → post-language-menu/post-language-menu.js} +25 -25
  68. package/dist/collection/components/post-language-menu-item/post-language-menu-item.css +1 -0
  69. package/dist/collection/components/{post-language-option/post-language-option.js → post-language-menu-item/post-language-menu-item.js} +14 -14
  70. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  71. package/dist/collection/components/post-logo/post-logo.css +3 -1
  72. package/dist/collection/components/post-logo/post-logo.js +1 -1
  73. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  74. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +41 -29
  75. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  76. package/dist/collection/components/post-megadropdown/post-megadropdown.js +184 -75
  77. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
  78. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +80 -74
  79. package/dist/collection/components/post-menu/post-menu.css +1 -1
  80. package/dist/collection/components/post-menu/post-menu.js +35 -35
  81. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  82. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
  83. package/dist/collection/components/post-pagination/post-pagination.css +1 -0
  84. package/dist/collection/components/post-pagination/post-pagination.js +838 -0
  85. package/dist/collection/components/post-popover/post-popover.css +1 -1
  86. package/dist/collection/components/post-popover/post-popover.js +10 -10
  87. package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +43 -27
  88. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  89. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +45 -92
  90. package/dist/collection/components/post-rating/post-rating.js +3 -3
  91. package/dist/collection/components/post-stepper/post-stepper.css +1 -0
  92. package/dist/collection/components/post-stepper/post-stepper.js +207 -0
  93. package/dist/collection/components/post-stepper-item/post-stepper-item.css +7 -0
  94. package/dist/collection/components/post-stepper-item/post-stepper-item.js +18 -0
  95. package/dist/collection/components/post-tab-item/post-tab-item.css +1 -0
  96. package/dist/collection/components/post-tab-item/post-tab-item.js +86 -0
  97. package/dist/collection/components/post-tab-panel/post-tab-panel.js +9 -9
  98. package/dist/collection/components/post-tabs/post-tabs.js +230 -57
  99. package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
  100. package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
  101. package/dist/collection/components/post-tooltip/post-tooltip.js +1 -1
  102. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
  103. package/dist/collection/utils/environment.js +47 -2
  104. package/dist/collection/utils/event-from.js +2 -2
  105. package/dist/collection/utils/get-focusable-children.js +29 -21
  106. package/dist/collection/utils/is-motion-reduced.js +1 -1
  107. package/dist/collection/utils/tests/environment/hydrate-app-helper.js +16 -0
  108. package/dist/collection/utils/tests/environment/post-env-test.js +9 -0
  109. package/dist/component-names.json +6 -5
  110. package/dist/components/breakpoints.js +90 -3
  111. package/dist/components/debounce.js +11 -0
  112. package/dist/components/environment.js +49 -0
  113. package/dist/components/event-from.js +2 -2
  114. package/dist/components/fade-slide.js +36 -0
  115. package/dist/components/fade.js +21 -8
  116. package/dist/components/get-focusable-children.js +29 -21
  117. package/dist/components/get-root.js +1 -1
  118. package/dist/components/index.d.ts +14 -10
  119. package/dist/components/index.js +7 -5
  120. package/dist/components/package.js +1 -1
  121. package/dist/components/post-accordion-item2.js +4 -5
  122. package/dist/components/post-accordion2.js +4 -5
  123. package/dist/components/post-avatar.js +3 -4
  124. package/dist/components/post-back-to-top.js +14 -40
  125. package/dist/components/post-banner.js +5 -6
  126. package/dist/components/post-breadcrumb-item2.js +2 -3
  127. package/dist/components/post-breadcrumbs.js +24 -34
  128. package/dist/components/post-card-control.js +4 -5
  129. package/dist/components/post-closebutton2.js +3 -4
  130. package/dist/components/post-collapsible-trigger2.js +10 -10
  131. package/dist/components/post-collapsible2.js +25 -25
  132. package/dist/components/{post-list.d.ts → post-env-test.d.ts} +4 -4
  133. package/dist/components/post-env-test.js +31 -0
  134. package/dist/components/post-footer.js +17 -16
  135. package/dist/components/post-header.js +156 -119
  136. package/dist/components/post-icon2.js +8 -6
  137. package/dist/components/post-language-menu-item.d.ts +11 -0
  138. package/dist/components/post-language-menu-item.js +98 -0
  139. package/dist/components/{post-language-switch.d.ts → post-language-menu.d.ts} +4 -4
  140. package/dist/components/post-language-menu.js +156 -0
  141. package/dist/components/post-linkarea.js +1 -1
  142. package/dist/components/post-logo.js +3 -4
  143. package/dist/components/post-mainnavigation.js +21 -32
  144. package/dist/components/post-megadropdown-trigger.js +72 -79
  145. package/dist/components/post-megadropdown.js +183 -78
  146. package/dist/components/post-menu-item2.js +1 -1
  147. package/dist/components/post-menu-trigger2.js +2 -3
  148. package/dist/components/post-menu2.js +35 -36
  149. package/dist/components/post-pagination.d.ts +11 -0
  150. package/dist/components/post-pagination.js +635 -0
  151. package/dist/components/post-popover-trigger.js +41 -26
  152. package/dist/components/post-popover.js +9 -10
  153. package/dist/components/post-popovercontainer2.js +44 -40
  154. package/dist/components/post-rating.js +3 -4
  155. package/dist/components/post-stepper-item.d.ts +11 -0
  156. package/dist/components/post-stepper-item.js +33 -0
  157. package/dist/components/{post-list-item.d.ts → post-stepper.d.ts} +4 -4
  158. package/dist/components/post-stepper.js +136 -0
  159. package/dist/components/{post-tab-header.d.ts → post-tab-item.d.ts} +4 -4
  160. package/dist/components/post-tab-item.js +70 -0
  161. package/dist/components/post-tab-panel.js +8 -9
  162. package/dist/components/post-tabs.js +192 -37
  163. package/dist/components/post-togglebutton.js +1 -51
  164. package/dist/components/post-togglebutton2.js +53 -0
  165. package/dist/components/post-tooltip-trigger.js +3 -3
  166. package/dist/components/post-tooltip.js +3 -4
  167. package/dist/components/react/index.js +1 -1
  168. package/dist/{cjs/breakpoints-CEkeixld.js → components/react/p-B8YiQ3mz.js} +89 -6
  169. package/dist/components/react/{p-2U_BGLjc.js → p-BOLlAY91.js} +9 -7
  170. package/dist/components/react/p-BVCjnh6Q.js +36 -0
  171. package/dist/components/react/{p-CBFgkSgY.js → p-BVGcVycs.js} +1 -1
  172. package/dist/components/react/{p-D4NSCxrX.js → p-BYCGzO-t.js} +13 -13
  173. package/dist/components/react/p-C9hMpmsD.js +11 -0
  174. package/dist/components/react/{p-BVXiQdHq.js → p-CJ13r5fi.js} +29 -21
  175. package/dist/components/react/{p-nSFSgY-P.js → p-CnZWXrbA.js} +40 -41
  176. package/dist/components/react/p-CoDiS_Ik.js +24 -0
  177. package/dist/components/react/p-CyniMNY-.js +54 -0
  178. package/dist/components/react/p-D5knoiyy.js +24 -0
  179. package/dist/components/react/{p-Ccgu_WOx.js → p-DBO6FfHt.js} +4 -5
  180. package/dist/components/react/{p-BfLuYwf7.js → p-DRfa3MOV.js} +26 -26
  181. package/dist/components/react/{p-BUxAs8N5.js → p-DYImHx0e.js} +4 -5
  182. package/dist/components/react/p-DZ5m2Ttg.js +3 -0
  183. package/dist/components/react/p-FxUVQ4Tx.js +49 -0
  184. package/dist/components/react/{p-BK474oMI.js → p-L36-yvgK.js} +2 -2
  185. package/dist/components/react/{p-DVxZMuPW.js → p-NCAcc7ZZ.js} +6 -7
  186. package/dist/components/react/{p-mENtrn2l.js → p-QNPIvxLq.js} +45 -41
  187. package/dist/components/react/{p-D3CFjhAf.js → p-_pLhqTys.js} +5 -6
  188. package/dist/components/react/p-c6yNOQwn.js +113 -0
  189. package/dist/components/react/{p-CzIKqBrS.js → p-rEfV4v4a.js} +2 -2
  190. package/dist/components/react/post-accordion-item.js +1 -1
  191. package/dist/components/react/post-accordion.js +1 -1
  192. package/dist/components/react/post-avatar.js +4 -5
  193. package/dist/components/react/post-back-to-top.js +16 -42
  194. package/dist/components/react/post-banner.js +7 -8
  195. package/dist/components/react/post-breadcrumb-item.js +1 -1
  196. package/dist/components/react/post-breadcrumbs.js +31 -41
  197. package/dist/components/react/post-card-control.js +6 -7
  198. package/dist/components/react/post-closebutton.js +1 -1
  199. package/dist/components/react/post-collapsible-trigger.js +1 -1
  200. package/dist/components/react/post-collapsible.js +1 -1
  201. package/dist/components/react/{post-list.d.ts → post-env-test.d.ts} +4 -4
  202. package/dist/components/react/post-env-test.js +32 -0
  203. package/dist/components/react/post-footer.js +23 -22
  204. package/dist/components/react/post-header.js +158 -121
  205. package/dist/components/react/post-icon.js +1 -1
  206. package/dist/components/react/post-language-menu-item.d.ts +11 -0
  207. package/dist/components/react/post-language-menu-item.js +99 -0
  208. package/dist/components/react/{post-language-option.d.ts → post-language-menu.d.ts} +4 -4
  209. package/dist/components/react/post-language-menu.js +157 -0
  210. package/dist/components/react/post-linkarea.js +2 -2
  211. package/dist/components/react/post-logo.js +4 -5
  212. package/dist/components/react/post-mainnavigation.js +23 -34
  213. package/dist/components/react/post-megadropdown-trigger.js +74 -81
  214. package/dist/components/react/post-megadropdown.js +185 -80
  215. package/dist/components/react/post-menu-item.js +1 -1
  216. package/dist/components/react/post-menu-trigger.js +1 -1
  217. package/dist/components/react/post-menu.js +1 -1
  218. package/dist/components/react/post-pagination.d.ts +11 -0
  219. package/dist/components/react/post-pagination.js +636 -0
  220. package/dist/components/react/post-popover-trigger.js +42 -27
  221. package/dist/components/react/post-popover.js +14 -15
  222. package/dist/components/react/post-popovercontainer.js +1 -1
  223. package/dist/components/react/post-rating.js +5 -6
  224. package/dist/components/react/post-stepper-item.d.ts +11 -0
  225. package/dist/components/react/post-stepper-item.js +34 -0
  226. package/dist/components/react/{post-list-item.d.ts → post-stepper.d.ts} +4 -4
  227. package/dist/components/react/post-stepper.js +137 -0
  228. package/dist/components/react/{post-tab-header.d.ts → post-tab-item.d.ts} +4 -4
  229. package/dist/components/react/post-tab-item.js +71 -0
  230. package/dist/components/react/post-tab-panel.js +9 -10
  231. package/dist/components/react/post-tabs.js +193 -38
  232. package/dist/components/react/post-togglebutton.js +1 -52
  233. package/dist/components/react/post-tooltip-trigger.js +4 -4
  234. package/dist/components/react/post-tooltip.js +5 -6
  235. package/dist/components/utils.js +24 -0
  236. package/dist/docs.json +968 -563
  237. package/dist/esm/{breakpoints-CJ80BZ06.js → breakpoints-DYoSKGHO.js} +90 -3
  238. package/dist/esm/debounce-C9hMpmsD.js +11 -0
  239. package/dist/esm/environment-CEmnRoA6.js +49 -0
  240. package/dist/esm/{event-from-CzIKqBrS.js → event-from-rEfV4v4a.js} +2 -2
  241. package/dist/esm/fade-DsgPYmAa.js +24 -0
  242. package/dist/esm/fade-slide-CvOvauo9.js +36 -0
  243. package/dist/esm/{get-focusable-children-D9ZHp2FP.js → get-focusable-children-BXNs2_sw.js} +29 -21
  244. package/dist/esm/{get-root-BkQ3CrLq.js → get-root-CXfAA093.js} +1 -1
  245. package/dist/esm/{index-CFNKgUjL.js → index-1ReqxAnI.js} +29 -13
  246. package/dist/esm/loader.js +3 -3
  247. package/dist/esm/package-DZ5m2Ttg.js +3 -0
  248. package/dist/esm/post-accordion_2.entry.js +10 -10
  249. package/dist/esm/post-avatar.entry.js +6 -6
  250. package/dist/esm/post-back-to-top.entry.js +16 -40
  251. package/dist/esm/post-banner.entry.js +10 -9
  252. package/dist/esm/post-breadcrumb-item_2.entry.js +6 -6
  253. package/dist/esm/post-breadcrumbs.entry.js +20 -29
  254. package/dist/esm/post-card-control.entry.js +6 -6
  255. package/dist/esm/{post-closebutton_15.entry.js → post-closebutton_13.entry.js} +518 -486
  256. package/dist/esm/post-collapsible_2.entry.js +36 -35
  257. package/dist/esm/post-components.js +3 -3
  258. package/dist/esm/post-env-test.entry.js +13 -0
  259. package/dist/esm/post-footer.entry.js +18 -16
  260. package/dist/esm/post-linkarea.entry.js +3 -3
  261. package/dist/esm/post-pagination.entry.js +587 -0
  262. package/dist/esm/post-popover-trigger.entry.js +44 -28
  263. package/dist/esm/post-popover.entry.js +11 -11
  264. package/dist/esm/post-rating.entry.js +5 -5
  265. package/dist/esm/post-stepper-item.entry.js +16 -0
  266. package/dist/esm/post-stepper.entry.js +107 -0
  267. package/dist/esm/post-tab-item.entry.js +47 -0
  268. package/dist/esm/post-tab-panel.entry.js +9 -9
  269. package/dist/esm/post-tabs.entry.js +191 -38
  270. package/dist/esm/post-tooltip-trigger.entry.js +5 -5
  271. package/dist/esm/post-tooltip.entry.js +6 -6
  272. package/dist/esm/utils-CoDiS_Ik.js +24 -0
  273. package/dist/post-components/{p-8f0fc02a.entry.js → p-130eb074.entry.js} +1 -1
  274. package/dist/post-components/p-13d018fe.entry.js +1 -0
  275. package/dist/post-components/p-143e5a84.entry.js +1 -0
  276. package/dist/post-components/p-1ReqxAnI.js +2 -0
  277. package/dist/post-components/p-2b220851.entry.js +1 -0
  278. package/dist/post-components/{p-96750e25.entry.js → p-390f111f.entry.js} +1 -1
  279. package/dist/post-components/p-3cf09fbd.entry.js +1 -0
  280. package/dist/post-components/p-52e584ca.entry.js +1 -0
  281. package/dist/post-components/p-56a4040c.entry.js +1 -0
  282. package/dist/post-components/p-675dab57.entry.js +1 -0
  283. package/dist/post-components/p-6857fd9d.entry.js +1 -0
  284. package/dist/post-components/p-7cd00e3e.entry.js +1 -0
  285. package/dist/post-components/p-7f5d2487.entry.js +1 -0
  286. package/dist/post-components/{p-bf41fe56.entry.js → p-88201353.entry.js} +1 -1
  287. package/dist/post-components/p-89360cd1.entry.js +1 -0
  288. package/dist/post-components/p-B7ebLhHc.js +1 -0
  289. package/dist/post-components/p-BVCjnh6Q.js +1 -0
  290. package/dist/post-components/p-BXNs2_sw.js +1 -0
  291. package/dist/post-components/p-C9hMpmsD.js +1 -0
  292. package/dist/post-components/p-CEmnRoA6.js +1 -0
  293. package/dist/post-components/p-CoDiS_Ik.js +1 -0
  294. package/dist/post-components/p-D5knoiyy.js +1 -0
  295. package/dist/post-components/p-DI-h_mEL.js +1 -0
  296. package/dist/post-components/p-DZ5m2Ttg.js +1 -0
  297. package/dist/post-components/p-a740eaed.entry.js +1 -0
  298. package/dist/post-components/{p-261b1452.entry.js → p-a79590f5.entry.js} +1 -1
  299. package/dist/post-components/p-b708d96a.entry.js +1 -0
  300. package/dist/post-components/p-bcf5786f.entry.js +1 -0
  301. package/dist/post-components/p-c92512f5.entry.js +1 -0
  302. package/dist/post-components/{p-658b1ccc.entry.js → p-d7cb3a61.entry.js} +1 -1
  303. package/dist/post-components/p-d7f33813.entry.js +1 -0
  304. package/dist/post-components/p-da97ee21.entry.js +1 -0
  305. package/dist/post-components/{p-11c204e0.entry.js → p-ed4db774.entry.js} +1 -1
  306. package/dist/post-components/post-components.css +1 -1
  307. package/dist/post-components/post-components.esm.js +1 -1
  308. package/dist/prebuild.js +46 -0
  309. package/dist/types/animations/collapse.d.ts +1 -0
  310. package/dist/types/animations/fade-slide.d.ts +11 -0
  311. package/dist/types/animations/fade.d.ts +2 -2
  312. package/dist/types/animations/index.d.ts +2 -0
  313. package/dist/types/animations/slide.d.ts +9 -2
  314. package/dist/types/animations/types.d.ts +13 -0
  315. package/dist/types/animations/utils.d.ts +2 -0
  316. package/dist/types/components/post-accordion-item/heading-levels.d.ts +1 -1
  317. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +2 -2
  318. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -2
  319. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +6 -6
  320. package/dist/types/components/post-collapsible/post-collapsible.d.ts +4 -5
  321. package/dist/types/components/post-collapsible-trigger/post-collapsible-trigger.d.ts +1 -0
  322. package/dist/types/components/post-footer/post-footer.d.ts +4 -4
  323. package/dist/types/components/post-header/post-header.d.ts +28 -19
  324. package/dist/types/components/{post-language-switch/post-language-switch.d.ts → post-language-menu/post-language-menu.d.ts} +6 -6
  325. package/dist/types/components/{post-language-option/post-language-option.d.ts → post-language-menu-item/post-language-menu-item.d.ts} +5 -5
  326. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +6 -5
  327. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +20 -2
  328. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +17 -23
  329. package/dist/types/components/post-menu/post-menu.d.ts +4 -4
  330. package/dist/types/components/post-pagination/post-pagination.d.ts +224 -0
  331. package/dist/types/components/post-popover/post-popover.d.ts +3 -3
  332. package/dist/types/components/post-popover-trigger/post-popover-trigger.d.ts +2 -1
  333. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +13 -16
  334. package/dist/types/components/post-rating/post-rating.d.ts +1 -1
  335. package/dist/types/components/post-stepper/post-stepper.d.ts +39 -0
  336. package/dist/types/components/post-stepper-item/post-stepper-item.d.ts +3 -0
  337. package/dist/types/components/post-tab-item/post-tab-item.d.ts +19 -0
  338. package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +3 -3
  339. package/dist/types/components/post-tabs/post-tabs.d.ts +33 -12
  340. package/dist/types/components.d.ts +357 -186
  341. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +9 -0
  342. package/dist/types/types/heading-levels.d.ts +1 -1
  343. package/dist/types/utils/environment.d.ts +25 -1
  344. package/dist/types/utils/get-focusable-children.d.ts +2 -2
  345. package/dist/types/utils/tests/environment/hydrate-app-helper.d.ts +5 -0
  346. package/dist/types/utils/tests/environment/post-env-test.d.ts +3 -0
  347. package/hydrate/index.js +1882 -833
  348. package/hydrate/index.mjs +1882 -833
  349. package/package.json +9 -11
  350. package/dist/cjs/fade-nS5zzDQS.js +0 -14
  351. package/dist/cjs/index-DtvYdwe1.js +0 -96
  352. package/dist/cjs/post-tab-header.cjs.entry.js +0 -31
  353. package/dist/collection/animations/slide-and-fade.js +0 -25
  354. package/dist/collection/components/post-language-option/post-language-option.css +0 -1
  355. package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
  356. package/dist/collection/components/post-list/post-list.css +0 -1
  357. package/dist/collection/components/post-list/post-list.js +0 -97
  358. package/dist/collection/components/post-list-item/post-list-item.css +0 -1
  359. package/dist/collection/components/post-list-item/post-list-item.js +0 -26
  360. package/dist/collection/components/post-tab-header/post-tab-header.css +0 -1
  361. package/dist/collection/components/post-tab-header/post-tab-header.js +0 -65
  362. package/dist/components/index2.js +0 -88
  363. package/dist/components/post-language-option.d.ts +0 -11
  364. package/dist/components/post-language-option.js +0 -99
  365. package/dist/components/post-language-switch.js +0 -157
  366. package/dist/components/post-list-item.js +0 -38
  367. package/dist/components/post-list.js +0 -61
  368. package/dist/components/post-tab-header.js +0 -52
  369. package/dist/components/react/p-BXRsHuTS.js +0 -3
  370. package/dist/components/react/p-CV7fm1rW.js +0 -88
  371. package/dist/components/react/p-Dj7qWba5.js +0 -114
  372. package/dist/components/react/p-SbIC4aZX.js +0 -11
  373. package/dist/components/react/post-language-option.js +0 -100
  374. package/dist/components/react/post-language-switch.d.ts +0 -11
  375. package/dist/components/react/post-language-switch.js +0 -158
  376. package/dist/components/react/post-list-item.js +0 -39
  377. package/dist/components/react/post-list.js +0 -62
  378. package/dist/components/react/post-tab-header.js +0 -53
  379. package/dist/esm/fade-SbIC4aZX.js +0 -11
  380. package/dist/esm/index-VmK3ABCB.js +0 -88
  381. package/dist/esm/package-BXRsHuTS.js +0 -3
  382. package/dist/esm/post-tab-header.entry.js +0 -29
  383. package/dist/post-components/p-02ea3ec5.entry.js +0 -1
  384. package/dist/post-components/p-0e92dbef.entry.js +0 -1
  385. package/dist/post-components/p-0ec2bdd7.entry.js +0 -1
  386. package/dist/post-components/p-197a0f25.entry.js +0 -1
  387. package/dist/post-components/p-3274ab81.entry.js +0 -1
  388. package/dist/post-components/p-77e43032.entry.js +0 -1
  389. package/dist/post-components/p-BXRsHuTS.js +0 -1
  390. package/dist/post-components/p-CBFgkSgY.js +0 -1
  391. package/dist/post-components/p-CFNKgUjL.js +0 -2
  392. package/dist/post-components/p-CJ80BZ06.js +0 -1
  393. package/dist/post-components/p-D9ZHp2FP.js +0 -1
  394. package/dist/post-components/p-SbIC4aZX.js +0 -1
  395. package/dist/post-components/p-VmK3ABCB.js +0 -1
  396. package/dist/post-components/p-b5b5e4b9.entry.js +0 -1
  397. package/dist/post-components/p-b8059ba1.entry.js +0 -1
  398. package/dist/post-components/p-d6134e24.entry.js +0 -1
  399. package/dist/post-components/p-e7029b9e.entry.js +0 -1
  400. package/dist/post-components/p-e90688ab.entry.js +0 -1
  401. package/dist/post-components/p-ea5da614.entry.js +0 -1
  402. package/dist/post-components/p-f1b815b6.entry.js +0 -1
  403. package/dist/types/animations/slide-and-fade.d.ts +0 -2
  404. package/dist/types/components/post-list/post-list.d.ts +0 -24
  405. package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
  406. package/dist/types/components/post-tab-header/post-tab-header.d.ts +0 -14
  407. /package/dist/collection/components/{post-language-switch → post-language-menu}/switch-variants.js +0 -0
  408. /package/dist/post-components/{p-CzIKqBrS.js → p-rEfV4v4a.js} +0 -0
  409. /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
@@ -12,24 +12,23 @@ import { h, Host } from "@stencil/core";
12
12
  import { throttle } from "throttle-debounce";
13
13
  import { version } from "../../../../package";
14
14
  import { breakpoint } from "../../utils/breakpoints";
15
- import { slideDown, slideUp } from "../../animations/slide";
16
- import { getFocusableChildren } from "../../utils/get-focusable-children";
15
+ import { fade } from "../../animations/index";
16
+ import { getDeepFocusableChildren } from "../../utils/get-focusable-children";
17
17
  import { EventFrom } from "../../utils/event-from";
18
+ import { checkRequiredAndType } from "../../utils/index";
18
19
  /**
19
20
  * @slot post-logo - Should be used together with the `<post-logo>` component.
20
- * @slot global-controls - Holds search button in the global header.
21
- * @slot meta-navigation - Holds an `<ul>` with meta navigation links.
22
- * @slot post-togglebutton - Holds the mobile menu toggler.
23
- * @slot post-language-switch - Should be used with the `<post-language-switch>` component.
21
+ * @slot global-nav-primary - Holds search button in the global header.
22
+ * @slot global-nav-secondary - Holds an `<ul>` with meta navigation links.
23
+ * @slot language-menu - Should be used with the `<post-language-switch>` component.
24
24
  * @slot title - Holds the application title.
25
- * @slot default - Custom controls or content, right aligned in the local header.
26
- * @slot post-mainnavigation - Has a default slot because it's only meant to be used in the `<post-header>`.
27
- * @slot target-group - Holds the list of buttons to choose the target group.
28
- * @slot global-login - Holds the user menu or login button in the global header.
29
- * @slot navigation-controls - Custom controls, right aligned with the main navigation.
25
+ * @slot main-nav - Has a default slot because it's only meant to be used in the `<post-header>`.
26
+ * @slot audience - Holds the list of buttons to choose the audience.
27
+ * @slot post-login - Holds the user menu or login button in the global header.
28
+ * @slot local-nav - Holds controls specific to the current application.
30
29
  */
31
30
  export class PostHeader {
32
- get hasMobileMenu() {
31
+ get hasBurgerMenu() {
33
32
  return this.device !== 'desktop' && this.hasNavigation;
34
33
  }
35
34
  get scrollParent() {
@@ -46,10 +45,13 @@ export class PostHeader {
46
45
  }
47
46
  return document.body;
48
47
  }
48
+ validateTextMenu() {
49
+ checkRequiredAndType(this, 'textMenu', 'string');
50
+ }
49
51
  lockBody(newValue, _oldValue, propName) {
50
52
  const scrollParent = this.scrollParent;
51
- const mobileMenuExtended = propName === 'mobileMenuExtended' ? newValue : this.mobileMenuExtended;
52
- if (this.device !== 'desktop' && mobileMenuExtended) {
53
+ const burgerMenuExtended = propName === 'burgerMenuExtended' ? newValue : this.burgerMenuExtended;
54
+ if (this.device !== 'desktop' && burgerMenuExtended) {
53
55
  scrollParent.setAttribute('data-post-scroll-locked', '');
54
56
  this.host.addEventListener('keydown', this.keyboardHandler);
55
57
  }
@@ -60,16 +62,22 @@ export class PostHeader {
60
62
  }
61
63
  constructor() {
62
64
  this.throttledResize = throttle(50, () => this.updateLocalHeaderHeight());
65
+ this.animationOptions = {
66
+ duration: 350,
67
+ easing: 'headerEase',
68
+ };
63
69
  this.device = breakpoint.get('device');
64
70
  this.hasNavigation = false;
71
+ this.hasLocalNav = false;
72
+ this.hasAudience = false;
65
73
  this.hasTitle = false;
66
- this.mobileMenuExtended = false;
74
+ this.burgerMenuExtended = false;
67
75
  this.megadropdownOpen = false;
68
76
  this.breakpointChange = (e) => {
69
77
  this.device = e.detail;
70
78
  this.switchLanguageSwitchMode();
71
- if (this.device === 'desktop' && this.mobileMenuExtended) {
72
- this.closeMobileMenu();
79
+ if (this.device === 'desktop' && this.burgerMenuExtended) {
80
+ this.closeBurgerMenu();
73
81
  }
74
82
  if (this.device !== 'desktop') {
75
83
  Array.from(this.host.querySelectorAll('post-megadropdown')).forEach(dropdown => {
@@ -78,14 +86,14 @@ export class PostHeader {
78
86
  this.megadropdownOpen = false;
79
87
  }
80
88
  };
81
- this.megadropdownStateHandler = (event) => {
82
- this.megadropdownOpen = event.detail.isVisible;
83
- };
84
89
  this.handleScrollEvent = this.handleScrollEvent.bind(this);
85
90
  this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
86
91
  this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
87
92
  this.keyboardHandler = this.keyboardHandler.bind(this);
88
93
  this.handleLinkClick = this.handleLinkClick.bind(this);
94
+ this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
95
+ this.checkSlottedContent = this.checkSlottedContent.bind(this);
96
+ this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
89
97
  }
90
98
  connectedCallback() {
91
99
  window.addEventListener('resize', this.throttledResize, { passive: true });
@@ -96,23 +104,23 @@ export class PostHeader {
96
104
  passive: true,
97
105
  });
98
106
  document.addEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
99
- this.host.addEventListener('click', this.handleLinkClick);
100
107
  window.addEventListener('postBreakpoint:device', this.breakpointChange);
101
- this.checkNavigationExistence();
102
- this.checkTitleExistence();
103
- this.switchLanguageSwitchMode();
104
108
  this.handleScrollParentResize();
105
- this.lockBody(false, this.mobileMenuExtended, 'mobileMenuExtended');
109
+ this.lockBody(false, this.burgerMenuExtended, 'burgerMenuExtended');
106
110
  }
107
111
  componentWillRender() {
108
112
  this.handleScrollEvent();
113
+ this.handleSlottedContentChanges();
114
+ this.switchLanguageSwitchMode();
109
115
  }
110
116
  componentDidRender() {
117
+ this.validateTextMenu();
111
118
  this.getFocusableElements();
112
119
  this.handleLocalHeaderResize();
113
120
  }
114
121
  componentDidLoad() {
115
122
  this.updateLocalHeaderHeight();
123
+ this.host.shadowRoot.addEventListener('click', this.handleLinkClick);
116
124
  }
117
125
  // Clean up possible side effects when post-header is disconnected
118
126
  disconnectedCallback() {
@@ -124,7 +132,9 @@ export class PostHeader {
124
132
  scrollParent.removeEventListener('scroll', this.handleScrollEvent);
125
133
  document.removeEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
126
134
  this.host.removeEventListener('keydown', this.keyboardHandler);
127
- this.host.removeEventListener('click', this.handleLinkClick);
135
+ if (this.host.shadowRoot) {
136
+ this.host.shadowRoot.removeEventListener('click', this.handleLinkClick);
137
+ }
128
138
  if (this.scrollParentResizeObserver) {
129
139
  this.scrollParentResizeObserver.disconnect();
130
140
  this.scrollParentResizeObserver = null;
@@ -133,81 +143,72 @@ export class PostHeader {
133
143
  this.localHeaderResizeObserver.disconnect();
134
144
  this.localHeaderResizeObserver = null;
135
145
  }
136
- this.mobileMenuExtended = false;
137
- }
138
- checkNavigationExistence() {
139
- this.hasNavigation = this.host.querySelectorAll('post-mainnavigation').length > 0;
140
- }
141
- checkTitleExistence() {
142
- this.hasTitle = this.host.querySelectorAll('[slot="title"]').length > 0;
143
- }
144
- async closeMobileMenu() {
145
- this.mobileMenuAnimation.finish();
146
- const menuButton = this.getMenuButton();
147
- if (menuButton) {
148
- menuButton.toggled = false;
146
+ if (this.slottedContentObserver) {
147
+ this.slottedContentObserver.disconnect();
148
+ this.slottedContentObserver = null;
149
149
  }
150
- this.mobileMenuExtended = false;
150
+ this.burgerMenuExtended = false;
151
+ }
152
+ async closeBurgerMenu() {
153
+ this.burgerMenuAnimation?.finish();
154
+ if (this.burgerMenuButton)
155
+ this.burgerMenuButton.toggled = false;
156
+ this.burgerMenuExtended = false;
151
157
  }
152
158
  /**
153
- * Toggles the mobile navigation.
159
+ * Toggles the burger navigation menu.
154
160
  */
155
- async toggleMobileMenu(force) {
161
+ async toggleBurgerMenu(force) {
156
162
  if (this.device === 'desktop')
157
163
  return;
158
- this.mobileMenuAnimation = this.mobileMenuExtended
159
- ? slideUp(this.mobileMenu)
160
- : slideDown(this.mobileMenu);
164
+ this.burgerMenuAnimation = this.burgerMenuExtended
165
+ ? fade(this.burgerMenu, 'out', this.animationOptions)
166
+ : fade(this.burgerMenu, 'in', this.animationOptions);
161
167
  // Update the state of the toggle button
162
- const menuButton = this.host.querySelector('post-togglebutton');
163
- menuButton.toggled = force ?? !this.mobileMenuExtended;
164
- if (this.mobileMenuExtended) {
168
+ if (this.burgerMenuButton)
169
+ this.burgerMenuButton.toggled = force ?? !this.burgerMenuExtended;
170
+ if (this.burgerMenuExtended) {
165
171
  // Wait for the close animation to finish before hiding megadropdowns
166
- await this.mobileMenuAnimation.finished;
167
- this.mobileMenuExtended = force ?? !this.mobileMenuExtended;
168
- if (this.mobileMenuExtended === false) {
172
+ await this.burgerMenuAnimation.finished;
173
+ this.burgerMenuExtended = force ?? !this.burgerMenuExtended;
174
+ if (this.burgerMenuExtended === false) {
169
175
  this.closeAllMegadropdowns();
176
+ this.burgerMenu.scrollTop = 0;
170
177
  }
171
178
  }
172
179
  else {
173
- this.mobileMenuExtended = force ?? !this.mobileMenuExtended;
180
+ this.burgerMenuExtended = force ?? !this.burgerMenuExtended;
174
181
  // If opening, close any open megadropdowns immediately
175
182
  if (this.megadropdownOpen) {
176
183
  this.closeAllMegadropdowns();
177
184
  }
178
185
  }
179
186
  }
180
- // Get all the focusable elements in the post-header mobile menu
187
+ megadropdownStateHandler(event) {
188
+ this.megadropdownOpen = event.detail.isVisible;
189
+ }
190
+ // Get all the focusable elements in the post-header burger menu
181
191
  getFocusableElements() {
182
- // Get elements in the correct order (different as the DOM order)
183
- const focusableEls = [
184
- ...Array.from(this.host.querySelectorAll('.list-inline:not([slot="meta-navigation"]) > li')),
185
- ...Array.from(this.host.querySelectorAll('nav > post-list > div > post-list-item, post-megadropdown-trigger')),
186
- ...Array.from(this.host.querySelectorAll('.list-inline[slot="meta-navigation"] > li, post-language-option')),
187
- ];
188
- // Add the main toggle menu button to the list of focusable children
189
- const focusableChildren = [
190
- this.host.querySelector('post-togglebutton'),
191
- ...focusableEls.flatMap(el => Array.from(getFocusableChildren(el))),
192
- ];
193
- this.firstFocusableEl = focusableChildren[0];
194
- this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
195
- }
196
- getMenuButton() {
197
- return this.host.querySelector('post-togglebutton');
192
+ if (!this.burgerMenu)
193
+ return;
194
+ const focusableElements = [this.burgerMenuButton];
195
+ focusableElements.push(...getDeepFocusableChildren(this.localHeader, el => !el.matches('post-megadropdown')), ...getDeepFocusableChildren(this.burgerMenu, el => !el.matches('post-megadropdown')));
196
+ this.firstFocusableEl = focusableElements[0];
197
+ this.lastFocusableEl = focusableElements[focusableElements.length - 1];
198
198
  }
199
199
  keyboardHandler(e) {
200
- if (e.key === 'Tab' && this.mobileMenuExtended) {
201
- if (e.shiftKey && document.activeElement === this.firstFocusableEl) {
202
- // If back tab (Tab + Shift) and first element is focused, focus goes to the last element of the megadropdown
203
- e.preventDefault();
204
- this.lastFocusableEl.focus();
205
- }
206
- else if (!e.shiftKey && document.activeElement === this.lastFocusableEl) {
207
- // If Tab and last element is focused, focus goes back to the first element of the megadropdown
208
- e.preventDefault();
209
- this.firstFocusableEl.focus();
210
- }
200
+ if (e.key !== 'Tab' || !this.burgerMenuExtended)
201
+ return;
202
+ const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
203
+ if (e.shiftKey && activeElement === this.firstFocusableEl) {
204
+ // If back tab (Tab + Shift) and first element is focused, focus goes to the last element of the megadropdown
205
+ e.preventDefault();
206
+ this.lastFocusableEl.focus();
207
+ }
208
+ else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
209
+ // If Tab and last element is focused, focus goes back to the first element of the megadropdown
210
+ e.preventDefault();
211
+ this.firstFocusableEl.focus();
211
212
  }
212
213
  }
213
214
  closeAllMegadropdowns() {
@@ -218,7 +219,7 @@ export class PostHeader {
218
219
  }
219
220
  handleScrollEvent() {
220
221
  const scrollTop = this.scrollParent === document.body ? window.scrollY : this.scrollParent.scrollTop;
221
- document.documentElement.style.setProperty('--post-header-scroll-top', `${scrollTop}px`);
222
+ document.documentElement.style.setProperty('--post-header-scroll-top', `${Math.max(scrollTop, 0)}px`);
222
223
  }
223
224
  updateLocalHeaderHeight() {
224
225
  const localHeaderElement = this.host.shadowRoot.querySelector('.local-header');
@@ -236,8 +237,8 @@ export class PostHeader {
236
237
  if (!isLinkInMainNav && !isLinkInMegadropdown) {
237
238
  return;
238
239
  }
239
- if (this.mobileMenuExtended && (isLinkInMainNav || isLinkInMegadropdown)) {
240
- this.toggleMobileMenu(false);
240
+ if (this.burgerMenuExtended && (isLinkInMainNav || isLinkInMegadropdown)) {
241
+ this.toggleBurgerMenu(false);
241
242
  }
242
243
  if (this.device === 'desktop' && isLinkInMegadropdown) {
243
244
  const megadropdownLink = target.closest('post-megadropdown a');
@@ -259,28 +260,69 @@ export class PostHeader {
259
260
  this.localHeaderResizeObserver.observe(localHeader);
260
261
  }
261
262
  }
263
+ handleSlottedContentChanges() {
264
+ if (!this.slottedContentObserver) {
265
+ this.checkSlottedContent();
266
+ this.slottedContentObserver = new MutationObserver(this.checkSlottedContent);
267
+ this.slottedContentObserver.observe(this.host, { childList: true });
268
+ }
269
+ }
270
+ checkSlottedContent() {
271
+ this.hasNavigation = !!this.host.querySelector('[slot="main-nav"]');
272
+ this.hasLocalNav = !!this.host.querySelector('[slot="local-nav"]');
273
+ this.hasAudience = !!this.host.querySelector('[slot="audience"]');
274
+ this.hasTitle = !!this.host.querySelector('[slot="title"]');
275
+ }
262
276
  switchLanguageSwitchMode() {
263
- const variant = this.hasMobileMenu ? 'list' : 'menu';
264
- Array.from(this.host.querySelectorAll('post-language-switch')).forEach(languageSwitch => {
277
+ const variant = this.hasBurgerMenu ? 'list' : 'menu';
278
+ Array.from(this.host.querySelectorAll('post-language-menu')).forEach(languageSwitch => {
265
279
  languageSwitch?.setAttribute('variant', variant);
266
280
  });
267
281
  }
282
+ onFocusChange(e) {
283
+ const alwaysVisibleElements = this.device === 'desktop'
284
+ ? '.navigation' // logo isn’t included since it would be too small to focus on effectively.
285
+ : '.global-header, .burger-menu';
286
+ const isHeaderExpanded =
287
+ // ensure the expanded state stays accurate during focus changes,
288
+ // e.g., when the focused element is removed from the DOM
289
+ // during a window resize
290
+ e.target === document.activeElement &&
291
+ this.host.matches(':focus-within') &&
292
+ !this.host.shadowRoot.querySelector(`:where(${alwaysVisibleElements}):focus-within`);
293
+ if (isHeaderExpanded) {
294
+ this.host.setAttribute('data-expanded', '');
295
+ }
296
+ else {
297
+ this.host.removeAttribute('data-expanded');
298
+ }
299
+ }
268
300
  renderNavigation() {
269
- const mainNavigation = (h("slot", { name: "post-mainnavigation", onSlotchange: () => this.checkNavigationExistence() }));
301
+ const localNav = !this.hasTitle && (h("div", { class: "local-nav" }, h("slot", { name: "local-nav" })));
270
302
  if (this.device === 'desktop') {
271
- return (h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, mainNavigation, h("slot", { name: "navigation-controls" })));
303
+ return (h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, h("slot", { name: "main-nav" }), localNav));
272
304
  }
273
- return (h("div", { class: { navigation: true, extended: this.mobileMenuExtended }, style: { '--post-header-navigation-current-inset': `${this.mobileMenu?.scrollTop ?? 0}px` } }, h("div", { class: "mobile-menu", ref: el => (this.mobileMenu = el) }, h("div", { class: "navigation-header" }, h("slot", { name: "navigation-controls" }), h("slot", { name: "target-group" })), mainNavigation, h("div", { class: "navigation-footer" }, h("slot", { name: "meta-navigation" }), h("slot", { name: "post-language-switch" })))));
305
+ return (h("div", { class: {
306
+ 'burger-menu': true,
307
+ 'extended': this.burgerMenuExtended,
308
+ 'no-local-nav': !this.hasLocalNav,
309
+ 'megadropdown-open': this.megadropdownOpen,
310
+ }, style: { '--post-header-navigation-current-inset': `${this.burgerMenu?.scrollTop ?? 0}px` }, ref: el => (this.burgerMenu = el) }, localNav, h("div", { class: "burger-menu-body" }, h("slot", { name: "audience" }), h("slot", { name: "main-nav" })), h("div", { class: "burger-menu-footer" }, h("slot", { name: "global-nav-secondary" }), h("slot", { name: "language-menu" }))));
274
311
  }
275
312
  render() {
276
- const localHeaderClasses = ['local-header'];
277
- if (this.mobileMenuExtended)
278
- localHeaderClasses.push('local-header-mobile-extended');
279
- if (this.device !== 'desktop' || !this.hasNavigation)
280
- localHeaderClasses.push('no-navigation');
281
- if (!this.hasTitle)
282
- localHeaderClasses.push('no-title');
283
- return (h(Host, { key: 'fd3c4a534af28b2e35f4a02502283e04be0d9683', "data-version": version, "data-color-scheme": "light" }, h("div", { key: '61c70adea7525d3daa7690ac9243c7697df5c8bc', class: "global-header" }, h("div", { key: '1fdb106a9624a07d3ad3fd1cb4eade9b05282ab5', class: "global-sub" }, h("div", { key: '2c62bccfa8d5fa9642528db265e76aac0d13022c', class: "logo" }, h("slot", { key: '75b87c2428b7ccad6940976e46156b807257cbc5', name: "post-logo" }))), h("div", { key: 'c1950198cbac96132ca5b1c886bb94238c53b903', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: '2e695987df3da854db3ec18cc4b1283d0f06dfd1', name: "target-group" })), h("div", { key: '50366842180e3aae87d4e4da68a8f73c2f62c347', class: "global-sub" }, h("slot", { key: '7eba07e3dddbc26843a50b39a69953a01d9e2a5e', name: "global-controls" }), !this.hasMobileMenu && h("slot", { key: 'aa9fc50e2eb8eee4e3d9de76ccbf564ac30a8d03', name: "meta-navigation" }), !this.hasMobileMenu && h("slot", { key: '7742f0d0e30d5b0d90ca9352fec72e49a97ec3cb', name: "post-language-switch" }), h("slot", { key: 'a3545c4bb2a61c00105763059f3bd66ddd829681', name: "global-login" }), this.hasNavigation && (h("div", { key: 'bb8df618571ea8cadb89b0cd8d50bba7c0dec038', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '83b9542127213e39644c280cf9f4e19aaf3f071a', name: "post-togglebutton" }))))), h("div", { key: '2ab719d2610d46050fc99345237b7b9cc54fd467', class: localHeaderClasses.join(' ') }, h("slot", { key: '0e02b3f7421a1c67e99fdc92aadcf61153665820', name: "title", onSlotchange: () => this.checkTitleExistence() }), this.hasTitle && (h("div", { key: '94b091a29727bd556a4907ac4bdb2f8757483135', class: "local-sub" }, h("slot", { key: '7647015350e21278b104ff4538525abeaea98442', name: "local-controls" }), h("slot", { key: '4e42d3fe5c4f676b7bb836c976c1d7e59a1052ae' }))), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
313
+ return (h(Host, { key: '15de1ff6ccac94813df10fc0b41a518de68dee94', "data-version": version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, h("header", { key: '0af40c8b8944c7ffcf2bf0fe704671f4012ae8c8' }, h("div", { key: 'cd4564c5c375c015c673df195ba04fe4d89ff1c2', class: {
314
+ 'global-header': true,
315
+ 'no-audience': !this.hasAudience,
316
+ } }, h("div", { key: 'c4ad8a22fed57e54266c6584548f5203a499b63c', class: "logo" }, h("slot", { key: 'bf86f7ccf2e46263365023f287f18305160cede6', name: "post-logo" })), h("div", { key: 'e89c405cf97ddb08850d3b15ab8977e7e484ba73', class: "sliding-controls" }, this.device === 'desktop' && (h("div", { key: 'c3e9f49a105894d0df44a3d2654065b452292154', class: "audience" }, h("slot", { key: '20effc0592ca8665de464cc5d45d11ef02894acb', name: "audience" }))), h("slot", { key: 'f0ca8a59134520ccbb38907e32bedd4c05800d36', name: "global-nav-primary" }), !this.hasBurgerMenu && [
317
+ h("slot", { key: '7e2b2982403f491f083fc9f32cee46cbaeca7c50', name: "global-nav-secondary" }),
318
+ h("slot", { key: '3e7b5f6cb16b2cf2bc64b9b11c70f8b363e80134', name: "language-menu" }),
319
+ ], h("slot", { key: 'd91059cc4dd4529040aa6436db46f66f2db84e71', name: "post-login" }), this.hasNavigation && this.device !== 'desktop' && (h("div", { key: 'f97161e09b27c11c6f85d112e85a59ddf2925aec', onClick: () => this.toggleBurgerMenu(), class: "burger-menu-toggle" }, h("slot", { key: '18304b858fa2173b63e842ba4d0512bd438a89b0', name: "post-togglebutton" }))), this.hasNavigation && this.device !== 'desktop' && (h("post-togglebutton", { key: '0599e4d106262b7be6557b476becacaf9f5656ba', ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, h("span", { key: '3f3578f6172a9d87c531b5bef6a201b255042511' }, this.textMenu), h("post-icon", { key: '7a92cec5793716225cf9dc4646ccff585e02723b', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), h("post-icon", { key: '9170844d117e8f0bf7f35049debe973ff391158e', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" }))))), h("div", { key: 'db13d084905b4633595bb1d4d83cc88c82c3c679', ref: el => (this.localHeader = el), class: {
320
+ 'local-header': true,
321
+ 'no-title': !this.hasTitle,
322
+ 'no-audience': !this.hasAudience,
323
+ 'no-navigation': this.device !== 'desktop' || !this.hasNavigation,
324
+ 'no-local-nav': !this.hasLocalNav,
325
+ } }, h("slot", { key: 'f6fb25aef128bf1712995427014c5ff62c3710d0', name: "title" }), this.hasTitle && h("slot", { key: '8cba1c7b544d950140d59336baaf7398a4fb23d8', name: "local-nav" }), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation())));
284
326
  }
285
327
  static get is() { return "post-header"; }
286
328
  static get encapsulation() { return "shadow"; }
@@ -294,18 +336,43 @@ export class PostHeader {
294
336
  "$": ["post-header.css"]
295
337
  };
296
338
  }
339
+ static get properties() {
340
+ return {
341
+ "textMenu": {
342
+ "type": "string",
343
+ "attribute": "text-menu",
344
+ "mutable": false,
345
+ "complexType": {
346
+ "original": "string",
347
+ "resolved": "string",
348
+ "references": {}
349
+ },
350
+ "required": true,
351
+ "optional": false,
352
+ "docs": {
353
+ "tags": [],
354
+ "text": "The label of the burger menu button."
355
+ },
356
+ "getter": false,
357
+ "setter": false,
358
+ "reflect": true
359
+ }
360
+ };
361
+ }
297
362
  static get states() {
298
363
  return {
299
364
  "device": {},
300
365
  "hasNavigation": {},
366
+ "hasLocalNav": {},
367
+ "hasAudience": {},
301
368
  "hasTitle": {},
302
- "mobileMenuExtended": {},
369
+ "burgerMenuExtended": {},
303
370
  "megadropdownOpen": {}
304
371
  };
305
372
  }
306
373
  static get methods() {
307
374
  return {
308
- "toggleMobileMenu": {
375
+ "toggleBurgerMenu": {
309
376
  "complexType": {
310
377
  "signature": "(force?: boolean) => Promise<void>",
311
378
  "parameters": [{
@@ -317,16 +384,12 @@ export class PostHeader {
317
384
  "Promise": {
318
385
  "location": "global",
319
386
  "id": "global::Promise"
320
- },
321
- "HTMLPostTogglebuttonElement": {
322
- "location": "global",
323
- "id": "global::HTMLPostTogglebuttonElement"
324
387
  }
325
388
  },
326
389
  "return": "Promise<void>"
327
390
  },
328
391
  "docs": {
329
- "text": "Toggles the mobile navigation.",
392
+ "text": "Toggles the burger navigation menu.",
330
393
  "tags": []
331
394
  }
332
395
  }
@@ -335,14 +398,32 @@ export class PostHeader {
335
398
  static get elementRef() { return "host"; }
336
399
  static get watchers() {
337
400
  return [{
401
+ "propName": "textMenu",
402
+ "methodName": "validateTextMenu"
403
+ }, {
338
404
  "propName": "device",
339
405
  "methodName": "lockBody"
340
406
  }, {
341
- "propName": "mobileMenuExtended",
407
+ "propName": "burgerMenuExtended",
342
408
  "methodName": "lockBody"
343
409
  }];
344
410
  }
411
+ static get listeners() {
412
+ return [{
413
+ "name": "focusin",
414
+ "method": "onFocusChange",
415
+ "target": undefined,
416
+ "capture": false,
417
+ "passive": false
418
+ }, {
419
+ "name": "focusout",
420
+ "method": "onFocusChange",
421
+ "target": undefined,
422
+ "capture": false,
423
+ "passive": false
424
+ }];
425
+ }
345
426
  }
346
427
  __decorate([
347
428
  EventFrom('post-megadropdown')
348
- ], PostHeader.prototype, "megadropdownStateHandler", void 0);
429
+ ], PostHeader.prototype, "megadropdownStateHandler", null);
@@ -63,9 +63,11 @@ export class PostIcon {
63
63
  const baseHref = IS_BROWSER
64
64
  ? document.querySelector('base[href]')?.getAttribute('href') || ''
65
65
  : '';
66
- const metaIconBase = IS_BROWSER
67
- ? document.querySelector('meta[name="design-system-settings"]')?.getAttribute('data-post-icon-base') || ''
68
- : '';
66
+ let metaIconBase = '';
67
+ if (IS_BROWSER) {
68
+ const metaTag = document.querySelector('meta[name="design-system-settings"]');
69
+ metaIconBase = metaTag?.getAttribute('data-post-icon-base') || '';
70
+ }
69
71
  // Function to build the first part of the URL when 'this.base' or 'metaIconBase' are relative
70
72
  const buildUrlWithBase = (relativeUrl) => {
71
73
  const normalizedHref = normalizeUrl(baseHref);
@@ -112,7 +114,7 @@ export class PostIcon {
112
114
  this.validateAnimation();
113
115
  }
114
116
  render() {
115
- return (h(Host, { key: '0031b3e2e4016f9b28cade66fa435741940946a7', "data-version": version }, h("span", { key: '0efbcdd5f1dd737640238a0ab81b67ca8218adec', style: this.getStyles() })));
117
+ return (h(Host, { key: '6469b748f2792c383593dacd1d9f1f17daf9cde0', "data-version": version }, h("span", { key: '9f4d9766dc97a07a2562dbc3bb0931de29fe9757', style: this.getStyles() })));
116
118
  }
117
119
  static get is() { return "post-icon"; }
118
120
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1 @@
1
+ :host{display:flex !important}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.post-language-menu-dropdown-container{display:flex;flex-direction:column}.post-language-menu-trigger{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:.25rem .625rem;gap:.375rem;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);text-transform:uppercase;cursor:pointer}.post-language-menu-trigger:hover{text-decoration:none}.post-language-menu-trigger:disabled{border-style:var(--post-core-border-style-dash)}.post-language-menu-trigger{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.post-language-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.post-language-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(a){color:LinkText;border:unset}.post-language-menu-trigger:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}.post-language-menu-trigger:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}.post-language-menu-trigger:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}.post-language-menu-trigger:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg);color:var(--post-scheme-color-interactive-button-primary-enabled-fg)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}.post-language-menu-trigger post-icon{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true]) post-icon{transform:rotate(180deg)}post-menu::part(post-menu){padding-block:0}.post-language-menu-list{margin-top:1rem}