@swisspost/design-system-components 9.0.0-next.0 → 9.0.0-next.10

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 (456) hide show
  1. package/dist/cjs/check-type-64af82a9.js +16 -0
  2. package/dist/cjs/check-url-3ffdd2fb.js +14 -0
  3. package/dist/cjs/debounce-1151afe3.js +12 -0
  4. package/dist/cjs/get-root-7a3498ef.js +11 -0
  5. package/dist/cjs/{index-01f30442.js → index-5d4e0aed.js} +4 -27
  6. package/dist/cjs/{index-c15bd800.js → index-f1b08cdb.js} +45 -16
  7. package/dist/cjs/index.browser-2f65f583.js +15 -0
  8. package/dist/cjs/index.cjs.js +51 -24
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/{package-ebef502e.js → package-aaec3cba.js} +1 -1
  11. package/dist/cjs/{post-accordion-677c6891.js → post-accordion-85bf5e0a.js} +13 -11
  12. package/dist/cjs/post-accordion-item-957b3464.js +64 -0
  13. package/dist/cjs/post-accordion-item.cjs.entry.js +7 -4
  14. package/dist/cjs/post-accordion.cjs.entry.js +3 -3
  15. package/dist/cjs/post-avatar-58540591.js +148 -0
  16. package/dist/cjs/post-avatar.cjs.entry.js +13 -0
  17. package/dist/cjs/post-back-to-top-db5c7d01.js +75 -0
  18. package/dist/cjs/post-back-to-top.cjs.entry.js +15 -0
  19. package/dist/cjs/post-banner-727866d5.js +91 -0
  20. package/dist/cjs/post-banner.cjs.entry.js +19 -0
  21. package/dist/cjs/post-breadcrumb-cacca682.js +111 -0
  22. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +17 -0
  23. package/dist/cjs/post-breadcrumb.cjs.entry.js +13 -0
  24. package/dist/cjs/post-card-control-f5d72ddc.js +272 -0
  25. package/dist/cjs/post-card-control.cjs.entry.js +3 -3
  26. package/dist/cjs/post-closebutton_15.cjs.entry.js +34 -0
  27. package/dist/cjs/{post-collapsible-trigger-4f44ca4a.js → post-collapsible-trigger-067d1f4c.js} +14 -26
  28. package/dist/cjs/post-collapsible_2.cjs.entry.js +8 -4
  29. package/dist/cjs/post-components.cjs.js +2 -2
  30. package/dist/cjs/post-footer-beeb36c8.js +84 -0
  31. package/dist/cjs/post-footer.cjs.entry.js +11 -0
  32. package/dist/cjs/post-menu-item-e0e214b9.js +69 -0
  33. package/dist/cjs/post-popover-7acbdf17.js +104 -0
  34. package/dist/cjs/post-popover.cjs.entry.js +3 -3
  35. package/dist/cjs/{post-rating-ac9e71aa.js → post-rating-ac1b9b3c.js} +4 -4
  36. package/dist/cjs/post-rating.cjs.entry.js +3 -3
  37. package/dist/cjs/post-tab-header-a3d28719.js +33 -0
  38. package/dist/cjs/post-tab-header.cjs.entry.js +4 -3
  39. package/dist/cjs/{post-tab-panel-787bcd5d.js → post-tab-panel-4562e265.js} +5 -4
  40. package/dist/cjs/post-tab-panel.cjs.entry.js +4 -3
  41. package/dist/cjs/{post-tabs-1b7aad55.js → post-tabs-80f65e1d.js} +9 -7
  42. package/dist/cjs/post-tabs.cjs.entry.js +3 -3
  43. package/dist/cjs/post-tag-5741a78d.js +47 -0
  44. package/dist/cjs/post-tag.cjs.entry.js +3 -3
  45. package/dist/cjs/{post-popovercontainer-322d3160.js → post-togglebutton-245e33f1.js} +1082 -21
  46. package/dist/cjs/{post-tooltip-d1d2cd3a.js → post-tooltip-cefce5e1.js} +46 -15
  47. package/dist/cjs/post-tooltip.cjs.entry.js +6 -4
  48. package/dist/cjs/slide-5d51abe8.js +28 -0
  49. package/dist/collection/animations/slide.js +23 -0
  50. package/dist/collection/collection-manifest.json +21 -3
  51. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  52. package/dist/collection/components/post-accordion/post-accordion.js +12 -10
  53. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  54. package/dist/collection/components/post-accordion-item/post-accordion-item.js +28 -12
  55. package/dist/collection/components/post-avatar/post-avatar.css +3 -0
  56. package/dist/collection/components/post-avatar/post-avatar.js +237 -0
  57. package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -0
  58. package/dist/collection/components/post-back-to-top/post-back-to-top.js +107 -0
  59. package/dist/collection/components/post-banner/banner-types.js +1 -0
  60. package/dist/collection/components/post-banner/post-banner.css +3 -0
  61. package/dist/collection/components/{post-alert/post-alert.js → post-banner/post-banner.js} +41 -69
  62. package/dist/collection/components/post-breadcrumb/post-breadcrumb.css +3 -0
  63. package/dist/collection/components/post-breadcrumb/post-breadcrumb.js +161 -0
  64. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -0
  65. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +93 -0
  66. package/dist/collection/components/post-card-control/post-card-control.css +1 -29
  67. package/dist/collection/components/post-card-control/post-card-control.js +8 -8
  68. package/dist/collection/components/post-closebutton/post-closebutton.js +12 -0
  69. package/dist/collection/components/post-collapsible/post-collapsible.js +5 -3
  70. package/dist/collection/components/post-footer/post-footer.css +1 -0
  71. package/dist/collection/components/post-footer/post-footer.js +75 -0
  72. package/dist/collection/components/post-header/post-header.css +1 -0
  73. package/dist/collection/components/post-header/post-header.js +172 -0
  74. package/dist/collection/components/post-icon/post-icon.js +22 -30
  75. package/dist/collection/components/post-language-option/post-language-option.css +3 -0
  76. package/dist/collection/components/post-language-option/post-language-option.js +219 -0
  77. package/dist/collection/components/post-language-switch/post-language-switch.css +1 -0
  78. package/dist/collection/components/post-language-switch/post-language-switch.js +163 -0
  79. package/dist/collection/components/post-language-switch/switch-variants.js +1 -0
  80. package/dist/collection/components/post-list/post-list.css +3 -0
  81. package/dist/collection/components/post-list/post-list.js +88 -0
  82. package/dist/collection/components/post-list-item/post-list-item.css +1 -0
  83. package/dist/collection/components/post-list-item/post-list-item.js +25 -0
  84. package/dist/collection/components/post-logo/post-logo.js +2 -2
  85. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -0
  86. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +52 -0
  87. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -0
  88. package/dist/collection/components/post-megadropdown/post-megadropdown.js +158 -0
  89. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -0
  90. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +104 -0
  91. package/dist/collection/components/post-menu/post-menu.css +3 -0
  92. package/dist/collection/components/post-menu/post-menu.js +280 -0
  93. package/dist/collection/components/post-menu-item/post-menu-item.js +8 -0
  94. package/dist/collection/components/post-menu-trigger/post-menu-trigger.css +1 -0
  95. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +114 -0
  96. package/dist/collection/components/post-popover/post-popover.css +1 -29
  97. package/dist/collection/components/post-popover/post-popover.js +1 -1
  98. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  99. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +26 -6
  100. package/dist/collection/components/post-rating/post-rating.css +1 -29
  101. package/dist/collection/components/post-rating/post-rating.js +1 -1
  102. package/dist/collection/components/post-tab-header/post-tab-header.css +1 -29
  103. package/dist/collection/components/post-tab-header/post-tab-header.js +3 -2
  104. package/dist/collection/components/post-tab-panel/post-tab-panel.js +3 -2
  105. package/dist/collection/components/post-tabs/post-tabs.css +1 -1
  106. package/dist/collection/components/post-tabs/post-tabs.js +6 -4
  107. package/dist/collection/components/post-tag/post-tag.css +1 -29
  108. package/dist/collection/components/post-tag/post-tag.js +2 -2
  109. package/dist/collection/components/post-togglebutton/post-togglebutton.css +1 -0
  110. package/dist/collection/components/post-togglebutton/post-togglebutton.js +74 -0
  111. package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
  112. package/dist/collection/components/post-tooltip/post-tooltip.js +51 -9
  113. package/dist/collection/index.js +20 -2
  114. package/dist/collection/utils/breakpoints.js +46 -0
  115. package/dist/collection/utils/get-focusable-children.js +27 -0
  116. package/dist/components/debounce.js +10 -0
  117. package/dist/components/get-root.js +9 -0
  118. package/dist/components/index.browser.js +13 -0
  119. package/dist/components/index.js +20 -2
  120. package/dist/components/index2.js +1 -1
  121. package/dist/components/package.js +1 -1
  122. package/dist/components/post-accordion-item2.js +34 -14
  123. package/dist/components/post-accordion2.js +11 -9
  124. package/dist/components/post-avatar.d.ts +11 -0
  125. package/dist/components/post-avatar.js +6 -0
  126. package/dist/components/post-avatar2.js +173 -0
  127. package/dist/components/post-back-to-top.d.ts +11 -0
  128. package/dist/components/post-back-to-top.js +6 -0
  129. package/dist/components/post-back-to-top2.js +100 -0
  130. package/dist/components/post-banner.d.ts +11 -0
  131. package/dist/components/post-banner.js +6 -0
  132. package/dist/components/post-banner2.js +126 -0
  133. package/dist/components/post-breadcrumb-item.d.ts +11 -0
  134. package/dist/components/post-breadcrumb-item.js +6 -0
  135. package/dist/components/post-breadcrumb-item2.js +82 -0
  136. package/dist/components/post-breadcrumb.d.ts +11 -0
  137. package/dist/components/post-breadcrumb.js +6 -0
  138. package/dist/components/post-breadcrumb2.js +168 -0
  139. package/dist/components/post-card-control2.js +3 -3
  140. package/dist/components/post-closebutton.d.ts +11 -0
  141. package/dist/components/post-closebutton.js +6 -0
  142. package/dist/components/post-closebutton2.js +34 -0
  143. package/dist/components/post-collapsible-trigger2.js +2 -17
  144. package/dist/components/post-collapsible2.js +6 -4
  145. package/dist/components/post-footer.d.ts +11 -0
  146. package/dist/components/post-footer.js +6 -0
  147. package/dist/components/post-footer2.js +124 -0
  148. package/dist/components/post-header.d.ts +11 -0
  149. package/dist/components/post-header.js +6 -0
  150. package/dist/components/post-header2.js +279 -0
  151. package/dist/components/post-icon2.js +24 -28
  152. package/dist/components/post-language-option.d.ts +11 -0
  153. package/dist/components/post-language-option.js +6 -0
  154. package/dist/components/post-language-option2.js +98 -0
  155. package/dist/components/post-language-switch.d.ts +11 -0
  156. package/dist/components/post-language-switch.js +6 -0
  157. package/dist/components/post-language-switch2.js +135 -0
  158. package/dist/components/post-list-item.d.ts +11 -0
  159. package/dist/components/post-list-item.js +6 -0
  160. package/dist/components/post-list-item2.js +35 -0
  161. package/dist/components/{post-alert.d.ts → post-list.d.ts} +4 -4
  162. package/dist/components/post-list.js +6 -0
  163. package/dist/components/post-list2.js +54 -0
  164. package/dist/components/post-logo2.js +2 -2
  165. package/dist/components/post-mainnavigation.d.ts +11 -0
  166. package/dist/components/post-mainnavigation.js +6 -0
  167. package/dist/components/post-mainnavigation2.js +48 -0
  168. package/dist/components/post-megadropdown-trigger.d.ts +11 -0
  169. package/dist/components/post-megadropdown-trigger.js +6 -0
  170. package/dist/components/post-megadropdown-trigger2.js +91 -0
  171. package/dist/components/post-megadropdown.d.ts +11 -0
  172. package/dist/components/post-megadropdown.js +6 -0
  173. package/dist/components/post-megadropdown2.js +100 -0
  174. package/dist/components/post-menu-item.d.ts +11 -0
  175. package/dist/components/post-menu-item.js +6 -0
  176. package/dist/components/post-menu-item2.js +27 -0
  177. package/dist/components/post-menu-trigger.d.ts +11 -0
  178. package/dist/components/post-menu-trigger.js +6 -0
  179. package/dist/components/post-menu-trigger2.js +102 -0
  180. package/dist/components/post-menu.d.ts +11 -0
  181. package/dist/components/post-menu.js +6 -0
  182. package/dist/components/post-menu2.js +204 -0
  183. package/dist/components/post-popover2.js +2 -2
  184. package/dist/components/post-popovercontainer2.js +10 -7
  185. package/dist/components/post-rating2.js +2 -2
  186. package/dist/components/post-tab-header2.js +4 -3
  187. package/dist/components/post-tab-panel2.js +3 -2
  188. package/dist/components/post-tabs2.js +7 -5
  189. package/dist/components/post-tag2.js +2 -2
  190. package/dist/components/post-togglebutton.d.ts +11 -0
  191. package/dist/components/post-togglebutton.js +6 -0
  192. package/dist/components/post-togglebutton2.js +61 -0
  193. package/dist/components/post-tooltip2.js +44 -13
  194. package/dist/components/slide.js +25 -0
  195. package/dist/docs.json +1836 -236
  196. package/dist/esm/check-type-8828dbe4.js +14 -0
  197. package/dist/esm/check-url-a974431e.js +12 -0
  198. package/dist/esm/debounce-abe98cc2.js +10 -0
  199. package/dist/esm/get-root-7af2e0d1.js +9 -0
  200. package/dist/esm/{index-0b56fc28.js → index-6bfe6554.js} +45 -16
  201. package/dist/esm/index-b49c9904.js +24 -0
  202. package/dist/esm/index.browser-51485f85.js +13 -0
  203. package/dist/esm/index.js +28 -19
  204. package/dist/esm/loader.js +3 -3
  205. package/dist/esm/package-2ee42825.js +3 -0
  206. package/dist/esm/{post-accordion-19ca8bf9.js → post-accordion-3bf30525.js} +13 -11
  207. package/dist/esm/post-accordion-item-6683fbed.js +62 -0
  208. package/dist/esm/post-accordion-item.entry.js +7 -4
  209. package/dist/esm/post-accordion.entry.js +3 -3
  210. package/dist/esm/post-avatar-3ddb4c79.js +146 -0
  211. package/dist/esm/post-avatar.entry.js +5 -0
  212. package/dist/esm/post-back-to-top-15ee2771.js +73 -0
  213. package/dist/esm/post-back-to-top.entry.js +7 -0
  214. package/dist/esm/post-banner-fc407f6e.js +89 -0
  215. package/dist/esm/post-banner.entry.js +11 -0
  216. package/dist/esm/post-breadcrumb-6252b112.js +109 -0
  217. package/dist/esm/post-breadcrumb-item_2.entry.js +8 -0
  218. package/dist/esm/post-breadcrumb.entry.js +5 -0
  219. package/dist/esm/post-card-control-cb3dfc60.js +270 -0
  220. package/dist/esm/post-card-control.entry.js +3 -3
  221. package/dist/esm/post-closebutton_15.entry.js +12 -0
  222. package/dist/esm/{post-collapsible-trigger-8f54e5b6.js → post-collapsible-trigger-b727bf7e.js} +11 -23
  223. package/dist/esm/post-collapsible_2.entry.js +8 -4
  224. package/dist/esm/post-components.js +3 -3
  225. package/dist/esm/post-footer-7a03a9bb.js +82 -0
  226. package/dist/esm/post-footer.entry.js +3 -0
  227. package/dist/esm/post-menu-item-3e168ecd.js +66 -0
  228. package/dist/esm/post-popover-bff5cffd.js +102 -0
  229. package/dist/esm/post-popover.entry.js +3 -3
  230. package/dist/esm/{post-rating-8e22d522.js → post-rating-ce595a65.js} +4 -4
  231. package/dist/esm/post-rating.entry.js +3 -3
  232. package/dist/esm/post-tab-header-c864586f.js +31 -0
  233. package/dist/esm/post-tab-header.entry.js +4 -3
  234. package/dist/esm/{post-tab-panel-b9605846.js → post-tab-panel-800425b8.js} +5 -4
  235. package/dist/esm/post-tab-panel.entry.js +4 -3
  236. package/dist/esm/{post-tabs-fb024b14.js → post-tabs-e5aa8b08.js} +9 -7
  237. package/dist/esm/post-tabs.entry.js +3 -3
  238. package/dist/esm/post-tag-fc3df50a.js +45 -0
  239. package/dist/esm/post-tag.entry.js +3 -3
  240. package/dist/esm/{post-popovercontainer-17d2b256.js → post-togglebutton-101dd3bd.js} +1069 -22
  241. package/dist/esm/{post-tooltip-02e413ba.js → post-tooltip-e8484aea.js} +46 -15
  242. package/dist/esm/post-tooltip.entry.js +6 -4
  243. package/dist/esm/slide-3422b8a3.js +25 -0
  244. package/dist/post-components/index.esm.js +1 -1
  245. package/dist/post-components/p-02bb5231.js +1 -0
  246. package/dist/post-components/p-0e216cc4.js +2 -0
  247. package/dist/post-components/p-11880d55.js +1 -0
  248. package/dist/post-components/p-1489d777.entry.js +1 -0
  249. package/dist/post-components/p-19707347.entry.js +1 -0
  250. package/dist/post-components/{p-ec1f1966.js → p-1d3acbfd.js} +1 -1
  251. package/dist/post-components/p-24476696.js +1 -0
  252. package/dist/post-components/p-25f6efab.entry.js +1 -0
  253. package/dist/post-components/p-27ad2d1f.js +1 -0
  254. package/dist/post-components/p-29626238.entry.js +1 -0
  255. package/dist/post-components/p-339488ba.entry.js +1 -0
  256. package/dist/post-components/p-3de1151e.js +1 -0
  257. package/dist/post-components/p-413d1fff.js +1 -0
  258. package/dist/post-components/p-47095b84.entry.js +1 -0
  259. package/dist/post-components/p-4a3f67ab.js +1 -0
  260. package/dist/post-components/p-515e0f96.js +1 -0
  261. package/dist/post-components/p-5467b223.js +1 -0
  262. package/dist/post-components/p-5959f2bd.js +1 -0
  263. package/dist/post-components/p-5b0703a4.entry.js +1 -0
  264. package/dist/post-components/p-618b8929.js +1 -0
  265. package/dist/post-components/p-66c8d0a2.entry.js +1 -0
  266. package/dist/post-components/p-6e6e5447.entry.js +1 -0
  267. package/dist/post-components/p-80b282a2.js +1 -0
  268. package/dist/post-components/p-86a1ad40.js +1 -0
  269. package/dist/post-components/p-97647d03.entry.js +1 -0
  270. package/dist/post-components/p-98f1d284.js +1 -0
  271. package/dist/post-components/p-9e287cb5.js +1 -0
  272. package/dist/post-components/p-a3694196.js +1 -0
  273. package/dist/post-components/p-adc79d26.entry.js +1 -0
  274. package/dist/post-components/p-b22656b1.js +1 -0
  275. package/dist/post-components/p-bcf94111.entry.js +1 -0
  276. package/dist/post-components/p-bd87a2b5.entry.js +1 -0
  277. package/dist/post-components/p-bec07e51.js +1 -0
  278. package/dist/post-components/p-bec09df9.entry.js +1 -0
  279. package/dist/post-components/p-d1d9c9a5.js +1 -0
  280. package/dist/post-components/p-d4f93f2b.js +1 -0
  281. package/dist/post-components/p-db2ac0a2.entry.js +1 -0
  282. package/dist/post-components/p-e93a4bd0.entry.js +1 -0
  283. package/dist/post-components/p-eed26f43.js +1 -0
  284. package/dist/post-components/p-f35d5d4a.entry.js +1 -0
  285. package/dist/post-components/p-fa6c79b8.entry.js +1 -0
  286. package/dist/post-components/{p-e387c0c9.js → p-faf15ec1.js} +3 -3
  287. package/dist/post-components/p-fc09ac69.js +1 -0
  288. package/dist/post-components/p-fc91cbc2.js +1 -0
  289. package/dist/post-components/p-ffcd735f.js +1 -0
  290. package/dist/post-components/post-components.esm.js +1 -1
  291. package/dist/types/animations/slide.d.ts +2 -0
  292. package/dist/types/components/post-accordion/post-accordion.d.ts +1 -1
  293. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +7 -1
  294. package/dist/types/components/post-avatar/post-avatar.d.ts +51 -0
  295. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +19 -0
  296. package/dist/types/components/post-banner/banner-types.d.ts +2 -0
  297. package/dist/types/components/post-banner/post-banner.d.ts +49 -0
  298. package/dist/types/components/post-breadcrumb/post-breadcrumb.d.ts +30 -0
  299. package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +16 -0
  300. package/dist/types/components/post-card-control/post-card-control.d.ts +7 -7
  301. package/dist/types/components/post-closebutton/post-closebutton.d.ts +7 -0
  302. package/dist/types/components/post-footer/post-footer.d.ts +23 -0
  303. package/dist/types/components/post-header/post-header.d.ts +33 -0
  304. package/dist/types/components/post-icon/post-icon.d.ts +3 -6
  305. package/dist/types/components/post-language-option/post-language-option.d.ts +45 -0
  306. package/dist/types/components/post-language-switch/post-language-switch.d.ts +31 -0
  307. package/dist/types/components/post-language-switch/switch-variants.d.ts +2 -0
  308. package/dist/types/components/post-list/post-list.d.ts +24 -0
  309. package/dist/types/components/post-list-item/post-list-item.d.ts +8 -0
  310. package/dist/types/components/post-logo/post-logo.d.ts +1 -1
  311. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +19 -0
  312. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +36 -0
  313. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +25 -0
  314. package/dist/types/components/post-menu/post-menu.d.ts +48 -0
  315. package/dist/types/components/post-menu-item/post-menu-item.d.ts +3 -0
  316. package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +27 -0
  317. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +4 -0
  318. package/dist/types/components/post-tag/post-tag.d.ts +1 -1
  319. package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +15 -0
  320. package/dist/types/components/post-tooltip/post-tooltip.d.ts +4 -1
  321. package/dist/types/components.d.ts +574 -47
  322. package/dist/types/index.d.ts +20 -2
  323. package/dist/types/utils/breakpoints.d.ts +11 -0
  324. package/dist/types/utils/get-focusable-children.d.ts +1 -0
  325. package/dist/types/utils/get-root.d.ts +1 -1
  326. package/loaders/debounce.js +10 -0
  327. package/loaders/get-root.js +9 -0
  328. package/loaders/index.browser.js +13 -0
  329. package/loaders/index.d.ts +38 -2
  330. package/loaders/index.js +20 -2
  331. package/loaders/index2.js +1 -1
  332. package/loaders/package.js +1 -1
  333. package/loaders/post-accordion-item.js +1 -81
  334. package/loaders/post-accordion-item2.js +103 -0
  335. package/loaders/post-accordion.js +11 -9
  336. package/loaders/post-avatar.d.ts +11 -0
  337. package/loaders/post-avatar.js +176 -0
  338. package/loaders/post-back-to-top.d.ts +11 -0
  339. package/loaders/post-back-to-top.js +103 -0
  340. package/loaders/post-banner.d.ts +11 -0
  341. package/loaders/post-banner.js +129 -0
  342. package/loaders/post-breadcrumb-item.d.ts +11 -0
  343. package/loaders/post-breadcrumb-item.js +6 -0
  344. package/loaders/post-breadcrumb-item2.js +82 -0
  345. package/loaders/post-breadcrumb.d.ts +11 -0
  346. package/loaders/post-breadcrumb.js +171 -0
  347. package/loaders/post-card-control.js +3 -3
  348. package/loaders/post-closebutton.d.ts +11 -0
  349. package/loaders/post-closebutton.js +37 -0
  350. package/loaders/post-collapsible-trigger2.js +2 -17
  351. package/loaders/post-collapsible2.js +5 -3
  352. package/loaders/post-footer.d.ts +11 -0
  353. package/loaders/post-footer.js +127 -0
  354. package/loaders/post-header.d.ts +11 -0
  355. package/loaders/post-header.js +282 -0
  356. package/loaders/post-icon2.js +24 -28
  357. package/loaders/post-language-option.d.ts +11 -0
  358. package/loaders/post-language-option.js +101 -0
  359. package/loaders/post-language-switch.d.ts +11 -0
  360. package/loaders/post-language-switch.js +138 -0
  361. package/loaders/post-list-item.d.ts +11 -0
  362. package/loaders/post-list-item.js +38 -0
  363. package/loaders/{post-alert.d.ts → post-list.d.ts} +4 -4
  364. package/loaders/post-list.js +57 -0
  365. package/loaders/post-logo.js +3 -3
  366. package/loaders/post-mainnavigation.d.ts +11 -0
  367. package/loaders/post-mainnavigation.js +51 -0
  368. package/loaders/post-megadropdown-trigger.d.ts +11 -0
  369. package/loaders/post-megadropdown-trigger.js +94 -0
  370. package/loaders/post-megadropdown.d.ts +11 -0
  371. package/loaders/post-megadropdown.js +103 -0
  372. package/loaders/post-menu-item.d.ts +11 -0
  373. package/loaders/post-menu-item.js +6 -0
  374. package/loaders/post-menu-item2.js +27 -0
  375. package/loaders/post-menu-trigger.d.ts +11 -0
  376. package/loaders/post-menu-trigger.js +6 -0
  377. package/loaders/post-menu-trigger2.js +102 -0
  378. package/loaders/post-menu.d.ts +11 -0
  379. package/loaders/post-menu.js +6 -0
  380. package/loaders/post-menu2.js +204 -0
  381. package/loaders/post-popover.js +2 -2
  382. package/loaders/post-popovercontainer2.js +10 -7
  383. package/loaders/post-rating.js +2 -2
  384. package/loaders/post-tab-header.js +4 -3
  385. package/loaders/post-tab-panel.js +3 -2
  386. package/loaders/post-tabs.js +7 -5
  387. package/loaders/post-tag.js +2 -2
  388. package/loaders/post-togglebutton.d.ts +11 -0
  389. package/loaders/post-togglebutton.js +64 -0
  390. package/loaders/post-tooltip.js +43 -12
  391. package/loaders/slide.js +25 -0
  392. package/package.json +9 -6
  393. package/dist/cjs/post-accordion-item-8d1d6c81.js +0 -51
  394. package/dist/cjs/post-alert-ea75de0d.js +0 -98
  395. package/dist/cjs/post-alert.cjs.entry.js +0 -16
  396. package/dist/cjs/post-card-control-51ee3823.js +0 -272
  397. package/dist/cjs/post-icon-dc878de4.js +0 -104
  398. package/dist/cjs/post-icon.cjs.entry.js +0 -15
  399. package/dist/cjs/post-logo-da45aef5.js +0 -39
  400. package/dist/cjs/post-logo.cjs.entry.js +0 -14
  401. package/dist/cjs/post-popover-aac764c7.js +0 -104
  402. package/dist/cjs/post-popovercontainer.cjs.entry.js +0 -11
  403. package/dist/cjs/post-tab-header-3baf22e0.js +0 -32
  404. package/dist/cjs/post-tag-e4bcdb75.js +0 -47
  405. package/dist/collection/components/post-alert/alert-types.js +0 -1
  406. package/dist/collection/components/post-alert/post-alert.css +0 -35
  407. package/dist/components/post-alert.js +0 -6
  408. package/dist/components/post-alert2.js +0 -136
  409. package/dist/esm/index-f41b763f.js +0 -46
  410. package/dist/esm/package-a8cae03d.js +0 -3
  411. package/dist/esm/post-accordion-item-3232ff67.js +0 -49
  412. package/dist/esm/post-alert-2636c0e2.js +0 -96
  413. package/dist/esm/post-alert.entry.js +0 -8
  414. package/dist/esm/post-card-control-0844cad9.js +0 -270
  415. package/dist/esm/post-icon-1a682b9e.js +0 -102
  416. package/dist/esm/post-icon.entry.js +0 -7
  417. package/dist/esm/post-logo-904c4701.js +0 -37
  418. package/dist/esm/post-logo.entry.js +0 -6
  419. package/dist/esm/post-popover-14d083d4.js +0 -102
  420. package/dist/esm/post-popovercontainer.entry.js +0 -3
  421. package/dist/esm/post-tab-header-96287c94.js +0 -30
  422. package/dist/esm/post-tag-58311692.js +0 -45
  423. package/dist/post-components/p-04e79a2c.entry.js +0 -1
  424. package/dist/post-components/p-05794f1f.entry.js +0 -1
  425. package/dist/post-components/p-079c7726.js +0 -1
  426. package/dist/post-components/p-10b043fc.js +0 -1
  427. package/dist/post-components/p-1c63cb03.js +0 -1
  428. package/dist/post-components/p-2e7cc4c6.entry.js +0 -1
  429. package/dist/post-components/p-370edca6.js +0 -1
  430. package/dist/post-components/p-3c3e8b19.js +0 -1
  431. package/dist/post-components/p-429b886d.js +0 -1
  432. package/dist/post-components/p-44564a68.js +0 -1
  433. package/dist/post-components/p-47420c6f.entry.js +0 -1
  434. package/dist/post-components/p-4973d1c7.entry.js +0 -1
  435. package/dist/post-components/p-6007889b.entry.js +0 -1
  436. package/dist/post-components/p-69bcb15f.entry.js +0 -1
  437. package/dist/post-components/p-771bd293.js +0 -1
  438. package/dist/post-components/p-8c0372c2.entry.js +0 -1
  439. package/dist/post-components/p-92ce53bc.entry.js +0 -1
  440. package/dist/post-components/p-991dff03.entry.js +0 -1
  441. package/dist/post-components/p-a0b62b51.js +0 -1
  442. package/dist/post-components/p-a2fa8c1d.entry.js +0 -1
  443. package/dist/post-components/p-ab6ce1d7.js +0 -1
  444. package/dist/post-components/p-b96307d5.entry.js +0 -1
  445. package/dist/post-components/p-d2f9de94.js +0 -2
  446. package/dist/post-components/p-de2ce222.js +0 -1
  447. package/dist/post-components/p-deb4131c.js +0 -1
  448. package/dist/post-components/p-e37ff727.entry.js +0 -1
  449. package/dist/post-components/p-eb3f324e.entry.js +0 -1
  450. package/dist/post-components/p-ee8845de.js +0 -1
  451. package/dist/post-components/p-fb1fb618.entry.js +0 -1
  452. package/dist/post-components/p-fbc24b84.js +0 -1
  453. package/dist/post-components/p-ff12fd7a.js +0 -1
  454. package/dist/types/components/post-alert/alert-types.d.ts +0 -2
  455. package/dist/types/components/post-alert/post-alert.d.ts +0 -54
  456. package/loaders/post-alert.js +0 -139
