@swisspost/design-system-components 9.0.0-next.7 → 9.0.0-next.9

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 (363) hide show
  1. package/dist/cjs/check-url-3ffdd2fb.js +14 -0
  2. package/dist/cjs/debounce-1151afe3.js +12 -0
  3. package/dist/cjs/{index-e1f32cce.js → index-010dc207.js} +24 -27
  4. package/dist/cjs/{index-824d2b71.js → index-5d4e0aed.js} +2 -12
  5. package/dist/cjs/index.cjs.js +47 -42
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/{package-bc44930e.js → package-8e810a59.js} +1 -1
  8. package/dist/cjs/{post-accordion-c55fef06.js → post-accordion-b9df8522.js} +3 -3
  9. package/dist/cjs/post-accordion-item-ecc6749f.js +63 -0
  10. package/dist/cjs/post-accordion-item.cjs.entry.js +5 -4
  11. package/dist/cjs/post-accordion.cjs.entry.js +3 -3
  12. package/dist/cjs/{post-avatar-10d7b5c0.js → post-avatar-f7236084.js} +2 -2
  13. package/dist/cjs/post-avatar.cjs.entry.js +3 -3
  14. package/dist/cjs/post-back-to-top-60762f8e.js +75 -0
  15. package/dist/cjs/post-back-to-top.cjs.entry.js +15 -0
  16. package/dist/cjs/{post-banner-b286d37f.js → post-banner-9662f22c.js} +6 -6
  17. package/dist/cjs/post-banner.cjs.entry.js +5 -4
  18. package/dist/cjs/post-breadcrumb-b40732fc.js +111 -0
  19. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +17 -0
  20. package/dist/cjs/post-breadcrumb.cjs.entry.js +13 -0
  21. package/dist/cjs/post-card-control-039c9a4b.js +272 -0
  22. package/dist/cjs/post-card-control.cjs.entry.js +3 -3
  23. package/dist/cjs/post-closebutton_15.cjs.entry.js +33 -0
  24. package/dist/cjs/{post-collapsible-trigger-c8b3e767.js → post-collapsible-trigger-143cf84a.js} +6 -14
  25. package/dist/cjs/post-collapsible_2.cjs.entry.js +6 -4
  26. package/dist/cjs/post-components.cjs.js +2 -2
  27. package/dist/cjs/post-footer-5f7fdf96.js +84 -0
  28. package/dist/cjs/post-footer.cjs.entry.js +11 -0
  29. package/dist/cjs/post-menu-item-bb0b0b9e.js +74 -0
  30. package/dist/cjs/{post-popover-91a83e9d.js → post-popover-d0ce9dc6.js} +3 -3
  31. package/dist/cjs/post-popover.cjs.entry.js +3 -3
  32. package/dist/cjs/{post-rating-57fcf949.js → post-rating-1082197c.js} +3 -3
  33. package/dist/cjs/post-rating.cjs.entry.js +3 -3
  34. package/dist/cjs/{post-tab-header-ce56b760.js → post-tab-header-4b6d8d54.js} +3 -3
  35. package/dist/cjs/post-tab-header.cjs.entry.js +3 -3
  36. package/dist/cjs/{post-tab-panel-70e49260.js → post-tab-panel-60f211a5.js} +3 -3
  37. package/dist/cjs/post-tab-panel.cjs.entry.js +3 -3
  38. package/dist/cjs/{post-tabs-39262e55.js → post-tabs-1f797ce4.js} +8 -6
  39. package/dist/cjs/post-tabs.cjs.entry.js +3 -3
  40. package/dist/cjs/{post-tag-b6bc5785.js → post-tag-ddaaaedc.js} +3 -3
  41. package/dist/cjs/post-tag.cjs.entry.js +3 -3
  42. package/dist/cjs/{post-megadropdown-trigger-9b9f1036.js → post-togglebutton-0984a694.js} +1789 -1234
  43. package/dist/cjs/{post-tooltip-8be3b2aa.js → post-tooltip-38c839a4.js} +4 -4
  44. package/dist/cjs/post-tooltip.cjs.entry.js +5 -4
  45. package/dist/cjs/slide-5d51abe8.js +28 -0
  46. package/dist/collection/animations/slide.js +23 -0
  47. package/dist/collection/collection-manifest.json +13 -9
  48. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  49. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  50. package/dist/collection/components/post-accordion-item/post-accordion-item.js +22 -7
  51. package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -0
  52. package/dist/collection/components/post-back-to-top/post-back-to-top.js +107 -0
  53. package/dist/collection/components/post-banner/post-banner.js +3 -3
  54. package/dist/collection/components/post-breadcrumb/post-breadcrumb.css +3 -0
  55. package/dist/collection/components/post-breadcrumb/post-breadcrumb.js +161 -0
  56. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -1
  57. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +11 -1
  58. package/dist/collection/components/post-card-control/post-card-control.css +1 -1
  59. package/dist/collection/components/post-card-control/post-card-control.js +2 -2
  60. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
  61. package/dist/collection/components/post-collapsible/post-collapsible.js +1 -1
  62. package/dist/collection/components/post-footer/post-footer.css +1 -0
  63. package/dist/collection/components/post-footer/post-footer.js +75 -0
  64. package/dist/collection/components/post-header/post-header.css +1 -1
  65. package/dist/collection/components/post-header/post-header.js +74 -17
  66. package/dist/collection/components/post-icon/post-icon.js +1 -1
  67. package/dist/collection/components/post-language-option/post-language-option.css +1 -1
  68. package/dist/collection/components/post-language-option/post-language-option.js +25 -1
  69. package/dist/collection/components/post-language-switch/post-language-switch.css +1 -0
  70. package/dist/collection/components/post-language-switch/post-language-switch.js +163 -0
  71. package/dist/collection/components/post-language-switch/switch-variants.js +1 -0
  72. package/dist/collection/components/post-list/post-list.css +1 -1
  73. package/dist/collection/components/post-list/post-list.js +3 -3
  74. package/dist/collection/components/post-list-item/post-list-item.js +1 -1
  75. package/dist/collection/components/post-logo/post-logo.js +1 -1
  76. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  77. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +15 -24
  78. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  79. package/dist/collection/components/post-megadropdown/post-megadropdown.js +82 -68
  80. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -1
  81. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +80 -24
  82. package/dist/collection/components/post-menu/post-menu.js +6 -4
  83. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  84. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +11 -1
  85. package/dist/collection/components/post-popover/post-popover.js +1 -1
  86. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +2 -2
  87. package/dist/collection/components/post-rating/post-rating.js +1 -1
  88. package/dist/collection/components/post-tab-header/post-tab-header.js +1 -1
  89. package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
  90. package/dist/collection/components/post-tabs/post-tabs.js +6 -4
  91. package/dist/collection/components/post-tag/post-tag.js +1 -1
  92. package/dist/collection/components/post-togglebutton/post-togglebutton.css +1 -1
  93. package/dist/collection/components/post-togglebutton/post-togglebutton.js +24 -6
  94. package/dist/collection/components/post-tooltip/post-tooltip.js +1 -1
  95. package/dist/collection/index.js +13 -9
  96. package/dist/collection/utils/breakpoints.js +46 -0
  97. package/dist/components/debounce.js +10 -0
  98. package/dist/components/index.js +13 -9
  99. package/dist/components/index2.js +1 -1
  100. package/dist/components/package.js +1 -1
  101. package/dist/components/post-accordion-item2.js +29 -11
  102. package/dist/components/post-accordion2.js +1 -1
  103. package/dist/components/post-back-to-top.d.ts +11 -0
  104. package/dist/components/post-back-to-top.js +6 -0
  105. package/dist/components/post-back-to-top2.js +100 -0
  106. package/dist/components/post-banner2.js +3 -3
  107. package/dist/components/post-breadcrumb-item2.js +13 -3
  108. package/dist/components/post-breadcrumb.d.ts +11 -0
  109. package/dist/components/post-breadcrumb.js +6 -0
  110. package/dist/components/post-breadcrumb2.js +168 -0
  111. package/dist/components/post-card-control2.js +3 -3
  112. package/dist/components/post-closebutton2.js +1 -1
  113. package/dist/components/post-collapsible-trigger2.js +1 -9
  114. package/dist/components/post-collapsible2.js +2 -2
  115. package/dist/components/post-footer.d.ts +11 -0
  116. package/dist/components/post-footer.js +6 -0
  117. package/dist/components/post-footer2.js +124 -0
  118. package/dist/components/post-header2.js +55 -14
  119. package/dist/components/post-icon2.js +2 -2
  120. package/dist/components/post-language-option2.js +5 -3
  121. package/dist/components/post-language-switch.d.ts +11 -0
  122. package/dist/components/post-language-switch.js +6 -0
  123. package/dist/components/post-language-switch2.js +146 -0
  124. package/dist/components/post-list-item2.js +1 -1
  125. package/dist/components/post-list2.js +4 -4
  126. package/dist/components/post-logo2.js +2 -2
  127. package/dist/components/post-mainnavigation2.js +17 -17
  128. package/dist/components/post-megadropdown-trigger2.js +63 -11
  129. package/dist/components/post-megadropdown2.js +48 -22
  130. package/dist/components/post-menu-item2.js +1 -1
  131. package/dist/components/post-menu-trigger2.js +11 -1
  132. package/dist/components/post-menu2.js +6 -4
  133. package/dist/components/post-popover2.js +1 -1
  134. package/dist/components/post-popovercontainer2.js +2 -2
  135. package/dist/components/post-rating2.js +1 -1
  136. package/dist/components/post-tab-header2.js +1 -1
  137. package/dist/components/post-tab-panel2.js +1 -1
  138. package/dist/components/post-tabs2.js +6 -4
  139. package/dist/components/post-tag2.js +1 -1
  140. package/dist/components/post-togglebutton2.js +23 -5
  141. package/dist/components/post-tooltip2.js +2 -2
  142. package/dist/components/slide.js +25 -0
  143. package/dist/docs.json +565 -123
  144. package/dist/esm/check-url-a974431e.js +12 -0
  145. package/dist/esm/debounce-abe98cc2.js +10 -0
  146. package/dist/esm/{index-f8a00dc0.js → index-b49c9904.js} +1 -11
  147. package/dist/esm/{index-e1b64755.js → index-fb8d6be7.js} +24 -27
  148. package/dist/esm/index.js +25 -24
  149. package/dist/esm/loader.js +3 -3
  150. package/dist/esm/package-4d81f3c2.js +3 -0
  151. package/dist/esm/{post-accordion-7268e29b.js → post-accordion-ee54a3ef.js} +3 -3
  152. package/dist/esm/post-accordion-item-e10452dc.js +61 -0
  153. package/dist/esm/post-accordion-item.entry.js +5 -4
  154. package/dist/esm/post-accordion.entry.js +3 -3
  155. package/dist/esm/{post-avatar-19162f90.js → post-avatar-5572fa73.js} +2 -2
  156. package/dist/esm/post-avatar.entry.js +3 -3
  157. package/dist/esm/post-back-to-top-1d823c43.js +73 -0
  158. package/dist/esm/post-back-to-top.entry.js +7 -0
  159. package/dist/esm/{post-banner-132709ad.js → post-banner-78480475.js} +6 -6
  160. package/dist/esm/post-banner.entry.js +5 -4
  161. package/dist/esm/post-breadcrumb-aaa77f74.js +109 -0
  162. package/dist/esm/post-breadcrumb-item_2.entry.js +8 -0
  163. package/dist/esm/post-breadcrumb.entry.js +5 -0
  164. package/dist/esm/post-card-control-862aa961.js +270 -0
  165. package/dist/esm/post-card-control.entry.js +3 -3
  166. package/dist/esm/post-closebutton_15.entry.js +11 -0
  167. package/dist/esm/{post-collapsible-trigger-43fbbf03.js → post-collapsible-trigger-1c7833f8.js} +5 -13
  168. package/dist/esm/post-collapsible_2.entry.js +6 -4
  169. package/dist/esm/post-components.js +3 -3
  170. package/dist/esm/post-footer-b18875e7.js +82 -0
  171. package/dist/esm/post-footer.entry.js +3 -0
  172. package/dist/esm/post-menu-item-2906384b.js +71 -0
  173. package/dist/esm/{post-popover-abae1f3a.js → post-popover-2432bb3f.js} +3 -3
  174. package/dist/esm/post-popover.entry.js +3 -3
  175. package/dist/esm/{post-rating-b963d4f2.js → post-rating-95cbdbb8.js} +3 -3
  176. package/dist/esm/post-rating.entry.js +3 -3
  177. package/dist/esm/{post-tab-header-c16feb72.js → post-tab-header-dfea00ea.js} +3 -3
  178. package/dist/esm/post-tab-header.entry.js +3 -3
  179. package/dist/esm/{post-tab-panel-cb02df49.js → post-tab-panel-cafd9e04.js} +3 -3
  180. package/dist/esm/post-tab-panel.entry.js +3 -3
  181. package/dist/esm/{post-tabs-81085d7b.js → post-tabs-beef8eae.js} +8 -6
  182. package/dist/esm/post-tabs.entry.js +3 -3
  183. package/dist/esm/{post-tag-103bfff5.js → post-tag-a77e7af6.js} +3 -3
  184. package/dist/esm/post-tag.entry.js +3 -3
  185. package/dist/esm/{post-megadropdown-trigger-813b5140.js → post-togglebutton-395bf3f0.js} +1785 -1235
  186. package/dist/esm/{post-tooltip-2c5ff736.js → post-tooltip-b298039a.js} +4 -4
  187. package/dist/esm/post-tooltip.entry.js +5 -4
  188. package/dist/esm/slide-3422b8a3.js +25 -0
  189. package/dist/post-components/index.esm.js +1 -1
  190. package/dist/post-components/p-0711f76d.entry.js +1 -0
  191. package/dist/post-components/p-095a06f6.entry.js +1 -0
  192. package/dist/post-components/p-0b5a5f32.js +1 -0
  193. package/dist/post-components/p-135fa60f.js +1 -0
  194. package/dist/post-components/p-18e38d8a.js +1 -0
  195. package/dist/post-components/p-2e1ec074.entry.js +1 -0
  196. package/dist/post-components/p-4202b433.entry.js +1 -0
  197. package/dist/post-components/p-45773f59.js +1 -0
  198. package/dist/post-components/{p-bb103905.js → p-4953de7e.js} +1 -1
  199. package/dist/post-components/p-4f67c5f5.entry.js +1 -0
  200. package/dist/post-components/{p-6f56a13d.js → p-4f9746f6.js} +2 -2
  201. package/dist/post-components/p-5075c672.entry.js +1 -0
  202. package/dist/post-components/p-515e0f96.js +1 -0
  203. package/dist/post-components/p-5467b223.js +1 -0
  204. package/dist/post-components/p-67036798.entry.js +1 -0
  205. package/dist/post-components/{p-c819933c.js → p-6d953fb2.js} +1 -1
  206. package/dist/post-components/p-6edb0ac5.js +1 -0
  207. package/dist/post-components/{p-fa7af203.js → p-6f8f39ca.js} +1 -1
  208. package/dist/post-components/p-7503a623.js +1 -0
  209. package/dist/post-components/p-761b24c7.entry.js +1 -0
  210. package/dist/post-components/{p-0f699dbc.js → p-77c4c1d2.js} +1 -1
  211. package/dist/post-components/p-7cf0c2ad.js +1 -0
  212. package/dist/post-components/p-856c14d6.entry.js +1 -0
  213. package/dist/post-components/p-866bf50a.entry.js +1 -0
  214. package/dist/post-components/p-8d621781.js +1 -0
  215. package/dist/post-components/p-8fe2d72c.entry.js +1 -0
  216. package/dist/post-components/p-9ad5088f.entry.js +1 -0
  217. package/dist/post-components/{p-8b6f7f04.js → p-a1d2b90e.js} +1 -1
  218. package/dist/post-components/p-a521419d.entry.js +1 -0
  219. package/dist/post-components/p-aa538648.js +1 -0
  220. package/dist/post-components/p-afdbee2f.js +1 -0
  221. package/dist/post-components/p-b02817f2.entry.js +1 -0
  222. package/dist/post-components/p-b157dcba.entry.js +1 -0
  223. package/dist/post-components/p-b22656b1.js +1 -0
  224. package/dist/post-components/{p-ed834dde.js → p-bdbd11cb.js} +1 -1
  225. package/dist/post-components/{p-3eab790d.js → p-c0ae9886.js} +1 -1
  226. package/dist/post-components/p-c537e196.entry.js +1 -0
  227. package/dist/post-components/p-d4f93f2b.js +1 -0
  228. package/dist/post-components/p-dca4246a.entry.js +1 -0
  229. package/dist/post-components/p-f319b026.js +1 -0
  230. package/dist/post-components/p-f4b7b379.js +1 -0
  231. package/dist/post-components/p-fac66087.entry.js +1 -0
  232. package/dist/post-components/post-components.esm.js +1 -1
  233. package/dist/types/animations/slide.d.ts +2 -0
  234. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +7 -1
  235. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +19 -0
  236. package/dist/types/components/post-breadcrumb/post-breadcrumb.d.ts +30 -0
  237. package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +1 -0
  238. package/dist/types/components/post-footer/post-footer.d.ts +23 -0
  239. package/dist/types/components/post-header/post-header.d.ts +13 -5
  240. package/dist/types/components/post-language-option/post-language-option.d.ts +5 -0
  241. package/dist/types/components/post-language-switch/post-language-switch.d.ts +31 -0
  242. package/dist/types/components/post-language-switch/switch-variants.d.ts +2 -0
  243. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +10 -1
  244. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +24 -12
  245. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +20 -5
  246. package/dist/types/components/post-menu/post-menu.d.ts +1 -0
  247. package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +4 -2
  248. package/dist/types/components.d.ts +150 -29
  249. package/dist/types/index.d.ts +13 -9
  250. package/dist/types/utils/breakpoints.d.ts +11 -0
  251. package/loaders/debounce.js +10 -0
  252. package/loaders/index.d.ts +8 -0
  253. package/loaders/index.js +4 -0
  254. package/loaders/index2.js +1 -1
  255. package/loaders/package.js +1 -1
  256. package/loaders/post-accordion-item.js +1 -82
  257. package/loaders/post-accordion-item2.js +102 -0
  258. package/loaders/post-accordion.js +1 -1
  259. package/loaders/post-back-to-top.d.ts +11 -0
  260. package/loaders/post-back-to-top.js +103 -0
  261. package/loaders/post-banner.js +4 -4
  262. package/loaders/post-breadcrumb-item.js +1 -70
  263. package/loaders/post-breadcrumb-item2.js +82 -0
  264. package/loaders/post-breadcrumb.d.ts +11 -0
  265. package/loaders/post-breadcrumb.js +171 -0
  266. package/loaders/post-card-control.js +3 -3
  267. package/loaders/post-closebutton.js +1 -1
  268. package/loaders/post-collapsible-trigger2.js +1 -9
  269. package/loaders/post-collapsible2.js +1 -1
  270. package/loaders/post-footer.d.ts +11 -0
  271. package/loaders/post-footer.js +127 -0
  272. package/loaders/post-header.js +55 -14
  273. package/loaders/post-icon2.js +2 -2
  274. package/loaders/post-language-option.js +4 -2
  275. package/loaders/post-language-switch.d.ts +11 -0
  276. package/loaders/post-language-switch.js +149 -0
  277. package/loaders/post-list-item.js +1 -1
  278. package/loaders/post-list.js +4 -4
  279. package/loaders/post-logo.js +2 -2
  280. package/loaders/post-mainnavigation.js +17 -17
  281. package/loaders/post-megadropdown-trigger.js +63 -11
  282. package/loaders/post-megadropdown.js +48 -22
  283. package/loaders/post-menu-item.js +1 -31
  284. package/loaders/post-menu-item2.js +33 -0
  285. package/loaders/post-menu-trigger.js +1 -90
  286. package/{dist/esm/post-menu-trigger-b84f728d.js → loaders/post-menu-trigger2.js} +41 -12
  287. package/loaders/post-menu.js +1 -199
  288. package/{dist/esm/post-menu-62c3e49a.js → loaders/post-menu2.js} +42 -13
  289. package/loaders/post-popover.js +1 -1
  290. package/loaders/post-popovercontainer2.js +2 -2
  291. package/loaders/post-rating.js +1 -1
  292. package/loaders/post-tab-header.js +1 -1
  293. package/loaders/post-tab-panel.js +1 -1
  294. package/loaders/post-tabs.js +6 -4
  295. package/loaders/post-tag.js +1 -1
  296. package/loaders/post-togglebutton.js +23 -5
  297. package/loaders/post-tooltip.js +1 -1
  298. package/loaders/slide.js +25 -0
  299. package/package.json +6 -4
  300. package/dist/cjs/post-accordion-item-641f0b42.js +0 -52
  301. package/dist/cjs/post-breadcrumb-item-8cdc59a8.js +0 -49
  302. package/dist/cjs/post-breadcrumb-item.cjs.entry.js +0 -15
  303. package/dist/cjs/post-card-control-fc4aca2a.js +0 -272
  304. package/dist/cjs/post-closebutton_10.cjs.entry.js +0 -25
  305. package/dist/cjs/post-language-option-8c1ec4fd.js +0 -68
  306. package/dist/cjs/post-language-option.cjs.entry.js +0 -15
  307. package/dist/cjs/post-menu-5a71a6fe.js +0 -176
  308. package/dist/cjs/post-menu-item-5c5c1aaf.js +0 -20
  309. package/dist/cjs/post-menu-item.cjs.entry.js +0 -11
  310. package/dist/cjs/post-menu-trigger-02d128c4.js +0 -75
  311. package/dist/cjs/post-menu-trigger.cjs.entry.js +0 -13
  312. package/dist/cjs/post-menu.cjs.entry.js +0 -11
  313. package/dist/cjs/post-togglebutton-2f39442e.js +0 -28
  314. package/dist/cjs/post-togglebutton.cjs.entry.js +0 -11
  315. package/dist/esm/package-180da9f3.js +0 -3
  316. package/dist/esm/post-accordion-item-a5a76abb.js +0 -50
  317. package/dist/esm/post-breadcrumb-item-5a77f988.js +0 -47
  318. package/dist/esm/post-breadcrumb-item.entry.js +0 -7
  319. package/dist/esm/post-card-control-5be9c80a.js +0 -270
  320. package/dist/esm/post-closebutton_10.entry.js +0 -8
  321. package/dist/esm/post-language-option-f41240c3.js +0 -66
  322. package/dist/esm/post-language-option.entry.js +0 -7
  323. package/dist/esm/post-menu-item-f63a1521.js +0 -18
  324. package/dist/esm/post-menu-item.entry.js +0 -3
  325. package/dist/esm/post-menu-trigger.entry.js +0 -5
  326. package/dist/esm/post-menu.entry.js +0 -3
  327. package/dist/esm/post-togglebutton-0e714838.js +0 -26
  328. package/dist/esm/post-togglebutton.entry.js +0 -3
  329. package/dist/post-components/p-0338f9da.js +0 -1
  330. package/dist/post-components/p-06980a04.js +0 -1
  331. package/dist/post-components/p-0af7dfbb.js +0 -1
  332. package/dist/post-components/p-12262945.entry.js +0 -1
  333. package/dist/post-components/p-2504dace.entry.js +0 -1
  334. package/dist/post-components/p-27343d32.entry.js +0 -1
  335. package/dist/post-components/p-2a456317.js +0 -1
  336. package/dist/post-components/p-2c3980d2.js +0 -1
  337. package/dist/post-components/p-31d38040.js +0 -1
  338. package/dist/post-components/p-339e000e.entry.js +0 -1
  339. package/dist/post-components/p-3b325360.entry.js +0 -1
  340. package/dist/post-components/p-3e65ba47.js +0 -1
  341. package/dist/post-components/p-3f417208.entry.js +0 -1
  342. package/dist/post-components/p-4922deaf.entry.js +0 -1
  343. package/dist/post-components/p-6c7546b8.entry.js +0 -1
  344. package/dist/post-components/p-7eee2b6a.js +0 -1
  345. package/dist/post-components/p-816623f0.entry.js +0 -1
  346. package/dist/post-components/p-83cd3885.entry.js +0 -1
  347. package/dist/post-components/p-9abe554b.js +0 -1
  348. package/dist/post-components/p-9ea6103e.entry.js +0 -1
  349. package/dist/post-components/p-a0a7c2c1.entry.js +0 -1
  350. package/dist/post-components/p-abf9ffdc.entry.js +0 -1
  351. package/dist/post-components/p-b4a2c7b7.entry.js +0 -1
  352. package/dist/post-components/p-b7ef401f.js +0 -1
  353. package/dist/post-components/p-b8a9cf2d.js +0 -1
  354. package/dist/post-components/p-ccd8a221.entry.js +0 -1
  355. package/dist/post-components/p-cfc1727f.entry.js +0 -1
  356. package/dist/post-components/p-d4465c2b.js +0 -1
  357. package/dist/post-components/p-d4cef624.js +0 -1
  358. package/dist/post-components/p-da449573.js +0 -1
  359. package/dist/post-components/p-df5bdda5.entry.js +0 -1
  360. package/dist/post-components/p-f1416918.entry.js +0 -1
  361. package/dist/post-components/p-f171b18b.entry.js +0 -1
  362. package/dist/post-components/p-f4dbd35f.entry.js +0 -1
  363. package/dist/post-components/p-f6b44820.js +0 -1
