@swisspost/design-system-components 10.0.0-next.72 → 10.0.0-next.76

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 (365) hide show
  1. package/dist/cjs/{create-validator-decorator-Bnx17kwi.js → create-validator-decorator-4dRrOF30.js} +1 -1
  2. package/dist/cjs/{index-ngUOBQot.js → index-BqngpwGa.js} +56 -15
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{one-of-BHyX4vYq.js → one-of-D1veqtsm.js} +1 -1
  5. package/dist/cjs/{package-Bi-tiNRc.js → package-B0PdQ0Dm.js} +1 -1
  6. package/dist/cjs/{pattern-BgBx5zGQ.js → pattern-B7VKOu5m.js} +1 -1
  7. package/dist/cjs/post-accordion_2.cjs.entry.js +10 -12
  8. package/dist/cjs/post-autocomplete.cjs.entry.js +6 -6
  9. package/dist/cjs/post-avatar.cjs.entry.js +7 -7
  10. package/dist/cjs/post-back-to-top.cjs.entry.js +6 -6
  11. package/dist/cjs/post-banner.cjs.entry.js +6 -6
  12. package/dist/cjs/post-breadcrumb-item.cjs.entry.js +8 -8
  13. package/dist/cjs/post-breadcrumbs.cjs.entry.js +9 -11
  14. package/dist/cjs/post-closebutton_14.cjs.entry.js +86 -62
  15. package/dist/cjs/post-collapsible_2.cjs.entry.js +6 -6
  16. package/dist/cjs/post-components.cjs.js +2 -2
  17. package/dist/cjs/post-date-picker.cjs.entry.js +427 -257
  18. package/dist/cjs/post-footer.cjs.entry.js +6 -6
  19. package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
  20. package/dist/cjs/post-listbox-option.cjs.entry.js +4 -4
  21. package/dist/cjs/post-listbox.cjs.entry.js +3 -3
  22. package/dist/cjs/post-number-input.cjs.entry.js +6 -5
  23. package/dist/cjs/post-pagination.cjs.entry.js +15 -10
  24. package/dist/cjs/post-popover-trigger.cjs.entry.js +5 -5
  25. package/dist/cjs/post-popover.cjs.entry.js +11 -12
  26. package/dist/cjs/post-progressbar.cjs.entry.js +4 -4
  27. package/dist/cjs/post-rating.cjs.entry.js +6 -6
  28. package/dist/cjs/post-side-navigation-trigger.cjs.entry.js +109 -0
  29. package/dist/cjs/post-side-navigation.cjs.entry.js +140 -0
  30. package/dist/cjs/post-stepper-item.cjs.entry.js +4 -4
  31. package/dist/cjs/post-stepper.cjs.entry.js +9 -7
  32. package/dist/cjs/post-tab-item.cjs.entry.js +15 -14
  33. package/dist/cjs/post-tab-panel.cjs.entry.js +6 -6
  34. package/dist/cjs/post-tabs.cjs.entry.js +196 -74
  35. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +7 -9
  36. package/dist/cjs/post-tooltip.cjs.entry.js +9 -10
  37. package/dist/cjs/{required-lRDOdbd6.js → required-Bkz8MOYa.js} +1 -1
  38. package/dist/cjs/{type-shT641Eo.js → type-D8eD1JMd.js} +1 -1
  39. package/dist/cjs/{url-DRUMqVBq.js → url-C7MnIIZ_.js} +1 -1
  40. package/dist/collection/collection-manifest.json +3 -2
  41. package/dist/collection/components/post-accordion/post-accordion.js +1 -1
  42. package/dist/collection/components/post-accordion-item/post-accordion-item.js +4 -36
  43. package/dist/collection/components/post-autocomplete/post-autocomplete.js +1 -1
  44. package/dist/collection/components/post-avatar/post-avatar.js +1 -1
  45. package/dist/collection/components/post-back-to-top/post-back-to-top.js +1 -1
  46. package/dist/collection/components/post-banner/post-banner.css +2 -2
  47. package/dist/collection/components/post-banner/post-banner.js +1 -1
  48. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -1
  49. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -1
  50. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +2 -4
  51. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
  52. package/dist/collection/components/post-closebutton/post-closebutton.js +22 -11
  53. package/dist/collection/components/post-closebutton/types.js +1 -1
  54. package/dist/collection/components/post-collapsible/post-collapsible.js +1 -1
  55. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +1 -1
  56. package/dist/collection/components/post-date-picker/accessibility-utils.js +59 -0
  57. package/dist/collection/components/post-date-picker/date-utils.js +102 -0
  58. package/dist/collection/components/post-date-picker/native-mask-element.js +36 -0
  59. package/dist/collection/components/post-date-picker/post-date-picker.css +1 -1
  60. package/dist/collection/components/post-date-picker/post-date-picker.js +224 -301
  61. package/dist/collection/components/post-footer/post-footer.js +1 -1
  62. package/dist/collection/components/post-header/post-header.css +1 -1
  63. package/dist/collection/components/post-header/post-header.js +13 -11
  64. package/dist/collection/components/post-icon/post-icon.js +1 -1
  65. package/dist/collection/components/post-language-menu/post-language-menu.css +1 -1
  66. package/dist/collection/components/post-language-menu/post-language-menu.js +7 -5
  67. package/dist/collection/components/post-language-menu-item/post-language-menu-item.css +1 -1
  68. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  69. package/dist/collection/components/post-listbox/post-listbox.js +1 -1
  70. package/dist/collection/components/post-listbox-option/post-listbox-option.js +2 -2
  71. package/dist/collection/components/post-logo/post-logo.js +1 -1
  72. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +1 -1
  73. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  74. package/dist/collection/components/post-megadropdown/post-megadropdown.js +1 -1
  75. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -1
  76. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +1 -1
  77. package/dist/collection/components/post-menu/post-menu.css +1 -1
  78. package/dist/collection/components/post-menu/post-menu.js +9 -12
  79. package/dist/collection/components/post-menu-item/post-menu-item.css +1 -1
  80. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
  81. package/dist/collection/components/post-number-input/post-number-input.css +1 -1
  82. package/dist/collection/components/post-number-input/post-number-input.js +3 -2
  83. package/dist/collection/components/post-pagination/post-pagination.css +1 -1
  84. package/dist/collection/components/post-pagination/post-pagination.js +11 -5
  85. package/dist/collection/components/post-popover/post-popover.js +12 -22
  86. package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +1 -1
  87. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  88. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +17 -12
  89. package/dist/collection/components/post-progressbar/post-progressbar.js +1 -1
  90. package/dist/collection/components/post-rating/post-rating.js +1 -1
  91. package/dist/collection/components/post-side-navigation/post-side-navigation.css +1 -0
  92. package/dist/collection/components/post-side-navigation/post-side-navigation.js +267 -0
  93. package/dist/collection/components/post-side-navigation/side-navigation-styles.js +1 -0
  94. package/dist/collection/components/post-side-navigation-trigger/post-side-navigation-trigger.css +1 -0
  95. package/dist/collection/components/post-side-navigation-trigger/post-side-navigation-trigger.js +154 -0
  96. package/dist/collection/components/post-stepper/post-stepper.js +3 -1
  97. package/dist/collection/components/post-stepper-item/post-stepper-item.css +1 -1
  98. package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
  99. package/dist/collection/components/post-tab-item/post-tab-item.js +36 -19
  100. package/dist/collection/components/post-tab-panel/post-tab-panel.js +3 -2
  101. package/dist/collection/components/post-tabs/post-tabs.css +1 -1
  102. package/dist/collection/components/post-tabs/post-tabs.js +255 -84
  103. package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
  104. package/dist/collection/components/post-tooltip/post-tooltip.js +12 -22
  105. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +2 -4
  106. package/dist/collection/types/element-api.js +3 -0
  107. package/dist/component-names.json +2 -1
  108. package/dist/components/index.d.ts +4 -2
  109. package/dist/components/index.js +1 -1
  110. package/dist/components/package.js +1 -1
  111. package/dist/components/post-accordion-item2.js +1 -1
  112. package/dist/components/post-accordion2.js +1 -1
  113. package/dist/components/post-autocomplete.js +1 -1
  114. package/dist/components/post-avatar.js +1 -1
  115. package/dist/components/post-back-to-top.js +1 -1
  116. package/dist/components/post-banner.js +1 -1
  117. package/dist/components/post-breadcrumb-item.js +1 -1
  118. package/dist/components/post-breadcrumbs.js +1 -1
  119. package/dist/components/post-closebutton2.js +1 -1
  120. package/dist/components/post-collapsible-trigger2.js +1 -1
  121. package/dist/components/post-collapsible2.js +1 -1
  122. package/dist/components/post-date-picker.js +1 -1
  123. package/dist/components/post-footer.js +1 -1
  124. package/dist/components/post-header.js +1 -1
  125. package/dist/components/post-icon2.js +1 -1
  126. package/dist/components/post-language-menu-item.js +1 -1
  127. package/dist/components/post-language-menu.js +1 -1
  128. package/dist/components/post-linkarea.js +1 -1
  129. package/dist/components/post-listbox-option.js +1 -1
  130. package/dist/components/post-listbox.js +1 -1
  131. package/dist/components/post-logo.js +1 -1
  132. package/dist/components/post-mainnavigation.js +1 -1
  133. package/dist/components/post-megadropdown-trigger.js +1 -1
  134. package/dist/components/post-megadropdown.js +1 -1
  135. package/dist/components/post-menu-item2.js +1 -1
  136. package/dist/components/post-menu-trigger2.js +1 -1
  137. package/dist/components/post-menu2.js +1 -1
  138. package/dist/components/post-number-input.js +1 -1
  139. package/dist/components/post-pagination.js +1 -1
  140. package/dist/components/post-popover-trigger.js +1 -1
  141. package/dist/components/post-popover.js +1 -1
  142. package/dist/components/post-popovercontainer2.js +1 -1
  143. package/dist/components/post-progressbar.js +1 -1
  144. package/dist/components/post-rating.js +1 -1
  145. package/dist/components/post-side-navigation-trigger.d.ts +11 -0
  146. package/dist/components/post-side-navigation-trigger.js +1 -0
  147. package/dist/components/{post-login-widget.d.ts → post-side-navigation.d.ts} +4 -4
  148. package/dist/components/post-side-navigation.js +1 -0
  149. package/dist/components/post-stepper-item.js +1 -1
  150. package/dist/components/post-stepper.js +1 -1
  151. package/dist/components/post-tab-item.js +1 -1
  152. package/dist/components/post-tab-panel.js +1 -1
  153. package/dist/components/post-tabs.js +1 -1
  154. package/dist/components/post-togglebutton2.js +1 -1
  155. package/dist/components/post-tooltip-trigger.js +1 -1
  156. package/dist/components/post-tooltip.js +1 -1
  157. package/dist/components/react/index.js +1 -1
  158. package/dist/components/react/{p-Bu2JeHDf.js → p-06VKKzxv.js} +1 -1
  159. package/dist/components/react/p-BkWqx_6U.js +1 -0
  160. package/dist/components/react/p-Chtl9X7o.js +1 -0
  161. package/dist/components/react/p-CrLBbthi.js +1 -0
  162. package/dist/components/react/{p-D1zw8FxT.js → p-D0kuUny7.js} +1 -1
  163. package/dist/components/react/{p-PM7l--ff.js → p-DKF__bJF.js} +1 -1
  164. package/dist/components/react/p-DkKOmXaG.js +1 -0
  165. package/dist/components/react/p-UdMqVxhd.js +1 -0
  166. package/dist/components/react/p-d02KpeUM.js +1 -0
  167. package/dist/components/react/{p-BZSAV0-K.js → p-gUhGka9h.js} +1 -1
  168. package/dist/components/react/{p-Cd1TsNm7.js → p-uQE3DVb8.js} +1 -1
  169. package/dist/components/react/{p-BxoRVIIr.js → p-wLn52OZT.js} +1 -1
  170. package/dist/components/react/post-accordion-item.js +1 -1
  171. package/dist/components/react/post-accordion.js +1 -1
  172. package/dist/components/react/post-autocomplete.js +1 -1
  173. package/dist/components/react/post-avatar.js +1 -1
  174. package/dist/components/react/post-back-to-top.js +1 -1
  175. package/dist/components/react/post-banner.js +1 -1
  176. package/dist/components/react/post-breadcrumb-item.js +1 -1
  177. package/dist/components/react/post-breadcrumbs.js +1 -1
  178. package/dist/components/react/post-closebutton.js +1 -1
  179. package/dist/components/react/post-collapsible-trigger.js +1 -1
  180. package/dist/components/react/post-collapsible.js +1 -1
  181. package/dist/components/react/post-date-picker.js +1 -1
  182. package/dist/components/react/post-footer.js +1 -1
  183. package/dist/components/react/post-header.js +1 -1
  184. package/dist/components/react/post-icon.js +1 -1
  185. package/dist/components/react/post-language-menu-item.js +1 -1
  186. package/dist/components/react/post-language-menu.js +1 -1
  187. package/dist/components/react/post-linkarea.js +1 -1
  188. package/dist/components/react/post-listbox-option.js +1 -1
  189. package/dist/components/react/post-listbox.js +1 -1
  190. package/dist/components/react/post-logo.js +1 -1
  191. package/dist/components/react/post-mainnavigation.js +1 -1
  192. package/dist/components/react/post-megadropdown-trigger.js +1 -1
  193. package/dist/components/react/post-megadropdown.js +1 -1
  194. package/dist/components/react/post-menu-item.js +1 -1
  195. package/dist/components/react/post-menu-trigger.js +1 -1
  196. package/dist/components/react/post-menu.js +1 -1
  197. package/dist/components/react/post-number-input.js +1 -1
  198. package/dist/components/react/post-pagination.js +1 -1
  199. package/dist/components/react/post-popover-trigger.js +1 -1
  200. package/dist/components/react/post-popover.js +1 -1
  201. package/dist/components/react/post-popovercontainer.js +1 -1
  202. package/dist/components/react/post-progressbar.js +1 -1
  203. package/dist/components/react/post-rating.js +1 -1
  204. package/dist/components/react/post-side-navigation-trigger.d.ts +11 -0
  205. package/dist/components/react/post-side-navigation-trigger.js +1 -0
  206. package/dist/components/react/{post-login-widget.d.ts → post-side-navigation.d.ts} +4 -4
  207. package/dist/components/react/post-side-navigation.js +1 -0
  208. package/dist/components/react/post-stepper-item.js +1 -1
  209. package/dist/components/react/post-stepper.js +1 -1
  210. package/dist/components/react/post-tab-item.js +1 -1
  211. package/dist/components/react/post-tab-panel.js +1 -1
  212. package/dist/components/react/post-tabs.js +1 -1
  213. package/dist/components/react/post-togglebutton.js +1 -1
  214. package/dist/components/react/post-tooltip-trigger.js +1 -1
  215. package/dist/components/react/post-tooltip.js +1 -1
  216. package/dist/docs.json +571 -529
  217. package/dist/esm/{create-validator-decorator-D8qwF5Qe.js → create-validator-decorator-CYYTw0AS.js} +1 -1
  218. package/dist/esm/{index-BbDawWJ5.js → index-DE1aWdqx.js} +56 -15
  219. package/dist/esm/loader.js +3 -3
  220. package/dist/esm/{one-of-GPr3FflU.js → one-of-Ug1_Xoes.js} +1 -1
  221. package/dist/esm/package-d02KpeUM.js +3 -0
  222. package/dist/esm/{pattern-BWPRYpYv.js → pattern-WLk4tOqI.js} +1 -1
  223. package/dist/esm/post-accordion_2.entry.js +10 -12
  224. package/dist/esm/post-autocomplete.entry.js +6 -6
  225. package/dist/esm/post-avatar.entry.js +7 -7
  226. package/dist/esm/post-back-to-top.entry.js +6 -6
  227. package/dist/esm/post-banner.entry.js +6 -6
  228. package/dist/esm/post-breadcrumb-item.entry.js +8 -8
  229. package/dist/esm/post-breadcrumbs.entry.js +9 -11
  230. package/dist/esm/post-closebutton_14.entry.js +86 -62
  231. package/dist/esm/post-collapsible_2.entry.js +6 -6
  232. package/dist/esm/post-components.js +3 -3
  233. package/dist/esm/post-date-picker.entry.js +427 -257
  234. package/dist/esm/post-footer.entry.js +6 -6
  235. package/dist/esm/post-linkarea.entry.js +3 -3
  236. package/dist/esm/post-listbox-option.entry.js +4 -4
  237. package/dist/esm/post-listbox.entry.js +3 -3
  238. package/dist/esm/post-number-input.entry.js +6 -5
  239. package/dist/esm/post-pagination.entry.js +15 -10
  240. package/dist/esm/post-popover-trigger.entry.js +5 -5
  241. package/dist/esm/post-popover.entry.js +11 -12
  242. package/dist/esm/post-progressbar.entry.js +4 -4
  243. package/dist/esm/post-rating.entry.js +6 -6
  244. package/dist/esm/post-side-navigation-trigger.entry.js +107 -0
  245. package/dist/esm/post-side-navigation.entry.js +138 -0
  246. package/dist/esm/post-stepper-item.entry.js +4 -4
  247. package/dist/esm/post-stepper.entry.js +9 -7
  248. package/dist/esm/post-tab-item.entry.js +15 -14
  249. package/dist/esm/post-tab-panel.entry.js +6 -6
  250. package/dist/esm/post-tabs.entry.js +196 -74
  251. package/dist/esm/post-tooltip-trigger.entry.js +7 -9
  252. package/dist/esm/post-tooltip.entry.js +9 -10
  253. package/dist/esm/{required-uK-rZZjy.js → required-DeOhRbtk.js} +1 -1
  254. package/dist/esm/{type-obmwEgkM.js → type-S-4aPMGU.js} +1 -1
  255. package/dist/esm/{url-B28ByZCe.js → url-C8KSrmWc.js} +1 -1
  256. package/dist/post-components/{p-12047216.entry.js → p-0efb77f9.entry.js} +1 -1
  257. package/dist/post-components/p-1223e51d.entry.js +1 -0
  258. package/dist/post-components/{p-3b05e01d.entry.js → p-1878e9f8.entry.js} +1 -1
  259. package/dist/post-components/p-1eea2715.entry.js +1 -0
  260. package/dist/post-components/p-2233c37e.entry.js +1 -0
  261. package/dist/post-components/p-266e68a3.entry.js +1 -0
  262. package/dist/post-components/{p-00f55af5.entry.js → p-2a0b9ed0.entry.js} +1 -1
  263. package/dist/post-components/p-3c71d687.entry.js +1 -0
  264. package/dist/post-components/{p-IUnDBhPg.js → p-4-_BhJWV.js} +1 -1
  265. package/dist/post-components/{p-7f929bb9.entry.js → p-477c8c35.entry.js} +1 -1
  266. package/dist/post-components/{p-2c6b4e6a.entry.js → p-4b366aa0.entry.js} +1 -1
  267. package/dist/post-components/{p-53fd5230.entry.js → p-4c7750cd.entry.js} +1 -1
  268. package/dist/post-components/p-52e118e0.entry.js +1 -0
  269. package/dist/post-components/p-53f34806.entry.js +1 -0
  270. package/dist/post-components/p-621a81a7.entry.js +1 -0
  271. package/dist/post-components/p-85594193.entry.js +1 -0
  272. package/dist/post-components/p-89ea447b.entry.js +1 -0
  273. package/dist/post-components/p-8d8ac7ae.entry.js +1 -0
  274. package/dist/post-components/p-900dc8e1.entry.js +1 -0
  275. package/dist/post-components/p-93da9105.entry.js +1 -0
  276. package/dist/post-components/{p-d061773b.entry.js → p-95ad4d06.entry.js} +1 -1
  277. package/dist/post-components/p-9915ffee.entry.js +1 -0
  278. package/dist/post-components/{p-Ck2qPht6.js → p-B6uZASBE.js} +1 -1
  279. package/dist/post-components/{p-DSNGJB58.js → p-BDW1XHCO.js} +1 -1
  280. package/dist/post-components/{p-CVsNfXZd.js → p-CiOyV6Mo.js} +1 -1
  281. package/dist/post-components/p-DE1aWdqx.js +2 -0
  282. package/dist/post-components/{p-BRNqUiXj.js → p-DMiERazc.js} +1 -1
  283. package/dist/post-components/{p-D4F0BqBW.js → p-NPUljV0P.js} +1 -1
  284. package/dist/post-components/p-a08abdb2.entry.js +1 -0
  285. package/dist/post-components/p-a971ec25.entry.js +1 -0
  286. package/dist/post-components/{p-e2370e94.entry.js → p-ad69ed8c.entry.js} +1 -1
  287. package/dist/post-components/p-c11a8e06.entry.js +1 -0
  288. package/dist/post-components/p-d02KpeUM.js +1 -0
  289. package/dist/post-components/p-d9ce8f05.entry.js +1 -0
  290. package/dist/post-components/p-dcceab4e.entry.js +1 -0
  291. package/dist/post-components/{p-f1ca1d3f.entry.js → p-e219e22a.entry.js} +1 -1
  292. package/dist/post-components/{p-758fc84f.entry.js → p-f6c45fed.entry.js} +1 -1
  293. package/dist/post-components/post-components.css +2 -2
  294. package/dist/post-components/post-components.esm.js +1 -1
  295. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +0 -8
  296. package/dist/types/components/post-closebutton/post-closebutton.d.ts +5 -2
  297. package/dist/types/components/post-closebutton/types.d.ts +1 -1
  298. package/dist/types/components/post-date-picker/accessibility-utils.d.ts +19 -0
  299. package/dist/types/components/post-date-picker/date-utils.d.ts +48 -0
  300. package/dist/types/components/post-date-picker/native-mask-element.d.ts +12 -0
  301. package/dist/types/components/post-date-picker/post-date-picker.d.ts +23 -62
  302. package/dist/types/components/post-header/post-header.d.ts +3 -2
  303. package/dist/types/components/post-language-menu/post-language-menu.d.ts +2 -1
  304. package/dist/types/components/post-menu/post-menu.d.ts +4 -4
  305. package/dist/types/components/post-popover/post-popover.d.ts +4 -5
  306. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +2 -2
  307. package/dist/types/components/post-side-navigation/post-side-navigation.d.ts +62 -0
  308. package/dist/types/components/post-side-navigation/side-navigation-styles.d.ts +2 -0
  309. package/dist/types/components/post-side-navigation-trigger/post-side-navigation-trigger.d.ts +33 -0
  310. package/dist/types/components/post-tab-item/post-tab-item.d.ts +8 -4
  311. package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +1 -1
  312. package/dist/types/components/post-tabs/post-tabs.d.ts +37 -17
  313. package/dist/types/components/post-tooltip/post-tooltip.d.ts +4 -5
  314. package/dist/types/components.d.ts +181 -164
  315. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/vrt/helpers/header-variants.config.d.ts +1 -0
  316. package/dist/types/types/element-api.d.ts +3 -0
  317. package/dist/vrt/helpers/header-test-config.js +3 -2
  318. package/dist/vrt/helpers/header-variants.config.js +29 -2
  319. package/hydrate/index.js +1174 -682
  320. package/hydrate/index.mjs +1174 -682
  321. package/package.json +11 -12
  322. package/dist/cjs/long-press-event-Dx21Ojod.js +0 -276
  323. package/dist/cjs/post-login-widget.cjs.entry.js +0 -92
  324. package/dist/collection/components/post-accordion-item/heading-levels.js +0 -1
  325. package/dist/collection/components/post-login-widget/post-login-widget.css +0 -1
  326. package/dist/collection/components/post-login-widget/post-login-widget.js +0 -218
  327. package/dist/collection/components/post-tab-item/post-tab-item.css +0 -1
  328. package/dist/components/long-press-event.js +0 -8
  329. package/dist/components/post-avatar2.js +0 -1
  330. package/dist/components/post-login-widget.js +0 -1
  331. package/dist/components/react/p-85IGlhtB.js +0 -1
  332. package/dist/components/react/p-B9ZFuYey.js +0 -1
  333. package/dist/components/react/p-BNgqqRsB.js +0 -8
  334. package/dist/components/react/p-Bg9dtyzK.js +0 -1
  335. package/dist/components/react/p-Bn66acGG.js +0 -1
  336. package/dist/components/react/p-CkTAQJGd.js +0 -1
  337. package/dist/components/react/p-ClG-N42b.js +0 -1
  338. package/dist/components/react/p-DwuW52g5.js +0 -1
  339. package/dist/components/react/post-login-widget.js +0 -1
  340. package/dist/esm/long-press-event-BNgqqRsB.js +0 -274
  341. package/dist/esm/package-ClG-N42b.js +0 -3
  342. package/dist/esm/post-login-widget.entry.js +0 -90
  343. package/dist/post-components/p-0288484f.entry.js +0 -1
  344. package/dist/post-components/p-07cdd022.entry.js +0 -1
  345. package/dist/post-components/p-17df4e91.entry.js +0 -1
  346. package/dist/post-components/p-17e046fa.entry.js +0 -1
  347. package/dist/post-components/p-29bd31a0.entry.js +0 -1
  348. package/dist/post-components/p-5b7e6369.entry.js +0 -1
  349. package/dist/post-components/p-5f4ca179.entry.js +0 -1
  350. package/dist/post-components/p-62b6154a.entry.js +0 -1
  351. package/dist/post-components/p-686a6e22.entry.js +0 -1
  352. package/dist/post-components/p-9865f72c.entry.js +0 -1
  353. package/dist/post-components/p-99803d57.entry.js +0 -1
  354. package/dist/post-components/p-BNgqqRsB.js +0 -8
  355. package/dist/post-components/p-BbDawWJ5.js +0 -2
  356. package/dist/post-components/p-ClG-N42b.js +0 -1
  357. package/dist/post-components/p-a0e0a760.entry.js +0 -1
  358. package/dist/post-components/p-a850652d.entry.js +0 -1
  359. package/dist/post-components/p-aac1a8ea.entry.js +0 -1
  360. package/dist/post-components/p-b3f0f9a2.entry.js +0 -1
  361. package/dist/post-components/p-c37dba4b.entry.js +0 -1
  362. package/dist/post-components/p-f2e5f44e.entry.js +0 -1
  363. package/dist/post-components/p-ff98ada4.entry.js +0 -1
  364. package/dist/types/components/post-accordion-item/heading-levels.d.ts +0 -2
  365. package/dist/types/components/post-login-widget/post-login-widget.d.ts +0 -45
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-ngUOBQot.js');
3
+ var index = require('./index-BqngpwGa.js');
4
4
  var fade = require('./fade-CPQhl1fP.js');
