@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
@@ -0,0 +1,86 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { version } from "../../../../package";
3
+ import { checkRequiredAndType } from "../../utils/index";
4
+ import { nanoid } from "nanoid";
5
+ /**
6
+ * @slot default - Slot for the content of the tab item. Can contain text or an <a> element for navigation mode.
7
+ */
8
+ export class PostTabItem {
9
+ constructor() {
10
+ this.mutationObserver = new MutationObserver(this.checkNavigationMode.bind(this));
11
+ this.isNavigationMode = false;
12
+ }
13
+ validateName() {
14
+ checkRequiredAndType(this, 'name', 'string');
15
+ }
16
+ connectedCallback() {
17
+ this.mutationObserver.observe(this.host, {
18
+ childList: true,
19
+ subtree: true,
20
+ });
21
+ }
22
+ componentWillLoad() {
23
+ this.tabId = `tab-${this.host.id || nanoid(6)}`;
24
+ this.checkNavigationMode();
25
+ }
26
+ disconnectedCallback() {
27
+ if (this.mutationObserver) {
28
+ this.mutationObserver.disconnect();
29
+ }
30
+ }
31
+ checkNavigationMode() {
32
+ const hasAnchor = this.host.querySelector('a') !== null;
33
+ this.isNavigationMode = hasAnchor;
34
+ }
35
+ render() {
36
+ 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' })));
37
+ }
38
+ static get is() { return "post-tab-item"; }
39
+ static get encapsulation() { return "shadow"; }
40
+ static get originalStyleUrls() {
41
+ return {
42
+ "$": ["post-tab-item.scss"]
43
+ };
44
+ }
45
+ static get styleUrls() {
46
+ return {
47
+ "$": ["post-tab-item.css"]
48
+ };
49
+ }
50
+ static get properties() {
51
+ return {
52
+ "name": {
53
+ "type": "string",
54
+ "attribute": "name",
55
+ "mutable": false,
56
+ "complexType": {
57
+ "original": "string",
58
+ "resolved": "string",
59
+ "references": {}
60
+ },
61
+ "required": true,
62
+ "optional": false,
63
+ "docs": {
64
+ "tags": [],
65
+ "text": "The name of the tab, used to associate it with a tab panel or identify the active tab in panel mode."
66
+ },
67
+ "getter": false,
68
+ "setter": false,
69
+ "reflect": true
70
+ }
71
+ };
72
+ }
73
+ static get states() {
74
+ return {
75
+ "tabId": {},
76
+ "isNavigationMode": {}
77
+ };
78
+ }
79
+ static get elementRef() { return "host"; }
80
+ static get watchers() {
81
+ return [{
82
+ "propName": "name",
83
+ "methodName": "validateName"
84
+ }];
85
+ }
86
+ }
@@ -6,16 +6,16 @@ import { checkRequiredAndType } from "../../utils/index";
6
6
  * @slot default - Slot for placing the content of the tab panel.
7
7
  */
