@swisspost/design-system-components 10.0.0-next.55 → 10.0.0-next.56

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 (400) hide show
  1. package/dist/{esm/breakpoints-CJ80BZ06.js → cjs/breakpoints-Df03Ct7n.js} +103 -5
  2. package/dist/cjs/debounce-BsIBi_-2.js +13 -0
  3. package/dist/cjs/environment-BQE9Unf_.js +52 -0
  4. package/dist/cjs/{event-from-CLvtSUKf.js → event-from-CwMw19f8.js} +2 -2
  5. package/dist/cjs/fade-CPQhl1fP.js +26 -0
  6. package/dist/cjs/fade-slide-dPhQa-I1.js +38 -0
  7. package/dist/cjs/{get-focusable-children-Bx63XUQg.js → get-focusable-children-ChETM1wK.js} +29 -21
  8. package/dist/cjs/{get-root-CyMf3Vsd.js → get-root-CUAv4k4C.js} +2 -2
  9. package/dist/cjs/{index-B4gYpuJF.js → index-CKNxhb0S.js} +21 -13
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/{package-DkJrv93P.js → package-CY7IOoiw.js} +1 -1
  12. package/dist/cjs/post-accordion_2.cjs.entry.js +11 -11
  13. package/dist/cjs/post-avatar.cjs.entry.js +10 -10
  14. package/dist/cjs/post-back-to-top.cjs.entry.js +16 -40
  15. package/dist/cjs/post-banner.cjs.entry.js +11 -10
  16. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +7 -7
  17. package/dist/cjs/post-breadcrumbs.cjs.entry.js +22 -31
  18. package/dist/cjs/post-card-control.cjs.entry.js +16 -16
  19. package/dist/cjs/{post-closebutton_15.cjs.entry.js → post-closebutton_13.cjs.entry.js} +481 -484
  20. package/dist/cjs/post-collapsible_2.cjs.entry.js +33 -33
  21. package/dist/cjs/post-components.cjs.js +2 -2
  22. package/dist/cjs/post-env-test.cjs.entry.js +15 -0
  23. package/dist/cjs/post-footer.cjs.entry.js +21 -19
  24. package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
  25. package/dist/cjs/post-pagination.cjs.entry.js +589 -0
  26. package/dist/cjs/post-popover-trigger.cjs.entry.js +46 -30
  27. package/dist/cjs/post-popover.cjs.entry.js +11 -11
  28. package/dist/cjs/post-rating.cjs.entry.js +13 -13
  29. package/dist/cjs/post-stepper-item.cjs.entry.js +4 -4
  30. package/dist/cjs/post-stepper.cjs.entry.js +29 -26
  31. package/dist/cjs/post-tab-item.cjs.entry.js +49 -0
  32. package/dist/cjs/post-tab-panel.cjs.entry.js +9 -9
  33. package/dist/cjs/post-tabs.cjs.entry.js +191 -38
  34. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +8 -8
  35. package/dist/cjs/post-tooltip.cjs.entry.js +6 -6
  36. package/dist/cjs/utils-s05L2ulk.js +26 -0
  37. package/dist/collection/animations/collapse.js +3 -3
  38. package/dist/collection/animations/fade-slide.js +33 -0
  39. package/dist/collection/animations/fade.js +19 -7
  40. package/dist/collection/animations/index.js +2 -0
  41. package/dist/collection/animations/slide.js +25 -21
  42. package/dist/collection/animations/types.js +14 -0
  43. package/dist/collection/animations/utils.js +8 -0
  44. package/dist/collection/collection-manifest.json +6 -6
  45. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  46. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  47. package/dist/collection/components/post-accordion-item/post-accordion-item.js +4 -4
  48. package/dist/collection/components/post-avatar/post-avatar.js +1 -1
  49. package/dist/collection/components/post-back-to-top/post-back-to-top.js +14 -14
  50. package/dist/collection/components/post-banner/post-banner.css +4 -1
  51. package/dist/collection/components/post-banner/post-banner.js +3 -3
  52. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
  53. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +24 -24
  54. package/dist/collection/components/post-card-control/post-card-control.js +2 -2
  55. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
  56. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
  57. package/dist/collection/components/post-collapsible/post-collapsible.js +27 -27
  58. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +1 -1
  59. package/dist/collection/components/post-footer/post-footer.css +1 -1
  60. package/dist/collection/components/post-footer/post-footer.js +17 -15
  61. package/dist/collection/components/post-header/post-header.css +1 -1
  62. package/dist/collection/components/post-header/post-header.js +113 -82
  63. package/dist/collection/components/post-icon/post-icon.js +6 -4
  64. package/dist/collection/components/post-language-menu/post-language-menu.css +1 -0
  65. package/dist/collection/components/{post-language-switch/post-language-switch.js → post-language-menu/post-language-menu.js} +23 -23
  66. package/dist/collection/components/post-language-menu-item/post-language-menu-item.css +1 -0
  67. package/dist/collection/components/{post-language-option/post-language-option.js → post-language-menu-item/post-language-menu-item.js} +13 -13
  68. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  69. package/dist/collection/components/post-logo/post-logo.css +3 -1
  70. package/dist/collection/components/post-logo/post-logo.js +1 -1
  71. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  72. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +41 -29
  73. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  74. package/dist/collection/components/post-megadropdown/post-megadropdown.js +183 -74
  75. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
  76. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +79 -73
  77. package/dist/collection/components/post-menu/post-menu.css +1 -1
  78. package/dist/collection/components/post-menu/post-menu.js +34 -34
  79. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  80. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
  81. package/dist/collection/components/post-pagination/post-pagination.css +1 -0
  82. package/dist/collection/components/post-pagination/post-pagination.js +838 -0
  83. package/dist/collection/components/post-popover/post-popover.js +9 -9
  84. package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +43 -27
  85. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  86. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +45 -92
  87. package/dist/collection/components/post-rating/post-rating.js +2 -2
  88. package/dist/collection/components/post-stepper/post-stepper.js +34 -31
  89. package/dist/collection/components/post-stepper-item/post-stepper-item.css +2 -2
  90. package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
  91. package/dist/collection/components/post-tab-item/post-tab-item.css +1 -0
  92. package/dist/collection/components/post-tab-item/post-tab-item.js +86 -0
  93. package/dist/collection/components/post-tab-panel/post-tab-panel.js +9 -9
  94. package/dist/collection/components/post-tabs/post-tabs.js +230 -57
  95. package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
  96. package/dist/collection/components/post-tooltip/post-tooltip.js +1 -1
  97. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
  98. package/dist/collection/utils/environment.js +47 -2
  99. package/dist/collection/utils/event-from.js +2 -2
  100. package/dist/collection/utils/get-focusable-children.js +29 -21
  101. package/dist/collection/utils/is-motion-reduced.js +1 -1
  102. package/dist/collection/utils/tests/environment/hydrate-app-helper.js +16 -0
  103. package/dist/collection/utils/tests/environment/post-env-test.js +9 -0
  104. package/dist/component-names.json +4 -5
  105. package/dist/components/breakpoints.js +90 -3
  106. package/dist/components/debounce.js +11 -0
  107. package/dist/components/environment.js +49 -0
  108. package/dist/components/event-from.js +2 -2
  109. package/dist/components/fade-slide.js +36 -0
  110. package/dist/components/fade.js +21 -8
  111. package/dist/components/get-focusable-children.js +29 -21
  112. package/dist/components/get-root.js +1 -1
  113. package/dist/components/index.d.ts +10 -10
  114. package/dist/components/index.js +5 -5
  115. package/dist/components/package.js +1 -1
  116. package/dist/components/post-accordion-item2.js +4 -5
  117. package/dist/components/post-accordion2.js +2 -3
  118. package/dist/components/post-avatar.js +2 -3
  119. package/dist/components/post-back-to-top.js +14 -40
  120. package/dist/components/post-banner.js +5 -6
  121. package/dist/components/post-breadcrumb-item2.js +2 -3
  122. package/dist/components/post-breadcrumbs.js +23 -33
  123. package/dist/components/post-card-control.js +3 -4
  124. package/dist/components/post-closebutton2.js +3 -4
  125. package/dist/components/post-collapsible-trigger2.js +2 -3
  126. package/dist/components/post-collapsible2.js +25 -25
  127. package/dist/components/{post-list.d.ts → post-env-test.d.ts} +4 -4
  128. package/dist/components/post-env-test.js +31 -0
  129. package/dist/components/post-footer.js +17 -16
  130. package/dist/components/post-header.js +97 -95
  131. package/dist/components/post-icon2.js +8 -6
  132. package/dist/components/post-language-menu-item.d.ts +11 -0
  133. package/dist/components/post-language-menu-item.js +98 -0
  134. package/dist/components/{post-language-switch.d.ts → post-language-menu.d.ts} +4 -4
  135. package/dist/components/post-language-menu.js +156 -0
  136. package/dist/components/post-linkarea.js +1 -1
  137. package/dist/components/post-logo.js +3 -4
  138. package/dist/components/post-mainnavigation.js +21 -32
  139. package/dist/components/post-megadropdown-trigger.js +71 -78
  140. package/dist/components/post-megadropdown.js +182 -77
  141. package/dist/components/post-menu-item2.js +1 -1
  142. package/dist/components/post-menu-trigger2.js +2 -3
  143. package/dist/components/post-menu2.js +34 -35
  144. package/dist/components/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
  145. package/dist/components/post-pagination.js +635 -0
  146. package/dist/components/post-popover-trigger.js +41 -26
  147. package/dist/components/post-popover.js +8 -9
  148. package/dist/components/post-popovercontainer2.js +44 -40
  149. package/dist/components/post-rating.js +2 -3
  150. package/dist/components/post-stepper-item.js +2 -2
  151. package/dist/components/post-stepper.js +31 -29
  152. package/dist/components/{post-list-item.d.ts → post-tab-item.d.ts} +4 -4
  153. package/dist/components/post-tab-item.js +70 -0
  154. package/dist/components/post-tab-panel.js +8 -9
  155. package/dist/components/post-tabs.js +192 -37
  156. package/dist/components/post-togglebutton.js +1 -51
  157. package/dist/components/post-togglebutton2.js +53 -0
  158. package/dist/components/post-tooltip-trigger.js +3 -3
  159. package/dist/components/post-tooltip.js +2 -3
  160. package/dist/components/react/index.js +1 -1
  161. package/dist/{cjs/breakpoints-CEkeixld.js → components/react/p-B8YiQ3mz.js} +89 -6
  162. package/dist/components/react/{p-DBPOV12C.js → p-BOLlAY91.js} +9 -7
  163. package/dist/components/react/p-BVCjnh6Q.js +36 -0
  164. package/dist/components/react/{p-CBFgkSgY.js → p-BVGcVycs.js} +1 -1
  165. package/dist/components/react/{p-LtiDhYis.js → p-BYCGzO-t.js} +5 -6
  166. package/dist/components/react/p-C9hMpmsD.js +11 -0
  167. package/dist/components/react/{p-BVXiQdHq.js → p-CJ13r5fi.js} +29 -21
  168. package/dist/components/react/{p-CSAMO7iJ.js → p-CnZWXrbA.js} +39 -40
  169. package/dist/components/react/p-CoDiS_Ik.js +24 -0
  170. package/dist/components/react/p-CyniMNY-.js +54 -0
  171. package/dist/components/react/p-D5knoiyy.js +24 -0
  172. package/dist/components/react/{p-Djvj8fd2.js → p-DBO6FfHt.js} +4 -5
  173. package/dist/components/react/{p-Ccrl2AQn.js → p-DRfa3MOV.js} +26 -26
  174. package/dist/components/react/{p-Cwiv86_f.js → p-DYImHx0e.js} +4 -5
  175. package/dist/components/react/p-DZ5m2Ttg.js +3 -0
  176. package/dist/components/react/p-FxUVQ4Tx.js +49 -0
  177. package/dist/components/react/{p-D2waO0Zc.js → p-L36-yvgK.js} +2 -2
  178. package/dist/components/react/{p-CewRvBtg.js → p-NCAcc7ZZ.js} +4 -5
  179. package/dist/components/react/{p-DVGEExot.js → p-QNPIvxLq.js} +45 -41
  180. package/dist/components/react/{p-XrZzCOKT.js → p-_pLhqTys.js} +5 -6
  181. package/dist/components/react/p-c6yNOQwn.js +113 -0
  182. package/dist/components/react/{p-CzIKqBrS.js → p-rEfV4v4a.js} +2 -2
  183. package/dist/components/react/post-accordion-item.js +1 -1
  184. package/dist/components/react/post-accordion.js +1 -1
  185. package/dist/components/react/post-avatar.js +3 -4
  186. package/dist/components/react/post-back-to-top.js +16 -42
  187. package/dist/components/react/post-banner.js +7 -8
  188. package/dist/components/react/post-breadcrumb-item.js +1 -1
  189. package/dist/components/react/post-breadcrumbs.js +30 -40
  190. package/dist/components/react/post-card-control.js +5 -6
  191. package/dist/components/react/post-closebutton.js +1 -1
  192. package/dist/components/react/post-collapsible-trigger.js +1 -1
  193. package/dist/components/react/post-collapsible.js +1 -1
  194. package/dist/components/react/{post-list.d.ts → post-env-test.d.ts} +4 -4
  195. package/dist/components/react/post-env-test.js +32 -0
  196. package/dist/components/react/post-footer.js +23 -22
  197. package/dist/components/react/post-header.js +99 -97
  198. package/dist/components/react/post-icon.js +1 -1
  199. package/dist/components/react/post-language-menu-item.d.ts +11 -0
  200. package/dist/components/react/post-language-menu-item.js +99 -0
  201. package/dist/components/react/{post-language-option.d.ts → post-language-menu.d.ts} +4 -4
  202. package/dist/components/react/post-language-menu.js +157 -0
  203. package/dist/components/react/post-linkarea.js +2 -2
  204. package/dist/components/react/post-logo.js +4 -5
  205. package/dist/components/react/post-mainnavigation.js +23 -34
  206. package/dist/components/react/post-megadropdown-trigger.js +73 -80
  207. package/dist/components/react/post-megadropdown.js +184 -79
  208. package/dist/components/react/post-menu-item.js +1 -1
  209. package/dist/components/react/post-menu-trigger.js +1 -1
  210. package/dist/components/react/post-menu.js +1 -1
  211. package/dist/components/react/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
  212. package/dist/components/react/post-pagination.js +636 -0
  213. package/dist/components/react/post-popover-trigger.js +42 -27
  214. package/dist/components/react/post-popover.js +13 -14
  215. package/dist/components/react/post-popovercontainer.js +1 -1
  216. package/dist/components/react/post-rating.js +4 -5
  217. package/dist/components/react/post-stepper-item.js +3 -3
  218. package/dist/components/react/post-stepper.js +32 -30
  219. package/dist/components/react/{post-list-item.d.ts → post-tab-item.d.ts} +4 -4
  220. package/dist/components/react/post-tab-item.js +71 -0
  221. package/dist/components/react/post-tab-panel.js +9 -10
  222. package/dist/components/react/post-tabs.js +193 -38
  223. package/dist/components/react/post-togglebutton.js +1 -52
  224. package/dist/components/react/post-tooltip-trigger.js +4 -4
  225. package/dist/components/react/post-tooltip.js +4 -5
  226. package/dist/components/utils.js +24 -0
  227. package/dist/docs.json +854 -597
  228. package/dist/{components/react/p-CJ80BZ06.js → esm/breakpoints-DYoSKGHO.js} +90 -3
  229. package/dist/esm/debounce-C9hMpmsD.js +11 -0
  230. package/dist/esm/environment-CEmnRoA6.js +49 -0
  231. package/dist/esm/{event-from-CzIKqBrS.js → event-from-rEfV4v4a.js} +2 -2
  232. package/dist/esm/fade-DsgPYmAa.js +24 -0
  233. package/dist/esm/fade-slide-CvOvauo9.js +36 -0
  234. package/dist/esm/{get-focusable-children-D9ZHp2FP.js → get-focusable-children-BXNs2_sw.js} +29 -21
  235. package/dist/esm/{get-root-BkQ3CrLq.js → get-root-CXfAA093.js} +1 -1
  236. package/dist/esm/{index-wEFJ-c34.js → index-1ReqxAnI.js} +21 -13
  237. package/dist/esm/loader.js +3 -3
  238. package/dist/esm/package-DZ5m2Ttg.js +3 -0
  239. package/dist/esm/post-accordion_2.entry.js +9 -9
  240. package/dist/esm/post-avatar.entry.js +5 -5
  241. package/dist/esm/post-back-to-top.entry.js +16 -40
  242. package/dist/esm/post-banner.entry.js +10 -9
  243. package/dist/esm/post-breadcrumb-item_2.entry.js +6 -6
  244. package/dist/esm/post-breadcrumbs.entry.js +20 -29
  245. package/dist/esm/post-card-control.entry.js +6 -6
  246. package/dist/esm/{post-closebutton_15.entry.js → post-closebutton_13.entry.js} +462 -463
  247. package/dist/esm/post-collapsible_2.entry.js +30 -30
  248. package/dist/esm/post-components.js +3 -3
  249. package/dist/esm/post-env-test.entry.js +13 -0
  250. package/dist/esm/post-footer.entry.js +18 -16
  251. package/dist/esm/post-linkarea.entry.js +3 -3
  252. package/dist/esm/post-pagination.entry.js +587 -0
  253. package/dist/esm/post-popover-trigger.entry.js +44 -28
  254. package/dist/esm/post-popover.entry.js +10 -10
  255. package/dist/esm/post-rating.entry.js +5 -5
  256. package/dist/esm/post-stepper-item.entry.js +4 -4
  257. package/dist/esm/post-stepper.entry.js +28 -25
  258. package/dist/esm/post-tab-item.entry.js +47 -0
  259. package/dist/esm/post-tab-panel.entry.js +9 -9
  260. package/dist/esm/post-tabs.entry.js +191 -38
  261. package/dist/esm/post-tooltip-trigger.entry.js +5 -5
  262. package/dist/esm/post-tooltip.entry.js +5 -5
  263. package/dist/esm/utils-CoDiS_Ik.js +24 -0
  264. package/dist/post-components/{p-7f635728.entry.js → p-130eb074.entry.js} +1 -1
  265. package/dist/post-components/p-13d018fe.entry.js +1 -0
  266. package/dist/post-components/p-143e5a84.entry.js +1 -0
  267. package/dist/post-components/p-1ReqxAnI.js +2 -0
  268. package/dist/post-components/p-2b220851.entry.js +1 -0
  269. package/dist/post-components/{p-a9644e54.entry.js → p-390f111f.entry.js} +1 -1
  270. package/dist/post-components/p-3cf09fbd.entry.js +1 -0
  271. package/dist/post-components/p-52e584ca.entry.js +1 -0
  272. package/dist/post-components/p-56a4040c.entry.js +1 -0
  273. package/dist/post-components/p-675dab57.entry.js +1 -0
  274. package/dist/post-components/p-6857fd9d.entry.js +1 -0
  275. package/dist/post-components/p-7cd00e3e.entry.js +1 -0
  276. package/dist/post-components/p-7f5d2487.entry.js +1 -0
  277. package/dist/post-components/{p-cd03e6f2.entry.js → p-88201353.entry.js} +1 -1
  278. package/dist/post-components/p-89360cd1.entry.js +1 -0
  279. package/dist/post-components/p-B7ebLhHc.js +1 -0
  280. package/dist/post-components/p-BVCjnh6Q.js +1 -0
  281. package/dist/post-components/p-BXNs2_sw.js +1 -0
  282. package/dist/post-components/p-C9hMpmsD.js +1 -0
  283. package/dist/post-components/p-CEmnRoA6.js +1 -0
  284. package/dist/post-components/p-CoDiS_Ik.js +1 -0
  285. package/dist/post-components/p-D5knoiyy.js +1 -0
  286. package/dist/post-components/p-DI-h_mEL.js +1 -0
  287. package/dist/post-components/p-DZ5m2Ttg.js +1 -0
  288. package/dist/post-components/p-a740eaed.entry.js +1 -0
  289. package/dist/post-components/{p-57288cb2.entry.js → p-a79590f5.entry.js} +1 -1
  290. package/dist/post-components/p-b708d96a.entry.js +1 -0
  291. package/dist/post-components/p-bcf5786f.entry.js +1 -0
  292. package/dist/post-components/p-c92512f5.entry.js +1 -0
  293. package/dist/post-components/{p-af030a3a.entry.js → p-d7cb3a61.entry.js} +1 -1
  294. package/dist/post-components/p-d7f33813.entry.js +1 -0
  295. package/dist/post-components/p-da97ee21.entry.js +1 -0
  296. package/dist/post-components/{p-e62e1f57.entry.js → p-ed4db774.entry.js} +1 -1
  297. package/dist/post-components/post-components.css +1 -1
  298. package/dist/post-components/post-components.esm.js +1 -1
  299. package/dist/prebuild.js +46 -0
  300. package/dist/types/animations/collapse.d.ts +1 -0
  301. package/dist/types/animations/fade-slide.d.ts +11 -0
  302. package/dist/types/animations/fade.d.ts +2 -2
  303. package/dist/types/animations/index.d.ts +2 -0
  304. package/dist/types/animations/slide.d.ts +9 -2
  305. package/dist/types/animations/types.d.ts +13 -0
  306. package/dist/types/animations/utils.d.ts +2 -0
  307. package/dist/types/components/post-accordion-item/heading-levels.d.ts +1 -1
  308. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +2 -2
  309. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -2
  310. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +6 -6
  311. package/dist/types/components/post-collapsible/post-collapsible.d.ts +4 -5
  312. package/dist/types/components/post-footer/post-footer.d.ts +4 -4
  313. package/dist/types/components/post-header/post-header.d.ts +18 -13
  314. package/dist/types/components/{post-language-switch/post-language-switch.d.ts → post-language-menu/post-language-menu.d.ts} +6 -6
  315. package/dist/types/components/{post-language-option/post-language-option.d.ts → post-language-menu-item/post-language-menu-item.d.ts} +5 -5
  316. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +6 -5
  317. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +20 -2
  318. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +17 -23
  319. package/dist/types/components/post-menu/post-menu.d.ts +4 -4
  320. package/dist/types/components/post-pagination/post-pagination.d.ts +224 -0
  321. package/dist/types/components/post-popover/post-popover.d.ts +3 -3
  322. package/dist/types/components/post-popover-trigger/post-popover-trigger.d.ts +2 -1
  323. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +13 -16
  324. package/dist/types/components/post-rating/post-rating.d.ts +1 -1
  325. package/dist/types/components/post-stepper/post-stepper.d.ts +9 -8
  326. package/dist/types/components/post-tab-item/post-tab-item.d.ts +19 -0
  327. package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +3 -3
  328. package/dist/types/components/post-tabs/post-tabs.d.ts +33 -12
  329. package/dist/types/components.d.ts +311 -200
  330. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +9 -0
  331. package/dist/types/types/heading-levels.d.ts +1 -1
  332. package/dist/types/utils/environment.d.ts +25 -1
  333. package/dist/types/utils/get-focusable-children.d.ts +2 -2
  334. package/dist/types/utils/tests/environment/hydrate-app-helper.d.ts +5 -0
  335. package/dist/types/utils/tests/environment/post-env-test.d.ts +3 -0
  336. package/hydrate/index.js +1740 -863
  337. package/hydrate/index.mjs +1740 -863
  338. package/package.json +6 -7
  339. package/dist/cjs/fade-nS5zzDQS.js +0 -14
  340. package/dist/cjs/index-UFKR6Ok0.js +0 -98
  341. package/dist/cjs/post-tab-header.cjs.entry.js +0 -31
  342. package/dist/collection/animations/slide-and-fade.js +0 -25
  343. package/dist/collection/components/post-language-option/post-language-option.css +0 -1
  344. package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
  345. package/dist/collection/components/post-list/post-list.css +0 -1
  346. package/dist/collection/components/post-list/post-list.js +0 -97
  347. package/dist/collection/components/post-list-item/post-list-item.css +0 -1
  348. package/dist/collection/components/post-list-item/post-list-item.js +0 -26
  349. package/dist/collection/components/post-tab-header/post-tab-header.css +0 -1
  350. package/dist/collection/components/post-tab-header/post-tab-header.js +0 -65
  351. package/dist/components/index2.js +0 -89
  352. package/dist/components/post-language-option.d.ts +0 -11
  353. package/dist/components/post-language-option.js +0 -99
  354. package/dist/components/post-language-switch.js +0 -157
  355. package/dist/components/post-list-item.js +0 -38
  356. package/dist/components/post-list.js +0 -61
  357. package/dist/components/post-tab-header.js +0 -52
  358. package/dist/components/react/p-BhxZzOEC.js +0 -3
  359. package/dist/components/react/p-CYkf_7Y5.js +0 -89
  360. package/dist/components/react/p-SbIC4aZX.js +0 -11
  361. package/dist/components/react/p-v3pOrMNQ.js +0 -114
  362. package/dist/components/react/post-language-option.js +0 -100
  363. package/dist/components/react/post-language-switch.d.ts +0 -11
  364. package/dist/components/react/post-language-switch.js +0 -158
  365. package/dist/components/react/post-list-item.js +0 -39
  366. package/dist/components/react/post-list.js +0 -62
  367. package/dist/components/react/post-tab-header.js +0 -53
  368. package/dist/esm/fade-SbIC4aZX.js +0 -11
  369. package/dist/esm/index-Beaz8wEe.js +0 -89
  370. package/dist/esm/package-BhxZzOEC.js +0 -3
  371. package/dist/esm/post-tab-header.entry.js +0 -29
  372. package/dist/post-components/p-01e678c9.entry.js +0 -1
  373. package/dist/post-components/p-034a453f.entry.js +0 -1
  374. package/dist/post-components/p-15a4cdbf.entry.js +0 -1
  375. package/dist/post-components/p-24dc54d1.entry.js +0 -1
  376. package/dist/post-components/p-2a2030bf.entry.js +0 -1
  377. package/dist/post-components/p-2ed84cc3.entry.js +0 -1
  378. package/dist/post-components/p-3228968f.entry.js +0 -1
  379. package/dist/post-components/p-3c01ddfe.entry.js +0 -1
  380. package/dist/post-components/p-748b1f01.entry.js +0 -1
  381. package/dist/post-components/p-7745e46e.entry.js +0 -1
  382. package/dist/post-components/p-82c178a3.entry.js +0 -1
  383. package/dist/post-components/p-9b5f8319.entry.js +0 -1
  384. package/dist/post-components/p-Beaz8wEe.js +0 -1
  385. package/dist/post-components/p-BhxZzOEC.js +0 -1
  386. package/dist/post-components/p-CBFgkSgY.js +0 -1
  387. package/dist/post-components/p-CJ80BZ06.js +0 -1
  388. package/dist/post-components/p-D9ZHp2FP.js +0 -1
  389. package/dist/post-components/p-SbIC4aZX.js +0 -1
  390. package/dist/post-components/p-b8ba8139.entry.js +0 -1
  391. package/dist/post-components/p-db935e8e.entry.js +0 -1
  392. package/dist/post-components/p-fb4b1641.entry.js +0 -1
  393. package/dist/post-components/p-wEFJ-c34.js +0 -2
  394. package/dist/types/animations/slide-and-fade.d.ts +0 -2
  395. package/dist/types/components/post-list/post-list.d.ts +0 -24
  396. package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
  397. package/dist/types/components/post-tab-header/post-tab-header.d.ts +0 -14
  398. /package/dist/collection/components/{post-language-switch → post-language-menu}/switch-variants.js +0 -0
  399. /package/dist/post-components/{p-CzIKqBrS.js → p-rEfV4v4a.js} +0 -0
  400. /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
