@swisspost/design-system-components 9.0.0-next.33 → 9.0.0-next.35

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 (365) hide show
  1. package/dist/cjs/{attribute-observer-6d8b886b.js → attribute-observer-c3a805b2.js} +3 -1
  2. package/dist/cjs/{breakpoints-c6247c71.js → breakpoints-cdf1b747.js} +12 -7
  3. package/dist/cjs/get-root-8102fecd.js +17 -0
  4. package/dist/cjs/{index-d6bf2c66.js → index-b60129c4.js} +4 -4
  5. package/dist/cjs/index.cjs.js +25 -26
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/long-press-event-6e62d113.js +266 -0
  8. package/dist/cjs/{package-3562c265.js → package-19b74b08.js} +1 -1
  9. package/dist/cjs/{post-accordion-6c5681ba.js → post-accordion-785f602b.js} +5 -5
  10. package/dist/cjs/{post-accordion-item-05a78451.js → post-accordion-item-8e1c9bdb.js} +5 -5
  11. package/dist/cjs/post-accordion-item.cjs.entry.js +5 -4
  12. package/dist/cjs/post-accordion.cjs.entry.js +4 -3
  13. package/dist/cjs/{post-avatar-6710a77a.js → post-avatar-eecfd222.js} +6 -5
  14. package/dist/cjs/post-avatar.cjs.entry.js +4 -3
  15. package/dist/cjs/{post-back-to-top-d0662842.js → post-back-to-top-49a3abcb.js} +9 -9
  16. package/dist/cjs/post-back-to-top.cjs.entry.js +4 -3
  17. package/dist/cjs/{post-banner-bd97db9c.js → post-banner-249ec2ff.js} +5 -9
  18. package/dist/cjs/post-banner.cjs.entry.js +4 -3
  19. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +4 -3
  20. package/dist/cjs/{post-breadcrumb-36ab841c.js → post-breadcrumbs-f51590d1.js} +39 -31
  21. package/dist/cjs/post-breadcrumbs.cjs.entry.js +13 -0
  22. package/dist/cjs/post-card-control-d0a47015.js +269 -0
  23. package/dist/cjs/post-card-control.cjs.entry.js +4 -3
  24. package/dist/cjs/post-closebutton_15.cjs.entry.js +5 -5
  25. package/dist/cjs/{post-collapsible-trigger-6601c554.js → post-collapsible-trigger-4784edb2.js} +24 -41
  26. package/dist/cjs/post-collapsible_2.cjs.entry.js +5 -5
  27. package/dist/cjs/post-components.cjs.js +2 -2
  28. package/dist/cjs/{post-footer-23699aef.js → post-footer-9d078cb1.js} +11 -11
  29. package/dist/cjs/post-footer.cjs.entry.js +4 -4
  30. package/dist/cjs/{post-linkarea-8e5e1a9f.js → post-linkarea-e4ce3960.js} +5 -5
  31. package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
  32. package/dist/cjs/{post-menu-item-8dd94792.js → post-menu-item-e9ebd27a.js} +4 -4
  33. package/dist/cjs/post-popover-5db53ead.js +112 -0
  34. package/dist/cjs/post-popover.cjs.entry.js +5 -4
  35. package/dist/cjs/{post-rating-ef592484.js → post-rating-98a06828.js} +5 -15
  36. package/dist/cjs/post-rating.cjs.entry.js +3 -3
  37. package/dist/cjs/{post-tab-header-d785e7fc.js → post-tab-header-c8e92f77.js} +6 -5
  38. package/dist/cjs/post-tab-header.cjs.entry.js +4 -3
  39. package/dist/cjs/{post-tab-panel-41ea371e.js → post-tab-panel-d966ee38.js} +4 -4
  40. package/dist/cjs/post-tab-panel.cjs.entry.js +3 -3
  41. package/dist/cjs/{post-tabs-c6f00130.js → post-tabs-83d99b69.js} +5 -12
  42. package/dist/cjs/post-tabs.cjs.entry.js +4 -3
  43. package/dist/cjs/post-tag-a1d78e75.js +47 -0
  44. package/dist/cjs/post-tag.cjs.entry.js +3 -3
  45. package/dist/cjs/{post-togglebutton-02c56b7b.js → post-togglebutton-e4651aad.js} +939 -464
  46. package/dist/cjs/{post-tooltip-3176e280.js → post-tooltip-bb862241.js} +39 -296
  47. package/dist/cjs/post-tooltip.cjs.entry.js +5 -4
  48. package/dist/collection/animations/collapse.js +3 -1
  49. package/dist/collection/collection-manifest.json +1 -1
  50. package/dist/collection/components/post-accordion/post-accordion.js +1 -3
  51. package/dist/collection/components/post-accordion-item/post-accordion-item.js +0 -2
  52. package/dist/collection/components/post-avatar/post-avatar.css +1 -3
  53. package/dist/collection/components/post-avatar/post-avatar.js +3 -4
  54. package/dist/collection/components/post-back-to-top/post-back-to-top.js +6 -8
  55. package/dist/collection/components/post-banner/post-banner.css +1 -3
  56. package/dist/collection/components/post-banner/post-banner.js +0 -6
  57. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +0 -2
  58. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -0
  59. package/dist/collection/components/{post-breadcrumb/post-breadcrumb.js → post-breadcrumbs/post-breadcrumbs.js} +24 -27
  60. package/dist/collection/components/post-card-control/post-card-control.css +1 -3
  61. package/dist/collection/components/post-card-control/post-card-control.js +24 -40
  62. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -0
  63. package/dist/collection/components/post-closebutton/post-closebutton.js +12 -2
  64. package/dist/collection/components/post-collapsible/post-collapsible.js +4 -10
  65. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +15 -28
  66. package/dist/collection/components/post-footer/post-footer.js +8 -9
  67. package/dist/collection/components/post-header/post-header.css +1 -1
  68. package/dist/collection/components/post-header/post-header.js +13 -22
  69. package/dist/collection/components/post-icon/post-icon.js +4 -6
  70. package/dist/collection/components/post-language-option/post-language-option.css +1 -3
  71. package/dist/collection/components/post-language-option/post-language-option.js +1 -10
  72. package/dist/collection/components/post-language-switch/post-language-switch.js +7 -19
  73. package/dist/collection/components/post-linkarea/post-linkarea.css +1 -1
  74. package/dist/collection/components/post-linkarea/post-linkarea.js +2 -2
  75. package/dist/collection/components/post-list/post-list.css +1 -3
  76. package/dist/collection/components/post-list/post-list.js +1 -3
  77. package/dist/collection/components/post-list-item/post-list-item.js +1 -2
  78. package/dist/collection/components/post-logo/post-logo.js +1 -2
  79. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  80. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +98 -182
  81. package/dist/collection/components/post-megadropdown/post-megadropdown.js +20 -30
  82. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +36 -37
  83. package/dist/collection/components/post-menu/post-menu.css +1 -3
  84. package/dist/collection/components/post-menu/post-menu.js +47 -55
  85. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +13 -15
  86. package/dist/collection/components/post-popover/post-popover.css +1 -3
  87. package/dist/collection/components/post-popover/post-popover.js +13 -13
  88. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +30 -33
  89. package/dist/collection/components/post-rating/post-rating.css +1 -3
  90. package/dist/collection/components/post-rating/post-rating.js +1 -12
  91. package/dist/collection/components/post-tab-header/post-tab-header.css +1 -3
  92. package/dist/collection/components/post-tab-header/post-tab-header.js +2 -3
  93. package/dist/collection/components/post-tab-panel/post-tab-panel.js +2 -3
  94. package/dist/collection/components/post-tabs/post-tabs.js +1 -10
  95. package/dist/collection/components/post-tag/post-tag.css +1 -3
  96. package/dist/collection/components/post-tag/post-tag.js +1 -2
  97. package/dist/collection/components/post-togglebutton/post-togglebutton.js +10 -11
  98. package/dist/collection/components/post-tooltip/post-tooltip.js +37 -33
  99. package/dist/collection/index.js +1 -1
  100. package/dist/collection/utils/attribute-observer.js +2 -1
  101. package/dist/collection/utils/breakpoints.js +9 -7
  102. package/dist/collection/utils/environment.js +2 -0
  103. package/dist/collection/utils/get-root.js +6 -1
  104. package/dist/collection/utils/index.js +5 -0
  105. package/dist/collection/utils/is-motion-reduced.js +2 -1
  106. package/dist/components/attribute-observer.js +3 -1
  107. package/dist/components/breakpoints.js +12 -8
  108. package/dist/components/get-root.js +7 -1
  109. package/dist/components/index.js +1 -1
  110. package/dist/components/long-press-event.js +264 -0
  111. package/dist/components/package.js +1 -1
  112. package/dist/components/post-accordion-item2.js +3 -3
  113. package/dist/components/post-accordion2.js +3 -3
  114. package/dist/components/post-avatar2.js +5 -4
  115. package/dist/components/post-back-to-top2.js +8 -8
  116. package/dist/components/post-banner2.js +3 -7
  117. package/dist/components/post-breadcrumb-item2.js +2 -2
  118. package/dist/components/{post-breadcrumb.d.ts → post-breadcrumbs.d.ts} +4 -4
  119. package/dist/components/post-breadcrumbs.js +6 -0
  120. package/dist/components/{post-breadcrumb2.js → post-breadcrumbs2.js} +41 -33
  121. package/dist/components/post-card-control2.js +26 -40
  122. package/dist/components/post-closebutton2.js +8 -3
  123. package/dist/components/post-collapsible-trigger2.js +19 -31
  124. package/dist/components/post-collapsible2.js +9 -12
  125. package/dist/components/post-footer2.js +8 -8
  126. package/dist/components/post-header2.js +15 -23
  127. package/dist/components/post-icon2.js +5 -5
  128. package/dist/components/post-language-option2.js +4 -11
  129. package/dist/components/post-language-switch2.js +9 -18
  130. package/dist/components/post-linkarea2.js +5 -4
  131. package/dist/components/post-list-item2.js +2 -2
  132. package/dist/components/post-list2.js +3 -4
  133. package/dist/components/post-logo2.js +3 -2
  134. package/dist/components/post-mainnavigation2.js +94 -182
  135. package/dist/components/post-megadropdown-trigger2.js +38 -37
  136. package/dist/components/post-megadropdown2.js +21 -30
  137. package/dist/components/post-menu-trigger2.js +15 -15
  138. package/dist/components/post-menu2.js +50 -56
  139. package/dist/components/post-popover2.js +15 -13
  140. package/dist/components/post-popovercontainer2.js +638 -36
  141. package/dist/components/post-rating2.js +3 -13
  142. package/dist/components/post-tab-header2.js +5 -4
  143. package/dist/components/post-tab-panel2.js +3 -3
  144. package/dist/components/post-tabs2.js +3 -10
  145. package/dist/components/post-tag2.js +2 -2
  146. package/dist/components/post-togglebutton2.js +12 -11
  147. package/dist/components/post-tooltip2.js +37 -294
  148. package/dist/docs.json +107 -101
  149. package/dist/esm/{attribute-observer-2f203993.js → attribute-observer-009deee5.js} +3 -1
  150. package/dist/esm/{breakpoints-bbe0c54e.js → breakpoints-7812702e.js} +12 -8
  151. package/dist/esm/get-root-1b1af46f.js +15 -0
  152. package/dist/esm/{index-3419e46d.js → index-f4d19816.js} +4 -4
  153. package/dist/esm/index.js +24 -25
  154. package/dist/esm/loader.js +3 -3
  155. package/dist/esm/long-press-event-04d24397.js +264 -0
  156. package/dist/esm/package-791f9257.js +3 -0
  157. package/dist/esm/{post-accordion-024451fa.js → post-accordion-4de9963b.js} +5 -5
  158. package/dist/esm/{post-accordion-item-19b996d1.js → post-accordion-item-2cbb32f9.js} +5 -5
  159. package/dist/esm/post-accordion-item.entry.js +5 -4
  160. package/dist/esm/post-accordion.entry.js +4 -3
  161. package/dist/esm/{post-avatar-33aed045.js → post-avatar-0aaefe87.js} +6 -5
  162. package/dist/esm/post-avatar.entry.js +4 -3
  163. package/dist/esm/{post-back-to-top-7dd43c3b.js → post-back-to-top-24eef0a0.js} +9 -9
  164. package/dist/esm/post-back-to-top.entry.js +4 -3
  165. package/dist/esm/{post-banner-28d18721.js → post-banner-1f37f9f0.js} +5 -9
  166. package/dist/esm/post-banner.entry.js +4 -3
  167. package/dist/esm/post-breadcrumb-item_2.entry.js +4 -3
  168. package/dist/esm/{post-breadcrumb-d86fae7b.js → post-breadcrumbs-2fcccf9f.js} +39 -31
  169. package/dist/esm/post-breadcrumbs.entry.js +5 -0
  170. package/dist/esm/post-card-control-75e8d336.js +267 -0
  171. package/dist/esm/post-card-control.entry.js +4 -3
  172. package/dist/esm/post-closebutton_15.entry.js +5 -5
  173. package/dist/esm/{post-collapsible-trigger-b1612866.js → post-collapsible-trigger-08b79162.js} +24 -41
  174. package/dist/esm/post-collapsible_2.entry.js +5 -5
  175. package/dist/esm/post-components.js +3 -3
  176. package/dist/esm/{post-footer-2ed5e520.js → post-footer-01677010.js} +11 -11
  177. package/dist/esm/post-footer.entry.js +4 -4
  178. package/dist/esm/{post-linkarea-802bf774.js → post-linkarea-4a178d51.js} +5 -5
  179. package/dist/esm/post-linkarea.entry.js +3 -3
  180. package/dist/esm/{post-menu-item-d97611d8.js → post-menu-item-199477fd.js} +4 -4
  181. package/dist/esm/post-popover-2a6a13d8.js +110 -0
  182. package/dist/esm/post-popover.entry.js +5 -4
  183. package/dist/esm/{post-rating-e1ac47ce.js → post-rating-fcf24658.js} +5 -15
  184. package/dist/esm/post-rating.entry.js +3 -3
  185. package/dist/esm/{post-tab-header-06dcbf7f.js → post-tab-header-aaa2f0b8.js} +6 -5
  186. package/dist/esm/post-tab-header.entry.js +4 -3
  187. package/dist/esm/{post-tab-panel-75932601.js → post-tab-panel-91f35995.js} +4 -4
  188. package/dist/esm/post-tab-panel.entry.js +3 -3
  189. package/dist/esm/{post-tabs-3ef2ea23.js → post-tabs-8657f2d6.js} +5 -12
  190. package/dist/esm/post-tabs.entry.js +4 -3
  191. package/dist/esm/post-tag-19141551.js +45 -0
  192. package/dist/esm/post-tag.entry.js +3 -3
  193. package/dist/esm/{post-togglebutton-db251030.js → post-togglebutton-40cac8c2.js} +939 -464
  194. package/dist/esm/{post-tooltip-c256d714.js → post-tooltip-165eb353.js} +39 -296
  195. package/dist/esm/post-tooltip.entry.js +5 -4
  196. package/dist/post-components/index.esm.js +1 -1
  197. package/dist/post-components/p-01544069.js +1 -0
  198. package/dist/post-components/p-02d0c370.js +1 -0
  199. package/dist/post-components/p-03169497.js +1 -0
  200. package/dist/post-components/p-06bf6b81.entry.js +1 -0
  201. package/dist/post-components/p-0ca39161.entry.js +1 -0
  202. package/dist/post-components/p-0f398677.js +1 -0
  203. package/dist/post-components/p-10f9d25e.js +1 -0
  204. package/dist/post-components/p-15da2cf9.js +1 -0
  205. package/dist/post-components/p-1622ed8c.js +1 -0
  206. package/dist/post-components/p-1d5e275b.js +1 -0
  207. package/dist/post-components/p-2a90f66c.js +1 -0
  208. package/dist/post-components/p-32aa68ac.entry.js +1 -0
  209. package/dist/post-components/p-3d30acad.entry.js +1 -0
  210. package/dist/post-components/p-48cd3157.js +1 -0
  211. package/dist/post-components/p-56da2097.entry.js +1 -0
  212. package/dist/post-components/p-65824049.entry.js +1 -0
  213. package/dist/post-components/p-6b31a76a.js +1 -0
  214. package/dist/post-components/p-722ffaae.js +1 -0
  215. package/dist/post-components/p-7c6f4c29.js +1 -0
  216. package/dist/post-components/p-817effd4.js +1 -0
  217. package/dist/post-components/p-8579ac14.js +8 -0
  218. package/dist/post-components/p-86859a7b.entry.js +1 -0
  219. package/dist/post-components/p-8db32dab.js +8 -0
  220. package/dist/post-components/p-936682bc.entry.js +1 -0
  221. package/dist/post-components/p-9597127a.js +1 -0
  222. package/dist/post-components/p-9818ad52.entry.js +1 -0
  223. package/dist/post-components/{p-5c758f41.js → p-9e461613.js} +1 -1
  224. package/dist/post-components/p-9ec20111.js +1 -0
  225. package/dist/post-components/p-a1a39a27.js +1 -0
  226. package/dist/post-components/p-a1bae666.entry.js +1 -0
  227. package/dist/post-components/p-a27907cc.js +1 -0
  228. package/dist/post-components/p-a77a6729.entry.js +1 -0
  229. package/dist/post-components/p-ab3ab29b.js +1 -0
  230. package/dist/post-components/p-ad9ffd61.entry.js +1 -0
  231. package/dist/post-components/p-b8241188.js +1 -0
  232. package/dist/post-components/p-bece917c.js +1 -0
  233. package/dist/post-components/p-bf3c80a3.entry.js +1 -0
  234. package/dist/post-components/p-cd8aef45.entry.js +1 -0
  235. package/dist/post-components/p-cdd3a06a.entry.js +1 -0
  236. package/dist/post-components/p-dc702c39.entry.js +1 -0
  237. package/dist/post-components/p-e077239a.entry.js +1 -0
  238. package/dist/post-components/p-e653daec.entry.js +1 -0
  239. package/dist/post-components/p-e8861c07.entry.js +1 -0
  240. package/dist/post-components/p-f2478a7d.js +1 -0
  241. package/dist/post-components/post-components.esm.js +1 -1
  242. package/dist/types/components/post-avatar/post-avatar.d.ts +1 -1
  243. package/dist/types/components/{post-breadcrumb/post-breadcrumb.d.ts → post-breadcrumbs/post-breadcrumbs.d.ts} +4 -4
  244. package/dist/types/components/post-card-control/post-card-control.d.ts +1 -1
  245. package/dist/types/components/post-collapsible-trigger/post-collapsible-trigger.d.ts +4 -14
  246. package/dist/types/components/post-footer/post-footer.d.ts +2 -2
  247. package/dist/types/components/post-header/post-header.d.ts +1 -0
  248. package/dist/types/components/post-icon/post-icon.d.ts +0 -1
  249. package/dist/types/components/post-language-switch/post-language-switch.d.ts +2 -5
  250. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +14 -39
  251. package/dist/types/components/post-menu/post-menu.d.ts +3 -3
  252. package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +1 -1
  253. package/dist/types/components/post-popover/post-popover.d.ts +6 -4
  254. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +1 -1
  255. package/dist/types/components/post-tag/post-tag.d.ts +1 -1
  256. package/dist/types/components/post-tooltip/post-tooltip.d.ts +9 -4
  257. package/dist/types/components.d.ts +35 -35
  258. package/dist/types/index.d.ts +1 -1
  259. package/dist/types/popover-fn.d.ts +11 -0
  260. package/dist/types/utils/environment.d.ts +2 -0
  261. package/dist/types/utils/get-root.d.ts +4 -0
  262. package/dist/types/utils/index.d.ts +5 -0
  263. package/loaders/attribute-observer.js +3 -1
  264. package/loaders/breakpoints.js +12 -8
  265. package/loaders/get-root.js +7 -1
  266. package/loaders/index.d.ts +2 -2
  267. package/loaders/index.js +4 -4
  268. package/loaders/long-press-event.js +264 -0
  269. package/loaders/package.js +1 -1
  270. package/loaders/post-accordion-item2.js +3 -3
  271. package/loaders/post-accordion.js +3 -3
  272. package/loaders/post-avatar.js +5 -4
  273. package/loaders/post-back-to-top.js +8 -8
  274. package/loaders/post-banner.js +3 -7
  275. package/loaders/post-breadcrumb-item2.js +2 -2
  276. package/loaders/{post-breadcrumb.d.ts → post-breadcrumbs.d.ts} +4 -4
  277. package/loaders/{post-breadcrumb.js → post-breadcrumbs.js} +42 -34
  278. package/loaders/post-card-control.js +26 -40
  279. package/loaders/post-closebutton.js +8 -3
  280. package/loaders/post-collapsible-trigger2.js +19 -31
  281. package/loaders/post-collapsible2.js +9 -12
  282. package/loaders/post-footer.js +8 -8
  283. package/loaders/post-header.js +15 -23
  284. package/loaders/post-icon2.js +5 -5
  285. package/loaders/post-language-option.js +4 -11
  286. package/loaders/post-language-switch.js +9 -18
  287. package/loaders/post-linkarea.js +5 -4
  288. package/loaders/post-list-item.js +2 -2
  289. package/loaders/post-list.js +3 -4
  290. package/loaders/post-logo.js +3 -2
  291. package/loaders/post-mainnavigation.js +94 -182
  292. package/loaders/post-megadropdown-trigger.js +38 -37
  293. package/loaders/post-megadropdown.js +21 -30
  294. package/loaders/post-menu-trigger2.js +15 -15
  295. package/loaders/post-menu2.js +50 -56
  296. package/loaders/post-popover.js +15 -13
  297. package/loaders/post-popovercontainer2.js +638 -36
  298. package/loaders/post-rating.js +3 -13
  299. package/loaders/post-tab-header.js +5 -4
  300. package/loaders/post-tab-panel.js +3 -3
  301. package/loaders/post-tabs.js +3 -10
  302. package/loaders/post-tag.js +2 -2
  303. package/loaders/post-togglebutton.js +12 -11
  304. package/loaders/post-tooltip.js +37 -294
  305. package/package.json +20 -15
  306. package/dist/cjs/debounce-158fd76f.js +0 -13
  307. package/dist/cjs/get-root-7a3498ef.js +0 -11
  308. package/dist/cjs/post-breadcrumb.cjs.entry.js +0 -13
  309. package/dist/cjs/post-card-control-155fb433.js +0 -283
  310. package/dist/cjs/post-popover-858cbd12.js +0 -110
  311. package/dist/cjs/post-tag-d1a1176c.js +0 -47
  312. package/dist/collection/components/post-breadcrumb/post-breadcrumb.css +0 -3
  313. package/dist/components/debounce.js +0 -11
  314. package/dist/components/post-breadcrumb.js +0 -6
  315. package/dist/esm/debounce-e54c7131.js +0 -11
  316. package/dist/esm/get-root-7af2e0d1.js +0 -9
  317. package/dist/esm/package-da68ab5a.js +0 -3
  318. package/dist/esm/post-breadcrumb.entry.js +0 -5
  319. package/dist/esm/post-card-control-aa043898.js +0 -281
  320. package/dist/esm/post-popover-e51a7a18.js +0 -108
  321. package/dist/esm/post-tag-a3b989e0.js +0 -45
  322. package/dist/post-components/p-1376c653.js +0 -1
  323. package/dist/post-components/p-13835969.js +0 -1
  324. package/dist/post-components/p-13fdbaf6.entry.js +0 -1
  325. package/dist/post-components/p-1e2169ae.entry.js +0 -1
  326. package/dist/post-components/p-23e4c270.entry.js +0 -1
  327. package/dist/post-components/p-2641e06b.js +0 -1
  328. package/dist/post-components/p-2d3b16c7.js +0 -1
  329. package/dist/post-components/p-33c35e15.js +0 -1
  330. package/dist/post-components/p-3b247d71.entry.js +0 -1
  331. package/dist/post-components/p-42a5fdf8.js +0 -1
  332. package/dist/post-components/p-4ed7bab6.js +0 -1
  333. package/dist/post-components/p-5aeb3656.js +0 -1
  334. package/dist/post-components/p-5c518421.js +0 -1
  335. package/dist/post-components/p-6db1a2e0.entry.js +0 -1
  336. package/dist/post-components/p-6fe98184.entry.js +0 -1
  337. package/dist/post-components/p-7d731077.entry.js +0 -1
  338. package/dist/post-components/p-7ee47334.entry.js +0 -1
  339. package/dist/post-components/p-8223e97b.js +0 -1
  340. package/dist/post-components/p-8a8376d0.js +0 -1
  341. package/dist/post-components/p-8bb828cf.entry.js +0 -1
  342. package/dist/post-components/p-8e55ddd2.js +0 -1
  343. package/dist/post-components/p-9681efce.js +0 -1
  344. package/dist/post-components/p-96a59372.entry.js +0 -1
  345. package/dist/post-components/p-9748a355.js +0 -1
  346. package/dist/post-components/p-99c8fd43.entry.js +0 -1
  347. package/dist/post-components/p-ac042f7a.entry.js +0 -1
  348. package/dist/post-components/p-c34cacb7.js +0 -1
  349. package/dist/post-components/p-c3a970c5.js +0 -1
  350. package/dist/post-components/p-c4651d32.entry.js +0 -1
  351. package/dist/post-components/p-c9b61d31.entry.js +0 -1
  352. package/dist/post-components/p-d16dd7f9.js +0 -1
  353. package/dist/post-components/p-d81c5908.entry.js +0 -1
  354. package/dist/post-components/p-dbe31632.js +0 -1
  355. package/dist/post-components/p-e1baac59.js +0 -1
  356. package/dist/post-components/p-e2294014.js +0 -15
  357. package/dist/post-components/p-e8ff8122.js +0 -1
  358. package/dist/post-components/p-ed78d04a.entry.js +0 -1
  359. package/dist/post-components/p-f1c0924a.js +0 -1
  360. package/dist/post-components/p-f1db96d0.entry.js +0 -1
  361. package/dist/post-components/p-f7aa917f.entry.js +0 -1
  362. package/dist/post-components/p-f96b80cc.entry.js +0 -1
  363. package/dist/post-components/p-fc91cbc2.js +0 -1
  364. package/dist/post-components/p-fd78716d.js +0 -1
  365. package/loaders/debounce.js +0 -11
