@swisspost/design-system-components 10.0.0-next.55 → 10.0.0-next.57

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 (443) 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-B4gYpuJF.js → index-B4rc1pqu.js} +2150 -292
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/{package-DkJrv93P.js → package-uQ5oiSiN.js} +1 -1
  12. package/dist/cjs/post-accordion_2.cjs.entry.js +19 -15
  13. package/dist/cjs/post-avatar.cjs.entry.js +27 -17
  14. package/dist/cjs/post-back-to-top.cjs.entry.js +23 -43
  15. package/dist/cjs/post-banner.cjs.entry.js +15 -12
  16. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +14 -12
  17. package/dist/cjs/post-breadcrumbs.cjs.entry.js +33 -34
  18. package/dist/cjs/post-card-control.cjs.entry.js +42 -26
  19. package/dist/cjs/{post-closebutton_15.cjs.entry.js → post-closebutton_13.cjs.entry.js} +618 -531
  20. package/dist/cjs/post-collapsible_2.cjs.entry.js +41 -37
  21. package/dist/cjs/post-components.cjs.js +3 -3
  22. package/dist/cjs/post-env-test.cjs.entry.js +15 -0
  23. package/dist/cjs/post-footer.cjs.entry.js +24 -20
  24. package/dist/cjs/post-linkarea.cjs.entry.js +5 -5
  25. package/dist/cjs/post-pagination.cjs.entry.js +615 -0
  26. package/dist/cjs/post-popover-trigger.cjs.entry.js +54 -34
  27. package/dist/cjs/post-popover.cjs.entry.js +26 -17
  28. package/dist/cjs/post-rating.cjs.entry.js +24 -18
  29. package/dist/cjs/post-stepper-item.cjs.entry.js +5 -5
  30. package/dist/cjs/post-stepper.cjs.entry.js +40 -29
  31. package/dist/cjs/post-tab-item.cjs.entry.js +51 -0
  32. package/dist/cjs/post-tab-panel.cjs.entry.js +13 -11
  33. package/dist/cjs/post-tabs.cjs.entry.js +195 -40
  34. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +13 -11
  35. package/dist/cjs/post-tooltip.cjs.entry.js +14 -12
  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 -8
  45. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  46. package/dist/collection/components/post-accordion/post-accordion.js +5 -4
  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 +9 -8
  49. package/dist/collection/components/post-avatar/post-avatar.js +11 -11
  50. package/dist/collection/components/post-back-to-top/post-back-to-top.js +15 -15
  51. package/dist/collection/components/post-banner/post-banner.css +4 -1
  52. package/dist/collection/components/post-banner/post-banner.js +6 -5
  53. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +3 -3
  54. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +29 -29
  55. package/dist/collection/components/post-card-control/post-card-control.js +18 -18
  56. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
  57. package/dist/collection/components/post-closebutton/post-closebutton.js +4 -3
  58. package/dist/collection/components/post-collapsible/post-collapsible.js +28 -28
  59. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +3 -3
  60. package/dist/collection/components/post-footer/post-footer.css +1 -1
  61. package/dist/collection/components/post-footer/post-footer.js +18 -16
  62. package/dist/collection/components/post-header/post-header.css +1 -1
  63. package/dist/collection/components/post-header/post-header.js +144 -82
  64. package/dist/collection/components/post-icon/post-icon.js +18 -16
  65. package/dist/collection/components/post-language-menu/post-language-menu.css +1 -0
  66. package/dist/collection/components/{post-language-switch/post-language-switch.js → post-language-menu/post-language-menu.js} +45 -36
  67. package/dist/collection/components/post-language-menu-item/post-language-menu-item.css +1 -0
  68. package/dist/collection/components/{post-language-option/post-language-option.js → post-language-menu-item/post-language-menu-item.js} +24 -23
  69. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  70. package/dist/collection/components/post-logo/post-logo.css +3 -1
  71. package/dist/collection/components/post-logo/post-logo.js +3 -3
  72. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  73. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +41 -29
  74. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  75. package/dist/collection/components/post-megadropdown/post-megadropdown.js +183 -74
  76. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
  77. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +81 -75
  78. package/dist/collection/components/post-menu/post-menu.css +1 -1
  79. package/dist/collection/components/post-menu/post-menu.js +39 -38
  80. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  81. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +3 -3
  82. package/dist/collection/components/post-pagination/post-pagination.css +1 -0
  83. package/dist/collection/components/post-pagination/post-pagination.js +838 -0
  84. package/dist/collection/components/post-popover/post-popover.js +22 -16
  85. package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +45 -29
  86. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  87. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +82 -131
  88. package/dist/collection/components/post-rating/post-rating.js +7 -7
  89. package/dist/collection/components/post-stepper/post-stepper.js +38 -35
  90. package/dist/collection/components/post-stepper-item/post-stepper-item.css +2 -2
  91. package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
  92. package/dist/collection/components/post-tab-item/post-tab-item.css +1 -0
  93. package/dist/collection/components/post-tab-item/post-tab-item.js +86 -0
  94. package/dist/collection/components/post-tab-panel/post-tab-panel.js +10 -10
  95. package/dist/collection/components/post-tabs/post-tabs.js +232 -59
  96. package/dist/collection/components/post-togglebutton/post-togglebutton.js +2 -2
  97. package/dist/collection/components/post-tooltip/post-tooltip.js +9 -27
  98. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +4 -4
  99. package/dist/collection/utils/environment.js +47 -2
  100. package/dist/collection/utils/event-from.js +2 -2
  101. package/dist/collection/utils/get-focusable-children.js +29 -21
  102. package/dist/collection/utils/is-motion-reduced.js +1 -1
  103. package/dist/collection/utils/tests/environment/hydrate-app-helper.js +16 -0
  104. package/dist/collection/utils/tests/environment/post-env-test.js +9 -0
  105. package/dist/component-names.json +4 -5
  106. package/dist/components/breakpoints.js +1 -178
  107. package/dist/components/debounce.js +1 -0
  108. package/dist/components/environment.js +1 -0
  109. package/dist/components/event-from.js +1 -119
  110. package/dist/components/fade-slide.js +1 -0
  111. package/dist/components/fade.js +1 -11
  112. package/dist/components/focusable.js +1 -5018
  113. package/dist/components/get-focusable-children.js +1 -64
  114. package/dist/components/get-root.js +1 -15
  115. package/dist/components/heading-levels.js +1 -3
  116. package/dist/components/index.browser.js +1 -14
  117. package/dist/components/index.d.ts +11 -10
  118. package/dist/components/index.js +1 -39
  119. package/dist/components/long-press-event.js +1 -257
  120. package/dist/components/package.js +1 -3
  121. package/dist/components/post-accordion-item.js +1 -6
  122. package/dist/components/post-accordion-item2.js +1 -113
  123. package/dist/components/post-accordion.js +1 -6
  124. package/dist/components/post-accordion2.js +1 -138
  125. package/dist/components/post-avatar.js +1 -217
  126. package/dist/components/post-back-to-top.js +1 -144
  127. package/dist/components/post-banner.js +1 -98
  128. package/dist/components/post-breadcrumb-item.js +1 -6
  129. package/dist/components/post-breadcrumb-item2.js +1 -79
  130. package/dist/components/post-breadcrumbs.js +1 -196
  131. package/dist/components/post-card-control.js +1 -326
  132. package/dist/components/post-closebutton.js +1 -6
  133. package/dist/components/post-closebutton2.js +1 -77
  134. package/dist/components/post-collapsible-trigger.js +1 -6
  135. package/dist/components/post-collapsible-trigger2.js +1 -136
  136. package/dist/components/post-collapsible.js +1 -6
  137. package/dist/components/post-collapsible2.js +1 -110
  138. package/dist/components/{post-list.d.ts → post-env-test.d.ts} +4 -4
  139. package/dist/components/post-env-test.js +1 -0
  140. package/dist/components/post-footer.js +1 -116
  141. package/dist/components/post-header.js +1 -372
  142. package/dist/components/post-icon.js +1 -6
  143. package/dist/components/post-icon2.js +1 -159
  144. package/dist/components/post-language-menu-item.d.ts +11 -0
  145. package/dist/components/post-language-menu-item.js +1 -0
  146. package/dist/components/{post-language-switch.d.ts → post-language-menu.d.ts} +4 -4
  147. package/dist/components/post-language-menu.js +1 -0
  148. package/dist/components/post-linkarea.js +1 -58
  149. package/dist/components/post-logo.js +1 -58
  150. package/dist/components/post-mainnavigation.js +1 -180
  151. package/dist/components/post-megadropdown-trigger.js +1 -136
  152. package/dist/components/post-megadropdown.js +1 -267
  153. package/dist/components/post-menu-item.js +1 -6
  154. package/dist/components/post-menu-item2.js +1 -30
  155. package/dist/components/post-menu-trigger.js +1 -6
  156. package/dist/components/post-menu-trigger2.js +1 -110
  157. package/dist/components/post-menu.js +1 -6
  158. package/dist/components/post-menu2.js +1 -242
  159. package/dist/components/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
  160. package/dist/components/post-pagination.js +1 -0
  161. package/dist/components/post-popover-trigger.js +1 -132
  162. package/dist/components/post-popover.js +1 -118
  163. package/dist/components/post-popovercontainer.js +1 -6
  164. package/dist/components/post-popovercontainer2.js +1 -3127
  165. package/dist/components/post-rating.js +1 -148
  166. package/dist/components/post-stepper-item.js +1 -33
  167. package/dist/components/post-stepper.js +1 -134
  168. package/dist/components/{post-list-item.d.ts → post-tab-item.d.ts} +4 -4
  169. package/dist/components/post-tab-item.js +1 -0
  170. package/dist/components/post-tab-panel.js +1 -54
  171. package/dist/components/post-tabs.js +1 -196
  172. package/dist/components/post-togglebutton.js +1 -56
  173. package/dist/components/post-togglebutton2.js +1 -0
  174. package/dist/components/post-tooltip-trigger.js +1 -206
  175. package/dist/components/post-tooltip.js +1 -114
  176. package/dist/components/react/index.d.ts +2 -0
  177. package/dist/components/react/index.js +1 -2315
  178. package/dist/components/react/p-B8YiQ3mz.js +1 -0
  179. package/dist/components/react/p-BC5nlBvn.js +1 -0
  180. package/dist/components/react/p-BLchVpF6.js +1 -14
  181. package/dist/components/react/p-BVCjnh6Q.js +1 -0
  182. package/dist/{post-components/p-CBFgkSgY.js → components/react/p-BVGcVycs.js} +1 -1
  183. package/dist/components/react/p-B_XPj2c8.js +1 -0
  184. package/dist/components/react/p-BllOMLDs.js +1 -0
  185. package/dist/components/react/p-BmRNjQUZ.js +1 -0
  186. package/dist/components/react/p-ByFh05IW.js +1 -0
  187. package/dist/components/react/p-C9hMpmsD.js +1 -0
  188. package/dist/components/react/p-CJ13r5fi.js +1 -0
  189. package/dist/components/react/p-CZvbetqX.js +1 -0
  190. package/dist/components/react/p-C_2k3G1c.js +1 -257
  191. package/dist/components/react/p-CoDiS_Ik.js +1 -0
  192. package/dist/components/react/p-Cou17ld8.js +1 -0
  193. package/dist/components/react/p-D5knoiyy.js +1 -0
  194. package/dist/components/react/p-D9DDtvFM.js +1 -0
  195. package/dist/components/react/p-DY2U5CQt.js +1 -0
  196. package/dist/components/react/p-DjIHLduJ.js +1 -3
  197. package/dist/components/react/p-DpATRD2W.js +1 -0
  198. package/dist/components/react/p-FxUVQ4Tx.js +1 -0
  199. package/dist/components/react/p-HygIVKXC.js +1 -5018
  200. package/dist/components/react/p-YR7U0Z_g.js +1 -0
  201. package/dist/components/react/p-ZeKXASQs.js +1 -0
  202. package/dist/components/react/p-r4txK0AC.js +1 -3
  203. package/dist/components/react/p-sSn0kXFi.js +1 -0
  204. package/dist/components/react/post-accordion-item.js +1 -6
  205. package/dist/components/react/post-accordion.js +1 -6
  206. package/dist/components/react/post-avatar.js +1 -218
  207. package/dist/components/react/post-back-to-top.js +1 -145
  208. package/dist/components/react/post-banner.js +1 -99
  209. package/dist/components/react/post-breadcrumb-item.js +1 -6
  210. package/dist/components/react/post-breadcrumbs.js +1 -197
  211. package/dist/components/react/post-card-control.js +1 -327
  212. package/dist/components/react/post-closebutton.js +1 -6
  213. package/dist/components/react/post-collapsible-trigger.js +1 -6
  214. package/dist/components/react/post-collapsible.js +1 -6
  215. package/dist/components/react/{post-list.d.ts → post-env-test.d.ts} +4 -4
  216. package/dist/components/react/post-env-test.js +1 -0
  217. package/dist/components/react/post-footer.js +1 -117
  218. package/dist/components/react/post-header.js +1 -373
  219. package/dist/components/react/post-icon.js +1 -6
  220. package/dist/components/react/post-language-menu-item.d.ts +11 -0
  221. package/dist/components/react/post-language-menu-item.js +1 -0
  222. package/dist/components/react/{post-language-option.d.ts → post-language-menu.d.ts} +4 -4
  223. package/dist/components/react/post-language-menu.js +1 -0
  224. package/dist/components/react/post-linkarea.js +1 -59
  225. package/dist/components/react/post-logo.js +1 -59
  226. package/dist/components/react/post-mainnavigation.js +1 -181
  227. package/dist/components/react/post-megadropdown-trigger.js +1 -137
  228. package/dist/components/react/post-megadropdown.js +1 -268
  229. package/dist/components/react/post-menu-item.js +1 -6
  230. package/dist/components/react/post-menu-trigger.js +1 -6
  231. package/dist/components/react/post-menu.js +1 -6
  232. package/dist/components/react/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
  233. package/dist/components/react/post-pagination.js +1 -0
  234. package/dist/components/react/post-popover-trigger.js +1 -133
  235. package/dist/components/react/post-popover.js +1 -119
  236. package/dist/components/react/post-popovercontainer.js +1 -6
  237. package/dist/components/react/post-rating.js +1 -149
  238. package/dist/components/react/post-stepper-item.js +1 -34
  239. package/dist/components/react/post-stepper.js +1 -135
  240. package/dist/components/react/{post-list-item.d.ts → post-tab-item.d.ts} +4 -4
  241. package/dist/components/react/post-tab-item.js +1 -0
  242. package/dist/components/react/post-tab-panel.js +1 -55
  243. package/dist/components/react/post-tabs.js +1 -197
  244. package/dist/components/react/post-togglebutton.js +1 -57
  245. package/dist/components/react/post-tooltip-trigger.js +1 -207
  246. package/dist/components/react/post-tooltip.js +1 -115
  247. package/dist/components/switch-variants.js +1 -3
  248. package/dist/components/utils.js +1 -0
  249. package/dist/docs.d.ts +11 -0
  250. package/dist/docs.json +873 -631
  251. package/dist/{cjs/breakpoints-CEkeixld.js → esm/breakpoints-DYoSKGHO.js} +89 -6
  252. package/dist/esm/debounce-C9hMpmsD.js +11 -0
  253. package/dist/esm/environment-CEmnRoA6.js +49 -0
  254. package/dist/{components/react/p-CzIKqBrS.js → esm/event-from-rEfV4v4a.js} +2 -2
  255. package/dist/esm/fade-DsgPYmAa.js +24 -0
  256. package/dist/esm/fade-slide-CvOvauo9.js +36 -0
  257. package/dist/esm/{get-focusable-children-D9ZHp2FP.js → get-focusable-children-BXNs2_sw.js} +29 -21
  258. package/dist/{components/react/p-CBFgkSgY.js → esm/get-root-CXfAA093.js} +1 -1
  259. package/dist/esm/{index-wEFJ-c34.js → index-CDZBzSdV.js} +2150 -292
  260. package/dist/esm/loader.js +3 -3
  261. package/dist/esm/package-CZvbetqX.js +3 -0
  262. package/dist/esm/post-accordion_2.entry.js +17 -13
  263. package/dist/esm/post-avatar.entry.js +22 -12
  264. package/dist/esm/post-back-to-top.entry.js +23 -43
  265. package/dist/esm/post-banner.entry.js +14 -11
  266. package/dist/esm/post-breadcrumb-item_2.entry.js +13 -11
  267. package/dist/esm/post-breadcrumbs.entry.js +31 -32
  268. package/dist/esm/post-card-control.entry.js +32 -16
  269. package/dist/esm/{post-closebutton_15.entry.js → post-closebutton_13.entry.js} +599 -510
  270. package/dist/esm/post-collapsible_2.entry.js +38 -34
  271. package/dist/esm/post-components.js +4 -4
  272. package/dist/esm/post-env-test.entry.js +13 -0
  273. package/dist/esm/post-footer.entry.js +21 -17
  274. package/dist/esm/post-linkarea.entry.js +5 -5
  275. package/dist/esm/post-pagination.entry.js +613 -0
  276. package/dist/esm/post-popover-trigger.entry.js +52 -32
  277. package/dist/esm/post-popover.entry.js +25 -16
  278. package/dist/esm/post-rating.entry.js +16 -10
  279. package/dist/esm/post-stepper-item.entry.js +5 -5
  280. package/dist/esm/post-stepper.entry.js +39 -28
  281. package/dist/esm/post-tab-item.entry.js +49 -0
  282. package/dist/esm/post-tab-panel.entry.js +13 -11
  283. package/dist/esm/post-tabs.entry.js +195 -40
  284. package/dist/esm/post-tooltip-trigger.entry.js +10 -8
  285. package/dist/esm/post-tooltip.entry.js +13 -11
  286. package/dist/esm/utils-CoDiS_Ik.js +24 -0
  287. package/dist/post-components/p-09ba7cf9.entry.js +1 -0
  288. package/dist/post-components/p-0c091898.entry.js +1 -0
  289. package/dist/post-components/{p-cd03e6f2.entry.js → p-0e97fcfd.entry.js} +1 -1
  290. package/dist/post-components/p-296f1dd5.entry.js +1 -0
  291. package/dist/post-components/p-32ad2b21.entry.js +1 -0
  292. package/dist/post-components/p-366c28cb.entry.js +1 -0
  293. package/dist/post-components/p-41ae68d5.entry.js +1 -0
  294. package/dist/post-components/p-448e7265.entry.js +1 -0
  295. package/dist/post-components/p-554da188.entry.js +1 -0
  296. package/dist/post-components/p-5912f8f1.entry.js +1 -0
  297. package/dist/post-components/p-790f300d.entry.js +1 -0
  298. package/dist/post-components/p-7ed5a493.entry.js +1 -0
  299. package/dist/post-components/p-85bea1b6.entry.js +1 -0
  300. package/dist/post-components/p-8bcff4d2.entry.js +1 -0
  301. package/dist/post-components/p-9dc9c245.entry.js +1 -0
  302. package/dist/post-components/p-B7ebLhHc.js +1 -0
  303. package/dist/post-components/p-BVCjnh6Q.js +1 -0
  304. package/dist/post-components/p-BXNs2_sw.js +1 -0
  305. package/dist/post-components/p-C9hMpmsD.js +1 -0
  306. package/dist/post-components/p-CDZBzSdV.js +2 -0
  307. package/dist/post-components/p-CEmnRoA6.js +1 -0
  308. package/dist/post-components/p-CZvbetqX.js +1 -0
  309. package/dist/post-components/p-CoDiS_Ik.js +1 -0
  310. package/dist/post-components/p-D5knoiyy.js +1 -0
  311. package/dist/post-components/p-DI-h_mEL.js +1 -0
  312. package/dist/post-components/p-a06f9695.entry.js +1 -0
  313. package/dist/post-components/p-a191f1df.entry.js +1 -0
  314. package/dist/post-components/p-c5d19d62.entry.js +1 -0
  315. package/dist/post-components/{p-24dc54d1.entry.js → p-c8c4d05b.entry.js} +1 -1
  316. package/dist/post-components/{p-57288cb2.entry.js → p-d1a5c980.entry.js} +1 -1
  317. package/dist/post-components/p-d4e2c556.entry.js +1 -0
  318. package/dist/post-components/p-f96a310c.entry.js +1 -0
  319. package/dist/post-components/p-fab2327d.entry.js +1 -0
  320. package/dist/post-components/p-rEfV4v4a.js +1 -0
  321. package/dist/post-components/post-components.css +1 -1
  322. package/dist/post-components/post-components.esm.js +1 -1
  323. package/dist/prebuild.js +46 -0
  324. package/dist/types/animations/collapse.d.ts +1 -0
  325. package/dist/types/animations/fade-slide.d.ts +11 -0
  326. package/dist/types/animations/fade.d.ts +2 -2
  327. package/dist/types/animations/index.d.ts +2 -0
  328. package/dist/types/animations/slide.d.ts +9 -2
  329. package/dist/types/animations/types.d.ts +13 -0
  330. package/dist/types/animations/utils.d.ts +2 -0
  331. package/dist/types/components/post-accordion-item/heading-levels.d.ts +1 -1
  332. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +2 -2
  333. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -2
  334. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +6 -6
  335. package/dist/types/components/post-collapsible/post-collapsible.d.ts +4 -5
  336. package/dist/types/components/post-footer/post-footer.d.ts +4 -4
  337. package/dist/types/components/post-header/post-header.d.ts +23 -13
  338. package/dist/types/components/{post-language-switch/post-language-switch.d.ts → post-language-menu/post-language-menu.d.ts} +12 -11
  339. package/dist/types/components/{post-language-option/post-language-option.d.ts → post-language-menu-item/post-language-menu-item.d.ts} +5 -5
  340. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +6 -5
  341. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +20 -2
  342. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +17 -23
  343. package/dist/types/components/post-menu/post-menu.d.ts +4 -4
  344. package/dist/types/components/post-pagination/post-pagination.d.ts +224 -0
  345. package/dist/types/components/post-popover/post-popover.d.ts +4 -3
  346. package/dist/types/components/post-popover-trigger/post-popover-trigger.d.ts +2 -1
  347. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +23 -21
  348. package/dist/types/components/post-rating/post-rating.d.ts +1 -1
  349. package/dist/types/components/post-stepper/post-stepper.d.ts +9 -8
  350. package/dist/types/components/post-tab-item/post-tab-item.d.ts +19 -0
  351. package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +3 -3
  352. package/dist/types/components/post-tabs/post-tabs.d.ts +33 -12
  353. package/dist/types/components/post-tooltip/post-tooltip.d.ts +1 -5
  354. package/dist/types/components.d.ts +322 -219
  355. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +9 -0
  356. package/dist/types/stencil-public-runtime.d.ts +147 -10
  357. package/dist/types/types/heading-levels.d.ts +1 -1
  358. package/dist/types/utils/environment.d.ts +25 -1
  359. package/dist/types/utils/get-focusable-children.d.ts +2 -2
  360. package/dist/types/utils/tests/environment/hydrate-app-helper.d.ts +5 -0
  361. package/dist/types/utils/tests/environment/post-env-test.d.ts +3 -0
  362. package/hydrate/index.d.ts +14 -0
  363. package/hydrate/index.js +7494 -2714
  364. package/hydrate/index.mjs +7493 -2715
  365. package/package.json +7 -8
  366. package/dist/cjs/fade-nS5zzDQS.js +0 -14
  367. package/dist/cjs/index-UFKR6Ok0.js +0 -98
  368. package/dist/cjs/post-tab-header.cjs.entry.js +0 -31
  369. package/dist/collection/animations/slide-and-fade.js +0 -25
  370. package/dist/collection/components/post-language-option/post-language-option.css +0 -1
  371. package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
  372. package/dist/collection/components/post-list/post-list.css +0 -1
  373. package/dist/collection/components/post-list/post-list.js +0 -97
  374. package/dist/collection/components/post-list-item/post-list-item.css +0 -1
  375. package/dist/collection/components/post-list-item/post-list-item.js +0 -26
  376. package/dist/collection/components/post-tab-header/post-tab-header.css +0 -1
  377. package/dist/collection/components/post-tab-header/post-tab-header.js +0 -65
  378. package/dist/components/index2.js +0 -89
  379. package/dist/components/post-language-option.d.ts +0 -11
  380. package/dist/components/post-language-option.js +0 -99
  381. package/dist/components/post-language-switch.js +0 -157
  382. package/dist/components/post-list-item.js +0 -38
  383. package/dist/components/post-list.js +0 -61
  384. package/dist/components/post-tab-header.js +0 -52
  385. package/dist/components/react/p-BVXiQdHq.js +0 -64
  386. package/dist/components/react/p-BhxZzOEC.js +0 -3
  387. package/dist/components/react/p-CSAMO7iJ.js +0 -243
  388. package/dist/components/react/p-CYkf_7Y5.js +0 -89
  389. package/dist/components/react/p-Ccrl2AQn.js +0 -111
  390. package/dist/components/react/p-CewRvBtg.js +0 -139
  391. package/dist/components/react/p-Cwiv86_f.js +0 -111
  392. package/dist/components/react/p-D2waO0Zc.js +0 -31
  393. package/dist/components/react/p-DBPOV12C.js +0 -160
  394. package/dist/components/react/p-DVGEExot.js +0 -3128
  395. package/dist/components/react/p-Djvj8fd2.js +0 -80
  396. package/dist/components/react/p-LtiDhYis.js +0 -137
  397. package/dist/components/react/p-SbIC4aZX.js +0 -11
  398. package/dist/components/react/p-XrZzCOKT.js +0 -78
  399. package/dist/components/react/p-v3pOrMNQ.js +0 -114
  400. package/dist/components/react/post-language-option.js +0 -100
  401. package/dist/components/react/post-language-switch.d.ts +0 -11
  402. package/dist/components/react/post-language-switch.js +0 -158
  403. package/dist/components/react/post-list-item.js +0 -39
  404. package/dist/components/react/post-list.js +0 -62
  405. package/dist/components/react/post-tab-header.js +0 -53
  406. package/dist/esm/breakpoints-CJ80BZ06.js +0 -178
  407. package/dist/esm/event-from-CzIKqBrS.js +0 -119
  408. package/dist/esm/fade-SbIC4aZX.js +0 -11
  409. package/dist/esm/get-root-BkQ3CrLq.js +0 -15
  410. package/dist/esm/index-Beaz8wEe.js +0 -89
  411. package/dist/esm/package-BhxZzOEC.js +0 -3
  412. package/dist/esm/post-tab-header.entry.js +0 -29
  413. package/dist/post-components/p-01e678c9.entry.js +0 -1
  414. package/dist/post-components/p-034a453f.entry.js +0 -1
  415. package/dist/post-components/p-15a4cdbf.entry.js +0 -1
  416. package/dist/post-components/p-2a2030bf.entry.js +0 -1
  417. package/dist/post-components/p-2ed84cc3.entry.js +0 -1
  418. package/dist/post-components/p-3228968f.entry.js +0 -1
  419. package/dist/post-components/p-3c01ddfe.entry.js +0 -1
  420. package/dist/post-components/p-748b1f01.entry.js +0 -1
  421. package/dist/post-components/p-7745e46e.entry.js +0 -1
  422. package/dist/post-components/p-7f635728.entry.js +0 -1
  423. package/dist/post-components/p-82c178a3.entry.js +0 -1
  424. package/dist/post-components/p-9b5f8319.entry.js +0 -1
  425. package/dist/post-components/p-Beaz8wEe.js +0 -1
  426. package/dist/post-components/p-BhxZzOEC.js +0 -1
  427. package/dist/post-components/p-CJ80BZ06.js +0 -1
  428. package/dist/post-components/p-D9ZHp2FP.js +0 -1
  429. package/dist/post-components/p-SbIC4aZX.js +0 -1
  430. package/dist/post-components/p-a9644e54.entry.js +0 -1
  431. package/dist/post-components/p-af030a3a.entry.js +0 -1
  432. package/dist/post-components/p-b8ba8139.entry.js +0 -1
  433. package/dist/post-components/p-db935e8e.entry.js +0 -1
  434. package/dist/post-components/p-e62e1f57.entry.js +0 -1
  435. package/dist/post-components/p-fb4b1641.entry.js +0 -1
  436. package/dist/post-components/p-wEFJ-c34.js +0 -2
  437. package/dist/types/animations/slide-and-fade.d.ts +0 -2
  438. package/dist/types/components/post-list/post-list.d.ts +0 -24
  439. package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
  440. package/dist/types/components/post-tab-header/post-tab-header.d.ts +0 -14
  441. /package/dist/collection/components/{post-language-switch → post-language-menu}/switch-variants.js +0 -0
  442. /package/dist/{post-components/p-CzIKqBrS.js → components/react/p-rEfV4v4a.js} +0 -0
  443. /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