@@ -36,18 +36,20 @@ export class PostCollapsible {
36
36
  if (!this.isLoaded || isMotionReduced())
37
37
  animation.finish();
38
38
  await animation.finished;
39
- animation.commitStyles();
39
+ const isHostRendered = this.host.offsetParent;
40
+ if (isHostRendered)
41
+ animation.commitStyles();
40
42
  return open;
41
43
  }
42
44
  /**
43
45
  * Update all post-collapsible-trigger elements referring to the collapsible
44
46
  */
45
47
  updateTriggers() {
46
- const triggers = document.querySelectorAll(`post-collapsible-trigger[for=${this.host.id}]`);
48
+ const triggers = document.querySelectorAll(`post-collapsible-trigger[for="${this.host.id}"]`);
47
49
  triggers.forEach(trigger => trigger.update());
48
50
  }
49
51
  render() {
50
- return (h(Host, { key: '47ab19bf719a505dce35955d6250462acea47eee', "data-version": version }, h("slot", { key: 'd7fe5746afe1c343e9ec4c02878d8dead9360c26' })));
52
+ return (h(Host, { key: 'fd2402bcf9dee7753da3d9dc78e48e7410a774c2', "data-version": version, tabindex: this.collapsed ? -1 : undefined }, h("slot", { key: '7119a56492d6ed3fea4c5be8a34d8af60f18fe0a' })));
51
53
  }