5
5
  require('./breakpoints-B0Olgvgc.js');
6
6
  var componentOnReady = require('./component-on-ready-CifOTqw1.js');
7
- var _package = require('./package-Bi-tiNRc.js');
8
- var type = require('./type-shT641Eo.js');
7
+ var _package = require('./package-B0PdQ0Dm.js');
8
+ var oneOf = require('./one-of-D1veqtsm.js');
9
+ var type = require('./type-D8eD1JMd.js');
9
10
  require('./utils-s05L2ulk.js');
10
- require('./create-validator-decorator-Bnx17kwi.js');
11
+ require('./create-validator-decorator-4dRrOF30.js');
11
12
 
12
- const postTabsCss = () => `.tabs-wrapper{position:relative;padding-top:1rem;border:0;background-color:rgba(0,0,0,.02)}.tabs-wrapper::after{content:"";position:absolute;bottom:0;width:100%;height:1px;background-color:#ccc}.tabs-wrapper .tabs{background-color:rgba(0,0,0,0) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.tabs-wrapper::after{background-color:ButtonBorder}}.tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;white-space:nowrap;margin-block:0;padding-inline-start:0;list-style:none}.tabs::after{content:"";display:block;flex:1 0 auto;width:1rem}.tab-content{padding-top:1rem}:host{display:block}:host([full-width=true]) .tabs-wrapper{margin-inline:calc(-1*var(--post-container-offset))}:host([full-width=true]) .tabs-wrapper .tabs{padding-inline:var(--post-container-offset)}`;
13
+ const postTabsCss = () => `:host{display:block}:host .tabs-wrapper{position:relative;display:flex;align-items:center}:host .tabs-wrapper button.scroll-btn{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;display:flex;align-items:center;justify-content:center;transition:background-color 100ms,border-color 100ms,color 100ms;cursor:pointer}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn{background-color:ButtonFace !important}:host .tabs-wrapper button.scroll-btn:hover{background-color:Highlight !important}}:host .tabs-wrapper button.scroll-btn post-icon{color:currentColor}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn post-icon{color:Highlight}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:hover post-icon{color:canvas}}:host .tabs-wrapper button.scroll-btn[hidden]{display:none}:host .tabs-wrapper button.scroll-btn{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 .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;outline-offset:calc(var(--post-device-spacing-padding-28) + -1*var(--post-device-border-width-default)) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){transition:none}:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus):hover{color:HighlightText;border-color:HighlightText}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important;outline-offset:calc(var(--post-device-spacing-padding-28) + -1*var(--post-device-border-width-default)) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){transition:none}:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus):hover{color:HighlightText;border-color:HighlightText}}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host .tabs-wrapper button.scroll-btn:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}:host .tabs-wrapper .tabs{overflow-x:hidden;background-color:rgba(0,0,0,0) !important;display:flex;flex-wrap:nowrap;align-items:end;overscroll-behavior-x:contain;white-space:nowrap;margin-block:0;padding-inline-start:0;list-style:none}:host(.page-tabs){overflow:visible !important}:host(.page-tabs) .tabs-wrapper{margin-inline:calc(-1*(var(--post-container-offset) + var(--post-device-grid-padding-inline-container)))}:host(.page-tabs) .tabs-wrapper button.scroll-btn{color:var(--post-scheme-color-interactive-primary-enabled-fg5);background-color:var(--post-scheme-color-interactive-primary-enabled-bg5);border:var(--post-device-border-width-default) solid var(--post-scheme-color-interactive-primary-enabled-stroke);position:absolute;z-index:2;box-shadow:var(--post-device-elevation-200);border-radius:var(--post-device-border-radius-2)}:host(.page-tabs) .tabs-wrapper button.scroll-btn:hover{border-color:var(--post-scheme-color-interactive-primary-hover-stroke) !important;color:var(--post-scheme-color-interactive-primary-hover-fg4);background-color:var(--post-scheme-color-interactive-primary-hover-bg8)}:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn-left{inset-inline-start:calc(var(--post-container-offset) + var(--post-device-grid-padding-inline-container));border-inline-start:none;border-radius:0 var(--post-device-border-radius-2) var(--post-device-border-radius-2) 0}:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn-right{inset-inline-end:calc(var(--post-container-offset) + var(--post-device-grid-padding-inline-container));border-inline-end:none;border-radius:var(--post-device-border-radius-2) 0 0 var(--post-device-border-radius-2)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.page-tabs) .tabs-wrapper button.scroll-btn.scroll-btn{background-color:Highlight;color:HighlightText}}:host(.page-tabs) .tabs-wrapper::after{content:"";position:absolute;inset-block-end:0;inset-inline-start:0;width:100%;height:var(--post-device-border-width-default);background-color:var(--post-palette-color-nested-tabs-page-stroke)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.page-tabs) .tabs-wrapper::after{background-color:LinkText}}:host(.page-tabs) .tabs-wrapper .tabs{padding-inline:calc(var(--post-container-offset) + var(--post-device-grid-padding-inline-container));gap:var(--post-device-spacing-gap-inline-5);scrollbar-width:none}:host(.page-tabs) .tabs-wrapper .tabs::-webkit-scrollbar{display:none}:host(.page-tabs:not([size=small])) button.scroll-btn{top:var(--post-device-spacing-padding-block-35)}:host(.page-tabs[size=small]) button.scroll-btn{top:var(--post-device-spacing-padding-block-8)}:host(.content-tabs) .tabs-wrapper button.scroll-btn{flex-shrink:0;color:var(--post-scheme-color-interactive-button-tertiary-enabled-fg)}:host(.content-tabs) .tabs-wrapper button.scroll-btn:hover{border-color:var(--post-scheme-color-interactive-primary-hover-stroke) !important;color:var(--post-scheme-color-interactive-button-tertiary-hover-fg)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(.content-tabs) .tabs-wrapper button.scroll-btn:hover{color:HighlightText}}:host(.page-tabs:not([size=small])) .tabs-wrapper button.scroll-btn{height:var(--post-device-sizing-interactive-button-height-10);width:var(--post-device-sizing-interactive-button-width-1)}:host(.page-tabs:not([size=small])) .tabs-wrapper button.scroll-btn.scroll-btn-left{padding-inline:var(--post-device-spacing-padding-38) var(--post-device-spacing-padding-39)}:host(.page-tabs:not([size=small])) .tabs-wrapper button.scroll-btn.scroll-btn-right{padding-inline:var(--post-device-spacing-padding-39) var(--post-device-spacing-padding-38)}:host([size=small]) .tabs-wrapper button.scroll-btn{height:var(--post-device-sizing-interactive-button-size-1);width:var(--post-device-sizing-interactive-button-size-1)}:host([size=small]) .tabs-wrapper button.scroll-btn.scroll-btn-left{padding-inline:var(--post-device-spacing-padding-41) var(--post-device-spacing-padding-42)}:host([size=small]) .tabs-wrapper button.scroll-btn.scroll-btn-right{padding-inline:var(--post-device-spacing-padding-42) var(--post-device-spacing-padding-41)}:host([size=small]) .tabs-wrapper button.scroll-btn post-icon{height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4)}`;
13
14
 