@@ -0,0 +1,163 @@
1
+ import { Host, h } from "@stencil/core";
2
+ import { checkEmptyOrOneOf, checkType } from "../../utils/index";
3
+ import { version } from "../../../../package";
4
+ import { SWITCH_VARIANTS } from "./switch-variants";
5
+ import { nanoid } from "nanoid";
6
+ export class PostLanguageSwitch {
7
+ constructor() {
8
+ this.menuId = `p${nanoid(11)}`;
9
+ this.caption = undefined;
10
+ this.description = undefined;
11
+ this.variant = 'list';
12
+ this.activeLang = undefined;
13
+ }
14
+ validateCaption(value = this.caption) {
15
+ checkType(value, 'string', 'The "caption" property of the post-language-switch component must be a string.');
16
+ }
17
+ validateDescription(value = this.description) {
18
+ checkType(value, 'string', 'The "description" property of the post-language-switch component must be a string.');
19
+ }
20
+ validateVariant(value = this.variant) {
21
+ checkEmptyOrOneOf(value, SWITCH_VARIANTS, `The "variant" property of the post-language-switch component must be: ${SWITCH_VARIANTS.join(', ')}`);
22
+ }
23
+ connectedCallback() {
24
+ this.updateChildrenVariant();
25
+ // Get the active language based on children's active state
26
+ this.activeLang = Array.from(this.host.querySelectorAll('post-language-option'))
27
+ .find(el => el.getAttribute('active') == 'true')
28
+ .getAttribute('code');
29
+ }
30
+ // Update post-language-option variant to have the correct style
31
+ updateChildrenVariant() {
32
+ this.host.querySelectorAll('post-language-option').forEach(el => {
33
+ el.setAttribute('variant', this.variant);
34
+ });
35
+ }
36
+ componentShouldUpdate() {
37
+ this.updateChildrenVariant();
38
+ }
39
+ componentDidLoad() {
40
+ this.validateCaption();
41
+ this.validateDescription();
42
+ this.validateVariant();
43
+ // Detects a change in the active language
44
+ this.host.addEventListener('postChange', (el) => {
45
+ this.activeLang = el.detail;
46
+ // Update the active state in the children post-language-option components
47
+ this.host.querySelectorAll('post-language-option').forEach(lang => {
48
+ if (lang.code && lang.code === this.activeLang) {
49
+ lang.setAttribute('active', 'true');
50
+ }
51
+ else {
52
+ lang.setAttribute('active', 'false');
53
+ }
54
+ });
55
+ // Hides the dropdown when an option has been clicked
56
+ if (this.variant === 'dropdown') {
57
+ const menu = this.host.shadowRoot.querySelector('post-menu');
58
+ menu.toggle(menu);
59
+ }
60
+ });
61
+ }
62
+ renderList() {
63
+ return (h(Host, { "data-version": version, "aria-label": `${this.caption}, ${this.description}`, "aria-role": "list" }, h("slot", null)));
64
+ }
65
+ renderDropdown() {
66
+ return (h(Host, { "data-version": version }, h("post-menu-trigger", { for: this.menuId }, h("button", { class: "post-language-switch-trigger", "aria-label": `${this.caption}, ${this.description}` }, this.activeLang.toUpperCase(), h("post-icon", { "aria-hidden": "true", name: "chevrondown" }))), h("post-menu", { id: this.menuId }, h("div", { class: "post-language-switch-dropdown-container" }, h("slot", null)))));
67
+ }
68
+ render() {
69
+ return this.variant === 'list' ? this.renderList() : this.renderDropdown();
70
+ }
71
+ static get is() { return "post-language-switch"; }
72
+ static get encapsulation() { return "shadow"; }
73
+ static get originalStyleUrls() {
74
+ return {
75
+ "$": ["post-language-switch.scss"]
76
+ };
77
+ }
78
+ static get styleUrls() {
79
+ return {
80
+ "$": ["post-language-switch.css"]
81
+ };
82
+ }
83
+ static get properties() {
84
+ return {
85
+ "caption": {
86
+ "type": "string",
87
+ "mutable": false,
88
+ "complexType": {
89
+ "original": "string",
90
+ "resolved": "string",
91
+ "references": {}
92
+ },
93
+ "required": false,
94
+ "optional": false,
95
+ "docs": {
96
+ "tags": [],
97
+ "text": "A title for the list of language options"
98
+ },
99
+ "attribute": "caption",
100
+ "reflect": false
101
+ },
102
+ "description": {
103
+ "type": "string",
104
+ "mutable": false,
105
+ "complexType": {
106
+ "original": "string",
107
+ "resolved": "string",
108
+ "references": {}
109
+ },
110
+ "required": false,
111
+ "optional": false,
112
+ "docs": {
113
+ "tags": [],
114
+ "text": "A descriptive text for the list of language options"
115
+ },
116
+ "attribute": "description",
117
+ "reflect": false
118
+ },
119
+ "variant": {
120
+ "type": "string",
121
+ "mutable": false,
122
+ "complexType": {
123
+ "original": "SwitchVariant",
124
+ "resolved": "\"dropdown\" | \"list\"",
125
+ "references": {
126
+ "SwitchVariant": {
127
+ "location": "import",
128
+ "path": "./switch-variants",
129
+ "id": "src/components/post-language-switch/switch-variants.ts::SwitchVariant"
130
+ }
131
+ }
132
+ },
133
+ "required": false,
134
+ "optional": false,
135
+ "docs": {
136
+ "tags": [],
137
+ "text": "Variant that determines the rendering of the language switch either as a list (used on mobile in the header) or a dropdown (used on desktop in the header)"
138
+ },
139
+ "attribute": "variant",
140
+ "reflect": false,
141
+ "defaultValue": "'list'"
142
+ }
143
+ };
144
+ }
145
+ static get states() {
146
+ return {
147
+ "activeLang": {}
148
+ };
149
+ }
150
+ static get elementRef() { return "host"; }
151
+ static get watchers() {
152
+ return [{
153
+ "propName": "caption",
154
+ "methodName": "validateCaption"
155
+ }, {
156
+ "propName": "description",
157
+ "methodName": "validateDescription"
158
+ }, {
159
+ "propName": "variant",
160
+ "methodName": "validateVariant"
161
+ }];
162
+ }
163
+ }
@@ -0,0 +1 @@
1
+ export const SWITCH_VARIANTS = ['list', 'dropdown'];
@@ -1,3 +1,3 @@
1
1
  /*!
2
2
  * Copyright 2021 by Swiss Post, Information Technology
3
- */post-list{display:flex;gap:var(--post-list-title-gap);flex-direction:column;align-items:flex-start}post-list>div[role=list]{flex-direction:column;display:flex;gap:var(--post-list-item-gap)}post-list[horizontal]:not([horizontal=false]){flex-direction:row;align-items:baseline}post-list[horizontal]:not([horizontal=false])>div[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}
3
+ */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}
@@ -14,7 +14,7 @@ export class PostList {
14
14
  /**
15
15
  * Get the id set on the host element or use a random id by default
16
16
  */
17
- this.titleId = `list-${crypto.randomUUID()}`;
17
+ this.titleId = `title-${this.host.id || crypto.randomUUID()}`;
18
18
  }