52
54
  static get is() { return "post-collapsible"; }
53
55
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1 @@
1
+ :host{display:block}footer{background-color:#fc0;--post-footer-container-padding-block: 32px;--post-footer-container-padding-inline: 16px;--post-footer-container-max-width: 1200px;--post-footer-grid-template: auto / auto;--post-footer-grid-row-gap: 0;--post-footer-grid-column-gap: 0;--post-footer-grid-margin-block-end: 24px;--post-footer-grid-padding-block-end: 0;--post-footer-column-flex-direction: column;--post-footer-column-align-items: start;--post-footer-column-gap: 0;--post-footer-post-list-flex-direction: column;--post-footer-post-list-gap: 8px;--post-footer-post-list-align-items: start;--post-footer-socialmedia-margin-block-end: var(--post-footer-grid-margin-block-end);--post-footer-app-margin-block-end: var(--post-footer-grid-margin-block-end);--post-footer-businesssectors-margin-block-end: var(--post-footer-grid-margin-block-end);--post-footer-meta-margin-block-end: 16px;--post-footer-meta-font-size: inherit;--post-footer-copyright-font-size: var(--post-footer-meta-font-size)}@media screen and (min-width: 600px){footer{--post-footer-container-padding-block: 40px;--post-footer-grid-template: repeat(2, auto) / repeat(2, auto);--post-footer-grid-row-gap: 32px;--post-footer-grid-column-gap: 16px;--post-footer-grid-margin-block-end: 32px;--post-footer-grid-padding-block-end: 32px;--post-footer-post-list-flex-direction: row;--post-footer-post-list-gap: 16px;--post-footer-post-list-align-items: center;--post-footer-meta-margin-block-end: 8px}}@media screen and (min-width: 780px){footer{--post-footer-container-padding-inline: 40px}}@media screen and (min-width: 1024px){footer{--post-footer-container-padding-block: 56px;--post-footer-grid-template: auto / repeat(4, auto);--post-footer-grid-row-gap: 0;--post-footer-grid-column-gap: 24px;--post-footer-grid-margin-block-end: 40px;--post-footer-column-flex-direction: row;--post-footer-column-align-items: center;--post-footer-column-gap: 32px;--post-footer-post-list-gap: 24px;--post-footer-businesssectors-margin-block-end: 24px;--post-footer-meta-font-size: 16px}}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.footer-container{box-sizing:content-box;margin:0 auto;padding:var(--post-footer-container-padding-block) var(--post-footer-container-padding-inline);max-width:var(--post-footer-container-max-width)}.footer-grid{display:grid;grid-template:var(--post-footer-grid-template);row-gap:var(--post-footer-grid-row-gap);column-gap:var(--post-footer-grid-column-gap);margin-block-end:var(--post-footer-grid-margin-block-end);padding-block-end:var(--post-footer-grid-padding-block-end)}.footer-grid ::part(button),.footer-grid ::part(body){padding-inline:0}.footer-column{display:flex;flex-direction:var(--post-footer-column-flex-direction);flex-wrap:wrap;justify-content:space-between;align-items:var(--post-footer-column-align-items);column-gap:var(--post-footer-column-gap)}.footer-socialmedia ::slotted(post-list),.footer-app ::slotted(post-list),.footer-businesssectors ::slotted(post-list),.footer-meta ::slotted(post-list){display:flex !important;flex-direction:var(--post-footer-post-list-flex-direction) !important;gap:var(--post-footer-post-list-gap) !important;align-items:var(--post-footer-post-list-align-items) !important}.footer-socialmedia{margin-block-end:var(--post-footer-socialmedia-margin-block-end)}.footer-app{margin-block-end:var(--post-footer-app-margin-block-end)}.footer-businesssectors{margin-block-end:var(--post-footer-businesssectors-margin-block-end)}.footer-meta{margin-block-end:var(--post-footer-meta-margin-block-end);font-size:var(--post-footer-meta-font-size)}.footer-copyright{display:flex;flex-wrap:wrap;column-gap:.5rem;font-size:var(--post-footer-copyright-font-size)}
@@ -0,0 +1,75 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { version } from "../../../../package";
3
+ import { breakpoint } from "../../utils/breakpoints";
4
+ /**
5
+ * @slot grid-{1|2|3|4}-title - Slot for the accordion headers (mobile).
6
+ * @slot grid-{1|2|3|4} - Slot for the accordion bodies (mobile) and the grid cells (tablet, desktop).
7
+ * @slot socialmedia - Slot for the social media links.
8
+ * @slot app - Slot for the app links.
9
+ * @slot businesssectors - Slot for the business sectors links.
10
+ * @slot meta - Slot for the meta links.
11
+ * @slot copyright - Slot for the copyright text.
12
+ */
13
+ export class PostFooter {
14
+ constructor() {
15
+ this.label = undefined;
16
+ this.isMobile = breakpoint.get('name') === 'mobile';
17
+ }
18
+ connectedCallback() {
19
+ window.addEventListener('postBreakpoint:name', this.breakpointChange.bind(this));
20
+ }
21
+ breakpointChange(e) {
22
+ this.isMobile = e.detail === 'mobile';
23
+ }
24
+ renderAccordion() {
25
+ return (h("div", { class: "footer-grid" }, h("post-accorddion", { "heading-level": "3", multiple: true }, h("post-accordion-item", { collapsed: true }, h("span", { slot: "header" }, h("slot", { name: "grid-1-title" })), h("slot", { name: "grid-1" })), h("post-accordion-item", { collapsed: true }, h("span", { slot: "header" }, h("slot", { name: "grid-2-title" })), h("slot", { name: "grid-2" })), h("post-accordion-item", { collapsed: true }, h("span", { slot: "header" }, h("slot", { name: "grid-3-title" })), h("slot", { name: "grid-3" })), h("post-accordion-item", { collapsed: true }, h("span", { slot: "header" }, h("slot", { name: "grid-4-title" })), h("slot", { name: "grid-4" })))));
26
+ }
27
+ renderGrid() {
28
+ return (h("div", { class: "footer-grid" }, h("div", null, h("slot", { name: "grid-1" })), h("div", null, h("slot", { name: "grid-2" })), h("div", null, h("slot", { name: "grid-3" })), h("div", null, h("slot", { name: "grid-4" }))));
29
+ }
30
+ render() {
31
+ return (h(Host, { key: 'b11ecc741d3d9f4786dca3324dc2172aeaa431cd', "data-version": version }, h("footer", { key: 'a786956b1bdf51cf76fca8e4d45210b42bc54501' }, h("h2", { key: '3661bdd6c95eb515cb6a0aa77cb9df4fda7ea972', class: "visually-hidden" }, this.label), h("div", { key: '8b2a1c63f3a092c355bd882d58e5012dd5680a1b', class: "footer-container" }, this.isMobile ? this.renderAccordion() : this.renderGrid(), h("div", { key: '250a48a71a05833a18640432eb72fb96df94c102', class: "footer-column" }, h("div", { key: '0d22f0b49aea22f0bd73421f3c86f5389caebec9', class: "footer-socialmedia" }, h("slot", { key: '8703a25dc982f32a32b4115410fcc6356b5e365b', name: "socialmedia" })), h("div", { key: '992e7ff2e6556139ce0946ae6498329a8d2ff686', class: "footer-app" }, h("slot", { key: '6e561307bf4a1d32d3a985b32bd5ed2be43453d2', name: "app" }))), h("div", { key: 'ebdffcd8431e90752f814a5873cec14e00c15b7f', class: "footer-businesssectors" }, h("slot", { key: 'c745850d3e5ff37a71b12c43897625ca3df5ca34', name: "businesssectors" })), h("div", { key: '3d9decbad0be02737d13c4e3c6e00b8bea8d6c5f', class: "footer-meta" }, h("slot", { key: '2a66e70bb788269fecb5bbbccd2af43e9fba3a1f', name: "meta" })), h("div", { key: '0f1f4ee8f86e5eaf6c5c25b82b868d273757c8be', class: "footer-copyright" }, h("slot", { key: 'b63aab9755132addfe4c20233919513990cdf992', name: "copyright" }))))));
32
+ }
33
+ disconnectedCallback() {
34
+ window.removeEventListener('postBreakpoint:name', this.breakpointChange.bind(this));
35
+ }
36
+ static get is() { return "post-footer"; }
37
+ static get encapsulation() { return "shadow"; }
38
+ static get originalStyleUrls() {
39
+ return {
40
+ "$": ["./post-footer.scss"]
41
+ };
42
+ }
43
+ static get styleUrls() {
44
+ return {
45
+ "$": ["post-footer.css"]
46
+ };
47
+ }
48
+ static get properties() {
49
+ return {
50
+ "label": {
51
+ "type": "string",
52
+ "mutable": false,
53
+ "complexType": {
54
+ "original": "string",
55
+ "resolved": "string",
56
+ "references": {}
57
+ },
58
+ "required": true,
59
+ "optional": false,
60
+ "docs": {
61
+ "tags": [],
62
+ "text": "The label to add to the footer (visually hidden)."
63
+ },
64
+ "attribute": "label",
65
+ "reflect": false
66
+ }
67
+ };
68
+ }
69
+ static get states() {
70
+ return {
71
+ "isMobile": {}
72
+ };
73
+ }
74
+ static get elementRef() { return "host"; }
75
+ }
@@ -0,0 +1 @@
1
+ *,::before,::after{box-sizing:border-box}:host{--global-header-height: 72px;--global-header-minimal-height: 24px;--main-header-height: 56px;--main-header-min-height: 56px;--header-height: calc(var(--global-header-height) + var(--main-header-height))}@media screen and (min-width: 1024px){:host{display:block;position:sticky;inset-inline:0;inset-block-start:calc(-1*(var(--global-header-height) + var(--main-header-height) - var(--global-header-minimal-height)));box-shadow:var(--post-core-elevation-3)}}@media screen and (max-width: 1023.99px){:host{--global-header-height: 64px;--main-header-height: 48px;--main-header-min-height: 48px}}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;align-items:center;position:sticky;padding-inline:var(--post-core-dimension-4);height:var(--global-header-height);z-index:1}@media screen and (max-width: 1023.99px){.global-header{inset-block-start:0}}@media screen and (min-width: 1024px){.global-header{padding-inline-end:var(--post-core-dimension-12);top:calc((var(--global-header-height) - var(--global-header-minimal-height))*-1)}}slot[name=post-logo]{align-self:flex-end}.global-sub{display:flex;align-items:center;gap:var(--post-core-dimension-24)}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--global-header-height);width:var(--global-header-height);min-height:var(--global-header-minimal-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{height:calc(var(--global-header-height) - var(--header-scroll-top))}}::slotted(ul){margin-block:0;list-style:none;display:flex;padding-left:0;gap:1rem;flex-shrink:0 !important}.title-header{display:flex;align-items:center;gap:var(--post-core-dimension-8);min-height:var(--main-header-min-height);justify-content:space-between;background:var(--post-core-color-brand-white)}@media screen and (min-width: 1024px){.title-header{padding:var(--post-core-dimension-18) var(--post-core-dimension-16) var(--post-core-dimension-4) var(--post-core-dimension-12)}}@media screen and (max-width: 1023.99px){.title-header{position:sticky;z-index:1;inset-block-start:var(--global-header-height);padding-inline:var(--post-core-dimension-8) var(--post-core-dimension-16);padding-block:var(--post-core-dimension-9);flex-wrap:wrap}.title-header.title-header-mobile-extended{border-bottom:1px solid var(--post-core-color-sandgrey-012)}}:host(:not(:has([slot=title]))) .title-header{display:none}::slotted(h1){margin:0 !important;flex-shrink:10}@media screen and (min-width: 1024px){::slotted(h1){font-size:var(--post-core-font-size-28) !important}}@media screen and (max-width: 1023.99px){::slotted(h1){font-size:var(--post-core-font-size-20) !important;max-width:calc(100vw - var(--post-core-dimension-8) - var(--post-core-dimension-16))}}@media screen and (min-width: 1024px){.mobile-toggle{display:none}}.navigation{background:var(--post-core-color-brand-white)}@media screen and (min-width: 1024px){.navigation{position:sticky;z-index:1;inset-block-start:var(--global-header-minimal-height)}}@media screen and (max-width: 1023.99px){.navigation{position:fixed;inset-inline:0;inset-block-end:calc(100vh - var(--header-height));box-shadow:var(--post-core-elevation-3);min-height:var(--post-core-dimension-10);max-height:calc(100vh - var(--header-height));overflow:auto}::slotted(post-mainnavigation),.navigation-footer{display:none;flex-direction:column;padding-block:var(--post-core-dimension-16) var(--post-core-dimension-24);padding-inline:var(--post-core-dimension-32)}.navigation.extended ::slotted(post-mainnavigation),.navigation.extended .navigation-footer{display:flex}::slotted(post-mainnavigation){background-color:var(--post-core-color-sandgrey-002);gap:var(--post-core-dimension-32)}.navigation-footer{background-color:var(--post-core-color-sandgrey-006);gap:var(--post-core-dimension-24)}}
@@ -0,0 +1,172 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { throttle } from "throttle-debounce";
3
+ import { version } from "../../../../package";
4
+ import { slideDown, slideUp } from "../../animations/slide";
5
+ /**
6
+ * @slot post-logo - Should be used together with the `<post-logo>` component.
7
+ * @slot meta-navigation - Holds an `<ul>` with meta navigation links.
8
+ * @slot post-togglebutton - Holds the mobile menu toggler.
9
+ * @slot post-language-switch - Should be used with the `<post-language-switch>` component.
10
+ * @slot title - Holds the application title.
11
+ * @slot default - Custom controls or content, right aligned in the local header.
12
+ * @slot post-mainnavigation - Has a default slot because it's only meant to be used in the `<post-header>`.
13
+ */
14
+ export class PostHeader {
15
+ constructor() {
16
+ this.scrollParent = null;
17
+ this.throttledScroll = () => this.handleScrollEvent();
18
+ this.throttledResize = throttle(50, () => this.handleResize());
19
+ this.device = null;
20
+ this.mobileMenuExtended = false;
21
+ }
22
+ componentWillRender() {
23
+ this.scrollParent = this.getScrollParent(this.host);
24
+ this.scrollParent.addEventListener('scroll', this.throttledScroll, { passive: true });
25
+ window.addEventListener('resize', this.throttledResize, { passive: true });
26
+ this.handleResize();
27
+ this.handleScrollEvent();
28
+ }
29
+ frozeBody(isMobileMenuExtended) {
30
+ document.body.style.overflow = isMobileMenuExtended ? 'hidden' : '';
31
+ }
32
+ /**
33
+ * Toggles the mobile navigation.
34
+ */
35
+ async toggleMobileMenu() {
36
+ if (this.device === 'desktop')
37
+ return;
38
+ this.mobileMenuAnimation = this.mobileMenuExtended
39
+ ? slideUp(this.mobileMenu)
40
+ : slideDown(this.mobileMenu);
41
+ // Update the state of the toggle button
42
+ const menuButton = this.host.querySelector('post-togglebutton');
43
+ menuButton.toggled = !this.mobileMenuExtended;
44
+ // Toggle menu visibility before it slides down and after it slides back up
45
+ if (this.mobileMenuExtended)
46
+ await this.mobileMenuAnimation.finished;
47
+ this.mobileMenuExtended = !this.mobileMenuExtended;
48
+ if (!this.mobileMenuExtended)
49
+ await this.mobileMenuAnimation.finished;
50
+ }
51
+ handleScrollEvent() {
52
+ // Credits: "https://github.com/qeremy/so/blob/master/so.dom.js#L426"
53
+ const st = Math.max(0, this.scrollParent instanceof Document
54
+ ? this.scrollParent.documentElement.scrollTop
55
+ : this.scrollParent.scrollTop);
56
+ this.host.style.setProperty('--header-scroll-top', `${st}px`);
57
+ }
58
+ getScrollParent(node) {
59
+ let currentParent = node.parentElement;
60
+ while (currentParent) {
61
+ if (currentParent.nodeName === 'BODY') {
62
+ return document;
63
+ }
64
+ if (this.isScrollable(currentParent)) {
65
+ return currentParent;
66
+ }
67
+ currentParent = currentParent.parentElement;
68
+ }
69
+ return document;
70
+ }
71
+ isScrollable(node) {
72
+ if (!(node instanceof HTMLElement || node instanceof SVGElement)) {
73
+ return false;
74
+ }
75
+ const style = getComputedStyle(node);
76
+ return ['overflow', 'overflow-x', 'overflow-y'].some(propertyName => {
77
+ const value = style.getPropertyValue(propertyName);
78
+ return value === 'auto' || value === 'scroll';
79
+ });
80
+ }
81
+ handleResize() {
82
+ var _a;
83
+ const previousDevice = this.device;
84
+ let newDevice;
85
+ const width = window === null || window === void 0 ? void 0 : window.innerWidth;
86
+ if (width >= 1024) {
87
+ newDevice = 'desktop';
88
+ }
89
+ else if (width >= 600) {
90
+ newDevice = 'tablet';
91
+ }
92
+ else {
93
+ newDevice = 'mobile';
94
+ }
95
+ // Close any open mobile menu
96
+ if (newDevice === 'desktop' && this.mobileMenuExtended) {
97
+ this.toggleMobileMenu();
98
+ this.mobileMenuAnimation.finish(); // no animation
99
+ }
100
+ const mhh = (_a = this.host.shadowRoot.querySelector('.title-header')) === null || _a === void 0 ? void 0 : _a.clientHeight;
101
+ this.host.style.setProperty('--main-header-height', `${mhh}px`);
102
+ // Apply only on change for doing work only when necessary
103
+ if (newDevice !== previousDevice) {
104
+ this.device = newDevice;
105
+ window.requestAnimationFrame(() => {
106
+ this.switchLanguageSwitchMode();
107
+ });
108
+ }
109
+ }
110
+ switchLanguageSwitchMode() {
111
+ var _a;
112
+ const variant = this.device === 'desktop' ? 'menu' : 'list';
113
+ (_a = this.host.querySelector('post-language-switch')) === null || _a === void 0 ? void 0 : _a.setAttribute('variant', variant);
114
+ }
115
+ render() {
116
+ const navigationClasses = ['navigation'];
117
+ if (this.mobileMenuExtended) {
118
+ navigationClasses.push('extended');
119
+ }
120
+ return (h(Host, { key: '008e84568ce41249365d93169b2f94cd988601d0', version: version }, h("div", { key: 'f6415c30b3bfacd01a65166c7f0a3afc37676cc8', class: "global-header" }, h("div", { key: 'dc1465a3a68ce8c66c7da644d992c37d8d09ccc4', class: "global-sub" }, h("div", { key: '490b4afe502465bc20ccc41149533929987f2fab', class: "logo" }, h("slot", { key: '28ee1cdb2804f6315fffa2c319a1e2fa1e54ad08', name: "post-logo" }))), h("div", { key: '777d715f4718bb6738665f3d65c9ee4729a977de', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: 'c1ddbfdecc96fe3a6efb930d8475ee880059d372', name: "meta-navigation" }), h("slot", { key: 'df1ccf5c36ea4a05812c3983961389c42c42ddb9', name: "global-controls" }), this.device === 'desktop' && h("slot", { key: 'ace2dda9a3f3d898934c7d47c84e2475fb555e5d', name: "post-language-switch" }), h("div", { key: '3e8d94d9534d5daaa2f8e6ca5cc0833e78a49224', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '58e3637f103411f5e577dba931caf884f46a6e47', name: "post-togglebutton" })))), h("div", { key: 'f90ff065ed795fc780c90768e5c0ab5a431bec8d', class: 'title-header ' + (this.mobileMenuExtended ? 'title-header-mobile-extended' : '') }, h("slot", { key: 'a1aaaf02da073b9e7de82e84c93745afa6a8c4e9', name: "title" }), h("div", { key: '84ae2f8b846536130967362de160e054049c8489', class: "global-sub" }, h("slot", { key: '8a845cd7f87b3a2c2fba7ffc1ace31e87f6329d9', name: "local-controls" }), h("slot", { key: 'f3822b883fc88436a84d3ca7f840946af992417e' }))), h("div", { key: '8e0390c6c2b9a71488eea73c9207d0c336c9b75d', ref: el => (this.mobileMenu = el), class: navigationClasses.join(' ') }, h("slot", { key: '5fc2db060eb962c313fc4c9ab67032e990ff54c6', name: "post-mainnavigation" }), (this.device === 'mobile' || this.device === 'tablet') && (h("div", { key: '7b9147dcf5de01865785d417c8d1966efb891ace', class: "navigation-footer" }, h("slot", { key: '6e163a7dad7b0b0fc02493cd15152179d4242980', name: "meta-navigation" }), h("slot", { key: 'e8fd19eeed8a99d69ccd8635e36cd0256ed4424b', name: "post-language-switch" }))))));
121
+ }
122
+ static get is() { return "post-header"; }
123
+ static get encapsulation() { return "shadow"; }
124
+ static get originalStyleUrls() {
125
+ return {
126
+ "$": ["./post-header.scss"]
127
+ };
128
+ }
129
+ static get styleUrls() {
130
+ return {
131
+ "$": ["post-header.css"]
132
+ };
133
+ }
134
+ static get states() {
135
+ return {
136
+ "device": {},
137
+ "mobileMenuExtended": {}
138
+ };
139
+ }
140
+ static get methods() {
141
+ return {
142
+ "toggleMobileMenu": {
143
+ "complexType": {
144
+ "signature": "() => Promise<void>",
145
+ "parameters": [],
146
+ "references": {
147
+ "Promise": {
148
+ "location": "global",
149
+ "id": "global::Promise"
150
+ },
151
+ "HTMLPostTogglebuttonElement": {
152
+ "location": "global",
153
+ "id": "global::HTMLPostTogglebuttonElement"
154
+ }
155
+ },
156
+ "return": "Promise<void>"
157
+ },
158
+ "docs": {
159
+ "text": "Toggles the mobile navigation.",
160
+ "tags": []
161
+ }
162
+ }
163
+ };
164
+ }
165
+ static get elementRef() { return "host"; }
166
+ static get watchers() {
167
+ return [{
168
+ "propName": "mobileMenuExtended",
169
+ "methodName": "frozeBody"
170
+ }];
171
+ }
172
+ }
@@ -16,8 +16,6 @@ const ANIMATION_KEYS = [...ANIMATION_NAMES];
16
16
  */
