@swisspost/design-system-components 10.0.0-next.38 → 10.0.0-next.40

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 (386) hide show
  1. package/dist/cjs/index-2b2b85e5.js +96 -0
  2. package/dist/cjs/index-b60129c4.js +2 -6
  3. package/dist/cjs/index.cjs.js +23 -29
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{package-3e61e6f3.js → package-b731881e.js} +1 -1
  6. package/dist/cjs/placement-b2bb6ec4.js +18 -0
  7. package/dist/cjs/post-accordion-item-5c879102.js +161 -0
  8. package/dist/cjs/post-accordion_2.cjs.entry.js +16 -0
  9. package/dist/cjs/{post-avatar-22bfd12e.js → post-avatar-4f1681df.js} +21 -4
  10. package/dist/cjs/post-avatar.cjs.entry.js +3 -4
  11. package/dist/cjs/{post-back-to-top-f682ea05.js → post-back-to-top-abbb4ac4.js} +8 -11
  12. package/dist/cjs/post-back-to-top.cjs.entry.js +3 -5
  13. package/dist/cjs/{post-banner-5c749a94.js → post-banner-4d99c51c.js} +12 -17
  14. package/dist/cjs/post-banner.cjs.entry.js +3 -8
  15. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +3 -7
  16. package/dist/cjs/{post-breadcrumbs-76f55ae5.js → post-breadcrumbs-5ceabb10.js} +13 -7
  17. package/dist/cjs/post-breadcrumbs.cjs.entry.js +3 -3
  18. package/dist/cjs/{post-card-control-161a7102.js → post-card-control-b657aeaa.js} +42 -21
  19. package/dist/cjs/post-card-control.cjs.entry.js +3 -5
  20. package/dist/cjs/post-closebutton_15.cjs.entry.js +5 -9
  21. package/dist/cjs/{post-collapsible-trigger-6cdf4481.js → post-collapsible-trigger-33f09d6c.js} +5 -8
  22. package/dist/cjs/post-collapsible_2.cjs.entry.js +3 -8
  23. package/dist/cjs/post-components.cjs.js +1 -1
  24. package/dist/cjs/{post-footer-15d78645.js → post-footer-022cf408.js} +39 -11
  25. package/dist/cjs/post-footer.cjs.entry.js +3 -2
  26. package/dist/cjs/{post-linkarea-095d1928.js → post-linkarea-5fbb2e25.js} +2 -2
  27. package/dist/cjs/post-linkarea.cjs.entry.js +2 -2
  28. package/dist/cjs/{post-menu-item-387e079b.js → post-menu-item-d4cc4742.js} +4 -4
  29. package/dist/cjs/{post-popover-388c8091.js → post-popover-b7cd0091.js} +20 -5
  30. package/dist/cjs/post-popover.cjs.entry.js +4 -2
  31. package/dist/cjs/{post-rating-246e4d89.js → post-rating-c81d1ac3.js} +29 -8
  32. package/dist/cjs/post-rating.cjs.entry.js +4 -2
  33. package/dist/cjs/{post-tab-header-0e9d0e06.js → post-tab-header-1db15093.js} +4 -4
  34. package/dist/cjs/post-tab-header.cjs.entry.js +3 -4
  35. package/dist/cjs/{post-tab-panel-f952714f.js → post-tab-panel-698981b8.js} +11 -2
  36. package/dist/cjs/post-tab-panel.cjs.entry.js +4 -2
  37. package/dist/cjs/{post-tabs-97c30d81.js → post-tabs-79eab811.js} +2 -2
  38. package/dist/cjs/post-tabs.cjs.entry.js +2 -2
  39. package/dist/cjs/{post-tag-58003cf0.js → post-tag-66a52727.js} +18 -5
  40. package/dist/cjs/post-tag.cjs.entry.js +4 -2
  41. package/dist/cjs/{post-togglebutton-87c984d8.js → post-togglebutton-a6b8b75d.js} +89 -92
  42. package/dist/cjs/{post-tooltip-28e7711a.js → post-tooltip-560cf42c.js} +11 -10
  43. package/dist/cjs/{post-tooltip-trigger-cbc53d14.js → post-tooltip-trigger-2a54e3e4.js} +6 -8
  44. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +3 -3
  45. package/dist/cjs/post-tooltip.cjs.entry.js +4 -3
  46. package/dist/collection/collection-manifest.json +1 -1
  47. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  48. package/dist/collection/components/post-accordion/post-accordion.js +7 -7
  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 +5 -6
  51. package/dist/collection/components/post-avatar/post-avatar.js +25 -2
  52. package/dist/collection/components/post-back-to-top/post-back-to-top.js +8 -10
  53. package/dist/collection/components/post-banner/post-banner.js +13 -18
  54. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
  55. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +15 -7
  56. package/dist/collection/components/post-card-control/post-card-control.js +58 -33
  57. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
  58. package/dist/collection/components/post-collapsible/post-collapsible.js +1 -1
  59. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +4 -5
  60. package/dist/collection/components/post-footer/post-footer.css +1 -1
  61. package/dist/collection/components/post-footer/post-footer.js +39 -8
  62. package/dist/collection/components/post-header/post-header.css +1 -1
  63. package/dist/collection/components/post-header/post-header.js +29 -54
  64. package/dist/collection/components/post-icon/post-icon.js +17 -37
  65. package/dist/collection/components/post-language-option/post-language-option.js +13 -13
  66. package/dist/collection/components/post-language-switch/post-language-switch.js +5 -5
  67. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  68. package/dist/collection/components/post-list/post-list.js +1 -1
  69. package/dist/collection/components/post-list-item/post-list-item.js +1 -1
  70. package/dist/collection/components/post-logo/post-logo.js +2 -2
  71. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  72. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +1 -1
  73. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  74. package/dist/collection/components/post-megadropdown/post-megadropdown.js +1 -1
  75. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -1
  76. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +3 -3
  77. package/dist/collection/components/post-menu/post-menu.js +13 -2
  78. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  79. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +3 -3
  80. package/dist/collection/components/post-popover/post-popover.js +21 -2
  81. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +26 -4
  82. package/dist/collection/components/post-rating/post-rating.js +29 -2
  83. package/dist/collection/components/post-tab-header/post-tab-header.js +6 -11
  84. package/dist/collection/components/post-tab-panel/post-tab-panel.js +13 -2
  85. package/dist/collection/components/post-tabs/post-tabs.js +2 -2
  86. package/dist/collection/components/post-tag/post-tag.js +23 -11
  87. package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -12
  88. package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
  89. package/dist/collection/components/post-tooltip/post-tooltip.js +12 -12
  90. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +5 -7
  91. package/dist/collection/types/index.js +2 -0
  92. package/dist/collection/types/placement.js +14 -0
  93. package/dist/collection/types/property-types.js +1 -0
  94. package/dist/collection/utils/is-value-empty.js +4 -0
  95. package/dist/collection/utils/property-checkers/check-one-of.js +3 -4
  96. package/dist/collection/utils/property-checkers/check-pattern.js +3 -4
  97. package/dist/collection/utils/property-checkers/check-type.js +4 -6
  98. package/dist/collection/utils/property-checkers/check-url.js +5 -5
  99. package/dist/collection/utils/property-checkers/constants.js +1 -1
  100. package/dist/collection/utils/property-checkers/empty-or.js +4 -6
  101. package/dist/collection/utils/property-checkers/index.js +6 -6
  102. package/dist/collection/utils/property-checkers/required-and.js +14 -0
  103. package/dist/components/index2.js +60 -19
  104. package/dist/components/package.js +1 -1
  105. package/dist/components/post-accordion-item2.js +6 -6
  106. package/dist/components/post-accordion2.js +8 -8
  107. package/dist/components/post-avatar2.js +24 -4
  108. package/dist/components/post-back-to-top2.js +9 -12
  109. package/dist/components/post-banner2.js +12 -18
  110. package/dist/components/post-breadcrumb-item2.js +2 -2
  111. package/dist/components/post-breadcrumbs2.js +14 -7
  112. package/dist/components/post-card-control2.js +41 -16
  113. package/dist/components/post-closebutton2.js +1 -1
  114. package/dist/components/post-collapsible-trigger2.js +3 -5
  115. package/dist/components/post-collapsible2.js +2 -2
  116. package/dist/components/post-footer2.js +46 -9
  117. package/dist/components/post-header2.js +31 -33
  118. package/dist/components/post-icon2.js +9 -25
  119. package/dist/components/post-language-option2.js +9 -10
  120. package/dist/components/post-language-switch2.js +4 -6
  121. package/dist/components/post-linkarea2.js +1 -1
  122. package/dist/components/post-list-item2.js +1 -1
  123. package/dist/components/post-list2.js +1 -1
  124. package/dist/components/post-logo2.js +2 -2
  125. package/dist/components/post-mainnavigation2.js +2 -2
  126. package/dist/components/post-megadropdown-trigger2.js +4 -4
  127. package/dist/components/post-megadropdown2.js +2 -2
  128. package/dist/components/post-menu-item2.js +1 -1
  129. package/dist/components/post-menu-trigger2.js +3 -3
  130. package/dist/components/post-menu2.js +12 -2
  131. package/dist/components/post-popover2.js +20 -3
  132. package/dist/components/post-popovercontainer2.js +37 -3
  133. package/dist/components/post-rating2.js +26 -1
  134. package/dist/components/post-tab-header2.js +3 -3
  135. package/dist/components/post-tab-panel2.js +12 -1
  136. package/dist/components/post-tabs2.js +1 -1
  137. package/dist/components/post-tag2.js +19 -5
  138. package/dist/components/post-togglebutton2.js +1 -12
  139. package/dist/components/post-tooltip-trigger2.js +5 -7
  140. package/dist/components/post-tooltip2.js +11 -11
  141. package/dist/components/switch-variants.js +3 -0
  142. package/dist/docs.json +49 -89
  143. package/dist/esm/index-f4d19816.js +2 -6
  144. package/dist/esm/index-ffccd040.js +88 -0
  145. package/dist/esm/index.js +22 -28
  146. package/dist/esm/loader.js +1 -1
  147. package/dist/esm/package-9374eb90.js +3 -0
  148. package/dist/esm/placement-8d56605d.js +16 -0
  149. package/dist/esm/post-accordion-item-f416bd95.js +158 -0
  150. package/dist/esm/post-accordion_2.entry.js +7 -0
  151. package/dist/esm/{post-avatar-639dc17a.js → post-avatar-2cb5190b.js} +21 -4
  152. package/dist/esm/post-avatar.entry.js +3 -4
  153. package/dist/esm/{post-back-to-top-8099279e.js → post-back-to-top-f877d4c6.js} +8 -11
  154. package/dist/esm/post-back-to-top.entry.js +3 -5
  155. package/dist/esm/{post-banner-54834fbf.js → post-banner-576a5adb.js} +12 -17
  156. package/dist/esm/post-banner.entry.js +3 -8
  157. package/dist/esm/post-breadcrumb-item_2.entry.js +3 -7
  158. package/dist/esm/{post-breadcrumbs-caf56014.js → post-breadcrumbs-63223336.js} +13 -7
  159. package/dist/esm/post-breadcrumbs.entry.js +3 -3
  160. package/dist/esm/{post-card-control-b063586b.js → post-card-control-2eebe7b4.js} +37 -16
  161. package/dist/esm/post-card-control.entry.js +3 -5
  162. package/dist/esm/post-closebutton_15.entry.js +5 -9
  163. package/dist/esm/{post-collapsible-trigger-727bcde1.js → post-collapsible-trigger-561df34e.js} +5 -8
  164. package/dist/esm/post-collapsible_2.entry.js +3 -8
  165. package/dist/esm/post-components.js +1 -1
  166. package/dist/esm/{post-footer-16f1a8de.js → post-footer-a270f67b.js} +36 -8
  167. package/dist/esm/post-footer.entry.js +3 -2
  168. package/dist/esm/{post-linkarea-4e4228fb.js → post-linkarea-456ce63d.js} +2 -2
  169. package/dist/esm/post-linkarea.entry.js +2 -2
  170. package/dist/esm/{post-menu-item-e9dd8173.js → post-menu-item-e051284c.js} +4 -4
  171. package/dist/esm/{post-popover-46ede6b5.js → post-popover-7c3c9072.js} +17 -2
  172. package/dist/esm/post-popover.entry.js +4 -2
  173. package/dist/esm/{post-rating-8d0d970b.js → post-rating-2c9dd11f.js} +23 -2
  174. package/dist/esm/post-rating.entry.js +4 -2
  175. package/dist/esm/{post-tab-header-8224c7c2.js → post-tab-header-f90b2f93.js} +4 -4
  176. package/dist/esm/post-tab-header.entry.js +3 -4
  177. package/dist/esm/{post-tab-panel-dfdeccd3.js → post-tab-panel-c19b5e30.js} +11 -2
  178. package/dist/esm/post-tab-panel.entry.js +4 -2
  179. package/dist/esm/{post-tabs-fabd0569.js → post-tabs-0dadedf2.js} +2 -2
  180. package/dist/esm/post-tabs.entry.js +2 -2
  181. package/dist/esm/{post-tag-13994238.js → post-tag-b8be3b0c.js} +18 -5
  182. package/dist/esm/post-tag.entry.js +4 -2
  183. package/dist/esm/{post-togglebutton-87967c5b.js → post-togglebutton-83339cc9.js} +89 -92
  184. package/dist/esm/{post-tooltip-eecaa4c7.js → post-tooltip-3cc82984.js} +11 -10
  185. package/dist/esm/{post-tooltip-trigger-642cbb22.js → post-tooltip-trigger-898c3dbc.js} +6 -8
  186. package/dist/esm/post-tooltip-trigger.entry.js +3 -3
  187. package/dist/esm/post-tooltip.entry.js +4 -3
  188. package/dist/post-components/index.esm.js +1 -1
  189. package/dist/post-components/p-104ddc50.js +1 -0
  190. package/dist/post-components/p-13b41e32.entry.js +1 -0
  191. package/dist/post-components/p-1906d77c.js +1 -0
  192. package/dist/post-components/p-19d0e6ea.entry.js +1 -0
  193. package/dist/post-components/p-1b9afb34.entry.js +1 -0
  194. package/dist/post-components/{p-a07f85ee.js → p-1fbffc90.js} +1 -1
  195. package/dist/post-components/p-234925fa.js +1 -0
  196. package/dist/post-components/p-23fb976f.entry.js +1 -0
  197. package/dist/post-components/p-24c42ebe.entry.js +1 -0
  198. package/dist/post-components/{p-19317b15.js → p-28c19671.js} +2 -2
  199. package/dist/post-components/p-37aaa30f.js +1 -0
  200. package/dist/post-components/p-3baf0b40.entry.js +1 -0
  201. package/dist/post-components/p-4390192f.js +1 -0
  202. package/dist/post-components/p-4a071696.js +1 -0
  203. package/dist/post-components/p-4c2d5072.js +1 -0
  204. package/dist/post-components/p-51b6114c.entry.js +1 -0
  205. package/dist/post-components/p-59a38c23.js +1 -0
  206. package/dist/post-components/p-5fb4fc65.js +1 -0
  207. package/dist/post-components/p-64c13aaf.entry.js +1 -0
  208. package/dist/post-components/p-66679f9d.entry.js +1 -0
  209. package/dist/post-components/p-68a98f0b.js +1 -0
  210. package/dist/post-components/{p-692ba59d.js → p-6a4dc55e.js} +1 -1
  211. package/dist/post-components/p-789f9a23.entry.js +1 -0
  212. package/dist/post-components/p-7e6eae42.js +1 -0
  213. package/dist/post-components/p-8117dd0c.js +1 -0
  214. package/dist/post-components/p-814c0c4d.entry.js +1 -0
  215. package/dist/post-components/p-87e0d6fa.js +1 -0
  216. package/dist/post-components/p-988d20f4.js +1 -0
  217. package/dist/post-components/p-9b1e4e52.entry.js +1 -0
  218. package/dist/post-components/p-ab44a18c.entry.js +1 -0
  219. package/dist/post-components/p-b176309b.js +1 -0
  220. package/dist/post-components/p-b2952b0e.entry.js +1 -0
  221. package/dist/post-components/p-c10b2a2f.js +1 -0
  222. package/dist/post-components/{p-0dcd25ab.js → p-c80cb846.js} +1 -1
  223. package/dist/post-components/p-da4704c1.js +1 -0
  224. package/dist/post-components/p-dc4de84a.entry.js +1 -0
  225. package/dist/post-components/p-f1f0ace3.entry.js +1 -0
  226. package/dist/post-components/p-f34fb6c4.entry.js +1 -0
  227. package/dist/post-components/p-f6f914bb.js +1 -0
  228. package/dist/post-components/p-fe7e64cf.entry.js +1 -0
  229. package/dist/post-components/p-fee94252.entry.js +1 -0
  230. package/dist/post-components/post-components.css +1 -0
  231. package/dist/post-components/post-components.esm.js +1 -1
  232. package/dist/prebuild.js +26 -0
  233. package/dist/types/components/post-accordion/post-accordion.d.ts +2 -1
  234. package/dist/types/components/post-avatar/post-avatar.d.ts +3 -0
  235. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +1 -1
  236. package/dist/types/components/post-banner/post-banner.d.ts +3 -4
  237. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +2 -1
  238. package/dist/types/components/post-card-control/post-card-control.d.ts +10 -6
  239. package/dist/types/components/post-footer/post-footer.d.ts +8 -2
  240. package/dist/types/components/post-header/post-header.d.ts +5 -9
  241. package/dist/types/components/post-icon/post-icon.d.ts +5 -7
  242. package/dist/types/components/post-language-option/post-language-option.d.ts +5 -5
  243. package/dist/types/components/post-logo/post-logo.d.ts +1 -1
  244. package/dist/types/components/post-menu/post-menu.d.ts +1 -0
  245. package/dist/types/components/post-popover/post-popover.d.ts +2 -0
  246. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +3 -0
  247. package/dist/types/components/post-rating/post-rating.d.ts +4 -0
  248. package/dist/types/components/post-tab-header/post-tab-header.d.ts +1 -1
  249. package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +1 -0
  250. package/dist/types/components/post-tabs/post-tabs.d.ts +1 -1
  251. package/dist/types/components/post-tag/post-tag.d.ts +5 -3
  252. package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +0 -1
  253. package/dist/types/components/post-tooltip/post-tooltip.d.ts +3 -3
  254. package/dist/types/components.d.ts +38 -59
  255. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +1 -0
  256. package/dist/types/index.d.ts +2 -2
  257. package/dist/types/types/index.d.ts +2 -0
  258. package/dist/types/types/placement.d.ts +1 -0
  259. package/dist/types/types/property-types.d.ts +1 -0
  260. package/dist/types/utils/is-value-empty.d.ts +1 -0
  261. package/dist/types/utils/property-checkers/check-one-of.d.ts +1 -1
  262. package/dist/types/utils/property-checkers/check-pattern.d.ts +1 -1
  263. package/dist/types/utils/property-checkers/check-type.d.ts +2 -2
  264. package/dist/types/utils/property-checkers/check-url.d.ts +1 -1
  265. package/dist/types/utils/property-checkers/constants.d.ts +1 -1
  266. package/dist/types/utils/property-checkers/empty-or.d.ts +3 -1
  267. package/dist/types/utils/property-checkers/index.d.ts +16 -9
  268. package/dist/types/utils/property-checkers/required-and.d.ts +3 -0
  269. package/loaders/index2.js +60 -19
  270. package/loaders/package.js +1 -1
  271. package/loaders/post-accordion-item2.js +6 -6
  272. package/loaders/post-accordion.js +1 -124
  273. package/{dist/esm/post-accordion-03796d13.js → loaders/post-accordion2.js} +43 -20
  274. package/loaders/post-avatar.js +24 -4
  275. package/loaders/post-back-to-top.js +9 -12
  276. package/loaders/post-banner.js +12 -18
  277. package/loaders/post-breadcrumb-item2.js +2 -2
  278. package/loaders/post-breadcrumbs.js +14 -7
  279. package/loaders/post-card-control.js +41 -16
  280. package/loaders/post-closebutton.js +1 -1
  281. package/loaders/post-collapsible-trigger2.js +3 -5
  282. package/loaders/post-collapsible2.js +2 -2
  283. package/loaders/post-footer.js +46 -9
  284. package/loaders/post-header.js +31 -33
  285. package/loaders/post-icon2.js +9 -25
  286. package/loaders/post-language-option.js +9 -10
  287. package/loaders/post-language-switch.js +4 -6
  288. package/loaders/post-linkarea.js +1 -1
  289. package/loaders/post-list-item.js +1 -1
  290. package/loaders/post-list.js +1 -1
  291. package/loaders/post-logo.js +2 -2
  292. package/loaders/post-mainnavigation.js +2 -2
  293. package/loaders/post-megadropdown-trigger.js +4 -4
  294. package/loaders/post-megadropdown.js +2 -2
  295. package/loaders/post-menu-item2.js +1 -1
  296. package/loaders/post-menu-trigger2.js +3 -3
  297. package/loaders/post-menu2.js +12 -2
  298. package/loaders/post-popover.js +20 -3
  299. package/loaders/post-popovercontainer.js +1 -1
  300. package/loaders/post-popovercontainer2.js +37 -3
  301. package/loaders/post-rating.js +26 -1
  302. package/loaders/post-tab-header.js +3 -3
  303. package/loaders/post-tab-panel.js +12 -1
  304. package/loaders/post-tabs.js +1 -1
  305. package/loaders/post-tag.js +19 -5
  306. package/loaders/post-togglebutton.js +1 -12
  307. package/loaders/post-tooltip-trigger.js +5 -7
  308. package/loaders/post-tooltip.js +11 -11
  309. package/loaders/switch-variants.js +3 -0
  310. package/package.json +19 -9
  311. package/dist/cjs/check-non-empty-bd99d236.js +0 -15
  312. package/dist/cjs/check-one-of-75d270b5.js +0 -13
  313. package/dist/cjs/check-type-cdbf6d29.js +0 -21
  314. package/dist/cjs/check-url-220a286c.js +0 -19
  315. package/dist/cjs/constants-238701d3.js +0 -5
  316. package/dist/cjs/heading-levels-608d432e.js +0 -5
  317. package/dist/cjs/index-23e36ff7.js +0 -37
  318. package/dist/cjs/post-accordion-e54524be.js +0 -105
  319. package/dist/cjs/post-accordion-item-86f11a16.js +0 -64
  320. package/dist/cjs/post-accordion-item.cjs.entry.js +0 -20
  321. package/dist/cjs/post-accordion.cjs.entry.js +0 -15
  322. package/dist/collection/utils/property-checkers/check-non-empty.js +0 -10
  323. package/dist/components/check-non-empty.js +0 -13
  324. package/dist/components/check-one-of.js +0 -11
  325. package/dist/components/check-type.js +0 -19
  326. package/dist/components/constants.js +0 -3
  327. package/dist/esm/check-non-empty-258a56b3.js +0 -13
  328. package/dist/esm/check-one-of-0bee20f5.js +0 -11
  329. package/dist/esm/check-type-37d5d307.js +0 -19
  330. package/dist/esm/check-url-17962bc8.js +0 -17
  331. package/dist/esm/constants-8d548297.js +0 -3
  332. package/dist/esm/heading-levels-5b7b4349.js +0 -3
  333. package/dist/esm/index-8f8fe5b0.js +0 -32
  334. package/dist/esm/package-33ac2576.js +0 -3
  335. package/dist/esm/post-accordion-item-d29c49e5.js +0 -62
  336. package/dist/esm/post-accordion-item.entry.js +0 -12
  337. package/dist/esm/post-accordion.entry.js +0 -7
  338. package/dist/post-components/p-0539071d.js +0 -1
  339. package/dist/post-components/p-181c73d5.js +0 -1
  340. package/dist/post-components/p-1ef9415b.js +0 -1
  341. package/dist/post-components/p-247a1668.js +0 -1
  342. package/dist/post-components/p-24d0695f.entry.js +0 -1
  343. package/dist/post-components/p-2e50a07d.entry.js +0 -1
  344. package/dist/post-components/p-30eb4d87.js +0 -1
  345. package/dist/post-components/p-440193f4.js +0 -1
  346. package/dist/post-components/p-46008c18.entry.js +0 -1
  347. package/dist/post-components/p-47ab2c2b.entry.js +0 -1
  348. package/dist/post-components/p-4c049de0.entry.js +0 -1
  349. package/dist/post-components/p-4c4acc32.entry.js +0 -1
  350. package/dist/post-components/p-5d473fcd.js +0 -1
  351. package/dist/post-components/p-5d539b30.js +0 -1
  352. package/dist/post-components/p-6783e509.entry.js +0 -1
  353. package/dist/post-components/p-6933fb57.entry.js +0 -1
  354. package/dist/post-components/p-72197a6b.js +0 -1
  355. package/dist/post-components/p-7709c14a.js +0 -1
  356. package/dist/post-components/p-77910344.entry.js +0 -1
  357. package/dist/post-components/p-80e5100e.entry.js +0 -1
  358. package/dist/post-components/p-84fbf49c.js +0 -1
  359. package/dist/post-components/p-85fdc2d3.js +0 -1
  360. package/dist/post-components/p-8c09291c.js +0 -1
  361. package/dist/post-components/p-93da1a5f.js +0 -1
  362. package/dist/post-components/p-9b8ee310.entry.js +0 -1
  363. package/dist/post-components/p-9efb84d3.entry.js +0 -1
  364. package/dist/post-components/p-9fbf2f82.entry.js +0 -1
  365. package/dist/post-components/p-a25019de.js +0 -1
  366. package/dist/post-components/p-a710ee00.js +0 -1
  367. package/dist/post-components/p-b94e5b4d.entry.js +0 -1
  368. package/dist/post-components/p-c2348d3d.js +0 -1
  369. package/dist/post-components/p-c6b03446.entry.js +0 -1
  370. package/dist/post-components/p-d0dfd5f9.js +0 -1
  371. package/dist/post-components/p-d45df336.js +0 -1
  372. package/dist/post-components/p-d4890d50.entry.js +0 -1
  373. package/dist/post-components/p-d5210531.entry.js +0 -1
  374. package/dist/post-components/p-dd39c542.entry.js +0 -1
  375. package/dist/post-components/p-df6c8a4c.js +0 -1
  376. package/dist/post-components/p-e068a41e.js +0 -1
  377. package/dist/post-components/p-e585c6fe.js +0 -1
  378. package/dist/post-components/p-f2c4a48d.js +0 -1
  379. package/dist/post-components/p-f31b9b5d.entry.js +0 -1
  380. package/dist/post-components/p-f58252d5.entry.js +0 -1
  381. package/dist/post-components/p-fda767f0.js +0 -1
  382. package/dist/types/utils/property-checkers/check-non-empty.d.ts +0 -3
  383. package/loaders/check-non-empty.js +0 -13
  384. package/loaders/check-one-of.js +0 -11
  385. package/loaders/check-type.js +0 -19
  386. package/loaders/constants.js +0 -3
