@swisspost/design-system-components 10.0.0-next.54 → 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 (409) hide show
  1. package/dist/{components/react/p-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-Cb8CTrOz.js → index-CKNxhb0S.js} +29 -13
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/{package-CvZxvdTJ.js → package-CY7IOoiw.js} +1 -1
  12. package/dist/cjs/post-accordion_2.cjs.entry.js +12 -12
  13. package/dist/cjs/post-avatar.cjs.entry.js +11 -11
  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} +537 -507
  20. package/dist/cjs/post-collapsible_2.cjs.entry.js +39 -38
  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 +12 -12
  28. package/dist/cjs/post-rating.cjs.entry.js +13 -13
  29. package/dist/cjs/post-stepper-item.cjs.entry.js +18 -0
  30. package/dist/cjs/post-stepper.cjs.entry.js +109 -0
  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 +7 -7
  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 +8 -6
  45. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  46. package/dist/collection/components/post-accordion/post-accordion.js +2 -2
  47. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  48. package/dist/collection/components/post-accordion-item/post-accordion-item.js +4 -4
  49. package/dist/collection/components/post-avatar/post-avatar.css +1 -1
  50. package/dist/collection/components/post-avatar/post-avatar.js +1 -1
  51. package/dist/collection/components/post-back-to-top/post-back-to-top.js +14 -14
  52. package/dist/collection/components/post-banner/post-banner.css +4 -1
  53. package/dist/collection/components/post-banner/post-banner.js +3 -3
  54. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
  55. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +28 -28
  56. package/dist/collection/components/post-card-control/post-card-control.js +3 -3
  57. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
  58. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
  59. package/dist/collection/components/post-collapsible/post-collapsible.js +27 -27
  60. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +6 -5
  61. package/dist/collection/components/post-footer/post-footer.css +1 -1
  62. package/dist/collection/components/post-footer/post-footer.js +18 -16
  63. package/dist/collection/components/post-header/post-header.css +1 -1
  64. package/dist/collection/components/post-header/post-header.js +186 -105
  65. package/dist/collection/components/post-icon/post-icon.js +6 -4
  66. package/dist/collection/components/post-language-menu/post-language-menu.css +1 -0
  67. package/dist/collection/components/{post-language-switch/post-language-switch.js → post-language-menu/post-language-menu.js} +25 -25
  68. package/dist/collection/components/post-language-menu-item/post-language-menu-item.css +1 -0
  69. package/dist/collection/components/{post-language-option/post-language-option.js → post-language-menu-item/post-language-menu-item.js} +14 -14
  70. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  71. package/dist/collection/components/post-logo/post-logo.css +3 -1
  72. package/dist/collection/components/post-logo/post-logo.js +1 -1
  73. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  74. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +41 -29
  75. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  76. package/dist/collection/components/post-megadropdown/post-megadropdown.js +184 -75
  77. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
  78. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +80 -74
  79. package/dist/collection/components/post-menu/post-menu.css +1 -1
  80. package/dist/collection/components/post-menu/post-menu.js +35 -35
  81. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  82. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
  83. package/dist/collection/components/post-pagination/post-pagination.css +1 -0
  84. package/dist/collection/components/post-pagination/post-pagination.js +838 -0
  85. package/dist/collection/components/post-popover/post-popover.css +1 -1
  86. package/dist/collection/components/post-popover/post-popover.js +10 -10
  87. package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +43 -27
  88. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  89. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +45 -92
  90. package/dist/collection/components/post-rating/post-rating.js +3 -3
  91. package/dist/collection/components/post-stepper/post-stepper.css +1 -0
  92. package/dist/collection/components/post-stepper/post-stepper.js +207 -0
  93. package/dist/collection/components/post-stepper-item/post-stepper-item.css +7 -0
  94. package/dist/collection/components/post-stepper-item/post-stepper-item.js +18 -0
  95. package/dist/collection/components/post-tab-item/post-tab-item.css +1 -0
  96. package/dist/collection/components/post-tab-item/post-tab-item.js +86 -0
  97. package/dist/collection/components/post-tab-panel/post-tab-panel.js +9 -9
  98. package/dist/collection/components/post-tabs/post-tabs.js +230 -57
  99. package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
  100. package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
  101. package/dist/collection/components/post-tooltip/post-tooltip.js +1 -1
  102. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
  103. package/dist/collection/utils/environment.js +47 -2
  104. package/dist/collection/utils/event-from.js +2 -2
  105. package/dist/collection/utils/get-focusable-children.js +29 -21
  106. package/dist/collection/utils/is-motion-reduced.js +1 -1
  107. package/dist/collection/utils/tests/environment/hydrate-app-helper.js +16 -0
  108. package/dist/collection/utils/tests/environment/post-env-test.js +9 -0
  109. package/dist/component-names.json +6 -5
  110. package/dist/components/breakpoints.js +90 -3
  111. package/dist/components/debounce.js +11 -0
  112. package/dist/components/environment.js +49 -0
  113. package/dist/components/event-from.js +2 -2
  114. package/dist/components/fade-slide.js +36 -0
  115. package/dist/components/fade.js +21 -8
  116. package/dist/components/get-focusable-children.js +29 -21
  117. package/dist/components/get-root.js +1 -1
  118. package/dist/components/index.d.ts +14 -10
  119. package/dist/components/index.js +7 -5
  120. package/dist/components/package.js +1 -1
  121. package/dist/components/post-accordion-item2.js +4 -5
  122. package/dist/components/post-accordion2.js +4 -5
  123. package/dist/components/post-avatar.js +3 -4
  124. package/dist/components/post-back-to-top.js +14 -40
  125. package/dist/components/post-banner.js +5 -6
  126. package/dist/components/post-breadcrumb-item2.js +2 -3
  127. package/dist/components/post-breadcrumbs.js +24 -34
  128. package/dist/components/post-card-control.js +4 -5
  129. package/dist/components/post-closebutton2.js +3 -4
  130. package/dist/components/post-collapsible-trigger2.js +10 -10
  131. package/dist/components/post-collapsible2.js +25 -25
  132. package/dist/components/{post-list.d.ts → post-env-test.d.ts} +4 -4
  133. package/dist/components/post-env-test.js +31 -0
  134. package/dist/components/post-footer.js +17 -16
  135. package/dist/components/post-header.js +156 -119
  136. package/dist/components/post-icon2.js +8 -6
  137. package/dist/components/post-language-menu-item.d.ts +11 -0
  138. package/dist/components/post-language-menu-item.js +98 -0
  139. package/dist/components/{post-language-switch.d.ts → post-language-menu.d.ts} +4 -4
  140. package/dist/components/post-language-menu.js +156 -0
  141. package/dist/components/post-linkarea.js +1 -1
  142. package/dist/components/post-logo.js +3 -4
  143. package/dist/components/post-mainnavigation.js +21 -32
  144. package/dist/components/post-megadropdown-trigger.js +72 -79
  145. package/dist/components/post-megadropdown.js +183 -78
  146. package/dist/components/post-menu-item2.js +1 -1
  147. package/dist/components/post-menu-trigger2.js +2 -3
  148. package/dist/components/post-menu2.js +35 -36
  149. package/dist/components/post-pagination.d.ts +11 -0
  150. package/dist/components/post-pagination.js +635 -0
  151. package/dist/components/post-popover-trigger.js +41 -26
  152. package/dist/components/post-popover.js +9 -10
  153. package/dist/components/post-popovercontainer2.js +44 -40
  154. package/dist/components/post-rating.js +3 -4
  155. package/dist/components/post-stepper-item.d.ts +11 -0
  156. package/dist/components/post-stepper-item.js +33 -0
  157. package/dist/components/{post-list-item.d.ts → post-stepper.d.ts} +4 -4
  158. package/dist/components/post-stepper.js +136 -0
  159. package/dist/components/{post-tab-header.d.ts → post-tab-item.d.ts} +4 -4
  160. package/dist/components/post-tab-item.js +70 -0
  161. package/dist/components/post-tab-panel.js +8 -9
  162. package/dist/components/post-tabs.js +192 -37
  163. package/dist/components/post-togglebutton.js +1 -51
  164. package/dist/components/post-togglebutton2.js +53 -0
  165. package/dist/components/post-tooltip-trigger.js +3 -3
  166. package/dist/components/post-tooltip.js +3 -4
  167. package/dist/components/react/index.js +1 -1
  168. package/dist/{cjs/breakpoints-CEkeixld.js → components/react/p-B8YiQ3mz.js} +89 -6
  169. package/dist/components/react/{p-2U_BGLjc.js → p-BOLlAY91.js} +9 -7
  170. package/dist/components/react/p-BVCjnh6Q.js +36 -0
  171. package/dist/components/react/{p-CBFgkSgY.js → p-BVGcVycs.js} +1 -1
  172. package/dist/components/react/{p-D4NSCxrX.js → p-BYCGzO-t.js} +13 -13
  173. package/dist/components/react/p-C9hMpmsD.js +11 -0
  174. package/dist/components/react/{p-BVXiQdHq.js → p-CJ13r5fi.js} +29 -21
  175. package/dist/components/react/{p-nSFSgY-P.js → p-CnZWXrbA.js} +40 -41
  176. package/dist/components/react/p-CoDiS_Ik.js +24 -0
  177. package/dist/components/react/p-CyniMNY-.js +54 -0
  178. package/dist/components/react/p-D5knoiyy.js +24 -0
  179. package/dist/components/react/{p-Ccgu_WOx.js → p-DBO6FfHt.js} +4 -5
  180. package/dist/components/react/{p-BfLuYwf7.js → p-DRfa3MOV.js} +26 -26
  181. package/dist/components/react/{p-BUxAs8N5.js → p-DYImHx0e.js} +4 -5
  182. package/dist/components/react/p-DZ5m2Ttg.js +3 -0
  183. package/dist/components/react/p-FxUVQ4Tx.js +49 -0
  184. package/dist/components/react/{p-BK474oMI.js → p-L36-yvgK.js} +2 -2
  185. package/dist/components/react/{p-DVxZMuPW.js → p-NCAcc7ZZ.js} +6 -7
  186. package/dist/components/react/{p-mENtrn2l.js → p-QNPIvxLq.js} +45 -41
  187. package/dist/components/react/{p-D3CFjhAf.js → p-_pLhqTys.js} +5 -6
  188. package/dist/components/react/p-c6yNOQwn.js +113 -0
  189. package/dist/components/react/{p-CzIKqBrS.js → p-rEfV4v4a.js} +2 -2
  190. package/dist/components/react/post-accordion-item.js +1 -1
  191. package/dist/components/react/post-accordion.js +1 -1
  192. package/dist/components/react/post-avatar.js +4 -5
  193. package/dist/components/react/post-back-to-top.js +16 -42
  194. package/dist/components/react/post-banner.js +7 -8
  195. package/dist/components/react/post-breadcrumb-item.js +1 -1
  196. package/dist/components/react/post-breadcrumbs.js +31 -41
  197. package/dist/components/react/post-card-control.js +6 -7
  198. package/dist/components/react/post-closebutton.js +1 -1
  199. package/dist/components/react/post-collapsible-trigger.js +1 -1
  200. package/dist/components/react/post-collapsible.js +1 -1
  201. package/dist/components/react/{post-list.d.ts → post-env-test.d.ts} +4 -4
  202. package/dist/components/react/post-env-test.js +32 -0
  203. package/dist/components/react/post-footer.js +23 -22
  204. package/dist/components/react/post-header.js +158 -121
  205. package/dist/components/react/post-icon.js +1 -1
  206. package/dist/components/react/post-language-menu-item.d.ts +11 -0
  207. package/dist/components/react/post-language-menu-item.js +99 -0
  208. package/dist/components/react/{post-language-option.d.ts → post-language-menu.d.ts} +4 -4
  209. package/dist/components/react/post-language-menu.js +157 -0
  210. package/dist/components/react/post-linkarea.js +2 -2
  211. package/dist/components/react/post-logo.js +4 -5
  212. package/dist/components/react/post-mainnavigation.js +23 -34
  213. package/dist/components/react/post-megadropdown-trigger.js +74 -81
  214. package/dist/components/react/post-megadropdown.js +185 -80
  215. package/dist/components/react/post-menu-item.js +1 -1
  216. package/dist/components/react/post-menu-trigger.js +1 -1
  217. package/dist/components/react/post-menu.js +1 -1
  218. package/dist/components/react/post-pagination.d.ts +11 -0
  219. package/dist/components/react/post-pagination.js +636 -0
  220. package/dist/components/react/post-popover-trigger.js +42 -27
  221. package/dist/components/react/post-popover.js +14 -15
  222. package/dist/components/react/post-popovercontainer.js +1 -1
  223. package/dist/components/react/post-rating.js +5 -6
  224. package/dist/components/react/post-stepper-item.d.ts +11 -0
  225. package/dist/components/react/post-stepper-item.js +34 -0
  226. package/dist/components/react/{post-list-item.d.ts → post-stepper.d.ts} +4 -4
  227. package/dist/components/react/post-stepper.js +137 -0
  228. package/dist/components/react/{post-tab-header.d.ts → post-tab-item.d.ts} +4 -4
  229. package/dist/components/react/post-tab-item.js +71 -0
  230. package/dist/components/react/post-tab-panel.js +9 -10
  231. package/dist/components/react/post-tabs.js +193 -38
  232. package/dist/components/react/post-togglebutton.js +1 -52
  233. package/dist/components/react/post-tooltip-trigger.js +4 -4
  234. package/dist/components/react/post-tooltip.js +5 -6
  235. package/dist/components/utils.js +24 -0
  236. package/dist/docs.json +968 -563
  237. package/dist/esm/{breakpoints-CJ80BZ06.js → breakpoints-DYoSKGHO.js} +90 -3
  238. package/dist/esm/debounce-C9hMpmsD.js +11 -0
  239. package/dist/esm/environment-CEmnRoA6.js +49 -0
  240. package/dist/esm/{event-from-CzIKqBrS.js → event-from-rEfV4v4a.js} +2 -2
  241. package/dist/esm/fade-DsgPYmAa.js +24 -0
  242. package/dist/esm/fade-slide-CvOvauo9.js +36 -0
  243. package/dist/esm/{get-focusable-children-D9ZHp2FP.js → get-focusable-children-BXNs2_sw.js} +29 -21
  244. package/dist/esm/{get-root-BkQ3CrLq.js → get-root-CXfAA093.js} +1 -1
  245. package/dist/esm/{index-CFNKgUjL.js → index-1ReqxAnI.js} +29 -13
  246. package/dist/esm/loader.js +3 -3
  247. package/dist/esm/package-DZ5m2Ttg.js +3 -0
  248. package/dist/esm/post-accordion_2.entry.js +10 -10
  249. package/dist/esm/post-avatar.entry.js +6 -6
  250. package/dist/esm/post-back-to-top.entry.js +16 -40
  251. package/dist/esm/post-banner.entry.js +10 -9
  252. package/dist/esm/post-breadcrumb-item_2.entry.js +6 -6
  253. package/dist/esm/post-breadcrumbs.entry.js +20 -29
  254. package/dist/esm/post-card-control.entry.js +6 -6
  255. package/dist/esm/{post-closebutton_15.entry.js → post-closebutton_13.entry.js} +518 -486
  256. package/dist/esm/post-collapsible_2.entry.js +36 -35
  257. package/dist/esm/post-components.js +3 -3
  258. package/dist/esm/post-env-test.entry.js +13 -0
  259. package/dist/esm/post-footer.entry.js +18 -16
  260. package/dist/esm/post-linkarea.entry.js +3 -3
  261. package/dist/esm/post-pagination.entry.js +587 -0
  262. package/dist/esm/post-popover-trigger.entry.js +44 -28
  263. package/dist/esm/post-popover.entry.js +11 -11
  264. package/dist/esm/post-rating.entry.js +5 -5
  265. package/dist/esm/post-stepper-item.entry.js +16 -0
  266. package/dist/esm/post-stepper.entry.js +107 -0
  267. package/dist/esm/post-tab-item.entry.js +47 -0
  268. package/dist/esm/post-tab-panel.entry.js +9 -9
  269. package/dist/esm/post-tabs.entry.js +191 -38
  270. package/dist/esm/post-tooltip-trigger.entry.js +5 -5
  271. package/dist/esm/post-tooltip.entry.js +6 -6
  272. package/dist/esm/utils-CoDiS_Ik.js +24 -0
  273. package/dist/post-components/{p-8f0fc02a.entry.js → p-130eb074.entry.js} +1 -1
  274. package/dist/post-components/p-13d018fe.entry.js +1 -0
  275. package/dist/post-components/p-143e5a84.entry.js +1 -0
  276. package/dist/post-components/p-1ReqxAnI.js +2 -0
  277. package/dist/post-components/p-2b220851.entry.js +1 -0
  278. package/dist/post-components/{p-96750e25.entry.js → p-390f111f.entry.js} +1 -1
  279. package/dist/post-components/p-3cf09fbd.entry.js +1 -0
  280. package/dist/post-components/p-52e584ca.entry.js +1 -0
  281. package/dist/post-components/p-56a4040c.entry.js +1 -0
  282. package/dist/post-components/p-675dab57.entry.js +1 -0
  283. package/dist/post-components/p-6857fd9d.entry.js +1 -0
  284. package/dist/post-components/p-7cd00e3e.entry.js +1 -0
  285. package/dist/post-components/p-7f5d2487.entry.js +1 -0
  286. package/dist/post-components/{p-bf41fe56.entry.js → p-88201353.entry.js} +1 -1
  287. package/dist/post-components/p-89360cd1.entry.js +1 -0
  288. package/dist/post-components/p-B7ebLhHc.js +1 -0
  289. package/dist/post-components/p-BVCjnh6Q.js +1 -0
  290. package/dist/post-components/p-BXNs2_sw.js +1 -0
  291. package/dist/post-components/p-C9hMpmsD.js +1 -0
  292. package/dist/post-components/p-CEmnRoA6.js +1 -0
  293. package/dist/post-components/p-CoDiS_Ik.js +1 -0
  294. package/dist/post-components/p-D5knoiyy.js +1 -0
  295. package/dist/post-components/p-DI-h_mEL.js +1 -0
  296. package/dist/post-components/p-DZ5m2Ttg.js +1 -0
  297. package/dist/post-components/p-a740eaed.entry.js +1 -0
  298. package/dist/post-components/{p-261b1452.entry.js → p-a79590f5.entry.js} +1 -1
  299. package/dist/post-components/p-b708d96a.entry.js +1 -0
  300. package/dist/post-components/p-bcf5786f.entry.js +1 -0
  301. package/dist/post-components/p-c92512f5.entry.js +1 -0
  302. package/dist/post-components/{p-658b1ccc.entry.js → p-d7cb3a61.entry.js} +1 -1
  303. package/dist/post-components/p-d7f33813.entry.js +1 -0
  304. package/dist/post-components/p-da97ee21.entry.js +1 -0
  305. package/dist/post-components/{p-11c204e0.entry.js → p-ed4db774.entry.js} +1 -1
  306. package/dist/post-components/post-components.css +1 -1
  307. package/dist/post-components/post-components.esm.js +1 -1
  308. package/dist/prebuild.js +46 -0
  309. package/dist/types/animations/collapse.d.ts +1 -0
  310. package/dist/types/animations/fade-slide.d.ts +11 -0
  311. package/dist/types/animations/fade.d.ts +2 -2
  312. package/dist/types/animations/index.d.ts +2 -0
  313. package/dist/types/animations/slide.d.ts +9 -2
  314. package/dist/types/animations/types.d.ts +13 -0
  315. package/dist/types/animations/utils.d.ts +2 -0
  316. package/dist/types/components/post-accordion-item/heading-levels.d.ts +1 -1
  317. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +2 -2
  318. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -2
  319. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +6 -6
  320. package/dist/types/components/post-collapsible/post-collapsible.d.ts +4 -5
  321. package/dist/types/components/post-collapsible-trigger/post-collapsible-trigger.d.ts +1 -0
  322. package/dist/types/components/post-footer/post-footer.d.ts +4 -4
  323. package/dist/types/components/post-header/post-header.d.ts +28 -19
  324. package/dist/types/components/{post-language-switch/post-language-switch.d.ts → post-language-menu/post-language-menu.d.ts} +6 -6
  325. package/dist/types/components/{post-language-option/post-language-option.d.ts → post-language-menu-item/post-language-menu-item.d.ts} +5 -5
  326. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +6 -5
  327. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +20 -2
  328. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +17 -23
  329. package/dist/types/components/post-menu/post-menu.d.ts +4 -4
  330. package/dist/types/components/post-pagination/post-pagination.d.ts +224 -0
  331. package/dist/types/components/post-popover/post-popover.d.ts +3 -3
  332. package/dist/types/components/post-popover-trigger/post-popover-trigger.d.ts +2 -1
  333. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +13 -16
  334. package/dist/types/components/post-rating/post-rating.d.ts +1 -1
  335. package/dist/types/components/post-stepper/post-stepper.d.ts +39 -0
  336. package/dist/types/components/post-stepper-item/post-stepper-item.d.ts +3 -0
  337. package/dist/types/components/post-tab-item/post-tab-item.d.ts +19 -0
  338. package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +3 -3
  339. package/dist/types/components/post-tabs/post-tabs.d.ts +33 -12
  340. package/dist/types/components.d.ts +357 -186
  341. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +9 -0
  342. package/dist/types/types/heading-levels.d.ts +1 -1
  343. package/dist/types/utils/environment.d.ts +25 -1
  344. package/dist/types/utils/get-focusable-children.d.ts +2 -2
  345. package/dist/types/utils/tests/environment/hydrate-app-helper.d.ts +5 -0
  346. package/dist/types/utils/tests/environment/post-env-test.d.ts +3 -0
  347. package/hydrate/index.js +1882 -833
  348. package/hydrate/index.mjs +1882 -833
  349. package/package.json +9 -11
  350. package/dist/cjs/fade-nS5zzDQS.js +0 -14
  351. package/dist/cjs/index-DtvYdwe1.js +0 -96
  352. package/dist/cjs/post-tab-header.cjs.entry.js +0 -31
  353. package/dist/collection/animations/slide-and-fade.js +0 -25
  354. package/dist/collection/components/post-language-option/post-language-option.css +0 -1
  355. package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
  356. package/dist/collection/components/post-list/post-list.css +0 -1
  357. package/dist/collection/components/post-list/post-list.js +0 -97
  358. package/dist/collection/components/post-list-item/post-list-item.css +0 -1
  359. package/dist/collection/components/post-list-item/post-list-item.js +0 -26
  360. package/dist/collection/components/post-tab-header/post-tab-header.css +0 -1
  361. package/dist/collection/components/post-tab-header/post-tab-header.js +0 -65
  362. package/dist/components/index2.js +0 -88
  363. package/dist/components/post-language-option.d.ts +0 -11
  364. package/dist/components/post-language-option.js +0 -99
  365. package/dist/components/post-language-switch.js +0 -157
  366. package/dist/components/post-list-item.js +0 -38
  367. package/dist/components/post-list.js +0 -61
  368. package/dist/components/post-tab-header.js +0 -52
  369. package/dist/components/react/p-BXRsHuTS.js +0 -3
  370. package/dist/components/react/p-CV7fm1rW.js +0 -88
  371. package/dist/components/react/p-Dj7qWba5.js +0 -114
  372. package/dist/components/react/p-SbIC4aZX.js +0 -11
  373. package/dist/components/react/post-language-option.js +0 -100
  374. package/dist/components/react/post-language-switch.d.ts +0 -11
  375. package/dist/components/react/post-language-switch.js +0 -158
  376. package/dist/components/react/post-list-item.js +0 -39
  377. package/dist/components/react/post-list.js +0 -62
  378. package/dist/components/react/post-tab-header.js +0 -53
  379. package/dist/esm/fade-SbIC4aZX.js +0 -11
  380. package/dist/esm/index-VmK3ABCB.js +0 -88
  381. package/dist/esm/package-BXRsHuTS.js +0 -3
  382. package/dist/esm/post-tab-header.entry.js +0 -29
  383. package/dist/post-components/p-02ea3ec5.entry.js +0 -1
  384. package/dist/post-components/p-0e92dbef.entry.js +0 -1
  385. package/dist/post-components/p-0ec2bdd7.entry.js +0 -1
  386. package/dist/post-components/p-197a0f25.entry.js +0 -1
  387. package/dist/post-components/p-3274ab81.entry.js +0 -1
  388. package/dist/post-components/p-77e43032.entry.js +0 -1
  389. package/dist/post-components/p-BXRsHuTS.js +0 -1
  390. package/dist/post-components/p-CBFgkSgY.js +0 -1
  391. package/dist/post-components/p-CFNKgUjL.js +0 -2
  392. package/dist/post-components/p-CJ80BZ06.js +0 -1
  393. package/dist/post-components/p-D9ZHp2FP.js +0 -1
  394. package/dist/post-components/p-SbIC4aZX.js +0 -1
  395. package/dist/post-components/p-VmK3ABCB.js +0 -1
  396. package/dist/post-components/p-b5b5e4b9.entry.js +0 -1
  397. package/dist/post-components/p-b8059ba1.entry.js +0 -1
  398. package/dist/post-components/p-d6134e24.entry.js +0 -1
  399. package/dist/post-components/p-e7029b9e.entry.js +0 -1
  400. package/dist/post-components/p-e90688ab.entry.js +0 -1
  401. package/dist/post-components/p-ea5da614.entry.js +0 -1
  402. package/dist/post-components/p-f1b815b6.entry.js +0 -1
  403. package/dist/types/animations/slide-and-fade.d.ts +0 -2
  404. package/dist/types/components/post-list/post-list.d.ts +0 -24
  405. package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
  406. package/dist/types/components/post-tab-header/post-tab-header.d.ts +0 -14
  407. /package/dist/collection/components/{post-language-switch → post-language-menu}/switch-variants.js +0 -0
  408. /package/dist/post-components/{p-CzIKqBrS.js → p-rEfV4v4a.js} +0 -0
  409. /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
