@swisspost/design-system-components 10.0.0-next.47 → 10.0.0-next.49

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 (317) hide show
  1. package/dist/cjs/{event-from-AKK8RQrn.js → event-from-C6kpQwhw.js} +2 -2
  2. package/dist/cjs/index-CpDyH7Ww.js +4 -4
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/{package-wsZ6ig4j.js → package-CR0YynRY.js} +1 -1
  5. package/dist/cjs/post-accordion_2.cjs.entry.js +6 -6
  6. package/dist/cjs/post-avatar.cjs.entry.js +107 -80
  7. package/dist/cjs/post-back-to-top.cjs.entry.js +2 -2
  8. package/dist/cjs/post-banner.cjs.entry.js +3 -3
  9. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +3 -3
  10. package/dist/cjs/post-breadcrumbs.cjs.entry.js +4 -4
  11. package/dist/cjs/post-card-control.cjs.entry.js +4 -4
  12. package/dist/cjs/post-closebutton_15.cjs.entry.js +133 -74
  13. package/dist/cjs/post-collapsible_2.cjs.entry.js +4 -4
  14. package/dist/cjs/post-components.cjs.js +1 -1
  15. package/dist/cjs/post-footer.cjs.entry.js +3 -3
  16. package/dist/cjs/post-linkarea.cjs.entry.js +19 -8
  17. package/dist/cjs/post-popover.cjs.entry.js +3 -3
  18. package/dist/cjs/post-rating.cjs.entry.js +3 -3
  19. package/dist/cjs/post-tab-header.cjs.entry.js +3 -3
  20. package/dist/cjs/post-tab-panel.cjs.entry.js +2 -2
  21. package/dist/cjs/post-tabs.cjs.entry.js +2 -2
  22. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +2 -2
  23. package/dist/cjs/post-tooltip.cjs.entry.js +3 -3
  24. package/dist/collection/animations/pop-in.js +14 -0
  25. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  26. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  27. package/dist/collection/components/post-accordion-item/post-accordion-item.js +5 -5
  28. package/dist/collection/components/post-avatar/avatar-utils.js +16 -0
  29. package/dist/collection/components/post-avatar/post-avatar.css +1 -1
  30. package/dist/collection/components/post-avatar/post-avatar.js +119 -82
  31. package/dist/collection/components/post-back-to-top/post-back-to-top.js +1 -1
  32. package/dist/collection/components/post-banner/post-banner.js +2 -2
  33. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
  34. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -1
  35. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +2 -2
  36. package/dist/collection/components/post-card-control/post-card-control.css +1 -1
  37. package/dist/collection/components/post-card-control/post-card-control.js +2 -2
  38. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -19
  39. package/dist/collection/components/post-collapsible/post-collapsible.js +1 -1
  40. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +1 -1
  41. package/dist/collection/components/post-footer/post-footer.css +1 -1
  42. package/dist/collection/components/post-footer/post-footer.js +1 -1
  43. package/dist/collection/components/post-header/post-header.css +1 -1
  44. package/dist/collection/components/post-header/post-header.js +11 -2
  45. package/dist/collection/components/post-icon/post-icon.js +39 -33
  46. package/dist/collection/components/post-language-option/post-language-option.css +1 -1
  47. package/dist/collection/components/post-language-option/post-language-option.js +1 -2
  48. package/dist/collection/components/post-language-switch/post-language-switch.js +1 -2
  49. package/dist/collection/components/post-linkarea/post-linkarea.css +1 -1
  50. package/dist/collection/components/post-linkarea/post-linkarea.js +24 -6
  51. package/dist/collection/components/post-list/post-list.css +1 -1
  52. package/dist/collection/components/post-list/post-list.js +1 -1
  53. package/dist/collection/components/post-list-item/post-list-item.js +1 -1
  54. package/dist/collection/components/post-logo/post-logo.js +1 -1
  55. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  56. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +1 -1
  57. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  58. package/dist/collection/components/post-megadropdown/post-megadropdown.js +12 -2
  59. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +1 -1
  60. package/dist/collection/components/post-menu/post-menu.css +1 -1
  61. package/dist/collection/components/post-menu/post-menu.js +41 -5
  62. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  63. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
  64. package/dist/collection/components/post-popover/post-popover.css +1 -1
  65. package/dist/collection/components/post-popover/post-popover.js +1 -1
  66. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  67. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +18 -7
  68. package/dist/collection/components/post-rating/post-rating.css +1 -1
  69. package/dist/collection/components/post-rating/post-rating.js +1 -1
  70. package/dist/collection/components/post-tab-header/post-tab-header.css +1 -1
  71. package/dist/collection/components/post-tab-header/post-tab-header.js +1 -1
  72. package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
  73. package/dist/collection/components/post-tabs/post-tabs.js +3 -3
  74. package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
  75. package/dist/collection/components/post-tooltip/post-tooltip.js +2 -2
  76. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
  77. package/dist/collection/utils/event-from.js +2 -2
  78. package/dist/component-names.json +39 -0
  79. package/dist/{esm/event-from-8U5GFtQP.js → components/event-from.js} +2 -2
  80. package/dist/components/get-root.js +15 -0
  81. package/dist/components/index.d.ts +73 -0
  82. package/dist/components/index.js +36 -2315
  83. package/dist/components/package.js +3 -0
  84. package/dist/components/post-accordion-item.js +1 -1
  85. package/dist/components/post-accordion-item2.js +113 -0
  86. package/dist/components/post-accordion.js +1 -1
  87. package/dist/components/post-accordion2.js +138 -0
  88. package/dist/components/post-avatar.js +117 -88
  89. package/dist/components/post-back-to-top.js +7 -8
  90. package/dist/components/post-banner.js +10 -11
  91. package/dist/components/post-breadcrumb-item.js +1 -1
  92. package/dist/components/post-breadcrumb-item2.js +79 -0
  93. package/dist/components/post-breadcrumbs.js +16 -17
  94. package/dist/components/post-card-control.js +11 -12
  95. package/dist/components/post-closebutton.js +5 -7
  96. package/dist/components/post-collapsible-trigger.js +1 -1
  97. package/dist/components/post-collapsible-trigger2.js +135 -0
  98. package/dist/components/post-collapsible.js +1 -1
  99. package/dist/components/post-collapsible2.js +110 -0
  100. package/dist/components/post-footer.js +12 -13
  101. package/dist/components/post-header.js +18 -10
  102. package/dist/components/post-icon.js +1 -1
  103. package/dist/components/post-icon2.js +159 -0
  104. package/dist/components/post-language-option.js +10 -12
  105. package/dist/components/post-language-switch.js +13 -15
  106. package/dist/components/post-linkarea.js +24 -12
  107. package/dist/components/post-list-item.js +4 -5
  108. package/dist/components/post-list.js +6 -7
  109. package/dist/components/post-logo.js +6 -7
  110. package/dist/components/post-mainnavigation.js +6 -7
  111. package/dist/components/post-megadropdown-trigger.js +7 -8
  112. package/dist/components/post-megadropdown.js +20 -11
  113. package/dist/components/post-menu-item.js +1 -1
  114. package/dist/components/post-menu-item2.js +30 -0
  115. package/dist/components/post-menu-trigger.js +1 -1
  116. package/dist/components/post-menu-trigger2.js +110 -0
  117. package/dist/components/post-menu.js +1 -1
  118. package/dist/components/post-menu2.js +237 -0
  119. package/dist/components/post-popover.js +8 -9
  120. package/dist/components/post-popovercontainer.js +1 -1
  121. package/dist/components/post-popovercontainer2.js +3043 -0
  122. package/dist/components/post-rating.js +10 -11
  123. package/dist/components/post-tab-header.js +8 -9
  124. package/dist/components/post-tab-panel.js +7 -8
  125. package/dist/components/post-tabs.js +7 -8
  126. package/dist/components/post-togglebutton.js +4 -5
  127. package/dist/components/post-tooltip-trigger.js +7 -8
  128. package/dist/components/post-tooltip.js +8 -9
  129. package/dist/components/react/index.d.ts +33 -0
  130. package/dist/components/react/index.js +2315 -0
  131. package/dist/components/{p-Cxrx7SXz.js → react/p-Amg0f2Yo.js} +40 -34
  132. package/dist/components/{p-C0H2ohSv.js → react/p-B6vPT8S3.js} +3 -3
  133. package/dist/components/{p-336Lbkey.js → react/p-BDs0pvkX.js} +2 -2
  134. package/dist/components/react/p-BLchVpF6.js +14 -0
  135. package/dist/components/{p-BM8mtEfS.js → react/p-BMdFdJWl.js} +2 -2
  136. package/dist/components/{p-DP5pj8mq.js → react/p-BS0ZqwA-.js} +31 -6
  137. package/dist/components/react/p-C35MCWIp.js +35 -0
  138. package/dist/components/react/p-CJ80BZ06.js +178 -0
  139. package/dist/{esm/index-BWC0gtGU.js → components/react/p-CV7fm1rW.js} +1 -1
  140. package/dist/components/react/p-C_2k3G1c.js +264 -0
  141. package/dist/components/{p-DVGX_JCp.js → react/p-D1oOccKr.js} +3 -3
  142. package/dist/components/{p-pHxypsHK.js → react/p-D50E7y6E.js} +24 -9
  143. package/dist/components/react/p-DO48NanC.js +3 -0
  144. package/dist/components/{p-i0-mizzM.js → react/p-DOo9tmN-.js} +2 -2
  145. package/dist/components/{p-DEi5TIMq.js → react/p-Do9awHW7.js} +3 -3
  146. package/dist/components/react/p-SbIC4aZX.js +11 -0
  147. package/dist/components/{p-8U5GFtQP.js → react/p-kraHE1r3.js} +2 -2
  148. package/dist/components/react/p-r4txK0AC.js +3 -0
  149. package/dist/components/{p-BSvy4uym.js → react/p-xelWyg_P.js} +8 -8
  150. package/dist/components/react/post-accordion-item.d.ts +11 -0
  151. package/dist/components/react/post-accordion-item.js +6 -0
  152. package/dist/components/react/post-accordion.d.ts +11 -0
  153. package/dist/components/react/post-accordion.js +6 -0
  154. package/dist/components/react/post-avatar.d.ts +11 -0
  155. package/dist/components/react/post-avatar.js +218 -0
  156. package/dist/components/react/post-back-to-top.d.ts +11 -0
  157. package/dist/components/react/post-back-to-top.js +145 -0
  158. package/dist/components/react/post-banner.d.ts +11 -0
  159. package/dist/components/react/post-banner.js +99 -0
  160. package/dist/components/react/post-breadcrumb-item.d.ts +11 -0
  161. package/dist/components/react/post-breadcrumb-item.js +6 -0
  162. package/dist/components/react/post-breadcrumbs.d.ts +11 -0
  163. package/dist/components/react/post-breadcrumbs.js +187 -0
  164. package/dist/components/react/post-card-control.d.ts +11 -0
  165. package/dist/components/react/post-card-control.js +327 -0
  166. package/dist/components/react/post-closebutton.d.ts +11 -0
  167. package/dist/components/react/post-closebutton.js +50 -0
  168. package/dist/components/react/post-collapsible-trigger.d.ts +11 -0
  169. package/dist/components/react/post-collapsible-trigger.js +6 -0
  170. package/dist/components/react/post-collapsible.d.ts +11 -0
  171. package/dist/components/react/post-collapsible.js +6 -0
  172. package/dist/components/react/post-footer.d.ts +11 -0
  173. package/dist/components/react/post-footer.js +117 -0
  174. package/dist/components/react/post-header.d.ts +11 -0
  175. package/dist/components/react/post-header.js +342 -0
  176. package/dist/components/react/post-icon.d.ts +11 -0
  177. package/dist/components/react/post-icon.js +6 -0
  178. package/dist/components/react/post-language-option.d.ts +11 -0
  179. package/dist/components/react/post-language-option.js +100 -0
  180. package/dist/components/react/post-language-switch.d.ts +11 -0
  181. package/dist/components/react/post-language-switch.js +158 -0
  182. package/dist/components/react/post-linkarea.d.ts +11 -0
  183. package/dist/components/react/post-linkarea.js +59 -0
  184. package/dist/components/react/post-list-item.d.ts +11 -0
  185. package/dist/components/react/post-list-item.js +39 -0
  186. package/dist/components/react/post-list.d.ts +11 -0
  187. package/dist/components/react/post-list.js +62 -0
  188. package/dist/components/react/post-logo.d.ts +11 -0
  189. package/dist/components/react/post-logo.js +59 -0
  190. package/dist/components/react/post-mainnavigation.d.ts +11 -0
  191. package/dist/components/react/post-mainnavigation.js +181 -0
  192. package/dist/components/react/post-megadropdown-trigger.d.ts +11 -0
  193. package/dist/components/react/post-megadropdown-trigger.js +137 -0
  194. package/dist/components/react/post-megadropdown.d.ts +11 -0
  195. package/dist/components/react/post-megadropdown.js +207 -0
  196. package/dist/components/react/post-menu-item.d.ts +11 -0
  197. package/dist/components/react/post-menu-item.js +6 -0
  198. package/dist/components/react/post-menu-trigger.d.ts +11 -0
  199. package/dist/components/react/post-menu-trigger.js +6 -0
  200. package/dist/components/react/post-menu.d.ts +11 -0
  201. package/dist/components/react/post-menu.js +6 -0
  202. package/dist/components/react/post-popover.d.ts +11 -0
  203. package/dist/components/react/post-popover.js +189 -0
  204. package/dist/components/react/post-popovercontainer.d.ts +11 -0
  205. package/dist/components/react/post-popovercontainer.js +6 -0
  206. package/dist/components/react/post-rating.d.ts +11 -0
  207. package/dist/components/react/post-rating.js +153 -0
  208. package/dist/components/react/post-tab-header.d.ts +11 -0
  209. package/dist/components/react/post-tab-header.js +53 -0
  210. package/dist/components/react/post-tab-panel.d.ts +11 -0
  211. package/dist/components/react/post-tab-panel.js +55 -0
  212. package/dist/components/react/post-tabs.d.ts +11 -0
  213. package/dist/components/react/post-tabs.js +197 -0
  214. package/dist/components/react/post-togglebutton.d.ts +11 -0
  215. package/dist/components/react/post-togglebutton.js +57 -0
  216. package/dist/components/react/post-tooltip-trigger.d.ts +11 -0
  217. package/dist/components/react/post-tooltip-trigger.js +5223 -0
  218. package/dist/components/react/post-tooltip.d.ts +11 -0
  219. package/dist/components/react/post-tooltip.js +115 -0
  220. package/dist/components/switch-variants.js +3 -0
  221. package/dist/docs.json +71 -35
  222. package/dist/esm/event-from-kraHE1r3.js +105 -0
  223. package/dist/esm/index-C8a0ddDa.js +4 -4
  224. package/dist/esm/index-VmK3ABCB.js +88 -0
  225. package/dist/esm/loader.js +1 -1
  226. package/dist/esm/package-DO48NanC.js +3 -0
  227. package/dist/esm/post-accordion_2.entry.js +7 -7
  228. package/dist/esm/post-avatar.entry.js +108 -81
  229. package/dist/esm/post-back-to-top.entry.js +3 -3
  230. package/dist/esm/post-banner.entry.js +4 -4
  231. package/dist/esm/post-breadcrumb-item_2.entry.js +4 -4
  232. package/dist/esm/post-breadcrumbs.entry.js +5 -5
  233. package/dist/esm/post-card-control.entry.js +5 -5
  234. package/dist/esm/post-closebutton_15.entry.js +135 -76
  235. package/dist/esm/post-collapsible_2.entry.js +5 -5
  236. package/dist/esm/post-components.js +1 -1
  237. package/dist/esm/post-footer.entry.js +4 -4
  238. package/dist/esm/post-linkarea.entry.js +19 -8
  239. package/dist/esm/post-popover.entry.js +4 -4
  240. package/dist/esm/post-rating.entry.js +4 -4
  241. package/dist/esm/post-tab-header.entry.js +4 -4
  242. package/dist/esm/post-tab-panel.entry.js +3 -3
  243. package/dist/esm/post-tabs.entry.js +2 -2
  244. package/dist/esm/post-tooltip-trigger.entry.js +3 -3
  245. package/dist/esm/post-tooltip.entry.js +4 -4
  246. package/dist/loader/cdn.js +1 -0
  247. package/dist/loader/index.cjs.js +1 -0
  248. package/{loader → dist/loader}/index.d.ts +1 -1
  249. package/dist/loader/index.es2017.js +1 -0
  250. package/{loader → dist/loader}/index.js +1 -1
  251. package/dist/post-components/p-01bc39c2.entry.js +1 -0
  252. package/dist/post-components/p-0dc1e940.entry.js +1 -0
  253. package/dist/post-components/p-16da91bc.entry.js +1 -0
  254. package/dist/post-components/p-26a04741.entry.js +1 -0
  255. package/dist/post-components/p-2f2f9b22.entry.js +1 -0
  256. package/dist/post-components/{p-45007aac.entry.js → p-33008981.entry.js} +1 -1
  257. package/dist/post-components/p-36358cd4.entry.js +1 -0
  258. package/dist/post-components/p-71c48d48.entry.js +1 -0
  259. package/dist/post-components/{p-e9802b56.entry.js → p-84395e1d.entry.js} +1 -1
  260. package/dist/post-components/p-848c10ac.entry.js +1 -0
  261. package/dist/post-components/{p-ab8017bb.entry.js → p-8d2e5814.entry.js} +1 -1
  262. package/dist/post-components/{p-a2fa5ce4.entry.js → p-9dbe6595.entry.js} +1 -1
  263. package/dist/post-components/p-DO48NanC.js +1 -0
  264. package/dist/post-components/{p-BWC0gtGU.js → p-VmK3ABCB.js} +1 -1
  265. package/dist/post-components/p-a982458f.entry.js +1 -0
  266. package/dist/post-components/{p-f67b616a.entry.js → p-b0aaa058.entry.js} +1 -1
  267. package/dist/post-components/{p-bbe02ba3.entry.js → p-bdeef760.entry.js} +1 -1
  268. package/dist/post-components/{p-2f698af4.entry.js → p-d221395c.entry.js} +1 -1
  269. package/dist/post-components/{p-57703aee.entry.js → p-e49aa78e.entry.js} +1 -1
  270. package/dist/post-components/p-eb405167.entry.js +1 -0
  271. package/dist/post-components/p-kraHE1r3.js +1 -0
  272. package/dist/post-components/post-components.esm.js +1 -1
  273. package/dist/types/animations/pop-in.d.ts +1 -0
  274. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +3 -3
  275. package/dist/types/components/post-avatar/avatar-utils.d.ts +3 -0
  276. package/dist/types/components/post-avatar/post-avatar.d.ts +17 -13
  277. package/dist/types/components/post-closebutton/post-closebutton.d.ts +0 -6
  278. package/dist/types/components/post-header/post-header.d.ts +2 -0
  279. package/dist/types/components/post-icon/post-icon.d.ts +11 -0
  280. package/dist/types/components/post-linkarea/post-linkarea.d.ts +6 -0
  281. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +2 -1
  282. package/dist/types/components/post-menu/post-menu.d.ts +7 -0
  283. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +6 -2
  284. package/dist/types/components/post-tabs/post-tabs.d.ts +2 -2
  285. package/dist/types/components.d.ts +19 -22
  286. package/dist/types/utils/component-on-ready.d.ts +2 -2
  287. package/hydrate/index.js +308 -201
  288. package/hydrate/index.mjs +308 -201
  289. package/package.json +24 -12
  290. package/dist/components/p-Z01QMrov.js +0 -3
  291. package/dist/esm/package-Z01QMrov.js +0 -3
  292. package/dist/post-components/p-031f7489.entry.js +0 -1
  293. package/dist/post-components/p-1e6a068a.entry.js +0 -1
  294. package/dist/post-components/p-2ca196d6.entry.js +0 -1
  295. package/dist/post-components/p-3adbdda7.entry.js +0 -1
  296. package/dist/post-components/p-7b8ab026.entry.js +0 -1
  297. package/dist/post-components/p-8U5GFtQP.js +0 -1
  298. package/dist/post-components/p-9428231b.entry.js +0 -1
  299. package/dist/post-components/p-Z01QMrov.js +0 -1
  300. package/dist/post-components/p-ac73ab00.entry.js +0 -1
  301. package/dist/post-components/p-c1cf39cb.entry.js +0 -1
  302. package/dist/post-components/p-d0d92071.entry.js +0 -1
  303. package/dist/post-components/p-e96239c4.entry.js +0 -1
  304. package/dist/prebuild.js +0 -26
  305. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +0 -1
  306. package/loader/cdn.js +0 -1
  307. package/loader/index.cjs.js +0 -1
  308. package/loader/index.es2017.js +0 -1
  309. /package/dist/components/{p-CJ80BZ06.js → breakpoints.js} +0 -0
  310. /package/dist/components/{p-SbIC4aZX.js → fade.js} +0 -0
  311. /package/dist/components/{p-C35MCWIp.js → get-focusable-children.js} +0 -0
  312. /package/dist/components/{p-r4txK0AC.js → heading-levels.js} +0 -0
  313. /package/dist/components/{p-BLchVpF6.js → index.browser.js} +0 -0
  314. /package/dist/components/{p-CV7fm1rW.js → index2.js} +0 -0
  315. /package/dist/components/{p-C_2k3G1c.js → long-press-event.js} +0 -0
  316. /package/dist/components/{p-CBFgkSgY.js → react/p-CBFgkSgY.js} +0 -0
  317. /package/dist/components/{p-DjIHLduJ.js → react/p-DjIHLduJ.js} +0 -0