@@ -1,2 +1,47 @@
1
- export const IS_SERVER = typeof window === 'undefined';
2
- export const IS_BROWSER = !IS_SERVER;
1
+ /**
2
+ * Environment detection helper
3
+ *
4
+ * Goal: Distinguish between real browser execution and Stencil's server-side
5
+ * hydration context. During SSR/hydration Stencil provides a mocked `window`
6
+ * (Domino / JSDOM–like) so naive checks (e.g. `typeof window !== 'undefined'`)
7
+ * incorrectly classify the environment as a browser.
8
+ *
9
+ * Detection strategy:
10
+ * - Stencils hydrate context uses a hardcoded user agent string ('MockNavigator')
11
+ * and origin ('http://mockdoc.stenciljs.com') for its mocked `window` object.
12
+ * We can use this to identify the hydrate context.
13
+ * - Stencils unit test context also uses the same hardcoded user agent string,
14
+ * but a differnet value for the origin.
15
+ * That's why comparing the origin is aboslutely mandatory.
16
+ * - Since we test the hydrate app in the test context, the origin is getting
17
+ * overwritten by the test setup, leading to a false positive in the
18
+ * `isHydrateApp` detection.
19
+ * To circumvent this, we use a global flag (`isHydrateAppTestEnv`),
20
+ * that we set/reset during the server test, so we can correctly identify
21
+ * the hydrate app in the test context.
22
+ * As a drawback, we can't properly test if the hydrate app is detected as
23
+ * expected, in a real world scenario (elsewhere than in our tests).
24
+ */
25
+ const MOCKED_USERAGENT = 'MockNavigator';
26
+ const MOCKED_ORIGIN = 'http://mockdoc.stenciljs.com';
27
+ const isNodeEnv = typeof global !== 'undefined';
28
+ const hasWindow = typeof window !== 'undefined';
29
+ const isMockedUserAgent = hasWindow && window.navigator.userAgent === MOCKED_USERAGENT;
30
+ const isMockedOrigin = hasWindow && window.location.origin === MOCKED_ORIGIN;
31
+ /**
32
+ * This is the natural hydrate app environment
33
+ * Is `true` if the hydrate app runs on server
34
+ */
35
+ const isHydrateAppEnv = isNodeEnv && isMockedUserAgent && isMockedOrigin;
36
+ /**
37
+ * This is the test app server test env
38
+ * Is `true` if the server unit test runs (`false` if the browser unit test runs)
39
+ */
40
+ const isTestAppServerTestEnv = isNodeEnv && isMockedUserAgent && global.IS_HYDRATEAPP_SERVERTEST;
41
+ /**
42
+ * This is the final hydrate app flag
43
+ * if it`s `true`, IS_BROWSER equals `false` and IS_SERVER equals `true
44
+ */
45
+ const isHydrateApp = isHydrateAppEnv || isTestAppServerTestEnv;
46
+ export const IS_BROWSER = hasWindow && !isHydrateApp;
47
+ export const IS_SERVER = !IS_BROWSER;
@@ -58,7 +58,7 @@ export function EventFrom(tag, option) {
58
58
  // Create hidden storage for original method
59
59
  Object.defineProperty(target, privateKey, {
60
60
  writable: true,
61
- configurable: true
61
+ configurable: true,
62
62
  });
63
63
  // Replace property with getter/setter
64
64
  Object.defineProperty(target, propertyKey, {
@@ -82,7 +82,7 @@ export function EventFrom(tag, option) {
82
82
  }
83
83
  },
84
84
  configurable: true,
85
- enumerable: true
85
+ enumerable: true,
86
86
  });