@@ -0,0 +1,70 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { v as version } from './package.js';
3
+ import { c as checkRequiredAndType } from './breakpoints.js';
4
+ import { n as nanoid } from './index.browser.js';
5
+
6
+ const postTabItemCss = ".tab-title,.nav-item a{display:inline-block;position:relative;box-sizing:border-box;padding:1rem;transition:background-color 100ms;border-right:1px solid rgba(0,0,0,0);border-left:1px solid rgba(0,0,0,0);opacity:.7;color:#000;text-decoration:none;background-color:rgba(0,0,0,0);cursor:pointer}.tab-title:hover,.nav-item a:hover{opacity:1;background-color:rgba(0,0,0,.6);color:#fff}.tab-title:focus-visible,.nav-item a:focus-visible{outline:rgba(0,0,0,0);opacity:1;background-color:rgba(0,0,0,.6);color:#fff;box-shadow:none}.tab-title:focus-visible::after,.nav-item a:focus-visible::after{content:\"\";display:block;position:absolute;top:2px;right:1px;bottom:0;left:1px;box-shadow:0 0 0 1px #fff,0 0 0 2px #333}:where(.bg-dark,.bg-black,.bg-primary,.bg-secondary,.bg-success,.bg-error) .tab-title:hover,:where(.bg-dark,.bg-black,.bg-primary,.bg-secondary,.bg-success,.bg-error) .tab-title:focus-visible,:where(.bg-dark,.bg-black,.bg-primary,.bg-secondary,.bg-success,.bg-error) .nav-item a:hover,:where(.bg-dark,.bg-black,.bg-primary,.bg-secondary,.bg-success,.bg-error) .nav-item a:focus-visible{background-color:rgba(255,255,255,.2)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.tab-title,.nav-item a{opacity:1;border-left-color:Canvas;border-right-color:Canvas;color:LinkText}.tab-title:hover,.tab-title:focus,.tab-title:focus-within,.tab-title:focus-visible,.nav-item a:hover,.nav-item a:focus,.nav-item a:focus-within,.nav-item a:focus-visible{outline:var(--post-core-dimension-2) solid Highlight;outline-offset:calc(var(--post-core-dimension-4)*-1)}}.nav-item{display:inline-block;position:relative;box-sizing:border-box;cursor:default}.nav-item:focus,.nav-item:focus-visible{outline:none;box-shadow:none}.nav-item:focus::after,.nav-item:focus-visible::after{display:none}.nav-item a{color:inherit;text-decoration:none;display:block;width:100%;height:100%;box-sizing:border-box;position:relative;outline:none;cursor:pointer;border-radius:0}.nav-item a:focus{outline:none}.nav-item a:active{opacity:1;background-color:rgba(0,0,0,.6);color:#fff}.nav-item a:focus-visible{outline:none !important}:where(.bg-dark,.bg-black,.bg-primary,.bg-secondary,.bg-success,.bg-error) .nav-item a:hover{background-color:rgba(255,255,255,.2)}:where(.bg-dark,.bg-black,.bg-primary,.bg-secondary,.bg-success,.bg-error) .nav-item a:focus-visible{background-color:rgba(255,255,255,.2)}.tab-title.active,.nav-item.active a{z-index:1;border-right-color:#ccc;border-left-color:#ccc;opacity:1;background-color:#fff;color:#000;font-weight:700}.tab-title.active::before,.nav-item.active a::before{content:\"\";display:block;position:absolute;top:0;right:-1px;left:-1px;height:var(--post-core-dimension-4);background-color:#fc0}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.tab-title.active,.nav-item.active a{border-left-color:ButtonText;border-right-color:ButtonText;color:Highlight}.tab-title.active::before,.nav-item.active a::before{background-color:Highlight}}:host{display:block}.tab-title{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.tab-title{background-color:ButtonFace !important}.tab-title:hover{background-color:Highlight !important}}";
7
+
8
+ const PostTabItem$1 = /*@__PURE__*/ proxyCustomElement(class PostTabItem extends HTMLElement {
9
+ constructor() {
10
+ super();
11
+ this.__registerHost();
12
+ this.__attachShadow();
13
+ this.mutationObserver = new MutationObserver(this.checkNavigationMode.bind(this));
14
+ this.isNavigationMode = false;
15
+ }
16
+ validateName() {
17
+ checkRequiredAndType(this, 'name', 'string');
18
+ }
19
+ connectedCallback() {
20
+ this.mutationObserver.observe(this.host, {
21
+ childList: true,
22
+ subtree: true,
23
+ });
24
+ }
25
+ componentWillLoad() {
26
+ this.tabId = `tab-${this.host.id || nanoid(6)}`;
27
+ this.checkNavigationMode();
28
+ }
29
+ disconnectedCallback() {
30
+ if (this.mutationObserver) {
31
+ this.mutationObserver.disconnect();
32
+ }
33
+ }
34
+ checkNavigationMode() {
35
+ const hasAnchor = this.host.querySelector('a') !== null;
36
+ this.isNavigationMode = hasAnchor;
37
+ }
38
+ render() {
39
+ return (h(Host, { key: '9367e007f35147f7a412968f018089910ecc88a0', id: this.tabId, role: !this.isNavigationMode ? 'tab' : undefined, "data-version": version, "data-navigation-mode": this.isNavigationMode.toString(), "aria-selected": !this.isNavigationMode ? 'false' : undefined, tabindex: !this.isNavigationMode ? '-1' : undefined, class: !this.isNavigationMode ? 'tab-title' : 'nav-item' }, h("slot", { key: 'd805ef623f162d5f66603c3cdeedbb31cc585591' })));
40
+ }
41
+ get host() { return this; }
42
+ static get watchers() { return {
43
+ "name": ["validateName"]
44
+ }; }
45
+ static get style() { return postTabItemCss; }
46
+ }, [1, "post-tab-item", {
47
+ "name": [513],
48
+ "tabId": [32],
49
+ "isNavigationMode": [32]
50
+ }, undefined, {
51
+ "name": ["validateName"]
52
+ }]);
53
+ function defineCustomElement$1() {
54
+ if (typeof customElements === "undefined") {
55
+ return;
56
+ }
57
+ const components = ["post-tab-item"];
58
+ components.forEach(tagName => { switch (tagName) {
59
+ case "post-tab-item":
60
+ if (!customElements.get(tagName)) {
61
+ customElements.define(tagName, PostTabItem$1);
62
+ }
63
+ break;
64
+ } });
65
+ }
66
+
67
+ const PostTabItem = PostTabItem$1;
68
+ const defineCustomElement = defineCustomElement$1;
69
+
70
+ export { PostTabItem, defineCustomElement };
@@ -1,8 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { v as version } from './package.js';
3
3
  import { n as nanoid } from './index.browser.js';