@@ -1,25 +1,63 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-d6bf2c66.js');
4
- const _package = require('./package-3562c265.js');
3
+ const index = require('./index-b60129c4.js');
4
+ const _package = require('./package-19b74b08.js');
5
5
  const slide = require('./slide-cd1f09b3.js');
6
6
  const eventGuard = require('./event-guard-efabc84f.js');
7
+ const breakpoints = require('./breakpoints-cdf1b747.js');
7
8
  const index$1 = require('./index-23e36ff7.js');
8
9
  const checkNonEmpty = require('./check-non-empty-bd99d236.js');
9
10
  const checkType = require('./check-type-cdbf6d29.js');
10
11
  const index_browser = require('./index.browser-2f65f583.js');
11
- const breakpoints = require('./breakpoints-c6247c71.js');
12
- const getRoot = require('./get-root-7a3498ef.js');
12
+ const getRoot = require('./get-root-8102fecd.js');
13
+
14
+ const focusableSelector = `:where(${[
15
+ 'button',
16
+ 'input:not([type="hidden"])',
17
+ '[tabindex]',
18
+ 'select',
19
+ 'textarea',
20
+ '[contenteditable]',
21
+ 'a[href]',
22
+ 'iframe',
23
+ 'audio[controls]',
24
+ 'video[controls]',
25
+ 'area[href]',
26
+ 'details > summary:first-of-type',
27
+ ].join(',')})`;
28
+ const focusDisablingSelector = `:where(${[
29
+ '[inert]',
30
+ '[inert] *',
31
+ ':disabled',
32
+ 'dialog:not([open]) *',
33
+ '[popover]:not(:popover-open) *',
34
+ 'details:not([open]) > *:not(details > summary:first-of-type)',
35
+ 'details:not([open]) > *:not(details > summary:first-of-type) *',
36
+ '[tabindex^="-"]',
37
+ '[hidden]:not([hidden="false"])',
38
+ ].join(',')})`;
39
+ function getFocusableChildren(element) {
40
+ const focusableChildren = element.querySelectorAll(`${focusableSelector}:not(${focusDisablingSelector})`);
41
+ const visibleFocusableChildren = Array.from(focusableChildren).filter(child => {
42
+ const style = window.getComputedStyle(child.parentElement);
43
+ return style.display !== 'none' && style.visibility !== 'hidden';
44
+ });
45
+ return visibleFocusableChildren;
46
+ }
47
+
48
+ const postClosebuttonCss = ".btn-icon-close{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)}.btn-icon-close>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)}.btn-icon-close:not(:disabled):hover,.btn-icon-close.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){.btn-icon-close:not(:disabled):hover,.btn-icon-close.pretend-hover{color:HighlightText !important}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}";
49
+ const PostClosebuttonStyle0 = postClosebuttonCss;
13
50
 
14
51
  const PostClosebutton = class {
15
52
  constructor(hostRef) {
16
53
  index.registerInstance(this, hostRef);
17
54
  }
18
- get host() { return index.getElement(this); }
19
55
  render() {
20
- return (index.h(index.Host, { key: 'c03f50379252ba13992bc3d021989ac07dba9f79', "data-version": _package.version }, index.h("button", { key: 'e97a86bb6e1eace89a1a3a78fb231047f065dd5e', class: "btn btn-icon-close", type: "button" }, index.h("post-icon", { key: 'aca522d4c251a8183c91c2bd4d810d0716a2fe13', "aria-hidden": "true", name: "closex" }), index.h("span", { key: '6873522961b1683d1261163b07ee022f93eed836', class: "visually-hidden" }, index.h("slot", { key: 'bf4b13356c9a0164f1481d1fedc3a78a53e5f8e0' })))));
56
+ return (index.h(index.Host, { key: 'cfa55f799fdf9ad0f3ac1eb296e063b5001de997', "data-version": _package.version }, index.h("button", { key: '7c8a084f6d7278329ddfb5fc4b2b8f992a185666', class: "btn btn-icon-close", type: "button" }, index.h("post-icon", { key: 'fc74ccb4f0c4c091a02a41cdef918d6c3b065c8c', "aria-hidden": "true", name: "closex" }), index.h("span", { key: '98478b013714df6d82c6c2f533ac8ecd2abae778', class: "visually-hidden" }, index.h("slot", { key: '109e2bca4436986dd037d8c29088cc79395bc200' })))));
21
57
  }
58
+ get host() { return index.getElement(this); }
22
59
  };
60
+ PostClosebutton.style = PostClosebuttonStyle0;
23
61
 
24
62
  /* eslint-disable no-undefined,no-param-reassign,no-shadow */
25
63
 
@@ -155,51 +193,10 @@ function throttle (delay, callback, options) {
155
193
  return wrapper;
156
194
  }
157
195
 
158
- const focusableSelector = `:where(${[
159
- 'button',
160
- 'input:not([type="hidden"])',
161
- '[tabindex]',
162
- 'select',
163
- 'textarea',
164
- '[contenteditable]',
165
- 'a[href]',
166
- 'iframe',
167
- 'audio[controls]',
168
- 'video[controls]',
169
- 'area[href]',
170
- 'details > summary:first-of-type',
171
- ].join(',')})`;
172
- const focusDisablingSelector = `:where(${[
173
- '[inert]',
174
- '[inert] *',
175
- ':disabled',
176
- 'dialog:not([open]) *',
177
- '[popover]:not(:popover-open) *',
178
- 'details:not([open]) > *:not(details > summary:first-of-type)',
179
- 'details:not([open]) > *:not(details > summary:first-of-type) *',
180
- '[tabindex^="-"]',
181
- '[hidden]:not([hidden="false"])',
182
- ].join(',')})`;
183
- function getFocusableChildren(element) {
184
- const focusableChildren = element.querySelectorAll(`${focusableSelector}:not(${focusDisablingSelector})`);
185
- const visibleFocusableChildren = Array.from(focusableChildren).filter(child => {
186
- const style = window.getComputedStyle(child.parentElement);
187
- return style.display !== 'none' && style.visibility !== 'hidden';
188
- });
189
- return visibleFocusableChildren;
190
- }
191
-
192
- const postHeaderCss = "*,::before,::after{box-sizing:border-box}:host{z-index:1020;position:relative;--global-header-top:calc( (var(--post-global-header-height) - var(--post-global-header-reduced-height)) * -1 );--local-header-top:calc( -1 * (var(--post-local-header-height) - var(--post-main-navigation-height)) + var(--post-global-header-reduced-height) );--logo-height:calc(var(--post-global-header-height) - var(--post-header-scroll-top));--global-controls-top:calc(min((var(--post-header-scroll-top) / 4), 20px) * -1)}:host:has(.global-sub>*:not(.logo):focus-within),:host:has(.local-sub:focus-within){--global-header-top:0;--local-header-top:var(--post-global-header-height);--logo-height:var(--post-global-header-height);--global-controls-top:0}:host(:not(:has([slot=title]))) .local-header{padding-block-start:0}:host(:not(:has([slot=title]))) .local-sub{display:none}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;position:sticky;padding-inline:4px;height:var(--post-global-header-height)}@media screen and (max-width: 1023.98px){.global-header{z-index:3;inset-block-start:0}}@media screen and (min-width: 1024px){.global-header{z-index:5;padding-inline-end:12px;inset-block-start:var(--global-header-top);transition:inset-block-start .2s ease-in-out}}.global-sub{display:flex;align-items:center;gap:24px}@media screen and (min-width: 1024px){.global-sub:not(:has(.logo)){position:relative;transition:inset-block-start .2s ease-in-out;inset-block-start:var(--global-controls-top)}}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--post-global-header-height);width:var(--post-global-header-height);min-height:var(--post-global-header-reduced-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{transition:height .2 ease-in-out;height:var(--logo-height)}}::slotted(ul){margin-block:0 !important;list-style:none;display:flex;padding-inline-start:0;gap:1rem;flex-shrink:0 !important}.local-header{display:flex;position:sticky;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:var(--post-local-header-min-height);background:#fff;transition:box-shadow .2s ease-in-out}.local-header::after{content:\"\";position:absolute;width:100%;height:1px;background-color:#e1e0dc;inset-block-end:-1px;z-index:1}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.local-header::after{background-color:Highlight}}@media screen and (min-width: 1024px){.local-header{z-index:3;inset-block-start:var(--local-header-top);padding-block-start:18px;box-shadow:var(--post-device-elevation-300);transition:box-shadow .2s ease-in-out,inset-block-start .2s ease-in-out}}@media screen and (max-width: 1023.98px){.local-header{z-index:2;inset-block-start:var(--post-global-header-height);padding-block:8px;flex-wrap:wrap;gap:12px}.local-header.local-header-mobile-extended::after{inset-block-end:0}.local-header:not(.local-header-mobile-extended){box-shadow:var(--post-device-elevation-300)}}.local-sub{margin-inline-end:8px}@media screen and (max-width: 1023.98px){.local-sub{margin-inline-end:4px}}::slotted(.list-inline){margin:0 !important;z-index:3 !important;position:relative !important}@media screen and (min-width: 1024px){.mobile-toggle{display:none}}.navigation{width:100%}@media screen and (min-width: 1024px){.navigation{inset-block-start:var(--post-global-header-reduced-height)}.navigation::before{display:block;content:\"\";position:absolute;inset:0;z-index:2;background:#fff}}@media screen and (max-width: 1023.98px){.navigation{position:sticky;z-index:1;inset-inline:0;inset-block-start:var(--post-header-height)}.mobile-menu{background-color:#fafafa}::slotted(post-mainnavigation),.navigation-footer{display:none;flex-direction:column;padding-block:16px 24px;padding-inline:32px}.navigation.extended ::slotted(post-mainnavigation),.navigation.extended .navigation-footer{display:flex}.navigation.extended>div{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;height:calc(min(var(--header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height))}.navigation.extended.megadropdown-open>div{overflow-y:hidden}.navigation.extended ::slotted(post-mainnavigation){flex-grow:1 !important}::slotted(post-mainnavigation){gap:32px}.navigation-footer{background-color:#f0efed;gap:24px}}@media screen and (max-width: 599.98px){::slotted(post-mainnavigation),.navigation-footer{padding-inline:16px}}";
196
+ const postHeaderCss = "*,::before,::after{box-sizing:border-box}:host{z-index:1020;position:relative;--global-header-top:calc( (var(--post-global-header-height) - var(--post-global-header-reduced-height)) * -1 );--local-header-top:calc( -1 * (var(--post-local-header-height) - var(--post-main-navigation-height)) + var(--post-global-header-reduced-height) );--logo-height:calc(var(--post-global-header-height) - var(--post-header-scroll-top, 0px));--global-controls-top:calc(min((var(--post-header-scroll-top) / 4), 20px) * -1)}:host:has(.global-sub>*:not(.logo):focus-within),:host:has(.local-sub:focus-within){--global-header-top:0;--local-header-top:var(--post-global-header-height);--logo-height:var(--post-global-header-height);--global-controls-top:0}:host(:not(:has([slot=title]))) .local-header{padding-block-start:0}:host(:not(:has([slot=title]))) .local-sub{display:none}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;position:sticky;padding-inline:4px;height:var(--post-global-header-height)}@media screen and (max-width: 1023.98px){.global-header{z-index:3;inset-block-start:0}}@media screen and (min-width: 1024px){.global-header{z-index:5;padding-inline-end:12px;inset-block-start:var(--global-header-top);transition:inset-block-start .2s ease-in-out}}.global-sub{display:flex;align-items:center;gap:24px}@media screen and (min-width: 1024px){.global-sub:not(:has(.logo)){position:relative;transition:inset-block-start .2s ease-in-out;inset-block-start:var(--global-controls-top)}}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--post-global-header-height);width:var(--post-global-header-height);min-height:var(--post-global-header-reduced-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{transition:height .2 ease-in-out;height:var(--logo-height)}}::slotted(ul){margin-block:0 !important;list-style:none;display:flex;padding-inline-start:0;gap:1rem;flex-shrink:0 !important}.local-header{display:flex;position:sticky;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:var(--post-local-header-min-height);background:#fff;transition:box-shadow .2s ease-in-out}.local-header::after{content:\"\";position:absolute;width:100%;height:1px;background-color:#e1e0dc;inset-block-end:-1px;z-index:1}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.local-header::after{background-color:Highlight}}@media screen and (min-width: 1024px){.local-header{z-index:3;inset-block-start:var(--local-header-top);padding-block-start:18px;box-shadow:var(--post-device-elevation-300);transition:box-shadow .2s ease-in-out,inset-block-start .2s ease-in-out}}@media screen and (max-width: 1023.98px){.local-header{z-index:2;inset-block-start:var(--post-global-header-height);padding-block:8px;flex-wrap:wrap;gap:12px}.local-header.local-header-mobile-extended::after{inset-block-end:0}.local-header:not(.local-header-mobile-extended){box-shadow:var(--post-device-elevation-300)}}.local-sub{margin-inline-end:8px}@media screen and (max-width: 1023.98px){.local-sub{margin-inline-end:4px}}::slotted(.list-inline){margin:0 !important;z-index:3 !important;position:relative !important}@media screen and (min-width: 1024px){.mobile-toggle{display:none}}.navigation{width:100%}@media screen and (min-width: 1024px){.navigation{inset-block-start:var(--post-global-header-reduced-height)}.navigation::before{display:block;content:\"\";position:absolute;inset:0;z-index:2;background:#fff}}@media screen and (max-width: 1023.98px){.navigation{position:sticky;z-index:1;inset-inline:0;inset-block-start:var(--post-header-height)}.mobile-menu{background-color:#fafafa}::slotted(post-mainnavigation),.navigation-footer{display:none;flex-direction:column;padding-block:16px 24px;padding-inline:32px}.navigation.extended ::slotted(post-mainnavigation),.navigation.extended .navigation-footer{display:flex}.navigation.extended>div{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;height:calc(min(var(--header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height))}.navigation.extended.megadropdown-open>div{overflow-y:hidden}.navigation.extended ::slotted(post-mainnavigation){flex-grow:1 !important}::slotted(post-mainnavigation){gap:32px}.navigation-footer{background-color:#f0efed;gap:24px}}@media screen and (max-width: 599.98px){::slotted(post-mainnavigation),.navigation-footer{padding-inline:16px}}";
193
197
  const PostHeaderStyle0 = postHeaderCss;