87
87
  }
88
88
  };
@@ -27,32 +27,40 @@ export function getFocusableChildren(element) {
27
27
  const focusableChildren = element.querySelectorAll(`${focusableSelector}:not(${focusDisablingSelector})`);
28
28
  return Array.from(focusableChildren).filter(isVisible);
29
29
  }
30
- // Searches deeper accross shadowDom
31
- export function getDeepFocusableChildren(element) {
32
- const results = [];
33
- function traverse(node) {
30
+ // Searches deeper across shadow DOM
31
+ export function getDeepFocusableChildren(el, filter, visited = new Set()) {
32
+ if (visited.has(el))
33
+ return [];
34
+ visited.add(el);
35
+ let nodes = [];
36
+ // SLOT
37
+ if (el instanceof HTMLSlotElement) {
38
+ const assigned = el.assignedElements({ flatten: true });
39
+ nodes = assigned.length ? assigned : Array.from(el.children);
40
+ }
41
+ // SHADOW ROOT
42
+ else if (el instanceof HTMLElement && el.shadowRoot) {
43
+ nodes = Array.from(el.shadowRoot.children);
44
+ }
45
+ // NORMAL ELEMENT
46
+ else if (el instanceof Element) {
47
+ nodes = Array.from(el.children);
48
+ }
49
+ if (filter) {
50
+ nodes = nodes.filter(filter);
51
+ }
52
+ const focusableElements = [];
53
+ for (const node of nodes) {
34
54
  if (isElementFocusable(node)) {
35
- results.push(node);
36
- }
37
- if (node instanceof HTMLElement && node.shadowRoot) {
38
- traverse(node.shadowRoot);
39
- }
40
- for (const child of Array.from(node.children)) {
41
- traverse(child);
42
- }
43
- if (node instanceof HTMLElement) {
44
- for (const slot of Array.from(node.querySelectorAll('slot'))) {
45
- for (const el of slot.assignedElements({ flatten: true })) {
46
- traverse(el);
47
- }
48
- }
55
+ focusableElements.push(node);
56
+ continue;
49
57
  }
58
+ focusableElements.push(...getDeepFocusableChildren(node, filter, visited));
50
59
  }
51
- traverse(element);
52
- return results;
60
+ return focusableElements;
53
61
  }
54
62
  function isVisible(el) {
55
- const style = window.getComputedStyle(el.parentElement);
63
+ const style = window.getComputedStyle(el);
56
64
  return style.display !== 'none' && style.visibility !== 'hidden';
57
65
  }
58
66
  function isElementFocusable(node) {
@@ -1,4 +1,4 @@
1
1
  import { IS_BROWSER } from "./environment";
2
2
  export function isMotionReduced() {
3
- return IS_BROWSER ? window.matchMedia('(prefers-reduced-motion: reduce)').matches : false;
3
+ return IS_BROWSER ? window.matchMedia('(prefers-reduced-motion: reduce)').matches : true;
4
4
  }
@@ -0,0 +1,16 @@
1
+ export async function getAppEnv() {
2
+ global.IS_HYDRATEAPP_SERVERTEST = true;
3
+ // keep this, to have runtime-only import (otherwise the build fails)
4
+ const HYDRATE_ID = '@swisspost/design-system-components/hydrate';
5
+ const hydrateApp = await import(HYDRATE_ID);
6
+ const results = await hydrateApp.renderToString('<post-env-test></post-env-test>');
7
+ const IS_BROWSER = /data-browser="(true|false)"/.exec(results.html)?.[1] === 'true';
8
+ const IS_SERVER = /data-server="(true|false)"/.exec(results.html)?.[1] === 'true';
9
+ return {
10
+ IS_BROWSER,
11
+ IS_SERVER,
12
+ };
13
+ }
14
+ export function afterTestCleanup() {
15
+ delete global.IS_HYDRATEAPP_SERVERTEST;
16
+ }
@@ -0,0 +1,9 @@
1
+ import { h } from "@stencil/core";
2
+ import { IS_BROWSER, IS_SERVER } from "../../environment";
3
+ export class PostEnvTest {
4
+ render() {
5
+ return h("div", { key: '65b18a8e4890205313601723d25f938ac3c6f4a8', "data-browser": String(IS_BROWSER), "data-server": String(IS_SERVER) });
6
+ }
7
+ static get is() { return "post-env-test"; }
8
+ static get encapsulation() { return "shadow"; }
9
+ }
@@ -14,11 +14,9 @@
14
14
  "post-footer",
15
15
  "post-header",
16
16
  "post-icon",
17
- "post-language-option",
18
- "post-language-switch",
17
+ "post-language-menu",
18
+ "post-language-menu-item",
19
19
  "post-linkarea",
20
- "post-list",
21
- "post-list-item",
22
20
  "post-logo",
23
21
  "post-mainnavigation",
24
22
  "post-megadropdown",
@@ -26,13 +24,14 @@
26
24
  "post-menu",
27
25
  "post-menu-item",
28
26
  "post-menu-trigger",
27
+ "post-pagination",
29
28
  "post-popover",
30
29
  "post-popover-trigger",
31
30
  "post-popovercontainer",
32
31
  "post-rating",
33
32
  "post-stepper",
34
33
  "post-stepper-item",
35
- "post-tab-header",
34
+ "post-tab-item",
36
35
  "post-tab-panel",
37
36
  "post-tabs",
38
37
  "post-togglebutton",
@@ -1,5 +1,92 @@
1
- const IS_SERVER = typeof window === 'undefined';
2
- const IS_BROWSER = !IS_SERVER;
1
+ import { a as IS_SERVER } from './environment.js';
2
+
3
+ const EMPTY_VALUES = [undefined, null, '', NaN];
4
+
5
+ function isValueEmpty(value) {
6
+ return EMPTY_VALUES.some(v => v === value);
7
+ }
8
+
9
+ function requiredAnd(check) {
10
+ return (component, prop, ...extraArgs) => {
11
+ const componentName = component.host.localName;
12
+ const value = component[prop];
13
+ const message = `The prop \`${String(prop)}\` of the \`${componentName}\` component is not defined.`;
14
+ if (isValueEmpty(value)) {
15
+ throw new Error(message);
16
+ }
17
+ else {
18
+ check(component, prop, ...extraArgs);
19
+ }
20
+ };
21
+ }
22
+
23
+ function checkOneOf(component, prop, possibleValues) {
24
+ const componentName = component.host.localName;
25
+ const value = component[prop];
26
+ const message = `The prop \`${String(prop)}\` of the \`${componentName}\` component must be one of the following values: ${possibleValues.join(', ')}.`;
27
+ if (!possibleValues.includes(value)) {
28
+ console.error(message);
29
+ }
30
+ }
31
+
32
+ function checkPattern(component, prop, pattern) {
33
+ const componentName = component.host.localName;
34
+ const value = component[prop];
35
+ const message = `The prop \`${String(prop)}\` of the \`${componentName}\` component must follow the format \`${pattern}\`.`;
36
+ if (typeof value !== 'string' || !pattern.test(value)) {
37
+ console.error(message);
38
+ }
39
+ }
40
+
41
+ function checkType(component, prop, type) {
42
+ const componentName = component.host.localName;
43
+ const value = component[prop];
44
+ const typeIsArray = type === 'array';
45
+ const valueIsArray = Array.isArray(value);
46
+ const message = `The prop \`${String(prop)}\` of the \`${componentName}\` component must be of type \`${type}\`.`;
47
+ if (typeIsArray || valueIsArray) {
48
+ if (valueIsArray !== typeIsArray) {
49
+ console.error(message);
50
+ }
51
+ }
52
+ else if (typeof value !== type) {
53
+ console.error(message);
54
+ }
55
+ }
56
+
57
+ function checkUrl(component, prop) {
58
+ const componentName = component.host.localName;
59
+ const value = component[prop];
60
+ const message = `The prop \`${String(prop)}\` of the \`${componentName}\` component is invalid.`;
61
+ if (typeof value !== 'string' && !(value instanceof URL)) {
62
+ console.error(message);
63
+ return;
64
+ }
65
+ try {
66
+ new URL(value, 'https://www.post.ch');
67
+ }
68
+ catch {
69
+ console.error(message);
70
+ }
71
+ }
72
+
73
+ function emptyOr(check) {
74
+ return (component, prop, ...extraArgs) => {
75
+ const value = component[prop];
76
+ if (!isValueEmpty(value)) {
77
+ check(component, prop, ...extraArgs);
78
+ }
79
+ };
80
+ }
81
+
82
+ const checkEmptyOrOneOf = emptyOr(checkOneOf);
83
+ const checkEmptyOrPattern = emptyOr(checkPattern);
84
+ const checkEmptyOrType = emptyOr(checkType);
85
+ const checkEmptyOrUrl = emptyOr(checkUrl);
86
+ const checkRequiredAndOneOf = requiredAnd(checkOneOf);
87
+ const checkRequiredAndPattern = requiredAnd(checkPattern);
88
+ const checkRequiredAndType = requiredAnd(checkType);
89
+ const checkRequiredAndUrl = requiredAnd(checkUrl);
3
90
 
4
91
  /* eslint-disable no-undefined,no-param-reassign,no-shadow */
5
92
 
@@ -175,4 +262,4 @@ class Breakpoint {
175
262
  }
176
263
  const breakpoint = new Breakpoint();
177
264
 
178
- export { IS_BROWSER as I, breakpoint as b, throttle as t };
265
+ export { checkEmptyOrUrl as a, checkRequiredAndOneOf as b, checkRequiredAndType as c, checkEmptyOrOneOf as d, checkEmptyOrType as e, checkRequiredAndUrl as f, breakpoint as g, checkRequiredAndPattern as h, checkEmptyOrPattern as i, throttle as t };
@@ -0,0 +1,11 @@
1
+ function debounce(callback, timeout = 200) {
2
+ let id;
3
+ return (...args) => {
4
+ if (id) {
5
+ clearTimeout(id);
6
+ }
7
+ id = setTimeout(callback, timeout, ...args);
8
+ };
9
+ }
10
+
11
+ export { debounce as d };
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Environment detection helper
3
+ *
4
+ * Goal: Distinguish between real browser execution and Stencil's server-side
5
+ * hydration context. During SSR/hydration Stencil provides a mocked `window`
6
+ * (Domino / JSDOM–like) so naive checks (e.g. `typeof window !== 'undefined'`)
7
+ * incorrectly classify the environment as a browser.
8
+ *
9
+ * Detection strategy:
10
+ * - Stencils hydrate context uses a hardcoded user agent string ('MockNavigator')
11
+ * and origin ('http://mockdoc.stenciljs.com') for its mocked `window` object.
12
+ * We can use this to identify the hydrate context.
13
+ * - Stencils unit test context also uses the same hardcoded user agent string,
14
+ * but a differnet value for the origin.
15
+ * That's why comparing the origin is aboslutely mandatory.
16
+ * - Since we test the hydrate app in the test context, the origin is getting
17
+ * overwritten by the test setup, leading to a false positive in the
18
+ * `isHydrateApp` detection.
19
+ * To circumvent this, we use a global flag (`isHydrateAppTestEnv`),
20
+ * that we set/reset during the server test, so we can correctly identify
21
+ * the hydrate app in the test context.
22
+ * As a drawback, we can't properly test if the hydrate app is detected as
23
+ * expected, in a real world scenario (elsewhere than in our tests).
24
+ */
25
+ const MOCKED_USERAGENT = 'MockNavigator';
26
+ const MOCKED_ORIGIN = 'http://mockdoc.stenciljs.com';
27
+ const isNodeEnv = typeof global !== 'undefined';
28
+ const hasWindow = typeof window !== 'undefined';
29
+ const isMockedUserAgent = hasWindow && window.navigator.userAgent === MOCKED_USERAGENT;
30
+ const isMockedOrigin = hasWindow && window.location.origin === MOCKED_ORIGIN;
31
+ /**
32
+ * This is the natural hydrate app environment
33
+ * Is `true` if the hydrate app runs on server
34
+ */
35
+ const isHydrateAppEnv = isNodeEnv && isMockedUserAgent && isMockedOrigin;
36
+ /**
37
+ * This is the test app server test env
38
+ * Is `true` if the server unit test runs (`false` if the browser unit test runs)
39
+ */
40
+ const isTestAppServerTestEnv = isNodeEnv && isMockedUserAgent && global.IS_HYDRATEAPP_SERVERTEST;
41
+ /**
42
+ * This is the final hydrate app flag
43
+ * if it`s `true`, IS_BROWSER equals `false` and IS_SERVER equals `true
44
+ */
45
+ const isHydrateApp = isHydrateAppEnv || isTestAppServerTestEnv;
46
+ const IS_BROWSER = hasWindow && !isHydrateApp;
47
+ const IS_SERVER = !IS_BROWSER;
48
+
49
+ export { IS_BROWSER as I, IS_SERVER as a };
@@ -58,7 +58,7 @@ function EventFrom(tag, option) {
58
58
  // Create hidden storage for original method
59
59
  Object.defineProperty(target, privateKey, {
60
60
  writable: true,
61
- configurable: true
61
+ configurable: true,
62
62
  });
63
63
  // Replace property with getter/setter
64
64
  Object.defineProperty(target, propertyKey, {
@@ -82,7 +82,7 @@ function EventFrom(tag, option) {
82
82
  }
83
83
  },
84
84
  configurable: true,
85
- enumerable: true
85
+ enumerable: true,
86
86
  });
87
87
  }
88
88
  };
@@ -0,0 +1,36 @@
1
+ import { r as resolveEasing } from './utils.js';
2
+
3
+ /**
4
+ * Used by
5
+ * 1. PostHeader (burger menu)
6
+ * 2. PostMegadropdown
7
+ * 3. BackToTopButton
8
+ */
9
+ const defaultOptions = {
10
+ duration: 500,
11
+ easing: 'ease',
12
+ fill: 'none',
13
+ translate: -100,
14
+ };
15
+ function animateFadeSlide(el, keyframes, options) {
16
+ const { duration, easing, fill } = { ...defaultOptions, ...options };
17
+ return el.animate(keyframes, {
18
+ duration,
19
+ easing: resolveEasing(easing),
20
+ fill,
21
+ });
22
+ }
23
+ function fadeSlide(el, direction, options) {
24
+ if (!el)
25
+ return;
26
+ const mergedOptions = options;
27
+ const { translate } = mergedOptions;
28
+ const baseKeyframes = [
29
+ { opacity: '0', transform: `translateY(${translate}px)` },
30
+ { opacity: '1', transform: 'translateY(0px)' },
31
+ ];
32
+ const keyframes = direction === 'in' ? baseKeyframes : [...baseKeyframes].reverse();
33
+ return animateFadeSlide(el, keyframes, options);
34
+ }
35
+
36
+ export { fadeSlide as f };
@@ -1,11 +1,24 @@
1
- const fadeDuration = 200;
2
- const fadedOutKeyframe = { opacity: '0' };
3
- const fadedInKeyframe = { opacity: '1' };
4
- function fadeIn(el) {
5
- return el.animate([fadedOutKeyframe, fadedInKeyframe], { duration: fadeDuration });
1
+ import { r as resolveEasing } from './utils.js';
2
+
3
+ const defaultOptions = {
4
+ duration: 200,
5
+ easing: 'linear',
6
+ fill: 'forwards',
7
+ };
8
+ function animateFade(el, keyframes, options = {}) {
9
+ const { duration, easing, fill } = { ...defaultOptions, ...options };
10
+ return el.animate(keyframes, {
11
+ duration,
12
+ easing: resolveEasing(easing),
13
+ fill,
14
+ });
6
15
  }
7
- function fadeOut(el) {
8
- return el.animate([fadedInKeyframe, fadedOutKeyframe], { duration: fadeDuration });
16
+ function fade(el, direction, options = {}) {
17
+ if (!el)
18
+ return;
19
+ const baseKeyframes = [{ opacity: '0' }, { opacity: '1' }];
20
+ const keyframes = direction === 'in' ? baseKeyframes : [...baseKeyframes].reverse();
21
+ return animateFade(el, keyframes, options);
9
22
  }
10
23
 
11
- export { fadeIn as a, fadeOut as f };
24
+ export { fade as f };
@@ -27,32 +27,40 @@ function getFocusableChildren(element) {
27
27
  const focusableChildren = element.querySelectorAll(`${focusableSelector}:not(${focusDisablingSelector})`);
28
28
  return Array.from(focusableChildren).filter(isVisible);
29
29
  }
30
- // Searches deeper accross shadowDom
31
- function getDeepFocusableChildren(element) {
32
- const results = [];
33
- function traverse(node) {
30
+ // Searches deeper across shadow DOM
31
+ function getDeepFocusableChildren(el, filter, visited = new Set()) {
32
+ if (visited.has(el))
33
+ return [];
34
+ visited.add(el);
35
+ let nodes = [];
36
+ // SLOT
37
+ if (el instanceof HTMLSlotElement) {
38
+ const assigned = el.assignedElements({ flatten: true });
39
+ nodes = assigned.length ? assigned : Array.from(el.children);
40
+ }
41
+ // SHADOW ROOT
42
+ else if (el instanceof HTMLElement && el.shadowRoot) {
43
+ nodes = Array.from(el.shadowRoot.children);
44
+ }
45
+ // NORMAL ELEMENT
46
+ else if (el instanceof Element) {
47
+ nodes = Array.from(el.children);
48
+ }
49
+ if (filter) {
50
+ nodes = nodes.filter(filter);
51
+ }
52
+ const focusableElements = [];
53
+ for (const node of nodes) {
34
54
  if (isElementFocusable(node)) {
35
- results.push(node);
36
- }
37
- if (node instanceof HTMLElement && node.shadowRoot) {
38
- traverse(node.shadowRoot);
39
- }
40
- for (const child of Array.from(node.children)) {
41
- traverse(child);
42
- }
43
- if (node instanceof HTMLElement) {
44
- for (const slot of Array.from(node.querySelectorAll('slot'))) {
45
- for (const el of slot.assignedElements({ flatten: true })) {
46
- traverse(el);
47
- }
48
- }
55
+ focusableElements.push(node);
56
+ continue;
49
57
  }
58
+ focusableElements.push(...getDeepFocusableChildren(node, filter, visited));
50
59
  }
51
- traverse(element);
52
- return results;
60
+ return focusableElements;
53
61
  }
54
62
  function isVisible(el) {
55
- const style = window.getComputedStyle(el.parentElement);
63
+ const style = window.getComputedStyle(el);
56
64
  return style.display !== 'none' && style.visibility !== 'hidden';
57
65
  }
58
66
  function isElementFocusable(node) {
@@ -1,4 +1,4 @@
1
- import { I as IS_BROWSER } from './breakpoints.js';
1
+ import { I as IS_BROWSER } from './environment.js';
2
2
 
3
3
  /**
4
4
  * getRootNode() can only be used after the element has been attached to the document!
@@ -21,22 +21,20 @@ export { PostCollapsible as PostCollapsible } from '../types/components/post-col
21
21
  export { defineCustomElement as defineCustomElementPostCollapsible } from './post-collapsible';
22
22
  export { PostCollapsibleTrigger as PostCollapsibleTrigger } from '../types/components/post-collapsible-trigger/post-collapsible-trigger';
23
23
  export { defineCustomElement as defineCustomElementPostCollapsibleTrigger } from './post-collapsible-trigger';
24
+ export { PostEnvTest as PostEnvTest } from '../types/utils/tests/environment/post-env-test';
25
+ export { defineCustomElement as defineCustomElementPostEnvTest } from './post-env-test';
24
26
  export { PostFooter as PostFooter } from '../types/components/post-footer/post-footer';
25
27
  export { defineCustomElement as defineCustomElementPostFooter } from './post-footer';
26
28
  export { PostHeader as PostHeader } from '../types/components/post-header/post-header';
27
29
  export { defineCustomElement as defineCustomElementPostHeader } from './post-header';
28
30
  export { PostIcon as PostIcon } from '../types/components/post-icon/post-icon';
29
31
  export { defineCustomElement as defineCustomElementPostIcon } from './post-icon';
30
- export { PostLanguageOption as PostLanguageOption } from '../types/components/post-language-option/post-language-option';
31
- export { defineCustomElement as defineCustomElementPostLanguageOption } from './post-language-option';
32
- export { PostLanguageSwitch as PostLanguageSwitch } from '../types/components/post-language-switch/post-language-switch';
33
- export { defineCustomElement as defineCustomElementPostLanguageSwitch } from './post-language-switch';
32
+ export { PostLanguageMenu as PostLanguageMenu } from '../types/components/post-language-menu/post-language-menu';
33
+ export { defineCustomElement as defineCustomElementPostLanguageMenu } from './post-language-menu';
34
+ export { PostLanguageMenuItem as PostLanguageMenuItem } from '../types/components/post-language-menu-item/post-language-menu-item';
35
+ export { defineCustomElement as defineCustomElementPostLanguageMenuItem } from './post-language-menu-item';
34
36
  export { PostLinkarea as PostLinkarea } from '../types/components/post-linkarea/post-linkarea';
35
37
  export { defineCustomElement as defineCustomElementPostLinkarea } from './post-linkarea';
36
- export { PostList as PostList } from '../types/components/post-list/post-list';
37
- export { defineCustomElement as defineCustomElementPostList } from './post-list';
38
- export { PostListItem as PostListItem } from '../types/components/post-list-item/post-list-item';
39
- export { defineCustomElement as defineCustomElementPostListItem } from './post-list-item';
40
38
  export { PostLogo as PostLogo } from '../types/components/post-logo/post-logo';
41
39
  export { defineCustomElement as defineCustomElementPostLogo } from './post-logo';
42
40
  export { PostMainnavigation as PostMainnavigation } from '../types/components/post-mainnavigation/post-mainnavigation';
@@ -51,6 +49,8 @@ export { PostMenuItem as PostMenuItem } from '../types/components/post-menu-item
51
49
  export { defineCustomElement as defineCustomElementPostMenuItem } from './post-menu-item';
52
50
  export { PostMenuTrigger as PostMenuTrigger } from '../types/components/post-menu-trigger/post-menu-trigger';
53
51
  export { defineCustomElement as defineCustomElementPostMenuTrigger } from './post-menu-trigger';
52
+ export { PostPagination as PostPagination } from '../types/components/post-pagination/post-pagination';
53
+ export { defineCustomElement as defineCustomElementPostPagination } from './post-pagination';
54
54
  export { PostPopover as PostPopover } from '../types/components/post-popover/post-popover';
55
55
  export { defineCustomElement as defineCustomElementPostPopover } from './post-popover';
56
56
  export { PostPopoverTrigger as PostPopoverTrigger } from '../types/components/post-popover-trigger/post-popover-trigger';
@@ -63,8 +63,8 @@ export { PostStepper as PostStepper } from '../types/components/post-stepper/pos
63
63
  export { defineCustomElement as defineCustomElementPostStepper } from './post-stepper';
64
64
  export { PostStepperItem as PostStepperItem } from '../types/components/post-stepper-item/post-stepper-item';
65
65
  export { defineCustomElement as defineCustomElementPostStepperItem } from './post-stepper-item';
66
- export { PostTabHeader as PostTabHeader } from '../types/components/post-tab-header/post-tab-header';
67
- export { defineCustomElement as defineCustomElementPostTabHeader } from './post-tab-header';
66
+ export { PostTabItem as PostTabItem } from '../types/components/post-tab-item/post-tab-item';
67
+ export { defineCustomElement as defineCustomElementPostTabItem } from './post-tab-item';
68
68
  export { PostTabPanel as PostTabPanel } from '../types/components/post-tab-panel/post-tab-panel';
69
69
  export { defineCustomElement as defineCustomElementPostTabPanel } from './post-tab-panel';
70
70
  export { PostTabs as PostTabs } from '../types/components/post-tabs/post-tabs';
@@ -10,14 +10,13 @@ export { PostCardControl, defineCustomElement as defineCustomElementPostCardCont
10
10
  export { PostClosebutton, defineCustomElement as defineCustomElementPostClosebutton } from './post-closebutton.js';
11
11
  export { PostCollapsible, defineCustomElement as defineCustomElementPostCollapsible } from './post-collapsible.js';
12
12
  export { PostCollapsibleTrigger, defineCustomElement as defineCustomElementPostCollapsibleTrigger } from './post-collapsible-trigger.js';
13
+ export { PostEnvTest, defineCustomElement as defineCustomElementPostEnvTest } from './post-env-test.js';
13
14
  export { PostFooter, defineCustomElement as defineCustomElementPostFooter } from './post-footer.js';
14
15
  export { PostHeader, defineCustomElement as defineCustomElementPostHeader } from './post-header.js';
15
16
  export { PostIcon, defineCustomElement as defineCustomElementPostIcon } from './post-icon.js';
16
- export { PostLanguageOption, defineCustomElement as defineCustomElementPostLanguageOption } from './post-language-option.js';
17
- export { PostLanguageSwitch, defineCustomElement as defineCustomElementPostLanguageSwitch } from './post-language-switch.js';
17
+ export { PostLanguageMenu, defineCustomElement as defineCustomElementPostLanguageMenu } from './post-language-menu.js';
18
+ export { PostLanguageMenuItem, defineCustomElement as defineCustomElementPostLanguageMenuItem } from './post-language-menu-item.js';
18
19
  export { PostLinkarea, defineCustomElement as defineCustomElementPostLinkarea } from './post-linkarea.js';
19
- export { PostList, defineCustomElement as defineCustomElementPostList } from './post-list.js';
20
- export { PostListItem, defineCustomElement as defineCustomElementPostListItem } from './post-list-item.js';
21
20
  export { PostLogo, defineCustomElement as defineCustomElementPostLogo } from './post-logo.js';
22
21
  export { PostMainnavigation, defineCustomElement as defineCustomElementPostMainnavigation } from './post-mainnavigation.js';
23
22
  export { PostMegadropdown, defineCustomElement as defineCustomElementPostMegadropdown } from './post-megadropdown.js';
@@ -25,13 +24,14 @@ export { PostMegadropdownTrigger, defineCustomElement as defineCustomElementPost
25
24
  export { PostMenu, defineCustomElement as defineCustomElementPostMenu } from './post-menu.js';
26
25
  export { PostMenuItem, defineCustomElement as defineCustomElementPostMenuItem } from './post-menu-item.js';
27
26
  export { PostMenuTrigger, defineCustomElement as defineCustomElementPostMenuTrigger } from './post-menu-trigger.js';
27
+ export { PostPagination, defineCustomElement as defineCustomElementPostPagination } from './post-pagination.js';
28
28
  export { PostPopover, defineCustomElement as defineCustomElementPostPopover } from './post-popover.js';
29
29
  export { PostPopoverTrigger, defineCustomElement as defineCustomElementPostPopoverTrigger } from './post-popover-trigger.js';
30
30
  export { PostPopovercontainer, defineCustomElement as defineCustomElementPostPopovercontainer } from './post-popovercontainer.js';
31
31
  export { PostRating, defineCustomElement as defineCustomElementPostRating } from './post-rating.js';
32
32
  export { PostStepper, defineCustomElement as defineCustomElementPostStepper } from './post-stepper.js';
33
33
  export { PostStepperItem, defineCustomElement as defineCustomElementPostStepperItem } from './post-stepper-item.js';
34
- export { PostTabHeader, defineCustomElement as defineCustomElementPostTabHeader } from './post-tab-header.js';
34
+ export { PostTabItem, defineCustomElement as defineCustomElementPostTabItem } from './post-tab-item.js';
35
35
  export { PostTabPanel, defineCustomElement as defineCustomElementPostTabPanel } from './post-tab-panel.js';
36
36
  export { PostTabs, defineCustomElement as defineCustomElementPostTabs } from './post-tabs.js';
37
37
  export { PostTogglebutton, defineCustomElement as defineCustomElementPostTogglebutton } from './post-togglebutton.js';
@@ -1,3 +1,3 @@
1
- const version = "10.0.0-next.55";
1
+ const version = "10.0.0-next.56";
2
2
 
3
3
  export { version as v };