8
8
  export class PostTabPanel {
9
- validateName() {
10
- checkRequiredAndType(this, 'name', 'string');
9
+ validateFor() {
10
+ checkRequiredAndType(this, 'for', 'string');
11
11
  }
12
12
  componentWillLoad() {
13
- this.validateName();
13
+ this.validateFor();
14
14
  // get the id set on the host element or use a random id by default
15
15
  this.panelId = `panel-${this.host.id || nanoid(6)}`;
16
16
  }
17
17
  render() {
18
- return (h(Host, { key: 'f00d9caf4324fc2d750d7844ca6ddc8198aef0c0', "data-version": version, id: this.panelId, role: "tabpanel" }, h("slot", { key: '58f2eaf91aee7897039a151e117d9b9fc948162a' })));
18
+ return (h(Host, { key: 'dcb273fbc2a98c39813a152cd4a7e50bc86d0004', "data-version": version, id: this.panelId, role: "tabpanel", slot: "panels" }, h("slot", { key: 'c3f13a3b062c53c87b303f57ee267a6ce24c54c8' })));
19
19
  }
20
20
  static get is() { return "post-tab-panel"; }
21
21
  static get encapsulation() { return "shadow"; }
@@ -31,9 +31,9 @@ export class PostTabPanel {
31
31
  }
32
32
  static get properties() {
33
33
  return {
34
- "name": {
34
+ "for": {
35
35
  "type": "string",
36
- "attribute": "name",
36
+ "attribute": "for",
37
37
  "mutable": false,
38
38
  "complexType": {
39
39
  "original": "string",
@@ -44,7 +44,7 @@ export class PostTabPanel {
44
44
  "optional": false,
45
45
  "docs": {
46
46
  "tags": [],
47
- "text": "The name of the panel, used to associate it with a tab header."
47
+ "text": "The name of the tab that this panel is associated with."
48
48
  },
49
49
  "getter": false,
50
50
  "setter": false,
@@ -60,8 +60,8 @@ export class PostTabPanel {
60
60
  static get elementRef() { return "host"; }
61
61
  static get watchers() {
62
62
  return [{
63
- "propName": "name",
64
- "methodName": "validateName"
63
+ "propName": "for",
64
+ "methodName": "validateFor"
65
65
  }];
66
66
  }
67
67
  }
@@ -1,52 +1,172 @@
1
- import { h, Host } from "@stencil/core";
1
+ import { h, Host, } from "@stencil/core";
2
2
  import { version } from "../../../../package";
3
- import { fadeIn, fadeOut } from "../../animations/index";
4
- import { componentOnReady } from "../../utils/index";
3
+ import { fade } from "../../animations/index";
4
+ import { componentOnReady, checkRequiredAndType } from "../../utils/index";
5
5
  /**
6
- * @slot tabs - Slot for placing tab headers. Each tab header should be a <post-tab-header> element.
7
- * @slot default - Slot for placing tab panels. Each tab panel should be a <post-tab-panel> element.
8
- * @part tabs - The container element that holds the set of tabs.
9
- * @part content - The container element that displays the content of the currently active tab.
6
+ * @slot default - Slot for placing tab items. Each tab item should be a <post-tab-item> element.
7
+ * @slot panels - Slot for placing tab panels. Each tab panel should be a <post-tab-panel> element.
8
+ * @part post-tabs - The container element that holds the set of tabs.
9
+ * @part post-tabs-content - The container element that displays the content of the currently active tab. Only available in panels mode.
10
10
  */
11
11
  export class PostTabs {
12
12
  constructor() {
13
13
  this.isLoaded = false;
14
+ this.isNavigationMode = false;
14
15
  /**
15
16
  * When set to true, this property allows the tabs container to span the
17
+ * Changing this value after initialization has no effect.
16
18
  * full width of the screen, from edge to edge.
17
19
  */
18
20
  this.fullWidth = false;
19
21
  }
20
22
  get tabs() {
21
- return Array.from(this.host.querySelectorAll('post-tab-header')).filter(tab => tab.closest('post-tabs') === this.host);
23
+ return Array.from(this.host.querySelectorAll('post-tab-item')).filter(tab => tab.closest('post-tabs') === this.host);
24
+ }
25
+ get panels() {
26
+ return Array.from(this.host.querySelectorAll('post-tab-panel')).filter(panel => panel.closest('post-tabs') === this.host);
27
+ }
28
+ validateLabel() {
29
+ if (this.isNavigationMode) {
30
+ checkRequiredAndType(this, 'label', 'string');
31
+ }
32
+ }
33
+ componentWillRender() {
34
+ this.detectMode();
22
35
  }
23
36
  componentDidLoad() {
24
37
  this.moveMisplacedTabs();
38
+ this.moveMisplacedPanels();
25
39
  this.enableTabs();
26
- const initiallyActivePanel = this.activePanel || this.tabs[0]?.panel;
27
- void this.show(initiallyActivePanel);
28
- this.isLoaded = true;
40
+ this.setupContentObserver();
41
+ this.validateLabel();
42
+ if (this.isNavigationMode) {
43
+ const activeTab = this.findActiveNavigationTab();
44
+ if (activeTab) {
45
+ this.activateTab(activeTab);
46
+ }
47
+ }
48
+ else {
49
+ const tabToActivate = this.activeTab || this.tabs[0]?.name;
50
+ if (tabToActivate) {
51
+ void this.show(tabToActivate);
52
+ }
53
+ }
54
+ }
55
+ disconnectedCallback() {
56
+ if (this.showing) {
57
+ this.showing.cancel();
58
+ this.showing = null;
59
+ }
60
+ if (this.hiding) {
61
+ this.hiding.cancel();
62
+ this.hiding = null;
63
+ }
64
+ if (this.contentObserver) {
65
+ this.contentObserver.disconnect();
66
+ }
67
+ }
68
+ setupContentObserver() {
69
+ const config = {
70
+ childList: true,
71
+ subtree: true,
72
+ attributes: true,
73
+ attributeFilter: ['data-navigation-mode', 'aria-current'],
74
+ };
75
+ this.contentObserver = new MutationObserver(this.handleContentChange.bind(this));
76
+ this.contentObserver.observe(this.host, config);
77
+ }
78
+ handleContentChange(mutations) {
79
+ const shouldRedetect = this.shouldRedetectMode(mutations);
80
+ const ariaCurrentChanged = this.hasAriaCurrentChanged(mutations);
81
+ if (ariaCurrentChanged && this.isNavigationMode) {
82
+ this.updateActiveNavigationTab();
83
+ }
84
+ if (shouldRedetect) {
85
+ this.handleModeChange();
86
+ }
87
+ }
88
+ shouldRedetectMode(mutations) {
89
+ return mutations.some(mutation => {
90
+ if (mutation.type === 'childList') {
91
+ return mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0;
92
+ }
93
+ if (mutation.type === 'attributes' && mutation.attributeName === 'data-navigation-mode') {
94
+ return true;
95
+ }
96
+ return false;
97
+ });
98
+ }
99
+ hasAriaCurrentChanged(mutations) {
100
+ return mutations.some(mutation => mutation.type === 'attributes' && mutation.attributeName === 'aria-current');
101
+ }
102
+ updateActiveNavigationTab() {
103
+ const activeTab = this.findActiveNavigationTab();
104
+ if (activeTab && activeTab !== this.currentActiveTab) {
105
+ this.activateTab(activeTab);
106
+ }
107
+ }
108
+ handleModeChange() {
109
+ const previousMode = this.isNavigationMode;
110
+ this.detectMode();
111
+ if (previousMode !== this.isNavigationMode) {
112
+ this.enableTabs();
113
+ this.initializeActiveTab();
114
+ }
115
+ }
116
+ initializeActiveTab() {
117
+ if (this.isNavigationMode) {
118
+ const activeTab = this.findActiveNavigationTab();
119
+ if (activeTab) {
120
+ this.activateTab(activeTab);
121
+ }
122
+ }
123
+ else {
124
+ const tabToActivate = this.activeTab || this.tabs[0]?.name;
125
+ if (tabToActivate) {
126
+ void this.show(tabToActivate);
127
+ }
128
+ }
129
+ }
130
+ detectMode() {
131
+ // Check for navigation mode by looking for anchor elements in tabs
132
+ // This works even before post-tab-item sets data-navigation-mode attribute
133
+ const hasNavigationTabs = this.tabs.some(tab => {
134
+ const hasAnchor = tab.querySelector('a') !== null;
135
+ const navModeAttr = tab.getAttribute('data-navigation-mode') === 'true';
136
+ return hasAnchor || navModeAttr;
137
+ });
138
+ const hasPanels = this.panels.length > 0;
139
+ if (hasNavigationTabs && hasPanels) {
140
+ 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.');
141
+ }
142
+ this.isNavigationMode = hasNavigationTabs;
143
+ }
144
+ findActiveNavigationTab() {
145
+ return (this.tabs.find(tab => {
146
+ const anchor = tab.querySelector('a[aria-current="page"]');
147
+ return anchor !== null;
148
+ }) || null);
29
149
  }
30
150
  /**
31
151
  * Shows the panel with the given name and selects its associated tab.
32
152
  * Any other panel that was previously shown becomes hidden and its associated tab is unselected.
33
153
  */
34
- async show(panelName) {
154
+ async show(tabName) {
35
155
  // do nothing if the tab is already active
36
- if (panelName === this.activeTab?.panel) {
156
+ if (tabName === this.currentActiveTab?.name) {
37
157
  return;
38
158
  }
39
- const previousTab = this.activeTab;
40
- const newTab = this.host.querySelector(`post-tab-header[panel=${panelName}]`);
159
+ const previousTab = this.currentActiveTab;
160
+ const newTab = this.host.querySelector(`post-tab-item[name=${tabName}]`);
41
161
  this.activateTab(newTab);
42
162
  // if a panel is currently being displayed, remove it from the view and complete the associated animation
43
163
  if (this.showing) {
44
- this.showing.effect['target'].style.display = 'none';
45
164
  this.showing.finish();
165
+ this.showing = null;
46
166
  }
47
167
  // hide the currently visible panel only if no other animation is running
48
168
  if (previousTab && !this.showing && !this.hiding)
49
- this.hidePanel(previousTab.panel);
169
+ this.hidePanel(previousTab.name);
50
170
  // wait for any hiding animation to complete before showing the selected tab
51
171
  if (this.hiding)
52
172
  await this.hiding.finished;
@@ -55,15 +175,25 @@ export class PostTabs {
55
175
  if (this.showing)
56
176
  await this.showing.finished;
57
177
  if (this.isLoaded)
58
- this.postChange.emit(this.activeTab.panel);
178
+ this.postChange.emit(this.currentActiveTab.name);
59
179
  }
60
180
  moveMisplacedTabs() {
61
181
  if (!this.tabs)
62
182
  return;
63
183
  this.tabs.forEach(tab => {
64
- if (tab.getAttribute('slot') === 'tabs')
65
- return;
66
- tab.setAttribute('slot', 'tabs');
184
+ // Tab items should go in the default slot, so remove any slot attribute
185
+ if (tab.getAttribute('slot')) {
186
+ tab.removeAttribute('slot');
187
+ }
188
+ });
189
+ }
190
+ moveMisplacedPanels() {
191
+ if (!this.panels)
192
+ return;
193
+ this.panels.forEach(panel => {
194
+ if (panel.getAttribute('slot') !== 'panels') {
195
+ panel.setAttribute('slot', 'panels');
196
+ }
67
197
  });
68
198
  }
69
199
  enableTabs() {
@@ -71,19 +201,25 @@ export class PostTabs {
71
201
  return;
72
202
  this.tabs.forEach(async (tab) => {
73
203
  await componentOnReady(tab);
74
- // if the tab has an "aria-controls" attribute it was already linked to its panel: do nothing
204
+ // In navigation mode, navigation is handled by the consumer's routing
205
+ if (this.isNavigationMode) {
206
+ return;
207
+ }
208
+ // Panel mode: set up ARIA relationships and event handlers
75
209
  if (tab.getAttribute('aria-controls'))
76
210
  return;
77
- const tabPanel = this.getPanel(tab.panel);
78
- tab.setAttribute('aria-controls', tabPanel.id);
79
- tabPanel.setAttribute('aria-labelledby', tab.id);
211
+ const tabPanel = this.getPanel(tab.name);
212
+ if (tabPanel) {
213
+ tab.setAttribute('aria-controls', tabPanel.id);
214
+ tabPanel.setAttribute('aria-labelledby', tab.id);
215
+ }
80
216
  tab.addEventListener('click', () => {
81
- void this.show(tab.panel);
217
+ void this.show(tab.name);
82
218
  });
83
219
  tab.addEventListener('keydown', (e) => {
84
220
  if (e.key === 'Enter' || e.key === ' ') {
85
221
  e.preventDefault();
86
- void this.show(tab.panel);
222
+ void this.show(tab.name);
87
223
  }
88
224
  });
89
225
  tab.addEventListener('keydown', (e) => {
@@ -92,44 +228,51 @@ export class PostTabs {
92
228
  });
93
229
  });
94
230
  // if the currently active tab was removed from the DOM then select the first one
95
- if (this.activeTab && !this.activeTab.isConnected) {
96
- void this.show(this.tabs[0]?.panel);
231
+ if (this.currentActiveTab && !this.currentActiveTab.isConnected) {
232
+ void this.show(this.tabs[0]?.name);
97
233
  }
98
234
  }
99
235
  activateTab(tab) {
100
- if (this.activeTab) {
101
- this.activeTab.setAttribute('aria-selected', 'false');
102
- this.activeTab.setAttribute('tabindex', '-1');
103
- this.activeTab.classList.remove('active');
236
+ // Deactivate previous tab
237
+ if (this.currentActiveTab) {
238
+ this.currentActiveTab.classList.remove('active');
239
+ if (!this.isNavigationMode) {
240
+ this.currentActiveTab.setAttribute('aria-selected', 'false');
241
+ this.currentActiveTab.setAttribute('tabindex', '-1');
242
+ }
104
243
  }
105
- tab.setAttribute('aria-selected', 'true');
106
- tab.setAttribute('tabindex', '0');
107
244
  tab.classList.add('active');
108
- this.activeTab = tab;
245
+ if (!this.isNavigationMode) {
246
+ tab.setAttribute('aria-selected', 'true');
247
+ tab.setAttribute('tabindex', '0');
248
+ }
249
+ this.currentActiveTab = tab;
109
250
  }
110
251
  hidePanel(panelName) {
111
252
  const previousPanel = this.getPanel(panelName);
112
253
  if (!previousPanel)
113
254
  return;
114
- this.hiding = fadeOut(previousPanel);
255
+ this.hiding = fade(previousPanel, 'out');
115
256
  this.hiding.onfinish = () => {
116
257
  previousPanel.style.display = 'none';
117
258
  this.hiding = null;
118
259
  };
119
260
  }
120
261
  showSelectedPanel() {
121
- const panel = this.getPanel(this.activeTab.panel);
262
+ const panel = this.getPanel(this.currentActiveTab.name);
263
+ if (!panel)
264
+ return;
122
265
  panel.style.display = 'block';
123
266
  // prevent the initially selected panel from fading in
124
267
  if (!this.isLoaded)
125
268
  return;
126
- this.showing = fadeIn(panel);
269
+ this.showing = fade(panel, 'in');
127
270
  this.showing.onfinish = () => {
128
271
  this.showing = null;
129
272
  };
130
273
  }
131
274
  getPanel(name) {
132
- return this.host.querySelector(`post-tab-panel[name=${name}]`);
275
+ return this.host.querySelector(`post-tab-panel[for=${name}]`);
133
276
  }
134
277
  navigateTabs(tab, key) {
135
278
  const activeTabIndex = Array.from(this.tabs).indexOf(tab);
@@ -143,9 +286,14 @@ export class PostTabs {
143
286
  if (!nextTab)
144
287
  return;
145
288
  nextTab.focus();
289
+ void this.show(nextTab.name);
146
290
  }
147
291
  render() {
148
- return (h(Host, { key: 'f3534a3b05c379ce1cb311d4c5ea950c8eba87d0', "data-version": version }, h("div", { key: 'd812db6b2a895504fce8ac9dae2663821b9dd759', class: "tabs-wrapper", part: "tabs" }, h("div", { key: '9abd0ee00204a085ceaebce5e11fcff527273605', class: "tabs", role: "tablist" }, h("slot", { key: '89f09f443ca740dc9af66fedb1367cdb4885074d', name: "tabs", onSlotchange: () => this.enableTabs() }))), h("div", { key: '4a94a19fd67814482934bd31bb219470bea8dec6', class: "tab-content", part: "content" }, h("slot", { key: '44db446865edacb1b1c0fc20ef391adfa189e8cb', onSlotchange: () => this.moveMisplacedTabs() }))));
292
+ const TabsContainer = this.isNavigationMode ? 'nav' : 'div';
293
+ 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: () => {
294
+ this.moveMisplacedTabs();
295
+ this.enableTabs();
296
+ } }))), !this.isNavigationMode && (h("div", { key: '4ea329e77c108dd2b25db6efa116a68a3a415af6', class: "tab-content", part: "post-tabs-content" }, h("slot", { key: '28efc229a3f3f6f4f9cee157ff453c860c5ffa9e', name: "panels", onSlotchange: () => this.moveMisplacedPanels() })))));
149
297
  }
150
298
  static get is() { return "post-tabs"; }
151
299
  static get encapsulation() { return "shadow"; }
@@ -161,25 +309,20 @@ export class PostTabs {
161
309
  }
162
310
  static get properties() {
163
311
  return {
164
- "activePanel": {
312
+ "activeTab": {
165
313
  "type": "string",
166
- "attribute": "active-panel",
314
+ "attribute": "active-tab",
167
315
  "mutable": false,
168
316
  "complexType": {
169
- "original": "HTMLPostTabPanelElement['name']",
317
+ "original": "string",
170
318
  "resolved": "string",
171
- "references": {
172
- "HTMLPostTabPanelElement": {
173
- "location": "global",
174
- "id": "global::HTMLPostTabPanelElement"
175
- }
176
- }
319
+ "references": {}
177
320
  },
178
321
  "required": false,
179
322
  "optional": true,
180
323
  "docs": {
181
324
  "tags": [],
182
- "text": "The name of the panel that is initially shown.\nIf not specified, it defaults to the panel associated with the first tab.\n\n**Changing this value after initialization has no effect.**"
325
+ "text": "The name of the tab in the panel mode that is initially active.\nChanging this value after initialization has no effect.\nIf not specified, defaults to the first tab."
183
326
  },
184
327
  "getter": false,
185
328
  "setter": false,
@@ -198,15 +341,39 @@ export class PostTabs {
198
341
  "optional": false,
199
342
  "docs": {
200
343
  "tags": [],
201
- "text": "When set to true, this property allows the tabs container to span the\nfull width of the screen, from edge to edge."
344
+ "text": "When set to true, this property allows the tabs container to span the\nChanging this value after initialization has no effect.\nfull width of the screen, from edge to edge."
202
345
  },
203
346
  "getter": false,
204
347
  "setter": false,
205
348
  "reflect": true,
206
349
  "defaultValue": "false"
350
+ },
351
+ "label": {
352
+ "type": "string",
353
+ "attribute": "label",
354
+ "mutable": false,
355
+ "complexType": {
356
+ "original": "string",
357
+ "resolved": "string",
358
+ "references": {}
359
+ },
360
+ "required": false,
361
+ "optional": true,
362
+ "docs": {
363
+ "tags": [],
364
+ "text": "The accessible label for the tabs component in navigation mode."
365
+ },
366
+ "getter": false,
367
+ "setter": false,
368
+ "reflect": true
207
369
  }
208
370
  };
209
371
  }
372
+ static get states() {
373
+ return {
374
+ "isNavigationMode": {}
375
+ };
376
+ }
210
377
  static get events() {
211
378
  return [{
212
379
  "method": "postChange",
@@ -216,7 +383,7 @@ export class PostTabs {
216
383
  "composed": true,
217
384
  "docs": {
218
385
  "tags": [],
219
- "text": "An event emitted after the active tab changes, when the fade in transition of its associated panel is finished.\nThe payload is the name of the newly shown panel."
386
+ "text": "An event emitted after the active tab changes, when the fade in transition of its associated panel is finished.\nThe payload is the name of the newly active tab.\nOnly emitted in panel mode."
220
387
  },
221
388
  "complexType": {
222
389
  "original": "string",
@@ -229,9 +396,9 @@ export class PostTabs {
229
396
  return {
230
397
  "show": {
231
398
  "complexType": {
232
- "signature": "(panelName: string) => Promise<void>",
399
+ "signature": "(tabName: string) => Promise<void>",
233
400
  "parameters": [{
234
- "name": "panelName",
401
+ "name": "tabName",
235
402
  "type": "string",
236
403
  "docs": ""
237
404
  }],
@@ -240,9 +407,9 @@ export class PostTabs {
240
407
  "location": "global",
241
408
  "id": "global::Promise"
242
409
  },
243
- "HTMLPostTabHeaderElement": {
410
+ "HTMLPostTabItemElement": {
244
411
  "location": "global",
245
- "id": "global::HTMLPostTabHeaderElement"
412
+ "id": "global::HTMLPostTabItemElement"
246
413
  }
247
414
  },
248
415
  "return": "Promise<void>"
@@ -255,4 +422,10 @@ export class PostTabs {
255
422
  };
256
423
  }
257
424
  static get elementRef() { return "host"; }
425
+ static get watchers() {
426
+ return [{
427
+ "propName": "label",
428
+ "methodName": "validateLabel"
429
+ }];
430
+ }
258
431
  }
@@ -26,7 +26,7 @@ export class PostTogglebutton {
26
26
  this.host.addEventListener('keydown', (e) => this.handleKeydown(e));
27
27
  }
28
28
  render() {
29
- return (h(Host, { key: 'ecd5772b09be8842e5c6fc3bf34932b27d90c533', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: '3bb32b33155e71ced9375afb5a26d1d4e63a83c8' })));
29
+ return (h(Host, { key: 'a526ab3b0ae14c93bb4e1a8dc6d3ded4ff1bf014', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: 'e8a5bdd99d9270cfcf014306a8d7fe8a2b6b79ba' })));
30
30
  }
31
31
  static get is() { return "post-togglebutton"; }
32
32
  static get encapsulation() { return "shadow"; }
@@ -64,7 +64,7 @@ export class PostTooltip {
64
64
  }
65
65
  render() {
66
66
  const popoverClass = `${this.arrow ? 'has-arrow' : ''}`;
67
- return (h(Host, { key: 'ebc25bd8a9615a13be82d58f246b5a5d42113cf2', "data-version": version }, h("post-popovercontainer", { key: 'dba7a96c1f354752475a6f1d9116b0097dddf320', 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: '537370b88912d323a72ee074767b4cf2b4bc1b57' }))));
67
+ 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' }))));
68
68
  }
69
69
  static get is() { return "post-tooltip"; }
70
70
  static get encapsulation() { return "shadow"; }
@@ -169,7 +169,7 @@ export class PostTooltipTrigger {
169
169
  this.tooltip?.hide();
170
170
  }
171
171
  render() {
172
- return (h(Host, { key: '48246523aabaf1851e05d0273346d3e26e7ad866', "data-version": version }, h("slot", { key: '0442aeadddd59642c317b6f10c93008adf3e6585', onSlotchange: () => this.handleSlotChange() })));
172
+ return (h(Host, { key: '272df9fbda27a695e083a71e7740dd6c8c3afb2d', "data-version": version }, h("slot", { key: '616b48a7dcbe591f4490aa8ec41abf43c17259bb', onSlotchange: () => this.handleSlotChange() })));
173
173
  }
174
174
  static get is() { return "post-tooltip-trigger"; }
175
175
  static get encapsulation() { return "shadow"; }