194
198
 
195
199
  const PostHeader = class {
196
- firstFocusableEl;
197
- lastFocusableEl;
198
- mobileMenu;
199
- mobileMenuAnimation;
200
- throttledResize = throttle(50, () => this.handleResize());
201
- scrollParentResizeObserver;
202
- localHeaderResizeObserver;
203
200
  get scrollParent() {
204
201
  const frozenScrollParent = document.querySelector('[data-post-scroll-locked]');
205
202
  if (frozenScrollParent)
@@ -214,7 +211,6 @@ const PostHeader = class {
214
211
  }
215
212
  return document.body;
216
213
  }
217
- get host() { return index.getElement(this); }
218
214
  lockBody(newValue, _oldValue, propName) {
219
215
  const scrollParent = this.scrollParent;
220
216
  const mobileMenuExtended = propName === 'mobileMenuExtended' ? newValue : this.mobileMenuExtended;
@@ -227,13 +223,18 @@ const PostHeader = class {
227
223
  this.host.removeEventListener('keydown', this.keyboardHandler);
228
224
  }
229
225
  }
230
- /**
231
- * An event emitted when the device has changed
232
- */
233
- postUpdateDevice;
234
226
  constructor(hostRef) {
235
227
  index.registerInstance(this, hostRef);
236
228
  this.postUpdateDevice = index.createEvent(this, "postUpdateDevice", 7);
229
+ this.throttledResize = throttle(50, () => this.handleResize());
230
+ this.megedropdownStateHandler = (event) => {
231
+ eventGuard.eventGuard(this.host, event, {
232
+ targetLocalName: 'post-megadropdown',
233
+ delegatorSelector: 'post-header',
234
+ }, () => {
235
+ this.megadropdownOpen = event.detail.isVisible;
236
+ });
237
+ };
237
238
  this.device = null;
238
239
  this.mobileMenuExtended = false;
239
240
  this.megadropdownOpen = false;
@@ -255,10 +256,12 @@ const PostHeader = class {
255
256
  document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
256
257
  this.host.addEventListener('click', this.handleLinkClick);
257
258
  this.handleResize();
258
- this.handleScrollEvent();
259
259
  this.handleScrollParentResize();
260
260
  this.lockBody(false, this.mobileMenuExtended, 'mobileMenuExtended');
261
261
  }
262
+ componentWillRender() {
263
+ this.handleScrollEvent();
264
+ }
262
265
  componentDidRender() {
263
266
  this.getFocusableElements();
264
267
  this.handleLocalHeaderResize();
@@ -304,14 +307,6 @@ const PostHeader = class {
304
307
  });
305
308
  }
306
309
  }
307
- megedropdownStateHandler = (event) => {
308
- eventGuard.eventGuard(this.host, event, {
309
- targetLocalName: 'post-megadropdown',
310
- delegatorSelector: 'post-header',
311
- }, () => {
312
- this.megadropdownOpen = event.detail.isVisible;
313
- });
314
- };
315
310
  // Get all the focusable elements in the post-header mobile menu