19
19
  componentDidLoad() {
20
20
  this.checkTitle();
@@ -25,7 +25,7 @@ export class PostList {
25
25
  }
26
26
  }
27
27
  render() {
28
- return (h(Host, { key: '7126a864e6c4d8152c9024bd8d390514bc8c0b7a', "data-version": version }, h("div", { key: 'c3f56a0e41146dc5dbd2c3fc165152e05953956f', ref: el => (this.titleEl = el), id: this.titleId, class: `list-title${this.titleHidden ? ' visually-hidden' : ''}` }, h("slot", { key: '3de0cd83b48ef3a3201f854842781ccba9bedf29' })), h("div", { key: '4b8a4ac0a9c89451a408cc8de814878dc8da11b7', role: "list", "aria-labelledby": this.titleId }, h("slot", { key: '474d87804fc39241a0f3541a82bdfbe1491a4452', name: "post-list-item" }))));
28
+ return (h(Host, { key: '4f982e717530514589c5528553b70463d678b676', "data-version": version }, h("div", { key: 'cc65ed208f48e7a22482af96fd069d05363f2617', ref: el => (this.titleEl = el), id: this.titleId, class: `list-title${this.titleHidden ? ' visually-hidden' : ''}` }, h("slot", { key: '0f8bbeade50b59e53767ce2169dd57bb79644705' })), h("div", { key: '7fa5de37a169e6f76928c2088c46ee747427887e', role: "list", "aria-labelledby": this.titleId }, h("slot", { key: '86b4d71b83671babb61dd12e842710d67350a09e', name: "post-list-item" }))));
29
29
  }