4
- import { c as checkRequiredAndType } from './index2.js';
5
- import './breakpoints.js';
4
+ import { c as checkRequiredAndType } from './breakpoints.js';
6
5
 
7
6
  const postTabPanelCss = ":host{display:none}";
8
7
 
@@ -12,27 +11,27 @@ const PostTabPanel$1 = /*@__PURE__*/ proxyCustomElement(class PostTabPanel exten
12
11
  this.__registerHost();
13
12
  this.__attachShadow();
14
13
  }
15
- validateName() {
16
- checkRequiredAndType(this, 'name', 'string');
14
+ validateFor() {
15
+ checkRequiredAndType(this, 'for', 'string');
17
16
  }
18
17
  componentWillLoad() {
19
- this.validateName();
18
+ this.validateFor();
20
19
  // get the id set on the host element or use a random id by default
21
20
  this.panelId = `panel-${this.host.id || nanoid(6)}`;
22
21
  }
23
22
  render() {
24
- return (h(Host, { key: '5d6c56e41ac61b10dd2560482bc5e4edab394742', "data-version": version, id: this.panelId, role: "tabpanel" }, h("slot", { key: 'ec7be772a0d3f883388742460c825dce0f0e44e8' })));
23
+ return (h(Host, { key: 'dcb273fbc2a98c39813a152cd4a7e50bc86d0004', "data-version": version, id: this.panelId, role: "tabpanel", slot: "panels" }, h("slot", { key: 'c3f13a3b062c53c87b303f57ee267a6ce24c54c8' })));
25
24
  }
26
25
  get host() { return this; }
27
26
  static get watchers() { return {
28
- "name": ["validateName"]
27
+ "for": ["validateFor"]
29
28
  }; }
30
29
  static get style() { return postTabPanelCss; }
31
30
  }, [1, "post-tab-panel", {
32
- "name": [513],
31
+ "for": [513],
33
32
  "panelId": [32]
34
33
  }, undefined, {
35
- "name": ["validateName"]
34
+ "for": ["validateFor"]
36
35
  }]);