@@ -1,16 +1,19 @@
1
- import { r as registerInstance, h, H as Host, a as getElement, c as createEvent } from './index-wEFJ-c34.js';
2
- import { v as version } from './package-BhxZzOEC.js';
3
- import { d as checkEmptyOrOneOf, a as checkEmptyOrType, c as checkRequiredAndType, h as checkEmptyOrUrl } from './index-Beaz8wEe.js';
4
- import { t as throttle, b as breakpoint, I as IS_BROWSER } from './breakpoints-CJ80BZ06.js';
5
- import { a as getFocusableChildren } from './get-focusable-children-D9ZHp2FP.js';
6
- import { E as EventFrom } from './event-from-CzIKqBrS.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement, c as createEvent } from './index-CDZBzSdV.js';
2
+ import { v as version } from './package-CZvbetqX.js';
3
+ import { f as checkEmptyOrOneOf, c as checkRequiredAndType, t as throttle, e as breakpoint, b as checkEmptyOrType, g as checkRequiredAndPattern, i as checkEmptyOrUrl } from './breakpoints-DYoSKGHO.js';
4
+ import { f as fade } from './fade-DsgPYmAa.js';
5
+ import { g as getDeepFocusableChildren, a as getFocusableChildren } from './get-focusable-children-BXNs2_sw.js';
6
+ import { E as EventFrom } from './event-from-rEfV4v4a.js';
7
+ import { a as IS_BROWSER } from './environment-CEmnRoA6.js';
7
8
  import { n as nanoid } from './index.browser-BLchVpF6.js';
9
+ import { r as resolveEasing } from './utils-CoDiS_Ik.js';
10
+ import { f as fadeSlide } from './fade-slide-CvOvauo9.js';
8
11
  import { P as PLACEMENT_TYPES } from './placement-DRiVosES.js';
9
- import { g as getRoot } from './get-root-BkQ3CrLq.js';
12
+ import { g as getRoot } from './get-root-CXfAA093.js';
10
13
 
11
14
  const BUTTON_TYPES = ['button', 'submit', 'reset'];
12
15
 
13
- const postClosebuttonCss = ".visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}post-closebutton .btn{padding:0;border:unset;min-height:unset;min-width:unset;width:var(--post-device-sizing-notification-1);height:var(--post-device-sizing-notification-1);border-radius:var(--post-device-border-radius-round);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);display:flex;align-items:center;justify-content:center}post-closebutton .btn>post-icon{min-width:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);height:var(--post-device-sizing-interactive-icon-size4)}post-closebutton .btn:not(:disabled):hover,post-closebutton .btn.pretend-hover{cursor:pointer;background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-closebutton .btn:not(:disabled):hover,post-closebutton .btn.pretend-hover{color:HighlightText !important}}";
16
+ const postClosebuttonCss = () => `.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}post-closebutton .btn{padding:0;border:unset;min-height:unset;min-width:unset;width:var(--post-device-sizing-notification-1);height:var(--post-device-sizing-notification-1);border-radius:var(--post-device-border-radius-round);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);display:flex;align-items:center;justify-content:center}post-closebutton .btn>post-icon{min-width:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);height:var(--post-device-sizing-interactive-icon-size4)}post-closebutton .btn{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}post-closebutton .btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-closebutton .btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-closebutton .btn:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-closebutton .btn:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-closebutton .btn:not(:disabled):hover,post-closebutton .btn.pretend-hover{cursor:pointer;background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-closebutton .btn:not(:disabled):hover,post-closebutton .btn.pretend-hover{color:HighlightText !important}}`;
14
17
 
15
18
  const PostClosebutton = class {
16
19
  constructor(hostRef) {
@@ -46,40 +49,45 @@ const PostClosebutton = class {
46
49
  }
47
50
  }
48
51
  render() {
49
- return (h(Host, { key: '9b5bb7e95c6cf3039119ce485e963ac672834bc3', "data-version": version }, h("button", { key: '084709a7c632a8c665905a667fa6498cae1972a6', class: "btn", type: this.buttonType }, h("post-icon", { key: 'e19209e0c8de59d3e187531e0185d8f2d5c85408', "aria-hidden": "true", name: "closex" }), h("span", { key: '233184a45391e5a9b89635345f2324a87f5e9558', class: "visually-hidden" }, h("slot", { key: 'c213ac1dbdd98d83a8b2dc1b74c85926404ad1c1' })))));
52
+ return (h(Host, { key: '6965a8cb5fb765b4fcec0439ceeafe19d34970c2', "data-version": version }, h("button", { key: '7e718f70b0a4ac79e9439784dac46bd1ffd60fd1', class: "btn", type: this.buttonType }, h("post-icon", { key: '70acda3fbe6c9420f0be708fde6b29a7d5337d13', "aria-hidden": "true", name: "closex" }), h("span", { key: '899b3814c0898b521e4166e1cd951af628558e78', class: "visually-hidden" }, h("slot", { key: 'b13d0e95fd567c86e93e5185389909c7c0e7107d' })))));
50
53
  }
51
54
  get host() { return getElement(this); }
52
55
  static get watchers() { return {
53
- "buttonType": ["validateButtonType"]
56
+ "buttonType": [{
57
+ "validateButtonType": 0
58
+ }]
54
59
  }; }
55
60
  };
56
- PostClosebutton.style = postClosebuttonCss;
61
+ PostClosebutton.style = postClosebuttonCss();
57
62
 