316
311
  getFocusableElements() {
317
312
  // Get elements in the correct order (different as the DOM order)
@@ -423,8 +418,9 @@ const PostHeader = class {
423
418
  return (index.h("div", { class: navigationClasses.join(' '), style: { '--header-navigation-current-inset': `${mobileMenuScrollTop}px` } }, index.h("div", { class: "mobile-menu", ref: el => (this.mobileMenu = el) }, index.h("slot", { name: "post-mainnavigation" }), (this.device === 'mobile' || this.device === 'tablet') && (index.h("div", { class: "navigation-footer" }, index.h("slot", { name: "meta-navigation" }), index.h("slot", { name: "post-language-switch" }))))));
424
419
  }
425
420
  render() {
426
- return (index.h(index.Host, { key: 'd4e9cc7d4e61f9c6223651b73fdab93e44f868f2', version: _package.version }, index.h("div", { key: 'be40a49df865621d9a31808d468a2bb342803600', class: "global-header" }, index.h("div", { key: '776d797b9235211bd283fb0ecb29722f2776f2cd', class: "global-sub" }, index.h("div", { key: '3e89049f43d0de844674db985c3c9e55d510f054', class: "logo" }, index.h("slot", { key: 'c96d915df7930d15c316e8761c0cf24ed6b44b95', name: "post-logo" }))), index.h("div", { key: '8aa06d67efef853e2a913c23703a73e38f2ec779', class: "global-sub" }, this.device === 'desktop' && index.h("slot", { key: 'cdd0b21cd9c6be0ec5a3aeb29b3b29b3034897a0', name: "meta-navigation" }), index.h("slot", { key: 'da4c5e8c6db482b031ba3b7ae1cf91f112bda75f', name: "global-controls" }), this.device === 'desktop' && index.h("slot", { key: '8980fdfa5f5e90d3786b5727ff6a9368dea709c6', name: "post-language-switch" }), index.h("div", { key: '013e2ad6b5bfd6b61f42b1d6c33c9ac6f0af98c0', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, index.h("slot", { key: 'cdac00dcf2cfb182bc8cefe0181054fac65c64be', name: "post-togglebutton" })))), index.h("div", { key: '0bdaa1b3fe2b9a460c7437b950afe8ce4c2237af', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, index.h("slot", { key: '1adc944fce891f85deb00dd40ad58dc0402491a9', name: "title" }), index.h("div", { key: '70f9a42f940b231a6e0dd89ee8e67d34f3b98eb6', class: "local-sub" }, index.h("slot", { key: 'd0106f5ec6ed548e1dbd5ca7f78b1ac5bcf5d2d4', name: "local-controls" }), index.h("slot", { key: '62e91cc83b232238ac3dcc1166f4a006754c95c9' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
421
+ return (index.h(index.Host, { key: 'd8b43333c00a612a3a37479750874a1efaf6a855', "data-version": _package.version }, index.h("div", { key: 'b270fb139cc8730a774785c5535fb3bcdd60c59c', class: "global-header" }, index.h("div", { key: 'b3161c4b26a1be4707fa6c7360e6779547b7ab30', class: "global-sub" }, index.h("div", { key: '44ecddd8f91c86d1af0075718b63e6bf034a25b7', class: "logo" }, index.h("slot", { key: 'de5208255d0cf59707092c984b0fec33d317d38d', name: "post-logo" }))), index.h("div", { key: '199dc1da25d817b488d5c3402779130c360e0f9a', class: "global-sub" }, this.device === 'desktop' && index.h("slot", { key: '1337f13908a826022a1bf2a8a1a2e2bfe323900b', name: "meta-navigation" }), index.h("slot", { key: '2b6fbbcedc8f1803e388fdbcbcd637d6a2605c87', name: "global-controls" }), this.device === 'desktop' && index.h("slot", { key: '2861c1a0f7639678edd0f584d8f98665fcf84fb0', name: "post-language-switch" }), index.h("div", { key: '06e2d9a4abe3a804f25ffa303f6f9ed5b7c01b60', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, index.h("slot", { key: '772407e65d3d8f642c1e80fd8cb42b425eed4848', name: "post-togglebutton" })))), index.h("div", { key: '7b7a3da2a8cc848632c2e45badc52e23958a6faa', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, index.h("slot", { key: '96e4d68bfe0504cc09d57a8b11dabb9139d780f6', name: "title" }), index.h("div", { key: '240fae6f0f9d2a192a7b94110a9c4571856de90a', class: "local-sub" }, index.h("slot", { key: '14fd77af7dca02157248bf95d7d253d5f14e9f1e', name: "local-controls" }), index.h("slot", { key: '6dfac25cb64401123638ddfc6b94bbe89ae78249' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
427
422
  }
423
+ get host() { return index.getElement(this); }
428
424
  static get watchers() { return {
429
425
  "device": ["lockBody"],
430
426
  "mobileMenuExtended": ["lockBody"]
@@ -456,8 +452,6 @@ const PostIcon = class {
456
452
  this.rotate = null;
457
453
  this.scale = null;
458
454
  }
459
- isSSR = typeof window === 'undefined';
460
- get host() { return index.getElement(this); }
461
455
  validateAnimation(newValue = this.animation) {
462
456
  if (newValue !== undefined)
463
457
  index$1.checkEmptyOrOneOf(this, 'animation', ANIMATION_KEYS);
@@ -488,7 +482,7 @@ const PostIcon = class {
488
482
  // the first definition object which defines a domain, will be used to set the domain of the file url
489
483
  // the first definition object which defines a slug, will be used to set the slug of the file url
490
484
  const urlDefinitions = [this.getUrlDefinition(this.base, 'both')];
491
- if (!this.isSSR) {
485
+ if (breakpoints.IS_BROWSER) {
492
486
  urlDefinitions.push(this.getUrlDefinition(document.head
493
487
  .querySelector('meta[name="design-system-settings"][data-post-icon-base]')
494
488
  ?.getAttribute('data-post-icon-base'), 'relative'));
@@ -552,8 +546,9 @@ const PostIcon = class {
552
546
  this.validateAnimation();
553
547
  }
554
548
  render() {
555
- return (index.h(index.Host, { key: '60f27d2a489e5649aa6ff06a771a146f1b83480d', "data-version": _package.version }, index.h("span", { key: 'd1e7fe17b1c4b522bf091f248dfe51f838b87896', style: this.getStyles() })));
549
+ return (index.h(index.Host, { key: 'b3c3efcc03f423a248e231b4b4c5d79c93ae25a6', "data-version": _package.version }, index.h("span", { key: 'd73d4df11fcccb96d5346f3f8c3e18602bb8d484', style: this.getStyles() })));
556
550
  }
551
+ get host() { return index.getElement(this); }
557
552
  static get watchers() { return {
558
553
  "animation": ["validateAnimation"],
559
554
  "base": ["validateBase"],
@@ -566,7 +561,7 @@ const PostIcon = class {
566
561
  };
567
562
  PostIcon.style = PostIconStyle0;
568
563
 
569
- const postLanguageOptionCss = "/*!\n * Copyright 2021 by Swiss Post, Information Technology\n */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 a{color:var(--post-scheme-color-surface-default-fg);text-decoration:none}post-language-option :is(a,button){cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:2px;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}@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}@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}post-language-option:where([variant=menu]) :is(a,button):hover{color:#fff;background-color:#504f4b}";
564
+ 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 a{color:var(--post-scheme-color-surface-default-fg);text-decoration:none}post-language-option :is(a,button){cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:2px;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}@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}@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}post-language-option:where([variant=menu]) :is(a,button):hover{color:#fff;background-color:#504f4b}";
570
565
  const PostLanguageOptionStyle0 = postLanguageOptionCss;
571
566
 
572
567
  const PostLanguageOption = class {
@@ -580,7 +575,6 @@ const PostLanguageOption = class {
580
575
  this.name = undefined;
581
576
  this.url = undefined;
582
577
  }
583
- get host() { return index.getElement(this); }
584
578
  validateCode() {
585
579
  checkType.checkType(this, 'code', 'string');
586
580
  }
@@ -605,14 +599,6 @@ const PostLanguageOption = class {
605
599
  this.postLanguageOptionInitiallyActive.emit(this.code);
606
600
  }
607
601
  }
608
- /**
609
- * An event emitted when the language option is clicked. The payload is the ISO 639 code of the language.
610
- */
611
- postChange;
612
- /**
613
- * An event emitted when the language option is initially active. The payload is the ISO 639 code of the language.
614
- */
615
- postLanguageOptionInitiallyActive;
616
602
  /**
617
603
  * Selects the language option programmatically.
618
604
  */
@@ -633,8 +619,9 @@ const PostLanguageOption = class {
633
619
  this.emitChange();
634
620
  }
635
621
  };
636
- return (index.h(index.Host, { key: '404caa6a507637810b672c5decf4e3af300733ac', "data-version": _package.version }, this.url ? (index.h("a", { "aria-current": this.active ? 'page' : undefined, "aria-label": this.name, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, index.h("slot", null))) : (index.h("button", { "aria-current": this.active ? 'true' : undefined, "aria-label": this.name, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, index.h("slot", null)))));
622
+ return (index.h(index.Host, { key: '3a6b9a8f63c90f431a13c1df529a2e4716ede5d8', "data-version": _package.version }, this.url ? (index.h("a", { "aria-current": this.active ? 'page' : undefined, "aria-label": this.name, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, index.h("slot", null))) : (index.h("button", { "aria-current": this.active ? 'true' : undefined, "aria-label": this.name, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, index.h("slot", null)))));
637
623
  }
624
+ get host() { return index.getElement(this); }
638
625
  static get watchers() { return {
639
626
  "code": ["validateCode"],
640
627
  "active": ["validateActiveProp"],
@@ -652,12 +639,15 @@ const PostLanguageSwitchStyle0 = postLanguageSwitchCss;
652
639
  const PostLanguageSwitch = class {
653
640
  constructor(hostRef) {
654
641
  index.registerInstance(this, hostRef);
642
+ this.menuId = `p${index_browser.nanoid(11)}`;
655
643
  this.caption = undefined;
656
644
  this.description = undefined;
657
645
  this.variant = 'list';
658
646
  this.activeLang = undefined;
659
647
  }
660
- get host() { return index.getElement(this); }
648
+ get languageOptions() {
649
+ return Array.from(this.host.querySelectorAll('post-language-option'));
650
+ }
661
651
  validateCaption() {
662
652
  checkType.checkType(this, 'caption', 'string');
663
653
  }
@@ -675,7 +665,6 @@ const PostLanguageSwitch = class {
675
665
  // Initially set variants and active language
676
666
  // Handles cases where the language-switch is rendered after the language-options have been rendered
677
667
  this.updateChildrenVariant();
678
- this.updateActiveLanguage();
679
668
  }
680
669
  /**
681
670
  * Listen for the postChange event and guard it to run only for events originating from a <post-language-option> element.
@@ -706,34 +695,22 @@ const PostLanguageSwitch = class {
706
695
  handleInitiallyActive(event) {
707
696
  this.activeLang = event.detail;
708
697
  }
709
- get languageOptions() {
710
- return this.host.querySelectorAll('post-language-option');
711
- }
712
- get activeLanguageOption() {
713
- return this.host.querySelector('post-language-option[active]:not([active="false"])');
714
- }
715
- handleSlotChange() {
716
- this.updateActiveLanguage();
717
- }
718
- updateActiveLanguage() {
719
- this.activeLang = this.activeLanguageOption.getAttribute('code');
720
- }
721
698
  // Update post-language-option variant to have the correct style
722
699
  updateChildrenVariant() {
723
700
  this.languageOptions.forEach(el => {
724
701
  el.setAttribute('variant', this.variant);
725
702
  });
726
703
  }
727
- menuId = `p${index_browser.nanoid(11)}`;
728
704
  renderList() {
729
- return (index.h(index.Host, { "data-version": _package.version, role: "list", "aria-label": this.caption }, index.h("div", { class: "post-language-switch-list", role: "group", "aria-label": this.description }, index.h("slot", { onSlotchange: () => this.handleSlotChange() }))));
705
+ return (index.h(index.Host, { "data-version": _package.version, role: "list", "aria-label": this.caption }, index.h("div", { class: "post-language-switch-list", role: "group", "aria-label": this.description }, index.h("slot", null))));
730
706
  }
731
707
  renderDropdown() {
732
- return (index.h(index.Host, { "data-version": _package.version }, index.h("post-menu-trigger", { for: this.menuId }, index.h("button", { class: "post-language-switch-trigger", "aria-label": this.description }, this.activeLang, index.h("post-icon", { "aria-hidden": "true", name: "chevrondown" }))), index.h("post-menu", { id: this.menuId, class: "post-language-switch-dropdown-container", "aria-label": this.caption }, index.h("slot", { onSlotchange: () => this.handleSlotChange() }))));
708
+ return (index.h(index.Host, { "data-version": _package.version }, index.h("post-menu-trigger", { for: this.menuId }, index.h("button", { class: "post-language-switch-trigger", "aria-label": this.description }, this.activeLang, index.h("post-icon", { "aria-hidden": "true", name: "chevrondown" }))), index.h("post-menu", { id: this.menuId, class: "post-language-switch-dropdown-container", "aria-label": this.caption }, index.h("slot", null))));
733
709
  }
734
710
  render() {
735
711
  return this.variant === 'list' ? this.renderList() : this.renderDropdown();
736
712
  }
713
+ get host() { return index.getElement(this); }
737
714
  static get watchers() { return {
738
715
  "caption": ["validateCaption"],
739
716
  "description": ["validateDescription"],
@@ -742,7 +719,7 @@ const PostLanguageSwitch = class {
742
719
  };
743
720
  PostLanguageSwitch.style = PostLanguageSwitchStyle0;
744
721
 
745
- const postListCss = "/*!\n * Copyright 2021 by Swiss Post, Information Technology\n */post-list{display:flex;flex-direction:column;gap:var(--post-list-title-gap, 0)}post-list>[role=list]{display:flex;flex-direction:column;gap:var(--post-list-item-gap, 0)}post-list:where([horizontal]:not([horizontal=false])){flex-direction:row;align-items:center}post-list:where([horizontal]:not([horizontal=false]))>[role=list]{flex-direction:row;align-items:center}post-list>.list-title.visually-hidden{width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}post-list>.list-title.visually-hidden:not(caption){position:absolute !important}";
722
+ 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{width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}post-list>.list-title.visually-hidden:not(caption){position:absolute !important}";
746
723
  const PostListStyle0 = postListCss;
747
724
 
748
725
  const PostList = class {
@@ -752,8 +729,6 @@ const PostList = class {
752
729
  this.titleHidden = false;
753
730
  this.horizontal = false;
754
731
  }
755
- get host() { return index.getElement(this); }
756
- titleEl;
757
732
  componentWillLoad() {
758
733
  /**
759
734
  * Get the id set on the host element or use a random id by default
@@ -769,8 +744,9 @@ const PostList = class {
769
744
  }
770
745
  }
771
746
  render() {
772
- return (index.h(index.Host, { key: '085a63d7b4cc85461f2c8fd0c7b9d9f48f42055a', "data-version": _package.version }, index.h("div", { key: 'd13a66ba16b71eff1a86666b04ca2f41957962e1', ref: el => (this.titleEl = el), id: this.titleId, class: `list-title${this.titleHidden ? ' visually-hidden' : ''}` }, index.h("slot", { key: '0270bcd71c8a3a34390b98b6374a1a2f06e0d606' })), index.h("div", { key: 'de04b08bf94900435c53f972c8fcd0798c8a5faf', role: "list", "aria-labelledby": this.titleId }, index.h("slot", { key: 'f7aa9976b3283ee4da3d32d84b36e2549c29e80f', name: "post-list-item" }))));
747
+ return (index.h(index.Host, { key: 'b003aa61735359b6a1d95aad8d29c609d5bb3c8b', "data-version": _package.version }, index.h("div", { key: '2f69a2c72dd357767735e10d16f1b7586da6d5a3', ref: el => (this.titleEl = el), id: this.titleId, class: `list-title${this.titleHidden ? ' visually-hidden' : ''}` }, index.h("slot", { key: '3982783d438519673a676323339a013d3edb84db' })), index.h("div", { key: 'b8a91c4430774f019cc46aa19393e2a1566204a5', role: "list", "aria-labelledby": this.titleId }, index.h("slot", { key: '378a51785c4d52df8ae422657a16e8295b405149', name: "post-list-item" }))));
773
748
  }
749
+ get host() { return index.getElement(this); }
774
750
  };
775
751
  PostList.style = PostListStyle0;
776
752
 
@@ -781,13 +757,13 @@ const PostListItem = class {
781
757
  constructor(hostRef) {
782
758
  index.registerInstance(this, hostRef);
783
759
  }
784
- get host() { return index.getElement(this); }
785
760
  connectedCallback() {
786
761
  this.host.setAttribute('slot', 'post-list-item');
787
762
  }
788
763
  render() {
789
- return (index.h(index.Host, { key: '9626999693fa26c4fb42db178e53099ea8a95c2e', role: "listitem", slot: "post-list-item", version: _package.version }, index.h("slot", { key: '5f2d0a626e9d09a44d4c20f3bc97a2c60ca77feb' })));
764
+ return (index.h(index.Host, { key: 'c826293ea2a7446bea2f5b223934b444655198a0', role: "listitem", slot: "post-list-item", version: _package.version }, index.h("slot", { key: 'b997f79da2fbc87fbc6a388c118a03c008ad2c23' })));
790
765
  }
766
+ get host() { return index.getElement(this); }
791
767
  };
792
768
  PostListItem.style = PostListItemStyle0;
793
769
 
@@ -799,7 +775,6 @@ const PostLogo = class {
799
775
  index.registerInstance(this, hostRef);
800
776
  this.url = undefined;
801
777
  }
802
- get host() { return index.getElement(this); }
803
778
  validateUrl() {
804
779
  index$1.checkEmptyOrUrl(this, 'url');
805
780
  }
@@ -815,252 +790,168 @@ const PostLogo = class {
815
790
  render() {
816
791
  const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
817
792
  const LogoTag = logoLink ? 'a' : 'span';
818
- return (index.h(index.Host, { key: '128604612a51624b537f30b0b9c91d9ea6b950be', "data-version": _package.version }, index.h(LogoTag, { key: '885f057200f9da839fd38cb7070f319f6c89793e', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, index.h("span", { key: 'bee12585bf74fe5c2ce8a644c540c86626295526', class: "description" }, index.h("slot", { key: 'e516075c5138cef9378d3dc7137eb6c28d02b279', onSlotchange: () => this.checkDescription() })), index.h("svg", { key: 'c0056463b93f7c0e5da07db4656d9c8dc9161c32', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, index.h("g", { key: '1dfc33886c9b1fb6cd3b08f448a89c11a6080598', id: "Logo" }, index.h("rect", { key: 'dd84426568259714379a92a3f56349c6b3220a61', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), index.h("polygon", { key: '56fa6445c184a41355a968365098b75387a16f48', fill: "#ff0000", points: "34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3" }), index.h("path", { key: 'f2abb1db77a2e795f477662453d7296a28882756', d: "M53.56234,31.10526c0,2.41272-1.99154,4.29475-4.51723,4.29475H45.2v-8.3h3.84511C51.66802,27.1,53.56234,28.78889,53.56234,31.10526z M50.69666,19H36v34h9.2V42.9h5.49666c6.75131,0,11.9971-5.15137,11.9971-11.8057C62.69376,24.39136,57.35099,19,50.69666,19z" }))))));
793
+ return (index.h(index.Host, { key: '7dee19302c0c560b29f09b1675135f10d41fc44a', "data-version": _package.version }, index.h(LogoTag, { key: '1d851ca305d1bfc24666b416ad5f210b96d39811', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, index.h("span", { key: 'cd75bd4040bc2f0d62e5cec2afc9529fa7c43c49', class: "description" }, index.h("slot", { key: 'caf63c4f823873181fa52cfb0cf38217b6a45823', onSlotchange: () => this.checkDescription() })), index.h("svg", { key: 'd41c14973b829eb35764c9e562fe449e65f410b4', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, index.h("g", { key: '90c52e528bf4fc8e075e6517c18a59686ffd39f6', id: "Logo" }, index.h("rect", { key: '50633d1110596123232f07272406ebd0a32ffce8', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), index.h("polygon", { key: '7a617412c094669a66914edf769fba9ee9448b83', 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" }), index.h("path", { key: '74213b21fad18ba6a1dbb07e0b0b7dcf4a89b855', 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" }))))));
819
794
  }
795
+ get host() { return index.getElement(this); }
820
796
  static get watchers() { return {
821
797
  "url": ["validateUrl"]
822
798
  }; }
823
799
  };
824
800
  PostLogo.style = PostLogoStyle0;
825
801
 
826
- const postMainnavigationCss = "post-mainnavigation post-list-item>a{text-decoration:none;border-radius:0}post-mainnavigation post-list-item post-megadropdown-trigger button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-align:start}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation post-list-item post-megadropdown-trigger button{background-color:ButtonFace !important}post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:Highlight !important}}post-mainnavigation post-list-item>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;outline-offset:-2px !important}post-mainnavigation .back-button post-icon{transform:rotate(180deg)}@media screen and (max-width: 1023.98px){post-mainnavigation .back-button{font-size:16px}}@media screen and (max-width: 599.98px){post-mainnavigation .back-button{font-size:14px}}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{content:\"\";mask-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m23.6 13.2-7.5 7.6-7.6-7.6.9-.9 6.6 6.6 6.6-6.6z'/%3E%3C/svg%3E\");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;height:24px;width:24px}@media (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}}@media screen and (min-width: 1024px){post-mainnavigation{display:block;overflow-x:hidden}post-mainnavigation nav{max-width:100%;background:#fff;max-height:var(--post-main-navigation-height);user-select:none;transition:margin 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{z-index:4;position:absolute;inset-block-end:0;overflow:hidden}post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;background:#fff;padding:16px;box-shadow:var(--post-device-elevation-500);line-height:100%;height:var(--post-main-navigation-height)}}@media screen and (min-width: 1024px)and (forced-colors: active),screen and (min-width: 1024px)and (-ms-high-contrast: active),screen and (min-width: 1024px)and (-ms-high-contrast: white-on-black){post-mainnavigation .left-scroll-button button,post-mainnavigation .right-scroll-button button{background-color:ButtonFace !important}post-mainnavigation .left-scroll-button button:hover,post-mainnavigation .right-scroll-button button:hover{background-color:Highlight !important}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button button post-icon,post-mainnavigation .right-scroll-button button post-icon{font-size:1rem}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button.d-none,post-mainnavigation .right-scroll-button.d-none{display:none}}@media screen and (min-width: 1024px){post-mainnavigation .left-scroll-button{inset-inline-start:0;padding-inline-end:2rem}}@media screen and (min-width: 1024px){post-mainnavigation .right-scroll-button{inset-inline-end:0;padding-inline-start:2rem}}@media screen and (min-width: 1024px){post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{position:sticky;padding-inline:12px;height:var(--post-main-navigation-height);gap:4px;font-size:16px;z-index:4}post-mainnavigation post-list-item>a .nav-el-active,post-mainnavigation post-list-item>button .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{position:absolute;opacity:1;text-align:center;width:100%;inset-inline-start:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-mainnavigation post-list-item>a.selected .nav-el-active,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item>button.selected .nav-el-active,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-mainnavigation post-list-item>a.selected .nav-el-inactive,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item>button.selected .nav-el-inactive,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}}@media screen and (min-width: 1024px)and (max-width: 599.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:12px;transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button.selected::after,post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-mainnavigation post-list-item post-megadropdown-trigger button.selected::after,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}}@media screen and (min-width: 1024px){post-mainnavigation post-megadropdown button:not(.btn-icon-close),post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-megadropdown button:not(.btn-icon-close)::before,post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-megadropdown button:not(.btn-icon-close).selected,post-mainnavigation post-megadropdown button:not(.btn-icon-close)[aria-expanded=true],post-mainnavigation post-megadropdown a.selected,post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover,post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::before,post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}}@media screen and (min-width: 1024px){post-mainnavigation [slot=back-button]{display:none}}@media screen and (max-width: 1023.98px){post-mainnavigation nav{transform:none !important}post-mainnavigation .left-scroll-button,post-mainnavigation .right-scroll-button{display:none}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-list-item>a::before,post-mainnavigation post-list-item>button::before,post-mainnavigation post-list-item post-megadropdown-trigger button::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-list-item>a:hover::before,post-mainnavigation post-list-item>button:hover::before,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}}post-mainnavigation .back-button .btn{padding-inline:0}";
802
+ const postMainnavigationCss = "post-mainnavigation post-list-item>a{text-decoration:none;border-radius:0}post-mainnavigation post-list-item post-megadropdown-trigger button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-align:start}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-mainnavigation post-list-item post-megadropdown-trigger button{background-color:ButtonFace !important}post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:Highlight !important}}post-mainnavigation post-list-item>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;outline-offset:-2px !important}post-mainnavigation .back-button post-icon{transform:rotate(180deg)}@media screen and (max-width: 1023.98px){post-mainnavigation .back-button{font-size:16px}}@media screen and (max-width: 599.98px){post-mainnavigation .back-button{font-size:14px}}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{content:\"\";mask-image:url(\"data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m23.6 13.2-7.5 7.6-7.6-7.6.9-.9 6.6 6.6 6.6-6.6z'/%3E%3C/svg%3E\");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;height:24px;width:24px}@media (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}}@media screen and (min-width: 1024px){post-mainnavigation{display:block;position:relative;height:var(--post-main-navigation-height);background:#fff;user-select:none}post-mainnavigation nav{flex:1 1 auto;overflow:hidden;scroll-behavior:smooth}post-mainnavigation .scroll-control{cursor:pointer;position:absolute;inset-block:0;z-index:5;padding:16px;background:#fff;box-shadow:var(--post-device-elevation-500);line-height:1}post-mainnavigation .scroll-control.scroll-left{inset-inline-start:0}post-mainnavigation .scroll-control.scroll-right{inset-inline-end:0}post-mainnavigation .scroll-control.d-none{display:none}post-mainnavigation .scroll-control post-icon{font-size:1rem}post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{position:sticky;padding-inline:12px;height:var(--post-main-navigation-height);gap:4px;font-size:16px;z-index:4}post-mainnavigation post-list-item>a .nav-el-active,post-mainnavigation post-list-item>button .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-active{font-weight:700;text-align:center;opacity:0}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{position:absolute;opacity:1;text-align:center;width:100%;inset-inline-start:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff;font-weight:700}post-mainnavigation post-list-item>a.selected .nav-el-active,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item>button.selected .nav-el-active,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-active,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-active{opacity:1}post-mainnavigation post-list-item>a.selected .nav-el-inactive,post-mainnavigation post-list-item>a[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item>button.selected .nav-el-inactive,post-mainnavigation post-list-item>button[aria-expanded=true] .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button.selected .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}}@media screen and (min-width: 1024px)and (max-width: 599.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{font-size:14px}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:12px;transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{width:calc(100% - 28px)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item post-megadropdown-trigger button::after{transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button.selected::after,post-mainnavigation post-list-item>button[aria-expanded=true]::after,post-mainnavigation post-list-item post-megadropdown-trigger button.selected::after,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]::after{transform:rotate(180deg)}}@media screen and (min-width: 1024px){post-mainnavigation post-megadropdown button:not(.btn-icon-close),post-mainnavigation post-megadropdown a{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-megadropdown button:not(.btn-icon-close)::before,post-mainnavigation post-megadropdown a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-megadropdown button:not(.btn-icon-close).selected,post-mainnavigation post-megadropdown button:not(.btn-icon-close)[aria-expanded=true],post-mainnavigation post-megadropdown a.selected,post-mainnavigation post-megadropdown a[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover,post-mainnavigation post-megadropdown a:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-megadropdown button:not(.btn-icon-close):hover::before,post-mainnavigation post-megadropdown a:hover::before{background-color:#504f4b}}@media screen and (min-width: 1024px){post-mainnavigation [slot=back-button]{display:none}}@media screen and (max-width: 1023.98px){post-mainnavigation nav{transform:none !important}post-mainnavigation .scroll-control{display:none}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative}post-mainnavigation post-list-item>a::before,post-mainnavigation post-list-item>button::before,post-mainnavigation post-list-item post-megadropdown-trigger button::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-expanded=true],post-mainnavigation post-list-item post-megadropdown-trigger button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true]{background-color:#050400;color:#fff}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{background-color:#504f4b;color:#fff}post-mainnavigation post-list-item>a:hover::before,post-mainnavigation post-list-item>button:hover::before,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::before{background-color:#504f4b}post-mainnavigation post-list-item>a .nav-el-inactive,post-mainnavigation post-list-item>button .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button .nav-el-inactive{display:none}post-mainnavigation>button::after,post-mainnavigation post-megadropdown-trigger button::after{transform:rotate(-90deg)}}post-mainnavigation .back-button .btn{padding-inline:0}";
827
803
  const PostMainnavigationStyle0 = postMainnavigationCss;
828
804
 
829
805
  const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
830
806
  const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
831
- const NAVIGATION_LIST_SELECTOR = 'post-list > [role="list"]:not(post-megadropdown *)';
832
- const NAVIGATION_ITEM_SELECTOR = 'post-list-item :is(a, button):not(post-megadropdown *)';
833
807
  const PostMainnavigation = class {
834
808
  constructor(hostRef) {
835
809
  index.registerInstance(this, hostRef);
836
810
  this.canScrollLeft = false;
837
811
  this.canScrollRight = false;
838
- this.translationAmount = 0;
839
- }
840
- header;
841
- navbar;
842
- rightScrollButton;
843
- leftScrollButton;
844
- scrollRepeatInterval;
845
- navbarDisableTimer;
846
- resizeObserver;
847
- mutationObserver = new MutationObserver(async (mutations) => {
848
- // Wait for all elements to be hydrated
849
- await Promise.all(mutations
850
- .flatMap((mutation) => Array.from(mutation.addedNodes))
851
- .map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
852
- // Recalculate scrollability after DOM changes
853
- this.checkScrollability();
854
- });
855
- get host() { return index.getElement(this); }
856
- /**
857
- * Update navbar translation when 'translateAmount' changes and recalculate scrollability
858
- */
859
- onTranslateAmountChanges(value) {
860
- this.navbar.style.marginInlineStart = `-${value}px`;
861
- this.checkScrollability();
812
+ this.scrollRight = this.scrollRight.bind(this);
813
+ this.scrollLeft = this.scrollLeft.bind(this);
814
+ this.handleMutations = this.handleMutations.bind(this);
815
+ this.checkScrollability = this.checkScrollability.bind(this);
816
+ this.resizeObserver = new ResizeObserver(this.checkScrollability);
817
+ this.mutationObserver = new MutationObserver(this.handleMutations);
862
818
  }
863
- /**
864
- * Retrieves a reference to the closest 'post-header' element when the main navigation is added to the DOM.
865
- * This ensures that we can interact with the header for mobile menu toggling.
866
- */
867
- connectedCallback() {
868
- this.header = this.host.closest('post-header');
819
+ componentDidLoad() {
820
+ setTimeout(() => {
821
+ this.fixLayoutShift();
822
+ this.checkScrollability();
823
+ });
824
+ // Observe the navbar for size changes
825
+ this.resizeObserver.observe(this.navbar);
826
+ // Observe the navabar for mutation changes
827
+ this.mutationObserver.observe(this.navbar, { subtree: true, childList: true }); // Recheck scrollability when navigation list changes
828
+ // Ensure the scroll buttons are correctly displayed or hidden whenever the navbar is scrolled
829
+ this.navbar.addEventListener('scrollend', this.checkScrollability);
869
830
  }
870
831
  /**
871
- * Cleans up references and disconnects the MutationObserver when the main navigation is removed from the DOM.
832
+ * Disconnects observers and remove event listeners when the main navigation is removed from the DOM.
872
833
  */
873
834
  disconnectedCallback() {
874
- this.header = null;
875
835
  this.mutationObserver.disconnect();
876
- if (this.resizeObserver) {
877
- this.resizeObserver.disconnect();
878
- }
836
+ this.resizeObserver.disconnect();
837
+ this.navbar.removeEventListener('scrollend', this.checkScrollability);
879
838
  }
880
- componentDidLoad() {
881
- setTimeout(() => this.checkScrollability()); // Initial check to determine if scrolling is needed
882
- this.resizeObserver = new ResizeObserver(() => {
883
- this.checkScrollability();
839
+ /**
840
+ * Stops the repeated scrolling when the mouse button is released.
841
+ */
842
+ stopScrolling() {
843
+ if (this.scrollRepeatInterval)
844
+ clearInterval(this.scrollRepeatInterval);
845
+ }
846
+ async handleMutations(mutations) {
847
+ const addedNodes = mutations.flatMap((mutation) => {
848
+ return Array.from(mutation.addedNodes);
884
849
  });
885
- // Observe the navbar and the navigation list for size changes
886
- if (this.navbar) {
887
- this.resizeObserver.observe(this.navbar);
888
- const navList = this.navigationList;
889
- if (navList) {
890
- this.resizeObserver.observe(navList);
891
- }
892
- }
893
- this.mutationObserver.observe(this.navigationList, { subtree: true, childList: true }); // Recheck scrollability when navigation list changes
850
+ // Wait for all elements to be hydrated
851
+ await Promise.all(addedNodes.map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
894
852
  this.fixLayoutShift();
895
- // Handle focus changes and adjust scroll as needed
896
- this.navbar.addEventListener('focusin', e => this.adjustTranslation(e));
853
+ this.checkScrollability();
897
854
  }
898
- // Hack that duplicates navigation elements to fix the layout shift on active elements
855
+ get navigationItems() {
856
+ return Array.from(this.navbar.querySelectorAll(':is(a, button):not(post-megadropdown *)'));
857
+ }
858
+ /**
859
+ * Hack to fix the layout shift due to bold text on active elements
860
+ */
899
861
  fixLayoutShift() {
900
- // Select first level of main navigation elements, both the links and the megadropdown trigger buttons
901
- const children = this.host.querySelectorAll('nav > post-list > div > post-list-item > a, nav > post-list > div > post-list-item > post-megadropdown-trigger > button');
902
- // Update HTML so that the content is duplicated
903
- children.forEach(child => (child.innerHTML = `<span class="nav-el-active">${child.innerHTML}</span><span class="nav-el-inactive"aria-hidden="true">${child.innerHTML}</span>`));
862
+ this.navigationItems
863
+ .filter(item => !item.matches(':has(.nav-el-active)'))
864
+ .forEach(item => {
865
+ item.innerHTML = `
866
+ <span class="nav-el-active">${item.innerHTML}</span>
867
+ <span class="nav-el-inactive" aria-hidden="true">${item.innerHTML}</span>
868
+ `;
869
+ });
904
870
  }
905
871
  handleBackButtonClick() {
906
- if (this.header)
907
- this.header.toggleMobileMenu();
872
+ const header = this.navbar.closest('post-header');
873
+ if (header)
874
+ header.toggleMobileMenu();
908
875
  }
909
876
  /**
910
- * Moves focus on the navbar and adjusts scrolling to bring focused element into view.
877
+ * Returns whether scrolling is enabled in either the left or right direction.
911
878
  */
912
- adjustTranslation(e) {
913
- const focusedElement = e.target;
914
- if (!this.canScroll || !focusedElement.matches(NAVIGATION_ITEM_SELECTOR))
915
- return;
916
- // We need to move the element into the view before it is focused to avoid browser default behavior
917
- e.preventDefault();
918
- this.withoutTransition(() => {
919
- // Try scrolling in both directions, only the necessary translation will actually occur
920
- this.translateRightTo(focusedElement);
921
- this.translateLeftTo(focusedElement);
922
- focusedElement.focus();
923
- });
879
+ get canScroll() {
880
+ return this.canScrollLeft || this.canScrollRight;
924
881
  }
925
882
  /**
926
883
  * Checks if scrolling is possible in either direction (left or right) and updates the state accordingly.
927
884
  */
928
885
  checkScrollability() {
929
- const { scrollWidth, clientWidth } = this.navbar;
930
- const couldScroll = this.canScroll;
886
+ const { scrollLeft, scrollWidth, clientWidth } = this.navbar;
931
887
  if (scrollWidth === clientWidth) {
932
888
  // If scroll width equals client width, scrolling is disabled in both directions
933
889
  this.canScrollLeft = this.canScrollRight = false;
934
890
  }
935
891
  else {
936
- this.canScrollLeft = this.translationAmount > 0; // Scrolling left is possible if not at the start
937
- this.canScrollRight = clientWidth + this.translationAmount < scrollWidth; // Scrolling right is possible if not at the end
892
+ this.canScrollLeft = Math.floor(scrollLeft) > 0; // Scrolling left is possible if not at the start
893
+ this.canScrollRight = Math.ceil(clientWidth + scrollLeft) < scrollWidth; // Scrolling right is possible if not at the end
938
894
  }
939
- if (couldScroll && !this.canScroll) {
940
- this.withoutTransition(() => (this.translationAmount = 0));
941
- }
942
- }
943
- /**
944
- * Returns whether scrolling is enabled in either the left or right direction.
945
- */
946
- get canScroll() {
947
- return this.canScrollLeft || this.canScrollRight;
948
895
  }
949
896
  /**
950
897
  * Handles the scrolling behavior when a user clicks on the left or right scroll buttons.
951
898
  */
952
- handleScrollButtonClick(direction) {
953
- if (!this.canScroll)
899
+ handleScrollButtonClick(e, direction) {
900
+ if (!this.canScroll || e.button !== 0)
954
901
  return;
955
902
  // Disable interaction with the navbar during scrolling
956
- this.disableNavbar();
957
- // Perform the initial scroll action
958
- this.scroll(direction);
903
+ this.temporarilyDisableNavbar();
904
+ // Set up the correct scroll function
905
+ const scroll = direction === 'right' ? this.scrollRight : this.scrollLeft;
906
+ scroll();
959
907
  // Repeat the scrolling action while the button is held down
960
908
  this.scrollRepeatInterval = setInterval(() => {
961
- this.scroll(direction);
909
+ scroll();
962
910
  }, SCROLL_REPEAT_INTERVAL);
963
911
  }
964
- /**
965
- * Stops the repeated scrolling when the mouse button is released.
966
- */
967
- stopScrolling() {
968
- if (this.scrollRepeatInterval)
969
- clearInterval(this.scrollRepeatInterval);
970
- }
971
- scroll(direction) {
972
- const navigationItems = Array.from(this.navigationItems);
973
- if (direction === 'left')
974
- navigationItems.reverse();
975
- for (const item of navigationItems) {
976
- const couldScroll = direction === 'left' ? this.translateLeftTo(item, true) : this.translateRightTo(item, true);
977
- if (couldScroll)
978
- break;
912
+ scrollRight() {
913
+ const scrollRightLeftEdge = document
914
+ .querySelector('.scroll-right')
915
+ .getBoundingClientRect().left;
916
+ for (const navigationItem of this.navigationItems) {
917
+ const { right, width } = navigationItem.getBoundingClientRect();
918
+ // Scroll to the first navigation item that is less than 75% visible
919
+ const isThreeQuartersVisible = right - 0.25 * width < scrollRightLeftEdge;
920
+ if (!isThreeQuartersVisible) {
921
+ this.navbar.scrollBy({ left: right - scrollRightLeftEdge });
922
+ return;
923
+ }
979
924
  }
980
925
  }
981
- translateRightTo(navigationItem, skipSmallTranslation = false) {
982
- const listItem = navigationItem.closest('post-list-item');
983
- // Calculate the right edge position of the list item relative to the left of the screen
984
- const rightEdgePosition = listItem.offsetLeft + listItem.offsetWidth;
985
- // Calculate the last visible position on the screen, right before the right scroll button
986
- const lastVisiblePosition = this.host.clientWidth - this.rightScrollButton.clientWidth;
987
- // If the item is already fully visible, no translation is needed
988
- if (rightEdgePosition < lastVisiblePosition)
989
- return false;
990
- const translationIncrease = rightEdgePosition - lastVisiblePosition + 1; // + 1 because offset values are rounded
991
- // If the required scroll distance is too small (less than half the width of the item), avoid unnecessary scroll
992
- if (skipSmallTranslation && translationIncrease < listItem.clientWidth / 2)
993
- return false;
994
- // Calculate the maximum translation amount to prevent scrolling past the end of the content
995
- const maximumTranslation = this.navbar.scrollWidth - this.host.clientWidth;
996
- // Adjust the translation amount, ensuring it doesn't exceed the maximum scrollable area
997
- const { marginRight } = getComputedStyle(this.navigationList);
998
- this.translationAmount =
999
- Math.min(this.translationAmount + translationIncrease, maximumTranslation) +
1000
- parseInt(marginRight);
1001
- return true;
1002
- }
1003
- translateLeftTo(navigationItem, skipSmallTranslation = false) {
1004
- const listItem = navigationItem.closest('post-list-item');
1005
- // Get the left edge position of the list item relative to the left of the screen
1006
- const leftEdgePosition = listItem.offsetLeft;
1007
- // Calculate the first visible position on the screen to the left, right after the left scroll button
1008
- const firstVisiblePosition = this.leftScrollButton.clientWidth;
1009
- // If the item is already fully visible, no translation is needed
1010
- if (leftEdgePosition > firstVisiblePosition)
1011
- return false;
1012
- const translationDecrease = firstVisiblePosition - leftEdgePosition + 1; // + 1 because offset values are rounded
1013
- // If the required scroll distance is too small (less than half the width of the item), don't perform the scroll
1014
- if (skipSmallTranslation && translationDecrease < listItem.clientWidth / 2)
1015
- return false;
1016
- // Calculate the minimum allowed translation amount (no negative scrolling allowed)
1017
- const minimumTranslation = 0;
1018
- // Adjust the translation amount, ensuring it doesn't go below the minimum scrollable area
1019
- const { marginLeft } = getComputedStyle(this.navigationList);
1020
- this.translationAmount = Math.max(this.translationAmount - translationDecrease - parseInt(marginLeft), minimumTranslation);
1021
- return true;
1022
- }
1023
- /**
1024
- * Returns the navigation list container element
1025
- */
1026
- get navigationList() {
1027
- return this.navbar.querySelector(NAVIGATION_LIST_SELECTOR);
1028
- }
1029
- /**
1030
- * Returns the navigation items
1031
- */
1032
- get navigationItems() {
1033
- return this.navbar.querySelectorAll(NAVIGATION_ITEM_SELECTOR);
926
+ scrollLeft() {
927
+ const scrollLeftRightEdge = document
928
+ .querySelector('.scroll-left')
929
+ .getBoundingClientRect().right;
930
+ for (const navigationItem of this.navigationItems.reverse()) {
931
+ const { left, width } = navigationItem.getBoundingClientRect();
932
+ // Scroll to the first navigation item that is less than 75% visible
933
+ const isThreeQuartersVisible = left + 0.25 * width > scrollLeftRightEdge;
934
+ if (!isThreeQuartersVisible) {
935
+ this.navbar.scrollBy({ left: left - scrollLeftRightEdge });
936
+ return;
937
+ }
938
+ }
1034
939
  }
1035
940
  /**
1036
941
  * Temporarily disables interactions with the navbar during scrolling to prevent accidental clicks.
1037
942
  * Re-enables interactions after a brief delay to avoid blocking the user entirely.
1038
943
  */
1039
- disableNavbar() {
944
+ temporarilyDisableNavbar() {
1040
945
  if (this.navbarDisableTimer)
1041
946
  clearTimeout(this.navbarDisableTimer);
1042
- this.navbar.style.pointerEvents = 'none';
947
+ this.navbar.setAttribute('inert', '');
1043
948
  this.navbarDisableTimer = setTimeout(() => {
1044
- this.navbar.style.pointerEvents = 'initial';
949
+ this.navbar.removeAttribute('inert');
1045
950
  }, NAVBAR_DISABLE_DURATION);
1046
951
  }
1047
- /**
1048
- * Allows to translate the navbar without a transition
1049
- */
1050
- withoutTransition(callback) {
1051
- const transition = this.navbar.style.transition;
1052
- this.navbar.style.transition = 'none';
1053
- callback();
1054
- setTimeout(() => {
1055
- this.navbar.style.transition = transition;
1056
- });
1057
- }
1058
952
  render() {
1059
- return (index.h(index.Host, { key: 'e91995f96b3b795fe2ed5c79ee89257b5c8aec2a', slot: "post-mainnavigation", version: _package.version }, index.h("div", { key: '165c6efcf5e05984708de9e0abdaed130036816e', onClick: () => this.handleBackButtonClick(), class: "back-button" }, index.h("slot", { key: 'a894f4788fc85d2fb0d6480831af711871c3b9f4', name: "back-button" })), index.h("nav", { key: '11d276069f40676b0c3e2fb5e8426b5803bcdad2', ref: el => (this.navbar = el) }, index.h("slot", { key: '6070e3f75ccfa7dfaf22554802e6c43dd025830c' })), index.h("div", { key: '06aefb232bfa1d7cd053e33bf7150fe418e4239a', class: `left-scroll-button${this.canScrollLeft ? '' : ' d-none'}`, "aria-hidden": "true" }, index.h("button", { key: 'f16d493af4ca62cd64a06a27ff8f805039cc806f', type: "button", tabindex: "-1", ref: el => (this.leftScrollButton = el), onMouseDown: () => this.handleScrollButtonClick('left') }, index.h("post-icon", { key: '8a4d2fa0b90a571445b02fa4b157ca4a5ac5eb9b', "aria-hidden": "true", name: "chevronleft" }))), index.h("div", { key: '2e540a2b9c6e1c1a68be89f8ed8a3a4840083b02', class: `right-scroll-button${this.canScrollRight ? '' : ' d-none'}`, "aria-hidden": "true" }, index.h("button", { key: '1aafbe38dd159eedb4b8dcb72dd19a61348b603a', type: "button", tabindex: "-1", ref: el => (this.rightScrollButton = el), onMouseDown: () => this.handleScrollButtonClick('right') }, index.h("post-icon", { key: '72eccd291ba4a15bf64bf76f87398dddf7586bae', "aria-hidden": "true", name: "chevronright" })))));
953
+ return (index.h(index.Host, { key: '6cd850555585d87eb25e3f6892b8010f5e4d23d6', slot: "post-mainnavigation", version: _package.version }, index.h("div", { key: '3411008120d072920f4de0b71c9dc014748f1390', onClick: () => this.handleBackButtonClick(), class: "back-button" }, index.h("slot", { key: '2e3747380cb546bd6da77e5ffba2403586205a55', name: "back-button" })), index.h("div", { key: 'e9eedd836b3f679ba2861109db2d0811c1142677', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, index.h("post-icon", { key: '628511a2c1812a08828e1aa2b51f26ad01a5a2cf', "aria-hidden": "true", name: "chevronleft" })), index.h("nav", { key: '1b660d65e1984e8701a98a369046f391fd177338', ref: el => (this.navbar = el) }, index.h("slot", { key: '0eb35366ac0bd58509afd6a12f68c2b09396a497' })), index.h("div", { key: '11145ad6602e2df78d3c3f4643cc6e4e960775aa', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, index.h("post-icon", { key: '26e795cd00221dbfb1a7632453d0d48993584b0b', "aria-hidden": "true", name: "chevronright" }))));
1060
954
  }
1061
- static get watchers() { return {
1062
- "translationAmount": ["onTranslateAmountChanges"]
1063
- }; }
1064
955
  };
1065
956
  PostMainnavigation.style = PostMainnavigationStyle0;
1066
957
 
@@ -1071,28 +962,34 @@ const PostMegadropdown = class {
1071
962
  constructor(hostRef) {
1072
963
  index.registerInstance(this, hostRef);
1073
964
  this.postToggleMegadropdown = index.createEvent(this, "postToggleMegadropdown", 7);
965
+ this.handleClickOutside = (event) => {
966
+ if (this.device !== 'desktop')
967
+ return;
968
+ const target = event.target;
969
+ if (this.host.contains(target)) {
970
+ return;
971
+ }
972
+ if (target instanceof HTMLElement) {
973
+ const trigger = target.closest('post-megadropdown-trigger');
974
+ if (trigger) {
975
+ const targetDropdownId = trigger.getAttribute('for');
976
+ if (targetDropdownId !== this.host.id) {
977
+ return;
978
+ }
979
+ }
980
+ }
981
+ this.hide(false);
982
+ };
1074
983
  this.device = breakpoints.breakpoint.get('name');
1075
984
  this.isVisible = false;
1076
985
  this.animationClass = null;
1077
986
  }
1078
- firstFocusableEl;
1079
- lastFocusableEl;
1080
- get host() { return index.getElement(this); }
1081
- /** Tracks the currently active dropdown instance. */
1082
- static activeDropdown = null;
1083
987
  breakpointChange(e) {
1084
988
  this.device = e.detail;
1085
989
  if (this.device === 'desktop' && this.isVisible) {
1086
990
  this.animationClass = null;
1087
991
  }
1088
992
  }
1089
- /**
1090
- * Emits when the dropdown is shown or hidden.
1091
- * The event payload is an object.
1092
- * `isVisible` is true when the dropdown gets opened and false when it gets closed
1093
- * `focusParent` determines whether after the closing of the mega dropdown, the focus should go back to the trigger parent or naturally go to the next focusable element in the page
1094
- **/
1095
- postToggleMegadropdown;
1096
993
  disconnectedCallback() {
1097
994
  this.removeListeners();
1098
995
  window.removeEventListener('postBreakpoint:name', this.breakpointChange.bind(this));
@@ -1172,24 +1069,6 @@ const PostMegadropdown = class {
1172
1069
  this.removeListeners();
1173
1070
  }
1174
1071
  }
1175
- handleClickOutside = (event) => {
1176
- if (this.device !== 'desktop')
1177
- return;
1178
- const target = event.target;
1179
- if (this.host.contains(target)) {
1180
- return;
1181
- }
1182
- if (target instanceof HTMLElement) {
1183
- const trigger = target.closest('post-megadropdown-trigger');
1184
- if (trigger) {
1185
- const targetDropdownId = trigger.getAttribute('for');
1186
- if (targetDropdownId !== this.host.id) {
1187
- return;
1188
- }
1189
- }
1190
- }
1191
- this.hide(false);
1192
- };
1193
1072
  addListeners() {
1194
1073
  this.host.addEventListener('keydown', e => this.keyboardHandler(e));
1195
1074
  document.addEventListener('keyup', e => this.handleTabOutside(e));
@@ -1232,7 +1111,10 @@ const PostMegadropdown = class {
1232
1111
  const containerStyle = this.isVisible ? {} : { display: 'none' };
1233
1112
  return (index.h(index.Host, { key: '7426a12ebaeac0ce3b8402c3da4d5393daca059b', version: _package.version }, index.h("div", { key: 'd47b60c334577f5662f19912f12ce941b4b52d94', class: `megadropdown-container ${this.animationClass || ''}`, style: containerStyle, onAnimationEnd: () => this.handleAnimationEnd() }, index.h("div", { key: '2798f217b2b3e43c3c63072884bbbbe7d99ed62f', class: "megadropdown" }, index.h("slot", { key: 'b61f82bbc7f87f65d9b6957e7a4e5d6790b6dd00', name: "megadropdown-title" }), index.h("div", { key: 'f4996a819511cb59185faeedbdcec4be6e6f8a24', class: "megadropdown-content" }, index.h("slot", { key: '54f695c3b3d30a6a1aae7f7dc6f65f4d4d27de68' })), index.h("div", { key: 'b1334295c7d758e20c85b6c6c8cefc31dcf09e20', onClick: () => this.hide(true), class: "back-button" }, index.h("slot", { key: 'c4db69fa3207ce4cb47b725e37b1993820a2a64c', name: "back-button" })), index.h("div", { key: '68b22a3222382586fc749dec63e36edae84360c1', onClick: () => this.hide(true), class: "close-button" }, index.h("slot", { key: '8023b75c931a95dbd9552c1a713790e77e40f526', name: "close-button" }))))));
1234
1113
  }
1114
+ get host() { return index.getElement(this); }
1235
1115
  };
1116
+ /** Tracks the currently active dropdown instance. */
1117
+ PostMegadropdown.activeDropdown = null;
1236
1118
  PostMegadropdown.style = PostMegadropdownStyle0;
1237
1119
 
1238
1120
  const postMegadropdownTriggerCss = "post-megadropdown-trigger{width:100%;position:relative;z-index:3}";
@@ -1241,20 +1123,45 @@ const PostMegadropdownTriggerStyle0 = postMegadropdownTriggerCss;
1241
1123
  const PostMegadropdownTrigger = class {
1242
1124
  constructor(hostRef) {
1243
1125
  index.registerInstance(this, hostRef);
1126
+ /**
1127
+ * Reference to the slotted button within the trigger, if present.
1128
+ * Used to manage click and key events for mega dropdown control.
1129
+ */
1130
+ this.slottedButton = null;
1131
+ /**
1132
+ * Tracks whether this trigger's dropdown was expanded before a state change.
1133
+ * Used to determine if this trigger should handle focus when its dropdown closes.
1134
+ */
1135
+ this.wasExpanded = false;
1136
+ this.handleKeyDown = (event) => {
1137
+ if (event.key === 'Enter' || event.key === ' ') {
1138
+ event.preventDefault();
1139
+ this.handleToggle();
1140
+ if (this.megadropdown && !this.ariaExpanded) {
1141
+ setTimeout(() => this.megadropdown.focusFirst(), 100);
1142
+ }
1143
+ }
1144
+ };
1145
+ this.handleToggleMegadropdown = (event) => {
1146
+ eventGuard.eventGuard(this.host, event, { targetLocalName: 'post-megadropdown' }, () => {
1147
+ if (event.target.id === this.for) {
1148
+ this.ariaExpanded = event.detail.isVisible;
1149
+ // Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
1150
+ if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
1151
+ setTimeout(() => {
1152
+ this.slottedButton?.focus();
1153
+ }, 100);
1154
+ }
1155
+ this.wasExpanded = this.ariaExpanded;
1156
+ if (this.slottedButton) {
1157
+ this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
1158
+ }
1159
+ }
1160
+ });
1161
+ };
1244
1162
  this.for = undefined;
1245
1163
  this.ariaExpanded = false;
1246
1164
  }
1247
- get host() { return index.getElement(this); }
1248
- /**
1249
- * Reference to the slotted button within the trigger, if present.
1250
- * Used to manage click and key events for mega dropdown control.
1251
- */
1252
- slottedButton = null;
1253
- /**
1254
- * Tracks whether this trigger's dropdown was expanded before a state change.
1255
- * Used to determine if this trigger should handle focus when its dropdown closes.
1256
- */
1257
- wasExpanded = false;
1258
1165
  /**
1259
1166
  * Watch for changes to the `for` property to validate its type and ensure it is a string.
1260
1167
  * @param forValue - The new value of the `for` property.
@@ -1276,32 +1183,6 @@ const PostMegadropdownTrigger = class {
1276
1183
  console.warn(`No post-megadropdown found with ID: ${this.for}`);
1277
1184
  }
1278
1185
  }
1279
- handleKeyDown = (event) => {
1280
- if (event.key === 'Enter' || event.key === ' ') {
1281
- event.preventDefault();
1282
- this.handleToggle();
1283
- if (this.megadropdown && !this.ariaExpanded) {
1284
- setTimeout(() => this.megadropdown.focusFirst(), 100);
1285
- }
1286
- }
1287
- };
1288
- handleToggleMegadropdown = (event) => {
1289
- eventGuard.eventGuard(this.host, event, { targetLocalName: 'post-megadropdown' }, () => {
1290
- if (event.target.id === this.for) {
1291
- this.ariaExpanded = event.detail.isVisible;
1292
- // Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
1293
- if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
1294
- setTimeout(() => {
1295
- this.slottedButton?.focus();
1296
- }, 100);
1297
- }
1298
- this.wasExpanded = this.ariaExpanded;
1299
- if (this.slottedButton) {
1300
- this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
1301
- }
1302
- }
1303
- });
1304
- };
1305
1186
  componentDidLoad() {
1306
1187
  this.validateControlFor();
1307
1188
  // Check if the mega dropdown attached to the trigger is expanded or not
@@ -1324,41 +1205,68 @@ const PostMegadropdownTrigger = class {
1324
1205
  render() {
1325
1206
  return (index.h(index.Host, { key: '86b85efede8d9b19f3f0560f500f33f5e172177f', "data-version": _package.version, "tab-index": "-1" }, index.h("button", { key: '0f810e4c38bc4abf23ac60ab27b36d408e7ced0d' }, index.h("slot", { key: '2a522ac7e15ef8ac077b73cdebf629b89ea173c6' }))));
1326
1207
  }
1208
+ get host() { return index.getElement(this); }
1327
1209
  static get watchers() { return {
1328
1210
  "for": ["validateControlFor"]
1329
1211
  }; }
1330
1212
  };
1331
1213
  PostMegadropdownTrigger.style = PostMegadropdownTriggerStyle0;
1332
1214
 
1333
- const postMenuCss = "/*!\n * Copyright 2021 by Swiss Post, Information Technology\n */:host{display:block}post-popovercontainer{padding:var(--post-menu-padding);background-color:var(--post-menu-bg, #ffffff);border-color:var(--post-menu-bg, #ffffff)}.popover-container{display:flex;flex-direction:column}";
1215
+ const postMenuCss = ":host{display:block}post-popovercontainer{padding:var(--post-menu-padding);background-color:var(--post-menu-bg, #ffffff);border-color:var(--post-menu-bg, #ffffff)}.popover-container{display:flex;flex-direction:column}";
1334
1216
  const PostMenuStyle0 = postMenuCss;
1335
1217
 
1336
1218
  const PostMenu = class {
1337
1219
  constructor(hostRef) {
1338
1220
  index.registerInstance(this, hostRef);
1339
1221
  this.toggleMenu = index.createEvent(this, "toggleMenu", 7);
1222
+ this.lastFocusedElement = null;
1223
+ this.KEYCODES = {
1224
+ SPACE: ' ',
1225
+ ENTER: 'Enter',
1226
+ UP: 'ArrowUp',
1227
+ DOWN: 'ArrowDown',
1228
+ TAB: 'Tab',
1229
+ HOME: 'Home',
1230
+ END: 'End',
1231
+ ESCAPE: 'Escape',
1232
+ };
1233
+ this.handleKeyDown = (e) => {
1234
+ e.stopPropagation();
1235
+ if (e.key === this.KEYCODES.ESCAPE) {
1236
+ this.toggle(this.host);
1237
+ return;
1238
+ }
1239
+ if (Object.values(this.KEYCODES).includes(e.key)) {
1240
+ this.controlKeyDownHandler(e);
1241
+ }
1242
+ };
1243
+ this.handlePostToggle = (event) => {
1244
+ eventGuard.eventGuard(this.host, event, { targetLocalName: 'post-popovercontainer', delegatorSelector: 'post-menu' }, () => {
1245
+ this.isVisible = event.detail;
1246
+ this.toggleMenu.emit(this.isVisible);
1247
+ requestAnimationFrame(() => {
1248
+ if (this.isVisible) {
1249
+ this.lastFocusedElement = this.root?.activeElement;
1250
+ const menuItems = this.getSlottedItems();
1251
+ if (menuItems.length > 0) {
1252
+ menuItems[0].focus();
1253
+ }
1254
+ }
1255
+ else if (this.lastFocusedElement) {
1256
+ this.lastFocusedElement.focus();
1257
+ }
1258
+ });
1259
+ });
1260
+ };
1261
+ this.handleClick = (e) => {
1262
+ const target = e.target;
1263
+ if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
1264
+ this.toggle(this.host);
1265
+ }
1266
+ };
1340
1267
  this.placement = 'bottom';
1341
1268
  this.isVisible = false;
1342
1269
  }
1343
- popoverRef;
1344
- lastFocusedElement = null;
1345
- KEYCODES = {
1346
- SPACE: ' ',
1347
- ENTER: 'Enter',
1348
- UP: 'ArrowUp',
1349
- DOWN: 'ArrowDown',
1350
- TAB: 'Tab',
1351
- HOME: 'Home',
1352
- END: 'End',
1353
- ESCAPE: 'Escape',
1354
- };
1355
- get host() { return index.getElement(this); }
1356
- /**
1357
- * Emits when the menu is shown or hidden.
1358
- * The event payload is a boolean: `true` when the menu was opened, `false` when it was closed.
1359
- **/
1360
- toggleMenu;
1361
- root;
1362
1270
  connectedCallback() {
1363
1271
  this.root = getRoot.getRoot(this.host);
1364
1272
  this.host.addEventListener('keydown', this.handleKeyDown);
@@ -1409,40 +1317,6 @@ const PostMenu = class {
1409
1317
  console.error('hide: popoverRef is null or undefined');
1410
1318
  }
1411
1319
  }
1412
- handleKeyDown = (e) => {
1413
- e.stopPropagation();
1414
- if (e.key === this.KEYCODES.ESCAPE) {
1415
- this.toggle(this.host);
1416
- return;
1417
- }
1418
- if (Object.values(this.KEYCODES).includes(e.key)) {
1419
- this.controlKeyDownHandler(e);
1420
- }
1421
- };
1422
- handlePostToggle = (event) => {
1423
- eventGuard.eventGuard(this.host, event, { targetLocalName: 'post-popovercontainer', delegatorSelector: 'post-menu' }, () => {
1424
- this.isVisible = event.detail;
1425
- this.toggleMenu.emit(this.isVisible);
1426
- requestAnimationFrame(() => {
1427
- if (this.isVisible) {
1428
- this.lastFocusedElement = this.root?.activeElement;
1429
- const menuItems = this.getSlottedItems();
1430
- if (menuItems.length > 0) {
1431
- menuItems[0].focus();
1432
- }
1433
- }
1434
- else if (this.lastFocusedElement) {
1435
- this.lastFocusedElement.focus();
1436
- }
1437
- });
1438
- });
1439
- };
1440
- handleClick = (e) => {
1441
- const target = e.target;
1442
- if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
1443
- this.toggle(this.host);
1444
- }
1445
- };
1446
1320
  controlKeyDownHandler(e) {
1447
1321
  const menuItems = this.getSlottedItems();
1448
1322
  if (!menuItems.length) {
@@ -1489,8 +1363,9 @@ const PostMenu = class {
1489
1363
  .flatMap(el => Array.from(getFocusableChildren(el))));
1490
1364
  }
1491
1365
  render() {
1492
- return (index.h(index.Host, { key: 'a86276a1fefccbb1f2b50f1ad74dd98ddcbdae5d', "data-version": _package.version, role: "menu" }, index.h("post-popovercontainer", { key: 'a0b2a35714ba370b7a73d92d1d6c036aa7039aea', placement: this.placement, ref: e => (this.popoverRef = e) }, index.h("div", { key: '98da2e21f8e4b4e02b4c347bc4f9238edc635b77', class: "popover-container", part: "popover-container" }, index.h("slot", { key: 'd3060c46482c5f3179827b8996a9a4b24abf49fa' })))));
1366
+ return (index.h(index.Host, { key: 'dd3bbcbf568e529588bcf5c90b8c2d4d07d454fb', "data-version": _package.version, role: "menu" }, index.h("post-popovercontainer", { key: '17a24933ef087cc8699b00f7165fff33756da9a8', placement: this.placement, ref: e => (this.popoverRef = e) }, index.h("div", { key: '9ff3d687146c88cf153ea745abcaf7a3267be620', class: "popover-container", part: "popover-container" }, index.h("slot", { key: 'aff50800748410f6e2583690620c12e47b4c7a22' })))));
1493
1367
  }
1368
+ get host() { return index.getElement(this); }
1494
1369
  };
1495
1370
  PostMenu.style = PostMenuStyle0;
1496
1371
 
@@ -1500,16 +1375,20 @@ const PostMenuTriggerStyle0 = postMenuTriggerCss;
1500
1375
  const PostMenuTrigger = class {
1501
1376
  constructor(hostRef) {
1502
1377
  index.registerInstance(this, hostRef);
1378
+ /**
1379
+ * Reference to the slotted button within the trigger, if present.
1380
+ * Used to manage click and key events for menu control.
1381
+ */
1382
+ this.slottedButton = null;
1383
+ this.handleKeyDown = (e) => {
1384
+ if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
1385
+ e.preventDefault();
1386
+ this.handleToggle();
1387
+ }
1388
+ };
1503
1389
  this.for = undefined;
1504
1390
  this.ariaExpanded = false;
1505
1391
  }
1506
- get host() { return index.getElement(this); }
1507
- /**
1508
- * Reference to the slotted button within the trigger, if present.
1509
- * Used to manage click and key events for menu control.
1510
- */
1511
- slottedButton = null;
1512
- root;
1513
1392
  /**
1514
1393
  * Watch for changes to the `for` property to validate its type and ensure it is a string.
1515
1394
  * @param forValue - The new value of the `for` property.
@@ -1529,12 +1408,6 @@ const PostMenuTrigger = class {
1529
1408
  console.warn(`No post-menu found with ID: ${this.for}`);
1530
1409
  }
1531
1410
  }
1532
- handleKeyDown = (e) => {
1533
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
1534
- e.preventDefault();
1535
- this.handleToggle();
1536
- }
1537
- };
1538
1411
  connectedCallback() {
1539
1412
  this.root = getRoot.getRoot(this.host);
1540
1413
  }
@@ -1570,8 +1443,9 @@ const PostMenuTrigger = class {
1570
1443
  }
1571
1444
  }
1572
1445
  render() {
1573
- return (index.h(index.Host, { key: '84316d4a69c4231be636e5ff8971752d5af9bab2', "data-version": _package.version, "tab-index": "-1" }, index.h("slot", { key: 'd3091adcf7033c4dd25e49fa383ccb9773b2d226' })));
1446
+ return (index.h(index.Host, { key: '1b9589febc2976d17eed3363d91b4321473b7b5e', "data-version": _package.version, "tab-index": "-1" }, index.h("slot", { key: 'bec55f97274084ab4721dc085dc9e1c3a216c0a3' })));
1574
1447
  }
1448
+ get host() { return index.getElement(this); }
1575
1449
  static get watchers() { return {
1576
1450
  "for": ["validateControlFor"]
1577
1451
  }; }
@@ -3622,7 +3496,385 @@ const computePosition = (reference, floating, options) => {
3622
3496
  });
3623
3497
  };
3624
3498
 
3625
- (()=>{var c=class extends Event{oldState;newState;constructor(t,{oldState:o="",newState:r="",...i}={}){super(t,i),this.oldState=String(o||""),this.newState=String(r||"");}},R=new WeakMap;function A(e,t,o){R.set(e,setTimeout(()=>{R.has(e)&&e.dispatchEvent(new c("toggle",{cancelable:!1,oldState:t,newState:o}));},0));}var D=globalThis.ShadowRoot||function(){},z=globalThis.HTMLDialogElement||function(){},M=new WeakMap,p=new WeakMap,h=new WeakMap;function L(e){return h.get(e)||"hidden"}var b=new WeakMap;function O(e){let t=e.popoverTargetElement;if(!(t instanceof HTMLElement))return;let o=L(t);e.popoverTargetAction==="show"&&o==="showing"||e.popoverTargetAction==="hide"&&o==="hidden"||(o==="showing"?m(t,!0,!0):d(t,!1)&&(b.set(t,e),S(t)));}function d(e,t){return !(e.popover!=="auto"&&e.popover!=="manual"||!e.isConnected||t&&L(e)!=="showing"||!t&&L(e)!=="hidden"||e instanceof z&&e.hasAttribute("open")||document.fullscreenElement===e)}function N(e){return e?Array.from(p.get(e.ownerDocument)||[]).indexOf(e)+1:0}function V(e){let t=W(e),o=U(e);return N(t)>N(o)?t:o}function y(e){let t=p.get(e);for(let o of t||[])if(!o.isConnected)t.delete(o);else return o;return null}function v(e){return typeof e.getRootNode=="function"?e.getRootNode():e.parentNode?v(e.parentNode):e}function W(e){for(;e;){if(e instanceof HTMLElement&&e.popover==="auto"&&h.get(e)==="showing")return e;if(e=e.parentElement||v(e),e instanceof D&&(e=e.host),e instanceof Document)return}}function U(e){for(;e;){let t=e.popoverTargetElement;if(t instanceof HTMLElement)return t;if(e=e.parentElement||v(e),e instanceof D&&(e=e.host),e instanceof Document)return}}function G(e){let t=new Map,o=0,r=e.ownerDocument;for(let a of p.get(r)||[])t.set(a,o),o+=1;t.set(e,o),o+=1;let i=null;function l(a){let g=W(a);if(g===null)return null;let n=t.get(g);(i===null||t.get(i)<n)&&(i=g);}return l(e?.parentElement),i}function Q(e){return e.hidden||e instanceof D||(e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||e instanceof HTMLOptGroupElement||e instanceof HTMLOptionElement||e instanceof HTMLFieldSetElement)&&e.disabled||e instanceof HTMLInputElement&&e.type==="hidden"||e instanceof HTMLAnchorElement&&e.href===""?!1:typeof e.tabIndex=="number"&&e.tabIndex!==-1}function _(e){if(e.shadowRoot&&e.shadowRoot.delegatesFocus!==!0)return null;let t=e;t.shadowRoot&&(t=t.shadowRoot);let o=t.querySelector("[autofocus]");if(o)return o;{let l=t.querySelectorAll("slot");for(let a of l){let g=a.assignedElements({flatten:!0});for(let n of g){if(n.hasAttribute("autofocus"))return n;if(o=n.querySelector("[autofocus]"),o)return o}}}let r=e.ownerDocument.createTreeWalker(t,NodeFilter.SHOW_ELEMENT),i=r.currentNode;for(;i;){if(Q(i))return i;i=r.nextNode();}}function $(e){_(e)?.focus();}var H=new WeakMap;function S(e){if(!d(e,!1))return;let t=e.ownerDocument;if(!e.dispatchEvent(new c("beforetoggle",{cancelable:!0,oldState:"closed",newState:"open"}))||!d(e,!1))return;let o=!1;if(e.popover==="auto"){let i=e.getAttribute("popover"),l=G(e)||t;if(T(l,!1,!0),i!==e.getAttribute("popover")||!d(e,!1))return}y(t)||(o=!0),H.delete(e);let r=t.activeElement;e.classList.add(":popover-open"),h.set(e,"showing"),M.has(t)||M.set(t,new Set),M.get(t).add(e),$(e),e.popover==="auto"&&(p.has(t)||p.set(t,new Set),p.get(t).add(e),q(b.get(e),!0)),o&&r&&e.popover==="auto"&&H.set(e,r),A(e,"closed","open");}function m(e,t=!1,o=!1){if(!d(e,!0))return;let r=e.ownerDocument;if(e.popover==="auto"&&(T(e,t,o),!d(e,!0))||(q(b.get(e),!1),b.delete(e),o&&(e.dispatchEvent(new c("beforetoggle",{oldState:"open",newState:"closed"})),!d(e,!0))))return;M.get(r)?.delete(e),p.get(r)?.delete(e),e.classList.remove(":popover-open"),h.set(e,"hidden"),o&&A(e,"open","closed");let i=H.get(e);i&&(H.delete(e),t&&i.focus());}function F(e,t=!1,o=!1){let r=y(e);for(;r;)m(r,t,o),r=y(e);}function T(e,t,o){let r=e.ownerDocument||e;if(e instanceof Document)return F(r,t,o);let i=null,l=!1;for(let a of p.get(r)||[])if(a===e)l=!0;else if(l){i=a;break}if(!l)return F(r,t,o);for(;i&&L(i)==="showing"&&p.get(r)?.size;)m(i,t,o);}var P=new WeakMap;function x(e){if(!e.isTrusted)return;let t=e.composedPath()[0];if(!t)return;let o=t.ownerDocument;if(!y(o))return;let i=V(t);if(i&&e.type==="pointerdown")P.set(o,i);else if(e.type==="pointerup"){let l=P.get(o)===i;P.delete(o),l&&T(i||o,!1,!0);}}var k=new WeakMap;function q(e,t=!1){if(!e)return;k.has(e)||k.set(e,e.getAttribute("aria-expanded"));let o=e.popoverTargetElement;if(o instanceof HTMLElement&&o.popover==="auto")e.setAttribute("aria-expanded",String(t));else {let r=k.get(e);r?e.setAttribute("aria-expanded",r):e.removeAttribute("aria-expanded");}}var B=globalThis.ShadowRoot||function(){};function j(){return typeof HTMLElement<"u"&&typeof HTMLElement.prototype=="object"&&"popover"in HTMLElement.prototype}function f(e,t,o){let r=e[t];Object.defineProperty(e,t,{value(i){return r.call(this,o(i))}});}var J=/(^|[^\\]):popover-open\b/g,C=`
3499
+ // src/events.ts
3500
+ var ToggleEvent = class extends Event {
3501
+ oldState;
3502
+ newState;
3503
+ constructor(type, { oldState = "", newState = "", ...init } = {}) {
3504
+ super(type, init);
3505
+ this.oldState = String(oldState || "");
3506
+ this.newState = String(newState || "");
3507
+ }
3508
+ };
3509
+ var popoverToggleTaskQueue = /* @__PURE__ */ new WeakMap();
3510
+ function queuePopoverToggleEventTask(element, oldState, newState) {
3511
+ popoverToggleTaskQueue.set(
3512
+ element,
3513
+ setTimeout(() => {
3514
+ if (!popoverToggleTaskQueue.has(element)) return;
3515
+ element.dispatchEvent(
3516
+ new ToggleEvent("toggle", {
3517
+ cancelable: false,
3518
+ oldState,
3519
+ newState
3520
+ })
3521
+ );
3522
+ }, 0)
3523
+ );
3524
+ }
3525
+
3526
+ // src/popover-helpers.ts
3527
+ var ShadowRoot$1 = globalThis.ShadowRoot || function() {
3528
+ };
3529
+ var HTMLDialogElement = globalThis.HTMLDialogElement || function() {
3530
+ };
3531
+ var topLayerElements = /* @__PURE__ */ new WeakMap();
3532
+ var autoPopoverList = /* @__PURE__ */ new WeakMap();
3533
+ var visibilityState = /* @__PURE__ */ new WeakMap();
3534
+ function getPopoverVisibilityState(popover) {
3535
+ return visibilityState.get(popover) || "hidden";
3536
+ }
3537
+ var popoverInvoker = /* @__PURE__ */ new WeakMap();
3538
+ function popoverTargetAttributeActivationBehavior(element) {
3539
+ const popover = element.popoverTargetElement;
3540
+ if (!(popover instanceof HTMLElement)) {
3541
+ return;
3542
+ }
3543
+ const visibility = getPopoverVisibilityState(popover);
3544
+ if (element.popoverTargetAction === "show" && visibility === "showing") {
3545
+ return;
3546
+ }
3547
+ if (element.popoverTargetAction === "hide" && visibility === "hidden") return;
3548
+ if (visibility === "showing") {
3549
+ hidePopover(popover, true, true);
3550
+ } else if (checkPopoverValidity(popover, false)) {
3551
+ popoverInvoker.set(popover, element);
3552
+ showPopover(popover);
3553
+ }
3554
+ }
3555
+ function checkPopoverValidity(element, expectedToBeShowing) {
3556
+ if (element.popover !== "auto" && element.popover !== "manual") {
3557
+ return false;
3558
+ }
3559
+ if (!element.isConnected) return false;
3560
+ if (expectedToBeShowing && getPopoverVisibilityState(element) !== "showing") {
3561
+ return false;
3562
+ }
3563
+ if (!expectedToBeShowing && getPopoverVisibilityState(element) !== "hidden") {
3564
+ return false;
3565
+ }
3566
+ if (element instanceof HTMLDialogElement && element.hasAttribute("open")) {
3567
+ return false;
3568
+ }
3569
+ if (document.fullscreenElement === element) return false;
3570
+ return true;
3571
+ }
3572
+ function getStackPosition(popover) {
3573
+ if (!popover) return 0;
3574
+ return Array.from(autoPopoverList.get(popover.ownerDocument) || []).indexOf(
3575
+ popover
3576
+ ) + 1;
3577
+ }
3578
+ function topMostClickedPopover(target) {
3579
+ const clickedPopover = nearestInclusiveOpenPopover(target);
3580
+ const invokerPopover = nearestInclusiveTargetPopoverForInvoker(target);
3581
+ if (getStackPosition(clickedPopover) > getStackPosition(invokerPopover)) {
3582
+ return clickedPopover;
3583
+ }
3584
+ return invokerPopover;
3585
+ }
3586
+ function topMostAutoPopover(document2) {
3587
+ const documentPopovers = autoPopoverList.get(document2);
3588
+ for (const popover of documentPopovers || []) {
3589
+ if (!popover.isConnected) {
3590
+ documentPopovers.delete(popover);
3591
+ } else {
3592
+ return popover;
3593
+ }
3594
+ }
3595
+ return null;
3596
+ }
3597
+ function getRootNode(node) {
3598
+ if (typeof node.getRootNode === "function") {
3599
+ return node.getRootNode();
3600
+ }
3601
+ if (node.parentNode) return getRootNode(node.parentNode);
3602
+ return node;
3603
+ }
3604
+ function nearestInclusiveOpenPopover(node) {
3605
+ while (node) {
3606
+ if (node instanceof HTMLElement && node.popover === "auto" && visibilityState.get(node) === "showing") {
3607
+ return node;
3608
+ }
3609
+ node = node instanceof Element && node.assignedSlot || node.parentElement || getRootNode(node);
3610
+ if (node instanceof ShadowRoot$1) node = node.host;
3611
+ if (node instanceof Document) return;
3612
+ }
3613
+ }
3614
+ function nearestInclusiveTargetPopoverForInvoker(node) {
3615
+ while (node) {
3616
+ const nodePopover = node.popoverTargetElement;
3617
+ if (nodePopover instanceof HTMLElement) return nodePopover;
3618
+ node = node.parentElement || getRootNode(node);
3619
+ if (node instanceof ShadowRoot$1) node = node.host;
3620
+ if (node instanceof Document) return;
3621
+ }
3622
+ }
3623
+ function topMostPopoverAncestor(newPopover) {
3624
+ const popoverPositions = /* @__PURE__ */ new Map();
3625
+ let i = 0;
3626
+ for (const popover of autoPopoverList.get(newPopover.ownerDocument) || []) {
3627
+ popoverPositions.set(popover, i);
3628
+ i += 1;
3629
+ }
3630
+ popoverPositions.set(newPopover, i);
3631
+ i += 1;
3632
+ let topMostPopoverAncestor2 = null;
3633
+ function checkAncestor(candidate) {
3634
+ const candidateAncestor = nearestInclusiveOpenPopover(candidate);
3635
+ if (candidateAncestor === null) return null;
3636
+ const candidatePosition = popoverPositions.get(candidateAncestor);
3637
+ if (topMostPopoverAncestor2 === null || popoverPositions.get(topMostPopoverAncestor2) < candidatePosition) {
3638
+ topMostPopoverAncestor2 = candidateAncestor;
3639
+ }
3640
+ }
3641
+ checkAncestor(newPopover.parentElement || getRootNode(newPopover));
3642
+ return topMostPopoverAncestor2;
3643
+ }
3644
+ function isFocusable(focusTarget) {
3645
+ if (focusTarget.hidden || focusTarget instanceof ShadowRoot$1) return false;
3646
+ if (focusTarget instanceof HTMLButtonElement || focusTarget instanceof HTMLInputElement || focusTarget instanceof HTMLSelectElement || focusTarget instanceof HTMLTextAreaElement || focusTarget instanceof HTMLOptGroupElement || focusTarget instanceof HTMLOptionElement || focusTarget instanceof HTMLFieldSetElement) {
3647
+ if (focusTarget.disabled) return false;
3648
+ }
3649
+ if (focusTarget instanceof HTMLInputElement && focusTarget.type === "hidden") {
3650
+ return false;
3651
+ }
3652
+ if (focusTarget instanceof HTMLAnchorElement && focusTarget.href === "") {
3653
+ return false;
3654
+ }
3655
+ return typeof focusTarget.tabIndex === "number" && focusTarget.tabIndex !== -1;
3656
+ }
3657
+ function focusDelegate(focusTarget) {
3658
+ if (focusTarget.shadowRoot && focusTarget.shadowRoot.delegatesFocus !== true) {
3659
+ return null;
3660
+ }
3661
+ let whereToLook = focusTarget;
3662
+ if (whereToLook.shadowRoot) {
3663
+ whereToLook = whereToLook.shadowRoot;
3664
+ }
3665
+ let autoFocusDelegate = whereToLook.querySelector("[autofocus]");
3666
+ if (autoFocusDelegate) {
3667
+ return autoFocusDelegate;
3668
+ } else {
3669
+ const slots = whereToLook.querySelectorAll("slot");
3670
+ for (const slot of slots) {
3671
+ const assignedElements = slot.assignedElements({ flatten: true });
3672
+ for (const el of assignedElements) {
3673
+ if (el.hasAttribute("autofocus")) {
3674
+ return el;
3675
+ } else {
3676
+ autoFocusDelegate = el.querySelector("[autofocus]");
3677
+ if (autoFocusDelegate) {
3678
+ return autoFocusDelegate;
3679
+ }
3680
+ }
3681
+ }
3682
+ }
3683
+ }
3684
+ const walker = focusTarget.ownerDocument.createTreeWalker(
3685
+ whereToLook,
3686
+ NodeFilter.SHOW_ELEMENT
3687
+ );
3688
+ let descendant = walker.currentNode;
3689
+ while (descendant) {
3690
+ if (isFocusable(descendant)) {
3691
+ return descendant;
3692
+ }
3693
+ descendant = walker.nextNode();
3694
+ }
3695
+ }
3696
+ function popoverFocusingSteps(subject) {
3697
+ focusDelegate(subject)?.focus();
3698
+ }
3699
+ var previouslyFocusedElements = /* @__PURE__ */ new WeakMap();
3700
+ function showPopover(element) {
3701
+ if (!checkPopoverValidity(element, false)) {
3702
+ return;
3703
+ }
3704
+ const document2 = element.ownerDocument;
3705
+ if (!element.dispatchEvent(
3706
+ new ToggleEvent("beforetoggle", {
3707
+ cancelable: true,
3708
+ oldState: "closed",
3709
+ newState: "open"
3710
+ })
3711
+ )) {
3712
+ return;
3713
+ }
3714
+ if (!checkPopoverValidity(element, false)) {
3715
+ return;
3716
+ }
3717
+ let shouldRestoreFocus = false;
3718
+ if (element.popover === "auto") {
3719
+ const originalType = element.getAttribute("popover");
3720
+ const ancestor = topMostPopoverAncestor(element) || document2;
3721
+ hideAllPopoversUntil(ancestor, false, true);
3722
+ if (originalType !== element.getAttribute("popover") || !checkPopoverValidity(element, false)) {
3723
+ return;
3724
+ }
3725
+ }
3726
+ if (!topMostAutoPopover(document2)) {
3727
+ shouldRestoreFocus = true;
3728
+ }
3729
+ previouslyFocusedElements.delete(element);
3730
+ const originallyFocusedElement = document2.activeElement;
3731
+ element.classList.add(":popover-open");
3732
+ visibilityState.set(element, "showing");
3733
+ if (!topLayerElements.has(document2)) {
3734
+ topLayerElements.set(document2, /* @__PURE__ */ new Set());
3735
+ }
3736
+ topLayerElements.get(document2).add(element);
3737
+ popoverFocusingSteps(element);
3738
+ if (element.popover === "auto") {
3739
+ if (!autoPopoverList.has(document2)) {
3740
+ autoPopoverList.set(document2, /* @__PURE__ */ new Set());
3741
+ }
3742
+ autoPopoverList.get(document2).add(element);
3743
+ setInvokerAriaExpanded(popoverInvoker.get(element), true);
3744
+ }
3745
+ if (shouldRestoreFocus && originallyFocusedElement && element.popover === "auto") {
3746
+ previouslyFocusedElements.set(element, originallyFocusedElement);
3747
+ }
3748
+ queuePopoverToggleEventTask(element, "closed", "open");
3749
+ }
3750
+ function hidePopover(element, focusPreviousElement = false, fireEvents = false) {
3751
+ if (!checkPopoverValidity(element, true)) {
3752
+ return;
3753
+ }
3754
+ const document2 = element.ownerDocument;
3755
+ if (element.popover === "auto") {
3756
+ hideAllPopoversUntil(element, focusPreviousElement, fireEvents);
3757
+ if (!checkPopoverValidity(element, true)) {
3758
+ return;
3759
+ }
3760
+ }
3761
+ setInvokerAriaExpanded(popoverInvoker.get(element), false);
3762
+ popoverInvoker.delete(element);
3763
+ if (fireEvents) {
3764
+ element.dispatchEvent(
3765
+ new ToggleEvent("beforetoggle", {
3766
+ oldState: "open",
3767
+ newState: "closed"
3768
+ })
3769
+ );
3770
+ if (!checkPopoverValidity(element, true)) {
3771
+ return;
3772
+ }
3773
+ }
3774
+ topLayerElements.get(document2)?.delete(element);
3775
+ autoPopoverList.get(document2)?.delete(element);
3776
+ element.classList.remove(":popover-open");
3777
+ visibilityState.set(element, "hidden");
3778
+ if (fireEvents) {
3779
+ queuePopoverToggleEventTask(element, "open", "closed");
3780
+ }
3781
+ const previouslyFocusedElement = previouslyFocusedElements.get(element);
3782
+ if (previouslyFocusedElement) {
3783
+ previouslyFocusedElements.delete(element);
3784
+ if (focusPreviousElement) {
3785
+ previouslyFocusedElement.focus();
3786
+ }
3787
+ }
3788
+ }
3789
+ function closeAllOpenPopovers(document2, focusPreviousElement = false, fireEvents = false) {
3790
+ let popover = topMostAutoPopover(document2);
3791
+ while (popover) {
3792
+ hidePopover(popover, focusPreviousElement, fireEvents);
3793
+ popover = topMostAutoPopover(document2);
3794
+ }
3795
+ }
3796
+ function hideAllPopoversUntil(endpoint, focusPreviousElement, fireEvents) {
3797
+ const document2 = endpoint.ownerDocument || endpoint;
3798
+ if (endpoint instanceof Document) {
3799
+ return closeAllOpenPopovers(document2, focusPreviousElement, fireEvents);
3800
+ }
3801
+ let lastToHide = null;
3802
+ let foundEndpoint = false;
3803
+ for (const popover of autoPopoverList.get(document2) || []) {
3804
+ if (popover === endpoint) {
3805
+ foundEndpoint = true;
3806
+ } else if (foundEndpoint) {
3807
+ lastToHide = popover;
3808
+ break;
3809
+ }
3810
+ }
3811
+ if (!foundEndpoint) {
3812
+ return closeAllOpenPopovers(document2, focusPreviousElement, fireEvents);
3813
+ }
3814
+ while (lastToHide && getPopoverVisibilityState(lastToHide) === "showing" && autoPopoverList.get(document2)?.size) {
3815
+ hidePopover(lastToHide, focusPreviousElement, fireEvents);
3816
+ }
3817
+ }
3818
+ var popoverPointerDownTargets = /* @__PURE__ */ new WeakMap();
3819
+ function lightDismissOpenPopovers(event) {
3820
+ if (!event.isTrusted) return;
3821
+ const target = event.composedPath()[0];
3822
+ if (!target) return;
3823
+ const document2 = target.ownerDocument;
3824
+ const topMostPopover = topMostAutoPopover(document2);
3825
+ if (!topMostPopover) return;
3826
+ const ancestor = topMostClickedPopover(target);
3827
+ if (ancestor && event.type === "pointerdown") {
3828
+ popoverPointerDownTargets.set(document2, ancestor);
3829
+ } else if (event.type === "pointerup") {
3830
+ const sameTarget = popoverPointerDownTargets.get(document2) === ancestor;
3831
+ popoverPointerDownTargets.delete(document2);
3832
+ if (sameTarget) {
3833
+ hideAllPopoversUntil(ancestor || document2, false, true);
3834
+ }
3835
+ }
3836
+ }
3837
+ var initialAriaExpandedValue = /* @__PURE__ */ new WeakMap();
3838
+ function setInvokerAriaExpanded(el, force = false) {
3839
+ if (!el) return;
3840
+ if (!initialAriaExpandedValue.has(el)) {
3841
+ initialAriaExpandedValue.set(el, el.getAttribute("aria-expanded"));
3842
+ }
3843
+ const popover = el.popoverTargetElement;
3844
+ if (popover instanceof HTMLElement && popover.popover === "auto") {
3845
+ el.setAttribute("aria-expanded", String(force));
3846
+ } else {
3847
+ const initialValue = initialAriaExpandedValue.get(el);
3848
+ if (!initialValue) {
3849
+ el.removeAttribute("aria-expanded");
3850
+ } else {
3851
+ el.setAttribute("aria-expanded", initialValue);
3852
+ }
3853
+ }
3854
+ }
3855
+
3856
+ // src/popover.ts
3857
+ var ShadowRoot2 = globalThis.ShadowRoot || function() {
3858
+ };
3859
+ function isSupported() {
3860
+ return typeof HTMLElement !== "undefined" && typeof HTMLElement.prototype === "object" && "popover" in HTMLElement.prototype;
3861
+ }
3862
+ function patchSelectorFn(object, name, mapper) {
3863
+ const original = object[name];
3864
+ Object.defineProperty(object, name, {
3865
+ value(selector) {
3866
+ return original.call(this, mapper(selector));
3867
+ }
3868
+ });
3869
+ }
3870
+ var nonEscapedPopoverSelector = /(^|[^\\]):popover-open\b/g;
3871
+ function hasLayerSupport() {
3872
+ return typeof globalThis.CSSLayerBlockRule === "function";
3873
+ }
3874
+ function getStyles() {
3875
+ const useLayer = hasLayerSupport();
3876
+ return `
3877
+ ${useLayer ? "@layer popover-polyfill {" : ""}
3626
3878
  :where([popover]) {
3627
3879
  position: fixed;
3628
3880
  z-index: 2147483647;
@@ -3640,6 +3892,14 @@ const computePosition = (reference, floating, options) => {
3640
3892
  margin: auto;
3641
3893
  }
3642
3894
 
3895
+ :where([popover]:not(.\\:popover-open)) {
3896
+ display: none;
3897
+ }
3898
+
3899
+ :where(dialog[popover].\\:popover-open) {
3900
+ display: block;
3901
+ }
3902
+
3643
3903
  :where(dialog[popover][open]) {
3644
3904
  display: revert;
3645
3905
  }
@@ -3674,11 +3934,229 @@ const computePosition = (reference, floating, options) => {
3674
3934
  bottom: 0;
3675
3935
  }
3676
3936
  }
3677
-
3678
- :where([popover]:not(.\\:popover-open)) {
3679
- display: none;
3937
+ ${useLayer ? "}" : ""}
3938
+ `;
3939
+ }
3940
+ var popoverStyleSheet = null;
3941
+ function injectStyles(root) {
3942
+ const styles = getStyles();
3943
+ if (popoverStyleSheet === null) {
3944
+ try {
3945
+ popoverStyleSheet = new CSSStyleSheet();
3946
+ popoverStyleSheet.replaceSync(styles);
3947
+ } catch {
3948
+ popoverStyleSheet = false;
3949
+ }
3950
+ }
3951
+ if (popoverStyleSheet === false) {
3952
+ const sheet = document.createElement("style");
3953
+ sheet.textContent = styles;
3954
+ if (root instanceof Document) {
3955
+ root.head.prepend(sheet);
3956
+ } else {
3957
+ root.prepend(sheet);
3958
+ }
3959
+ } else {
3960
+ root.adoptedStyleSheets = [popoverStyleSheet, ...root.adoptedStyleSheets];
3961
+ }
3962
+ }
3963
+ function apply() {
3964
+ if (typeof window === "undefined") return;
3965
+ window.ToggleEvent = window.ToggleEvent || ToggleEvent;
3966
+ function rewriteSelector(selector) {
3967
+ if (selector?.includes(":popover-open")) {
3968
+ selector = selector.replace(
3969
+ nonEscapedPopoverSelector,
3970
+ "$1.\\:popover-open"
3971
+ );
3972
+ }
3973
+ return selector;
3974
+ }
3975
+ patchSelectorFn(Document.prototype, "querySelector", rewriteSelector);
3976
+ patchSelectorFn(Document.prototype, "querySelectorAll", rewriteSelector);
3977
+ patchSelectorFn(Element.prototype, "querySelector", rewriteSelector);
3978
+ patchSelectorFn(Element.prototype, "querySelectorAll", rewriteSelector);
3979
+ patchSelectorFn(Element.prototype, "matches", rewriteSelector);
3980
+ patchSelectorFn(Element.prototype, "closest", rewriteSelector);
3981
+ patchSelectorFn(
3982
+ DocumentFragment.prototype,
3983
+ "querySelectorAll",
3984
+ rewriteSelector
3985
+ );
3986
+ Object.defineProperties(HTMLElement.prototype, {
3987
+ popover: {
3988
+ enumerable: true,
3989
+ configurable: true,
3990
+ get() {
3991
+ if (!this.hasAttribute("popover")) return null;
3992
+ const value = (this.getAttribute("popover") || "").toLowerCase();
3993
+ if (value === "" || value == "auto") return "auto";
3994
+ return "manual";
3995
+ },
3996
+ set(value) {
3997
+ if (value === null) {
3998
+ this.removeAttribute("popover");
3999
+ } else {
4000
+ this.setAttribute("popover", value);
4001
+ }
4002
+ }
4003
+ },
4004
+ showPopover: {
4005
+ enumerable: true,
4006
+ configurable: true,
4007
+ value() {
4008
+ showPopover(this);
4009
+ }
4010
+ },
4011
+ hidePopover: {
4012
+ enumerable: true,
4013
+ configurable: true,
4014
+ value() {
4015
+ hidePopover(this, true, true);
4016
+ }
4017
+ },
4018
+ togglePopover: {
4019
+ enumerable: true,
4020
+ configurable: true,
4021
+ value(force) {
4022
+ if (visibilityState.get(this) === "showing" && force === void 0 || force === false) {
4023
+ hidePopover(this, true, true);
4024
+ } else if (force === void 0 || force === true) {
4025
+ showPopover(this);
4026
+ }
4027
+ }
4028
+ }
4029
+ });
4030
+ const originalAttachShadow = Element.prototype.attachShadow;
4031
+ if (originalAttachShadow) {
4032
+ Object.defineProperties(Element.prototype, {
4033
+ attachShadow: {
4034
+ enumerable: true,
4035
+ configurable: true,
4036
+ writable: true,
4037
+ value(options) {
4038
+ const shadowRoot = originalAttachShadow.call(this, options);
4039
+ injectStyles(shadowRoot);
4040
+ return shadowRoot;
4041
+ }
4042
+ }
4043
+ });
4044
+ }
4045
+ const originalAttachInternals = HTMLElement.prototype.attachInternals;
4046
+ if (originalAttachInternals) {
4047
+ Object.defineProperties(HTMLElement.prototype, {
4048
+ attachInternals: {
4049
+ enumerable: true,
4050
+ configurable: true,
4051
+ writable: true,
4052
+ value() {
4053
+ const internals = originalAttachInternals.call(this);
4054
+ if (internals.shadowRoot) {
4055
+ injectStyles(internals.shadowRoot);
4056
+ }
4057
+ return internals;
4058
+ }
4059
+ }
4060
+ });
3680
4061
  }
3681
- `,E=null;function I(e){if(E===null)try{E=new CSSStyleSheet,E.replaceSync(C);}catch{E=!1;}if(E===!1){let t=document.createElement("style");t.textContent=C,e instanceof Document?e.head.prepend(t):e.prepend(t);}else e.adoptedStyleSheets=[E,...e.adoptedStyleSheets];}function K(){window.ToggleEvent=window.ToggleEvent||c;function e(n){return n?.includes(":popover-open")&&(n=n.replace(J,"$1.\\:popover-open")),n}f(Document.prototype,"querySelector",e),f(Document.prototype,"querySelectorAll",e),f(Element.prototype,"querySelector",e),f(Element.prototype,"querySelectorAll",e),f(Element.prototype,"matches",e),f(Element.prototype,"closest",e),f(DocumentFragment.prototype,"querySelectorAll",e),f(DocumentFragment.prototype,"querySelectorAll",e),Object.defineProperties(HTMLElement.prototype,{popover:{enumerable:!0,configurable:!0,get(){if(!this.hasAttribute("popover"))return null;let n=(this.getAttribute("popover")||"").toLowerCase();return n===""||n=="auto"?"auto":"manual"},set(n){this.setAttribute("popover",n);}},showPopover:{enumerable:!0,configurable:!0,value(){S(this);}},hidePopover:{enumerable:!0,configurable:!0,value(){m(this,!0,!0);}},togglePopover:{enumerable:!0,configurable:!0,value(n){h.get(this)==="showing"&&n===void 0||n===!1?m(this,!0,!0):(n===void 0||n===!0)&&S(this);}}});let t=Element.prototype.attachShadow;t&&Object.defineProperties(Element.prototype,{attachShadow:{enumerable:!0,configurable:!0,writable:!0,value(n){let s=t.call(this,n);return I(s),s}}});let o=HTMLElement.prototype.attachInternals;o&&Object.defineProperties(HTMLElement.prototype,{attachInternals:{enumerable:!0,configurable:!0,writable:!0,value(){let n=o.call(this);return n.shadowRoot&&I(n.shadowRoot),n}}});let r=new WeakMap;function i(n){Object.defineProperties(n.prototype,{popoverTargetElement:{enumerable:!0,configurable:!0,set(s){if(s===null)this.removeAttribute("popovertarget"),r.delete(this);else if(s instanceof Element)this.setAttribute("popovertarget",""),r.set(this,s);else throw new TypeError("popoverTargetElement must be an element or null")},get(){if(this.localName!=="button"&&this.localName!=="input"||this.localName==="input"&&this.type!=="reset"&&this.type!=="image"&&this.type!=="button"||this.disabled||this.form&&this.type==="submit")return null;let s=r.get(this);if(s&&s.isConnected)return s;if(s&&!s.isConnected)return r.delete(this),null;let u=v(this),w=this.getAttribute("popovertarget");return (u instanceof Document||u instanceof B)&&w&&u.getElementById(w)||null}},popoverTargetAction:{enumerable:!0,configurable:!0,get(){let s=(this.getAttribute("popovertargetaction")||"").toLowerCase();return s==="show"||s==="hide"?s:"toggle"},set(s){this.setAttribute("popovertargetaction",s);}}});}i(HTMLButtonElement),i(HTMLInputElement);let l=n=>{if(!n.isTrusted)return;let s=n.composedPath()[0];if(!(s instanceof Element)||s?.shadowRoot)return;let u=v(s);if(!(u instanceof B||u instanceof Document))return;let w=s.closest("[popovertargetaction],[popovertarget]");if(w){O(w),n.preventDefault();return}},a=n=>{let s=n.key,u=n.target;!n.defaultPrevented&&u&&(s==="Escape"||s==="Esc")&&T(u.ownerDocument,!0,!0);};(n=>{n.addEventListener("click",l),n.addEventListener("keydown",a),n.addEventListener("pointerdown",x),n.addEventListener("pointerup",x);})(document),I(document);}j()||K();})();
4062
+ const popoverTargetAssociatedElements = /* @__PURE__ */ new WeakMap();
4063
+ function applyPopoverInvokerElementMixin(ElementClass) {
4064
+ Object.defineProperties(ElementClass.prototype, {
4065
+ popoverTargetElement: {
4066
+ enumerable: true,
4067
+ configurable: true,
4068
+ set(targetElement) {
4069
+ if (targetElement === null) {
4070
+ this.removeAttribute("popovertarget");
4071
+ popoverTargetAssociatedElements.delete(this);
4072
+ } else if (!(targetElement instanceof Element)) {
4073
+ throw new TypeError(
4074
+ `popoverTargetElement must be an element or null`
4075
+ );
4076
+ } else {
4077
+ this.setAttribute("popovertarget", "");
4078
+ popoverTargetAssociatedElements.set(this, targetElement);
4079
+ }
4080
+ },
4081
+ get() {
4082
+ if (this.localName !== "button" && this.localName !== "input") {
4083
+ return null;
4084
+ }
4085
+ if (this.localName === "input" && this.type !== "reset" && this.type !== "image" && this.type !== "button") {
4086
+ return null;
4087
+ }
4088
+ if (this.disabled) {
4089
+ return null;
4090
+ }
4091
+ if (this.form && this.type === "submit") {
4092
+ return null;
4093
+ }
4094
+ const targetElement = popoverTargetAssociatedElements.get(this);
4095
+ if (targetElement && targetElement.isConnected) {
4096
+ return targetElement;
4097
+ } else if (targetElement && !targetElement.isConnected) {
4098
+ popoverTargetAssociatedElements.delete(this);
4099
+ return null;
4100
+ }
4101
+ const root = getRootNode(this);
4102
+ const idref = this.getAttribute("popovertarget");
4103
+ if ((root instanceof Document || root instanceof ShadowRoot2) && idref) {
4104
+ return root.getElementById(idref) || null;
4105
+ }
4106
+ return null;
4107
+ }
4108
+ },
4109
+ popoverTargetAction: {
4110
+ enumerable: true,
4111
+ configurable: true,
4112
+ get() {
4113
+ const value = (this.getAttribute("popovertargetaction") || "").toLowerCase();
4114
+ if (value === "show" || value === "hide") return value;
4115
+ return "toggle";
4116
+ },
4117
+ set(value) {
4118
+ this.setAttribute("popovertargetaction", value);
4119
+ }
4120
+ }
4121
+ });
4122
+ }
4123
+ applyPopoverInvokerElementMixin(HTMLButtonElement);
4124
+ applyPopoverInvokerElementMixin(HTMLInputElement);
4125
+ const handleInvokerActivation = (event) => {
4126
+ const composedPath = event.composedPath();
4127
+ const target = composedPath[0];
4128
+ if (!(target instanceof Element) || target?.shadowRoot) {
4129
+ return;
4130
+ }
4131
+ const root = getRootNode(target);
4132
+ if (!(root instanceof ShadowRoot2 || root instanceof Document)) {
4133
+ return;
4134
+ }
4135
+ const invoker = composedPath.find(
4136
+ (el) => el.matches?.("[popovertargetaction],[popovertarget]")
4137
+ );
4138
+ if (invoker) {
4139
+ popoverTargetAttributeActivationBehavior(invoker);
4140
+ event.preventDefault();
4141
+ return;
4142
+ }
4143
+ };
4144
+ const onKeydown = (event) => {
4145
+ const key = event.key;
4146
+ const target = event.target;
4147
+ if (!event.defaultPrevented && target && (key === "Escape" || key === "Esc")) {
4148
+ hideAllPopoversUntil(target.ownerDocument, true, true);
4149
+ }
4150
+ };
4151
+ const addEventListeners = (root) => {
4152
+ root.addEventListener("click", handleInvokerActivation);
4153
+ root.addEventListener("keydown", onKeydown);
4154
+ root.addEventListener("pointerdown", lightDismissOpenPopovers);
4155
+ root.addEventListener("pointerup", lightDismissOpenPopovers);
4156
+ };
4157
+ addEventListeners(document);
4158
+ injectStyles(document);
4159
+ }
3682
4160
 
3683
4161
  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-palette-fg);background-color:var(--post-current-palette-bg);border:2px solid rgba(0,0,0,0);border-radius:4px}: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(--safe-space-cursor-x, 0) var(--safe-space-cursor-y, 0), var(--safe-space-popover-x-start, var(--safe-space-popover-x, 0)) var(--safe-space-popover-y, var(--safe-space-popover-y-start, 0)), var(--safe-space-popover-x-end, var(--safe-space-popover-x, 0)) var(--safe-space-popover-y, var(--safe-space-popover-y-end, 0)))}:where(post-popovercontainer)[safe-space=trapezoid]::after{clip-path:polygon(var(--safe-space-trigger-x-start, var(--safe-space-trigger-x, 0)) var(--safe-space-trigger-y, var(--safe-space-trigger-y-start, 0)), var(--safe-space-trigger-x-end, var(--safe-space-trigger-x, 0)) var(--safe-space-trigger-y, var(--safe-space-trigger-y-end, 0)), var(--safe-space-popover-x-end, var(--safe-space-popover-x, 0)) var(--safe-space-popover-y, var(--safe-space-popover-y-end, 0)), var(--safe-space-popover-x-start, var(--safe-space-popover-x, 0)) var(--safe-space-popover-y, var(--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)}";
3684
4162
  const PostPopovercontainerStyle0 = postPopovercontainerCss;
@@ -3693,35 +4171,6 @@ const PostPopovercontainer = class {
3693
4171
  this.arrow = false;
3694
4172
  this.safeSpace = undefined;
3695
4173
  }
3696
- static STATIC_SIDES = {
3697
- top: 'bottom',
3698
- right: 'left',
3699
- bottom: 'top',
3700
- left: 'right',
3701
- };
3702
- static PROPERTIES_TO_CLEAR = [
3703
- '--safe-space-popover-x',
3704
- '--safe-space-popover-y',
3705
- '--safe-space-popover-x-start',
3706
- '--safe-space-popover-x-end',
3707
- '--safe-space-popover-y-start',
3708
- '--safe-space-popover-y-end',
3709
- '--safe-space-trigger-x',
3710
- '--safe-space-trigger-y',
3711
- '--safe-space-trigger-x-start',
3712
- '--safe-space-trigger-x-end',
3713
- '--safe-space-trigger-y-start',
3714
- '--safe-space-trigger-y-end',
3715
- ];
3716
- get host() { return index.getElement(this); }
3717
- arrowRef;
3718
- eventTarget;
3719
- clearAutoUpdate;
3720
- toggleTimeoutId;
3721
- /**
3722
- * Fires whenever the popover gets shown or hidden, passing the new state in event.details as a boolean
3723
- */
3724
- postToggle;
3725
4174
  /**
3726
4175
  * Updates cursor position for safe space feature when popover is open.
3727
4176
  * Sets CSS custom properties for dynamic styling of safe area.
@@ -3731,6 +4180,11 @@ const PostPopovercontainer = class {
3731
4180
  this.host.style.setProperty('--safe-space-cursor-x', `${event.clientX}px`);
3732
4181
  this.host.style.setProperty('--safe-space-cursor-y', `${event.clientY}px`);
3733
4182
  }
4183
+ connectedCallback() {
4184
+ if (breakpoints.IS_BROWSER && !isSupported()) {
4185
+ apply();
4186
+ }
4187
+ }
3734
4188
  componentDidLoad() {
3735
4189
  this.host.addEventListener('beforetoggle', this.handleToggle.bind(this));
3736
4190
  }
@@ -3925,11 +4379,32 @@ const PostPopovercontainer = class {
3925
4379
  }
3926
4380
  }
3927
4381
  render() {
3928
- return (index.h(index.Host, { key: '4b1d039e821b26d830de798a8103995391d8e01b', "data-version": _package.version, popover: this.manualClose ? 'manual' : 'auto' }, index.h("div", { key: '30e50db7f861df8339da244b1393372759a0fc13' }, this.arrow && (index.h("span", { key: 'acd8bae5e39cf6407fdefaaf0e2137d35b4c468d', class: "arrow", ref: el => {
4382
+ return (index.h(index.Host, { key: 'bbd430fbda9344c351d59f3d59cf84049992709b', "data-version": _package.version, popover: this.manualClose ? 'manual' : 'auto' }, index.h("div", { key: 'e359cac588d1dd1359c88f8e472828be845fdad7' }, this.arrow && (index.h("span", { key: '45329ae23722e93410132746e4e39e88e86cd310', class: "arrow", ref: el => {
3929
4383
  this.arrowRef = el;
3930
- } })), index.h("slot", { key: 'a4854df31cab7e452c89cf4a8f36249878c6cd0c' }))));
4384
+ } })), index.h("slot", { key: 'bb9b4b3d8e7c36f024883d02bd34766bf2e9de88' }))));
3931
4385
  }
4386
+ get host() { return index.getElement(this); }
3932
4387
  };
4388
+ PostPopovercontainer.STATIC_SIDES = {
4389
+ top: 'bottom',
4390
+ right: 'left',
4391
+ bottom: 'top',
4392
+ left: 'right',
4393
+ };
4394
+ PostPopovercontainer.PROPERTIES_TO_CLEAR = [
4395
+ '--safe-space-popover-x',
4396
+ '--safe-space-popover-y',
4397
+ '--safe-space-popover-x-start',
4398
+ '--safe-space-popover-x-end',
4399
+ '--safe-space-popover-y-start',
4400
+ '--safe-space-popover-y-end',
4401
+ '--safe-space-trigger-x',
4402
+ '--safe-space-trigger-y',
4403
+ '--safe-space-trigger-x-start',
4404
+ '--safe-space-trigger-x-end',
4405
+ '--safe-space-trigger-y-start',
4406
+ '--safe-space-trigger-y-end',
4407
+ ];
3933
4408
  PostPopovercontainer.style = PostPopovercontainerStyle0;
3934
4409
 
3935
4410
  const postTogglebuttonCss = ":host{cursor:pointer;outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:focus-visible){outline-color:Highlight !important}}:host([aria-pressed=true]) ::slotted([data-showwhen=untoggled]){display:none}:host([aria-pressed=false]) ::slotted([data-showwhen=toggled]){display:none}";
@@ -3938,9 +4413,18 @@ const PostTogglebuttonStyle0 = postTogglebuttonCss;
3938
4413
  const PostTogglebutton = class {
3939
4414
  constructor(hostRef) {
3940
4415
  index.registerInstance(this, hostRef);
4416
+ this.handleClick = () => {
4417
+ this.toggled = !this.toggled;
4418
+ };
4419
+ this.handleKeydown = (event) => {
4420
+ // perform a click when enter or spaced are pressed to mimic the button behavior
4421
+ if (event.key === 'Enter' || event.key === ' ') {
4422
+ event.preventDefault(); // prevents the page from scrolling when space is pressed
4423
+ this.host.click();
4424
+ }
4425
+ };
3941
4426
  this.toggled = false;
3942
4427
  }
3943
- get host() { return index.getElement(this); }
3944
4428
  validateToggled() {
3945
4429
  checkType.checkType(this, 'toggled', 'boolean');
3946
4430
  }
@@ -3950,19 +4434,10 @@ const PostTogglebutton = class {
3950
4434
  this.host.addEventListener('click', () => this.handleClick());
3951
4435
  this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
3952
4436
  }
3953
- handleClick = () => {
3954
- this.toggled = !this.toggled;
3955
- };
3956
- handleKeydown = (event) => {
3957
- // perform a click when enter or spaced are pressed to mimic the button behavior
3958
- if (event.key === 'Enter' || event.key === ' ') {
3959
- event.preventDefault(); // prevents the page from scrolling when space is pressed
3960
- this.host.click();
3961
- }
3962
- };
3963
4437
  render() {
3964
4438
  return (index.h(index.Host, { key: '3a1429a9b67b8cfafae184fe0d060ee3a04974e0', "data-version": _package.version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, index.h("slot", { key: '9ab1537574423740fc335fde732c699698acac25' })));
3965
4439
  }
4440
+ get host() { return index.getElement(this); }
3966
4441
  static get watchers() { return {
3967
4442
  "toggled": ["validateToggled"]
3968
4443
  }; }