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

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