58
- const easing$1 = 'ease';
59
- const duration$1 = 500;
60
- const fill = 'forwards';
61
- function slideUp(el, translateSize = '-100%') {
62
- return el.animate([
63
- { transform: 'translateY(0)' }, // Starting position (no translation)
64
- { transform: `translateY(${translateSize})` }, // End position
65
- ], {
66
- duration: duration$1,
67
- easing: easing$1,
68
- fill,
69
- });
63
+ /**
64
+ * Used by PostMegadropdown (burger menu)
65
+ */
66
+ const defaultOptions = {
67
+ translate: 100,
68
+ duration: 500,
69
+ easing: 'ease',
70
+ fill: 'none',
71
+ };
72
+ function animateSlide(el, keyframes, options) {
73
+ const { duration, easing, fill } = { ...defaultOptions, ...options };
74
+ return el.animate(keyframes, { duration, easing: resolveEasing(easing), fill });
70
75
  }
71
- function slideDown(el, translateSize = '-100%') {
72
- return el.animate([
73
- { transform: `translateY(${translateSize})` }, // Starting position (no translation)
74
- { transform: 'translateY(0)' }, // End position
75
- ], {
76
- duration: duration$1,
77
- easing: easing$1,
78
- fill,
79
- });
76
+ function slide(el, direction, options = {}) {
77
+ const mergedOptions = {
78
+ ...defaultOptions,
79
+ ...options,
80
+ };
81
+ const { translate } = mergedOptions;
82
+ const baseKeyframes = [
83
+ { transform: `translateX(${translate}%)` },
84
+ { transform: 'translateX(0)' },
85
+ ];
86
+ const keyframes = direction === 'in' ? baseKeyframes : [...baseKeyframes].reverse();
87
+ return animateSlide(el, keyframes, options);
80
88
  }
81
89
 
82
- const postHeaderCss = ":host{--post-global-header-top:calc(var(--post-global-header-reduced-height) - var(--post-global-header-expanded-height));--post-header-top:calc(var(--post-header-reduced-height) - var(--post-header-expanded-height));--post-logo-height:calc(var(--post-global-header-expanded-height) - var(--post-header-scroll-top, 0px));--post-global-controls-top:clamp( 1000 * (var(--post-global-header-reduced-height) - var(--post-global-header-expanded-height)), calc(-1 * min(var(--post-header-scroll-top, 0px) / 4, var(--post-global-header-reduced-height))), 0px )}@media screen and (min-width: 1024px){:host{--post-header-gap:0.25rem;--post-global-header-padding-inline-start:0.25rem;--post-global-header-padding-inline-end:0.5rem;--post-local-header-padding-inline-start:0.75rem;--post-local-header-padding-inline-end:0.5rem}}@media screen and (min-width: 600px)and (max-width: 1023.98px){:host{--post-header-gap:0.75rem 0.25rem;--post-global-header-padding-inline-start:0.25rem;--post-global-header-padding-inline-end:0.25rem;--post-local-header-padding-inline-start:0.75rem;--post-local-header-padding-inline-end:0.25rem;--post-local-header-padding-block:0rem;--post-burger-menu-padding-inline:2.5rem;--post-burger-menu-body-gap:2rem;--post-burger-menu-footer-gap:1.5rem}}@media screen and (min-width: 600px)and (max-width: 779.98px){:host{--post-burger-menu-padding-inline:1rem}}@media screen and (min-width: 0)and (max-width: 599.98px){:host{--post-header-gap:0.75rem 0.25rem;--post-global-header-padding-inline-start:0rem;--post-global-header-padding-inline-end:0.5rem;--post-local-header-padding-inline-start:0.5rem;--post-local-header-padding-inline-end:0.5rem;--post-local-header-padding-block:0rem;--post-burger-menu-padding-inline:1rem;--post-burger-menu-body-gap:1.5rem;--post-burger-menu-footer-gap:1rem}}:host([data-expanded]){--post-header-top:0;--post-global-header-top:0;--post-global-controls-top:0;--post-logo-height:var(--post-global-header-expanded-height)}*,::before,::after{box-sizing:border-box}:host,.global-header,.local-header{transition:inset-block-start 150ms cubic-bezier(0.4, 0, 0.2, 1)}.global-header,.local-header,.burger-menu{box-shadow:var(--post-device-elevation-300)}.global-header,.sliding-controls,.local-header,.navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--post-header-gap)}:host{container-type:inline-size;display:block;position:sticky;inset-block-start:var(--post-header-top);z-index:1020}.global-header{z-index:2;position:sticky;inset-block-start:var(--post-global-header-top);background-color:#fc0;height:var(--post-global-header-expanded-height);padding-inline-start:var(--post-global-header-padding-inline-start);padding-inline-end:var(--post-global-header-padding-inline-end)}.global-header:has(~.local-header:not(.no-title.no-navigation)),.global-header:has(~.burger-menu.extended){box-shadow:none}.global-header .logo{align-self:flex-end;width:var(--post-global-header-expanded-height);height:var(--post-logo-height);min-height:var(--post-global-header-reduced-height);max-height:100%;margin-inline-end:1.25rem}.global-header .sliding-controls{flex-grow:1;justify-content:flex-end;position:relative;inset-block-start:var(--post-global-controls-top)}.global-header .target-group{margin-inline-end:auto}.global-header.no-target-group .target-group{display:none}.local-header{position:relative;flex-wrap:wrap;background-color:#fff;min-height:var(--post-local-header-expanded-min-height);padding-inline-start:var(--post-local-header-padding-inline-start);padding-inline-end:var(--post-local-header-padding-inline-end);padding-block:var(--post-local-header-padding-block)}.local-header:not(.no-title,.no-navigation){padding-block-start:1.125rem}.local-header.no-title.no-navigation{display:none}.local-header:has(.navigation.megadropdown-open),.local-header:has(~.burger-menu.extended){box-shadow:none}.local-header:has(.navigation.megadropdown-open)::after,.local-header:has(~.burger-menu.extended)::after{content:\"\";display:block;position:absolute;inset-inline:0;inset-block-end:0;height:1px;background-color:#e1e0dc}.local-header .navigation{flex:1 0 100%;height:var(--post-main-navigation-height);margin-inline-start:calc(-1*var(--post-local-header-padding-inline-start));max-width:100cqw}.local-header.no-navigation .navigation{display:none}.local-header .navigation-controls{flex:0 0 auto}.local-header.no-navigation-controls .navigation{margin-inline-end:calc(-1*var(--post-local-header-padding-inline-end))}.local-header.no-navigation-controls .navigation-controls{display:none}.burger-menu{z-index:-1;position:absolute;inset-inline:0;inset-block-start:100%;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));overflow:hidden auto;display:flex;flex-direction:column;background-color:#fafafa}.burger-menu:not(.extended){transform:translateY(-100%)}.burger-menu:not(.extended)>*{display:none}.burger-menu .burger-menu-body,.burger-menu .burger-menu-footer{display:flex;flex-direction:column;padding-inline:var(--post-burger-menu-padding-inline)}.burger-menu .burger-menu-body{flex-grow:1;padding-block:1.5rem;gap:var(--post-burger-menu-body-gap)}.burger-menu .burger-menu-footer{background-color:#f0efed;padding-block:1rem 1.5rem;gap:var(--post-burger-menu-footer-gap)}.burger-menu .navigation-controls{height:3.5rem;display:flex;align-items:center;justify-content:flex-end;padding-inline:.25rem}.burger-menu.no-navigation-controls .navigation-controls{display:none}";
90
+ const postHeaderCss = () => `:host{--post-global-header-top:calc( var(--post-global-header-reduced-height) - var(--post-global-header-expanded-height) );--post-header-top:calc(var(--post-header-reduced-height) - var(--post-header-expanded-height));--post-logo-height:calc( var(--post-global-header-expanded-height) - var(--post-header-scroll-top, 0px) );--post-global-controls-top:clamp( 1000 * (var(--post-global-header-reduced-height) - var(--post-global-header-expanded-height)), calc( -1 * min(var(--post-header-scroll-top, 0px) / 4, var(--post-global-header-reduced-height)) ), 0px )}@media screen and (min-width: 1024px){:host{--post-header-gap:0.25rem;--post-global-header-padding-inline-start:0.25rem;--post-global-header-padding-inline-end:0.5rem;--post-local-header-padding-inline-start:0.75rem;--post-local-header-padding-inline-end:0.5rem}}@media screen and (min-width: 600px)and (max-width: 1023.98px){:host{--post-header-gap:0.75rem 0.25rem;--post-global-header-padding-inline-start:0.25rem;--post-global-header-padding-inline-end:0.25rem;--post-local-header-padding-inline-start:0.75rem;--post-local-header-padding-inline-end:0.25rem;--post-local-header-padding-block:0rem;--post-burger-menu-padding-inline:2.5rem;--post-burger-menu-body-gap:2rem;--post-burger-menu-footer-gap:1.5rem}}@media screen and (min-width: 600px)and (max-width: 779.98px){:host{--post-burger-menu-padding-inline:1rem}}@media screen and (min-width: 0)and (max-width: 599.98px){:host{--post-header-gap:0.75rem 0.25rem;--post-global-header-padding-inline-start:0rem;--post-global-header-padding-inline-end:0.5rem;--post-local-header-padding-inline-start:0.5rem;--post-local-header-padding-inline-end:0.5rem;--post-local-header-padding-block:0rem;--post-burger-menu-padding-inline:1rem;--post-burger-menu-body-gap:1.5rem;--post-burger-menu-footer-gap:1rem}}:host(:not([full-width])),:host([full-width=false]){--post-header-content-max-width:1440px}:host([data-expanded]),:host([data-menu-extended]){--post-header-top:0;--post-global-header-top:-0.001px;--post-global-controls-top:0;--post-logo-height:var(--post-global-header-expanded-height)}*,::before,::after{box-sizing:border-box}:host,header,.global-header,.local-header{transition:inset-block-start 150ms cubic-bezier(0.4, 0, 0.2, 1)}.global-header,.local-header,.burger-menu{box-shadow:var(--post-device-elevation-300)}.section,.navigation,.sliding-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--post-header-gap);flex-wrap:wrap}.section{max-width:var(--post-header-content-max-width);margin-inline:auto}:host{container-type:inline-size;display:block;position:sticky;inset-block-start:var(--post-header-top);z-index:1020}:host post-togglebutton{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:.25rem .625rem;gap:.375rem;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}:host post-togglebutton:hover{text-decoration:none}:host post-togglebutton:disabled{border-style:var(--post-core-border-style-dash)}:host post-togglebutton{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host post-togglebutton:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host post-togglebutton:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host post-togglebutton:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host post-togglebutton:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host post-togglebutton:is(a){color:LinkText;border:unset}:host post-togglebutton:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}:host post-togglebutton:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}:host post-togglebutton:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}:host post-togglebutton:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}:host post-togglebutton:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg);color:var(--post-scheme-color-interactive-button-primary-enabled-fg)}:host post-togglebutton:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}@media screen and (min-width: 0)and (max-width: 599.98px){:host post-togglebutton{padding:.625rem}:host post-togglebutton>:not(post-icon){display:none}:host post-togglebutton>post-icon{font-size:1.5rem}}.global-header{z-index:2;position:sticky;inset-block-start:var(--post-global-header-top);background-color:#fc0}.global-header .section{height:var(--post-global-header-expanded-height);padding-inline-start:var(--post-global-header-padding-inline-start);padding-inline-end:var(--post-global-header-padding-inline-end)}.global-header:has(~.local-header:not(.no-title.no-navigation)),.global-header:has(~.burger-menu.extended){box-shadow:none}.global-header .logo{align-self:flex-end;width:var(--post-global-header-expanded-height);height:var(--post-logo-height);min-height:var(--post-global-header-reduced-height);max-height:100%;margin-inline-end:calc(1.25rem - var(--post-header-gap))}.global-header .sliding-controls{flex-grow:1;justify-content:flex-end;position:relative;inset-block-start:var(--post-global-controls-top)}.global-header .audience{margin-inline-end:auto}.global-header.no-audience .audience{display:none}.local-header{position:relative;background-color:#fff}.local-header .section{min-height:var(--post-local-header-expanded-min-height);padding-inline-start:var(--post-local-header-padding-inline-start);padding-inline-end:var(--post-local-header-padding-inline-end);padding-block:var(--post-local-header-padding-block)}.local-header:not(.no-title,.no-navigation) .section{padding-block-start:1.125rem}.local-header.no-title.no-navigation{display:none}.local-header:has(.navigation.megadropdown-open),.local-header:has(~.burger-menu.extended){box-shadow:none}.local-header:has(.navigation.megadropdown-open)::after,.local-header:has(~.burger-menu.extended)::after{content:"";display:block;position:absolute;inset-inline:0;inset-block-end:0;height:1px;background-color:#e1e0dc}.local-header .navigation{flex:1 0 100%;height:var(--post-main-navigation-height);margin-inline-start:calc(-1*var(--post-local-header-padding-inline-start));max-width:100cqw}.local-header.no-navigation .navigation{display:none}.local-header .local-nav{flex:0 0 auto}.local-header.no-local-nav .navigation{margin-inline-end:calc(-1*var(--post-local-header-padding-inline-end))}.local-header.no-local-nav .local-nav{display:none}.burger-menu{z-index:-1;position:absolute;inset-inline:0;inset-block-start:100%;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));overflow:hidden auto;display:flex;flex-direction:column;background-color:#fafafa}.burger-menu.extended.megadropdown-open{overflow:hidden}.burger-menu:not(.extended){transform:translateY(-100%);display:none}.burger-menu:not(.extended)>*{display:none}.burger-menu .burger-menu-body,.burger-menu .burger-menu-footer{display:flex;flex-direction:column;padding-inline:var(--post-burger-menu-padding-inline)}.burger-menu .burger-menu-body{flex-grow:1;padding-block:1.5rem;gap:var(--post-burger-menu-body-gap)}.burger-menu .burger-menu-footer{background-color:#f0efed;padding-block:1rem 1.5rem;gap:var(--post-burger-menu-footer-gap)}.burger-menu .local-nav{min-height:3.5rem;display:flex;align-items:center;justify-content:flex-end;padding-inline:.25rem}.burger-menu.no-local-nav .local-nav{display:none}`;
83
91
 
84
92
  var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
85
93
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -109,6 +117,12 @@ const PostHeader = class {
109
117
  }
110
118
  return document.body;
111
119
  }
120
+ validateFullWidth() {
121
+ checkRequiredAndType(this, 'fullWidth', 'boolean');
122
+ }
123
+ validateTextMenu() {
124
+ checkRequiredAndType(this, 'textMenu', 'string');
125
+ }
112
126
  lockBody(newValue, _oldValue, propName) {
113
127
  const scrollParent = this.scrollParent;
114
128
  const burgerMenuExtended = propName === 'burgerMenuExtended' ? newValue : this.burgerMenuExtended;
@@ -124,13 +138,21 @@ const PostHeader = class {
124
138
  constructor(hostRef) {
125
139
  registerInstance(this, hostRef);
126
140
  this.throttledResize = throttle(50, () => this.updateLocalHeaderHeight());
141
+ this.animationOptions = {
142
+ duration: 350,
143
+ easing: 'headerEase',
144
+ };
127
145
  this.device = breakpoint.get('device');
128
146
  this.hasNavigation = false;
129
- this.hasNavigationControls = false;
130
- this.hasTargetGroup = false;
147
+ this.hasLocalNav = false;
148
+ this.hasAudience = false;
131
149
  this.hasTitle = false;
132
150
  this.burgerMenuExtended = false;
133
151
  this.megadropdownOpen = false;
152
+ /**
153
+ * Makes the header content span the full width on screens larger than 1440px.
154
+ */
155
+ this.fullWidth = false;
134
156
  this.breakpointChange = (e) => {
135
157
  this.device = e.detail;
136
158
  this.switchLanguageSwitchMode();
@@ -144,15 +166,14 @@ const PostHeader = class {
144
166
  this.megadropdownOpen = false;
145
167
  }
146
168
  };
147
- this.megadropdownStateHandler = (event) => {
148
- this.megadropdownOpen = event.detail.isVisible;
149
- };
150
169
  this.handleScrollEvent = this.handleScrollEvent.bind(this);
151
170
  this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
152
171
  this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
153
172
  this.keyboardHandler = this.keyboardHandler.bind(this);
154
173
  this.handleLinkClick = this.handleLinkClick.bind(this);
174
+ this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
155
175
  this.checkSlottedContent = this.checkSlottedContent.bind(this);
176
+ this.megadropdownStateHandler = this.megadropdownStateHandler.bind(this);
156
177
  }
157
178
  connectedCallback() {
158
179
  window.addEventListener('resize', this.throttledResize, { passive: true });
@@ -163,7 +184,6 @@ const PostHeader = class {
163
184
  passive: true,
164
185
  });
165
186
  document.addEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
166
- this.host.addEventListener('click', this.handleLinkClick);
167
187
  window.addEventListener('postBreakpoint:device', this.breakpointChange);
168
188
  this.handleScrollParentResize();
169
189
  this.lockBody(false, this.burgerMenuExtended, 'burgerMenuExtended');
@@ -174,11 +194,14 @@ const PostHeader = class {
174
194
  this.switchLanguageSwitchMode();
175
195
  }
176
196
  componentDidRender() {
197
+ this.validateTextMenu();
198
+ this.validateFullWidth();
177
199
  this.getFocusableElements();
178
200
  this.handleLocalHeaderResize();
179
201
  }
180
202
  componentDidLoad() {
181
203
  this.updateLocalHeaderHeight();
204
+ this.host.shadowRoot.addEventListener('click', this.handleLinkClick);
182
205
  }
183
206
  // Clean up possible side effects when post-header is disconnected
184
207
  disconnectedCallback() {
@@ -190,7 +213,9 @@ const PostHeader = class {
190
213
  scrollParent.removeEventListener('scroll', this.handleScrollEvent);
191
214
  document.removeEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
192
215
  this.host.removeEventListener('keydown', this.keyboardHandler);
193
- this.host.removeEventListener('click', this.handleLinkClick);
216
+ if (this.host.shadowRoot) {
217
+ this.host.shadowRoot.removeEventListener('click', this.handleLinkClick);
218
+ }
194
219
  if (this.scrollParentResizeObserver) {
195
220
  this.scrollParentResizeObserver.disconnect();
196
221
  this.scrollParentResizeObserver = null;
@@ -206,11 +231,9 @@ const PostHeader = class {
206
231
  this.burgerMenuExtended = false;
207
232
  }
208
233
  async closeBurgerMenu() {
209
- this.burgerMenuAnimation.finish();
210
- const menuButton = this.getMenuButton();
211
- if (menuButton) {
212
- menuButton.toggled = false;
213
- }
234
+ this.burgerMenuAnimation?.finish();
235
+ if (this.burgerMenuButton)
236
+ this.burgerMenuButton.toggled = false;
214
237
  this.burgerMenuExtended = false;
215
238
  }
216
239
  /**
@@ -220,18 +243,18 @@ const PostHeader = class {
220
243
  if (this.device === 'desktop')
221
244
  return;
222
245
  this.burgerMenuAnimation = this.burgerMenuExtended
223
- ? slideUp(this.burgerMenu)
224
- : slideDown(this.burgerMenu);
246
+ ? fade(this.burgerMenu, 'out', this.animationOptions)
247
+ : fade(this.burgerMenu, 'in', this.animationOptions);
225
248
  // Update the state of the toggle button
226
- const menuButton = this.host.querySelector('post-togglebutton');
227
- if (menuButton)
228
- menuButton.toggled = force ?? !this.burgerMenuExtended;
249
+ if (this.burgerMenuButton)
250
+ this.burgerMenuButton.toggled = force ?? !this.burgerMenuExtended;
229
251
  if (this.burgerMenuExtended) {
230
252
  // Wait for the close animation to finish before hiding megadropdowns
231
253
  await this.burgerMenuAnimation.finished;
232
254
  this.burgerMenuExtended = force ?? !this.burgerMenuExtended;
233
255
  if (this.burgerMenuExtended === false) {
234
256
  this.closeAllMegadropdowns();
257
+ this.burgerMenu.scrollTop = 0;
235
258
  }
236
259
  }
237
260
  else {
@@ -242,37 +265,31 @@ const PostHeader = class {
242
265
  }
243
266
  }
244
267
  }
268
+ megadropdownStateHandler(event) {
269
+ this.megadropdownOpen = event.detail.isVisible;
270
+ }
245
271
  // Get all the focusable elements in the post-header burger menu
246
272
  getFocusableElements() {
247
- // Get elements in the correct order (different as the DOM order)
248
- const focusableEls = [
249
- ...Array.from(this.host.querySelectorAll('.list-inline:not([slot="meta-navigation"]) > li')),
250
- ...Array.from(this.host.querySelectorAll('nav > post-list > div > post-list-item, post-megadropdown-trigger')),
251
- ...Array.from(this.host.querySelectorAll('.list-inline[slot="meta-navigation"] > li, post-language-option')),
252
- ];
253
- // Add the main toggle menu button to the list of focusable children
254
- const focusableChildren = [
255
- this.host.querySelector('post-togglebutton'),
256
- ...focusableEls.flatMap(el => Array.from(getFocusableChildren(el))),
257
- ];
258
- this.firstFocusableEl = focusableChildren[0];
259
- this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
260
- }
261
- getMenuButton() {
262
- return this.host.querySelector('post-togglebutton');
273
+ if (!this.burgerMenu)
274
+ return;
275
+ const focusableElements = [this.burgerMenuButton];
276
+ focusableElements.push(...getDeepFocusableChildren(this.localHeader, el => !el.matches('post-megadropdown')), ...getDeepFocusableChildren(this.burgerMenu, el => !el.matches('post-megadropdown')));
277
+ this.firstFocusableEl = focusableElements[0];
278
+ this.lastFocusableEl = focusableElements[focusableElements.length - 1];
263
279
  }
264
280
  keyboardHandler(e) {
265
- if (e.key === 'Tab' && this.burgerMenuExtended) {
266
- if (e.shiftKey && document.activeElement === this.firstFocusableEl) {
267
- // If back tab (Tab + Shift) and first element is focused, focus goes to the last element of the megadropdown
268
- e.preventDefault();
269
- this.lastFocusableEl.focus();
270
- }
271
- else if (!e.shiftKey && document.activeElement === this.lastFocusableEl) {
272
- // If Tab and last element is focused, focus goes back to the first element of the megadropdown
273
- e.preventDefault();
274
- this.firstFocusableEl.focus();
275
- }
281
+ if (e.key !== 'Tab' || !this.burgerMenuExtended)
282
+ return;
283
+ const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
284
+ if (e.shiftKey && activeElement === this.firstFocusableEl) {
285
+ // If back tab (Tab + Shift) and first element is focused, focus goes to the last element of the megadropdown
286
+ e.preventDefault();
287
+ this.lastFocusableEl.focus();
288
+ }
289
+ else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
290
+ // If Tab and last element is focused, focus goes back to the first element of the megadropdown
291
+ e.preventDefault();
292
+ this.firstFocusableEl.focus();
276
293
  }
277
294
  }
278
295
  closeAllMegadropdowns() {
@@ -332,21 +349,28 @@ const PostHeader = class {
332
349
  }
333
350
  }
334
351
  checkSlottedContent() {
335
- this.hasNavigation = !!this.host.querySelector('[slot="post-mainnavigation"]');
336
- this.hasNavigationControls = !!this.host.querySelector('[slot="navigation-controls"]');
337
- this.hasTargetGroup = !!this.host.querySelector('[slot="target-group"]');
352
+ this.hasNavigation = !!this.host.querySelector('[slot="main-nav"]');
353
+ this.hasLocalNav = !!this.host.querySelector('[slot="local-nav"]');
354
+ this.hasAudience = !!this.host.querySelector('[slot="audience"]');
338
355
  this.hasTitle = !!this.host.querySelector('[slot="title"]');
339
356
  }
340
357
  switchLanguageSwitchMode() {
341
358
  const variant = this.hasBurgerMenu ? 'list' : 'menu';
342
- Array.from(this.host.querySelectorAll('post-language-switch')).forEach(languageSwitch => {
359
+ Array.from(this.host.querySelectorAll('post-language-menu')).forEach(languageSwitch => {
343
360
  languageSwitch?.setAttribute('variant', variant);
344
361
  });
345
362
  }
346
- onFocusChange() {
347
- const fixedElements = this.device === 'desktop' ? '.logo, .navigation' : '.global-header, .burger-menu';
348
- const isHeaderExpanded = this.host.matches(':focus-within') &&
349
- !this.host.shadowRoot.querySelector(`:where(${fixedElements}):focus-within`);
363
+ onFocusChange(e) {
364
+ const alwaysVisibleElements = this.device === 'desktop'
365
+ ? '.navigation' // logo isn’t included since it would be too small to focus on effectively.
366
+ : '.global-header, .burger-menu';
367
+ const isHeaderExpanded =
368
+ // ensure the expanded state stays accurate during focus changes,
369
+ // e.g., when the focused element is removed from the DOM
370
+ // during a window resize
371
+ e.target === document.activeElement &&
372
+ this.host.matches(':focus-within') &&
373
+ !this.host.shadowRoot.querySelector(`:where(${alwaysVisibleElements}):focus-within`);
350
374
  if (isHeaderExpanded) {
351
375
  this.host.setAttribute('data-expanded', '');
352
376
  }
@@ -355,42 +379,54 @@ const PostHeader = class {
355
379
  }
356
380
  }
357
381
  renderNavigation() {
382
+ const localNav = !this.hasTitle && (h("div", { class: "local-nav" }, h("slot", { name: "local-nav" })));
358
383
  if (this.device === 'desktop') {
359
- return (h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, h("slot", { name: "post-mainnavigation" }), h("div", { class: "navigation-controls" }, h("slot", { name: "navigation-controls" }))));
384
+ return (h("div", { class: { 'navigation': true, 'megadropdown-open': this.megadropdownOpen } }, h("slot", { name: "main-nav" }), localNav));
360
385
  }
361
386
  return (h("div", { class: {
362
387
  'burger-menu': true,
363
388
  'extended': this.burgerMenuExtended,
364
- 'no-navigation-controls': !this.hasNavigationControls,
365
- }, style: { '--post-header-navigation-current-inset': `${this.burgerMenu?.scrollTop ?? 0}px` }, ref: el => (this.burgerMenu = el) }, h("div", { class: "navigation-controls" }, h("slot", { name: "navigation-controls" })), h("div", { class: "burger-menu-body" }, h("slot", { name: "target-group" }), h("slot", { name: "post-mainnavigation" })), h("div", { class: "burger-menu-footer" }, h("slot", { name: "meta-navigation" }), h("slot", { name: "post-language-switch" }))));
389
+ 'no-local-nav': !this.hasLocalNav,
390
+ 'megadropdown-open': this.megadropdownOpen,
391
+ }, style: { '--post-header-navigation-current-inset': `${this.burgerMenu?.scrollTop ?? 0}px` }, ref: el => (this.burgerMenu = el) }, localNav, h("div", { class: "burger-menu-body" }, h("slot", { name: "audience" }), h("slot", { name: "main-nav" })), h("div", { class: "burger-menu-footer" }, h("slot", { name: "global-nav-secondary" }), h("slot", { name: "language-menu" }))));
366
392
  }
367
393
  render() {
368
- return (h(Host, { key: 'c9b1c1a946800f728a7a90a91dff3abf23b5100f', "data-version": version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu }, h("div", { key: '21d2b9bd39946df7e42d3d5c763d40cd1dabee69', class: {
394
+ return (h(Host, { key: '3f5431ebd9b726f8a73ee4a0b8b406d11bab5cf2', "data-version": version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, h("header", { key: 'ea55944e7f5f0750e3cb229a94b2aef7738c397a' }, h("div", { key: 'f70653f47812b951519cc001a42d4827f327cffd', class: {
369
395
  'global-header': true,
370
- 'no-target-group': !this.hasTargetGroup,
371
- } }, h("div", { key: '50cf30a8febea656eb3349e6c06dc5b609b13a6d', class: "logo" }, h("slot", { key: 'df1ecaca7b39316ef4d4bb56e33c3214b2648e68', name: "post-logo" })), h("div", { key: '9c4319dce10d9e98291a6cbdb0effb854a8b6dac', class: "sliding-controls" }, this.device === 'desktop' && (h("div", { key: 'ce916d4bdb65c641e58725f70b7689704847593c', class: "target-group" }, h("slot", { key: '810e4164ae17b8571011799307f3688cf64b5c30', name: "target-group" }))), h("slot", { key: 'abe6f2e08e87295e88e4cf33db0e72021d622aaf', name: "global-controls" }), !this.hasBurgerMenu && [
372
- h("slot", { key: '4ef5603837d0f26c25dd50bf17bb0011dc927de0', name: "meta-navigation" }),
373
- h("slot", { key: 'b1bc83f1bd5004af89e444a9bdf487225ac882d7', name: "post-language-switch" }),
374
- ], h("slot", { key: '11dfd54337cf457bc25ec680c8d4e11a6712dc63', name: "global-login" }), this.hasNavigation && this.device !== 'desktop' && (h("div", { key: '67658d80ce90f4446ea8d1078937101a299536b8', onClick: () => this.toggleBurgerMenu(), class: "burger-menu-toggle" }, h("slot", { key: '2fdba487922c63db152ec08e3382640c9cdf1c12', name: "post-togglebutton" }))))), h("div", { key: '1516e38c9628d8cfb75d6f9bd55912071da5e94e', class: {
396
+ 'no-audience': !this.hasAudience,
397
+ } }, h("div", { key: '60d43f32a71169d6d4314b9cc4d8a9e11ec7834e', class: "section" }, h("div", { key: 'ce0f3a9fff1225456f823189093fe960d3f49033', class: "logo" }, h("slot", { key: 'd96003c9bafbe7914b84a9f7b80ab8ed4bd71ddb', name: "post-logo" })), h("div", { key: 'c85e70b4a9adbdd4d95c4ff8a53248b9b707ff2b', class: "sliding-controls" }, this.device === 'desktop' && (h("div", { key: 'd297bba4782a50df1942d96a4eea6c9aeb76965d', class: "audience" }, h("slot", { key: '8a923e9a27d811c204d212843b611885b1a2b257', name: "audience" }))), h("slot", { key: '44a6294e62add92191e5ee8f6b0606a2e367a3d5', name: "global-nav-primary" }), !this.hasBurgerMenu && [
398
+ h("slot", { key: '843b9a656a289b51aea5db4634323999286ccb64', name: "global-nav-secondary" }),
399
+ h("slot", { key: '55268cf25f98a76c377ad48c2578f2f8b3a5b025', name: "language-menu" }),
400
+ ], h("slot", { key: '7885e754087572e48a0a62cccbbae3ea70a56bd3', name: "post-login" }), this.hasNavigation && this.device !== 'desktop' && (h("div", { key: '7713dede3877c4bd97cae59d78ea0a38daa15a8e', onClick: () => this.toggleBurgerMenu(), class: "burger-menu-toggle" }, h("slot", { key: '611df14f6646ae994ad090a482c20f09c3e1a39a', name: "post-togglebutton" }))), this.hasNavigation && this.device !== 'desktop' && (h("post-togglebutton", { key: 'e932a70cfd057cec4670867581e380d313cc23d1', ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, h("span", { key: 'c418e4ca4698ebefc5c7410cf6037620db0314f9' }, this.textMenu), h("post-icon", { key: '438bfc7ee2f0d853fa92385c8e0f159608d76313', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), h("post-icon", { key: 'd6b48e5078b8e96d3fc8fef27a50544b3ed58355', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" })))))), h("div", { key: '0909b5778d908f48521abd7635bfd6eb320fc16a', ref: el => (this.localHeader = el), class: {
375
401
  'local-header': true,
376
402
  'no-title': !this.hasTitle,
377
- 'no-target-group': !this.hasTargetGroup,
403
+ 'no-audience': !this.hasAudience,
378
404
  'no-navigation': this.device !== 'desktop' || !this.hasNavigation,
379
- 'no-navigation-controls': !this.hasNavigationControls,
380
- } }, h("slot", { key: '839b34249ece8af5cc53231271e739a6a664a977', name: "title" }), this.hasTitle && h("slot", { key: 'aa281968b58ecad425beb1b4ffbd1273cc167ea4', name: "local-controls" }), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
405
+ 'no-local-nav': !this.hasLocalNav,
406
+ } }, h("div", { key: 'b5d0280efefc560a89f3a1cbeeeaec1b90a82359', class: "section" }, h("slot", { key: 'b0f25a30d6970cde7b1b9e3c1de1ffb667e4cb97', name: "title" }), this.hasTitle && h("slot", { key: '9140fb3550e1f71824add9f90b43cf622223a4a1', name: "local-nav" }), this.device === 'desktop' && this.renderNavigation())), this.device !== 'desktop' && this.renderNavigation())));
381
407
  }
382
408
  get host() { return getElement(this); }
383
409
  static get watchers() { return {
384
- "device": ["lockBody"],
385
- "burgerMenuExtended": ["lockBody"]
410
+ "fullWidth": [{
411
+ "validateFullWidth": 0
412
+ }],
413
+ "textMenu": [{
414
+ "validateTextMenu": 0
415
+ }],
416
+ "device": [{
417
+ "lockBody": 0
418
+ }],
419
+ "burgerMenuExtended": [{
420
+ "lockBody": 0
421
+ }]
386
422
  }; }
387
423
  };
388
424
  __decorate$3([
389
425
  EventFrom('post-megadropdown')
390
- ], PostHeader.prototype, "megadropdownStateHandler", void 0);
391
- PostHeader.style = postHeaderCss;
426
+ ], PostHeader.prototype, "megadropdownStateHandler", null);
427
+ PostHeader.style = postHeaderCss();
392
428
 
393
- const postIconCss = ":host{display:inline-block;width:1em;height:1em;vertical-align:-0.15em}span{display:block;width:100%;height:100%;fill:currentColor;forced-color-adjust:preserve-parent-color;background-color:currentColor;-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}:host([flip-h]:not([flip-h=false])){scale:-1 1}:host([flip-v]:not([flip-v=false])){scale:1 -1}:host([flip-h][flip-v]:not([flip-h=false],[flip-v=false])){scale:-1}:host([animation]){transform-origin:center}:host([animation=cylon]){animation:icon-animation-cylon .75s ease-in-out infinite alternate}:host([animation=cylon-vertical]){animation:icon-animation-cylon-vertical .75s ease-in-out infinite alternate}:host([animation=spin]){animation:icon-animation-spin 2s linear infinite normal}:host([animation=spin-reverse]){animation:icon-animation-spin 2s linear infinite reverse}:host([animation=fade]){animation:icon-animation-fade .75s ease-in-out infinite alternate}:host([animation=throb]){animation:icon-animation-throb .75s ease-in-out infinite alternate}@keyframes icon-animation-cylon{from{transform:translateX(-25%)}to{transform:translateX(25%)}}@keyframes icon-animation-cylon-vertical{from{transform:translateY(25%)}to{transform:translateY(-25%)}}@keyframes icon-animation-fade{from{opacity:.1}to{opacity:1}}@keyframes icon-animation-spin{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes icon-animation-throb{from{opacity:.5;transform:scale(0.5)}to{opacity:1;transform:scale(1)}}";
429
+ const postIconCss = () => `:host{display:inline-block;width:1em;height:1em;vertical-align:-0.15em}span{display:block;width:100%;height:100%;fill:currentColor;forced-color-adjust:preserve-parent-color;background-color:currentColor;-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}:host([flip-h]:not([flip-h=false])){scale:-1 1}:host([flip-v]:not([flip-v=false])){scale:1 -1}:host([flip-h][flip-v]:not([flip-h=false],[flip-v=false])){scale:-1}:host([animation]){transform-origin:center}:host([animation=cylon]){animation:icon-animation-cylon .75s ease-in-out infinite alternate}:host([animation=cylon-vertical]){animation:icon-animation-cylon-vertical .75s ease-in-out infinite alternate}:host([animation=spin]){animation:icon-animation-spin 2s linear infinite normal}:host([animation=spin-reverse]){animation:icon-animation-spin 2s linear infinite reverse}:host([animation=fade]){animation:icon-animation-fade .75s ease-in-out infinite alternate}:host([animation=throb]){animation:icon-animation-throb .75s ease-in-out infinite alternate}@keyframes icon-animation-cylon{from{transform:translateX(-25%)}to{transform:translateX(25%)}}@keyframes icon-animation-cylon-vertical{from{transform:translateY(25%)}to{transform:translateY(-25%)}}@keyframes icon-animation-fade{from{opacity:.1}to{opacity:1}}@keyframes icon-animation-spin{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes icon-animation-throb{from{opacity:.5;transform:scale(0.5)}to{opacity:1;transform:scale(1)}}`;
394
430
 
395
431
  const CDN_URL = `https://unpkg.com/@swisspost/design-system-icons@${version}/public/post-icons/`;
396
432
  const ANIMATION_NAMES = [
@@ -452,9 +488,11 @@ const PostIcon = class {
452
488
  const baseHref = IS_BROWSER
453
489
  ? document.querySelector('base[href]')?.getAttribute('href') || ''
454
490
  : '';
455
- const metaIconBase = IS_BROWSER
456
- ? document.querySelector('meta[name="design-system-settings"]')?.getAttribute('data-post-icon-base') || ''
457
- : '';
491
+ let metaIconBase = '';
492
+ if (IS_BROWSER) {
493
+ const metaTag = document.querySelector('meta[name="design-system-settings"]');
494
+ metaIconBase = metaTag?.getAttribute('data-post-icon-base') || '';
495
+ }
458
496
  // Function to build the first part of the URL when 'this.base' or 'metaIconBase' are relative
459
497
  const buildUrlWithBase = (relativeUrl) => {
460
498
  const normalizedHref = normalizeUrl(baseHref);
@@ -501,85 +539,32 @@ const PostIcon = class {
501
539
  this.validateAnimation();
502
540
  }
503
541
  render() {
504
- return (h(Host, { key: '7ce1f627f621201c0f4d6e90ee3d8d6d3c32798a', "data-version": version }, h("span", { key: '987ecd266b8bd68bdbb06cdb500a746b913e79b1', style: this.getStyles() })));
542
+ return (h(Host, { key: 'fe1b4d0541c75c1ed0adb92111d106ed874a9b2f', "data-version": version }, h("span", { key: 'ca2b749e407d9ec54eb881c6662b59626e16083d', style: this.getStyles() })));
505
543
  }
506
544
  get host() { return getElement(this); }
507
545
  static get watchers() { return {
508
- "animation": ["validateAnimation"],
509
- "base": ["validateBase"],
510
- "name": ["validateName"],
511
- "rotate": ["validateRotate"],
512
- "scale": ["validateScale"]
546
+ "animation": [{
547
+ "validateAnimation": 0
548
+ }],
549
+ "base": [{
550
+ "validateBase": 0
551
+ }],
552
+ "name": [{
553
+ "validateName": 0
554
+ }],
555
+ "rotate": [{
556
+ "validateRotate": 0
557
+ }],
558
+ "scale": [{
559
+ "validateScale": 0
560
+ }]
513
561
  }; }
514
562
  };
515
- PostIcon.style = postIconCss;
563
+ PostIcon.style = postIconCss();
516
564
 
517
565
  const SWITCH_VARIANTS = ['list', 'menu'];
518
566
 
519
- const postLanguageOptionCss = "post-language-option{display:inline-block}post-language-option button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-option button{background-color:ButtonFace !important}post-language-option button:hover{background-color:Highlight !important}}post-language-option button .visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}post-language-option a{color:var(--post-current-fg);text-decoration:none}post-language-option :is(a,button){cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-transform:uppercase}post-language-option :is(a,button){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}post-language-option :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-option :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-language-option :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-option :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-language-option:where([variant=list]) :is(a,button){padding-inline:0;width:40px;height:40px;border-radius:2px}post-language-option:where([variant=list]) :is(a,button):hover{color:#504f4b}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-option:where([variant=list]) :is(a,button){border:1px solid ButtonBorder;color:ButtonText}}post-language-option:where([variant=list])[active]:not([active=false]) :is(a,button){background-color:#050400 !important;color:#fff;pointer-events:none}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-option:where([variant=list])[active]:not([active=false]) :is(a,button){background-color:Highlight !important;color:HighlightText}}post-language-option:where([variant=menu]){min-width:72px}post-language-option:where([variant=menu])[active]:not([active=false]){display:none}post-language-option:where([variant=menu]) :is(a,button){padding-block:13px;padding-inline:16px;box-sizing:border-box;justify-content:flex-start;position:relative;border-radius:0}post-language-option:where([variant=menu]) :is(a,button):hover{color:#fff;background-color:#504f4b}post-language-option:where([variant=menu]):first-child :is(a,button){border-start-start-radius:4px;border-start-end-radius:4px}post-language-option:where([variant=menu]):last-child :is(a,button){border-end-start-radius:4px;border-end-end-radius:4px}";
520
-
521
- const PostLanguageOption = class {
522
- constructor(hostRef) {
523
- registerInstance(this, hostRef);
524
- this.postChange = createEvent(this, "postChange");
525
- this.postLanguageOptionInitiallyActive = createEvent(this, "postLanguageOptionInitiallyActive");
526
- }
527
- validateCode() {
528
- checkRequiredAndType(this, 'code', 'string');
529
- }
530
- validateVariant() {
531
- checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
532
- }
533
- validateName() {
534
- checkEmptyOrType(this, 'name', 'string');
535
- }
536
- validateUrl() {
537
- checkEmptyOrUrl(this, 'url');
538
- }
539
- componentDidLoad() {
540
- this.validateCode();
541
- this.validateName();
542
- this.validateUrl();
543
- if (!this.name && this.isNameRequired()) {
544
- throw new Error('The "name" property of the post-language-option component is required when the full language name is not displayed.');
545
- }
546
- if (this.active) {
547
- this.postLanguageOptionInitiallyActive.emit(this.code);
548
- }
549
- }
550
- /**
551
- * Selects the language option programmatically.
552
- */
553
- async select() {
554
- this.active = true;
555
- this.emitChange();
556
- }
557
- emitChange() {
558
- this.postChange.emit(this.code);
559
- }
560
- isNameRequired() {
561
- return this.host.textContent.toLowerCase() === this.code.toLowerCase();
562
- }
563
- render() {
564
- const lang = this.code.toLowerCase();
565
- const emitOnKeyDown = (e) => {
566
- if (e.key === 'Enter' || e.key === ' ') {
567
- this.emitChange();
568
- }
569
- };
570
- return (h(Host, { key: '06ba54de702d5014b34f1b0cb6396cb947ac3ca6', "data-version": version, role: this.variant === 'list' ? 'listitem' : undefined }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name))) : (h("button", { "aria-current": this.active ? 'true' : undefined, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name)))));
571
- }
572
- get host() { return getElement(this); }
573
- static get watchers() { return {
574
- "code": ["validateCode"],
575
- "variant": ["validateVariant"],
576
- "name": ["validateName"],
577
- "url": ["validateUrl"]
578
- }; }
579
- };
580
- PostLanguageOption.style = postLanguageOptionCss;
581
-
582
- const postLanguageSwitchCss = ":host{display:flex !important;flex-wrap:wrap;gap:.5rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.post-language-switch-dropdown-container{display:flex;flex-direction:column}.post-language-switch-trigger{cursor:pointer;text-transform:uppercase;padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-decoration:none;display:inline-flex;align-items:center;gap:6px;border-radius:24px;font-size:16px;padding:3px 10px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger{background-color:ButtonFace !important}.post-language-switch-trigger:hover{background-color:Highlight !important}}.post-language-switch-trigger{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.post-language-switch-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.post-language-switch-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.post-language-switch-trigger:not(:disabled):hover,.post-language-switch-trigger.pretend-hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.post-language-switch-trigger post-icon{height:24px;width:24px}.post-language-switch-trigger[aria-expanded=true]{background-color:#050400;color:#fff}.post-language-switch-trigger[aria-expanded=true] post-icon{transform:rotate(180deg)}.post-language-switch-trigger[aria-expanded=true]:hover{background-color:#504f4b;color:#fff}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger{border:1px solid ButtonBorder}.post-language-switch-trigger[aria-expanded=true] post-icon,.post-language-switch-trigger:hover post-icon{color:HighlightText}}post-menu::part(menu){padding-block:0}.post-language-switch-list{margin-top:1rem}";
567
+ const postLanguageMenuCss = () => `:host{display:flex !important}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.post-language-menu-dropdown-container{display:flex;flex-direction:column}.post-language-menu-trigger{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:.25rem .625rem;gap:.375rem;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);text-transform:uppercase;cursor:pointer}.post-language-menu-trigger:hover{text-decoration:none}.post-language-menu-trigger:disabled{border-style:var(--post-core-border-style-dash)}.post-language-menu-trigger{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.post-language-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.post-language-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-menu-trigger:is(a){color:LinkText;border:unset}.post-language-menu-trigger:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}.post-language-menu-trigger:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}.post-language-menu-trigger:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}.post-language-menu-trigger:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg);color:var(--post-scheme-color-interactive-button-primary-enabled-fg)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}.post-language-menu-trigger post-icon{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}.post-language-menu-trigger:is([aria-current],[aria-pressed=true],[aria-expanded=true]) post-icon{transform:rotate(180deg)}post-menu::part(post-menu){padding-block:0}.post-language-menu-list{margin-top:1rem}`;
583
568
 
584
569
  var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
585
570
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -591,7 +576,7 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
591
576
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
592
577
  return c > 3 && r && Object.defineProperty(target, key, r), r;
593
578
  };
594
- const PostLanguageSwitch = class {
579
+ const PostLanguageMenu = class {
595
580
  constructor(hostRef) {
596
581
  registerInstance(this, hostRef);
597
582
  this.menuId = `p${nanoid(11)}`;
@@ -602,32 +587,40 @@ const PostLanguageSwitch = class {
602
587
  this.variant = 'list';
603
588
  }
604
589
  get languageOptions() {
605
- return Array.from(this.host.querySelectorAll('post-language-option'));
590
+ return Array.from(this.host.querySelectorAll('post-language-menu-item'));
606
591
  }
607
- validateCaption() {
608
- checkRequiredAndType(this, 'caption', 'string');
592
+ validateTextChangeLanguage() {
593
+ checkRequiredAndType(this, 'textChangeLanguage', 'string');
609
594
  }
610
- validateDescription() {
611
- checkRequiredAndType(this, 'description', 'string');
595
+ validateTextCurrentLanguage() {
596
+ checkRequiredAndPattern(this, 'textCurrentLanguage', /#name\b/);
612
597
  }
613
598
  validateVariant() {
614
599
  checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
615
600
  this.updateChildrenVariant();
616
601
  }
602
+ /* The complete accessible description */
603
+ get description() {
604
+ const activeLanguage = this.activeLang &&
605
+ document.querySelector(`post-language-menu-item[code="${this.activeLang}"]`);
606
+ return activeLanguage
607
+ ? this.textCurrentLanguage.replace(/#name/g, activeLanguage.name)
608
+ : undefined;
609
+ }
617
610
  componentDidLoad() {
618
- this.validateCaption();
619
- this.validateDescription();
611
+ this.validateTextChangeLanguage();
612
+ this.validateTextCurrentLanguage();
620
613
  this.validateVariant();
621
614
  // Initially set variants and active language
622
- // Handles cases where the language-switch is rendered after the language-options have been rendered
615
+ // Handles cases where the language-menu is rendered after the language-options have been rendered
623
616
  this.updateChildrenVariant();
624
617
  }
625
618
  /**
626
- * Listen for the postChange event and guard it to run only for events originating from a <post-language-option> element.
619
+ * Listen for the postChange event and guard it to run only for events originating from a <post-language-menu-item> element.
627
620
  */
628
621
  handlePostChange(event) {
629
622
  this.activeLang = event.detail;
630
- // Update the active state in the children post-language-option components
623
+ // Update the active state in the children post-language-menu-item components
631
624
  this.languageOptions.forEach(lang => {
632
625
  if (lang.code && lang.code === this.activeLang) {
633
626
  lang.setAttribute('active', '');
@@ -643,91 +636,117 @@ const PostLanguageSwitch = class {
643
636
  }
644
637
  }
645
638
  /**
646
- * Handles cases where the language switch is being rendered before options are available
647
- * @param event Initially emitted by <post-langauge-option>
639
+ * Handles cases where the language menu is being rendered before options are available
640
+ * @param event Initially emitted by <post-language-menu-item>
648
641
  */
649
642
  handleInitiallyActive(event) {
650
643
  this.activeLang = event.detail;
651
644
  }
652
- // Update post-language-option variant to have the correct style
645
+ // Update post-language-menu-item variant to have the correct style
653
646
  updateChildrenVariant() {
654
647
  this.languageOptions.forEach(el => {
655
648
  el.setAttribute('variant', this.variant);
656
649
  });
657
650
  }
658
651
  renderList() {
659
- return (h(Host, { "data-version": version }, h("div", { class: "post-language-switch-list", role: "list", "aria-label": this.caption, "aria-describedby": this.listSpanId }, h("span", { id: this.listSpanId, class: "visually-hidden" }, this.description), h("slot", null))));
652
+ return (h(Host, { "data-version": version }, h("div", { class: "post-language-menu-list", role: "list", "aria-label": this.textChangeLanguage, "aria-describedby": this.listSpanId }, h("span", { id: this.listSpanId, class: "visually-hidden" }, this.description), h("slot", null))));
660
653
  }
661
654
  renderDropdown() {
662
- return (h(Host, { "data-version": version }, h("post-menu-trigger", { for: this.menuId }, h("button", { class: "post-language-switch-trigger" }, this.activeLang, h("span", { class: "visually-hidden" }, this.caption), h("span", { class: "visually-hidden" }, this.description), h("post-icon", { "aria-hidden": "true", name: "chevrondown" }))), h("post-menu", { id: this.menuId, class: "post-language-switch-dropdown-container", label: this.caption }, h("slot", null))));
655
+ return (h(Host, { "data-version": version }, h("post-menu-trigger", { for: this.menuId }, h("button", { class: "post-language-menu-trigger" }, this.activeLang, h("span", { class: "visually-hidden" }, this.textChangeLanguage), h("span", { class: "visually-hidden" }, this.description), h("post-icon", { "aria-hidden": "true", name: "chevrondown" }))), h("post-menu", { id: this.menuId, class: "post-language-menu-dropdown-container", label: this.textChangeLanguage, placement: "bottom-end" }, h("slot", null))));
663
656
  }
664
657
  render() {
665
658
  return this.variant === 'list' ? this.renderList() : this.renderDropdown();
666
659
  }
667
660
  get host() { return getElement(this); }
668
661
  static get watchers() { return {
669
- "caption": ["validateCaption"],
670
- "description": ["validateDescription"],
671
- "variant": ["validateVariant"]
662
+ "textChangeLanguage": [{
663
+ "validateTextChangeLanguage": 0
664
+ }],
665
+ "textCurrentLanguage": [{
666
+ "validateTextCurrentLanguage": 0
667
+ }],
668
+ "variant": [{
669
+ "validateVariant": 0
670
+ }]
672
671
  }; }
673
672
  };
674
673
  __decorate$2([
675
- EventFrom('post-language-option')
676
- ], PostLanguageSwitch.prototype, "handlePostChange", null);
677
- PostLanguageSwitch.style = postLanguageSwitchCss;
674
+ EventFrom('post-language-menu-item')
675
+ ], PostLanguageMenu.prototype, "handlePostChange", null);
676
+ PostLanguageMenu.style = postLanguageMenuCss();
678
677
 
679
- const postListCss = "post-list{display:flex;flex-direction:column;gap:var(--post-list-title-gap, 0)}post-list>[role=list]{display:flex;flex-direction:column;gap:var(--post-list-item-gap, 0)}post-list:where([horizontal]:not([horizontal=false])){flex-direction:row;align-items:center}post-list:where([horizontal]:not([horizontal=false]))>[role=list]{flex-direction:row;align-items:center}post-list>.list-title.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}";
678
+ const postLanguageMenuItemCss = () => `post-language-menu-item{display:inline-block}post-language-menu-item button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item button{background-color:ButtonFace !important}post-language-menu-item button:hover{background-color:Highlight !important}}post-language-menu-item button .visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}post-language-menu-item a{color:var(--post-current-fg);text-decoration:none}post-language-menu-item :is(a,button){cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-transform:uppercase}post-language-menu-item :is(a,button){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}post-language-menu-item :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-language-menu-item :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;border-radius:4px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-language-menu-item:where([variant=list]) :is(a,button){padding-inline:0;width:40px;height:40px;border-radius:2px}post-language-menu-item:where([variant=list]) :is(a,button):hover{color:#504f4b}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item:where([variant=list]) :is(a,button){border:1px solid ButtonBorder;color:ButtonText}}post-language-menu-item:where([variant=list])[active]:not([active=false]) :is(a,button){background-color:#050400 !important;color:#fff;pointer-events:none}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-menu-item:where([variant=list])[active]:not([active=false]) :is(a,button){background-color:Highlight !important;color:HighlightText}}post-language-menu-item:where([variant=menu]){min-width:72px}post-language-menu-item:where([variant=menu])[active]:not([active=false]){display:none}post-language-menu-item:where([variant=menu]) :is(a,button){padding-block:13px;padding-inline:16px;box-sizing:border-box;justify-content:flex-start;position:relative;border-radius:0}post-language-menu-item:where([variant=menu]) :is(a,button):hover{color:#fff;background-color:#504f4b}post-language-menu-item:where([variant=menu]):first-child :is(a,button){border-start-start-radius:4px;border-start-end-radius:4px}post-language-menu-item:where([variant=menu]):last-child :is(a,button){border-end-start-radius:4px;border-end-end-radius:4px}`;
680
679
 
681
- const PostList = class {
680
+ const PostLanguageMenuItem = class {
682
681
  constructor(hostRef) {
683
682
  registerInstance(this, hostRef);
684
- /**
685
- * If `true`, the list title will be hidden. Otherwise, it will be displayed.`
686
- */
687
- this.titleHidden = false;
688
- /**
689
- * The list can become horizontal by setting `horizontal="true"` or just `horizontal`
690
- */
691
- this.horizontal = false;
683
+ this.postChange = createEvent(this, "postChange");
684
+ this.postLanguageMenuItemInitiallyActive = createEvent(this, "postLanguageMenuItemInitiallyActive");
692
685
  }
693
- componentWillLoad() {
694
- /**
695
- * Get the id set on the host element or use a random id by default
696
- */
697
- this.titleId = `title-${this.host.id || nanoid(6)}`;
686
+ validateCode() {
687
+ checkRequiredAndType(this, 'code', 'string');
698
688
  }
699
- componentDidLoad() {
700
- this.checkTitle();
689
+ validateVariant() {
690
+ checkEmptyOrOneOf(this, 'variant', SWITCH_VARIANTS);
691
+ }
692
+ validateName() {
693
+ checkEmptyOrType(this, 'name', 'string');
701
694
  }
702
- checkTitle() {
703
- if (!this.titleEl.textContent.trim()) {
704
- console.error('Please provide a title to the list component. Title is mandatory for accessibility purposes.');
695
+ validateUrl() {
696
+ checkEmptyOrUrl(this, 'url');
697
+ }
698
+ componentDidLoad() {
699
+ this.validateCode();
700
+ this.validateName();
701
+ this.validateUrl();
702
+ if (!this.name && this.isNameRequired()) {
703
+ throw new Error('The "name" property of the post-language-menu-item component is required when the full language name is not displayed.');
704
+ }
705
+ if (this.active) {
706
+ this.postLanguageMenuItemInitiallyActive.emit(this.code);
705
707
  }
706
708
  }
707
- render() {
708
- return (h(Host, { key: '85193bec2b2ff22ed76c93a4037f353b091192bc', "data-version": version }, h("div", { key: '32cdc5ccb95b48e3f81e90ac93f0207d935c9d3b', ref: el => (this.titleEl = el), id: this.titleId, class: `list-title${this.titleHidden ? ' visually-hidden' : ''}` }, h("slot", { key: '890dd411e370a7829354dcaa00fae75e8f538f01' })), h("div", { key: '72867a1d81f2e186ed3d68f5185a46c7c96fdd3b', role: "list", "aria-labelledby": this.titleId }, h("slot", { key: '2cd5a5e9ca717c675f9db3a19fbf13ff49a7312c', name: "post-list-item" }))));
709
+ /**
710
+ * Selects the language option programmatically.
711
+ */
712
+ async select() {
713
+ this.active = true;
714
+ this.emitChange();
709
715
  }
710
- get host() { return getElement(this); }
711
- };
712
- PostList.style = postListCss;
713
-
714
- const postListItemCss = ":host{display:flex}";
715
-
716
- const PostListItem = class {
717
- constructor(hostRef) {
718
- registerInstance(this, hostRef);
716
+ emitChange() {
717
+ this.postChange.emit(this.code);
719
718
  }
720
- connectedCallback() {
721
- this.host.setAttribute('slot', 'post-list-item');
719
+ isNameRequired() {
720
+ return this.host.textContent.toLowerCase() === this.code.toLowerCase();
722
721
  }
723
722
  render() {
724
- return (h(Host, { key: '98f83a8ef6ff73461bfc7b67d8113543e94d66cb', role: "listitem", slot: "post-list-item", version: version }, h("slot", { key: '1ee5c021183b30ba7b560a58042a196aa9c1127e' })));
723
+ const lang = this.code.toLowerCase();
724
+ const emitOnKeyDown = (e) => {
725
+ if (e.key === 'Enter' || e.key === ' ') {
726
+ this.emitChange();
727
+ }
728
+ };
729
+ return (h(Host, { key: 'f95d1aba997cbb1b7b4805428443a35e9db4c8e6', "data-version": version, role: this.variant === 'list' ? 'listitem' : undefined }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name))) : (h("button", { "aria-current": this.active ? 'true' : undefined, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null), h("span", { class: "visually-hidden" }, this.name)))));
725
730
  }
726
731
  get host() { return getElement(this); }
732
+ static get watchers() { return {
733
+ "code": [{
734
+ "validateCode": 0
735
+ }],
736
+ "variant": [{
737
+ "validateVariant": 0
738
+ }],
739
+ "name": [{
740
+ "validateName": 0
741
+ }],
742
+ "url": [{
743
+ "validateUrl": 0
744
+ }]
745
+ }; }
727
746
  };
728
- PostListItem.style = postListItemCss;
747
+ PostLanguageMenuItem.style = postLanguageMenuItemCss();
729
748
 
730
- const postLogoCss = ":host,.logo{display:inline-block}:host,:host .logo>svg,.logo,.logo .logo>svg{height:100%}.description{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.logo-link{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.logo-link:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.logo-link:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.logo-link:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.logo-link:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.logo-link :focus,:focus-visible{border-radius:2px}";
749
+ const postLogoCss = () => `:host,.logo{display:inline-block}:host,:host .logo>svg,.logo,.logo .logo>svg{height:100%}.description{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.logo-link{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.logo-link:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.logo-link:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.logo-link:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.logo-link:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.logo-link{outline-offset:calc( -2px - var(--post-device-border-width-focus) ) !important}.logo-link :focus,:focus-visible{border-radius:.5rem}`;
731
750
 
732
751
  const PostLogo = class {
733
752
  constructor(hostRef) {
@@ -748,34 +767,38 @@ const PostLogo = class {
748
767
  render() {
749
768
  const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
750
769
  const LogoTag = logoLink ? 'a' : 'span';
751
- return (h(Host, { key: 'e236c1154e8fbf7b9832f1e5f0be25336d4f0388', "data-version": version }, h(LogoTag, { key: '545da59433be40065075b5cd8f9e8791f8b4ffa8', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: 'b0c493e8d000d33000a3988e3a336f9b6e2a4101', class: "description" }, h("slot", { key: 'b4efe8c1755ae5579fa6663ef69c605abdb385c4', onSlotchange: () => this.checkDescription() })), h("svg", { key: '7619acaca48988233913e2aa487262b96504be03', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: '5c15491d631cdfc0a2afbd245c536ab6de07f212', id: "Logo" }, h("rect", { key: '02f3652d1f1eb1406c5c71d159d0812a3b4cf460', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: 'f956a38b75c3302ab00a2d3af4615038a48b7692', 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: 'b4d00a33b8948d99d8edea5aec25baf50dfdc171', 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" }))))));
770
+ return (h(Host, { key: 'c433a75f67606eeb5bcc52825f3f9a3c30bbaa4b', "data-version": version }, h(LogoTag, { key: 'ab323bbad61548226f75a77df4f95315a9f6a31d', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: 'af7f93ac30e9ee7f2d2b02451f6a00764bc29c28', class: "description" }, h("slot", { key: 'd7ab10f5a8076d40ac310398390f38bcbc9790f3', onSlotchange: () => this.checkDescription() })), h("svg", { key: '02f954f34f91f7666a480dbbdeacb6e0e5bfc993', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: '04dd994e423ba9675c1b83b51e66c32898cd9b47', id: "Logo" }, h("rect", { key: 'e2c61f0848276c5c93f08e88be2b6470559b0957', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: '149967b476d723c3a3ee0e80474b600a31c2857f', 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: '9deb7a46d7fd69c38ae499f12741593955df716d', d: "M53.56234,31.10526c0,2.41272-1.99154,4.29475-4.51723,4.29475H45.2v-8.3h3.84511C51.66802,27.1,53.56234,28.78889,53.56234,31.10526z M50.69666,19H36v34h9.2V42.9h5.49666c6.75131,0,11.9971-5.15137,11.9971-11.8057C62.69376,24.39136,57.35099,19,50.69666,19z" }))))));
752
771
  }
753
772
  get host() { return getElement(this); }
754
773
  static get watchers() { return {
755
- "url": ["validateUrl"]
774
+ "url": [{
775
+ "validateUrl": 0
776
+ }]
756
777
  }; }
757
778
  };
758
- PostLogo.style = postLogoCss;
779
+ PostLogo.style = postLogoCss();
759
780
 
760
- const postMainnavigationCss = ":root{--post-icon-chevrondown:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbmRvd24iPjxzeW1ib2wgaWQ9InMxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJNMi4wMSA1LjIyYzAtLjE5LjA3LS4zOC4yMi0uNTMuMjktLjI5Ljc3LS4yOSAxLjA2IDBsNC43MiA0LjcyIDQuNzItNC43MmMuMjktLjI5Ljc3LS4yOSAxLjA2IDBzLjI5Ljc3IDAgMS4wNmwtNS43OCA1Ljc4LTUuNzgtNS43OGEuNzQuNzQgMCAwIDEtLjIyLS41MyIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InMyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMy4yNiA3Ljg1YzAtLjIyLjA4LS40NS4yNi0uNjIuMzQtLjM0LjktLjM0IDEuMjQgMGw3LjI2IDcuMjYgNy4yNi03LjI2Yy4zNC0uMzQuOS0uMzQgMS4yNCAwcy4zNC45IDAgMS4yNGwtOC41IDguNS04LjUxLTguNWEuOS45IDAgMCAxLS4yNi0uNjJaIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiPjxwYXRoIGQ9Ik00LjUgMTAuNTRjMC0uMjYuMS0uNTEuMjktLjcxYS45OTYuOTk2IDAgMCAxIDEuNDEgMGw5Ljc5IDkuNzkgOS44LTkuOGEuOTk2Ljk5NiAwIDEgMSAxLjQxIDEuNDFMMTUuOTkgMjIuNDQgNC44IDExLjI1Yy0uMi0uMi0uMjktLjQ1LS4yOS0uNzFaIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczQwIiB2aWV3Qm94PSIwIDAgNDAgNDAiPjxwYXRoIGQ9Ik01LjggMTMuMTdhMS4xMjMgMS4xMjMgMCAwIDEgMS45Mi0uOEwyMC4wNSAyNC43bDEyLjM0LTEyLjM0Yy40NC0uNDQgMS4xNS0uNDQgMS41OSAwcy40NCAxLjE1IDAgMS41OUwyMC4wNSAyNy44OCA2LjEzIDEzLjk3Yy0uMjItLjIyLS4zMy0uNTEtLjMzLS44Ii8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczQ4IiB2aWV3Qm94PSIwIDAgNDggNDgiPjxwYXRoIGQ9Ik03IDE1Ljg3YzAtLjMyLjEyLS42NC4zNy0uODhhMS4yNSAxLjI1IDAgMCAxIDEuNzcgMGwxNC44NyAxNC44NyAxNC44OC0xNC44OGMuNDktLjQ5IDEuMjgtLjQ5IDEuNzcgMHMuNDkgMS4yOCAwIDEuNzdMMjQuMDIgMzMuMzkgNy4zNyAxNi43NWMtLjI0LS4yNC0uMzctLjU2LS4zNy0uODgiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZD0iTTkuNjMgMjEuMjRhMS4zOCAxLjM4IDAgMCAxIDIuMzUtLjk3TDMyLjAxIDQwLjNsMjAuMDQtMjAuMDRjLjU0LS41NCAxLjQxLS41NCAxLjk1IDBzLjU0IDEuNDEgMCAxLjk1TDMyLjAxIDQ0LjE5IDEwLjAzIDIyLjIyYy0uMjctLjI3LS40LS42Mi0uNC0uOTdaTTAgLjAzaDY0djY0SDB6Ii8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25kb3duIi8+PC9nPjwvc3ZnPg==\")}post-mainnavigation post-list-item>a{text-decoration:none;border-radius:0}post-mainnavigation post-list-item post-megadropdown-trigger button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-align:start}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation post-list-item post-megadropdown-trigger button{background-color:ButtonFace !important}post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:Highlight !important}}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item post-megadropdown-trigger button{flex:0 0 fit-content;white-space:nowrap;display:flex;align-items:center;justify-content:space-between}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}post-mainnavigation post-list-item>a:focus-visible,post-mainnavigation post-list-item post-megadropdown-trigger button:focus-visible{border-radius:4px;z-index:2}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{content:\"\";mask-image:var(--post-icon-chevrondown);background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;height:24px;width:24px}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation>button,post-mainnavigation post-megadropdown-trigger button{border:1px solid ButtonBorder !important}post-mainnavigation>button:hover::after,post-mainnavigation>button[aria-expanded=true]::after,post-mainnavigation post-megadropdown-trigger button:hover::after,post-mainnavigation post-megadropdown-trigger button[aria-expanded=true]::after{color:HighlightText}}post-header:not([data-burger-menu])>post-mainnavigation{display:flex;height:var(--post-main-navigation-height, 0);background:#fff;user-select:none}post-header:not([data-burger-menu])>post-mainnavigation nav{flex:1 1 auto;scroll-behavior:smooth}post-header:not([data-burger-menu])>post-mainnavigation.scrollable,post-header:not([data-burger-menu])>post-mainnavigation.scrollable nav{overflow:hidden}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control{z-index:2;cursor:pointer;padding:1rem;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.scroll-left{margin-inline-end:-3rem}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.scroll-right{margin-inline-start:-3rem}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control.d-none{display:none}post-header:not([data-burger-menu])>post-mainnavigation .scroll-control post-icon{font-size:1rem}post-header:not([data-burger-menu])>post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{position:sticky;padding-inline:12px;height:var(--post-main-navigation-height, 0);gap:4px;font-size:16px}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{position:absolute;opacity:1;text-align:center;width:100%;inset-inline-start:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *),post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *) .nav-el-active,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button.active .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page]:not(post-megadropdown *) .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a:hover,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button:hover,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}@media screen and (max-width: 599.98px){post-header:not([data-burger-menu])>post-mainnavigation post-list-item>a,post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:12px;transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button .nav-el-inactive,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button::after,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-header:not([data-burger-menu])>post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-header:not([data-burger-menu])>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)),post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))::before,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)).active,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))[aria-current=page],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *))[aria-expanded=true],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a.active,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a[aria-current=page],post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)):hover,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown button:not(:is(post-closebutton *)):hover::before,post-header:not([data-burger-menu])>post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}post-header[data-burger-menu]>post-mainnavigation nav{transform:none !important}post-header[data-burger-menu]>post-mainnavigation .scroll-control{display:none}post-header[data-burger-menu]>post-mainnavigation post-list-item>a,post-header[data-burger-menu]>post-mainnavigation post-list-item>button,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-header[data-burger-menu]>post-mainnavigation post-list-item>a::before,post-header[data-burger-menu]>post-mainnavigation post-list-item>button::before,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-header[data-burger-menu]>post-mainnavigation post-list-item>a.active,post-header[data-burger-menu]>post-mainnavigation post-list-item>a[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item>a[aria-expanded=true],post-header[data-burger-menu]>post-mainnavigation post-list-item>button.active,post-header[data-burger-menu]>post-mainnavigation post-list-item>button[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item>button[aria-expanded=true],post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button.active,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-current=page],post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-header[data-burger-menu]>post-mainnavigation post-list-item>a:hover,post-header[data-burger-menu]>post-mainnavigation post-list-item>button:hover,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-header[data-burger-menu]>post-mainnavigation post-list-item>a:hover::before,post-header[data-burger-menu]>post-mainnavigation post-list-item>button:hover::before,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-header[data-burger-menu]>post-mainnavigation post-list-item>a .nav-el-inactive,post-header[data-burger-menu]>post-mainnavigation post-list-item>button .nav-el-inactive,post-header[data-burger-menu]>post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-header[data-burger-menu]>post-mainnavigation>button::after,post-header[data-burger-menu]>post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}";
781
+ const postMainnavigationCss = () => `:host{display:flex;user-select:none;max-width:var(--post-header-content-max-width)}@media screen and (min-width: 1024px){:host{overflow:hidden}}nav{flex:1 1 auto}@media screen and (min-width: 1024px){nav{scroll-behavior:smooth;max-width:100vw;overflow:hidden;height:var(--post-main-navigation-height)}}.scroll-control{z-index:1;cursor:pointer;padding:1rem;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}.scroll-control.scroll-left{margin-inline-end:-3rem}.scroll-control.scroll-right{margin-inline-start:-3rem}.scroll-control.d-none{display:none}.scroll-control post-icon{font-size:1rem}`;
761
782
 
762
783
  const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
763
784
  const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
764
785
  const PostMainnavigation = class {
786
+ validateTextMain() {
787
+ checkRequiredAndType(this, 'textMain', 'string');
788
+ }
765
789
  constructor(hostRef) {
766
790
  registerInstance(this, hostRef);
767
791
  this.canScrollLeft = false;
768
792
  this.canScrollRight = false;
769
793
  this.scrollRight = this.scrollRight.bind(this);
770
794
  this.scrollLeft = this.scrollLeft.bind(this);
771
- this.handleMutations = this.handleMutations.bind(this);
772
795
  this.checkScrollability = this.checkScrollability.bind(this);
773
796
  this.resizeObserver = new ResizeObserver(this.checkScrollability);
774
- this.mutationObserver = new MutationObserver(this.handleMutations);
797
+ this.mutationObserver = new MutationObserver(this.checkScrollability);
775
798
  }
776
799
  componentDidLoad() {
800
+ this.validateTextMain();
777
801
  setTimeout(() => {
778
- this.fixLayoutShift();
779
802
  this.checkScrollability();
780
803
  });
781
804
  // Observe the navbar for size changes
@@ -800,30 +823,8 @@ const PostMainnavigation = class {
800
823
  if (this.scrollRepeatInterval)
801
824
  clearInterval(this.scrollRepeatInterval);
802
825
  }
803
- async handleMutations(mutations) {
804
- const addedNodes = mutations.flatMap((mutation) => {
805
- return Array.from(mutation.addedNodes);
806
- });
807
- // Wait for all elements to be hydrated
808
- await Promise.all(addedNodes.map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
809
- this.fixLayoutShift();
810
- this.checkScrollability();
811
- }
812
826
  get navigationItems() {
813
- return Array.from(this.navbar.querySelectorAll(':is(a, button):not(post-megadropdown *)'));
814
- }
815
- /**
816
- * Hack to fix the layout shift due to bold text on active elements
817
- */
818
- fixLayoutShift() {
819
- this.navigationItems
820
- .filter(item => !item.matches(':has(.nav-el-active)'))
821
- .forEach(item => {
822
- item.innerHTML = `
823
- <span class="nav-el-active">${item.innerHTML}</span>
824
- <span class="nav-el-inactive" aria-hidden="true">${item.innerHTML}</span>
825
- `;
826
- });
827
+ return Array.from(this.host.querySelectorAll('a:not(post-megadropdown *), post-megadropdown-trigger'));
827
828
  }
828
829
  /**
829
830
  * Returns whether scrolling is enabled in either the left or right direction.
@@ -862,7 +863,7 @@ const PostMainnavigation = class {
862
863
  }, SCROLL_REPEAT_INTERVAL);
863
864
  }
864
865
  scrollRight() {
865
- const scrollRightLeftEdge = document
866
+ const scrollRightLeftEdge = this.host.shadowRoot
866
867
  .querySelector('.scroll-right')
867
868
  .getBoundingClientRect().left;
868
869
  for (const navigationItem of this.navigationItems) {
@@ -876,7 +877,7 @@ const PostMainnavigation = class {
876
877
  }
877
878
  }
878
879
  scrollLeft() {
879
- const scrollLeftRightEdge = document
880
+ const scrollLeftRightEdge = this.host.shadowRoot
880
881
  .querySelector('.scroll-left')
881
882
  .getBoundingClientRect().right;
882
883
  for (const navigationItem of this.navigationItems.reverse()) {
@@ -902,17 +903,40 @@ const PostMainnavigation = class {
902
903
  }, NAVBAR_DISABLE_DURATION);
903
904
  }
904
905
  render() {
905
- return (h(Host, { key: 'e3d265f18bb6e2e5f215ad2a6ceb2df8bf97be2c', version: version, class: this.canScroll ? 'scrollable' : '' }, h("div", { key: '116f078bcba3ca3ebb09c4a3c2fe616b84522661', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, h("post-icon", { key: '5ba3151d7c9f75eb4d8e3eac7a38cf2f6ae53852', "aria-hidden": "true", name: "chevronleft" })), h("nav", { key: '205d09fc7ab8dccd46cd6aa5cdbd23ba8be0cf0f', ref: el => (this.navbar = el) }, h("slot", { key: '7951f73623b9873b9e3ca76dcda2a34922fbe0e7' })), h("div", { key: '56821d40e1f7e771aaa302c640df4003bd3523bc', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, h("post-icon", { key: '5ee8ea319aada9a12c3983d12f57014db4281d1d', "aria-hidden": "true", name: "chevronright" }))));
906
+ return (h(Host, { key: 'b6bfb6256a2a129a16737b9d97da629842c6b2d5', version: version, class: this.canScroll ? 'scrollable' : '' }, h("div", { key: '3c250f1a09bf9d1c88d4469bb820be4d2ae3dc0a', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, h("post-icon", { key: '8bfdcafdb2594ef323a9cf2408f2c45158fd1632', "aria-hidden": "true", name: "chevronleft" })), h("nav", { key: 'c1d1043ec8448346414a1bbc5cd95b3fe0d0e790', ref: el => (this.navbar = el), "aria-label": this.textMain }, h("slot", { key: 'cc078e4c7d8e24c77027f94598af09be5b80498c' })), h("div", { key: '1fe3c4fae7a9b2cb8bee6677ae528b2cd11d9fa9', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, h("post-icon", { key: '6636d014fd1862d9cbb2116da5cd303f83c7c0f3', "aria-hidden": "true", name: "chevronright" }))));
906
907
  }
908
+ get host() { return getElement(this); }
909
+ static get watchers() { return {
910
+ "textMain": [{
911
+ "validateTextMain": 0
912
+ }]
913
+ }; }
907
914
  };
908
- PostMainnavigation.style = postMainnavigationCss;
915
+ PostMainnavigation.style = postMainnavigationCss();
909
916
 
910
- const postMegadropdownCss = "@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{box-shadow:0 8px 6px rgba(0,0,0,.16);position:absolute;background-color:#fafafa;border:none;width:100%;inset-block-start:100%;inset-inline-start:0;border-radius:0}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.megadropdown-container{border-block-end:1px solid CanvasText}}.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{z-index:1;position:absolute;inset-block-start:var(--post-header-navigation-current-inset);inset-inline:0;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));border-block-start:unset;overflow-y:auto;overscroll-behavior:contain}.megadropdown-container.slide-in{animation:slide-in 350ms forwards}.megadropdown-container.slide-out{animation:slide-out 350ms forwards}}@media screen and (min-width: 1024px){.megadropdown-container{z-index:-1;max-height:calc(100vh - var(--post-header-height) - 48px);overflow-y:auto}}.megadropdown{padding:31px 40px 40px;background-color:#fafafa}@media screen and (max-width: 1023.98px){.megadropdown{display:flex;flex-direction:column;width:inherit;padding:16px 32px 24px}}@media screen and (max-width: 599.98px){.megadropdown{padding-inline:16px}}.megadropdown [slot=megadropdown-overview-link]{text-decoration:none;border-radius:0;padding-block:13px 12px;margin-block-end:16px;display:flex;align-items:center;min-height:56px;width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative;height:unset}.megadropdown [slot=megadropdown-overview-link]:focus-visible{border-radius:4px}.megadropdown [slot=megadropdown-overview-link]::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}.megadropdown [slot=megadropdown-overview-link].active,.megadropdown [slot=megadropdown-overview-link][aria-current=page],.megadropdown [slot=megadropdown-overview-link][aria-expanded=true]{background-color:#050400;color:#fff}.megadropdown [slot=megadropdown-overview-link]:hover{background-color:#504f4b;color:#fff}.megadropdown [slot=megadropdown-overview-link]:hover::before{background-color:#504f4b}@media screen and (max-width: 1023.98px){.megadropdown [slot=megadropdown-overview-link]{padding-block:12px 11px;min-height:unset}}@media screen and (max-width: 599.98px){.megadropdown [slot=megadropdown-overview-link]{padding-block:10px 9px}}.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-block:0 8px;font-weight:900}.megadropdown h2 a{text-decoration:none;display:none;font-weight:inherit;border-block: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)),.megadropdown post-list .list-title h3 a{padding:16px 12px 14px 8px}.megadropdown post-list .list-title h3:not(:has(a)){position:relative}.megadropdown post-list .list-title h3:not(:has(a))::before{content:\"\";background-color:#050400;inset-block-end:0;inset-inline-start:0;width:100%;height:2px;position:absolute}.megadropdown post-list .list-title h3 a{border-radius:4px;text-decoration:none;font-size:inherit;display:flex;align-items:center;justify-content:space-between;min-height:53px;width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative;height:unset;font-weight:900}.megadropdown post-list .list-title h3 a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}.megadropdown post-list .list-title h3 a.active,.megadropdown post-list .list-title h3 a[aria-current=page],.megadropdown post-list .list-title h3 a[aria-expanded=true]{background-color:#050400;color:#fff}.megadropdown post-list .list-title h3 a:hover{background-color:#504f4b;color:#fff}.megadropdown post-list .list-title h3 a:hover::before{background-color:#504f4b}.megadropdown post-list .list-title h3 a::before{height:2px}@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)),.megadropdown post-list .list-title h3 a{padding:14px 12px 12px 8px}}@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;white-space:normal;word-break:break-word}.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-block-end:2rem}.megadropdown .back-button .btn{width:auto}@media screen and (max-width: 1023.98px){.megadropdown .back-button{order:-1;display:block}}.megadropdown .close-button{position:absolute;inset-block-start:1rem;inset-inline-end:1rem}@media screen and (max-width: 1023.98px){.megadropdown .close-button{display:none}}";
917
+ const postMegadropdownCss = () => `*,::before,::after{box-sizing:border-box}.megadropdown{position:absolute;inset-inline:0;overflow-y:auto;background-color:#fafafa;box-shadow:var(--post-device-elevation-300)}@media screen and (min-width: 1024px){.megadropdown{z-index:-1;inset-block-start:100%}.megadropdown.slide-in{animation:slide-down 350ms forwards}.megadropdown.slide-out{animation:slide-up 350ms forwards}}@media screen and (max-width: 1023.98px){.megadropdown{z-index:1;inset-block-start:var(--post-header-navigation-current-inset);overscroll-behavior:contain}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.megadropdown{border-block-end:1px solid CanvasText}}.section{width:100%;max-width:var(--post-header-content-max-width);margin-inline:auto;position:relative}@media screen and (min-width: 1024px){.section{max-height:calc(100vh - var(--post-header-height) - 3rem);padding:2rem 2.5rem 2.5rem}}@media screen and (max-width: 1023.98px){.section{display:flex;flex-direction:column;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));padding-inline:var(--post-burger-menu-padding-inline);padding-block:1.5rem}}.megadropdown-title{margin-block:0 1rem;font-weight:950}@media screen and (min-width: 600px)and (max-width: 1023.98px){.megadropdown-title{font-size:1.25rem}}@media screen and (min-width: 0)and (max-width: 599.98px){.megadropdown-title{font-size:1.125rem}}.back-button{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;min-height:var(--post-device-sizing-interactive-button-height-4);gap:var(--post-device-spacing-gap-inline-11);padding:0 var(--post-device-spacing-padding-inline-7);border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg);order:-1;width:fit-content;padding-inline:0}.back-button:hover{text-decoration:none}.back-button:disabled{border-style:var(--post-core-border-style-dash)}.back-button{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.back-button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.back-button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.back-button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.back-button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.back-button:is(a){color:LinkText;border:unset}.back-button:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}.back-button:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}.back-button:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}.back-button>post-icon{width:var(--post-device-sizing-interactive-button-icon-5);height:var(--post-device-sizing-interactive-button-icon-5)}.back-button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media screen and (min-width: 600px)and (max-width: 1023.98px){.back-button{margin-block-end:2rem}}@media screen and (min-width: 0)and (max-width: 599.98px){.back-button{margin-block-end:1.5rem}}.close-button{position:absolute;inset-block-start:1rem;inset-inline-end:1rem}@media screen and (max-width: 1023.98px){.close-button{display:none}}`;
911
918
 
912
919
  const PostMegadropdown = class {
920
+ validateTextClose() {
921
+ checkRequiredAndType(this, 'textClose', 'string');
922
+ }
923
+ validateTextBack() {
924
+ checkRequiredAndType(this, 'textBack', 'string');
925
+ }
926
+ get megadropdownTrigger() {
927
+ const hostId = this.host.getAttribute('id');
928
+ return hostId ? document.querySelector(`post-megadropdown-trigger[for="${hostId}"]`) : null;
929
+ }
913
930
  constructor(hostRef) {
914
931
  registerInstance(this, hostRef);
915
932
  this.postToggleMegadropdown = createEvent(this, "postToggleMegadropdown");
933
+ this.currentAnimation = null;
934
+ this.isAnimating = false;
935
+ this.fsAnimationOptions = {
936
+ translate: -10,
937
+ duration: 350,
938
+ easing: 'headerEase',
939
+ };
916
940
  this.device = breakpoint.get('device');
917
941
  /**
918
942
  * Holds the current visibility state of the dropdown.
@@ -923,13 +947,17 @@ const PostMegadropdown = class {
923
947
  this.trigger = false;
924
948
  /** Holds the current animation class. */
925
949
  this.animationClass = null;
926
- this.handleClickOutside = (event) => {
950
+ this.handleClickOutside = async (event) => {
927
951
  if (this.device !== 'desktop')
928
952
  return;
929
953
  const target = event.target;
930
954
  if (this.host.contains(target)) {
931
955
  return;
932
956
  }
957
+ // Ignore clicks on the trigger or its contents to prevent running hide() twice
958
+ if (this.megadropdownTrigger.contains(target)) {
959
+ return;
960
+ }
933
961
  if (target instanceof HTMLElement) {
934
962
  const trigger = target.closest('post-megadropdown-trigger');
935
963
  if (trigger) {
@@ -939,14 +967,11 @@ const PostMegadropdown = class {
939
967
  }
940
968
  }
941
969
  }
942
- this.hide(false);
970
+ await this.hide(false);
943
971
  };
944
- }
945
- get megadropdownTrigger() {
946
- const hostId = this.host.getAttribute('id');
947
- return hostId
948
- ? document.querySelector(`post-megadropdown-trigger[for="${hostId}"] > button`)
949
- : null;
972
+ this.keyboardHandler = this.keyboardHandler.bind(this);
973
+ this.handleTabOutside = this.handleTabOutside.bind(this);
974
+ this.handleClickOutside = this.handleClickOutside.bind(this);
950
975
  }
951
976
  connectedCallback() {
952
977
  window.addEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
@@ -955,16 +980,17 @@ const PostMegadropdown = class {
955
980
  this.getFocusableElements();
956
981
  }
957
982
  componentDidLoad() {
983
+ this.validateTextClose();
984
+ this.validateTextBack();
958
985
  this.checkInitialAriaCurrent();
959
986
  this.setupObserver();
960
987
  this.handleAriaCurrentChange([]);
961
988
  }
962
989
  disconnectedCallback() {
963
- this.removeListeners();
964
990
  window.removeEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
965
- if (PostMegadropdown.activeDropdown === this) {
991
+ if (PostMegadropdown.activeDropdown === this)
966
992
  PostMegadropdown.activeDropdown = null;
967
- }
993
+ this.removeListeners();
968
994
  if (this.defaultSlotObserver) {
969
995
  this.defaultSlotObserver.disconnect();
970
996
  }
@@ -973,41 +999,70 @@ const PostMegadropdown = class {
973
999
  * Toggles the dropdown visibility based on its current state.
974
1000
  */
975
1001
  async toggle() {
976
- if (this.isVisible) {
977
- this.hide();
978
- }
979
- else {
980
- await this.show();
1002
+ if (this.isAnimating) {
1003
+ // If this is already animating towards a future state -> reverse intent
1004
+ return this.isVisible ? this.show() : this.hide();
981
1005
  }
1006
+ return this.isVisible ? this.hide() : this.show();
982
1007
  }
983
1008
  /**
984
1009
  * Displays the dropdown.
985
1010
  */
986
1011
  async show() {
1012
+ if (this.device !== 'desktop') {
1013
+ const trigger = this.megadropdownTrigger;
1014
+ if (trigger)
1015
+ this.megadropdownTitle = trigger.innerHTML;
1016
+ }
987
1017
  if (PostMegadropdown.activeDropdown && PostMegadropdown.activeDropdown !== this) {
988
1018
  // Close the previously active dropdown without animation
989
1019
  PostMegadropdown.activeDropdown.forceClose();
990
1020
  }
991
- this.animationClass = 'slide-in';
1021
+ this.cancelAnimation();
1022
+ // Set the megadropdown visible and mark it as the active dropdown
992
1023
  this.isVisible = true;
993
1024
  PostMegadropdown.activeDropdown = this;
994
- this.postToggleMegadropdown.emit({ isVisible: this.isVisible });
995
- if (this.firstFocusableEl &&
996
- window.getComputedStyle(this.firstFocusableEl).display !== 'none') {
997
- this.firstFocusableEl.focus();
1025
+ // Update trigger state
1026
+ this.postToggleMegadropdown.emit({ isVisible: true });
1027
+ try {
1028
+ await this.animate('in');
1029
+ this.focusFirst();
1030
+ // After the megadropdown has finished entry animation
1031
+ this.addListeners();
1032
+ }
1033
+ catch {
1034
+ // Open animation was cancelled - reset state
1035
+ this.removeListeners();
1036
+ this.isVisible = false;
1037
+ if (PostMegadropdown.activeDropdown === this)
1038
+ PostMegadropdown.activeDropdown = null;
1039
+ this.postToggleMegadropdown.emit({ isVisible: false, focusParent: true });
998
1040
  }
999
- this.addListeners();
1000
1041
  }
1001
1042
  /**
1002
1043
  * Hides the dropdown with an animation.
1003
1044
  */
1004
1045
  async hide(focusParent = true, forceClose = false) {
1005
- this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
1006
1046
  if (forceClose) {
1007
1047
  this.forceClose();
1048
+ return;
1008
1049
  }
1009
- else {
1010
- this.animationClass = 'slide-out';
1050
+ // Update trigger state
1051
+ this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
1052
+ try {
1053
+ await this.animate('out');
1054
+ // After the closing animation finishes set the megadropdown as non visible
1055
+ this.isVisible = false;
1056
+ this.removeListeners();
1057
+ if (PostMegadropdown.activeDropdown === this)
1058
+ PostMegadropdown.activeDropdown = null;
1059
+ }
1060
+ catch {
1061
+ // Closing animation was cancelled - reset state
1062
+ PostMegadropdown.activeDropdown = this;
1063
+ this.addListeners();
1064
+ this.isVisible = true;
1065
+ this.postToggleMegadropdown.emit({ isVisible: true, focusParent: false });
1011
1066
  }
1012
1067
  }
1013
1068
  /**
@@ -1016,63 +1071,74 @@ const PostMegadropdown = class {
1016
1071
  async focusFirst() {
1017
1072
  this.firstFocusableEl?.focus();
1018
1073
  }
1019
- breakpointChange(e) {
1020
- this.device = e.detail;
1021
- if (this.device === 'desktop' && this.isVisible) {
1022
- this.animationClass = null;
1023
- }
1024
- }
1025
1074
  /**
1026
1075
  * Forces the dropdown to close without animation.
1027
1076
  */
1028
1077
  forceClose() {
1029
- this.isVisible = false;
1030
- this.animationClass = null;
1031
- this.postToggleMegadropdown.emit({ isVisible: this.isVisible, focusParent: false });
1032
1078
  this.removeListeners();
1079
+ this.postToggleMegadropdown.emit({ isVisible: false, focusParent: false });
1080
+ this.isVisible = false;
1033
1081
  }
1034
- handleAnimationEnd() {
1035
- if (this.animationClass === 'slide-out') {
1036
- this.isVisible = false;
1037
- this.animationClass = null;
1038
- PostMegadropdown.activeDropdown = null;
1039
- this.removeListeners();
1082
+ // Run the respective animation
1083
+ createAnimation(direction) {
1084
+ if (this.device === 'desktop') {
1085
+ return fadeSlide(this.animatedContainer, direction, this.fsAnimationOptions);
1040
1086
  }
1087
+ return slide(this.animatedContainer, direction, {
1088
+ translate: 100,
1089
+ duration: 350,
1090
+ easing: direction === 'in' ? 'ease-in' : 'ease-out',
1091
+ });
1092
+ }
1093
+ async animate(direction) {
1094
+ this.cancelAnimation();
1095
+ this.currentAnimation = this.createAnimation(direction);
1096
+ // Flag isAnimating used to avoid toggle() de-sync
1097
+ this.isAnimating = true;
1098
+ await this.currentAnimation.finished;
1099
+ this.isAnimating = false;
1100
+ this.currentAnimation = null;
1101
+ }
1102
+ cancelAnimation() {
1103
+ this.currentAnimation?.cancel();
1104
+ this.currentAnimation = null;
1105
+ }
1106
+ breakpointChange(e) {
1107
+ this.device = e.detail;
1108
+ this.cancelAnimation();
1041
1109
  }
1042
1110
  addListeners() {
1043
- this.host.addEventListener('keydown', e => this.keyboardHandler(e));
1044
- document.addEventListener('keyup', e => this.handleTabOutside(e));
1111
+ this.host.addEventListener('keydown', this.keyboardHandler);
1112
+ document.addEventListener('keyup', this.handleTabOutside);
1045
1113
  document.addEventListener('mousedown', this.handleClickOutside);
1046
1114
  }
1047
1115
  removeListeners() {
1048
- this.host.removeEventListener('keydown', e => this.keyboardHandler(e));
1049
- document.removeEventListener('keyup', e => this.handleTabOutside(e));
1116
+ this.host.removeEventListener('keydown', this.keyboardHandler);
1117
+ document.removeEventListener('keyup', this.handleTabOutside);
1050
1118
  document.removeEventListener('mousedown', this.handleClickOutside);
1051
1119
  }
1052
1120
  getFocusableElements() {
1053
- const focusableEls = Array.from(this.host.querySelectorAll('post-list-item, h3, .back-button'));
1054
- const focusableChildren = focusableEls.flatMap(el => Array.from(getFocusableChildren(el)));
1055
- // Check for an overview link
1056
- const overviewLink = this.host.querySelector('a[slot="megadropdown-overview-link"]');
1057
- if (overviewLink) {
1058
- focusableChildren.unshift(overviewLink);
1059
- }
1060
- this.firstFocusableEl = focusableChildren[0];
1061
- this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
1121
+ const focusableElements = [
1122
+ ...getFocusableChildren(this.host),
1123
+ ...getFocusableChildren(this.host.shadowRoot),
1124
+ ];
1125
+ this.firstFocusableEl = focusableElements[0];
1126
+ this.lastFocusableEl = focusableElements[focusableElements.length - 1];
1062
1127
  }
1063
1128
  // Loop through the focusable children
1064
1129
  keyboardHandler(e) {
1065
- if (e.key === 'Tab' && this.device !== 'desktop') {
1066
- if (e.shiftKey && document.activeElement === this.firstFocusableEl) {
1067
- // If back tab (TAB + Shift) and first element is focused, focus goes to the last element of the megadropdown
1068
- e.preventDefault();
1069
- this.lastFocusableEl.focus();
1070
- }
1071
- else if (!e.shiftKey && document.activeElement === this.lastFocusableEl) {
1072
- // If TAB and last element is focused, focus goes back to the first element of the megadropdown
1073
- e.preventDefault();
1074
- this.firstFocusableEl.focus();
1075
- }
1130
+ if (e.key !== 'Tab' || this.device === 'desktop')
1131
+ return;
1132
+ const activeElement = this.host.shadowRoot.activeElement || document.activeElement;
1133
+ if (e.shiftKey && activeElement === this.firstFocusableEl) {
1134
+ // If back tab (TAB + Shift) and first element is focused, focus goes to the last element of the megadropdown
1135
+ e.preventDefault();
1136
+ this.lastFocusableEl.focus();
1137
+ }
1138
+ else if (!e.shiftKey && activeElement === this.lastFocusableEl) {
1139
+ // If TAB and last element is focused, focus goes back to the first element of the megadropdown
1140
+ e.preventDefault();
1141
+ this.firstFocusableEl.focus();
1076
1142
  }
1077
1143
  }
1078
1144
  handleTabOutside(e) {
@@ -1103,14 +1169,8 @@ const PostMegadropdown = class {
1103
1169
  */
1104
1170
  setTriggerActive(isActive) {
1105
1171
  const trigger = this.megadropdownTrigger;
1106
- if (!trigger)
1107
- return;
1108
- if (isActive) {
1109
- trigger.classList.add('active');
1110
- }
1111
- else {
1112
- trigger.classList.remove('active');
1113
- }
1172
+ if (trigger)
1173
+ trigger.setAttribute('active', isActive.toString());
1114
1174
  }
1115
1175
  /**
1116
1176
  * Updates the megadropdown trigger state when the megadropdown content changes.
@@ -1134,15 +1194,23 @@ const PostMegadropdown = class {
1134
1194
  }
1135
1195
  render() {
1136
1196
  const containerStyle = this.isVisible ? {} : { display: 'none' };
1137
- return (h(Host, { key: 'd189f35bb1b66459d6f50bd3326495fe79429be2', version: version }, h("div", { key: 'a9d7d8e25af433b18548a40be4e724c1a3a57374', class: `megadropdown-container ${this.animationClass || ''}`, style: containerStyle, onAnimationEnd: () => this.handleAnimationEnd() }, h("div", { key: 'a9886e9c1797eb11c6988e2b17bb73097ca9fb24', class: "megadropdown" }, h("slot", { key: 'e93c659a3ba85dbecebfaa2b2ed435d05cfc4ecc', name: "megadropdown-title" }), h("slot", { key: 'c6d4952fd218d2c31399b31ebea905a19892461d', name: "megadropdown-overview-link" }), h("div", { key: '82a157f8c6225ccec231d660d55b49abf456ba60', class: "megadropdown-content" }, h("slot", { key: '0c2ad616e2e999bb30cc9e9593fcfa4e4b8d71f0' })), h("div", { key: 'b501280cb3c05bb0210e5fe2380d5c338416df90', onClick: () => this.hide(true), class: "back-button" }, h("slot", { key: '2b60695fac34563724f09b1e6c51b4b386606f17', name: "back-button" })), h("div", { key: '1554073e2476baf7416937f54203e2e404805360', onClick: () => this.hide(true), class: "close-button" }, h("slot", { key: '29e8f43ddadfa66c405c6ad0ffbf43237fae97ec', name: "close-button" }))))));
1197
+ return (h(Host, { key: '02194ee3593dd471e2fc3aadb1d69041d613ce0a', version: version }, h("div", { key: '77ab3faeb3705ac0d97ab0d72cc3fbf12c19badc', ref: el => (this.animatedContainer = el), class: "megadropdown", style: containerStyle }, h("div", { key: '5d8b3ef651c3eb19f08e3ccd6c9356e01463a2e0', class: "section" }, this.device !== 'desktop' && this.megadropdownTitle && (h("p", { key: 'e99a5751ea896f3ab55dc9bf58635f7b2fef2a1c', class: "megadropdown-title" }, this.megadropdownTitle)), h("div", { key: 'a0a1bfa04de139d48c825df8fdb24f93e031ea66', class: "megadropdown-content" }, h("slot", { key: '68e44ce30fec1efed2855490b5d9af56ba41e004' })), this.device === 'desktop' ? (h("post-closebutton", { onClick: () => this.hide(true), class: "close-button" }, this.textClose)) : (h("button", { onClick: () => this.hide(true), class: "back-button" }, h("post-icon", { name: "arrowleft" }), this.textBack))))));
1138
1198
  }
1139
1199
  get host() { return getElement(this); }
1200
+ static get watchers() { return {
1201
+ "textClose": [{
1202
+ "validateTextClose": 0
1203
+ }],
1204
+ "textBack": [{
1205
+ "validateTextBack": 0
1206
+ }]
1207
+ }; }
1140
1208
  };
1141
1209
  /** Tracks the currently active dropdown instance. */
1142
1210
  PostMegadropdown.activeDropdown = null;
1143
- PostMegadropdown.style = postMegadropdownCss;
1211
+ PostMegadropdown.style = postMegadropdownCss();
1144
1212
 
1145
- const postMegadropdownTriggerCss = "post-megadropdown-trigger{width:100%;position:relative}";
1213
+ const postMegadropdownTriggerCss = () => `button{display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;border:unset;font-weight:unset;display:flex;padding:.25rem .625rem;gap:.375rem;font-size:1rem;border-color:var(--post-scheme-color-interactive-button-tertiary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-enabled-bg);color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}button:hover{text-decoration:none}button:disabled{border-style:var(--post-core-border-style-dash)}button{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){button:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){button:is(a){color:LinkText;border:unset}button:is(button){background-color:ButtonFace !important;border:1px solid ButtonBorder !important}button:not(:disabled,.disabled):is(button):hover{background-color:Highlight !important}button:not(:disabled,.disabled):is(button):hover>post-icon{color:HighlightText !important}}button:hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:var(--post-device-elevation-100);border-color:var(--post-scheme-color-interactive-button-primary-enabled-stroke);background-color:var(--post-scheme-color-interactive-button-primary-enabled-bg);color:var(--post-scheme-color-interactive-button-primary-enabled-fg)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active):hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}button{--post-nav-item-border-width:1px;width:100%;justify-content:start;position:relative;padding:.75rem .75rem calc(.75rem - var(--post-nav-item-border-width)) .5rem;gap:1rem;border-radius:0;line-height:1.5;outline-color:currentColor !important;height:100%}button::before{content:"";background-color:#050400;position:absolute;inset-inline:0;inset-block-end:0;height:var(--post-nav-item-border-width)}button:hover{border-color:var(--post-scheme-color-interactive-button-primary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-primary-hover-bg);color:var(--post-scheme-color-interactive-button-primary-hover-fg)}button:hover::before{background-color:rgba(0,0,0,0)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){box-shadow:none}button{outline-offset:calc( -2px - var(--post-device-border-width-focus) ) !important}button>post-icon:where(:last-child){margin-inline-start:auto}@media screen and (min-width: 0)and (max-width: 599.98px){button{padding:calc(.5rem + 1.5px) .75rem calc(.5rem + 1.5px - var(--post-nav-item-border-width)) .5rem;gap:.5rem;font-size:.875rem}button>post-icon{font-size:1rem}}@media screen and (min-width: 600px)and (max-width: 1023.98px){button>post-icon{font-size:1.5rem}}@media screen and (min-width: 1024px){button{padding:1rem .75rem;gap:.5rem}button::before{content:unset}}:host{position:relative;display:inline-block}button post-icon{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}button:is([aria-current],[aria-pressed=true],[aria-expanded=true]) post-icon{transform:rotate(180deg)}button>span{position:relative}button>span>span[aria-hidden]{font-weight:700;visibility:hidden}button>span>span:not([aria-hidden]){position:absolute;inset:0}@media screen and (min-width: 1024px){button:is([aria-current],[aria-pressed=true],[aria-expanded=true],.active){font-weight:700}}@media screen and (max-width: 1023.98px){button post-icon{margin-inline-start:auto;transform:rotate(-90deg) !important}}`;
1146
1214
 
1147
1215
  var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1148
1216
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1155,101 +1223,87 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
1155
1223
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1156
1224
  };
1157
1225
  const PostMegadropdownTrigger = class {
1226
+ validateFor() {
1227
+ checkRequiredAndType(this, 'for', 'string');
1228
+ }
1158
1229
  constructor(hostRef) {
1159
1230
  registerInstance(this, hostRef);
1231
+ this.mutationObserver = new MutationObserver(this.cloneSlottedButton.bind(this));
1232
+ this.isMegadropdownExpanded = false;
1233
+ this.slottedContent = null;
1160
1234
  /**
1161
- * Manages the accessibility attribute `aria-expanded` to indicate whether the associated mega dropdown is expanded or collapsed.
1162
- */
1163
- this.ariaExpanded = false;
1164
- /**
1165
- * Reference to the slotted button within the trigger, if present.
1166
- * Used to manage click and key events for mega dropdown control.
1167
- */
1168
- this.slottedButton = null;
1169
- /**
1170
- * Tracks whether this trigger's dropdown was expanded before a state change.
1171
- * Used to determine if this trigger should handle focus when its dropdown closes.
1235
+ * Sets the trigger state to be active or inactive.
1172
1236
  */
1173
- this.wasExpanded = false;
1174
- this.handleKeyDown = (event) => {
1175
- if (event.key === 'Enter' || event.key === ' ') {
1176
- event.preventDefault();
1177
- this.handleToggle();
1178
- if (this.megadropdown && !this.ariaExpanded) {
1179
- setTimeout(() => this.megadropdown.focusFirst(), 100);
1180
- }
1181
- }
1182
- };
1183
- this.handleToggleMegadropdown = (event) => {
1184
- if (event.target.id === this.for) {
1185
- this.ariaExpanded = event.detail.isVisible;
1186
- // Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
1187
- if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
1188
- setTimeout(() => {
1189
- this.slottedButton?.focus();
1190
- }, 100);
1191
- }
1192
- this.wasExpanded = this.ariaExpanded;
1193
- if (this.slottedButton) {
1194
- this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
1195
- }
1196
- }
1197
- };
1237
+ this.active = false;
1238
+ this.onMegadropdownToggled = this.onMegadropdownToggled.bind(this);
1198
1239
  }
1199
- /**
1200
- * Watch for changes to the `for` property to validate its type and ensure it is a string.
1201
- * @param forValue - The new value of the `for` property.
1202
- */
1203
- validateControlFor() {
1204
- checkRequiredAndType(this, 'for', 'string');
1240
+ connectedCallback() {
1241
+ this.mutationObserver.observe(this.host, { childList: true, subtree: true });
1242
+ }
1243
+ componentWillLoad() {
1244
+ this.cloneSlottedButton();
1245
+ }
1246
+ componentDidLoad() {
1247
+ this.validateFor();
1248
+ // Check if the mega dropdown attached to the trigger is expanded or not
1249
+ if (IS_BROWSER)
1250
+ document.addEventListener('postToggleMegadropdown', this.onMegadropdownToggled);
1251
+ }
1252
+ disconnectedCallback() {
1253
+ document.removeEventListener('postToggleMegadropdown', this.onMegadropdownToggled);
1254
+ }
1255
+ cloneSlottedButton() {
1256
+ this.slottedContent = this.host.innerHTML;
1205
1257
  }
1206
1258
  get megadropdown() {
1207
1259
  const ref = document.getElementById(this.for);
1208
- return ref && ref.localName === 'post-megadropdown'
1209
- ? ref
1210
- : null;
1211
- }
1212
- handleToggle() {
1213
- if (this.megadropdown) {
1214
- this.megadropdown.toggle();
1215
- }
1216
- else {
1260
+ if (ref?.localName !== 'post-megadropdown') {
1217
1261
  console.warn(`No post-megadropdown found with ID: ${this.for}`);
1262
+ return null;
1218
1263
  }
1264
+ return ref;
1219
1265
  }
1220
- componentDidLoad() {
1221
- this.validateControlFor();
1222
- // Check if the mega dropdown attached to the trigger is expanded or not
1223
- document.addEventListener('postToggleMegadropdown', this.handleToggleMegadropdown);
1224
- this.slottedButton = this.host.querySelector('button');
1225
- if (this.slottedButton) {
1226
- this.slottedButton.setAttribute('aria-haspopup', 'menu');
1227
- this.slottedButton.addEventListener('click', () => {
1228
- this.handleToggle();
1229
- });
1230
- this.slottedButton.addEventListener('keydown', this.handleKeyDown);
1231
- }
1232
- else {
1233
- console.warn('No button found within post-megadropdown-trigger');
1234
- }
1266
+ onClick() {
1267
+ this.megadropdown?.toggle();
1235
1268
  }
1236
- disconnectedCallback() {
1237
- document.removeEventListener('postToggleMegadropdown', this.handleToggleMegadropdown);
1269
+ onKeyDown(event) {
1270
+ if (event.key !== 'Enter' && event.key !== ' ')
1271
+ return;
1272
+ const megadropdown = this.megadropdown;
1273
+ if (!megadropdown)
1274
+ return;
1275
+ event.preventDefault();
1276
+ this.megadropdown.toggle();
1277
+ }
1278
+ onMegadropdownToggled(event) {
1279
+ if (event.target.id === this.for) {
1280
+ const wasMegadropdownExpanded = this.isMegadropdownExpanded;
1281
+ this.isMegadropdownExpanded = event.detail.isVisible;
1282
+ const haveBeenClosed = wasMegadropdownExpanded && !this.isMegadropdownExpanded;
1283
+ if (!haveBeenClosed || !event.detail.focusParent)
1284
+ return;
1285
+ // Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
1286
+ setTimeout(() => {
1287
+ this.interactiveButton.focus();
1288
+ }, 100);
1289
+ }
1238
1290
  }
1239
1291
  render() {
1240
- return (h(Host, { key: 'b5d3eb64df71ac025f1ca882811b4c6f20ccf8b7', "data-version": version, "tab-index": "-1" }, h("button", { key: '2ba6ec332db1ffbac84dd134b144e33115bac31e' }, h("slot", { key: '39b36a16250897f243b8039342c7ff294f83df4d' }))));
1292
+ return (h(Host, { key: 'e2fccf83b9957d929e8014bcaae51511ddbb3e8f', "data-version": version }, h("button", { key: '1b796d6f5e3be99db7037dce808a42a7ca82cff7', ref: el => (this.interactiveButton = el), type: "button", "aria-haspopup": "menu", "aria-expanded": this.isMegadropdownExpanded.toString(), onClick: this.onClick.bind(this), onKeyDown: this.onKeyDown.bind(this), class: { active: this.active } }, h("span", { key: '4de2cc323cfb9d7288ca950ba20c9072cf4b9a38' }, h("span", { key: '64829988553f7086a8d79e15a3282d2e577bc6ba' }, h("slot", { key: '8e59c15428d9a201ef38419db3f502be82458462' })), h("span", { key: '323e643fc73b41b4dfb6ae813a3132b99e671ae6', "aria-hidden": "true", innerHTML: this.slottedContent })), h("post-icon", { key: '8a48e81632b6e290f6176a006e5adf5cf871ef45', name: "chevrondown" }))));
1241
1293
  }
1242
1294
  get host() { return getElement(this); }
1243
1295
  static get watchers() { return {
1244
- "for": ["validateControlFor"]
1296
+ "for": [{
1297
+ "validateFor": 0
1298
+ }]
1245
1299
  }; }
1246
1300
  };
1247
1301
  __decorate$1([
1248
1302
  EventFrom('post-megadropdown', { ignoreNestedComponents: false })
1249
- ], PostMegadropdownTrigger.prototype, "handleToggleMegadropdown", void 0);
1250
- PostMegadropdownTrigger.style = postMegadropdownTriggerCss;
1303
+ ], PostMegadropdownTrigger.prototype, "onMegadropdownToggled", null);
1304
+ PostMegadropdownTrigger.style = postMegadropdownTriggerCss();
1251
1305
 
1252
- const postMenuCss = ":host{display:block}:where([part=menu]){display:flex;flex-direction:column;padding-block:.5rem}::slotted([slot=header]){margin-top:-0.5rem;padding:1rem;display:flex;align-items:center;gap:.5rem;border-block-end:1px solid #050400;font-weight:700}@media screen and (max-width: 1023.98px){::slotted([slot=header]){padding:.75rem 1rem}}@media screen and (max-width: 779.98px){::slotted([slot=header]){padding:.5rem 1rem}}";
1306
+ const postMenuCss = () => `:host{display:block}:where([part=post-menu]){display:flex;flex-direction:column;padding-block:.5rem}::slotted([slot=header]){margin-top:-0.5rem;padding:1rem;display:flex;align-items:center;gap:.5rem;border-block-end:1px solid #050400;font-weight:700}@media screen and (max-width: 1023.98px){::slotted([slot=header]){padding:.75rem 1rem}}@media screen and (max-width: 779.98px){::slotted([slot=header]){padding:.5rem 1rem}}`;
1253
1307
 
1254
1308
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1255
1309
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1298,35 +1352,6 @@ const PostMenu = class {
1298
1352
  this.controlKeyDownHandler(e);
1299
1353
  }
1300
1354
  };
1301
- this.handlePostShown = (event) => {
1302
- // Only for the first open
1303
- if (event.detail.first) {
1304
- // Add "menu" and "menuitem" aria roles and aria-label
1305
- this.host.setAttribute('role', 'menu');
1306
- const menuItems = this.getSlottedItems();
1307
- for (const item of menuItems) {
1308
- item.setAttribute('role', 'menuitem');
1309
- }
1310
- if (this.label)
1311
- this.host.setAttribute('aria-label', this.label);
1312
- }
1313
- };
1314
- this.handlePostToggled = (event) => {
1315
- this.isVisible = event.detail.isOpen;
1316
- this.toggleMenu.emit(this.isVisible);
1317
- if (this.isVisible) {
1318
- this.lastFocusedElement = this.root?.activeElement;
1319
- requestAnimationFrame(() => {
1320
- const menuItems = this.getSlottedItems();
1321
- if (menuItems.length > 0) {
1322
- menuItems[0].focus();
1323
- }
1324
- });
1325
- }
1326
- else if (this.lastFocusedElement) {
1327
- this.lastFocusedElement.focus();
1328
- }
1329
- };
1330
1355
  this.handleClick = (e) => {
1331
1356
  const target = e.target;
1332
1357
  if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
@@ -1388,6 +1413,35 @@ const PostMenu = class {
1388
1413
  console.error('hide: popoverRef is null or undefined');
1389
1414
  }
1390
1415
  }
1416
+ handlePostShown(event) {
1417
+ // Only for the first open
1418
+ if (event.detail.first) {
1419
+ // Add "menu" and "menuitem" aria roles and aria-label
1420
+ this.host.setAttribute('role', 'menu');
1421
+ const menuItems = this.getSlottedItems();
1422
+ for (const item of menuItems) {
1423
+ item.setAttribute('role', 'menuitem');
1424
+ }
1425
+ if (this.label)
1426
+ this.host.setAttribute('aria-label', this.label);
1427
+ }
1428
+ }
1429
+ handlePostBeforeToggle(event) {
1430
+ this.isVisible = event.detail.willOpen;
1431
+ this.toggleMenu.emit(this.isVisible);
1432
+ if (this.isVisible) {
1433
+ this.lastFocusedElement = this.root?.activeElement;
1434
+ requestAnimationFrame(() => {
1435
+ const menuItems = this.getSlottedItems();
1436
+ if (menuItems.length > 0) {
1437
+ menuItems[0].focus();
1438
+ }
1439
+ });
1440
+ }
1441
+ else if (this.lastFocusedElement) {
1442
+ this.lastFocusedElement.focus();
1443
+ }
1444
+ }
1391
1445
  controlKeyDownHandler(e) {
1392
1446
  const menuItems = this.getSlottedItems();
1393
1447
  if (!menuItems.length) {
@@ -1435,23 +1489,27 @@ const PostMenu = class {
1435
1489
  .flatMap(el => Array.from(getFocusableChildren(el))));
1436
1490
  }
1437
1491
  render() {
1438
- return (h(Host, { key: 'ab27eeef6ddcca57eb65ca9f7471809d9f78d7d1', "data-version": version }, h("post-popovercontainer", { key: 'c8053a6cbae6d22751e81107099180b95829b8c4', onPostShow: this.handlePostShown, onPostToggle: this.handlePostToggled, placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: 'c60d336220b331cd7f3d5b896788f3fdcee090cf', part: "menu" }, h("slot", { key: '629b1f5dbe4074df6459bdfe64e1c0f836314e85', name: "header" }), h("slot", { key: 'c918bba494424db857e7e99fd80d24224bdeb9ed' })))));
1492
+ return (h(Host, { key: 'b8eed085445b840a741ee5115c10ef4e9b3fb387', "data-version": version }, h("post-popovercontainer", { key: '4d885d0d4a23c5b29312588bccdc0cbbf7e3da23', onPostShow: this.handlePostShown.bind(this), onPostBeforeToggle: this.handlePostBeforeToggle.bind(this), placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: '69ed7ce44051026ca85f6a6cd25aeb1f2ef56a3c', part: "post-menu" }, h("slot", { key: '431d56f067986a0eded7b15c6dbc4ab0662a5b86', name: "header" }), h("slot", { key: '3b906c3a19cce7372de493b5dfe90d1587925a2c' })))));
1439
1493
  }
1440
1494
  get host() { return getElement(this); }
1441
1495
  static get watchers() { return {
1442
- "placement": ["validatePlacement"],
1443
- "label": ["validateLabel"]
1496
+ "placement": [{
1497
+ "validatePlacement": 0
1498
+ }],
1499
+ "label": [{
1500
+ "validateLabel": 0
1501
+ }]
1444
1502
  }; }
1445
1503
  };
1446
1504
  __decorate([
1447
1505
  EventFrom('post-popovercontainer')
1448
- ], PostMenu.prototype, "handlePostShown", void 0);
1506
+ ], PostMenu.prototype, "handlePostShown", null);
1449
1507
  __decorate([
1450
1508
  EventFrom('post-popovercontainer')
1451
- ], PostMenu.prototype, "handlePostToggled", void 0);
1452
- PostMenu.style = postMenuCss;
1509
+ ], PostMenu.prototype, "handlePostBeforeToggle", null);
1510
+ PostMenu.style = postMenuCss();
1453
1511
 
1454
- const postMenuTriggerCss = ":host{display:inline-block}";
1512
+ const postMenuTriggerCss = () => `:host{display:inline-block}`;
1455
1513
 
1456
1514
  const PostMenuTrigger = class {
1457
1515
  constructor(hostRef) {
@@ -1526,14 +1584,16 @@ const PostMenuTrigger = class {
1526
1584
  }
1527
1585
  }
1528
1586
  render() {
1529
- return (h(Host, { key: '14592f9564fdb09b2e809374d5794bf71f576dbb', "data-version": version, "tab-index": "-1" }, h("slot", { key: 'a0f463000420df39035cc5a48369d230394b5e04' })));
1587
+ return (h(Host, { key: '13701a50f739c2252ab296e13c657e1d4c51444b', "data-version": version, "tab-index": "-1" }, h("slot", { key: 'dc5fd68d917d3cfe2a9703553b1fba4047770260' })));
1530
1588
  }
1531
1589
  get host() { return getElement(this); }
1532
1590
  static get watchers() { return {
1533
- "for": ["validateControlFor"]
1591
+ "for": [{
1592
+ "validateControlFor": 0
1593
+ }]
1534
1594
  }; }
1535
1595
  };
1536
- PostMenuTrigger.style = postMenuTriggerCss;
1596
+ PostMenuTrigger.style = postMenuTriggerCss();
1537
1597
 
1538
1598
  /**
1539
1599
  * Custom positioning reference element.
@@ -4256,8 +4316,11 @@ function popIn(el) {
4256
4316
  });
4257
4317
  }
4258
4318
 
4259
- const postPopovercontainerCss = "@layer polyfill{@supports not selector(:popover-open){[popover]:not(.\\:popover-open){display:none}}}:where(post-popovercontainer){background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:where(post-popovercontainer)>div{box-shadow:var(--post-device-elevation-300);width:max-content;max-width:100%;color:var(--post-current-fg);background-color:var(--post-current-bg);border-radius:4px}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:where(post-popovercontainer)>div{border:2px solid rgba(0,0,0,0)}}:where(post-popovercontainer)[tooltip]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:where(post-popovercontainer)[safe-space]::after{content:\"\";position:fixed;inset:0;z-index:-1;pointer-events:auto}:where(post-popovercontainer)[safe-space=triangle]::after{clip-path:polygon(var(--post-safe-space-cursor-x, 0) var(--post-safe-space-cursor-y, 0), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)))}:where(post-popovercontainer)[safe-space=trapezoid]::after{clip-path:polygon(var(--post-safe-space-trigger-x-start, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-start, 0)), var(--post-safe-space-trigger-x-end, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-end, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)))}:where(post-popovercontainer):not(:has(.arrow))>div{box-shadow:var(--post-device-elevation-300)}:where(post-popovercontainer):has(.arrow)>div{filter:drop-shadow(1px 2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(2px 4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(4px 8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.top)>div{filter:drop-shadow(0px -2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(0px -4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(0px -8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.left)>div{filter:drop-shadow(-2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(-4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(-8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.right)>div{filter:drop-shadow(2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer) .arrow{position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:where(post-popovercontainer) .arrow.top{border-block-start:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.right{border-block-start:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.left{border-block-end:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.bottom{border-block-end:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0)}";
4319
+ const postPopovercontainerCss = () => `@layer polyfill{@supports not selector(:popover-open){[popover]:not(.\\:popover-open){display:none}}}:where(post-popovercontainer){background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:where(post-popovercontainer)>div{box-shadow:var(--post-device-elevation-300);width:max-content;max-width:100%;color:var(--post-current-fg);background-color:var(--post-current-bg);border-radius:4px}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:where(post-popovercontainer)>div{border:2px solid rgba(0,0,0,0)}}:where(post-popovercontainer)[tooltip]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:where(post-popovercontainer)[safe-space]::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:auto}:where(post-popovercontainer)[safe-space=triangle]::after{clip-path:polygon(var(--post-safe-space-cursor-x, 0) var(--post-safe-space-cursor-y, 0), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)))}:where(post-popovercontainer)[safe-space=trapezoid]::after{clip-path:polygon(var(--post-safe-space-trigger-x-start, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-start, 0)), var(--post-safe-space-trigger-x-end, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-end, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)))}:where(post-popovercontainer):not(:has(.arrow))>div{box-shadow:var(--post-device-elevation-300)}:where(post-popovercontainer):has(.arrow)>div{filter:drop-shadow(1px 2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(2px 4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(4px 8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.top)>div{filter:drop-shadow(0px -2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(0px -4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(0px -8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.left)>div{filter:drop-shadow(-2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(-4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(-8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.right)>div{filter:drop-shadow(2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer) .arrow{--arrow-size: 0.5825rem;position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:where(post-popovercontainer) .arrow[dynamic-placement=top]{border-bottom-right-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=right]{border-bottom-left-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=bottom]{border-top-left-radius:2px}:where(post-popovercontainer) .arrow[dynamic-placement=left]{border-top-right-radius:2px}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:where(post-popovercontainer) .arrow[dynamic-placement=top]{border-block-end:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);bottom:-0.3796735336rem !important}:where(post-popovercontainer) .arrow[dynamic-placement=left]{border-block-start:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0);right:-0.3796735336rem !important}:where(post-popovercontainer) .arrow[dynamic-placement=right]{border-block-end:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);left:-0.3796735336rem !important}:where(post-popovercontainer) .arrow[dynamic-placement=bottom]{border-block-start:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0);top:-0.3796735336rem !important}}`;
4260
4320
 
4321
+ const ANIMATIONS = {
4322
+ 'pop-in': popIn,
4323
+ };
4261
4324
  const PostPopovercontainer = class {
4262
4325
  constructor(hostRef) {
4263
4326
  registerInstance(this, hostRef);
@@ -4277,18 +4340,14 @@ const PostPopovercontainer = class {
4277
4340
  * Gap between the edge of the page and the popovercontainer
4278
4341
  */
4279
4342
  this.edgeGap = 8;
4280
- /**
4281
- * Animation style
4282
- */
4283
- this.animation = null;
4284
4343
  /**
4285
4344
  * Whether or not to display a little pointer arrow
4286
4345
  */
4287
4346
  this.arrow = false;
4288
4347
  /**
4289
- * Whether or not the popovercontainer should close when user clicks outside of it
4348
+ * Animation style
4290
4349
  */
4291
- this.manualClose = false;
4350
+ this.animation = 'pop-in';
4292
4351
  this.currentAnimation = null;
4293
4352
  }
4294
4353
  validatePlacement() {
@@ -4315,6 +4374,9 @@ const PostPopovercontainer = class {
4315
4374
  }
4316
4375
  }
4317
4376
  componentDidLoad() {
4377
+ this.validatePlacement();
4378
+ this.validateEdgeGap();
4379
+ this.validateSafeSpace();
4318
4380
  this.host.addEventListener('beforetoggle', this.handleToggle.bind(this));
4319
4381
  }
4320
4382
  disconnectedCallback() {
@@ -4325,7 +4387,7 @@ const PostPopovercontainer = class {
4325
4387
  }
4326
4388
  /**
4327
4389
  * Programmatically display the popovercontainer
4328
- * @param target A focusable element inside the <post-popover-trigger> component that controls the popover
4390
+ * @param target A focusable element inside the trigger component that controls the popover
4329
4391
  */
4330
4392
  async show(target) {
4331
4393
  if (this.toggleTimeoutId)
@@ -4334,15 +4396,44 @@ const PostPopovercontainer = class {
4334
4396
  this.calculatePosition();
4335
4397
  this.host.showPopover();
4336
4398
  }
4399
+ /**
4400
+ * Programmatically hide the popovercontainer
4401
+ */
4402
+ async hide() {
4403
+ if (!this.toggleTimeoutId) {
4404
+ this.eventTarget = null;
4405
+ this.host.hidePopover();
4406
+ this.postHide.emit();
4407
+ }
4408
+ }
4409
+ /**
4410
+ * Toggle popovercontainer display
4411
+ * @param target A focusable element inside the <post-popover-trigger> component that controls the popover
4412
+ * @param force Pass true to always show or false to always hide
4413
+ */
4414
+ async toggle(target, force) {
4415
+ this.eventTarget = target;
4416
+ // Prevent instant double toggle
4417
+ if (!this.toggleTimeoutId) {
4418
+ this.calculatePosition();
4419
+ this.host.togglePopover(force);
4420
+ this.toggleTimeoutId = null;
4421
+ }
4422
+ return this.host.matches(':where(:popover-open, .popover-open)');
4423
+ }
4337
4424
  /**
4338
4425
  * Handles the popover opening process and emits related events.
4339
4426
  */
4340
- async open() {
4427
+ open() {
4341
4428
  const content = this.host.querySelector('.popover-content');
4342
4429
  this.startAutoupdates();
4343
4430
  if (content) {
4344
- // Only run animation and emit related events if animation is defined
4345
- if (this.animation === null) {
4431
+ const animationFn = ANIMATIONS[this.animation];
4432
+ // Only run the animation if it corresponds to a valid, registered animation function
4433
+ if (typeof animationFn === 'function') {
4434
+ this.runOpenAnimation(animationFn, content);
4435
+ }
4436
+ else {
4346
4437
  // No animation case
4347
4438
  this.postBeforeToggle.emit({ willOpen: true });
4348
4439
  this.postBeforeShow.emit({ first: this.hasOpenedOnce });
@@ -4351,9 +4442,6 @@ const PostPopovercontainer = class {
4351
4442
  if (this.hasOpenedOnce)
4352
4443
  this.hasOpenedOnce = false;
4353
4444
  }
4354
- else {
4355
- this.runOpenAnimation(content);
4356
- }
4357
4445
  }
4358
4446
  if (this.safeSpace) {
4359
4447
  window.addEventListener('mousemove', this.mouseTrackingHandler.bind(this));
@@ -4362,7 +4450,7 @@ const PostPopovercontainer = class {
4362
4450
  /**
4363
4451
  * Handles the popover closing process and emits related events.
4364
4452
  */
4365
- async close() {
4453
+ close() {
4366
4454
  if (typeof this.clearAutoUpdate === 'function') {
4367
4455
  this.clearAutoUpdate();
4368
4456
  }
@@ -4370,7 +4458,7 @@ const PostPopovercontainer = class {
4370
4458
  window.removeEventListener('mousemove', this.mouseTrackingHandler.bind(this));
4371
4459
  }
4372
4460
  // Cancel any running animation
4373
- if (this.animation !== null && this.currentAnimation) {
4461
+ if (this.currentAnimation) {
4374
4462
  this.currentAnimation.cancel();
4375
4463
  this.currentAnimation = null;
4376
4464
  }
@@ -4381,10 +4469,18 @@ const PostPopovercontainer = class {
4381
4469
  /**
4382
4470
  * Runs the animation and emits the toggle/show/hide events in the correct timing
4383
4471
  */
4384
- async runOpenAnimation(element) {
4472
+ async runOpenAnimation(animationFn, element) {
4385
4473
  let animation;
4386
4474
  try {
4387
- animation = popIn(element);
4475
+ animation = animationFn(element);
4476
+ if (!animation) {
4477
+ // Fallback: no animation, just emit open events directly
4478
+ this.postBeforeToggle.emit({ willOpen: true });
4479
+ this.postBeforeShow.emit({ first: this.hasOpenedOnce });
4480
+ this.postToggle.emit({ isOpen: true });
4481
+ this.postShow.emit({ first: this.hasOpenedOnce });
4482
+ return;
4483
+ }
4388
4484
  this.currentAnimation = animation;
4389
4485
  if (animation.playState === 'running') {
4390
4486
  this.postBeforeToggle.emit({ willOpen: true });
@@ -4408,31 +4504,6 @@ const PostPopovercontainer = class {
4408
4504
  }
4409
4505
  }
4410
4506
  }
4411
- /**
4412
- * Programmatically hide the popovercontainer
4413
- */
4414
- async hide() {
4415
- if (!this.toggleTimeoutId) {
4416
- this.eventTarget = null;
4417
- this.host.hidePopover();
4418
- this.postHide.emit();
4419
- }
4420
- }
4421
- /**
4422
- * Toggle popovercontainer display
4423
- * @param target A focusable element inside the <post-popover-trigger> component that controls the popover
4424
- * @param force Pass true to always show or false to always hide
4425
- */
4426
- async toggle(target, force) {
4427
- this.eventTarget = target;
4428
- // Prevent instant double toggle
4429
- if (!this.toggleTimeoutId) {
4430
- this.calculatePosition();
4431
- this.host.togglePopover(force);
4432
- this.toggleTimeoutId = null;
4433
- }
4434
- return this.host.matches(':where(:popover-open, .popover-open)');
4435
- }
4436
4507
  /**
4437
4508
  * Start or stop auto updates based on popovercontainer events.
4438
4509
  * Popovercontainers can be closed or opened with other methods than class members,
@@ -4454,6 +4525,8 @@ const PostPopovercontainer = class {
4454
4525
  * an influence on popovercontainer positioning
4455
4526
  */
4456
4527
  startAutoupdates() {
4528
+ if (!this.eventTarget || !this.host)
4529
+ return;
4457
4530
  this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.calculatePosition.bind(this));
4458
4531
  }
4459
4532
  /**
@@ -4466,6 +4539,7 @@ const PostPopovercontainer = class {
4466
4539
  async calculatePosition() {
4467
4540
  const { x, y, middlewareData, placement } = await this.computeMainPosition();
4468
4541
  const currentPlacement = placement.split('-')[0];
4542
+ this.dynamicPlacement = currentPlacement;
4469
4543
  // Position popover
4470
4544
  this.host.style.left = `${x}px`;
4471
4545
  this.host.style.top = `${y}px`;
@@ -4473,11 +4547,20 @@ const PostPopovercontainer = class {
4473
4547
  if (this.arrow && middlewareData.arrow) {
4474
4548
  const { x: arrowX, y: arrowY } = middlewareData.arrow;
4475
4549
  const staticSide = PostPopovercontainer.STATIC_SIDES[currentPlacement];
4550
+ const rootFontSize = Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
4551
+ // Calculate dynamically the half side which provides the static side offset
4552
+ const arrowSizeValue = getComputedStyle(this.arrowRef)
4553
+ .getPropertyValue('--arrow-size')
4554
+ .trim();
4555
+ const arrowSizePx = arrowSizeValue.endsWith('rem')
4556
+ ? Number.parseFloat(arrowSizeValue) * rootFontSize
4557
+ : Number.parseFloat(arrowSizeValue);
4558
+ const halfSide = -0.5 * arrowSizePx;
4476
4559
  if (staticSide) {
4477
4560
  Object.assign(this.arrowRef.style, {
4478
4561
  left: arrowX ? `${arrowX}px` : '',
4479
4562
  top: arrowY ? `${arrowY}px` : '',
4480
- [staticSide]: '-5px',
4563
+ [staticSide]: `${halfSide}px`,
4481
4564
  });
4482
4565
  }
4483
4566
  }
@@ -4578,15 +4661,21 @@ const PostPopovercontainer = class {
4578
4661
  }
4579
4662
  }
4580
4663
  render() {
4581
- return (h(Host, { key: '9ec775608a6bfab69c50e9cefb1a42235deaa451', "data-version": version, popover: this.manualClose ? 'manual' : 'auto' }, h("div", { key: 'b659d1ce9cf9d3b661e3712c689cf1ffb0816f6e', class: "popover-content" }, this.arrow && (h("span", { key: '504e007d07d6b38018d93f5dca5a074b881cd50b', class: "arrow", ref: el => {
4664
+ return (h(Host, { key: 'f675b14ed97d7f2931781549df8aafd9072faa96', "data-version": version, popover: "auto" }, h("div", { key: 'f66186a7448f60b9f9dcb1b3cbe047a74a85dc7b', class: "popover-content" }, this.arrow && (h("span", { key: 'd0f8f2baa005522140ac1ef49a0bccc13be72c72', "dynamic-placement": this.dynamicPlacement, class: "arrow", ref: el => {
4582
4665
  this.arrowRef = el;
4583
- } })), h("slot", { key: '207062f4582b4aad7b570a7453711fd61654d5e3' }))));
4666
+ } })), h("slot", { key: '5fbdad6fa76951f4d886ef0ab57e7471ac38c59d' }))));
4584
4667
  }
4585
4668
  get host() { return getElement(this); }
4586
4669
  static get watchers() { return {
4587
- "placement": ["validatePlacement"],
4588
- "edgeGap": ["validateEdgeGap"],
4589
- "safeSpace": ["validateSafeSpace"]
4670
+ "placement": [{
4671
+ "validatePlacement": 0
4672
+ }],
4673
+ "edgeGap": [{
4674
+ "validateEdgeGap": 0
4675
+ }],
4676
+ "safeSpace": [{
4677
+ "validateSafeSpace": 0
4678
+ }]
4590
4679
  }; }
4591
4680
  };
4592
4681
  PostPopovercontainer.STATIC_SIDES = {
@@ -4609,9 +4698,9 @@ PostPopovercontainer.PROPERTIES_TO_CLEAR = [
4609
4698
  '--post-safe-space-trigger-y-start',
4610
4699
  '--post-safe-space-trigger-y-end',
4611
4700
  ];
4612
- PostPopovercontainer.style = postPopovercontainerCss;
4701
+ PostPopovercontainer.style = postPopovercontainerCss();
4613
4702
 
4614
- const postTogglebuttonCss = ":host{cursor:pointer;outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:focus-visible){outline-color:Highlight !important}}:host([aria-pressed=true]) ::slotted([data-showwhen=untoggled]){display:none}:host([aria-pressed=false]) ::slotted([data-showwhen=toggled]){display:none}";
4703
+ const postTogglebuttonCss = () => `:host{cursor:pointer;outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:focus-visible){outline-color:Highlight !important}}:host([aria-pressed=true]) ::slotted([data-showwhen=untoggled]){display:none}:host([aria-pressed=false]) ::slotted([data-showwhen=toggled]){display:none}`;
4615
4704
 
4616
4705
  const PostTogglebutton = class {
4617
4706
  constructor(hostRef) {
@@ -4637,10 +4726,10 @@ const PostTogglebutton = class {
4637
4726
  this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
4638
4727
  }
4639
4728
  render() {
4640
- return (h(Host, { key: 'ecd5772b09be8842e5c6fc3bf34932b27d90c533', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: '3bb32b33155e71ced9375afb5a26d1d4e63a83c8' })));
4729
+ return (h(Host, { key: 'e0708bda008257aeab8e9ad82c33c66eff4aedb6', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: 'a10862573155edbef1a88bd8a1f9f8abf9dbe4c0' })));
4641
4730
  }
4642
4731
  get host() { return getElement(this); }
4643
4732
  };
4644
- PostTogglebutton.style = postTogglebuttonCss;
4733
+ PostTogglebutton.style = postTogglebuttonCss();
4645
4734
 
4646
- export { PostClosebutton as post_closebutton, PostHeader as post_header, PostIcon as post_icon, PostLanguageOption as post_language_option, PostLanguageSwitch as post_language_switch, PostList as post_list, PostListItem as post_list_item, PostLogo as post_logo, PostMainnavigation as post_mainnavigation, PostMegadropdown as post_megadropdown, PostMegadropdownTrigger as post_megadropdown_trigger, PostMenu as post_menu, PostMenuTrigger as post_menu_trigger, PostPopovercontainer as post_popovercontainer, PostTogglebutton as post_togglebutton };
4735
+ export { PostClosebutton as post_closebutton, PostHeader as post_header, PostIcon as post_icon, PostLanguageMenu as post_language_menu, PostLanguageMenuItem as post_language_menu_item, PostLogo as post_logo, PostMainnavigation as post_mainnavigation, PostMegadropdown as post_megadropdown, PostMegadropdownTrigger as post_megadropdown_trigger, PostMenu as post_menu, PostMenuTrigger as post_menu_trigger, PostPopovercontainer as post_popovercontainer, PostTogglebutton as post_togglebutton };