14
15
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15
16
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -25,14 +26,37 @@ const PostTabs = class {
25
26
  constructor(hostRef) {
26
27
  index.registerInstance(this, hostRef);
27
28
  this.postChange = index.createEvent(this, "postChange");
29
+ this.showing = null;
30
+ this.hiding = null;
28
31
  this.isLoaded = false;
29
- this.isNavigationMode = false;
32
+ this.isPagesVariant = false;
33
+ this.showLeftScrollButton = false;
34
+ this.showRightScrollButton = false;
30
35
  /**
31
- * When set to true, this property allows the tabs container to span the
32
- * Changing this value after initialization has no effect.
33
- * full width of the screen, from edge to edge.
36
+ * An accessible label for the "previous tab items" button.
34
37
  */
35
- this.fullWidth = false;
38
+ this.textPrevTabItems = 'Previous tab items';
39
+ /**
40
+ * An accessible label for the "next tab items" button.
41
+ */
42
+ this.textNextTabItems = 'Next tab items';
43
+ /**
44
+ * The size of the tabs, corresponding to the different designs in Figma.
45
+ * Default is 'large'.
46
+ */
47
+ this.size = 'large';
48
+ // Handles the visibility of scroll buttons based on the scroll position of the tabs container
49
+ this.updateScrollButtons = () => {
50
+ if (!this.tabsContainer)
51
+ return;
52
+ const style = getComputedStyle(this.tabsContainer);
53
+ const paddingStart = Number.parseFloat(style.paddingInlineStart) || 0;
54
+ const paddingEnd = Number.parseFloat(style.paddingInlineEnd) || 0;
55
+ const contentWidth = this.tabsContainer.clientWidth - paddingStart - paddingEnd;
56
+ const scrollableWidth = this.tabsContainer.scrollWidth - paddingStart - paddingEnd;
57
+ this.showLeftScrollButton = this.tabsContainer.scrollLeft > 0;
58
+ this.showRightScrollButton = this.tabsContainer.scrollLeft + contentWidth < scrollableWidth;
59
+ };
36
60
  }
37
61
  get tabs() {
38
62
  return Array.from(this.host.querySelectorAll('post-tab-item')).filter(tab => tab.closest('post-tabs') === this.host);
@@ -41,29 +65,38 @@ const PostTabs = class {
41
65
  return Array.from(this.host.querySelectorAll('post-tab-panel')).filter(panel => panel.closest('post-tabs') === this.host);
42
66
  }
43
67
  validateLabel() {
44
- if (this.isNavigationMode && !this.label) {
45
- console.error(`[${this.host.localName}] Property "label" is required in navigation mode. Received: ${JSON.stringify(this.label)}.`, this.host);
68
+ if (this.isPagesVariant && !this.label) {
69
+ console.error(`[${this.host.localName}] Property "label" is required in Pages variant. Received: ${JSON.stringify(this.label)}.`, this.host);
46
70
  }
47
71
  }
48
72
  componentWillRender() {
49
- this.detectMode();
73
+ this.detectVariant();
50
74
  }
51
75
  componentDidLoad() {
76
+ // Programmatically associates the scroll buttons with the tabs container via the ARIA reflection API, avoiding the need for ID-based aria-controls attributes.
77
+ this.leftScrollButton.ariaControlsElements = [this.tabsContainer];
78
+ this.rightScrollButton.ariaControlsElements = [this.tabsContainer];
52
79
  this.moveMisplacedTabs();
53
80
  this.moveMisplacedPanels();
54
81
  this.enableTabs();
82
+ this.handleScrollButtons();
55
83
  this.setupContentObserver();
84
+ this.setupResizeObserver();
56
85
  this.validateLabel();
57
- if (this.isNavigationMode) {
58
- const activeTab = this.findActiveNavigationTab();
86
+ if (this.isPagesVariant) {
87
+ const activeTab = this.findActivePagesTab();
59
88
  if (activeTab) {
60
89
  this.activateTab(activeTab);
90
+ this.scrollTabIntoView(activeTab);
61
91
  }
62
92
  }
63
93
  else {
64
94
  const tabToActivate = this.activeTab || this.tabs[0]?.name;
65
95
  if (tabToActivate) {
66
96
  void this.show(tabToActivate);
97
+ const activeTab = this.tabs.find(t => t.name === tabToActivate);
98
+ if (activeTab)
99
+ this.scrollTabIntoView(activeTab);
67
100
  }
68
101
  }
69
102
  this.isLoaded = true;
@@ -78,35 +111,43 @@ const PostTabs = class {
78
111
  this.hiding = null;
79
112
  }
80
113
  if (this.contentObserver) {
81
- this.contentObserver.disconnect();
114
+ this.contentObserver?.disconnect();
82
115
  }
116
+ this.resizeObserver?.disconnect();
117
+ // Remove scroll event listener
118
+ this.tabsContainer?.removeEventListener('scroll', this.updateScrollButtons);
83
119
  }
84
120
  setupContentObserver() {
85
121
  const config = {
86
122
  childList: true,
87
123
  subtree: true,
88
124
  attributes: true,
89
- attributeFilter: ['data-navigation-mode', 'aria-current'],
125
+ attributeFilter: ['data-pages-variant', 'aria-current'],
90
126
  };
91
127
  this.contentObserver = new MutationObserver(this.handleContentChange.bind(this));
92
- this.contentObserver.observe(this.host, config);
128
+ this.contentObserver?.observe(this.host, config);
129
+ }
130
+ setupResizeObserver() {
131
+ this.resizeObserver = new ResizeObserver(this.updateScrollButtons);
132
+ this.resizeObserver.observe(this.tabsContainer);
93
133
  }
94
134
  handleContentChange(mutations) {
95
- const shouldRedetect = this.shouldRedetectMode(mutations);
135
+ const shouldRedetect = this.shouldRedetectVariant(mutations);
96
136
  const ariaCurrentChanged = this.hasAriaCurrentChanged(mutations);
97
- if (ariaCurrentChanged && this.isNavigationMode) {
98
- this.updateActiveNavigationTab();
137
+ if (ariaCurrentChanged && this.isPagesVariant) {
138
+ this.updateActivePagesTab();
99
139
  }
100
140
  if (shouldRedetect) {
101
- this.handleModeChange();
141
+ this.handleVariantChange();
102
142
  }
143
+ this.updateScrollButtons();
103
144
  }
104
- shouldRedetectMode(mutations) {
145
+ shouldRedetectVariant(mutations) {
105
146
  return mutations.some(mutation => {
106
147
  if (mutation.type === 'childList') {
107
148
  return mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0;
108
149
  }
109
- if (mutation.type === 'attributes' && mutation.attributeName === 'data-navigation-mode') {
150
+ if (mutation.type === 'attributes' && mutation.attributeName === 'data-pages-variant') {
110
151
  return true;
111
152
  }
112
153
  return false;
@@ -115,25 +156,27 @@ const PostTabs = class {
115
156
  hasAriaCurrentChanged(mutations) {
116
157
  return mutations.some(mutation => mutation.type === 'attributes' && mutation.attributeName === 'aria-current');
117
158
  }
118
- updateActiveNavigationTab() {
119
- const activeTab = this.findActiveNavigationTab();
159
+ updateActivePagesTab() {
160
+ const activeTab = this.findActivePagesTab();
120
161
  if (activeTab && activeTab !== this.currentActiveTab) {
121
162
  this.activateTab(activeTab);
163
+ this.scrollTabIntoView(activeTab, 'smooth');
122
164
  }
123
165
  }
124
- handleModeChange() {
125
- const previousMode = this.isNavigationMode;
126
- this.detectMode();
127
- if (previousMode !== this.isNavigationMode) {
166
+ handleVariantChange() {
167
+ const previousVariant = this.isPagesVariant;
168
+ this.detectVariant();
169
+ if (previousVariant !== this.isPagesVariant) {
128
170
  this.enableTabs();
129
171
  this.initializeActiveTab();
130
172
  }
131
173
  }
132
174
  initializeActiveTab() {
133
- if (this.isNavigationMode) {
134
- const activeTab = this.findActiveNavigationTab();
175
+ if (this.isPagesVariant) {
176
+ const activeTab = this.findActivePagesTab();
135
177
  if (activeTab) {
136
178
  this.activateTab(activeTab);
179
+ this.scrollTabIntoView(activeTab);
137
180
  }
138
181
  }
139
182
  else {
@@ -143,21 +186,29 @@ const PostTabs = class {
143
186
  }
144
187
  }
145
188
  }
146
- detectMode() {
147
- // Check for navigation mode by looking for anchor elements in tabs
148
- // This works even before post-tab-item sets data-navigation-mode attribute
149
- const hasNavigationTabs = this.tabs.some(tab => {
189
+ detectVariant() {
190
+ // Identify Page Tabs variant by looking for anchor elements in tabs
191
+ // This works even before post-tab-item sets [data-pages-variant] attribute
192
+ const hasPages = this.tabs.some(tab => {
150
193
  const hasAnchor = tab.querySelector('a') !== null;
151
- const navModeAttr = tab.dataset.navigationMode === 'true';
152
- return hasAnchor || navModeAttr;
194
+ const pagesVariantAttr = tab.dataset.pagesVariant === 'true';
195
+ return hasAnchor || pagesVariantAttr;
153
196
  });
154
197
  const hasPanels = this.panels.length > 0;
155
- if (hasNavigationTabs && hasPanels) {
156
- 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.');
198
+ if (hasPages && hasPanels) {
199
+ throw new Error('PostTabs: Mixed mode detected. Cannot use both Page Tabs (anchor elements) and Content Tabs (post-tab-panel elements) variants at the same time.');
200
+ }
201
+ this.isPagesVariant = hasPages;
202
+ // Removes variant related classes to reset the state and applies the newly detected variant
203
+ this.host.classList.remove('page-tabs', 'content-tabs');
204
+ if (this.isPagesVariant) {
205
+ this.host.classList.add('page-tabs');
206
+ }
207
+ else {
208
+ this.host.classList.add('content-tabs');
157
209
  }
158
- this.isNavigationMode = hasNavigationTabs;
159
210
  }
160
- findActiveNavigationTab() {
211
+ findActivePagesTab() {
161
212
  return (this.tabs.find(tab => {
162
213
  const anchor = tab.querySelector('a[aria-current="page"]');
163
214
  return anchor !== null;
@@ -168,30 +219,55 @@ const PostTabs = class {
168
219
  * Any other panel that was previously shown becomes hidden and its associated tab is unselected.
169
220
  */
170
221
  async show(tabName) {
171
- // do nothing if the tab is already active
172
- if (tabName === this.currentActiveTab?.name) {
173
- return;
222
+ try {
223
+ // do nothing if the tab is already active
224
+ if (tabName === this.currentActiveTab?.name) {
225
+ return;
226
+ }
227
+ const previousTab = this.currentActiveTab;
228
+ const newTab = this.host.querySelector(`post-tab-item[name="${tabName}"]`);
229
+ if (!newTab)
230
+ return;
231
+ this.activateTab(newTab);
232
+ this.scrollTabIntoView(newTab, 'smooth');
233
+ // if a panel is currently being displayed, remove it from the view and complete the associated animation
234
+ if (this.showing) {
235
+ this.showing.finish();
236
+ this.showing = null;
237
+ }
238
+ // hide the currently visible panel only if no other animation is running
239
+ if (previousTab && !this.showing && !this.hiding)
240
+ this.hidePanel(previousTab.name);
241
+ if (await this.awaitAnimation(this.hiding))
242
+ return;
243
+ this.showSelectedPanel();
244
+ if (await this.awaitAnimation(this.showing))
245
+ return;
246
+ if (this.isLoaded && this.currentActiveTab)
247
+ this.postChange.emit(this.currentActiveTab.name);
174
248
  }
175
- const previousTab = this.currentActiveTab;
176
- const newTab = this.host.querySelector(`post-tab-item[name=${tabName}]`);
177
- this.activateTab(newTab);
178
- // if a panel is currently being displayed, remove it from the view and complete the associated animation
179
- if (this.showing) {
180
- this.showing.finish();
181
- this.showing = null;
249
+ catch (e) {
250
+ if (this.isAbortError(e))
251
+ return;
252
+ throw e;
182
253
  }
183
- // hide the currently visible panel only if no other animation is running
184
- if (previousTab && !this.showing && !this.hiding)
185
- this.hidePanel(previousTab.name);
186
- // wait for any hiding animation to complete before showing the selected tab
187
- if (this.hiding)
188
- await this.hiding.finished;
189
- this.showSelectedPanel();
190
- // wait for any display animation to complete for the returned promise to fully resolve
191
- if (this.showing)
192
- await this.showing.finished;
193
- if (this.isLoaded)
194
- this.postChange.emit(this.currentActiveTab.name);
254
+ }
255
+ // Awaits an animation; returns true if it was aborted (caller should bail out).
256
+ async awaitAnimation(animation) {
257
+ if (!animation)
258
+ return false;
259
+ try {
260
+ await animation.finished;
261
+ return false;
262
+ }
263
+ catch (e) {
264
+ if (this.isAbortError(e))
265
+ return true;
266
+ throw e;
267
+ }
268
+ }
269
+ isAbortError(error) {
270
+ return (error instanceof DOMException || error instanceof Error) && error.name === 'AbortError';
195
271
  }
196
272
  moveMisplacedTabs() {
197
273
  if (!this.tabs)
@@ -217,11 +293,11 @@ const PostTabs = class {
217
293
  return;
218
294
  this.tabs.forEach(async (tab) => {
219
295
  await componentOnReady.componentOnReady(tab);
220
- // In navigation mode, navigation is handled by the consumer's routing
221
- if (this.isNavigationMode) {
296
+ // In Page Tabs variant, navigation is handled by the consumer's routing
297
+ if (this.isPagesVariant) {
222
298
  return;
223
299
  }
224
- // Panel mode: set up ARIA relationships and event handlers
300
+ // Content Tabs variant: set up ARIA relationships and event handlers
225
301
  if (tab.getAttribute('aria-controls'))
226
302
  return;
227
303
  const tabPanel = this.getPanel(tab.name);
@@ -237,6 +313,17 @@ const PostTabs = class {
237
313
  e.preventDefault();
238
314
  void this.show(tab.name);
239
315
  }
316
+ if (e.key !== 'Home' && e.key !== 'End')
317
+ return;
318
+ e.preventDefault();
319
+ const enabledTabs = this.tabs.filter(t => !t.hasAttribute('disabled'));
320
+ if (enabledTabs.length === 0)
321
+ return;
322
+ const targetTab = e.key === 'Home' ? enabledTabs[0] : enabledTabs.at(-1);
323
+ if (targetTab) {
324
+ targetTab?.focus();
325
+ void this.show(targetTab.name);
326
+ }
240
327
  });
241
328
  tab.addEventListener('keydown', (e) => {
242
329
  if (e.key === 'ArrowRight' || e.key === 'ArrowLeft')
@@ -251,14 +338,12 @@ const PostTabs = class {
251
338
  activateTab(tab) {
252
339
  // Deactivate previous tab
253
340
  if (this.currentActiveTab) {
254
- this.currentActiveTab.classList.remove('active');
255
- if (!this.isNavigationMode) {
341
+ if (!this.isPagesVariant) {
256
342
  this.currentActiveTab.setAttribute('aria-selected', 'false');
257
343
  this.currentActiveTab.setAttribute('tabindex', '-1');
258
344
  }
259
345
  }
260
- tab.classList.add('active');
261
- if (!this.isNavigationMode) {
346
+ if (!this.isPagesVariant) {
262
347
  tab.setAttribute('aria-selected', 'true');
263
348
  tab.setAttribute('tabindex', '0');
264
349
  }
@@ -275,6 +360,8 @@ const PostTabs = class {
275
360
  };
276
361
  }
277
362
  showSelectedPanel() {
363
+ if (!this.currentActiveTab)
364
+ return;
278
365
  const panel = this.getPanel(this.currentActiveTab.name);
279
366
  if (!panel)
280
367
  return;
@@ -304,12 +391,44 @@ const PostTabs = class {
304
391
  nextTab.focus();
305
392
  void this.show(nextTab.name);
306
393
  }
394
+ scrollTabs(direction) {
395
+ const sign = direction === 'prev' ? -1 : 1;
396
+ const style = getComputedStyle(this.tabsContainer);
397
+ const paddingStart = Number.parseFloat(style.paddingInlineStart) || 0;
398
+ const paddingEnd = Number.parseFloat(style.paddingInlineEnd) || 0;
399
+ const contentWidth = this.tabsContainer.clientWidth - paddingStart - paddingEnd;
400
+ this.tabsContainer.scrollBy({
401
+ left: sign * contentWidth,
402
+ behavior: 'smooth',
403
+ });
404
+ }
405
+ scrollTabIntoView(tab, behavior = 'instant') {
406
+ const container = this.tabsContainer;
407
+ const style = getComputedStyle(container);
408
+ const paddingStart = Number.parseFloat(style.paddingInlineStart) || 0;
409
+ const paddingEnd = Number.parseFloat(style.paddingInlineEnd) || 0;
410
+ const tabLeft = tab.offsetLeft;
411
+ const tabRight = tabLeft + tab.offsetWidth;
412
+ const containerLeft = container.scrollLeft + paddingStart;
413
+ const containerRight = containerLeft + container.clientWidth - paddingStart - paddingEnd;
414
+ if (tabLeft < containerLeft) {
415
+ container.scrollTo({ left: tabLeft - paddingStart, behavior });
416
+ }
417
+ else if (tabRight > containerRight) {
418
+ container.scrollTo({ left: tabRight - container.clientWidth + paddingEnd, behavior });
419
+ }
420
+ }
421
+ handleScrollButtons() {
422
+ this.updateScrollButtons();
423
+ this.tabsContainer.addEventListener('scroll', this.updateScrollButtons);
424
+ }
307
425
  render() {
308
- const TabsContainer = this.isNavigationMode ? 'nav' : 'div';
309
- return (index.h(index.Host, { key: '3b674ed455e34a7efc1c1ffed14ac719a7ecb061', "data-version": _package.version }, index.h("div", { key: '749f4695adc7c3125bfb678606249c48a4d7ea31', class: "tabs-wrapper", part: "post-tabs" }, index.h(TabsContainer, { key: 'c06c83dbcbdf9f3fd38f01db7beae181748b369d', class: "tabs", role: this.isNavigationMode ? undefined : 'tablist', "aria-label": this.isNavigationMode ? this.label : undefined }, index.h("slot", { key: 'b065d0200fb2d4b6a63e23141d3e625a4147a93d', onSlotchange: () => {
426
+ const TabsContainer = this.isPagesVariant ? 'nav' : 'div';
427
+ const style = undefined;
428
+ return (index.h(index.Host, { key: '3e187db1375d551ac80bb4facced0ad4d01ec3fd', "data-version": _package.version, style: style }, index.h("div", { key: '8efd1434819801304bb218bf8af2a9c570153d70', class: "tabs-wrapper", part: "post-tabs" }, index.h("button", { key: '50d03d1a84e1f92c915d11e9b161498bd938b713', ref: el => (this.leftScrollButton = el), class: "scroll-btn scroll-btn-left", type: "button", "aria-label": this.textPrevTabItems, tabindex: this.showLeftScrollButton ? 0 : -1, hidden: !this.showLeftScrollButton, onClick: () => this.scrollTabs('prev') }, index.h("post-icon", { key: 'f767e493126954bd9246b4c161aa197f5fe48fcc', name: "chevronleft" })), index.h(TabsContainer, { key: 'f319b638b3fdfb46d5e793001192bb96e4763cca', ref: el => (this.tabsContainer = el), class: "tabs", role: this.isPagesVariant ? undefined : 'tablist', "aria-label": this.isPagesVariant ? this.label : undefined }, index.h("slot", { key: '65d15b30402eaf835f506f4cf24dd6373a632c52', onSlotchange: () => {
310
429
  this.moveMisplacedTabs();
311
430
  this.enableTabs();
312
- } }))), !this.isNavigationMode && (index.h("div", { key: '8dc41274f8c9da24b2d65eebf213ea35c41368d0', class: "tab-content", part: "post-tabs-content" }, index.h("slot", { key: 'e859256ebcb60fc0457349ca991508406b3bc309', name: "panels", onSlotchange: () => this.moveMisplacedPanels() })))));
431
+ } })), index.h("button", { key: 'f18317a83f6bd1c28c455ad6cfc8d58cd83c52d2', ref: el => (this.rightScrollButton = el), class: "scroll-btn scroll-btn-right", type: "button", "aria-label": this.textNextTabItems, tabindex: this.showRightScrollButton ? 0 : -1, hidden: !this.showRightScrollButton, onClick: () => this.scrollTabs('next') }, index.h("post-icon", { key: 'fcc75e1de8c39f3e3e2864e3439e85881001c73c', name: "chevronright" }))), !this.isPagesVariant && (index.h("div", { key: '487435bf4d776f1771eff2c735e3476a05ef68c4', class: "tab-content", part: "post-tabs-content" }, index.h("slot", { key: 'bbe284adfc74d502a77ceaade18179101f6aaf30', name: "panels", onSlotchange: () => this.moveMisplacedPanels() })))));
313
432
  }
314
433
  get host() { return index.getElement(this); }
315
434
  static get watchers() { return {
@@ -318,6 +437,9 @@ const PostTabs = class {
318
437
  }]
319
438
  }; }
320
439
  };
440
+ __decorate([
441
+ oneOf.OneOf(['small', 'large'])
442
+ ], PostTabs.prototype, "size", void 0);
321
443
  __decorate([
322
444
  type.Type('string')
323
445
  ], PostTabs.prototype, "label", void 0);
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-ngUOBQot.js');
3
+ var index = require('./index-BqngpwGa.js');
4
4
  require('./breakpoints-B0Olgvgc.js');
5
- var _package = require('./package-Bi-tiNRc.js');
6
- var required = require('./required-lRDOdbd6.js');
7
- var type = require('./type-shT641Eo.js');
8
- require('./create-validator-decorator-Bnx17kwi.js');
5
+ var _package = require('./package-B0PdQ0Dm.js');
6
+ var required = require('./required-Bkz8MOYa.js');
7
+ var type = require('./type-D8eD1JMd.js');
8
+ require('./create-validator-decorator-4dRrOF30.js');
9
9
 
10
10
  const postTooltipTriggerCss = () => `post-tooltip-trigger{vertical-align:top}:host{cursor:pointer}`;
11
11
 
@@ -19,7 +19,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
19
19
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20
20
  return c > 3 && r && Object.defineProperty(target, key, r), r;
21
21
  };
22
- const TRIGGER_EVENTS = ['pointerenter', 'pointerleave', 'focusin', 'focusout', 'long-press'];
22
+ const TRIGGER_EVENTS = ['pointerenter', 'pointerleave', 'focusin', 'focusout'];
23
23
  let isFocusable;
24
24
  const PostTooltipTrigger = class {
25
25
  constructor(hostRef) {
@@ -45,8 +45,6 @@ const PostTooltipTrigger = class {
45
45
  }
46
46
  componentWillLoad() {
47
47
  {
48
- // Fire-and-forget: long-press-event registers a global event listener on import.
49
- Promise.resolve().then(function () { return require('./long-press-event-Dx21Ojod.js'); });
50
48
  // Load ally.js lazily; setupTrigger uses optional chaining to handle the
51
49
  // case where it hasn't loaded yet (falls back to adding tabindex="0").
52
50
  Promise.resolve().then(function () { return require('./focusable-COT2uiEV.js'); }).then(function (n) { return n.focusable; }).then(m => {
@@ -186,7 +184,7 @@ const PostTooltipTrigger = class {
186
184
  this.tooltip?.hide();
187
185
  }
188
186
  render() {
189
- return (index.h(index.Host, { key: 'a1f51fabc4417e30a2b3454f9faf239a3a1f8071', "data-version": _package.version }, index.h("slot", { key: '0ee1caede699ad7bc0c529f6fd1dd85c63107136', onSlotchange: () => this.handleSlotChange() })));
187
+ return (index.h(index.Host, { key: '37f835a46c96f1f97019b611da8b6be2d6e1a8d7', "data-version": _package.version }, index.h("slot", { key: 'c2fc3d9080948fdcfbd8b2866730e76b770b87ba', onSlotchange: () => this.handleSlotChange() })));
190
188
  }
191
189
  get host() { return index.getElement(this); }
192
190
  };
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-ngUOBQot.js');
3
+ var index = require('./index-BqngpwGa.js');
4
4
  var placement = require('./placement-qEFR9hmI.js');
5
5
  require('./breakpoints-B0Olgvgc.js');
6
- var _package = require('./package-Bi-tiNRc.js');
7
- var oneOf = require('./one-of-BHyX4vYq.js');
8
- require('./create-validator-decorator-Bnx17kwi.js');
6
+ var _package = require('./package-B0PdQ0Dm.js');
7
+ var oneOf = require('./one-of-D1veqtsm.js');
8
+ require('./create-validator-decorator-4dRrOF30.js');
9
9
 
10
10
  const postTooltipCss = () => `:host{display:none}:host([open]){display:contents}post-popovercontainer[arrow]::after{position:absolute;content:"";inset:-13px;z-index:-1}post-popovercontainer{--post-current-bg:var(--post-scheme-color-surface-accent-bg);--post-current-fg:var(--post-scheme-color-surface-accent-fg);--post-popovercontainer-arrow-border-width:var(--post-device-border-width-alternative1);--post-popovercontainer-arrow-border-color:var(--post-scheme-color-surface-accent-fg)}post-popovercontainer::part(post-popovercontainer-border-mask){display:block;box-shadow:inset 0 0 0 var(--post-device-spacing-padding-14) var(--post-scheme-color-surface-accent-bg)}post-popovercontainer::part(post-popovercontainer-content){border:var(--post-device-border-width-alternative1) solid var(--post-scheme-color-surface-accent-fg);border-radius:var(--post-device-border-radius-1);padding:var(--post-device-spacing-padding-14) var(--post-device-spacing-padding-15);font-size:var(--post-device-font-size-9);max-width:var(--post-tooltip-max-width, 280px);width:inherit;word-wrap:break-word;white-space:normal}`;
11
11
 
@@ -45,8 +45,8 @@ const PostTooltip = class {
45
45
  }
46
46
  }
47
47
  /**
48
- * Programmatically display the tooltip.
49
- * @param target An element where the tooltip should be shown
48
+ * Programmatically display the tooltip,
49
+ * `target` is the HTML element the menu is anchored to.
50
50
  */
51
51
  async show(target) {
52
52
  if (this.open)
@@ -60,9 +60,8 @@ const PostTooltip = class {
60
60
  this.popoverRef.hide();
61
61
  }
62
62
  /**
63
- * Toggle tooltip display.
64
- * @param target An element where the tooltip should be shown
65
- * @param [force] Pass true to always show or false to always hide
63
+ * Toggle tooltip display,
64
+ * `target` is the HTML element the menu is anchored to.
66
65
  */
67
66
  async toggle(target, force) {
68
67
  this.popoverRef.toggle(target, force);
@@ -76,7 +75,7 @@ const PostTooltip = class {
76
75
  }
77
76
  render() {
78
77
  const popoverClass = `${this.arrow ? 'has-arrow' : ''}`;
79
- return (index.h(index.Host, { key: '8186d5446993e1c21c107a496239e56af2493e87', "data-version": _package.version }, index.h("post-popovercontainer", { key: '6f916cddf8f3b577b7920b02c001905b782b6ff7', safeSpace: "trapezoid", class: popoverClass, role: "tooltip", arrow: this.arrow, placement: this.placement, onPostBeforeToggle: e => this.handleBeforeToggle(e), ref: (el) => (this.popoverRef = el) }, index.h("slot", { key: '0443322d0ef00792b14e69fd55abaf42f64c0838' }))));
78
+ return (index.h(index.Host, { key: 'd49731becbb7395ec68cfae34d316a6248977b53', "data-version": _package.version }, index.h("post-popovercontainer", { key: '12da18a58c2143ef4c2ddff207d081d091e6a40e', safeSpace: "trapezoid", class: popoverClass, role: "tooltip", arrow: this.arrow, placement: this.placement, onPostBeforeToggle: e => this.handleBeforeToggle(e), ref: (el) => (this.popoverRef = el) }, index.h("slot", { key: '5f941c0311eff468be1c6abe7cbcdab8ba272e15' }))));
80
79
  }
81
80
  get host() { return index.getElement(this); }
82
81
  };
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var createValidatorDecorator = require('./create-validator-decorator-Bnx17kwi.js');
3
+ var createValidatorDecorator = require('./create-validator-decorator-4dRrOF30.js');
4
4
 
5
5
  /**
6
6
  * Property decorator that validates the property is not empty.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var createValidatorDecorator = require('./create-validator-decorator-Bnx17kwi.js');
3
+ var createValidatorDecorator = require('./create-validator-decorator-4dRrOF30.js');
4
4
 
5
5
  /**
6
6
  * Property decorator that validates the property value is of the specified type.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var createValidatorDecorator = require('./create-validator-decorator-Bnx17kwi.js');
3
+ var createValidatorDecorator = require('./create-validator-decorator-4dRrOF30.js');
4
4
 
5
5
  /**
6
6
  * Property decorator that validates the property value is a valid URL.
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "entries": [
3
- "components/post-date-picker/post-date-picker.js",
4
3
  "components/post-accordion/post-accordion.js",
5
4
  "components/post-accordion-item/post-accordion-item.js",
6
5
  "components/post-autocomplete/post-autocomplete.js",
@@ -12,6 +11,7 @@
12
11
  "components/post-closebutton/post-closebutton.js",
13
12
  "components/post-collapsible/post-collapsible.js",
14
13
  "components/post-collapsible-trigger/post-collapsible-trigger.js",
14
+ "components/post-date-picker/post-date-picker.js",
15
15
  "components/post-footer/post-footer.js",
16
16
  "components/post-header/post-header.js",
17
17
  "components/post-icon/post-icon.js",
@@ -20,7 +20,6 @@
20
20
  "components/post-linkarea/post-linkarea.js",
21
21
  "components/post-listbox/post-listbox.js",
22
22
  "components/post-listbox-option/post-listbox-option.js",
23
- "components/post-login-widget/post-login-widget.js",
24
23
  "components/post-logo/post-logo.js",
25
24
  "components/post-mainnavigation/post-mainnavigation.js",
26
25
  "components/post-megadropdown/post-megadropdown.js",
@@ -35,6 +34,8 @@
35
34
  "components/post-popovercontainer/post-popovercontainer.js",
36
35
  "components/post-progressbar/post-progressbar.js",
37
36
  "components/post-rating/post-rating.js",
37
+ "components/post-side-navigation/post-side-navigation.js",
38
+ "components/post-side-navigation-trigger/post-side-navigation-trigger.js",
38
39
  "components/post-stepper/post-stepper.js",
39
40
  "components/post-stepper-item/post-stepper-item.js",
40
41
  "components/post-tab-item/post-tab-item.js",
@@ -96,7 +96,7 @@ export class PostAccordion {
96
96
  });
97
97
  }
98
98
  render() {
99
- return (h(Host, { key: '27862337a90223900241d38a1b1d27cb5923acba', "data-version": version }, h("div", { key: 'e858da8742240aa57f72ac04a4253d5e88910295', class: "accordion" }, h("slot", { key: '004ab6089b44a2528ea56cffed3bef0791dae068', onSlotchange: () => this.registerAccordionItems() }))));
99
+ return (h(Host, { key: '4e3df581ac99aa14dfaaab836c90cee788607a76', "data-version": version }, h("div", { key: '425615868542199dc79439d04b9ca9ba815b05f3', class: "accordion" }, h("slot", { key: 'ba7c05b69377101275cd76ecffb476516ca52c83', onSlotchange: () => this.registerAccordionItems() }))));
100
100
  }
101
101
  static get is() { return "post-accordion"; }
102
102
  static get encapsulation() { return "shadow"; }