30
30
  static get is() { return "post-list"; }
31
31
  static get originalStyleUrls() {
@@ -73,7 +73,7 @@ export class PostList {
73
73
  "text": "The list can become horizontal by setting `horizontal=\"true\"` or just `horizontal`"
74
74
  },
75
75
  "attribute": "horizontal",
76
- "reflect": false,
76
+ "reflect": true,
77
77
  "defaultValue": "false"
78
78
  }
79
79
  };
@@ -7,7 +7,7 @@ export class PostListItem {
7
7
  this.host.setAttribute('slot', 'post-list-item');
8
8
  }
9
9
  render() {
10
- return (h(Host, { key: '25532c40e8f02f335df6b112041cbaf6056576b6', role: "listitem" }, h("slot", { key: '46ddc9e27c71040b271ab6bd59db2ac37fa4a112' })));
10
+ return (h(Host, { key: 'aa9a31c64e3e8ba5dcac1d03b54ab3c886149c1f', role: "listitem", slot: "post-list-item" }, h("slot", { key: '06353140f8917fc5373de6d56708467af2ef52b2' })));
11
11
  }
12
12
  static get is() { return "post-list-item"; }
13
13
  static get encapsulation() { return "shadow"; }
@@ -23,7 +23,7 @@ export class PostLogo {
23
23
  render() {
24
24
  const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
25
25
  const LogoTag = logoLink ? 'a' : 'span';
26
- return (h(Host, { key: 'd3dd408c30b4e22712b9a293906c7334e7d1852b', "data-version": version, slot: "post-logo" }, h(LogoTag, Object.assign({ key: '4eb08a4d1b4a0ec2557b63678225a16d287c692c', class: "logo" }, (logoLink ? { href: logoLink } : {})), h("span", { key: 'ab3b1a8da4a7b87aa0a020d47586a7018619e9c3', class: "description" }, h("slot", { key: 'a9c39b1f2f54fd4ceb79a82ab30571c161a29adb', onSlotchange: () => this.checkDescription() })), h("svg", { key: 'af4c3fbdb2a72e0b8518a6c16cefdb795f41244c', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: '05e25c1522dd4edfc676b04cf9092ed519d95381', id: "Logo" }, h("rect", { key: '12e1b7878e990e110c8ae83ef742bb6fa4c48a2f', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: '0e1120c70769c4a23b3711c1157e6f1742e3a75b', fill: "#ff0000", points: "34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3" }), h("path", { key: 'ccc271be1919898fc6eed78bf2e012e71dd96c48', 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" }))))));
26
+ return (h(Host, { key: 'b8d47e2530eb39f7b05370b4cea0b728cb00a1fb', "data-version": version, slot: "post-logo" }, h(LogoTag, Object.assign({ key: '47a4d88622aab30e652a08827e221dacda36cb48', class: "logo" }, (logoLink ? { href: logoLink } : {})), h("span", { key: '4eb6ad1bc6c165197b6bcce8fe1146eb9d48fb21', class: "description" }, h("slot", { key: 'c66a4385f19711daab6f4ba87d5f78f59ad8b263', onSlotchange: () => this.checkDescription() })), h("svg", { key: '824643e64a3fb0914082f8f78a11753d66c98842', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: 'e4f63d237c1fe1128005f29ea604c865f6b50943', id: "Logo" }, h("rect", { key: '34fec89177fb5461318d3e8fcc725f32dd97057a', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: '5600de7c21a8e363fffa35710a3f41e4295b76c7', fill: "#ff0000", points: "34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3" }), h("path", { key: '719be82825355704c4eac3c60fb461f6303734f7', 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" }))))));
27
27
  }
28
28
  static get is() { return "post-logo"; }
29
29
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- *,::before,::after{box-sizing:border-box}@media screen and (min-width: 1024px){slot[name=back-button],[slot=back-button]{display:none}}@media screen and (min-width: 1024px){h2{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}}post-mainnavigation{height:100%}:host{height:100%;display:block}.main-navigation{margin-block:0;list-style:none;display:flex;padding-left:0;gap:1rem}@media screen and (max-width: 1023.99px){.main-navigation{flex-direction:column}}.main-navigation>post-list{display:flex;align-items:stretch;gap:1rem;height:100%}@media screen and (max-width: 1023.99px){.main-navigation>post-list{flex-direction:column}}.main-navigation a,.main-navigation post-megadropdown-toggle{height:100%;display:flex;align-items:center}
1
+ 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:inherit;font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-align:start}post-mainnavigation post-list-item post-megadropdown-trigger 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-mainnavigation post-list-item post-megadropdown-trigger 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-mainnavigation post-list-item post-megadropdown-trigger button:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-mainnavigation post-list-item post-megadropdown-trigger 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-mainnavigation post-list-item post-megadropdown-trigger button:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{display:flex;align-items:center;justify-content:space-between}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button: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>button:focus-visible,post-mainnavigation post-list-item post-megadropdown-trigger button:focus-visible{border-radius:var(--post-core-dimension-4);z-index:1}@media screen and (min-width: 1024px){post-mainnavigation nav{position:relative;max-width:100vw;max-height:var(--post-core-dimension-56);user-select:none}post-mainnavigation post-list{margin-inline:var(--post-core-dimension-4)}post-mainnavigation post-list>[role=list]{flex-direction:row;max-width:100vw;transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline:var(--post-core-dimension-12);height:var(--post-core-dimension-56);gap:var(--post-core-dimension-4);font-size:var(--post-core-font-size-16);border-block:0 solid rgba(0,0,0,0);border-block-end-color:currentColor}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button:hover{border-block-width:var(--post-core-dimension-2)}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]{border-block-width:var(--post-core-dimension-4);font-weight:var(--post-core-font-weight-700)}post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{padding-inline-end:var(--post-core-dimension-12);transition:border-block-end-color 250ms cubic-bezier(0.4, 0, 0.2, 1)}post-mainnavigation post-list-item>button::after,post-mainnavigation post-list-item post-megadropdown-trigger button::after{content:"";-webkit-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");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:var(--post-core-dimension-24);width:var(--post-core-dimension-24);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)}post-mainnavigation [slot=back-button]{display:none}}@media screen and (max-width: 1023.99px){post-mainnavigation post-list>[role=list]{transform:none !important}post-mainnavigation post-list-item>a,post-mainnavigation post-list-item>button,post-mainnavigation post-list-item post-megadropdown-trigger button{width:100%;height:var(--post-core-dimension-48);padding-inline-end:var(--post-core-dimension-6);gap:var(--post-core-dimension-16);border-block:var(--post-core-dimension-1) solid rgba(0,0,0,0);border-block-end-color:currentColor;font-weight:var(--post-core-font-weight-700)}post-mainnavigation post-list-item>a:hover,post-mainnavigation post-list-item>a.selected,post-mainnavigation post-list-item>button:hover,post-mainnavigation post-list-item>button.selected,post-mainnavigation post-list-item post-megadropdown-trigger button:hover,post-mainnavigation post-list-item post-megadropdown-trigger button.selected{border-block-width:var(--post-core-dimension-3)}post-mainnavigation post-list-item>a:hover::after,post-mainnavigation post-list-item>button:hover::after,post-mainnavigation post-list-item post-megadropdown-trigger button:hover::after{content:"";display:block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.667 5.333H18.8L29.467 16H0v1.333h29.467L18.8 28h1.867L32 16.667z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20.667 5.333H18.8L29.467 16H0v1.333h29.467L18.8 28h1.867L32 16.667z'/%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;width:var(--post-core-dimension-24);height:var(--post-core-dimension-24)}}
@@ -1,24 +1,23 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  export class PostMainnavigation {
3
- handleMegadropdownToggled(event) {
4
- // Find next element sibling
5
- let megalodon;
6
- let target = event.target;
7
- while (target !== null) {
8
- if (target.tagName === 'POST-MEGADROPDOWN') {
9
- megalodon = target;
10
- break;
11
- }
12
- target = target.nextElementSibling;
13
- }
14
- if (megalodon)
15
- megalodon.toggle(event.target);
3
+ /**
4
+ * Retrieves a reference to the closest 'post-header' element when the main navigation is added to the DOM.
5
+ */
6
+ connectedCallback() {
7
+ this.header = this.host.closest('post-header');
8
+ }
9
+ /**
10
+ * Cleans up references and disconnects the MutationObserver when the main navigation is removed from the DOM.
11
+ */
12
+ disconnectedCallback() {
13
+ this.header = null;
16
14
  }
17
15
  handleBackButtonClick() {
18
- this.postToggle.emit();
16
+ if (this.header)
17
+ this.header.toggleMobileMenu();
19
18
  }
20
19
  render() {
21
- return (h(Host, { key: '5006fede681cf581b878c84fd1a6b7fe4830cbd2', slot: "post-mainnavigation" }, h("div", { key: 'a2273bab074eac3f9197961b935c3ba19ecbbb21', onClick: () => this.handleBackButtonClick(), class: "back-button" }, h("slot", { key: 'c42751bee76cecbb076bb227bd0ffcc634b354a2', name: "back-button" })), h("nav", { key: '89541b5efc3500a8feec250a3d10402ea4b1a3a2', class: "main-navigation" }, h("slot", { key: 'f5f5a030325e701aaaca13747131b1f1fa10e849' }))));
20
+ return (h(Host, { key: 'f21c438ac0bbcb08e08fd419589bf92b7d8b3a61', slot: "post-mainnavigation" }, h("div", { key: '1925f47932d7e842e8b9f059d7ade955c577fa50', onClick: () => this.handleBackButtonClick(), class: "back-button" }, h("slot", { key: 'fe18f6859a6d79c7ae701b65a31be1eab9c8b2ac', name: "back-button" })), h("nav", { key: 'ad2b0a52bc0bcf78a3c3340ba163ee6167be2c73' }, h("slot", { key: '8fc7b01cc0f3729cd2c12c4967ec87891fe0dcf5' }))));
22
21
  }
23
22
  static get is() { return "post-mainnavigation"; }
24
23
  static get originalStyleUrls() {
@@ -49,13 +48,5 @@ export class PostMainnavigation {
49
48
  }
50
49
  }];
51
50
  }
52
- static get listeners() {
53
- return [{
54
- "name": "postToggle",
55
- "method": "handleMegadropdownToggled",
56
- "target": undefined,
57
- "capture": false,
58
- "passive": false
59
- }];
60
- }
51
+ static get elementRef() { return "host"; }
61
52
  }
@@ -1 +1 @@
1
- *,::before,::after{box-sizing:border-box}post-popovercontainer{background-color:#fafafa;width:100%;border-bottom:1px solid #000}@media screen and (max-width: 1023.99px){post-popovercontainer{position:absolute;top:var(--header-height) !important;bottom:0;left:0;width:100%;height:auto}}.megadropdown{display:flex;gap:1rem;padding:1.5rem;border-radius:0 0 3px 3px}@media screen and (max-width: 1023.99px){.megadropdown{flex-direction:column}}.megadropdown post-list{display:flex;flex-direction:column;gap:.5rem}.megadropdown post-list-item{border-bottom:1px solid gray}.megadropdown post-list-item>a{padding-block:.25rem;display:block;text-decoration:none}.back-button{display:none}@media screen and (max-width: 1023.99px){.back-button{display:block}}post-closebutton{margin-left:auto}@media screen and (max-width: 1023.99px){post-closebutton{display:none}}h3{font-size:20px}
1
+ @keyframes slide-in{0%{transform:translateX(100%)}100%{transform:translateX(0%)}}@keyframes slide-out{from{transform:translateX(0%)}to{transform:translateX(100%)}}*,::before,::after{box-sizing:border-box}post-popovercontainer{--post-global-header-height: 72px;--post-main-header-height: 56px;--post-header-height: calc(var(--post-global-header-height) + var(--post-main-header-height));background-color:#fafafa;border:none;border-top:1px solid #e1e0dc;width:100%;border-radius:0;box-shadow:0 8px 6px rgba(0,0,0,.16)}@media screen and (max-width: 1023.99px){post-popovercontainer{--post-global-header-height: 64px;position:absolute;top:var(--post-header-height) !important;bottom:0;left:0;width:100%;height:auto}post-popovercontainer.slide-in{animation:slide-in;animation-duration:350ms;animation-fill-mode:forwards}post-popovercontainer.slide-out{animation:slide-out;animation-duration:350ms;animation-fill-mode:forwards}}.megadropdown{padding:31px 40px 40px}@media screen and (max-width: 1023.99px){.megadropdown{padding:16px 32px 24px}}.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.99px){.megadropdown .megadropdown-content{grid-template-columns:repeat(auto-fit, minmax(min(35vw, 100%), 1fr))}}@media screen and (max-width: 599.99px){.megadropdown .megadropdown-content{grid-template-columns:1fr}}.megadropdown h2{display:none;margin-top:0;margin-bottom:8px;font-weight:900}.megadropdown h2 a{text-decoration:none;font-weight:inherit;border-bottom:0;border-top:0}@media screen and (max-width: 1023.99px){.megadropdown h2{display:block;font-size:20px}}.megadropdown a:hover{border-block-width:0}.megadropdown a:hover::after{content:unset}.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;border-bottom:1px solid #050400;padding:15px 12px 14px 0;display:block;font-weight:900}.megadropdown post-list .list-title h3 a{text-decoration:none;width:100%;font-size:inherit;display:inline-block;font-weight:inherit;height:unset;padding:0;border:0}@media screen and (max-width: 1023.99px){.megadropdown post-list .list-title h3{font-size:16px;padding:12px 12px 11px 0}}.megadropdown post-list-item{border-bottom:1px solid #050400}.megadropdown post-list-item>a{padding:13px 12px 12px 0;display:block;text-decoration:none;width:100%;border-bottom:0;height:auto;border-top:0}@media screen and (max-width: 1023.99px){.megadropdown post-list-item>a{padding:12px 12px 11px 0}}.megadropdown .back-button{display:none;margin-bottom:2rem}.megadropdown .back-button .btn{width:auto}.megadropdown .back-button post-icon{transform:rotate(180deg)}@media screen and (max-width: 1023.99px){.megadropdown .back-button{display:block}}.megadropdown .close-button{position:absolute;top:1rem;right:1rem}@media screen and (max-width: 1023.99px){.megadropdown .close-button{display:none}}
@@ -1,39 +1,64 @@
1
- import { Host, h } from "@stencil/core";
1
+ import { h, Host } from "@stencil/core";
2
2
  export class PostMegadropdown {
3
+ constructor() {
4
+ this.isVisible = false;
5
+ this.animationClass = null;
6
+ }
7
+ componentDidLoad() {
8
+ this.popoverRef.addEventListener('postToggle', (event) => {
9
+ this.isVisible = event.detail;
10
+ this.postToggleMegadropdown.emit(this.isVisible);
11
+ });
12
+ this.popoverRef.addEventListener('animationend', () => {
13
+ if (this.animationClass === 'slide-out') {
14
+ this.hide();
15
+ }
16
+ });
17
+ }
3
18
  /**
4
- * Show megadropdown
5
- * @param element HTMLElement
6
- * @returns boolean
19
+ * Toggles the dropdown visibility based on its current state.
7
20
  */
8
- async show(element) {
9
- return this.popoverRef.show(element);
21
+ async toggle(target) {
22
+ this.isVisible ? this.hide() : await this.show(target);
10
23
  }
11
24
  /**
12
- * Hide megadropdown
13
- * @returns boolean
25
+ * Displays the popover dropdown
26
+ *
27
+ * @param target - The HTML element relative to which the popover dropdown should be displayed.
14
28
  */
15
- async hide() {
16
- return this.popoverRef.hide();
29
+ async show(target) {
30
+ if (this.popoverRef) {
31
+ await this.popoverRef.show(target);
32
+ this.animationClass = 'slide-in';
33
+ }
34
+ else {
35
+ console.error('show: popoverRef is null or undefined');
36
+ }
17
37
  }
18
38
  /**
19
- * Toggle megadropdown
20
- * @param element HTMLElement
21
- * @param force boolean
22
- * @returns boolean
39
+ * Hides the popover dropdown
23
40
  */
24
- async toggle(element, force) {
25
- return this.popoverRef.toggle(element, force !== null && force !== void 0 ? force : undefined);
41
+ hide() {
42
+ if (this.popoverRef) {
43
+ this.popoverRef.hide();
44
+ }
45
+ else {
46
+ console.error('hide: popoverRef is null or undefined');
47
+ }
26
48
  }
27
49
  handleBackButtonClick() {
28
- this.hide();
50
+ this.animationClass = 'slide-out';
51
+ }
52
+ handleCloseButtonClick() {
53
+ this.popoverRef.hide();
29
54
  }
30
55
  render() {
31
- return (h(Host, { key: '96d71da6b3cfcd8980d7e60cb383d545c754d7b3', slot: "post-mainnavigation" }, h("post-popovercontainer", { key: 'ec27bcdae9da77299d59d8869be60c08816eef85', placement: "bottom", "edge-gap": "0", ref: el => (this.popoverRef = el) }, h("div", { key: '0b97d183a5fad18401aa876cf19d3975a1757d18', class: "megadropdown" }, h("div", { key: '4eb9715d7cf88898dddae702f71d430f1e3810af', onClick: () => this.handleBackButtonClick(), class: "back-button" }, h("slot", { key: 'a21d4b50b1d04211ecfb5d0b145452a6bbae0ae0', name: "back-button" })), h("slot", { key: '5a4dd77f0f91bf6a61ef1cf9bdd4371875a52d2e' })))));
56
+ return (h(Host, { key: 'cfd4e6c7bb87c50e471d304a4b4f086266e1c2fe' }, h("post-popovercontainer", { key: '31dc3a5e98a5c60a4db8d47375491a6f3957af0b', class: this.animationClass, placement: "bottom", "edge-gap": "0", ref: el => (this.popoverRef = el) }, h("div", { key: '7001d0e108544a0244af088be0bde49f90a3dea3', class: "megadropdown" }, h("div", { key: '513b0710163e8f58677b6b50d2ba2d241cf9ff35', onClick: () => this.handleBackButtonClick(), class: "back-button" }, h("slot", { key: '5457c0b9bfff045f39f470e600b5aa31036c0807', name: "back-button" })), h("div", { key: 'c3314a4ae4f386224a2db7fe32203f72f6a1b284', onClick: () => this.handleCloseButtonClick(), class: "close-button" }, h("slot", { key: '8feeec24fe5f2522ba1a54ab0b7c682d3a152086', name: "close-button" })), h("slot", { key: '6d9426756a809ed26045c9cd56cacf0f36aa9400', name: "megadropdown-title" }), h("div", { key: 'fd3b0ac7998eec76700ccc6668d8b2e3fcc4c63a', class: "megadropdown-content" }, h("slot", { key: '23638936fdffa224de9631bfd599c0872202a30d' }))))));
32
57
  }
33
58
  static get is() { return "post-megadropdown"; }
34
59
  static get originalStyleUrls() {
35
60
  return {
36
- "$": ["./post-megadropdown.scss"]
61
+ "$": ["post-megadropdown.scss"]
37
62
  };
38
63
  }
39
64
  static get styleUrls() {
@@ -41,15 +66,39 @@ export class PostMegadropdown {
41
66
  "$": ["post-megadropdown.css"]
42
67
  };
43
68
  }
69
+ static get states() {
70
+ return {
71
+ "isVisible": {},
72
+ "animationClass": {}
73
+ };
74
+ }
75
+ static get events() {
76
+ return [{
77
+ "method": "postToggleMegadropdown",
78
+ "name": "postToggleMegadropdown",
79
+ "bubbles": true,
80
+ "cancelable": true,
81
+ "composed": true,
82
+ "docs": {
83
+ "tags": [],
84
+ "text": "Emits when the dropdown is shown or hidden.\nThe event payload is a boolean: `true` when the dropdown was opened, `false` when it was closed."
85
+ },
86
+ "complexType": {
87
+ "original": "boolean",
88
+ "resolved": "boolean",
89
+ "references": {}
90
+ }
91
+ }];
92
+ }
44
93
  static get methods() {
45
94
  return {
46
- "show": {
95
+ "toggle": {
47
96
  "complexType": {
48
- "signature": "(element: HTMLElement) => Promise<void>",
97
+ "signature": "(target: HTMLElement) => Promise<void>",
49
98
  "parameters": [{
50
- "name": "element",
99
+ "name": "target",
51
100
  "type": "HTMLElement",
52
- "docs": "HTMLElement"
101
+ "docs": ""
53
102
  }],
54
103
  "references": {
55
104
  "Promise": {
@@ -64,47 +113,17 @@ export class PostMegadropdown {
64
113
  "return": "Promise<void>"
65
114
  },
66
115
  "docs": {
67
- "text": "Show megadropdown",
68
- "tags": [{
69
- "name": "param",
70
- "text": "element HTMLElement"
71
- }, {
72
- "name": "returns",
73
- "text": "boolean"
74
- }]
116
+ "text": "Toggles the dropdown visibility based on its current state.",
117
+ "tags": []
75
118
  }
76
119
  },
77
- "hide": {
78
- "complexType": {
79
- "signature": "() => Promise<void>",
80
- "parameters": [],
81
- "references": {
82
- "Promise": {
83
- "location": "global",
84
- "id": "global::Promise"
85
- }
86
- },
87
- "return": "Promise<void>"
88
- },
89
- "docs": {
90
- "text": "Hide megadropdown",
91
- "tags": [{
92
- "name": "returns",
93
- "text": "boolean"
94
- }]
95
- }
96
- },
97
- "toggle": {
120
+ "show": {
98
121
  "complexType": {
99
- "signature": "(element: HTMLElement, force?: boolean) => Promise<boolean>",
122
+ "signature": "(target: HTMLElement) => Promise<void>",
100
123
  "parameters": [{
101
- "name": "element",
124
+ "name": "target",
102
125
  "type": "HTMLElement",
103
- "docs": "HTMLElement"
104
- }, {
105
- "name": "force",
106
- "type": "boolean",
107
- "docs": "boolean"
126
+ "docs": "- The HTML element relative to which the popover dropdown should be displayed."
108
127
  }],
109
128
  "references": {
110
129
  "Promise": {
@@ -116,22 +135,17 @@ export class PostMegadropdown {
116
135
  "id": "global::HTMLElement"
117
136
  }
118
137
  },
119
- "return": "Promise<boolean>"
138
+ "return": "Promise<void>"
120
139
  },
121
140
  "docs": {
122
- "text": "Toggle megadropdown",
141
+ "text": "Displays the popover dropdown",
123
142
  "tags": [{
124
143
  "name": "param",
125
- "text": "element HTMLElement"
126
- }, {
127
- "name": "param",
128
- "text": "force boolean"
129
- }, {
130
- "name": "returns",
131
- "text": "boolean"
144
+ "text": "target - The HTML element relative to which the popover dropdown should be displayed."
132
145
  }]
133
146
  }
134
147
  }
135
148
  };
136
149
  }
150
+ static get elementRef() { return "host"; }
137
151
  }
@@ -1 +1 @@
1
- :host{display:inline-block}
1
+ post-megadropdown-trigger{width:100%}