37
36
  function defineCustomElement$1() {
38
37
  if (typeof customElements === "undefined") {
@@ -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
- import { f as fadeOut, a as fadeIn } from './fade.js';
4
- import './breakpoints.js';
3
+ import { f as fade } from './fade.js';
4
+ import { c as checkRequiredAndType } from './breakpoints.js';
5
5
 
6
6
  /**
7
7
  * Invoke the `componentOnReady` method if it is available, simulate it otherwise
@@ -33,42 +33,162 @@ const PostTabs$1 = /*@__PURE__*/ proxyCustomElement(class PostTabs extends HTMLE
33
33
  this.__attachShadow();
34
34
  this.postChange = createEvent(this, "postChange", 7);
35
35
  this.isLoaded = false;
36
+ this.isNavigationMode = false;
36
37
  /**
37
38
  * When set to true, this property allows the tabs container to span the
39
+ * Changing this value after initialization has no effect.
38
40
  * full width of the screen, from edge to edge.
39
41
  */
40
42
  this.fullWidth = false;
41
43
  }
42
44
  get tabs() {
43
- return Array.from(this.host.querySelectorAll('post-tab-header')).filter(tab => tab.closest('post-tabs') === this.host);
45
+ return Array.from(this.host.querySelectorAll('post-tab-item')).filter(tab => tab.closest('post-tabs') === this.host);
46
+ }
47
+ get panels() {
48
+ return Array.from(this.host.querySelectorAll('post-tab-panel')).filter(panel => panel.closest('post-tabs') === this.host);
49
+ }
50
+ validateLabel() {
51
+ if (this.isNavigationMode) {
52
+ checkRequiredAndType(this, 'label', 'string');
53
+ }
54
+ }
55
+ componentWillRender() {
56
+ this.detectMode();
44
57
  }
45
58
  componentDidLoad() {
46
59
  this.moveMisplacedTabs();
60
+ this.moveMisplacedPanels();
47
61
  this.enableTabs();
48
- const initiallyActivePanel = this.activePanel || this.tabs[0]?.panel;
49
- void this.show(initiallyActivePanel);
50
- this.isLoaded = true;
62
+ this.setupContentObserver();
63
+ this.validateLabel();
64
+ if (this.isNavigationMode) {
65
+ const activeTab = this.findActiveNavigationTab();
66
+ if (activeTab) {
67
+ this.activateTab(activeTab);
68
+ }
69
+ }
70
+ else {
71
+ const tabToActivate = this.activeTab || this.tabs[0]?.name;
72
+ if (tabToActivate) {
73
+ void this.show(tabToActivate);
74
+ }
75
+ }
76
+ }
77
+ disconnectedCallback() {
78
+ if (this.showing) {
79
+ this.showing.cancel();
80
+ this.showing = null;
81
+ }
82
+ if (this.hiding) {
83
+ this.hiding.cancel();
84
+ this.hiding = null;
85
+ }
86
+ if (this.contentObserver) {
87
+ this.contentObserver.disconnect();
88
+ }
89
+ }
90
+ setupContentObserver() {
91
+ const config = {
92
+ childList: true,
93
+ subtree: true,
94
+ attributes: true,
95
+ attributeFilter: ['data-navigation-mode', 'aria-current'],
96
+ };
97
+ this.contentObserver = new MutationObserver(this.handleContentChange.bind(this));
98
+ this.contentObserver.observe(this.host, config);
99
+ }
100
+ handleContentChange(mutations) {
101
+ const shouldRedetect = this.shouldRedetectMode(mutations);
102
+ const ariaCurrentChanged = this.hasAriaCurrentChanged(mutations);
103
+ if (ariaCurrentChanged && this.isNavigationMode) {
104
+ this.updateActiveNavigationTab();
105
+ }
106
+ if (shouldRedetect) {
107
+ this.handleModeChange();
108
+ }
109
+ }
110
+ shouldRedetectMode(mutations) {
111
+ return mutations.some(mutation => {
112
+ if (mutation.type === 'childList') {
113
+ return mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0;
114
+ }
115
+ if (mutation.type === 'attributes' && mutation.attributeName === 'data-navigation-mode') {
116
+ return true;
117
+ }
118
+ return false;
119
+ });
120
+ }
121
+ hasAriaCurrentChanged(mutations) {
122
+ return mutations.some(mutation => mutation.type === 'attributes' && mutation.attributeName === 'aria-current');
123
+ }
124
+ updateActiveNavigationTab() {
125
+ const activeTab = this.findActiveNavigationTab();
126
+ if (activeTab && activeTab !== this.currentActiveTab) {
127
+ this.activateTab(activeTab);
128
+ }
129
+ }
130
+ handleModeChange() {
131
+ const previousMode = this.isNavigationMode;
132
+ this.detectMode();
133
+ if (previousMode !== this.isNavigationMode) {
134
+ this.enableTabs();
135
+ this.initializeActiveTab();
136
+ }
137
+ }
138
+ initializeActiveTab() {
139
+ if (this.isNavigationMode) {
140
+ const activeTab = this.findActiveNavigationTab();
141
+ if (activeTab) {
142
+ this.activateTab(activeTab);
143
+ }
144
+ }
145
+ else {
146
+ const tabToActivate = this.activeTab || this.tabs[0]?.name;
147
+ if (tabToActivate) {
148
+ void this.show(tabToActivate);
149
+ }
150
+ }
151
+ }
152
+ detectMode() {
153
+ // Check for navigation mode by looking for anchor elements in tabs
154
+ // This works even before post-tab-item sets data-navigation-mode attribute
155
+ const hasNavigationTabs = this.tabs.some(tab => {
156
+ const hasAnchor = tab.querySelector('a') !== null;
157
+ const navModeAttr = tab.getAttribute('data-navigation-mode') === 'true';
158
+ return hasAnchor || navModeAttr;
159
+ });
160
+ const hasPanels = this.panels.length > 0;
161
+ if (hasNavigationTabs && hasPanels) {
162
+ throw new Error('PostTabs: Mixed mode detected. Cannot use both navigation mode (anchor elements) and panel mode (post-tab-panel elements) at the same time.');
163
+ }
164
+ this.isNavigationMode = hasNavigationTabs;
165
+ }
166
+ findActiveNavigationTab() {
167
+ return (this.tabs.find(tab => {
168
+ const anchor = tab.querySelector('a[aria-current="page"]');
169
+ return anchor !== null;
170
+ }) || null);
51
171
  }
52
172
  /**
53
173
  * Shows the panel with the given name and selects its associated tab.
54
174
  * Any other panel that was previously shown becomes hidden and its associated tab is unselected.
55
175
  */
56
- async show(panelName) {
176
+ async show(tabName) {
57
177
  // do nothing if the tab is already active
58
- if (panelName === this.activeTab?.panel) {
178
+ if (tabName === this.currentActiveTab?.name) {
59
179
  return;
60
180
  }
61
- const previousTab = this.activeTab;
62
- const newTab = this.host.querySelector(`post-tab-header[panel=${panelName}]`);
181
+ const previousTab = this.currentActiveTab;
182
+ const newTab = this.host.querySelector(`post-tab-item[name=${tabName}]`);
63
183
  this.activateTab(newTab);
64
184
  // if a panel is currently being displayed, remove it from the view and complete the associated animation
65
185
  if (this.showing) {
66
- this.showing.effect['target'].style.display = 'none';
67
186
  this.showing.finish();
187
+ this.showing = null;
68
188
  }
69
189
  // hide the currently visible panel only if no other animation is running
70
190
  if (previousTab && !this.showing && !this.hiding)
71
- this.hidePanel(previousTab.panel);
191
+ this.hidePanel(previousTab.name);
72
192
  // wait for any hiding animation to complete before showing the selected tab
73
193
  if (this.hiding)
74
194
  await this.hiding.finished;
@@ -77,15 +197,25 @@ const PostTabs$1 = /*@__PURE__*/ proxyCustomElement(class PostTabs extends HTMLE
77
197
  if (this.showing)
78
198
  await this.showing.finished;
79
199
  if (this.isLoaded)
80
- this.postChange.emit(this.activeTab.panel);
200
+ this.postChange.emit(this.currentActiveTab.name);
81
201
  }
82
202
  moveMisplacedTabs() {
83
203
  if (!this.tabs)
84
204
  return;
85
205
  this.tabs.forEach(tab => {
86
- if (tab.getAttribute('slot') === 'tabs')
87
- return;
88
- tab.setAttribute('slot', 'tabs');
206
+ // Tab items should go in the default slot, so remove any slot attribute
207
+ if (tab.getAttribute('slot')) {
208
+ tab.removeAttribute('slot');
209
+ }
210
+ });
211
+ }
212
+ moveMisplacedPanels() {
213
+ if (!this.panels)
214
+ return;
215
+ this.panels.forEach(panel => {
216
+ if (panel.getAttribute('slot') !== 'panels') {
217
+ panel.setAttribute('slot', 'panels');
218
+ }
89
219
  });
90
220
  }
91
221
  enableTabs() {
@@ -93,19 +223,25 @@ const PostTabs$1 = /*@__PURE__*/ proxyCustomElement(class PostTabs extends HTMLE
93
223
  return;
94
224
  this.tabs.forEach(async (tab) => {
95
225
  await componentOnReady(tab);
96
- // if the tab has an "aria-controls" attribute it was already linked to its panel: do nothing
226
+ // In navigation mode, navigation is handled by the consumer's routing
227
+ if (this.isNavigationMode) {
228
+ return;
229
+ }
230
+ // Panel mode: set up ARIA relationships and event handlers
97
231
  if (tab.getAttribute('aria-controls'))
98
232
  return;
99
- const tabPanel = this.getPanel(tab.panel);
100
- tab.setAttribute('aria-controls', tabPanel.id);
101
- tabPanel.setAttribute('aria-labelledby', tab.id);
233
+ const tabPanel = this.getPanel(tab.name);
234
+ if (tabPanel) {
235
+ tab.setAttribute('aria-controls', tabPanel.id);
236
+ tabPanel.setAttribute('aria-labelledby', tab.id);
237
+ }
102
238
  tab.addEventListener('click', () => {
103
- void this.show(tab.panel);
239
+ void this.show(tab.name);
104
240
  });
105
241
  tab.addEventListener('keydown', (e) => {
106
242
  if (e.key === 'Enter' || e.key === ' ') {
107
243
  e.preventDefault();
108
- void this.show(tab.panel);
244
+ void this.show(tab.name);
109
245
  }
110
246
  });
111
247
  tab.addEventListener('keydown', (e) => {
@@ -114,44 +250,51 @@ const PostTabs$1 = /*@__PURE__*/ proxyCustomElement(class PostTabs extends HTMLE
114
250
  });
115
251
  });
116
252
  // if the currently active tab was removed from the DOM then select the first one
117
- if (this.activeTab && !this.activeTab.isConnected) {
118
- void this.show(this.tabs[0]?.panel);
253
+ if (this.currentActiveTab && !this.currentActiveTab.isConnected) {
254
+ void this.show(this.tabs[0]?.name);
119
255
  }
120
256
  }
121
257
  activateTab(tab) {
122
- if (this.activeTab) {
123
- this.activeTab.setAttribute('aria-selected', 'false');
124
- this.activeTab.setAttribute('tabindex', '-1');
125
- this.activeTab.classList.remove('active');
258
+ // Deactivate previous tab
259
+ if (this.currentActiveTab) {
260
+ this.currentActiveTab.classList.remove('active');
261
+ if (!this.isNavigationMode) {
262
+ this.currentActiveTab.setAttribute('aria-selected', 'false');
263
+ this.currentActiveTab.setAttribute('tabindex', '-1');
264
+ }
126
265
  }
127
- tab.setAttribute('aria-selected', 'true');
128
- tab.setAttribute('tabindex', '0');
129
266
  tab.classList.add('active');
130
- this.activeTab = tab;
267
+ if (!this.isNavigationMode) {
268
+ tab.setAttribute('aria-selected', 'true');
269
+ tab.setAttribute('tabindex', '0');
270
+ }
271
+ this.currentActiveTab = tab;
131
272
  }
132
273
  hidePanel(panelName) {
133
274
  const previousPanel = this.getPanel(panelName);
134
275
  if (!previousPanel)
135
276
  return;
136
- this.hiding = fadeOut(previousPanel);
277
+ this.hiding = fade(previousPanel, 'out');
137
278
  this.hiding.onfinish = () => {
138
279
  previousPanel.style.display = 'none';
139
280
  this.hiding = null;
140
281
  };
141
282
  }
142
283
  showSelectedPanel() {
143
- const panel = this.getPanel(this.activeTab.panel);
284
+ const panel = this.getPanel(this.currentActiveTab.name);
285
+ if (!panel)
286
+ return;
144
287
  panel.style.display = 'block';
145
288
  // prevent the initially selected panel from fading in
146
289
  if (!this.isLoaded)
147
290
  return;
148
- this.showing = fadeIn(panel);
291
+ this.showing = fade(panel, 'in');
149
292
  this.showing.onfinish = () => {
150
293
  this.showing = null;
151
294
  };
152
295
  }
153
296
  getPanel(name) {
154
- return this.host.querySelector(`post-tab-panel[name=${name}]`);
297
+ return this.host.querySelector(`post-tab-panel[for=${name}]`);
155
298
  }
156
299
  navigateTabs(tab, key) {
157
300
  const activeTabIndex = Array.from(this.tabs).indexOf(tab);
@@ -165,16 +308,28 @@ const PostTabs$1 = /*@__PURE__*/ proxyCustomElement(class PostTabs extends HTMLE
165
308
  if (!nextTab)
166
309
  return;
167
310
  nextTab.focus();
311
+ void this.show(nextTab.name);
168
312
  }
169
313
  render() {
170
- return (h(Host, { key: '3e352bc059be99242f612a49bdea71fd065d67b0', "data-version": version }, h("div", { key: '34d608d7af834fd4fb3106ac3fb90100a9b73138', class: "tabs-wrapper", part: "tabs" }, h("div", { key: '102e75b53d3e485a185d391f84755142d8690de6', class: "tabs", role: "tablist" }, h("slot", { key: '03624f2944dfd37d3eb3403772d430a6e053e676', name: "tabs", onSlotchange: () => this.enableTabs() }))), h("div", { key: '8c7c956b831ef19fb093122ca35c14b5a015dad3', class: "tab-content", part: "content" }, h("slot", { key: '8fad35a2a6d26814f513c422b4fcbe98aae7bd22', onSlotchange: () => this.moveMisplacedTabs() }))));
314
+ const TabsContainer = this.isNavigationMode ? 'nav' : 'div';
315
+ return (h(Host, { key: '0d2ce5c335e58aeb6231ad4d63a44324eb35f54a', "data-version": version }, h("div", { key: 'd8b0ad389fd4ba8010c7816472373d6a8d4a3aa4', class: "tabs-wrapper", part: "post-tabs" }, h(TabsContainer, { key: 'fd8ae3c19f12138936a39028f117aec1d41ea992', class: "tabs", role: this.isNavigationMode ? undefined : 'tablist', "aria-label": this.isNavigationMode ? this.label : undefined }, h("slot", { key: '3148c5c8f508a6c3f2daab075f8ab2d91c567343', onSlotchange: () => {
316
+ this.moveMisplacedTabs();
317
+ this.enableTabs();
318
+ } }))), !this.isNavigationMode && (h("div", { key: '4ea329e77c108dd2b25db6efa116a68a3a415af6', class: "tab-content", part: "post-tabs-content" }, h("slot", { key: '28efc229a3f3f6f4f9cee157ff453c860c5ffa9e', name: "panels", onSlotchange: () => this.moveMisplacedPanels() })))));
171
319
  }
172
320
  get host() { return this; }
321
+ static get watchers() { return {
322
+ "label": ["validateLabel"]
323
+ }; }
173
324
  static get style() { return postTabsCss; }
174
325
  }, [1, "post-tabs", {
175
- "activePanel": [1, "active-panel"],
326
+ "activeTab": [1, "active-tab"],
176
327
  "fullWidth": [516, "full-width"],
328
+ "label": [513],
329
+ "isNavigationMode": [32],
177
330
  "show": [64]
331
+ }, undefined, {
332
+ "label": ["validateLabel"]
178
333
  }]);
179
334
  function defineCustomElement$1() {
180
335
  if (typeof customElements === "undefined") {
@@ -1,54 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { v as version } from './package.js';
3
-
4
- const postTogglebuttonCss = ":host{cursor:pointer;outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:focus-visible){outline-color:Highlight !important}}:host([aria-pressed=true]) ::slotted([data-showwhen=untoggled]){display:none}:host([aria-pressed=false]) ::slotted([data-showwhen=toggled]){display:none}";
5
-
6
- const PostTogglebutton$1 = /*@__PURE__*/ proxyCustomElement(class PostTogglebutton extends HTMLElement {
7
- constructor() {
8
- super();
9
- this.__registerHost();
10
- this.__attachShadow();
11
- /**
12
- * If `true`, the button is in the "on" state, otherwise it is in the "off" state.
13
- */
14
- this.toggled = false;
15
- this.handleClick = () => {
16
- this.toggled = !this.toggled;
17
- };
18
- this.handleKeydown = (event) => {
19
- // perform a click when enter or spaced are pressed to mimic the button behavior
20
- if (event.key === 'Enter' || event.key === ' ') {
21
- event.preventDefault(); // prevents the page from scrolling when space is pressed
22
- this.host.click();
23
- }
24
- };
25
- }
26
- componentWillLoad() {
27
- // add event listener to not override listener that might be set on the host
28
- this.host.addEventListener('click', () => this.handleClick());
29
- this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
30
- }
31
- render() {
32
- return (h(Host, { key: 'f56832bfbfacc23923ac06d8455fffcdafa8a7ec', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: '7adc9ed579b6badeb08c7599ceb95892d68f027f' })));
33
- }
34
- get host() { return this; }
35
- static get style() { return postTogglebuttonCss; }
36
- }, [1, "post-togglebutton", {
37
- "toggled": [1028]
38
- }]);
39
- function defineCustomElement$1() {
40
- if (typeof customElements === "undefined") {
41
- return;
42
- }
43
- const components = ["post-togglebutton"];
44
- components.forEach(tagName => { switch (tagName) {
45
- case "post-togglebutton":
46
- if (!customElements.get(tagName)) {
47
- customElements.define(tagName, PostTogglebutton$1);
48
- }
49
- break;
50
- } });
51
- }
1
+ import { P as PostTogglebutton$1, d as defineCustomElement$1 } from './post-togglebutton2.js';
52
2
 
53
3
  const PostTogglebutton = PostTogglebutton$1;
54
4
  const defineCustomElement = defineCustomElement$1;
@@ -0,0 +1,53 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { v as version } from './package.js';
3
+
4
+ const postTogglebuttonCss = ":host{cursor:pointer;outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host(:focus-visible){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:focus-visible){outline-color:Highlight !important}}:host([aria-pressed=true]) ::slotted([data-showwhen=untoggled]){display:none}:host([aria-pressed=false]) ::slotted([data-showwhen=toggled]){display:none}";
5
+
6
+ const PostTogglebutton = /*@__PURE__*/ proxyCustomElement(class PostTogglebutton extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.__attachShadow();
11
+ /**
12
+ * If `true`, the button is in the "on" state, otherwise it is in the "off" state.
13
+ */
14
+ this.toggled = false;
15
+ this.handleClick = () => {
16
+ this.toggled = !this.toggled;
17
+ };
18
+ this.handleKeydown = (event) => {
19
+ // perform a click when enter or spaced are pressed to mimic the button behavior
20
+ if (event.key === 'Enter' || event.key === ' ') {
21
+ event.preventDefault(); // prevents the page from scrolling when space is pressed
22
+ this.host.click();
23
+ }
24
+ };
25
+ }
26
+ componentWillLoad() {
27
+ // add event listener to not override listener that might be set on the host
28
+ this.host.addEventListener('click', () => this.handleClick());
29
+ this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
30
+ }
31
+ render() {
32
+ return (h(Host, { key: 'a526ab3b0ae14c93bb4e1a8dc6d3ded4ff1bf014', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: 'e8a5bdd99d9270cfcf014306a8d7fe8a2b6b79ba' })));
33
+ }
34
+ get host() { return this; }
35
+ static get style() { return postTogglebuttonCss; }
36
+ }, [1, "post-togglebutton", {
37
+ "toggled": [1028]
38
+ }]);
39
+ function defineCustomElement() {
40
+ if (typeof customElements === "undefined") {
41
+ return;
42
+ }
43
+ const components = ["post-togglebutton"];
44
+ components.forEach(tagName => { switch (tagName) {
45
+ case "post-togglebutton":
46
+ if (!customElements.get(tagName)) {
47
+ customElements.define(tagName, PostTogglebutton);
48
+ }
49
+ break;
50
+ } });
51
+ }
52
+
53
+ export { PostTogglebutton as P, defineCustomElement as d };
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { I as IS_BROWSER } from './breakpoints.js';
3
- import { e as checkEmptyOrType } from './index2.js';
2
+ import { I as IS_BROWSER } from './environment.js';
3
+ import { e as checkEmptyOrType } from './breakpoints.js';
4
4
  import { v as version } from './package.js';
5
5
  import { i as isFocusable } from './focusable.js';
6
6
 
@@ -173,7 +173,7 @@ const PostTooltipTrigger$1 = /*@__PURE__*/ proxyCustomElement(class PostTooltipT
173
173
  this.tooltip?.hide();
174
174
  }
175
175
  render() {
176
- return (h(Host, { key: 'e545db2bc489025c51e51f680f4139b508ef09f8', "data-version": version }, h("slot", { key: '90abc548bccbc51d233001c98d289fd60599c482', onSlotchange: () => this.handleSlotChange() })));
176
+ return (h(Host, { key: '272df9fbda27a695e083a71e7740dd6c8c3afb2d', "data-version": version }, h("slot", { key: '616b48a7dcbe591f4490aa8ec41abf43c17259bb', onSlotchange: () => this.handleSlotChange() })));
177
177
  }
178
178
  get host() { return this; }
179
179
  static get watchers() { return {
@@ -1,10 +1,9 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { v as version } from './package.js';
3
- import { d as checkEmptyOrOneOf } from './index2.js';
4
- import './breakpoints.js';
3
+ import { d as checkEmptyOrOneOf } from './breakpoints.js';
5
4
  import { a as PLACEMENT_TYPES, d as defineCustomElement$2 } from './post-popovercontainer2.js';
6
5
 
7
- const postTooltipCss = ":host{display:none}:host([open]){display:contents}post-popovercontainer[arrow]::after{position:absolute;content:\"\";inset:-13px;z-index:-1}post-popovercontainer>div{color:var(--post-current-fg);background-color:var(--post-current-bg);padding:var(--post-core-dimension-4) var(--post-core-dimension-8);max-width:280px;min-height:32px;word-wrap:break-word;white-space:normal}";
6
+ const postTooltipCss = ":host{display:none}:host([open]){display:contents}post-popovercontainer[arrow]::after{position:absolute;content:\"\";inset:-13px;z-index:-1}post-popovercontainer>div{color:var(--post-current-fg);background-color:var(--post-current-bg);padding:var(--post-core-dimension-4) var(--post-core-dimension-8);max-width:var(--post-tooltip-max-width, 280px);width:inherit;min-height:32px;word-wrap:break-word;white-space:normal}";
8
7
 
9
8
  const PostTooltip$1 = /*@__PURE__*/ proxyCustomElement(class PostTooltip extends HTMLElement {
10
9
  constructor() {
@@ -71,7 +70,7 @@ const PostTooltip$1 = /*@__PURE__*/ proxyCustomElement(class PostTooltip extends
71
70
  }
72
71
  render() {
73
72
  const popoverClass = `${this.arrow ? 'has-arrow' : ''}`;
74
- return (h(Host, { key: '0755eeba6f7be3cd0d94138369355df9767ca541', "data-version": version }, h("post-popovercontainer", { key: '1e1d71a4878e60f9e20b34b5f12588e09a8c7716', safeSpace: "trapezoid", class: popoverClass, role: "tooltip", arrow: this.arrow, animation: this.animation, placement: this.placement, onPostToggle: e => this.handleToggle(e), ref: (el) => (this.popoverRef = el) }, h("slot", { key: '25a69d406a91cb0ba8d4c5fadee44d937c84a266' }))));
73
+ return (h(Host, { key: 'a9ce457973507a7cd05edb774c84c769ba11bcce', "data-version": version }, h("post-popovercontainer", { key: '8fa8c699ddccd7d46f240992ab1d7e515637cab5', safeSpace: "trapezoid", class: popoverClass, role: "tooltip", arrow: this.arrow, animation: this.animation, placement: this.placement, onPostToggle: e => this.handleToggle(e), ref: (el) => (this.popoverRef = el) }, h("slot", { key: '2ce3408b95a511b9c3c91905fff7142b3598fc55' }))));
75
74
  }
76
75
  get host() { return this; }
77
76
  static get watchers() { return {
@@ -1,4 +1,4 @@
1
- const globalStyles = ":where(post-accordion,post-accordion-item,post-avatar,post-back-to-top,post-banner,post-breadcrumb-item,post-breadcrumbs,post-card-control,post-closebutton,post-collapsible,post-collapsible-trigger,post-footer,post-header,post-icon,post-language-option,post-language-switch,post-linkarea,post-list,post-list-item,post-logo,post-mainnavigation,post-megadropdown,post-megadropdown-trigger,post-menu,post-menu-item,post-menu-trigger,post-popover,post-popover-trigger,post-popovercontainer,post-rating,post-tab-header,post-tab-panel,post-tabs,post-togglebutton,post-tooltip,post-tooltip-trigger):not([data-hydrated],:defined){visibility:hidden}";
1
+ const globalStyles = ":where(post-accordion,post-accordion-item,post-avatar,post-back-to-top,post-banner,post-breadcrumb-item,post-breadcrumbs,post-card-control,post-closebutton,post-collapsible,post-collapsible-trigger,post-footer,post-header,post-icon,post-language-menu,post-language-menu-item,post-linkarea,post-logo,post-mainnavigation,post-megadropdown,post-megadropdown-trigger,post-menu,post-menu-item,post-menu-trigger,post-pagination,post-popover,post-popover-trigger,post-popovercontainer,post-rating,post-stepper,post-stepper-item,post-tab-item,post-tab-panel,post-tabs,post-togglebutton,post-tooltip,post-tooltip-trigger):not([data-hydrated],:defined){visibility:hidden}";
2
2
 
3
3
  const NAMESPACE = 'post-components';
4
4
  const BUILD = /* post-components */ { hydratedSelectorName: "data-hydrated", lazyLoad: false, slotRelocation: true, updatable: true};