@@ -0,0 +1,181 @@
1
+ import { p as proxyCustomElement, H, h, a as Host } from './index.js';
2
+ import { v as version } from './p-DO48NanC.js';
3
+ import { d as defineCustomElement$2 } from './p-Amg0f2Yo.js';
4
+
5
+ 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>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, 0);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, 0);gap:4px;font-size:16px;z-index:4}}@media screen and (min-width: 1024px)and (max-width: 1023.98px){post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{z-index:5}}@media screen and (min-width: 1024px){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}}@media screen and (min-width: 1024px){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}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>a[aria-current=page]:not(post-megadropdown *),post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-current=page]:not(post-megadropdown *),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-current=page]:not(post-megadropdown *),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-current=page]:not(post-megadropdown *) .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-current=page]:not(post-megadropdown *) .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-current=page]:not(post-megadropdown *) .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-current=page]:not(post-megadropdown *) .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-current=page]:not(post-megadropdown *) .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-current=page]:not(post-megadropdown *) .nav-el-inactive,post-mainnavigation post-list-item post-megadropdown-trigger button[aria-expanded=true] .nav-el-inactive{opacity:0}}@media screen and (min-width: 1024px){post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{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[aria-expanded=true]::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-current=page],post-mainnavigation post-megadropdown button:not(.btn-icon-close)[aria-expanded=true],post-mainnavigation post-megadropdown a.selected,post-mainnavigation post-megadropdown a[aria-current=page],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 (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-current=page],post-mainnavigation post-list-item>a[aria-expanded=true],post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item>button[aria-current=page],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-current=page],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)}}";
6
+
7
+ const SCROLL_REPEAT_INTERVAL = 100; // Interval for repeated scrolling when holding down scroll button
8
+ const NAVBAR_DISABLE_DURATION = 400; // Duration to temporarily disable navbar interactions during scrolling
9
+ const PostMainnavigation$1 = /*@__PURE__*/ proxyCustomElement(class PostMainnavigation extends H {
10
+ constructor() {
11
+ super();
12
+ this.__registerHost();
13
+ this.canScrollLeft = false;
14
+ this.canScrollRight = false;
15
+ this.scrollRight = this.scrollRight.bind(this);
16
+ this.scrollLeft = this.scrollLeft.bind(this);
17
+ this.handleMutations = this.handleMutations.bind(this);
18
+ this.checkScrollability = this.checkScrollability.bind(this);
19
+ this.resizeObserver = new ResizeObserver(this.checkScrollability);
20
+ this.mutationObserver = new MutationObserver(this.handleMutations);
21
+ }
22
+ componentDidLoad() {
23
+ setTimeout(() => {
24
+ this.fixLayoutShift();
25
+ this.checkScrollability();
26
+ });
27
+ // Observe the navbar for size changes
28
+ this.resizeObserver.observe(this.navbar);
29
+ // Observe the navabar for mutation changes
30
+ this.mutationObserver.observe(this.navbar, { subtree: true, childList: true }); // Recheck scrollability when navigation list changes
31
+ // Ensure the scroll buttons are correctly displayed or hidden whenever the navbar is scrolled
32
+ this.navbar.addEventListener('scrollend', this.checkScrollability);
33
+ }
34
+ /**
35
+ * Disconnects observers and remove event listeners when the main navigation is removed from the DOM.
36
+ */
37
+ disconnectedCallback() {
38
+ this.mutationObserver.disconnect();
39
+ this.resizeObserver.disconnect();
40
+ this.navbar.removeEventListener('scrollend', this.checkScrollability);
41
+ }
42
+ /**
43
+ * Stops the repeated scrolling when the mouse button is released.
44
+ */
45
+ stopScrolling() {
46
+ if (this.scrollRepeatInterval)
47
+ clearInterval(this.scrollRepeatInterval);
48
+ }
49
+ async handleMutations(mutations) {
50
+ const addedNodes = mutations.flatMap((mutation) => {
51
+ return Array.from(mutation.addedNodes);
52
+ });
53
+ // Wait for all elements to be hydrated
54
+ await Promise.all(addedNodes.map((item) => item.componentOnReady ? item.componentOnReady() : Promise.resolve(item)));
55
+ this.fixLayoutShift();
56
+ this.checkScrollability();
57
+ }
58
+ get navigationItems() {
59
+ return Array.from(this.navbar.querySelectorAll(':is(a, button):not(post-megadropdown *)'));
60
+ }
61
+ /**
62
+ * Hack to fix the layout shift due to bold text on active elements
63
+ */
64
+ fixLayoutShift() {
65
+ this.navigationItems
66
+ .filter(item => !item.matches(':has(.nav-el-active)'))
67
+ .forEach(item => {
68
+ item.innerHTML = `
69
+ <span class="nav-el-active">${item.innerHTML}</span>
70
+ <span class="nav-el-inactive" aria-hidden="true">${item.innerHTML}</span>
71
+ `;
72
+ });
73
+ }
74
+ /**
75
+ * Returns whether scrolling is enabled in either the left or right direction.
76
+ */
77
+ get canScroll() {
78
+ return this.canScrollLeft || this.canScrollRight;
79
+ }
80
+ /**
81
+ * Checks if scrolling is possible in either direction (left or right) and updates the state accordingly.
82
+ */
83
+ checkScrollability() {
84
+ const { scrollLeft, scrollWidth, clientWidth } = this.navbar;
85
+ if (scrollWidth === clientWidth) {
86
+ // If scroll width equals client width, scrolling is disabled in both directions
87
+ this.canScrollLeft = this.canScrollRight = false;
88
+ }
89
+ else {
90
+ this.canScrollLeft = Math.floor(scrollLeft) > 0; // Scrolling left is possible if not at the start
91
+ this.canScrollRight = Math.ceil(clientWidth + scrollLeft) < scrollWidth; // Scrolling right is possible if not at the end
92
+ }
93
+ }
94
+ /**
95
+ * Handles the scrolling behavior when a user clicks on the left or right scroll buttons.
96
+ */
97
+ handleScrollButtonClick(e, direction) {
98
+ if (!this.canScroll || e.button !== 0)
99
+ return;
100
+ // Disable interaction with the navbar during scrolling
101
+ this.temporarilyDisableNavbar();
102
+ // Set up the correct scroll function
103
+ const scroll = direction === 'right' ? this.scrollRight : this.scrollLeft;
104
+ scroll();
105
+ // Repeat the scrolling action while the button is held down
106
+ this.scrollRepeatInterval = setInterval(() => {
107
+ scroll();
108
+ }, SCROLL_REPEAT_INTERVAL);
109
+ }
110
+ scrollRight() {
111
+ const scrollRightLeftEdge = document
112
+ .querySelector('.scroll-right')
113
+ .getBoundingClientRect().left;
114
+ for (const navigationItem of this.navigationItems) {
115
+ const { right, width } = navigationItem.getBoundingClientRect();
116
+ // Scroll to the first navigation item that is less than 75% visible
117
+ const isThreeQuartersVisible = right - 0.25 * width < scrollRightLeftEdge;
118
+ if (!isThreeQuartersVisible) {
119
+ this.navbar.scrollBy({ left: right - scrollRightLeftEdge });
120
+ return;
121
+ }
122
+ }
123
+ }
124
+ scrollLeft() {
125
+ const scrollLeftRightEdge = document
126
+ .querySelector('.scroll-left')
127
+ .getBoundingClientRect().right;
128
+ for (const navigationItem of this.navigationItems.reverse()) {
129
+ const { left, width } = navigationItem.getBoundingClientRect();
130
+ // Scroll to the first navigation item that is less than 75% visible
131
+ const isThreeQuartersVisible = left + 0.25 * width > scrollLeftRightEdge;
132
+ if (!isThreeQuartersVisible) {
133
+ this.navbar.scrollBy({ left: left - scrollLeftRightEdge });
134
+ return;
135
+ }
136
+ }
137
+ }
138
+ /**
139
+ * Temporarily disables interactions with the navbar during scrolling to prevent accidental clicks.
140
+ * Re-enables interactions after a brief delay to avoid blocking the user entirely.
141
+ */
142
+ temporarilyDisableNavbar() {
143
+ if (this.navbarDisableTimer)
144
+ clearTimeout(this.navbarDisableTimer);
145
+ this.navbar.setAttribute('inert', '');
146
+ this.navbarDisableTimer = setTimeout(() => {
147
+ this.navbar.removeAttribute('inert');
148
+ }, NAVBAR_DISABLE_DURATION);
149
+ }
150
+ render() {
151
+ return (h(Host, { key: '1876abaa01a705b5bed07b6f4ab7f795ca994759', slot: "post-mainnavigation", version: version }, h("div", { key: 'c61592c959287dcf329921e11dd0d1414329b15a', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, h("post-icon", { key: '51b460d2bfdb0ce52e2639f7521de67477972fba', "aria-hidden": "true", name: "chevronleft" })), h("nav", { key: '54d8f2a52c935713251d752b30ff163bf7bd8b5f', ref: el => (this.navbar = el) }, h("slot", { key: '749a000aa37381cbcf7a68514f77a4ff3da7e90b' })), h("div", { key: 'a42aa9a06704dfd4ebb2357b3dc1efa21f7ac136', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, h("post-icon", { key: '64ef94d58da05da4ea86c9458b7775c431d0461b', "aria-hidden": "true", name: "chevronright" }))));
152
+ }
153
+ static get style() { return postMainnavigationCss; }
154
+ }, [4, "post-mainnavigation", {
155
+ "canScrollLeft": [32],
156
+ "canScrollRight": [32]
157
+ }, [[9, "mouseup", "stopScrolling"], [9, "mouseleave", "stopScrolling"]]]);
158
+ function defineCustomElement$1() {
159
+ if (typeof customElements === "undefined") {
160
+ return;
161
+ }
162
+ const components = ["post-mainnavigation", "post-icon"];
163
+ components.forEach(tagName => { switch (tagName) {
164
+ case "post-mainnavigation":
165
+ if (!customElements.get(tagName)) {
166
+ customElements.define(tagName, PostMainnavigation$1);
167
+ }
168
+ break;
169
+ case "post-icon":
170
+ if (!customElements.get(tagName)) {
171
+ defineCustomElement$2();
172
+ }
173
+ break;
174
+ } });
175
+ }
176
+ defineCustomElement$1();
177
+
178
+ const PostMainnavigation = PostMainnavigation$1;
179
+ const defineCustomElement = defineCustomElement$1;
180
+
181
+ export { PostMainnavigation, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../../types/components";
2
+
3
+ interface PostMegadropdownTrigger extends Components.PostMegadropdownTrigger, HTMLElement {}
4
+ export const PostMegadropdownTrigger: {
5
+ prototype: PostMegadropdownTrigger;
6
+ new (): PostMegadropdownTrigger;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,137 @@
1
+ import { p as proxyCustomElement, H, h, a as Host } from './index.js';
2
+ import { v as version } from './p-DO48NanC.js';
3
+ import { c as checkRequiredAndType } from './p-CV7fm1rW.js';
4
+ import './p-CJ80BZ06.js';
5
+ import { E as EventFrom } from './p-kraHE1r3.js';
6
+
7
+ const postMegadropdownTriggerCss = "post-megadropdown-trigger{width:100%;position:relative;z-index:3}@media screen and (max-width: 1023.98px){post-megadropdown-trigger{z-index:4}}";
8
+
9
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
12
+ r = Reflect.decorate(decorators, target, key, desc);
13
+ else
14
+ for (var i = decorators.length - 1; i >= 0; i--)
15
+ if (d = decorators[i])
16
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ };
19
+ const PostMegadropdownTrigger$1 = /*@__PURE__*/ proxyCustomElement(class PostMegadropdownTrigger extends H {
20
+ constructor() {
21
+ super();
22
+ this.__registerHost();
23
+ /**
24
+ * Manages the accessibility attribute `aria-expanded` to indicate whether the associated mega dropdown is expanded or collapsed.
25
+ */
26
+ this.ariaExpanded = false;
27
+ /**
28
+ * Reference to the slotted button within the trigger, if present.
29
+ * Used to manage click and key events for mega dropdown control.
30
+ */
31
+ this.slottedButton = null;
32
+ /**
33
+ * Tracks whether this trigger's dropdown was expanded before a state change.
34
+ * Used to determine if this trigger should handle focus when its dropdown closes.
35
+ */
36
+ this.wasExpanded = false;
37
+ this.handleKeyDown = (event) => {
38
+ if (event.key === 'Enter' || event.key === ' ') {
39
+ event.preventDefault();
40
+ this.handleToggle();
41
+ if (this.megadropdown && !this.ariaExpanded) {
42
+ setTimeout(() => this.megadropdown.focusFirst(), 100);
43
+ }
44
+ }
45
+ };
46
+ this.handleToggleMegadropdown = (event) => {
47
+ if (event.target.id === this.for) {
48
+ this.ariaExpanded = event.detail.isVisible;
49
+ // Focus on the trigger parent of the dropdown after it's closed if the close button had been clicked
50
+ if (this.wasExpanded && !this.ariaExpanded && event.detail.focusParent) {
51
+ setTimeout(() => {
52
+ this.slottedButton?.focus();
53
+ }, 100);
54
+ }
55
+ this.wasExpanded = this.ariaExpanded;
56
+ if (this.slottedButton) {
57
+ this.slottedButton.setAttribute('aria-expanded', this.ariaExpanded.toString());
58
+ }
59
+ }
60
+ };
61
+ }
62
+ /**
63
+ * Watch for changes to the `for` property to validate its type and ensure it is a string.
64
+ * @param forValue - The new value of the `for` property.
65
+ */
66
+ validateControlFor() {
67
+ checkRequiredAndType(this, 'for', 'string');
68
+ }
69
+ get megadropdown() {
70
+ const ref = document.getElementById(this.for);
71
+ return ref && ref.localName === 'post-megadropdown'
72
+ ? ref
73
+ : null;
74
+ }
75
+ handleToggle() {
76
+ if (this.megadropdown) {
77
+ this.megadropdown.toggle();
78
+ }
79
+ else {
80
+ console.warn(`No post-megadropdown found with ID: ${this.for}`);
81
+ }
82
+ }
83
+ componentDidLoad() {
84
+ this.validateControlFor();
85
+ // Check if the mega dropdown attached to the trigger is expanded or not
86
+ document.addEventListener('postToggleMegadropdown', this.handleToggleMegadropdown);
87
+ this.slottedButton = this.host.querySelector('button');
88
+ if (this.slottedButton) {
89
+ this.slottedButton.setAttribute('aria-haspopup', 'menu');
90
+ this.slottedButton.addEventListener('click', () => {
91
+ this.handleToggle();
92
+ });
93
+ this.slottedButton.addEventListener('keydown', this.handleKeyDown);
94
+ }
95
+ else {
96
+ console.warn('No button found within post-megadropdown-trigger');
97
+ }
98
+ }
99
+ disconnectedCallback() {
100
+ document.removeEventListener('postToggleMegadropdown', this.handleToggleMegadropdown);
101
+ }
102
+ render() {
103
+ return (h(Host, { key: 'b5194e2160ffc439f3219807ec86196c01f60d31', "data-version": version, "tab-index": "-1" }, h("button", { key: '3bf811bc35c85fc570a0b6ba3af9b5f7765676cb' }, h("slot", { key: '15b6f17c8b812b43b4aec56b5396b4e194ccd711' }))));
104
+ }
105
+ get host() { return this; }
106
+ static get watchers() { return {
107
+ "for": ["validateControlFor"]
108
+ }; }
109
+ static get style() { return postMegadropdownTriggerCss; }
110
+ }, [4, "post-megadropdown-trigger", {
111
+ "for": [1],
112
+ "ariaExpanded": [32]
113
+ }, undefined, {
114
+ "for": ["validateControlFor"]
115
+ }]);
116
+ __decorate([
117
+ EventFrom('post-megadropdown', { ignoreNestedComponents: false })
118
+ ], PostMegadropdownTrigger$1.prototype, "handleToggleMegadropdown", void 0);
119
+ function defineCustomElement$1() {
120
+ if (typeof customElements === "undefined") {
121
+ return;
122
+ }
123
+ const components = ["post-megadropdown-trigger"];
124
+ components.forEach(tagName => { switch (tagName) {
125
+ case "post-megadropdown-trigger":
126
+ if (!customElements.get(tagName)) {
127
+ customElements.define(tagName, PostMegadropdownTrigger$1);
128
+ }
129
+ break;
130
+ } });
131
+ }
132
+ defineCustomElement$1();
133
+
134
+ const PostMegadropdownTrigger = PostMegadropdownTrigger$1;
135
+ const defineCustomElement = defineCustomElement$1;
136
+
137
+ export { PostMegadropdownTrigger, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../../types/components";
2
+
3
+ interface PostMegadropdown extends Components.PostMegadropdown, HTMLElement {}
4
+ export const PostMegadropdown: {
5
+ prototype: PostMegadropdown;
6
+ new (): PostMegadropdown;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,207 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
+ import { g as getFocusableChildren } from './p-C35MCWIp.js';
3
+ import { v as version } from './p-DO48NanC.js';
4
+ import { b as breakpoint } from './p-CJ80BZ06.js';
5
+
6
+ const postMegadropdownCss = "@keyframes slide-in{0%{transform:translateX(100%)}100%{transform:translateX(0%)}}@keyframes slide-out{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes slide-down{from{transform:translateY(-100%)}to{transform:translateY(0%)}}@keyframes slide-up{0%{transform:translateY(0%)}100%{transform:translateY(-100%)}}*,::before,::after{box-sizing:border-box}.megadropdown-container{box-shadow:0 8px 6px rgba(0,0,0,.16);position:absolute;background-color:#fafafa;border:none;z-index:1;width:100%;inset-block-start:100%;inset-inline-start:0;border-radius:0}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.megadropdown-container{border-block-end:1px solid CanvasText}}.megadropdown-container.slide-in{animation:slide-down 350ms forwards}.megadropdown-container.slide-out{animation:slide-up 350ms forwards}@media screen and (max-width: 1023.98px){.megadropdown-container{z-index:5;position:fixed;inset-block-start:var(--post-header-navigation-current-inset);inset-inline:0;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height));border-block-start:unset;overflow-y:auto;overscroll-behavior:contain}.megadropdown-container.slide-in{animation:slide-in 350ms forwards}.megadropdown-container.slide-out{animation:slide-out 350ms forwards}}@media screen and (min-width: 1024px){.megadropdown-container{max-height:calc(100vh - var(--post-header-height) - 48px);overflow-y:auto}}.megadropdown{padding:31px 40px 40px;background-color:#fafafa}@media screen and (max-width: 1023.98px){.megadropdown{display:flex;flex-direction:column;width:inherit;padding:16px 32px 24px}}@media screen and (max-width: 599.98px){.megadropdown{padding-inline:16px}}.megadropdown .megadropdown-content{gap:1.5rem;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(15vw, 100%), 1fr));grid-auto-rows:1fr auto;grid-auto-flow:dense}@media screen and (max-width: 1023.98px){.megadropdown .megadropdown-content{grid-template-columns:repeat(auto-fit, minmax(min(35vw, 100%), 1fr))}}@media screen and (max-width: 599.98px){.megadropdown .megadropdown-content{grid-template-columns:1fr}}.megadropdown h2{display:none;margin-block:0 8px;font-weight:900}.megadropdown h2 a{text-decoration:none;display:none;font-weight:inherit;border-block:0}@media screen and (max-width: 1023.98px){.megadropdown h2{display:block;font-size:1.25rem}}@media screen and (max-width: 599.98px){.megadropdown h2{font-size:1.125rem}}.megadropdown post-list{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0px}.megadropdown post-list>[role=list]{flex-direction:unset;display:unset}.megadropdown post-list>*{width:100%}.megadropdown post-list .list-title{display:flex;flex-direction:column-reverse;height:100%}.megadropdown post-list .list-title h3{font-size:20px;display:block;font-weight:900}.megadropdown post-list .list-title h3:not(:has(a)),.megadropdown post-list .list-title h3 a{padding:16px 12px 14px 8px}.megadropdown post-list .list-title h3:not(:has(a)){position:relative}.megadropdown post-list .list-title h3:not(:has(a))::before{content:\"\";background-color:#050400;inset-block-end:0;inset-inline-start:0;width:100%;height:2px;position:absolute}.megadropdown post-list .list-title h3 a{border-radius:0;text-decoration:none;font-size:inherit;display:flex;align-items:center;justify-content:space-between;min-height:53px;width:100%;min-width:100%;height:48px;padding-inline:8px 12px;gap:16px;font-weight:400;position:relative;height:unset;font-weight:900}.megadropdown post-list .list-title h3 a::before{content:\"\";background-color:#050400;bottom:0;width:100%;height:1px;position:absolute;left:0}.megadropdown post-list .list-title h3 a.selected,.megadropdown post-list .list-title h3 a[aria-current=page],.megadropdown post-list .list-title h3 a[aria-expanded=true]{background-color:#050400;color:#fff}.megadropdown post-list .list-title h3 a:hover{background-color:#504f4b;color:#fff}.megadropdown post-list .list-title h3 a:hover::before{background-color:#504f4b}.megadropdown post-list .list-title h3 a::before{height:2px}@media screen and (max-width: 1023.98px){.megadropdown post-list .list-title h3{font-size:1rem}.megadropdown post-list .list-title h3:not(:has(a)),.megadropdown post-list .list-title h3 a{padding:14px 12px 12px 8px}}@media screen and (max-width: 599.98px){.megadropdown post-list .list-title h3{font-size:.875rem}}.megadropdown post-list-item>a{padding-block:13px 12px;padding-inline-start:8px;display:flex;text-decoration:none;width:100%;min-width:100%;height:auto;min-height:48px;white-space:normal;word-break:break-word}.megadropdown post-list-item>a:hover{border-block-width:0}@media screen and (min-width: 1024px){.megadropdown post-list-item>a{font-size:1.25rem}}@media screen and (max-width: 1023.98px){.megadropdown post-list-item>a{padding-block:12px 11px}}@media screen and (max-width: 599.98px){.megadropdown post-list-item>a{font-size:.875rem}}.megadropdown .back-button{display:none;margin-block-end:2rem}.megadropdown .back-button .btn{width:auto}@media screen and (max-width: 1023.98px){.megadropdown .back-button{order:-1;display:block}}.megadropdown .close-button{position:absolute;inset-block-start:1rem;inset-inline-end:1rem}@media screen and (max-width: 1023.98px){.megadropdown .close-button{display:none}}";
7
+
8
+ const PostMegadropdown$1 = /*@__PURE__*/ proxyCustomElement(class PostMegadropdown extends H {
9
+ constructor() {
10
+ super();
11
+ this.__registerHost();
12
+ this.postToggleMegadropdown = createEvent(this, "postToggleMegadropdown");
13
+ this.device = breakpoint.get('device');
14
+ /**
15
+ * Holds the current visibility state of the dropdown.
16
+ * This state is internally managed to track whether the dropdown is open (`true`) or closed (`false`),
17
+ * and updates automatically when the dropdown is toggled.
18
+ */
19
+ this.isVisible = false;
20
+ this.trigger = false;
21
+ /** Holds the current animation class. */
22
+ this.animationClass = null;
23
+ this.handleClickOutside = (event) => {
24
+ if (this.device !== 'desktop')
25
+ return;
26
+ const target = event.target;
27
+ if (this.host.contains(target)) {
28
+ return;
29
+ }
30
+ if (target instanceof H) {
31
+ const trigger = target.closest('post-megadropdown-trigger');
32
+ if (trigger) {
33
+ const targetDropdownId = trigger.getAttribute('for');
34
+ if (targetDropdownId !== this.host.id) {
35
+ return;
36
+ }
37
+ }
38
+ }
39
+ this.hide(false);
40
+ };
41
+ }
42
+ breakpointChange(e) {
43
+ this.device = e.detail;
44
+ if (this.device === 'desktop' && this.isVisible) {
45
+ this.animationClass = null;
46
+ }
47
+ }
48
+ disconnectedCallback() {
49
+ this.removeListeners();
50
+ window.removeEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
51
+ if (PostMegadropdown.activeDropdown === this) {
52
+ PostMegadropdown.activeDropdown = null;
53
+ }
54
+ }
55
+ componentDidRender() {
56
+ this.getFocusableElements();
57
+ }
58
+ /**
59
+ * Toggles the dropdown visibility based on its current state.
60
+ */
61
+ async toggle() {
62
+ if (this.isVisible) {
63
+ this.hide();
64
+ }
65
+ else {
66
+ await this.show();
67
+ }
68
+ }
69
+ /**
70
+ * Displays the dropdown.
71
+ */
72
+ async show() {
73
+ if (PostMegadropdown.activeDropdown && PostMegadropdown.activeDropdown !== this) {
74
+ // Close the previously active dropdown without animation
75
+ PostMegadropdown.activeDropdown.forceClose();
76
+ }
77
+ this.animationClass = 'slide-in';
78
+ this.isVisible = true;
79
+ PostMegadropdown.activeDropdown = this;
80
+ this.postToggleMegadropdown.emit({ isVisible: this.isVisible });
81
+ if (this.firstFocusableEl &&
82
+ window.getComputedStyle(this.firstFocusableEl).display !== 'none') {
83
+ this.firstFocusableEl.focus();
84
+ }
85
+ this.addListeners();
86
+ }
87
+ /**
88
+ * Hides the dropdown with an animation.
89
+ */
90
+ async hide(focusParent = true, forceClose = false) {
91
+ this.postToggleMegadropdown.emit({ isVisible: false, focusParent: focusParent });
92
+ if (forceClose) {
93
+ this.forceClose();
94
+ }
95
+ else {
96
+ this.animationClass = 'slide-out';
97
+ }
98
+ }
99
+ /**
100
+ * Sets focus to the first focusable element within the component.
101
+ */
102
+ async focusFirst() {
103
+ this.firstFocusableEl?.focus();
104
+ }
105
+ connectedCallback() {
106
+ window.addEventListener('postBreakpoint:device', this.breakpointChange.bind(this));
107
+ }
108
+ /**
109
+ * Forces the dropdown to close without animation.
110
+ */
111
+ forceClose() {
112
+ this.isVisible = false;
113
+ this.animationClass = null;
114
+ this.postToggleMegadropdown.emit({ isVisible: this.isVisible, focusParent: false });
115
+ this.removeListeners();
116
+ }
117
+ handleAnimationEnd() {
118
+ if (this.animationClass === 'slide-out') {
119
+ this.isVisible = false;
120
+ this.animationClass = null;
121
+ PostMegadropdown.activeDropdown = null;
122
+ this.removeListeners();
123
+ }
124
+ }
125
+ addListeners() {
126
+ this.host.addEventListener('keydown', e => this.keyboardHandler(e));
127
+ document.addEventListener('keyup', e => this.handleTabOutside(e));
128
+ document.addEventListener('mousedown', this.handleClickOutside);
129
+ }
130
+ removeListeners() {
131
+ this.host.removeEventListener('keydown', e => this.keyboardHandler(e));
132
+ document.removeEventListener('keyup', e => this.handleTabOutside(e));
133
+ document.removeEventListener('mousedown', this.handleClickOutside);
134
+ }
135
+ getFocusableElements() {
136
+ const focusableEls = Array.from(this.host.querySelectorAll('post-list-item, h3, .back-button'));
137
+ const focusableChildren = focusableEls.flatMap(el => Array.from(getFocusableChildren(el)));
138
+ const hostId = this.host.getAttribute('id');
139
+ // Proceed if the host has an ID and one of its focusable children is marked as the current page (`aria-current="page"`)
140
+ if (hostId && focusableChildren.some(el => el.getAttribute('aria-current') === 'page')) {
141
+ // Find the trigger element via its "for" attribute, then locate its button and set `aria-current="page"`
142
+ document
143
+ .querySelector(`post-megadropdown-trigger[for="${hostId}"] > button`)
144
+ .classList.add('selected');
145
+ }
146
+ this.firstFocusableEl = focusableChildren[0];
147
+ this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
148
+ }
149
+ // Loop through the focusable children
150
+ keyboardHandler(e) {
151
+ if (e.key === 'Tab' && this.device !== 'desktop') {
152
+ if (e.shiftKey && document.activeElement === this.firstFocusableEl) {
153
+ // If back tab (TAB + Shift) and first element is focused, focus goes to the last element of the megadropdown
154
+ e.preventDefault();
155
+ this.lastFocusableEl.focus();
156
+ }
157
+ else if (!e.shiftKey && document.activeElement === this.lastFocusableEl) {
158
+ // If TAB and last element is focused, focus goes back to the first element of the megadropdown
159
+ e.preventDefault();
160
+ this.firstFocusableEl.focus();
161
+ }
162
+ }
163
+ }
164
+ handleTabOutside(e) {
165
+ if (e.key === 'Tab' && this.device === 'desktop') {
166
+ if (!this.host.contains(e.target)) {
167
+ this.hide(false);
168
+ }
169
+ }
170
+ }
171
+ render() {
172
+ const containerStyle = this.isVisible ? {} : { display: 'none' };
173
+ return (h(Host, { key: '18685d3da311fd0563a3c5a498df1e1fef96b524', version: version }, h("div", { key: 'fb3feb160e46b80ed60c202871152ac3f7862f83', class: `megadropdown-container ${this.animationClass || ''}`, style: containerStyle, onAnimationEnd: () => this.handleAnimationEnd() }, h("div", { key: '34e0d3e68bd9bfbeec8ebe37b8977076c91cfe02', class: "megadropdown" }, h("slot", { key: '67d17ec51f7436f2a8acc1216b37820ff999f985', name: "megadropdown-title" }), h("div", { key: '6671d31fcc17d435991a253f04a83bbe56551942', class: "megadropdown-content" }, h("slot", { key: 'd0d313a98202f2d502e4574bed8802682d4da6f3' })), h("div", { key: 'd42560e7a4f3142cb548a1ffb97ad391fd14871f', onClick: () => this.hide(true), class: "back-button" }, h("slot", { key: '76f0a36d5ca87834b9d857a8f13d53ecb82f9a24', name: "back-button" })), h("div", { key: 'a9ea0c1f24f5c997a1a4c9432f0c7d537b8d6da0', onClick: () => this.hide(true), class: "close-button" }, h("slot", { key: '1c815102d7f4d1e21aaaaffcf277d98454eda17d', name: "close-button" }))))));
174
+ }
175
+ get host() { return this; }
176
+ static get style() { return postMegadropdownCss; }
177
+ }, [4, "post-megadropdown", {
178
+ "device": [32],
179
+ "isVisible": [32],
180
+ "trigger": [32],
181
+ "animationClass": [32],
182
+ "toggle": [64],
183
+ "show": [64],
184
+ "hide": [64],
185
+ "focusFirst": [64]
186
+ }]);
187
+ /** Tracks the currently active dropdown instance. */
188
+ PostMegadropdown$1.activeDropdown = null;
189
+ function defineCustomElement$1() {
190
+ if (typeof customElements === "undefined") {
191
+ return;
192
+ }
193
+ const components = ["post-megadropdown"];
194
+ components.forEach(tagName => { switch (tagName) {
195
+ case "post-megadropdown":
196
+ if (!customElements.get(tagName)) {
197
+ customElements.define(tagName, PostMegadropdown$1);
198
+ }
199
+ break;
200
+ } });
201
+ }
202
+ defineCustomElement$1();
203
+
204
+ const PostMegadropdown = PostMegadropdown$1;
205
+ const defineCustomElement = defineCustomElement$1;
206
+
207
+ export { PostMegadropdown, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../../types/components";
2
+
3
+ interface PostMenuItem extends Components.PostMenuItem, HTMLElement {}
4
+ export const PostMenuItem: {
5
+ prototype: PostMenuItem;
6
+ new (): PostMenuItem;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { P as PostMenuItem$1, d as defineCustomElement$1 } from './p-DOo9tmN-.js';
2
+
3
+ const PostMenuItem = PostMenuItem$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { PostMenuItem, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../../types/components";
2
+
3
+ interface PostMenuTrigger extends Components.PostMenuTrigger, HTMLElement {}
4
+ export const PostMenuTrigger: {
5
+ prototype: PostMenuTrigger;
6
+ new (): PostMenuTrigger;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { P as PostMenuTrigger$1, d as defineCustomElement$1 } from './p-BDs0pvkX.js';
2
+
3
+ const PostMenuTrigger = PostMenuTrigger$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { PostMenuTrigger, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../../types/components";
2
+
3
+ interface PostMenu extends Components.PostMenu, HTMLElement {}
4
+ export const PostMenu: {
5
+ prototype: PostMenu;
6
+ new (): PostMenu;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { P as PostMenu$1, d as defineCustomElement$1 } from './p-D50E7y6E.js';
2
+
3
+ const PostMenu = PostMenu$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { PostMenu, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../../types/components";
2
+
3
+ interface PostPopover extends Components.PostPopover, HTMLElement {}
4
+ export const PostPopover: {
5
+ prototype: PostPopover;
6
+ new (): PostPopover;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;