17
17
  export class PostIcon {
18
18
  constructor() {
19
- this.svgStyles = undefined;
20
- this.svgOutput = undefined;
21
19
  this.animation = null;
22
20
  this.base = null;
23
21
  this.flipH = false;
@@ -49,39 +47,39 @@ export class PostIcon {
49
47
  validateScale(newValue = this.scale) {
50
48
  checkEmptyOrType(newValue, 'number', 'The post-icon "scale" prop should be a number.');
51
49
  }
52
- componentWillLoad() {
53
- this.validateBase();
54
- this.validateName();
55
- this.validateFlipH();
56
- this.validateFlipV();
57
- this.validateScale();
58
- this.validateRotate();
59
- this.validateAnimation();
60
- }
61
- componentWillRender() {
62
- this.setPath();
63
- }
64
- setPath() {
65
- var _a, _b, _c, _d;
50
+ getPath() {
51
+ var _a, _b, _c, _d, _e, _f;
66
52
  // Construct icon path from different possible sources
67
53
  const metaBase = (_b = (_a = document.head
68
54
  .querySelector('meta[name="design-system-settings"][data-post-icon-base]')) === null || _a === void 0 ? void 0 : _a.getAttribute('data-post-icon-base')) !== null && _b !== void 0 ? _b : null;
69
- const fileBase = `${(_d = (_c = this.base) !== null && _c !== void 0 ? _c : metaBase) !== null && _d !== void 0 ? _d : CDN_URL}/`.replace(/\/\/$/, '/');
55
+ const baseHref = (_c = document.getElementsByTagName('base')[0]) === null || _c === void 0 ? void 0 : _c.href;
56
+ const fileBase = `${(_f = (_e = (_d = this.base) !== null && _d !== void 0 ? _d : metaBase) !== null && _e !== void 0 ? _e : baseHref) !== null && _f !== void 0 ? _f : CDN_URL}/`.replace(/\/\/$/, '/');
70
57
  const fileName = `${this.name}.svg`;
71
58
  const filePath = `${fileBase}${fileName}`;
72
- this.path = new URL(filePath, window.location.origin).toString();
59
+ return new URL(filePath, window.location.origin).toString();
73
60
  }
74
- render() {
75
- // create inline styles for some properties
76
- const svgStyles = Object.entries({
77
- '-webkit-mask-image': `url('${this.path}')`,
78
- 'mask-image': `url('${this.path}')`,
61
+ getStyles() {
62
+ const path = this.getPath();
63
+ return Object.entries({
64
+ '-webkit-mask-image': `url(${path})`,
65
+ 'mask-image': `url('${path}')`,
79
66
  'transform': (this.scale && !isNaN(Number(this.scale)) ? 'scale(' + this.scale + ')' : '') +
80
67
  (this.rotate && !isNaN(Number(this.rotate)) ? ' rotate(' + this.rotate + 'deg)' : ''),
81
68
  })
82
69
  .filter(([_key, value]) => value !== null)
83
70
  .reduce((styles, [key, value]) => Object.assign(styles, { [key]: value }), {});
84
- return (h(Host, { key: '95fa0f7a09d3430bb5d621e01b57188742920eb4', "data-version": version }, h("span", { key: 'c824e3705dc83665bb6f7649381654e6d1e07dfb', style: svgStyles })));
71
+ }
72
+ componentDidLoad() {
73
+ this.validateBase();
74
+ this.validateName();
75
+ this.validateFlipH();
76
+ this.validateFlipV();
77
+ this.validateScale();
78
+ this.validateRotate();
79
+ this.validateAnimation();
80
+ }
81
+ render() {
82
+ return (h(Host, { key: '70e13e357929d2601de3b61f46f9a717ba491fd5', "data-version": version }, h("span", { key: 'a0c40175bfa6bd06f3498dc056685c8396b6e706', style: this.getStyles() })));
85
83
  }
86
84
  static get is() { return "post-icon"; }
87
85
  static get encapsulation() { return "shadow"; }
@@ -229,12 +227,6 @@ export class PostIcon {
229
227
  }
230
228
  };
231
229
  }
232
- static get states() {
233
- return {
234
- "svgStyles": {},
235
- "svgOutput": {}
236
- };
237
- }
238
230
  static get elementRef() { return "host"; }
239
231
  static get watchers() {
240
232
  return [{
@@ -0,0 +1,3 @@
1
+ /*!
2
+ * Copyright 2021 by Swiss Post, Information Technology
3
+ */post-language-option{display:inline-block}post-language-option button{padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;appearance:button}post-language-option a{color:inherit;text-decoration:none}post-language-option :is(a,button){cursor:pointer;display:flex;align-items:center;justify-content:center;height:100%;width:100%;padding:var(--post-language-option-padding);border-radius:2px}post-language-option :is(a,button){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}post-language-option :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-option :is(a,button):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-language-option :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-language-option :is(a,button):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-language-option:where([variant=list]) :is(a,button){width:40px;height:40px}post-language-option:where([variant=list]) :is(a,button):hover{color:#504f4b}post-language-option:where([variant=list]) :is(a,button)[aria-current=true],post-language-option:where([variant=list]) :is(a,button)[aria-current=page]{background-color:#050400;color:#fff}post-language-option:where([variant=list]) :is(a,button)[aria-current=true]:hover,post-language-option:where([variant=list]) :is(a,button)[aria-current=page]:hover{background-color:#504f4b}post-language-option:where([variant=menu]){width:100%}post-language-option:where([variant=menu]) :is(a,button){padding-block:13px;padding-inline:24px;box-sizing:border-box;position:relative;left:-1px;width:calc(100% + 2px)}post-language-option:where([variant=menu]) :is(a,button)[aria-current=true]::after,post-language-option:where([variant=menu]) :is(a,button)[aria-current=page]::after{content:"";left:0;height:3px;background-color:#050400;width:100%;display:block;position:absolute;bottom:3px}post-language-option:where([variant=menu]) :is(a,button)[aria-current=true]:hover::after,post-language-option:where([variant=menu]) :is(a,button)[aria-current=page]:hover::after{background-color:#504f4b}post-language-option:where([variant=menu]) :is(a,button):hover{color:#504f4b}
@@ -0,0 +1,219 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ import { checkEmptyOrType, checkType } from "../../utils/index";
3
+ import { version } from "../../../../package";
4
+ /**
5
+ * @slot default - Slot for placing the content inside the anchor or button.
6
+ */
7
+ export class PostLanguageOption {
8
+ constructor() {
9
+ this.code = undefined;
10
+ this.active = undefined;
11
+ this.variant = undefined;
12
+ this.name = undefined;
13
+ this.url = undefined;
14
+ }
15
+ validateCode(value = this.code) {
16
+ checkType(value, 'string', 'The "code" property of the post-language-option component must be a string.');
17
+ }
18
+ validateActiveProp(value = this.active) {
19
+ checkEmptyOrType(value, 'boolean', 'The "active" property of the post-language-option component must be a boolean value.');
20
+ }
21
+ validateName(value = this.name) {
22
+ checkEmptyOrType(value, 'string', 'The "name" property of the post-language-option component must be a string.');
23
+ }
24
+ validateUrl(value = this.url) {
25
+ checkEmptyOrType(value, 'string', 'The "url" property of the post-language-option component must be a valid URL.');
26
+ }
27
+ componentDidLoad() {
28
+ this.validateCode();
29
+ this.validateActiveProp();
30
+ this.validateName();
31
+ this.validateUrl();
32
+ if (!this.name && this.isNameRequired()) {
33
+ throw new Error('The "name" property of the post-language-option component is required when the full language name is not displayed.');
34
+ }
35
+ }
36
+ /**
37
+ * Selects the language option programmatically.
38
+ */
39
+ async select() {
40
+ this.active = true;
41
+ this.emitChange();
42
+ }
43
+ emitChange() {
44
+ this.postChange.emit(this.code);
45
+ }
46
+ isNameRequired() {
47
+ return this.host.textContent.toLowerCase() === this.code.toLowerCase();
48
+ }
49
+ render() {
50
+ const lang = this.code.toLowerCase();
51
+ const emitOnKeyDown = (e) => {
52
+ if (e.key === 'Enter' || e.key === ' ') {
53
+ this.emitChange();
54
+ }
55
+ };
56
+ return (h(Host, { key: '6a7c4af5ab0a953cc2c70621efc6fff905638900', "data-version": version, role: this.variant ? `${this.variant}item` : null }, this.url ? (h("a", { "aria-current": this.active ? 'page' : undefined, "aria-label": this.name, href: this.url, hrefLang: lang, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null))) : (h("button", { "aria-current": this.active ? 'true' : undefined, "aria-label": this.name, lang: lang, onClick: () => this.emitChange(), onKeyDown: emitOnKeyDown }, h("slot", null)))));
57
+ }
58
+ static get is() { return "post-language-option"; }
59
+ static get originalStyleUrls() {
60
+ return {
61
+ "$": ["post-language-option.scss"]
62
+ };
63
+ }
64
+ static get styleUrls() {
65
+ return {
66
+ "$": ["post-language-option.css"]
67
+ };
68
+ }
69
+ static get properties() {
70
+ return {
71
+ "code": {
72
+ "type": "string",
73
+ "mutable": false,
74
+ "complexType": {
75
+ "original": "string",
76
+ "resolved": "string",
77
+ "references": {}
78
+ },
79
+ "required": true,
80
+ "optional": false,
81
+ "docs": {
82
+ "tags": [],
83
+ "text": "The ISO 639 language code, formatted according to [RFC 5646 (also known as BCP 47)](https://datatracker.ietf.org/doc/html/rfc5646). For example, \"de\"."
84
+ },
85
+ "attribute": "code",
86
+ "reflect": false
87
+ },
88
+ "active": {
89
+ "type": "boolean",
90
+ "mutable": true,
91
+ "complexType": {
92
+ "original": "boolean",
93
+ "resolved": "boolean",
94
+ "references": {}
95
+ },
96
+ "required": false,
97
+ "optional": false,
98
+ "docs": {
99
+ "tags": [],
100
+ "text": "If set to `true`, the language option is considered the current language for the page."
101
+ },
102
+ "attribute": "active",
103
+ "reflect": true
104
+ },
105
+ "variant": {
106
+ "type": "string",
107
+ "mutable": false,
108
+ "complexType": {
109
+ "original": "SwitchVariant | null",
110
+ "resolved": "\"list\" | \"menu\"",
111
+ "references": {
112
+ "SwitchVariant": {
113
+ "location": "import",
114
+ "path": "../post-language-switch/switch-variants",
115
+ "id": "src/components/post-language-switch/switch-variants.ts::SwitchVariant"
116
+ }
117
+ }
118
+ },
119
+ "required": false,
120
+ "optional": true,
121
+ "docs": {
122
+ "tags": [],
123
+ "text": "The variant of the post-language-switch parent (dynamically set by the parent)"
124
+ },
125
+ "attribute": "variant",
126
+ "reflect": false
127
+ },
128
+ "name": {
129
+ "type": "string",
130
+ "mutable": false,
131
+ "complexType": {
132
+ "original": "string",
133
+ "resolved": "string",
134
+ "references": {}
135
+ },
136
+ "required": false,
137
+ "optional": false,
138
+ "docs": {
139
+ "tags": [],
140
+ "text": "The full name of the language. For example, \"Deutsch\"."
141
+ },
142
+ "attribute": "name",
143
+ "reflect": false
144
+ },
145
+ "url": {
146
+ "type": "string",
147
+ "mutable": false,
148
+ "complexType": {
149
+ "original": "string",
150
+ "resolved": "string",
151
+ "references": {}
152
+ },
153
+ "required": false,
154
+ "optional": false,
155
+ "docs": {
156
+ "tags": [],
157
+ "text": "The URL used for the href attribute of the internal anchor.\nThis field is optional; if not provided, a button will be used internally instead of an anchor."
158
+ },
159
+ "attribute": "url",
160
+ "reflect": false
161
+ }
162
+ };
163
+ }
164
+ static get events() {
165
+ return [{
166
+ "method": "postChange",
167
+ "name": "postChange",
168
+ "bubbles": true,
169
+ "cancelable": true,
170
+ "composed": true,
171
+ "docs": {
172
+ "tags": [],
173
+ "text": "An event emitted when the language option is clicked. The payload is the ISO 639 code of the language."
174
+ },
175
+ "complexType": {
176
+ "original": "string",
177
+ "resolved": "string",
178
+ "references": {}
179
+ }
180
+ }];
181
+ }
182
+ static get methods() {
183
+ return {
184
+ "select": {
185
+ "complexType": {
186
+ "signature": "() => Promise<void>",
187
+ "parameters": [],
188
+ "references": {
189
+ "Promise": {
190
+ "location": "global",
191
+ "id": "global::Promise"
192
+ }
193
+ },
194
+ "return": "Promise<void>"
195
+ },
196
+ "docs": {
197
+ "text": "Selects the language option programmatically.",
198
+ "tags": []
199
+ }
200
+ }
201
+ };
202
+ }
203
+ static get elementRef() { return "host"; }
204
+ static get watchers() {
205
+ return [{
206
+ "propName": "code",
207
+ "methodName": "validateCode"
208
+ }, {
209
+ "propName": "active",
210
+ "methodName": "validateActiveProp"
211
+ }, {
212
+ "propName": "name",
213
+ "methodName": "validateName"
214
+ }, {
215
+ "propName": "url",
216
+ "methodName": "validateUrl"
217
+ }];
218
+ }
219
+ }
@@ -0,0 +1 @@
1
+ :host{display:block}@media screen and (max-width: 1023.99px){:host{display:flex !important;gap:.5rem}}.post-language-switch-dropdown-container{display:flex;flex-direction:column}.post-language-switch-dropdown-container>*{width:100%}.post-language-switch-trigger{cursor:pointer;padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;appearance:button;text-decoration:none;display:inline-flex;align-items:center;gap:var(--post-core-dimension-6);border-radius:var(--post-core-dimension-24);font-size:var(--post-core-font-size-16);padding:var(--post-core-dimension-3) var(--post-core-dimension-10)}.post-language-switch-trigger{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.post-language-switch-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.post-language-switch-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.post-language-switch-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}.post-language-switch-trigger:not(:disabled):hover,.post-language-switch-trigger.pretend-hover{border-color:var(--post-scheme-color-interactive-button-tertiary-hover-stroke);background-color:var(--post-scheme-color-interactive-button-tertiary-hover-bg);color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}.post-language-switch-trigger post-icon{height:var(--post-core-dimension-16);width:var(--post-core-dimension-16)}