@@ -1,6 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { c as checkOneOf } from './check-one-of.js';
3
- import { c as checkNonEmpty } from './check-non-empty.js';
2
+ import { b as checkRequiredAndType, d as checkEmptyOrType, c as checkRequiredAndOneOf } from './index2.js';
4
3
  import './breakpoints.js';
5
4
  import { v as version } from './package.js';
6
5
  import { d as defineCustomElement$1 } from './post-icon2.js';
@@ -12,10 +11,10 @@ let cardControlIds = 0;
12
11
  const PostCardControl = /*@__PURE__*/ proxyCustomElement(class PostCardControl extends HTMLElement {
13
12
  /**
14
13
  * A public method to reset the controls `checked` and `validity` state.
15
- * The validity state is set to `null`, so it's neither valid nor invalid.
14
+ * The validity state is set to `undefined`, so it's neither valid nor invalid.
16
15
  */
17
16
  async reset() {
18
- this.validity = null;
17
+ this.validity = undefined;
19
18
  this.controlSetChecked(this.initialChecked);
20
19
  }
21
20
  /**
@@ -27,10 +26,24 @@ const PostCardControl = /*@__PURE__*/ proxyCustomElement(class PostCardControl e
27
26
  this.controlSetChecked(false);
28
27
  }
29
28
  validateControlLabel() {
30
- checkNonEmpty(this, 'label');
29
+ checkRequiredAndType(this, 'label', 'string');
30
+ }
31
+ validateControlDescription() {
32
+ checkEmptyOrType(this, 'description', 'string');
31
33
  }
32
34
  validateControlType() {
33
- checkOneOf(this, 'type', ['checkbox', 'radio']);
35
+ checkRequiredAndOneOf(this, 'type', ['checkbox', 'radio']);
36
+ }
37
+ validateControlName() {
38
+ checkEmptyOrType(this, 'name', 'string');
39
+ }
40
+ validateControlValue() {
41
+ if (this.type == 'radio') {
42
+ checkEmptyOrType(this, 'value', 'string');
43
+ }
44
+ }
45
+ validateControlIcon() {
46
+ checkEmptyOrType(this, 'icon', 'string');
34
47
  }
35
48
  updateControlChecked(checked = this.checked) {
36
49
  this.controlSetChecked(checked);
@@ -67,14 +80,14 @@ const PostCardControl = /*@__PURE__*/ proxyCustomElement(class PostCardControl e
67
80
  this.controlId = `PostCardControl_${cardControlIds++}`;
68
81
  this.focused = false;
69
82
  this.label = undefined;
70
- this.description = null;
83
+ this.description = undefined;
71
84
  this.type = undefined;
72
- this.name = null;
73
- this.value = null;
85
+ this.name = undefined;
86
+ this.value = undefined;
74
87
  this.checked = false;
75
88
  this.disabled = false;
76
- this.validity = null;
77
- this.icon = null;
89
+ this.validity = undefined;
90
+ this.icon = undefined;
78
91
  this.cardClickHandler = this.cardClickHandler.bind(this);
79
92
  this.controlClickHandler = this.controlClickHandler.bind(this);
80
93
  this.controlChangeHandler = this.controlChangeHandler.bind(this);
@@ -221,14 +234,14 @@ const PostCardControl = /*@__PURE__*/ proxyCustomElement(class PostCardControl e
221
234
  this.hasIcon = Boolean(this.host.querySelector('[slot="icon"]') || this.icon);
222
235
  }
223
236
  render() {
224
- return (h(Host, { key: '9172642a4424a3393c0738feba3a3ef8dcea43e8', "data-version": version, onClick: this.cardClickHandler }, h("div", { key: 'd6e47613dfe9d33647fd2379010275d70cbcbdcb', class: {
237
+ return (h(Host, { key: 'ff23ac518f715fc7c2727dd7c2abccd0fdb486da', "data-version": version, onClick: this.cardClickHandler }, h("div", { key: '3519942dfeb694729e4b6c7c7df4b68854ccde81', class: {
225
238
  'card-control': true,
226
239
  'is-checked': this.checked,
227
240
  'is-disabled': this.disabled,
228
241
  'is-focused': this.focused,
229
- 'is-valid': this.validity !== null && this.validity !== 'false',
230
- 'is-invalid': this.validity === 'false',
231
- } }, h("input", { key: '44b0e5d5c2c6a759300979a5c33c2a65afaaa27d', ref: el => (this.control = el), id: this.controlId, class: "card-control--input", type: this.type, name: this.name, value: this.value, checked: this.checked, "aria-describedby": `${this.controlId}_content`, "aria-disabled": this.disabled, "aria-invalid": this.validity === 'false', onClick: this.controlClickHandler, onInput: this.controlChangeHandler, onChange: this.controlChangeHandler, onFocus: this.controlFocusHandler, onBlur: this.controlFocusHandler, onKeyDown: this.controlKeyDownHandler }), h("label", { key: 'fd3106562bfcb5ca0e7e5704272f927bfb201af5', id: `${this.controlId}_label`, htmlFor: this.controlId, class: "card-control--label" }, this.label, this.description ? (h("div", { class: "card-control--description" }, this.description)) : null), this.hasIcon ? (h("div", { class: "card-control--icon" }, h("slot", { name: "icon" }, this.icon ? h("post-icon", { name: this.icon }) : null))) : null, h("div", { key: 'ebfa245a0e2b6e45384586408614ce85494fbc58', id: `${this.controlId}_content`, class: "card-control--content" }, h("slot", { key: '99b406bc58fbfcd054f1b551a453a7ac1f4276f6' })))));
242
+ 'is-valid': this.validity !== undefined && this.validity !== false,
243
+ 'is-invalid': this.validity === false,
244
+ } }, h("input", { key: 'f47a58485c7d507565e29c832ca1c3d6b053bc17', ref: el => (this.control = el), id: this.controlId, class: "card-control--input", type: this.type, name: this.name, value: this.value, checked: this.checked, "aria-describedby": `${this.controlId}_content`, "aria-disabled": this.disabled, "aria-invalid": this.validity === false, onClick: this.controlClickHandler, onInput: this.controlChangeHandler, onChange: this.controlChangeHandler, onFocus: this.controlFocusHandler, onBlur: this.controlFocusHandler, onKeyDown: this.controlKeyDownHandler }), h("label", { key: '65e8247d88c2cc6bb2e0be17e7d6fab3502fb364', id: `${this.controlId}_label`, htmlFor: this.controlId, class: "card-control--label" }, this.label, this.description ? (h("div", { class: "card-control--description" }, this.description)) : null), this.hasIcon ? (h("div", { class: "card-control--icon" }, h("slot", { name: "icon" }, this.icon ? h("post-icon", { name: this.icon }) : null))) : null, h("div", { key: 'df538a1f14b49fa7bd6907ef57d045c7303b6d77', id: `${this.controlId}_content`, class: "card-control--content" }, h("slot", { key: '1a79c6a2da57a5b8aef911dc2acd09e553b79489' })))));
232
245
  }
233
246
  componentDidRender() {
234
247
  this.setHostContext();
@@ -236,7 +249,11 @@ const PostCardControl = /*@__PURE__*/ proxyCustomElement(class PostCardControl e
236
249
  }
237
250
  componentDidLoad() {
238
251
  this.validateControlLabel();
252
+ this.validateControlName();
253
+ this.validateControlValue();
254
+ this.validateControlDescription();
239
255
  this.validateControlType();
256
+ this.validateControlIcon();
240
257
  }
241
258
  formAssociatedCallback() {
242
259
  this.controlSetChecked(this.checked);
@@ -254,7 +271,11 @@ const PostCardControl = /*@__PURE__*/ proxyCustomElement(class PostCardControl e
254
271
  get host() { return this; }
255
272
  static get watchers() { return {
256
273
  "label": ["validateControlLabel"],
274
+ "description": ["validateControlDescription"],
257
275
  "type": ["validateControlType"],
276
+ "name": ["validateControlName"],
277
+ "value": ["validateControlValue"],
278
+ "icon": ["validateControlIcon"],
258
279
  "checked": ["updateControlChecked"],
259
280
  "disabled": ["updateControlDisabled"]
260
281
  }; }
@@ -267,14 +288,18 @@ const PostCardControl = /*@__PURE__*/ proxyCustomElement(class PostCardControl e
267
288
  "value": [1],
268
289
  "checked": [1028],
269
290
  "disabled": [1028],
270
- "validity": [1025],
291
+ "validity": [1028],
271
292
  "icon": [1],
272
293
  "focused": [32],
273
294
  "reset": [64],
274
295
  "groupReset": [64]
275
296
  }, undefined, {
276
297
  "label": ["validateControlLabel"],
298
+ "description": ["validateControlDescription"],
277
299
  "type": ["validateControlType"],
300
+ "name": ["validateControlName"],
301
+ "value": ["validateControlValue"],
302
+ "icon": ["validateControlIcon"],
278
303
  "checked": ["updateControlChecked"],
279
304
  "disabled": ["updateControlDisabled"]
280
305
  }]);
@@ -12,7 +12,7 @@ const PostClosebutton = /*@__PURE__*/ proxyCustomElement(class PostClosebutton e
12
12
  this.__attachShadow();
13
13
  }
14
14
  render() {
15
- return (h(Host, { key: 'cfa55f799fdf9ad0f3ac1eb296e063b5001de997', "data-version": version }, h("button", { key: '7c8a084f6d7278329ddfb5fc4b2b8f992a185666', class: "btn btn-icon-close", type: "button" }, h("post-icon", { key: 'fc74ccb4f0c4c091a02a41cdef918d6c3b065c8c', "aria-hidden": "true", name: "closex" }), h("span", { key: '98478b013714df6d82c6c2f533ac8ecd2abae778', class: "visually-hidden" }, h("slot", { key: '109e2bca4436986dd037d8c29088cc79395bc200' })))));
15
+ return (h(Host, { key: '7b5e179b42eefd1823b2b2ef7ee17c94bd9f0ddd', "data-version": version }, h("button", { key: '471e68d1ddcfe741f5450d002b2daa86cec0f986', class: "btn btn-icon-close", type: "button" }, h("post-icon", { key: '928fa7460988cffa269a29506e68e056f84bcef8', "aria-hidden": "true", name: "closex" }), h("span", { key: 'c1501f4a8b7d8d95be7d02576b10143b9e6b0654', class: "visually-hidden" }, h("slot", { key: 'a9f1ab8db57486d420db0981090ad2ba5183c289' })))));
16
16
  }
17
17
  get host() { return this; }
18
18
  static get style() { return PostClosebuttonStyle0; }
@@ -1,7 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { v as version } from './package.js';
3
- import { c as checkType } from './check-type.js';
4
- import { c as checkNonEmpty } from './check-non-empty.js';
3
+ import { b as checkRequiredAndType } from './index2.js';
5
4
  import './breakpoints.js';
6
5
  import { e as eventGuard } from './event-guard.js';
7
6
  import { g as getRoot } from './get-root.js';
@@ -18,8 +17,7 @@ const PostCollapsibleTrigger = /*@__PURE__*/ proxyCustomElement(class PostCollap
18
17
  * Set the "aria-controls" and "aria-expanded" attributes on the trigger to match the state of the controlled post-collapsible
19
18
  */
20
19
  validateAriaAttributes() {
21
- checkNonEmpty(this, 'for');
22
- checkType(this, 'for', 'string', 'The post-collapsible-trigger "for" prop should be a id.');
20
+ checkRequiredAndType(this, 'for', 'string');
23
21
  }
24
22
  /**
25
23
  * Initiate a mutation observer that updates the trigger whenever necessary
@@ -98,7 +96,7 @@ const PostCollapsibleTrigger = /*@__PURE__*/ proxyCustomElement(class PostCollap
98
96
  this.updateAriaAttributes();
99
97
  }
100
98
  render() {
101
- return (h(Host, { key: 'cd703fe34b8c82afc5956b58724d36b06054bc0b', "data-version": version }, h("slot", { key: '5abe4ba2b8922b941cc8aebbc7039e34e1853855' })));
99
+ return (h(Host, { key: '8c835c780604b1138262489ca7d3313288e5ee86', "data-version": version }, h("slot", { key: 'ef354c2ca5e699a4e2c8940959f75a69918f388c' })));
102
100
  }
103
101
  get host() { return this; }
104
102
  static get watchers() { return {
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { v as version } from './package.js';
3
3
  import { I as IS_BROWSER } from './breakpoints.js';
4
- import { e as checkEmptyOrType } from './index2.js';
4
+ import { d as checkEmptyOrType } from './index2.js';
5
5
 
6
6
  function isMotionReduced() {
7
7
  return IS_BROWSER ? window.matchMedia('(prefers-reduced-motion: reduce)').matches : false;
@@ -78,7 +78,7 @@ const PostCollapsible = /*@__PURE__*/ proxyCustomElement(class PostCollapsible e
78
78
  triggers.forEach(trigger => trigger.update());
79
79
  }
80
80
  render() {
81
- return (h(Host, { key: 'a678bc639dfd7686d8e1bd57ca0f09984a24ab61', "data-version": version, tabindex: this.collapsed ? -1 : undefined }, h("slot", { key: 'e0b88ac152fa09314b4bc01c9abdb11480e2cb4d' })));
81
+ return (h(Host, { key: '130edce2062a5f3dac3072f173d021e88dddd7cf', "data-version": version, tabindex: this.collapsed ? -1 : undefined }, h("slot", { key: '54ed1790df52911b821a4de38cd5f33c425f3399' })));
82
82
  }
83
83
  get host() { return this; }
84
84
  static get watchers() { return {
@@ -1,57 +1,94 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { v as version } from './package.js';
3
+ import { b as checkRequiredAndType } from './index2.js';
3
4
  import { b as breakpoint } from './breakpoints.js';
5
+ import { d as defineCustomElement$5 } from './post-accordion2.js';
4
6
  import { d as defineCustomElement$4 } from './post-accordion-item2.js';
5
7
  import { d as defineCustomElement$3 } from './post-collapsible2.js';
6
8
  import { d as defineCustomElement$2 } from './post-collapsible-trigger2.js';
7
9
  import { d as defineCustomElement$1 } from './post-icon2.js';
8
10
 
9
- const postFooterCss = ":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)}";
11
+ const postFooterCss = ":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)}.d-none{display:none}post-accordion-item.d-none+post-accordion-item{--post-accordion-button-border-top-width:unset}post-accordion-item:not(.d-none)~post-accordion-item,post-accordion-item:not(post-accordion-item:not(.d-none)~*):not(:has(~post-accordion-item:not(.d-none))){--post-accordion-button-border-top-width:0}";
10
12
  const PostFooterStyle0 = postFooterCss;
11
13
 
14
+ const GRID_SLOTS = ['grid-1', 'grid-2', 'grid-3', 'grid-4'];
12
15
  const PostFooter = /*@__PURE__*/ proxyCustomElement(class PostFooter extends HTMLElement {
16
+ validateLabel() {
17
+ checkRequiredAndType(this, 'label', 'string');
18
+ }
13
19
  constructor() {
14
20
  super();
15
21
  this.__registerHost();
16
22
  this.__attachShadow();
17
23
  this.breakpointChange = (e) => {
18
- this.isMobile = e.detail === 'mobile';
24
+ this.device = e.detail;
25
+ };
26
+ this.handleGridSlotChange = (...devices) => (e) => {
27
+ if (devices.includes(this.device) && e.target instanceof HTMLSlotElement) {
28
+ this.updateGridSlotDisplay(e.target.name, e.target.assignedElements().length > 0);
29
+ }
19
30
  };
20
31
  this.label = undefined;
21
- this.isMobile = breakpoint.get('name') === 'mobile';
32
+ this.device = breakpoint.get('name');
33
+ this.gridSlotDisplayed = {};
34
+ this.handleGridSlotChange = this.handleGridSlotChange.bind(this);
22
35
  }
23
36
  connectedCallback() {
24
37
  window.addEventListener('postBreakpoint:name', this.breakpointChange);
25
38
  }
39
+ componentWillLoad() {
40
+ this.validateLabel();
41
+ // initialize grid visibility by checking the content of each slot
42
+ GRID_SLOTS.forEach(slotName => {
43
+ const assignedElements = this.host.querySelectorAll(`[slot="${slotName}"]`);
44
+ this.updateGridSlotDisplay(slotName, assignedElements.length > 0);
45
+ });
46
+ }
26
47
  disconnectedCallback() {
27
48
  window.removeEventListener('postBreakpoint:name', this.breakpointChange);
28
49
  }
50
+ updateGridSlotDisplay(slotName, hasContent) {
51
+ if (this.gridSlotDisplayed[slotName] !== hasContent) {
52
+ this.gridSlotDisplayed = { ...this.gridSlotDisplayed, [slotName]: hasContent };
53
+ }
54
+ }
29
55
  renderAccordion() {
30
- 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" })))));
56
+ return (h("post-accordion", { headingLevel: 3, multiple: true }, GRID_SLOTS.map(slotName => (h("post-accordion-item", { class: { 'd-none': !this.gridSlotDisplayed[slotName] }, collapsed: true }, h("span", { slot: "header" }, h("slot", { name: slotName + '-title' })), h("slot", { onSlotchange: this.handleGridSlotChange('mobile'), name: slotName }))))));
31
57
  }
32
- renderGrid() {
33
- 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" }))));
58
+ renderColumns() {
59
+ return GRID_SLOTS.map(slotName => (h("div", { class: { 'd-none': !this.gridSlotDisplayed[slotName] } }, h("slot", { onSlotchange: this.handleGridSlotChange('tablet', 'desktop'), name: slotName }))));
34
60
  }
35
61
  render() {
36
- return (h(Host, { key: '4058ba0a63a666b82d274d1c35397c97d280ba49', "data-version": version }, h("footer", { key: '27adf1e2a1439fd69efd6e571fcdd6851304c92a' }, h("h2", { key: '1ca0cd955ec5e6d315521eb5c28c5963ed44856d', class: "visually-hidden" }, this.label), h("div", { key: '27a6f520dee9d6294fa3cd4ebc6fd5062ac327ce', class: "footer-container" }, this.isMobile ? this.renderAccordion() : this.renderGrid(), h("div", { key: '5607004d5e3ea553a86d476ca459b3b3632ef12d', class: "footer-column" }, h("div", { key: 'cd4727970358ffad4ca28fffaccc8a5eab4dec27', class: "footer-socialmedia" }, h("slot", { key: '92e105af21b69640a07c2d35c24bff6aae84abb6', name: "socialmedia" })), h("div", { key: '904b787df3f192593408d99857e213143cec6706', class: "footer-app" }, h("slot", { key: '2f4ab14e20737c6035c175e58982464fe6987724', name: "app" }))), h("div", { key: 'c85b261b4ae0cb1e27f424f460fa2838e1174fb0', class: "footer-businesssectors" }, h("slot", { key: 'c66baa3a1b689d881db68448b9d72d47acd11c7c', name: "businesssectors" })), h("div", { key: '4eebc88279f29eef028766c1fcb90effc1aaf1ca', class: "footer-meta" }, h("slot", { key: 'd689d7c14af01dc13c7f9f0fd170f3974150b9aa', name: "meta" })), h("div", { key: '36f87386755a4ae1186109b46609c6ad9c1d5041', class: "footer-copyright" }, h("slot", { key: 'c37231f795b1a5a407f83aeaf8a8b093713b8db1', name: "copyright" }))))));
62
+ return (h(Host, { key: '1cb83edcb5ab2e5582a48fd9c95a60a8411567ee', "data-version": version }, h("footer", { key: '4f507a514bdb6ad3f3579737ae72ae6a40168715' }, h("h2", { key: 'e99aeaef9a9f2e9e060d3f5d0fbad650360a7128', class: "visually-hidden" }, this.label), h("div", { key: 'f4cedb3f564577c0a5a91ea3ca84587c7af5818a', class: "footer-container" }, h("div", { key: '05ffad19533d49c91d5be570f5af52779a33d2df', class: "footer-grid" }, this.device === 'mobile' ? this.renderAccordion() : this.renderColumns()), h("div", { key: '6110e4382e43f63a83630538a0329e1f4b1d8590', class: "footer-column" }, h("div", { key: '5ac7115be86fc40f267c4d279574ad03eff66f39', class: "footer-socialmedia" }, h("slot", { key: '9c83318f3c4cc2d0cfa20087bb592f80a392cfb9', name: "socialmedia" })), h("div", { key: '5c3000bcdeea9a0952f67e6f09b38f476eb5380d', class: "footer-app" }, h("slot", { key: 'dd81ee8ba0e3d4ea42e60aebb4ce6daa30a1fe3d', name: "app" }))), h("div", { key: '242a9a86330f68888943cf2aa83ed0e24649a1a5', class: "footer-businesssectors" }, h("slot", { key: '9c2a860f2c0d89aa0a291ccd1f00dedccda64c71', name: "businesssectors" })), h("div", { key: '84269c90a5027029c6cf17f24d3dfe7cd3e70b06', class: "footer-meta" }, h("slot", { key: '4fef37edc54a6b0f6a52760eb8330ff98efa33bc', name: "meta" })), h("div", { key: '38bba9bd55e6d9025b6e4b95565594a484351a57', class: "footer-copyright" }, h("slot", { key: '4ecc0141a1489463b92ed44e7b02bf72b7f41fc5', name: "copyright" }))))));
37
63
  }
38
64
  get host() { return this; }
65
+ static get watchers() { return {
66
+ "label": ["validateLabel"]
67
+ }; }
39
68
  static get style() { return PostFooterStyle0; }
40
69
  }, [1, "post-footer", {
41
70
  "label": [1],
42
- "isMobile": [32]
71
+ "device": [32],
72
+ "gridSlotDisplayed": [32]
73
+ }, undefined, {
74
+ "label": ["validateLabel"]
43
75
  }]);
44
76
  function defineCustomElement() {
45
77
  if (typeof customElements === "undefined") {
46
78
  return;
47
79
  }
48
- const components = ["post-footer", "post-accordion-item", "post-collapsible", "post-collapsible-trigger", "post-icon"];
80
+ const components = ["post-footer", "post-accordion", "post-accordion-item", "post-collapsible", "post-collapsible-trigger", "post-icon"];
49
81
  components.forEach(tagName => { switch (tagName) {
50
82
  case "post-footer":
51
83
  if (!customElements.get(tagName)) {
52
84
  customElements.define(tagName, PostFooter);
53
85
  }
54
86
  break;
87
+ case "post-accordion":
88
+ if (!customElements.get(tagName)) {
89
+ defineCustomElement$5();
90
+ }
91
+ break;
55
92
  case "post-accordion-item":
56
93
  if (!customElements.get(tagName)) {
57
94
  defineCustomElement$4();
@@ -1,5 +1,6 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { v as version } from './package.js';
3
+ import { b as breakpoint } from './breakpoints.js';
3
4
  import { a as slideUp, s as slideDown } from './slide.js';
4
5
  import { g as getFocusableChildren } from './get-focusable-children.js';
5
6
  import { e as eventGuard } from './event-guard.js';
@@ -138,7 +139,7 @@ function throttle (delay, callback, options) {
138
139
  return wrapper;
139
140
  }
140
141
 
141
- const postHeaderCss = "*,::before,::after{box-sizing:border-box}:host{z-index:1020;position:relative;--post-global-header-top:calc( (var(--post-global-header-height) - var(--post-global-header-reduced-height)) * -1 );--post-local-header-top:calc( -1 * (var(--post-local-header-height) - var(--post-main-navigation-height)) + var(--post-global-header-reduced-height) );--post-logo-height:calc(var(--post-global-header-height) - var(--post-header-scroll-top, 0px));--post-global-controls-top:calc(min((var(--post-header-scroll-top) / 4), 20px) * -1)}:host:has(.global-sub>*:not(.logo):focus-within),:host:has(.local-sub:focus-within){--post-global-header-top:0;--post-local-header-top:var(--post-global-header-height);--post-logo-height:var(--post-global-header-height);--post-global-controls-top:0}:host(:not(:has([slot=title]))) .local-header{padding-block-start:0}:host(:not(:has([slot=title]))) .local-sub{display:none}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;position:sticky;padding-inline:4px;height:var(--post-global-header-height)}@media screen and (max-width: 1023.98px){.global-header{z-index:3;inset-block-start:0}}@media screen and (min-width: 1024px){.global-header{z-index:5;padding-inline-end:12px;inset-block-start:var(--post-global-header-top);transition:inset-block-start .2s ease-in-out}}.global-sub{display:flex;align-items:center;gap:24px}@media screen and (min-width: 1024px){.global-sub:not(:has(.logo)){position:relative;transition:inset-block-start .2s ease-in-out;inset-block-start:var(--post-global-controls-top)}}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--post-global-header-height);width:var(--post-global-header-height);min-height:var(--post-global-header-reduced-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{transition:height .2 ease-in-out;height:var(--post-logo-height)}}::slotted(ul){margin-block:0 !important;list-style:none;display:flex;padding-inline-start:0;gap:1rem;flex-shrink:0 !important}.local-header{display:flex;position:sticky;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:var(--post-local-header-min-height);background:#fff;transition:box-shadow .2s ease-in-out}.local-header::after{content:\"\";position:absolute;width:100%;height:1px;background-color:#e1e0dc;inset-block-end:-1px;z-index:1}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.local-header::after{background-color:Highlight}}@media screen and (min-width: 1024px){.local-header{z-index:3;inset-block-start:var(--post-local-header-top);padding-block-start:18px;box-shadow:var(--post-device-elevation-300);transition:box-shadow .2s ease-in-out,inset-block-start .2s ease-in-out}}@media screen and (max-width: 1023.98px){.local-header{z-index:2;inset-block-start:var(--post-global-header-height);padding-block:8px;flex-wrap:wrap;gap:12px}.local-header.local-header-mobile-extended::after{inset-block-end:0}.local-header:not(.local-header-mobile-extended){box-shadow:var(--post-device-elevation-300)}}.local-sub{margin-inline-end:8px}@media screen and (max-width: 1023.98px){.local-sub{margin-inline-end:4px}}::slotted(.list-inline){margin:0 !important;z-index:3 !important;position:relative !important}@media screen and (min-width: 1024px){.mobile-toggle{display:none}}.navigation{width:100%}@media screen and (min-width: 1024px){.navigation{inset-block-start:var(--post-global-header-reduced-height)}.navigation::before{display:block;content:\"\";position:absolute;inset:0;z-index:2;background:#fff}}@media screen and (max-width: 1023.98px){.navigation{position:sticky;z-index:1;inset-inline:0;inset-block-start:var(--post-header-height)}.mobile-menu{background-color:#fafafa}::slotted(post-mainnavigation),.navigation-footer{display:none;flex-direction:column;padding-block:16px 24px;padding-inline:32px}.navigation.extended ::slotted(post-mainnavigation),.navigation.extended .navigation-footer{display:flex}.navigation.extended>div{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height))}.navigation.extended.megadropdown-open>div{overflow-y:hidden}.navigation.extended ::slotted(post-mainnavigation){flex-grow:1 !important}::slotted(post-mainnavigation){gap:32px}.navigation-footer{background-color:#f0efed;gap:24px}}@media screen and (max-width: 599.98px){::slotted(post-mainnavigation),.navigation-footer{padding-inline:16px}}";
142
+ const postHeaderCss = "*,::before,::after{box-sizing:border-box}:host{z-index:1020;position:relative;--post-global-header-top:calc( (var(--post-global-header-height) - var(--post-global-header-reduced-height)) * -1 );--post-local-header-top:calc( -1 * (var(--post-local-header-height) - var(--post-main-navigation-height)) + var(--post-global-header-reduced-height) );--post-logo-height:calc(var(--post-global-header-height) - var(--post-header-scroll-top, 0px));--post-global-controls-top:calc(min((var(--post-header-scroll-top) / 4), 20px) * -1)}:host:has(.global-sub>*:not(.logo):focus-within),:host:has(.local-sub:focus-within){--post-global-header-top:0;--post-local-header-top:var(--post-global-header-height);--post-logo-height:var(--post-global-header-height);--post-global-controls-top:0}@media screen and (max-width: 1023.98px){:host{position:fixed;inset:0;bottom:auto}}:host(:not(:has([slot=title]))) .local-header{padding-block-start:0}:host(:not(:has([slot=title]))) .local-sub{display:none}.d-flex{display:flex}.space-between{justify-content:space-between}.global-header{background-color:#fc0;display:flex;justify-content:space-between;position:sticky;padding-inline:4px;height:var(--post-global-header-height)}@media screen and (max-width: 1023.98px){.global-header{z-index:4;inset-block-start:0;position:relative}}@media screen and (min-width: 1024px){.global-header{z-index:5;padding-inline-end:12px;inset-block-start:var(--post-global-header-top);transition:inset-block-start .2s ease-in-out}}.global-sub{display:flex;align-items:center;gap:24px}@media screen and (min-width: 1024px){.global-sub:not(:has(.logo)){position:relative;transition:inset-block-start .2s ease-in-out;inset-block-start:var(--post-global-controls-top)}}.align-end{align-items:flex-end}.logo{flex:1 0 auto;height:var(--post-global-header-height);width:var(--post-global-header-height);min-height:var(--post-global-header-reduced-height);align-self:flex-end}@media screen and (min-width: 1024px){.logo{transition:height .2 ease-in-out;height:var(--post-logo-height)}}::slotted(ul){margin-block:0 !important;list-style:none;display:flex;padding-inline-start:0;gap:1rem;flex-shrink:0 !important}.local-header{display:flex;position:sticky;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px;min-height:var(--post-local-header-min-height);background:#fff;transition:box-shadow .2s ease-in-out}.local-header::after{content:\"\";position:absolute;width:100%;height:1px;background-color:#e1e0dc;inset-block-end:-1px;z-index:1}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.local-header::after{background-color:Highlight}}@media screen and (min-width: 1024px){.local-header{z-index:3;inset-block-start:var(--post-local-header-top);padding-block-start:18px;box-shadow:var(--post-device-elevation-300);transition:box-shadow .2s ease-in-out,inset-block-start .2s ease-in-out}}@media screen and (max-width: 1023.98px){.local-header{z-index:3;position:relative;padding-block:8px;flex-wrap:wrap;gap:12px}.local-header.local-header-mobile-extended::after{inset-block-end:0}.local-header:not(.local-header-mobile-extended){box-shadow:var(--post-device-elevation-300)}}.local-sub{margin-inline-end:8px}@media screen and (max-width: 1023.98px){.local-sub{margin-inline-end:4px}}::slotted(.list-inline){margin:0 !important;z-index:3 !important;position:relative !important}@media screen and (min-width: 1024px){.mobile-toggle{display:none}}.navigation{width:100%}@media screen and (min-width: 1024px){.navigation{inset-block-start:var(--post-global-header-reduced-height)}.navigation::before{display:block;content:\"\";position:absolute;inset:0;z-index:2;background:#fff}}@media screen and (max-width: 1023.98px){.navigation{position:sticky;z-index:2;inset-inline:0;inset-block-start:var(--post-header-height)}.mobile-menu{background-color:#fafafa}::slotted(post-mainnavigation),.navigation-footer{display:none;flex-direction:column;padding-block:16px 24px;padding-inline:32px}.navigation.extended ::slotted(post-mainnavigation),.navigation.extended .navigation-footer{display:flex}.navigation.extended>div{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;height:calc(min(var(--post-header-scroll-parent-height, 100dvh),100dvh) - var(--post-header-height))}.navigation.extended.megadropdown-open>div{overflow-y:hidden}.navigation.extended ::slotted(post-mainnavigation){flex-grow:1 !important}::slotted(post-mainnavigation){gap:32px}.navigation-footer{background-color:#f0efed;gap:24px}}@media screen and (max-width: 599.98px){::slotted(post-mainnavigation),.navigation-footer{padding-inline:16px}}";
142
143
  const PostHeaderStyle0 = postHeaderCss;
143
144
 
144
145
  const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTMLElement {
@@ -172,9 +173,15 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
172
173
  super();
173
174
  this.__registerHost();
174
175
  this.__attachShadow();
175
- this.postUpdateDevice = createEvent(this, "postUpdateDevice", 7);
176
- this.throttledResize = throttle(50, () => this.handleResize());
177
- this.megedropdownStateHandler = (event) => {
176
+ this.throttledResize = throttle(50, () => this.updateLocalHeaderHeight());
177
+ this.breakpointChange = (e) => {
178
+ this.device = e.detail;
179
+ this.switchLanguageSwitchMode();
180
+ if (this.device === 'desktop' && this.mobileMenuExtended) {
181
+ this.closeMobileMenu();
182
+ }
183
+ };
184
+ this.megadropdownStateHandler = (event) => {
178
185
  eventGuard(this.host, event, {
179
186
  targetLocalName: 'post-megadropdown',
180
187
  delegatorSelector: 'post-header',
@@ -182,13 +189,12 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
182
189
  this.megadropdownOpen = event.detail.isVisible;
183
190
  });
184
191
  };
185
- this.device = null;
192
+ this.device = breakpoint.get('name');
186
193
  this.mobileMenuExtended = false;
187
194
  this.megadropdownOpen = false;
188
195
  this.handleScrollEvent = this.handleScrollEvent.bind(this);
189
196
  this.updateScrollParentHeight = this.updateScrollParentHeight.bind(this);
190
197
  this.updateLocalHeaderHeight = this.updateLocalHeaderHeight.bind(this);
191
- this.megedropdownStateHandler = this.megedropdownStateHandler.bind(this);
192
198
  this.keyboardHandler = this.keyboardHandler.bind(this);
193
199
  this.handleLinkClick = this.handleLinkClick.bind(this);
194
200
  }
@@ -200,9 +206,11 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
200
206
  this.scrollParent.addEventListener('scroll', this.handleScrollEvent, {
201
207
  passive: true,
202
208
  });
203
- document.addEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
209
+ document.addEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
204
210
  this.host.addEventListener('click', this.handleLinkClick);
205
- this.handleResize();
211
+ window.addEventListener('postBreakpoint:name', this.breakpointChange);
212
+ this.switchLanguageSwitchMode();
213
+ this.updateLocalHeaderHeight();
206
214
  this.handleScrollParentResize();
207
215
  this.lockBody(false, this.mobileMenuExtended, 'mobileMenuExtended');
208
216
  }
@@ -216,10 +224,11 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
216
224
  // Clean up possible side effects when post-header is disconnected
217
225
  disconnectedCallback() {
218
226
  const scrollParent = this.scrollParent;
227
+ window.removeEventListener('postBreakpoint:name', this.breakpointChange);
219
228
  window.removeEventListener('resize', this.throttledResize);
220
229
  window.removeEventListener('scroll', this.handleScrollEvent);
221
230
  scrollParent.removeEventListener('scroll', this.handleScrollEvent);
222
- document.removeEventListener('postToggleMegadropdown', this.megedropdownStateHandler);
231
+ document.removeEventListener('postToggleMegadropdown', this.megadropdownStateHandler);
223
232
  this.host.removeEventListener('keydown', this.keyboardHandler);
224
233
  this.host.removeEventListener('click', this.handleLinkClick);
225
234
  if (this.scrollParentResizeObserver) {
@@ -232,6 +241,14 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
232
241
  }
233
242
  this.mobileMenuExtended = false;
234
243
  }
244
+ async closeMobileMenu() {
245
+ this.mobileMenuAnimation.finish();
246
+ const menuButton = this.getMenuButton();
247
+ if (menuButton) {
248
+ menuButton.toggled = false;
249
+ }
250
+ this.mobileMenuExtended = false;
251
+ }
235
252
  /**
236
253
  * Toggles the mobile navigation.
237
254
  */
@@ -270,6 +287,9 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
270
287
  this.firstFocusableEl = focusableChildren[0];
271
288
  this.lastFocusableEl = focusableChildren[focusableChildren.length - 1];
272
289
  }
290
+ getMenuButton() {
291
+ return this.host.querySelector('post-togglebutton');
292
+ }
273
293
  keyboardHandler(e) {
274
294
  if (e.key === 'Tab' && this.mobileMenuExtended) {
275
295
  if (e.shiftKey && document.activeElement === this.firstFocusableEl) {
@@ -312,28 +332,6 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
312
332
  }
313
333
  }
314
334
  }
315
- handleResize() {
316
- const previousDevice = this.device;
317
- let newDevice;
318
- const width = window?.innerWidth;
319
- if (width >= 1024) {
320
- newDevice = 'desktop';
321
- }
322
- else if (width >= 600) {
323
- newDevice = 'tablet';
324
- }
325
- else {
326
- newDevice = 'mobile';
327
- }
328
- // Apply only on change for doing work only when necessary
329
- if (newDevice !== previousDevice) {
330
- this.device = newDevice;
331
- this.postUpdateDevice.emit(this.device);
332
- window.requestAnimationFrame(() => {
333
- this.switchLanguageSwitchMode();
334
- });
335
- }
336
- }
337
335
  handleScrollParentResize() {
338
336
  if (this.scrollParent) {
339
337
  this.scrollParentResizeObserver = new ResizeObserver(this.updateScrollParentHeight);
@@ -365,7 +363,7 @@ const PostHeader = /*@__PURE__*/ proxyCustomElement(class PostHeader extends HTM
365
363
  return (h("div", { class: navigationClasses.join(' '), style: { '--post-header-navigation-current-inset': `${mobileMenuScrollTop}px` } }, h("div", { class: "mobile-menu", ref: el => (this.mobileMenu = el) }, h("slot", { name: "post-mainnavigation" }), (this.device === 'mobile' || this.device === 'tablet') && (h("div", { class: "navigation-footer" }, h("slot", { name: "meta-navigation" }), h("slot", { name: "post-language-switch" }))))));
366
364
  }
367
365
  render() {
368
- return (h(Host, { key: '9705dc224bcf389c8836efbaf40d6d6617b2052f', "data-version": version }, h("div", { key: '41a1b10ff4193b0a31eecc673935aabb70c1d1b4', class: "global-header" }, h("div", { key: '7e3692fca4130755c009447fcc20585386f1c65d', class: "global-sub" }, h("div", { key: '5b4d7fb16fcbeee3f07a1a160751b5c23e9f9edb', class: "logo" }, h("slot", { key: '67048479266ba86f2a1b739751be7bfe97ce4544', name: "post-logo" }))), h("div", { key: '83642103fae714a7c9ac1962e1433fd72899cf87', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: 'ff672718574b3690d9ac8c2f54cb50e2b7052533', name: "meta-navigation" }), h("slot", { key: '782d10f094831da10cd9e9695944eee9c8003a05', name: "global-controls" }), this.device === 'desktop' && h("slot", { key: '5c5a277e3a627f5a731e1342c6604b6e064f3b52', name: "post-language-switch" }), h("div", { key: 'b07c9f1994fd99b170192ed4f4092afb92a1dd3e', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '1bbb5a704cf1841e4845ff9921cd6662ee2d7387', name: "post-togglebutton" })))), h("div", { key: 'da8ecfd78835ab7431408558ee938d5054349955', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, h("slot", { key: '23c35a54fdf177a9b58054154e09f406f27fe049', name: "title" }), h("div", { key: 'de4dfdec5bd43a22587aa8e93842c4e16c73f82b', class: "local-sub" }, h("slot", { key: '35b09a33f3c87e382afb809f0c2b8153dd909097', name: "local-controls" }), h("slot", { key: 'bdfa7a68815e8d259cd346ef890904b652a5a7f2' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
366
+ return (h(Host, { key: 'b552e09d25f9d69217f47b31931553edabcb3b5b', "data-version": version }, h("div", { key: 'b7bb569991b4c50101b80a907aff823ed64f93c3', class: "global-header" }, h("div", { key: 'bd88a1b5cc75cbb9832da4082fc6bc2405342421', class: "global-sub" }, h("div", { key: '0f338f37c57cdad900f0b9654ef16a26e60385d9', class: "logo" }, h("slot", { key: '8f5faf2470aee5a7c3d5ebb4157009f32e679085', name: "post-logo" }))), h("div", { key: 'f97a893b1dd7bce09f57e8199bd584fd6e28b71c', class: "global-sub" }, this.device === 'desktop' && h("slot", { key: '5edf8a7834d42b89a5c0bb5e4b53ff75cef78fd7', name: "meta-navigation" }), h("slot", { key: '196cf8c24e02cac8fc8215f9ab2e9efed46dced3', name: "global-controls" }), this.device === 'desktop' && h("slot", { key: 'bce4b98e5ac9f7afba6b88a9da3fbe91b69aadf3', name: "post-language-switch" }), h("div", { key: '1c4b51f44882f55a5fe5386ed33b696c81289d14', onClick: () => this.toggleMobileMenu(), class: "mobile-toggle" }, h("slot", { key: '56625102ad896e624e6a879f203e6b2cac4455a3', name: "post-togglebutton" })))), h("div", { key: 'd1a3961046902fa6026b065b9a013a341188d0e5', class: 'local-header ' + (this.mobileMenuExtended ? 'local-header-mobile-extended' : '') }, h("slot", { key: '28d1be43cae56c53468e51e9b62cf92652431dcd', name: "title" }), h("div", { key: '09729387f1de16c4052c87956112b2aa64148f9a', class: "local-sub" }, h("slot", { key: 'fa0f247d960522d617dfadcfb0576f875eca45c6', name: "local-controls" }), h("slot", { key: 'b49e7647e428efbe3adea6f4302f023a1d6fe2bd' })), this.device === 'desktop' && this.renderNavigation()), this.device !== 'desktop' && this.renderNavigation()));
369
367
  }
370
368
  get host() { return this; }
371
369
  static get watchers() { return {
@@ -1,9 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { I as IS_BROWSER } from './breakpoints.js';
3
- import { c as checkEmptyOrOneOf, e as checkEmptyOrType } from './index2.js';
3
+ import { a as checkEmptyOrOneOf, d as checkEmptyOrType, b as checkRequiredAndType } from './index2.js';
4
4
  import { v as version } from './package.js';
5
- import { c as checkNonEmpty } from './check-non-empty.js';
6
- import { c as checkType } from './check-type.js';
7
5
 
8
6
  const postIconCss = ":host{display:inline-block;width:1em;height:1em;vertical-align:-0.15em}span{display:block;width:100%;height:100%;fill:currentColor;forced-color-adjust:preserve-parent-color;background-color:currentColor;-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}:host([flip-h]:not([flip-h=false])){scale:-1 1}:host([flip-v]:not([flip-v=false])){scale:1 -1}:host([flip-h][flip-v]:not([flip-h=false],[flip-v=false])){scale:-1}:host([animation]){transform-origin:center}:host([animation=cylon]){animation:icon-animation-cylon .75s ease-in-out infinite alternate}:host([animation=cylon-vertical]){animation:icon-animation-cylon-vertical .75s ease-in-out infinite alternate}:host([animation=spin]){animation:icon-animation-spin 2s linear infinite normal}:host([animation=spin-reverse]){animation:icon-animation-spin 2s linear infinite reverse}:host([animation=fade]){animation:icon-animation-fade .75s ease-in-out infinite alternate}:host([animation=throb]){animation:icon-animation-throb .75s ease-in-out infinite alternate}@keyframes icon-animation-cylon{from{transform:translateX(-25%)}to{transform:translateX(25%)}}@keyframes icon-animation-cylon-vertical{from{transform:translateY(25%)}to{transform:translateY(-25%)}}@keyframes icon-animation-fade{from{opacity:.1}to{opacity:1}}@keyframes icon-animation-spin{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes icon-animation-throb{from{opacity:.5;transform:scale(0.5)}to{opacity:1;transform:scale(1)}}";
9
7
  const PostIconStyle0 = postIconCss;
@@ -23,30 +21,22 @@ const PostIcon = /*@__PURE__*/ proxyCustomElement(class PostIcon extends HTMLEle
23
21
  super();
24
22
  this.__registerHost();
25
23
  this.__attachShadow();
26
- this.animation = null;
27
- this.base = null;
24
+ this.animation = undefined;
25
+ this.base = undefined;
28
26
  this.flipH = false;
29
27
  this.flipV = false;
30
28
  this.name = undefined;
31
- this.rotate = null;
32
- this.scale = null;
29
+ this.rotate = undefined;
30
+ this.scale = undefined;
33
31
  }
34
- validateAnimation(newValue = this.animation) {
35
- if (newValue !== undefined)
36
- checkEmptyOrOneOf(this, 'animation', ANIMATION_KEYS);
32
+ validateAnimation() {
33
+ checkEmptyOrOneOf(this, 'animation', ANIMATION_KEYS);
37
34
  }
38
35
  validateBase() {
39
36
  checkEmptyOrType(this, 'base', 'string');
40
37
  }
41
- validateFlipH() {
42
- checkEmptyOrType(this, 'flipH', 'boolean');
43
- }
44
- validateFlipV() {
45
- checkEmptyOrType(this, 'flipV', 'boolean');
46
- }
47
38
  validateName() {
48
- checkNonEmpty(this, 'name');
49
- checkType(this, 'name', 'string');
39
+ checkRequiredAndType(this, 'name', 'string');
50
40
  }
51
41
  validateRotate() {
52
42
  checkEmptyOrType(this, 'rotate', 'number');
@@ -118,21 +108,17 @@ const PostIcon = /*@__PURE__*/ proxyCustomElement(class PostIcon extends HTMLEle
118
108
  componentDidLoad() {
119
109
  this.validateBase();
120
110
  this.validateName();
121
- this.validateFlipH();
122
- this.validateFlipV();
123
111
  this.validateScale();
124
112
  this.validateRotate();
125
113
  this.validateAnimation();
126
114
  }
127
115
  render() {
128
- return (h(Host, { key: 'b3c3efcc03f423a248e231b4b4c5d79c93ae25a6', "data-version": version }, h("span", { key: 'd73d4df11fcccb96d5346f3f8c3e18602bb8d484', style: this.getStyles() })));
116
+ return (h(Host, { key: '7fe2d83b8d3c46bf31f451b7b06a8366c49971de', "data-version": version }, h("span", { key: '3b3e474985eef7697e4c05f75fc6abd3e96dbbc9', style: this.getStyles() })));
129
117
  }
130
118
  get host() { return this; }
131
119
  static get watchers() { return {
132
120
  "animation": ["validateAnimation"],
133
121
  "base": ["validateBase"],
134
- "flipH": ["validateFlipH"],
135
- "flipV": ["validateFlipV"],
136
122
  "name": ["validateName"],
137
123
  "rotate": ["validateRotate"],
138
124
  "scale": ["validateScale"]
@@ -149,8 +135,6 @@ const PostIcon = /*@__PURE__*/ proxyCustomElement(class PostIcon extends HTMLEle
149
135
  }, undefined, {
150
136
  "animation": ["validateAnimation"],
151
137
  "base": ["validateBase"],
152
- "flipH": ["validateFlipH"],
153
- "flipV": ["validateFlipV"],
154
138
  "name": ["validateName"],
155
139
  "rotate": ["validateRotate"],
156
140
  "scale": ["validateScale"]