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

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 (443) hide show
  1. package/dist/{components/react/p-CJ80BZ06.js → cjs/breakpoints-Df03Ct7n.js} +103 -5
  2. package/dist/cjs/debounce-BsIBi_-2.js +13 -0
  3. package/dist/cjs/environment-BQE9Unf_.js +52 -0
  4. package/dist/cjs/{event-from-CLvtSUKf.js → event-from-CwMw19f8.js} +2 -2
  5. package/dist/cjs/fade-CPQhl1fP.js +26 -0
  6. package/dist/cjs/fade-slide-dPhQa-I1.js +38 -0
  7. package/dist/cjs/{get-focusable-children-Bx63XUQg.js → get-focusable-children-ChETM1wK.js} +29 -21
  8. package/dist/cjs/{get-root-CyMf3Vsd.js → get-root-CUAv4k4C.js} +2 -2
  9. package/dist/cjs/{index-B4gYpuJF.js → index-B4rc1pqu.js} +2150 -292
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/{package-DkJrv93P.js → package-uQ5oiSiN.js} +1 -1
  12. package/dist/cjs/post-accordion_2.cjs.entry.js +19 -15
  13. package/dist/cjs/post-avatar.cjs.entry.js +27 -17
  14. package/dist/cjs/post-back-to-top.cjs.entry.js +23 -43
  15. package/dist/cjs/post-banner.cjs.entry.js +15 -12
  16. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +14 -12
  17. package/dist/cjs/post-breadcrumbs.cjs.entry.js +33 -34
  18. package/dist/cjs/post-card-control.cjs.entry.js +42 -26
  19. package/dist/cjs/{post-closebutton_15.cjs.entry.js → post-closebutton_13.cjs.entry.js} +618 -531
  20. package/dist/cjs/post-collapsible_2.cjs.entry.js +41 -37
  21. package/dist/cjs/post-components.cjs.js +3 -3
  22. package/dist/cjs/post-env-test.cjs.entry.js +15 -0
  23. package/dist/cjs/post-footer.cjs.entry.js +24 -20
  24. package/dist/cjs/post-linkarea.cjs.entry.js +5 -5
  25. package/dist/cjs/post-pagination.cjs.entry.js +615 -0
  26. package/dist/cjs/post-popover-trigger.cjs.entry.js +54 -34
  27. package/dist/cjs/post-popover.cjs.entry.js +26 -17
  28. package/dist/cjs/post-rating.cjs.entry.js +24 -18
  29. package/dist/cjs/post-stepper-item.cjs.entry.js +5 -5
  30. package/dist/cjs/post-stepper.cjs.entry.js +40 -29
  31. package/dist/cjs/post-tab-item.cjs.entry.js +51 -0
  32. package/dist/cjs/post-tab-panel.cjs.entry.js +13 -11
  33. package/dist/cjs/post-tabs.cjs.entry.js +195 -40
  34. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +13 -11
  35. package/dist/cjs/post-tooltip.cjs.entry.js +14 -12
  36. package/dist/cjs/utils-s05L2ulk.js +26 -0
  37. package/dist/collection/animations/collapse.js +3 -3
  38. package/dist/collection/animations/fade-slide.js +33 -0
  39. package/dist/collection/animations/fade.js +19 -7
  40. package/dist/collection/animations/index.js +2 -0
  41. package/dist/collection/animations/slide.js +25 -21
  42. package/dist/collection/animations/types.js +14 -0
  43. package/dist/collection/animations/utils.js +8 -0
  44. package/dist/collection/collection-manifest.json +8 -8
  45. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  46. package/dist/collection/components/post-accordion/post-accordion.js +5 -4
  47. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  48. package/dist/collection/components/post-accordion-item/post-accordion-item.js +9 -8
  49. package/dist/collection/components/post-avatar/post-avatar.js +11 -11
  50. package/dist/collection/components/post-back-to-top/post-back-to-top.js +15 -15
  51. package/dist/collection/components/post-banner/post-banner.css +4 -1
  52. package/dist/collection/components/post-banner/post-banner.js +6 -5
  53. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +3 -3
  54. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +29 -29
  55. package/dist/collection/components/post-card-control/post-card-control.js +18 -18
  56. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
  57. package/dist/collection/components/post-closebutton/post-closebutton.js +4 -3
  58. package/dist/collection/components/post-collapsible/post-collapsible.js +28 -28
  59. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +3 -3
  60. package/dist/collection/components/post-footer/post-footer.css +1 -1
  61. package/dist/collection/components/post-footer/post-footer.js +18 -16
  62. package/dist/collection/components/post-header/post-header.css +1 -1
  63. package/dist/collection/components/post-header/post-header.js +144 -82
  64. package/dist/collection/components/post-icon/post-icon.js +18 -16
  65. package/dist/collection/components/post-language-menu/post-language-menu.css +1 -0
  66. package/dist/collection/components/{post-language-switch/post-language-switch.js → post-language-menu/post-language-menu.js} +45 -36
  67. package/dist/collection/components/post-language-menu-item/post-language-menu-item.css +1 -0
  68. package/dist/collection/components/{post-language-option/post-language-option.js → post-language-menu-item/post-language-menu-item.js} +24 -23
  69. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  70. package/dist/collection/components/post-logo/post-logo.css +3 -1
  71. package/dist/collection/components/post-logo/post-logo.js +3 -3
  72. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  73. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +41 -29
  74. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  75. package/dist/collection/components/post-megadropdown/post-megadropdown.js +183 -74
  76. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
  77. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +81 -75
  78. package/dist/collection/components/post-menu/post-menu.css +1 -1
  79. package/dist/collection/components/post-menu/post-menu.js +39 -38
  80. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
  81. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +3 -3
  82. package/dist/collection/components/post-pagination/post-pagination.css +1 -0
  83. package/dist/collection/components/post-pagination/post-pagination.js +838 -0
  84. package/dist/collection/components/post-popover/post-popover.js +22 -16
  85. package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +45 -29
  86. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  87. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +82 -131
  88. package/dist/collection/components/post-rating/post-rating.js +7 -7
  89. package/dist/collection/components/post-stepper/post-stepper.js +38 -35
  90. package/dist/collection/components/post-stepper-item/post-stepper-item.css +2 -2
  91. package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
  92. package/dist/collection/components/post-tab-item/post-tab-item.css +1 -0
  93. package/dist/collection/components/post-tab-item/post-tab-item.js +86 -0
  94. package/dist/collection/components/post-tab-panel/post-tab-panel.js +10 -10
  95. package/dist/collection/components/post-tabs/post-tabs.js +232 -59
  96. package/dist/collection/components/post-togglebutton/post-togglebutton.js +2 -2
  97. package/dist/collection/components/post-tooltip/post-tooltip.js +9 -27
  98. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +4 -4
  99. package/dist/collection/utils/environment.js +47 -2
  100. package/dist/collection/utils/event-from.js +2 -2
  101. package/dist/collection/utils/get-focusable-children.js +29 -21
  102. package/dist/collection/utils/is-motion-reduced.js +1 -1
  103. package/dist/collection/utils/tests/environment/hydrate-app-helper.js +16 -0
  104. package/dist/collection/utils/tests/environment/post-env-test.js +9 -0
  105. package/dist/component-names.json +4 -5
  106. package/dist/components/breakpoints.js +1 -178
  107. package/dist/components/debounce.js +1 -0
  108. package/dist/components/environment.js +1 -0
  109. package/dist/components/event-from.js +1 -119
  110. package/dist/components/fade-slide.js +1 -0
  111. package/dist/components/fade.js +1 -11
  112. package/dist/components/focusable.js +1 -5018
  113. package/dist/components/get-focusable-children.js +1 -64
  114. package/dist/components/get-root.js +1 -15
  115. package/dist/components/heading-levels.js +1 -3
  116. package/dist/components/index.browser.js +1 -14
  117. package/dist/components/index.d.ts +11 -10
  118. package/dist/components/index.js +1 -39
  119. package/dist/components/long-press-event.js +1 -257
  120. package/dist/components/package.js +1 -3
  121. package/dist/components/post-accordion-item.js +1 -6
  122. package/dist/components/post-accordion-item2.js +1 -113
  123. package/dist/components/post-accordion.js +1 -6
  124. package/dist/components/post-accordion2.js +1 -138
  125. package/dist/components/post-avatar.js +1 -217
  126. package/dist/components/post-back-to-top.js +1 -144
  127. package/dist/components/post-banner.js +1 -98
  128. package/dist/components/post-breadcrumb-item.js +1 -6
  129. package/dist/components/post-breadcrumb-item2.js +1 -79
  130. package/dist/components/post-breadcrumbs.js +1 -196
  131. package/dist/components/post-card-control.js +1 -326
  132. package/dist/components/post-closebutton.js +1 -6
  133. package/dist/components/post-closebutton2.js +1 -77
  134. package/dist/components/post-collapsible-trigger.js +1 -6
  135. package/dist/components/post-collapsible-trigger2.js +1 -136
  136. package/dist/components/post-collapsible.js +1 -6
  137. package/dist/components/post-collapsible2.js +1 -110
  138. package/dist/components/{post-list.d.ts → post-env-test.d.ts} +4 -4
  139. package/dist/components/post-env-test.js +1 -0
  140. package/dist/components/post-footer.js +1 -116
  141. package/dist/components/post-header.js +1 -372
  142. package/dist/components/post-icon.js +1 -6
  143. package/dist/components/post-icon2.js +1 -159
  144. package/dist/components/post-language-menu-item.d.ts +11 -0
  145. package/dist/components/post-language-menu-item.js +1 -0
  146. package/dist/components/{post-language-switch.d.ts → post-language-menu.d.ts} +4 -4
  147. package/dist/components/post-language-menu.js +1 -0
  148. package/dist/components/post-linkarea.js +1 -58
  149. package/dist/components/post-logo.js +1 -58
  150. package/dist/components/post-mainnavigation.js +1 -180
  151. package/dist/components/post-megadropdown-trigger.js +1 -136
  152. package/dist/components/post-megadropdown.js +1 -267
  153. package/dist/components/post-menu-item.js +1 -6
  154. package/dist/components/post-menu-item2.js +1 -30
  155. package/dist/components/post-menu-trigger.js +1 -6
  156. package/dist/components/post-menu-trigger2.js +1 -110
  157. package/dist/components/post-menu.js +1 -6
  158. package/dist/components/post-menu2.js +1 -242
  159. package/dist/components/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
  160. package/dist/components/post-pagination.js +1 -0
  161. package/dist/components/post-popover-trigger.js +1 -132
  162. package/dist/components/post-popover.js +1 -118
  163. package/dist/components/post-popovercontainer.js +1 -6
  164. package/dist/components/post-popovercontainer2.js +1 -3127
  165. package/dist/components/post-rating.js +1 -148
  166. package/dist/components/post-stepper-item.js +1 -33
  167. package/dist/components/post-stepper.js +1 -134
  168. package/dist/components/{post-list-item.d.ts → post-tab-item.d.ts} +4 -4
  169. package/dist/components/post-tab-item.js +1 -0
  170. package/dist/components/post-tab-panel.js +1 -54
  171. package/dist/components/post-tabs.js +1 -196
  172. package/dist/components/post-togglebutton.js +1 -56
  173. package/dist/components/post-togglebutton2.js +1 -0
  174. package/dist/components/post-tooltip-trigger.js +1 -206
  175. package/dist/components/post-tooltip.js +1 -114
  176. package/dist/components/react/index.d.ts +2 -0
  177. package/dist/components/react/index.js +1 -2315
  178. package/dist/components/react/p-B8YiQ3mz.js +1 -0
  179. package/dist/components/react/p-BC5nlBvn.js +1 -0
  180. package/dist/components/react/p-BLchVpF6.js +1 -14
  181. package/dist/components/react/p-BVCjnh6Q.js +1 -0
  182. package/dist/{post-components/p-CBFgkSgY.js → components/react/p-BVGcVycs.js} +1 -1
  183. package/dist/components/react/p-B_XPj2c8.js +1 -0
  184. package/dist/components/react/p-BllOMLDs.js +1 -0
  185. package/dist/components/react/p-BmRNjQUZ.js +1 -0
  186. package/dist/components/react/p-ByFh05IW.js +1 -0
  187. package/dist/components/react/p-C9hMpmsD.js +1 -0
  188. package/dist/components/react/p-CJ13r5fi.js +1 -0
  189. package/dist/components/react/p-CZvbetqX.js +1 -0
  190. package/dist/components/react/p-C_2k3G1c.js +1 -257
  191. package/dist/components/react/p-CoDiS_Ik.js +1 -0
  192. package/dist/components/react/p-Cou17ld8.js +1 -0
  193. package/dist/components/react/p-D5knoiyy.js +1 -0
  194. package/dist/components/react/p-D9DDtvFM.js +1 -0
  195. package/dist/components/react/p-DY2U5CQt.js +1 -0
  196. package/dist/components/react/p-DjIHLduJ.js +1 -3
  197. package/dist/components/react/p-DpATRD2W.js +1 -0
  198. package/dist/components/react/p-FxUVQ4Tx.js +1 -0
  199. package/dist/components/react/p-HygIVKXC.js +1 -5018
  200. package/dist/components/react/p-YR7U0Z_g.js +1 -0
  201. package/dist/components/react/p-ZeKXASQs.js +1 -0
  202. package/dist/components/react/p-r4txK0AC.js +1 -3
  203. package/dist/components/react/p-sSn0kXFi.js +1 -0
  204. package/dist/components/react/post-accordion-item.js +1 -6
  205. package/dist/components/react/post-accordion.js +1 -6
  206. package/dist/components/react/post-avatar.js +1 -218
  207. package/dist/components/react/post-back-to-top.js +1 -145
  208. package/dist/components/react/post-banner.js +1 -99
  209. package/dist/components/react/post-breadcrumb-item.js +1 -6
  210. package/dist/components/react/post-breadcrumbs.js +1 -197
  211. package/dist/components/react/post-card-control.js +1 -327
  212. package/dist/components/react/post-closebutton.js +1 -6
  213. package/dist/components/react/post-collapsible-trigger.js +1 -6
  214. package/dist/components/react/post-collapsible.js +1 -6
  215. package/dist/components/react/{post-list.d.ts → post-env-test.d.ts} +4 -4
  216. package/dist/components/react/post-env-test.js +1 -0
  217. package/dist/components/react/post-footer.js +1 -117
  218. package/dist/components/react/post-header.js +1 -373
  219. package/dist/components/react/post-icon.js +1 -6
  220. package/dist/components/react/post-language-menu-item.d.ts +11 -0
  221. package/dist/components/react/post-language-menu-item.js +1 -0
  222. package/dist/components/react/{post-language-option.d.ts → post-language-menu.d.ts} +4 -4
  223. package/dist/components/react/post-language-menu.js +1 -0
  224. package/dist/components/react/post-linkarea.js +1 -59
  225. package/dist/components/react/post-logo.js +1 -59
  226. package/dist/components/react/post-mainnavigation.js +1 -181
  227. package/dist/components/react/post-megadropdown-trigger.js +1 -137
  228. package/dist/components/react/post-megadropdown.js +1 -268
  229. package/dist/components/react/post-menu-item.js +1 -6
  230. package/dist/components/react/post-menu-trigger.js +1 -6
  231. package/dist/components/react/post-menu.js +1 -6
  232. package/dist/components/react/{post-tab-header.d.ts → post-pagination.d.ts} +4 -4
  233. package/dist/components/react/post-pagination.js +1 -0
  234. package/dist/components/react/post-popover-trigger.js +1 -133
  235. package/dist/components/react/post-popover.js +1 -119
  236. package/dist/components/react/post-popovercontainer.js +1 -6
  237. package/dist/components/react/post-rating.js +1 -149
  238. package/dist/components/react/post-stepper-item.js +1 -34
  239. package/dist/components/react/post-stepper.js +1 -135
  240. package/dist/components/react/{post-list-item.d.ts → post-tab-item.d.ts} +4 -4
  241. package/dist/components/react/post-tab-item.js +1 -0
  242. package/dist/components/react/post-tab-panel.js +1 -55
  243. package/dist/components/react/post-tabs.js +1 -197
  244. package/dist/components/react/post-togglebutton.js +1 -57
  245. package/dist/components/react/post-tooltip-trigger.js +1 -207
  246. package/dist/components/react/post-tooltip.js +1 -115
  247. package/dist/components/switch-variants.js +1 -3
  248. package/dist/components/utils.js +1 -0
  249. package/dist/docs.d.ts +11 -0
  250. package/dist/docs.json +873 -631
  251. package/dist/{cjs/breakpoints-CEkeixld.js → esm/breakpoints-DYoSKGHO.js} +89 -6
  252. package/dist/esm/debounce-C9hMpmsD.js +11 -0
  253. package/dist/esm/environment-CEmnRoA6.js +49 -0
  254. package/dist/{components/react/p-CzIKqBrS.js → esm/event-from-rEfV4v4a.js} +2 -2
  255. package/dist/esm/fade-DsgPYmAa.js +24 -0
  256. package/dist/esm/fade-slide-CvOvauo9.js +36 -0
  257. package/dist/esm/{get-focusable-children-D9ZHp2FP.js → get-focusable-children-BXNs2_sw.js} +29 -21
  258. package/dist/{components/react/p-CBFgkSgY.js → esm/get-root-CXfAA093.js} +1 -1
  259. package/dist/esm/{index-wEFJ-c34.js → index-CDZBzSdV.js} +2150 -292
  260. package/dist/esm/loader.js +3 -3
  261. package/dist/esm/package-CZvbetqX.js +3 -0
  262. package/dist/esm/post-accordion_2.entry.js +17 -13
  263. package/dist/esm/post-avatar.entry.js +22 -12
  264. package/dist/esm/post-back-to-top.entry.js +23 -43
  265. package/dist/esm/post-banner.entry.js +14 -11
  266. package/dist/esm/post-breadcrumb-item_2.entry.js +13 -11
  267. package/dist/esm/post-breadcrumbs.entry.js +31 -32
  268. package/dist/esm/post-card-control.entry.js +32 -16
  269. package/dist/esm/{post-closebutton_15.entry.js → post-closebutton_13.entry.js} +599 -510
  270. package/dist/esm/post-collapsible_2.entry.js +38 -34
  271. package/dist/esm/post-components.js +4 -4
  272. package/dist/esm/post-env-test.entry.js +13 -0
  273. package/dist/esm/post-footer.entry.js +21 -17
  274. package/dist/esm/post-linkarea.entry.js +5 -5
  275. package/dist/esm/post-pagination.entry.js +613 -0
  276. package/dist/esm/post-popover-trigger.entry.js +52 -32
  277. package/dist/esm/post-popover.entry.js +25 -16
  278. package/dist/esm/post-rating.entry.js +16 -10
  279. package/dist/esm/post-stepper-item.entry.js +5 -5
  280. package/dist/esm/post-stepper.entry.js +39 -28
  281. package/dist/esm/post-tab-item.entry.js +49 -0
  282. package/dist/esm/post-tab-panel.entry.js +13 -11
  283. package/dist/esm/post-tabs.entry.js +195 -40
  284. package/dist/esm/post-tooltip-trigger.entry.js +10 -8
  285. package/dist/esm/post-tooltip.entry.js +13 -11
  286. package/dist/esm/utils-CoDiS_Ik.js +24 -0
  287. package/dist/post-components/p-09ba7cf9.entry.js +1 -0
  288. package/dist/post-components/p-0c091898.entry.js +1 -0
  289. package/dist/post-components/{p-cd03e6f2.entry.js → p-0e97fcfd.entry.js} +1 -1
  290. package/dist/post-components/p-296f1dd5.entry.js +1 -0
  291. package/dist/post-components/p-32ad2b21.entry.js +1 -0
  292. package/dist/post-components/p-366c28cb.entry.js +1 -0
  293. package/dist/post-components/p-41ae68d5.entry.js +1 -0
  294. package/dist/post-components/p-448e7265.entry.js +1 -0
  295. package/dist/post-components/p-554da188.entry.js +1 -0
  296. package/dist/post-components/p-5912f8f1.entry.js +1 -0
  297. package/dist/post-components/p-790f300d.entry.js +1 -0
  298. package/dist/post-components/p-7ed5a493.entry.js +1 -0
  299. package/dist/post-components/p-85bea1b6.entry.js +1 -0
  300. package/dist/post-components/p-8bcff4d2.entry.js +1 -0
  301. package/dist/post-components/p-9dc9c245.entry.js +1 -0
  302. package/dist/post-components/p-B7ebLhHc.js +1 -0
  303. package/dist/post-components/p-BVCjnh6Q.js +1 -0
  304. package/dist/post-components/p-BXNs2_sw.js +1 -0
  305. package/dist/post-components/p-C9hMpmsD.js +1 -0
  306. package/dist/post-components/p-CDZBzSdV.js +2 -0
  307. package/dist/post-components/p-CEmnRoA6.js +1 -0
  308. package/dist/post-components/p-CZvbetqX.js +1 -0
  309. package/dist/post-components/p-CoDiS_Ik.js +1 -0
  310. package/dist/post-components/p-D5knoiyy.js +1 -0
  311. package/dist/post-components/p-DI-h_mEL.js +1 -0
  312. package/dist/post-components/p-a06f9695.entry.js +1 -0
  313. package/dist/post-components/p-a191f1df.entry.js +1 -0
  314. package/dist/post-components/p-c5d19d62.entry.js +1 -0
  315. package/dist/post-components/{p-24dc54d1.entry.js → p-c8c4d05b.entry.js} +1 -1
  316. package/dist/post-components/{p-57288cb2.entry.js → p-d1a5c980.entry.js} +1 -1
  317. package/dist/post-components/p-d4e2c556.entry.js +1 -0
  318. package/dist/post-components/p-f96a310c.entry.js +1 -0
  319. package/dist/post-components/p-fab2327d.entry.js +1 -0
  320. package/dist/post-components/p-rEfV4v4a.js +1 -0
  321. package/dist/post-components/post-components.css +1 -1
  322. package/dist/post-components/post-components.esm.js +1 -1
  323. package/dist/prebuild.js +46 -0
  324. package/dist/types/animations/collapse.d.ts +1 -0
  325. package/dist/types/animations/fade-slide.d.ts +11 -0
  326. package/dist/types/animations/fade.d.ts +2 -2
  327. package/dist/types/animations/index.d.ts +2 -0
  328. package/dist/types/animations/slide.d.ts +9 -2
  329. package/dist/types/animations/types.d.ts +13 -0
  330. package/dist/types/animations/utils.d.ts +2 -0
  331. package/dist/types/components/post-accordion-item/heading-levels.d.ts +1 -1
  332. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +2 -2
  333. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -2
  334. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +6 -6
  335. package/dist/types/components/post-collapsible/post-collapsible.d.ts +4 -5
  336. package/dist/types/components/post-footer/post-footer.d.ts +4 -4
  337. package/dist/types/components/post-header/post-header.d.ts +23 -13
  338. package/dist/types/components/{post-language-switch/post-language-switch.d.ts → post-language-menu/post-language-menu.d.ts} +12 -11
  339. package/dist/types/components/{post-language-option/post-language-option.d.ts → post-language-menu-item/post-language-menu-item.d.ts} +5 -5
  340. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +6 -5
  341. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +20 -2
  342. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +17 -23
  343. package/dist/types/components/post-menu/post-menu.d.ts +4 -4
  344. package/dist/types/components/post-pagination/post-pagination.d.ts +224 -0
  345. package/dist/types/components/post-popover/post-popover.d.ts +4 -3
  346. package/dist/types/components/post-popover-trigger/post-popover-trigger.d.ts +2 -1
  347. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +23 -21
  348. package/dist/types/components/post-rating/post-rating.d.ts +1 -1
  349. package/dist/types/components/post-stepper/post-stepper.d.ts +9 -8
  350. package/dist/types/components/post-tab-item/post-tab-item.d.ts +19 -0
  351. package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +3 -3
  352. package/dist/types/components/post-tabs/post-tabs.d.ts +33 -12
  353. package/dist/types/components/post-tooltip/post-tooltip.d.ts +1 -5
  354. package/dist/types/components.d.ts +322 -219
  355. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +9 -0
  356. package/dist/types/stencil-public-runtime.d.ts +147 -10
  357. package/dist/types/types/heading-levels.d.ts +1 -1
  358. package/dist/types/utils/environment.d.ts +25 -1
  359. package/dist/types/utils/get-focusable-children.d.ts +2 -2
  360. package/dist/types/utils/tests/environment/hydrate-app-helper.d.ts +5 -0
  361. package/dist/types/utils/tests/environment/post-env-test.d.ts +3 -0
  362. package/hydrate/index.d.ts +14 -0
  363. package/hydrate/index.js +7494 -2714
  364. package/hydrate/index.mjs +7493 -2715
  365. package/package.json +7 -8
  366. package/dist/cjs/fade-nS5zzDQS.js +0 -14
  367. package/dist/cjs/index-UFKR6Ok0.js +0 -98
  368. package/dist/cjs/post-tab-header.cjs.entry.js +0 -31
  369. package/dist/collection/animations/slide-and-fade.js +0 -25
  370. package/dist/collection/components/post-language-option/post-language-option.css +0 -1
  371. package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
  372. package/dist/collection/components/post-list/post-list.css +0 -1
  373. package/dist/collection/components/post-list/post-list.js +0 -97
  374. package/dist/collection/components/post-list-item/post-list-item.css +0 -1
  375. package/dist/collection/components/post-list-item/post-list-item.js +0 -26
  376. package/dist/collection/components/post-tab-header/post-tab-header.css +0 -1
  377. package/dist/collection/components/post-tab-header/post-tab-header.js +0 -65
  378. package/dist/components/index2.js +0 -89
  379. package/dist/components/post-language-option.d.ts +0 -11
  380. package/dist/components/post-language-option.js +0 -99
  381. package/dist/components/post-language-switch.js +0 -157
  382. package/dist/components/post-list-item.js +0 -38
  383. package/dist/components/post-list.js +0 -61
  384. package/dist/components/post-tab-header.js +0 -52
  385. package/dist/components/react/p-BVXiQdHq.js +0 -64
  386. package/dist/components/react/p-BhxZzOEC.js +0 -3
  387. package/dist/components/react/p-CSAMO7iJ.js +0 -243
  388. package/dist/components/react/p-CYkf_7Y5.js +0 -89
  389. package/dist/components/react/p-Ccrl2AQn.js +0 -111
  390. package/dist/components/react/p-CewRvBtg.js +0 -139
  391. package/dist/components/react/p-Cwiv86_f.js +0 -111
  392. package/dist/components/react/p-D2waO0Zc.js +0 -31
  393. package/dist/components/react/p-DBPOV12C.js +0 -160
  394. package/dist/components/react/p-DVGEExot.js +0 -3128
  395. package/dist/components/react/p-Djvj8fd2.js +0 -80
  396. package/dist/components/react/p-LtiDhYis.js +0 -137
  397. package/dist/components/react/p-SbIC4aZX.js +0 -11
  398. package/dist/components/react/p-XrZzCOKT.js +0 -78
  399. package/dist/components/react/p-v3pOrMNQ.js +0 -114
  400. package/dist/components/react/post-language-option.js +0 -100
  401. package/dist/components/react/post-language-switch.d.ts +0 -11
  402. package/dist/components/react/post-language-switch.js +0 -158
  403. package/dist/components/react/post-list-item.js +0 -39
  404. package/dist/components/react/post-list.js +0 -62
  405. package/dist/components/react/post-tab-header.js +0 -53
  406. package/dist/esm/breakpoints-CJ80BZ06.js +0 -178
  407. package/dist/esm/event-from-CzIKqBrS.js +0 -119
  408. package/dist/esm/fade-SbIC4aZX.js +0 -11
  409. package/dist/esm/get-root-BkQ3CrLq.js +0 -15
  410. package/dist/esm/index-Beaz8wEe.js +0 -89
  411. package/dist/esm/package-BhxZzOEC.js +0 -3
  412. package/dist/esm/post-tab-header.entry.js +0 -29
  413. package/dist/post-components/p-01e678c9.entry.js +0 -1
  414. package/dist/post-components/p-034a453f.entry.js +0 -1
  415. package/dist/post-components/p-15a4cdbf.entry.js +0 -1
  416. package/dist/post-components/p-2a2030bf.entry.js +0 -1
  417. package/dist/post-components/p-2ed84cc3.entry.js +0 -1
  418. package/dist/post-components/p-3228968f.entry.js +0 -1
  419. package/dist/post-components/p-3c01ddfe.entry.js +0 -1
  420. package/dist/post-components/p-748b1f01.entry.js +0 -1
  421. package/dist/post-components/p-7745e46e.entry.js +0 -1
  422. package/dist/post-components/p-7f635728.entry.js +0 -1
  423. package/dist/post-components/p-82c178a3.entry.js +0 -1
  424. package/dist/post-components/p-9b5f8319.entry.js +0 -1
  425. package/dist/post-components/p-Beaz8wEe.js +0 -1
  426. package/dist/post-components/p-BhxZzOEC.js +0 -1
  427. package/dist/post-components/p-CJ80BZ06.js +0 -1
  428. package/dist/post-components/p-D9ZHp2FP.js +0 -1
  429. package/dist/post-components/p-SbIC4aZX.js +0 -1
  430. package/dist/post-components/p-a9644e54.entry.js +0 -1
  431. package/dist/post-components/p-af030a3a.entry.js +0 -1
  432. package/dist/post-components/p-b8ba8139.entry.js +0 -1
  433. package/dist/post-components/p-db935e8e.entry.js +0 -1
  434. package/dist/post-components/p-e62e1f57.entry.js +0 -1
  435. package/dist/post-components/p-fb4b1641.entry.js +0 -1
  436. package/dist/post-components/p-wEFJ-c34.js +0 -2
  437. package/dist/types/animations/slide-and-fade.d.ts +0 -2
  438. package/dist/types/components/post-list/post-list.d.ts +0 -24
  439. package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
  440. package/dist/types/components/post-tab-header/post-tab-header.d.ts +0 -14
  441. /package/dist/collection/components/{post-language-switch → post-language-menu}/switch-variants.js +0 -0
  442. /package/dist/{post-components/p-CzIKqBrS.js → components/react/p-rEfV4v4a.js} +0 -0
  443. /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
@@ -1,7 +1,9 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-wEFJ-c34.js';
2
- import { v as version } from './package-BhxZzOEC.js';
3
- import { f as fadeOut, a as fadeIn } from './fade-SbIC4aZX.js';
4
- import './breakpoints-CJ80BZ06.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-CDZBzSdV.js';
2
+ import { v as version } from './package-CZvbetqX.js';
3
+ import { f as fade } from './fade-DsgPYmAa.js';
4
+ import { c as checkRequiredAndType } from './breakpoints-DYoSKGHO.js';
5
+ import './utils-CoDiS_Ik.js';
6
+ import './environment-CEmnRoA6.js';
5
7
 
6
8
  /**
7
9
  * Invoke the `componentOnReady` method if it is available, simulate it otherwise
@@ -24,49 +26,169 @@ function customOnReady(callback) {
24
26
  return setTimeout(callback);
25
27
  }
26
28
 
27
- 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)}";
29
+ 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)}`;
28
30
 
29
31
  const PostTabs = class {
30
32
  constructor(hostRef) {
31
33
  registerInstance(this, hostRef);
32
34
  this.postChange = createEvent(this, "postChange");
33
35
  this.isLoaded = false;
36
+ this.isNavigationMode = false;
34
37
  /**
35
38
  * When set to true, this property allows the tabs container to span the
39
+ * Changing this value after initialization has no effect.
36
40
  * full width of the screen, from edge to edge.
37
41
  */
38
42
  this.fullWidth = false;
39
43
  }
40
44
  get tabs() {
41
- return Array.from(this.host.querySelectorAll('post-tab-header')).filter(tab => tab.closest('post-tabs') === this.host);
45
+ return Array.from(this.host.querySelectorAll('post-tab-item')).filter(tab => tab.closest('post-tabs') === this.host);
46
+ }
47
+ get panels() {
48
+ return Array.from(this.host.querySelectorAll('post-tab-panel')).filter(panel => panel.closest('post-tabs') === this.host);
49
+ }
50
+ validateLabel() {
51
+ if (this.isNavigationMode) {
52
+ checkRequiredAndType(this, 'label', 'string');
53
+ }
54
+ }
55
+ componentWillRender() {
56
+ this.detectMode();
42
57
  }
43
58
  componentDidLoad() {
44
59
  this.moveMisplacedTabs();
60
+ this.moveMisplacedPanels();
45
61
  this.enableTabs();
46
- const initiallyActivePanel = this.activePanel || this.tabs[0]?.panel;
47
- void this.show(initiallyActivePanel);
48
- this.isLoaded = true;
62
+ this.setupContentObserver();
63
+ this.validateLabel();
64
+ if (this.isNavigationMode) {
65
+ const activeTab = this.findActiveNavigationTab();
66
+ if (activeTab) {
67
+ this.activateTab(activeTab);
68
+ }
69
+ }
70
+ else {
71
+ const tabToActivate = this.activeTab || this.tabs[0]?.name;
72
+ if (tabToActivate) {
73
+ void this.show(tabToActivate);
74
+ }
75
+ }
76
+ }
77
+ disconnectedCallback() {
78
+ if (this.showing) {
79
+ this.showing.cancel();
80
+ this.showing = null;
81
+ }
82
+ if (this.hiding) {
83
+ this.hiding.cancel();
84
+ this.hiding = null;
85
+ }
86
+ if (this.contentObserver) {
87
+ this.contentObserver.disconnect();
88
+ }
89
+ }
90
+ setupContentObserver() {
91
+ const config = {
92
+ childList: true,
93
+ subtree: true,
94
+ attributes: true,
95
+ attributeFilter: ['data-navigation-mode', 'aria-current'],
96
+ };
97
+ this.contentObserver = new MutationObserver(this.handleContentChange.bind(this));
98
+ this.contentObserver.observe(this.host, config);
99
+ }
100
+ handleContentChange(mutations) {
101
+ const shouldRedetect = this.shouldRedetectMode(mutations);
102
+ const ariaCurrentChanged = this.hasAriaCurrentChanged(mutations);
103
+ if (ariaCurrentChanged && this.isNavigationMode) {
104
+ this.updateActiveNavigationTab();
105
+ }
106
+ if (shouldRedetect) {
107
+ this.handleModeChange();
108
+ }
109
+ }
110
+ shouldRedetectMode(mutations) {
111
+ return mutations.some(mutation => {
112
+ if (mutation.type === 'childList') {
113
+ return mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0;
114
+ }
115
+ if (mutation.type === 'attributes' && mutation.attributeName === 'data-navigation-mode') {
116
+ return true;
117
+ }
118
+ return false;
119
+ });
120
+ }
121
+ hasAriaCurrentChanged(mutations) {
122
+ return mutations.some(mutation => mutation.type === 'attributes' && mutation.attributeName === 'aria-current');
123
+ }
124
+ updateActiveNavigationTab() {
125
+ const activeTab = this.findActiveNavigationTab();
126
+ if (activeTab && activeTab !== this.currentActiveTab) {
127
+ this.activateTab(activeTab);
128
+ }
129
+ }
130
+ handleModeChange() {
131
+ const previousMode = this.isNavigationMode;
132
+ this.detectMode();
133
+ if (previousMode !== this.isNavigationMode) {
134
+ this.enableTabs();
135
+ this.initializeActiveTab();
136
+ }
137
+ }
138
+ initializeActiveTab() {
139
+ if (this.isNavigationMode) {
140
+ const activeTab = this.findActiveNavigationTab();
141
+ if (activeTab) {
142
+ this.activateTab(activeTab);
143
+ }
144
+ }
145
+ else {
146
+ const tabToActivate = this.activeTab || this.tabs[0]?.name;
147
+ if (tabToActivate) {
148
+ void this.show(tabToActivate);
149
+ }
150
+ }
151
+ }
152
+ detectMode() {
153
+ // Check for navigation mode by looking for anchor elements in tabs
154
+ // This works even before post-tab-item sets data-navigation-mode attribute
155
+ const hasNavigationTabs = this.tabs.some(tab => {
156
+ const hasAnchor = tab.querySelector('a') !== null;
157
+ const navModeAttr = tab.getAttribute('data-navigation-mode') === 'true';
158
+ return hasAnchor || navModeAttr;
159
+ });
160
+ const hasPanels = this.panels.length > 0;
161
+ if (hasNavigationTabs && hasPanels) {
162
+ throw new Error('PostTabs: Mixed mode detected. Cannot use both navigation mode (anchor elements) and panel mode (post-tab-panel elements) at the same time.');
163
+ }
164
+ this.isNavigationMode = hasNavigationTabs;
165
+ }
166
+ findActiveNavigationTab() {
167
+ return (this.tabs.find(tab => {
168
+ const anchor = tab.querySelector('a[aria-current="page"]');
169
+ return anchor !== null;
170
+ }) || null);
49
171
  }
50
172
  /**
51
173
  * Shows the panel with the given name and selects its associated tab.
52
174
  * Any other panel that was previously shown becomes hidden and its associated tab is unselected.
53
175
  */
54
- async show(panelName) {
176
+ async show(tabName) {
55
177
  // do nothing if the tab is already active
56
- if (panelName === this.activeTab?.panel) {
178
+ if (tabName === this.currentActiveTab?.name) {
57
179
  return;
58
180
  }
59
- const previousTab = this.activeTab;
60
- const newTab = this.host.querySelector(`post-tab-header[panel=${panelName}]`);
181
+ const previousTab = this.currentActiveTab;
182
+ const newTab = this.host.querySelector(`post-tab-item[name=${tabName}]`);
61
183
  this.activateTab(newTab);
62
184
  // if a panel is currently being displayed, remove it from the view and complete the associated animation
63
185
  if (this.showing) {
64
- this.showing.effect['target'].style.display = 'none';
65
186
  this.showing.finish();
187
+ this.showing = null;
66
188
  }
67
189
  // hide the currently visible panel only if no other animation is running
68
190
  if (previousTab && !this.showing && !this.hiding)
69
- this.hidePanel(previousTab.panel);
191
+ this.hidePanel(previousTab.name);
70
192
  // wait for any hiding animation to complete before showing the selected tab
71
193
  if (this.hiding)
72
194
  await this.hiding.finished;
@@ -75,15 +197,25 @@ const PostTabs = class {
75
197
  if (this.showing)
76
198
  await this.showing.finished;
77
199
  if (this.isLoaded)
78
- this.postChange.emit(this.activeTab.panel);
200
+ this.postChange.emit(this.currentActiveTab.name);
79
201
  }
80
202
  moveMisplacedTabs() {
81
203
  if (!this.tabs)
82
204
  return;
83
205
  this.tabs.forEach(tab => {
84
- if (tab.getAttribute('slot') === 'tabs')
85
- return;
86
- tab.setAttribute('slot', 'tabs');
206
+ // Tab items should go in the default slot, so remove any slot attribute
207
+ if (tab.getAttribute('slot')) {
208
+ tab.removeAttribute('slot');
209
+ }
210
+ });
211
+ }
212
+ moveMisplacedPanels() {
213
+ if (!this.panels)
214
+ return;
215
+ this.panels.forEach(panel => {
216
+ if (panel.getAttribute('slot') !== 'panels') {
217
+ panel.setAttribute('slot', 'panels');
218
+ }
87
219
  });
88
220
  }
89
221
  enableTabs() {
@@ -91,19 +223,25 @@ const PostTabs = class {
91
223
  return;
92
224
  this.tabs.forEach(async (tab) => {
93
225
  await componentOnReady(tab);
94
- // if the tab has an "aria-controls" attribute it was already linked to its panel: do nothing
226
+ // In navigation mode, navigation is handled by the consumer's routing
227
+ if (this.isNavigationMode) {
228
+ return;
229
+ }
230
+ // Panel mode: set up ARIA relationships and event handlers
95
231
  if (tab.getAttribute('aria-controls'))
96
232
  return;
97
- const tabPanel = this.getPanel(tab.panel);
98
- tab.setAttribute('aria-controls', tabPanel.id);
99
- tabPanel.setAttribute('aria-labelledby', tab.id);
233
+ const tabPanel = this.getPanel(tab.name);
234
+ if (tabPanel) {
235
+ tab.setAttribute('aria-controls', tabPanel.id);
236
+ tabPanel.setAttribute('aria-labelledby', tab.id);
237
+ }
100
238
  tab.addEventListener('click', () => {
101
- void this.show(tab.panel);
239
+ void this.show(tab.name);
102
240
  });
103
241
  tab.addEventListener('keydown', (e) => {
104
242
  if (e.key === 'Enter' || e.key === ' ') {
105
243
  e.preventDefault();
106
- void this.show(tab.panel);
244
+ void this.show(tab.name);
107
245
  }
108
246
  });
109
247
  tab.addEventListener('keydown', (e) => {
@@ -112,44 +250,51 @@ const PostTabs = class {
112
250
  });
113
251
  });
114
252
  // if the currently active tab was removed from the DOM then select the first one
115
- if (this.activeTab && !this.activeTab.isConnected) {
116
- void this.show(this.tabs[0]?.panel);
253
+ if (this.currentActiveTab && !this.currentActiveTab.isConnected) {
254
+ void this.show(this.tabs[0]?.name);
117
255
  }
118
256
  }
119
257
  activateTab(tab) {
120
- if (this.activeTab) {
121
- this.activeTab.setAttribute('aria-selected', 'false');
122
- this.activeTab.setAttribute('tabindex', '-1');
123
- this.activeTab.classList.remove('active');
258
+ // Deactivate previous tab
259
+ if (this.currentActiveTab) {
260
+ this.currentActiveTab.classList.remove('active');
261
+ if (!this.isNavigationMode) {
262
+ this.currentActiveTab.setAttribute('aria-selected', 'false');
263
+ this.currentActiveTab.setAttribute('tabindex', '-1');
264
+ }
124
265
  }
125
- tab.setAttribute('aria-selected', 'true');
126
- tab.setAttribute('tabindex', '0');
127
266
  tab.classList.add('active');
128
- this.activeTab = tab;
267
+ if (!this.isNavigationMode) {
268
+ tab.setAttribute('aria-selected', 'true');
269
+ tab.setAttribute('tabindex', '0');
270
+ }
271
+ this.currentActiveTab = tab;
129
272
  }
130
273
  hidePanel(panelName) {
131
274
  const previousPanel = this.getPanel(panelName);
132
275
  if (!previousPanel)
133
276
  return;
134
- this.hiding = fadeOut(previousPanel);
277
+ this.hiding = fade(previousPanel, 'out');
135
278
  this.hiding.onfinish = () => {
136
279
  previousPanel.style.display = 'none';
137
280
  this.hiding = null;
138
281
  };
139
282
  }
140
283
  showSelectedPanel() {
141
- const panel = this.getPanel(this.activeTab.panel);
284
+ const panel = this.getPanel(this.currentActiveTab.name);
285
+ if (!panel)
286
+ return;
142
287
  panel.style.display = 'block';
143
288
  // prevent the initially selected panel from fading in
144
289
  if (!this.isLoaded)
145
290
  return;
146
- this.showing = fadeIn(panel);
291
+ this.showing = fade(panel, 'in');
147
292
  this.showing.onfinish = () => {
148
293
  this.showing = null;
149
294
  };
150
295
  }
151
296
  getPanel(name) {
152
- return this.host.querySelector(`post-tab-panel[name=${name}]`);
297
+ return this.host.querySelector(`post-tab-panel[for=${name}]`);
153
298
  }
154
299
  navigateTabs(tab, key) {
155
300
  const activeTabIndex = Array.from(this.tabs).indexOf(tab);
@@ -163,12 +308,22 @@ const PostTabs = class {
163
308
  if (!nextTab)
164
309
  return;
165
310
  nextTab.focus();
311
+ void this.show(nextTab.name);
166
312
  }
167
313
  render() {
168
- 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() }))));
314
+ const TabsContainer = this.isNavigationMode ? 'nav' : 'div';
315
+ return (h(Host, { key: '89edc2a79734ee9cd60c9db0f01e2f05f2849071', "data-version": version }, h("div", { key: 'd85aa2320cef490831bf59117b54dc7c4edd9d65', class: "tabs-wrapper", part: "post-tabs" }, h(TabsContainer, { key: 'e4aa70db5e2d0f3391d8ebfaab6374c1966d6678', class: "tabs", role: this.isNavigationMode ? undefined : 'tablist', "aria-label": this.isNavigationMode ? this.label : undefined }, h("slot", { key: '7ab6f1e7bbe24ef642d5917b810b62e362ae2dc1', onSlotchange: () => {
316
+ this.moveMisplacedTabs();
317
+ this.enableTabs();
318
+ } }))), !this.isNavigationMode && (h("div", { key: '354eafcea40f6aa9bbb206a93bc2155eac725bb4', class: "tab-content", part: "post-tabs-content" }, h("slot", { key: 'a133b48cea08eade14a954933062380edf112523', name: "panels", onSlotchange: () => this.moveMisplacedPanels() })))));
169
319
  }
170
320
  get host() { return getElement(this); }
321
+ static get watchers() { return {
322
+ "label": [{
323
+ "validateLabel": 0
324
+ }]
325
+ }; }
171
326
  };
172
- PostTabs.style = postTabsCss;
327
+ PostTabs.style = postTabsCss();
173
328
 
174
329
  export { PostTabs as post_tabs };
@@ -1,10 +1,10 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-wEFJ-c34.js';
2
- import { I as IS_BROWSER } from './breakpoints-CJ80BZ06.js';
3
- import { a as checkEmptyOrType } from './index-Beaz8wEe.js';
4
- import { v as version } from './package-BhxZzOEC.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-CDZBzSdV.js';
2
+ import { a as IS_BROWSER } from './environment-CEmnRoA6.js';
3
+ import { b as checkEmptyOrType } from './breakpoints-DYoSKGHO.js';
4
+ import { v as version } from './package-CZvbetqX.js';
5
5
  import { i as isFocusable } from './focusable-HygIVKXC.js';
6
6
 
7
- const postTooltipTriggerCss = "post-tooltip-trigger{vertical-align:top}:host{cursor:pointer}";
7
+ const postTooltipTriggerCss = () => `post-tooltip-trigger{vertical-align:top}:host{cursor:pointer}`;
8
8
 
9
9
  const TRIGGER_EVENTS = ['pointerenter', 'pointerleave', 'focusin', 'focusout', 'long-press'];
10
10
  if (IS_BROWSER) {
@@ -171,13 +171,15 @@ const PostTooltipTrigger = class {
171
171
  this.tooltip?.hide();
172
172
  }
173
173
  render() {
174
- return (h(Host, { key: '48246523aabaf1851e05d0273346d3e26e7ad866', "data-version": version }, h("slot", { key: '0442aeadddd59642c317b6f10c93008adf3e6585', onSlotchange: () => this.handleSlotChange() })));
174
+ return (h(Host, { key: '4f6165e23284794b677748c495401ed7c110d134', "data-version": version }, h("slot", { key: '87a8d412ed0e3fb145853aebb9426dfe13677853', onSlotchange: () => this.handleSlotChange() })));
175
175
  }
176
176
  get host() { return getElement(this); }
177
177
  static get watchers() { return {
178
- "for": ["validateControlFor"]
178
+ "for": [{
179
+ "validateControlFor": 0
180
+ }]
179
181
  }; }
180
182
  };
181
- PostTooltipTrigger.style = postTooltipTriggerCss;
183
+ PostTooltipTrigger.style = postTooltipTriggerCss();
182
184
 
183
185
  export { PostTooltipTrigger as post_tooltip_trigger };
@@ -1,10 +1,10 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-wEFJ-c34.js';
2
- import { v as version } from './package-BhxZzOEC.js';
3
- import { d as checkEmptyOrOneOf } from './index-Beaz8wEe.js';
4
- import './breakpoints-CJ80BZ06.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-CDZBzSdV.js';
2
+ import { v as version } from './package-CZvbetqX.js';
3
+ import { f as checkEmptyOrOneOf } from './breakpoints-DYoSKGHO.js';
5
4
  import { P as PLACEMENT_TYPES } from './placement-DRiVosES.js';
5
+ import './environment-CEmnRoA6.js';
6
6
 
7
- const postTooltipCss = ":host{display:none}:host([open]){display:contents}post-popovercontainer[arrow]::after{position:absolute;content:\"\";inset:-13px;z-index:-1}post-popovercontainer>div{color:var(--post-current-fg);background-color:var(--post-current-bg);padding:var(--post-core-dimension-4) var(--post-core-dimension-8);max-width:var(--post-tooltip-max-width, 280px);width:inherit;min-height:32px;word-wrap:break-word;white-space:normal}";
7
+ const postTooltipCss = () => `:host{display:none}:host([open]){display:contents}post-popovercontainer[arrow]::after{position:absolute;content:"";inset:-13px;z-index:-1}post-popovercontainer>div{color:var(--post-current-fg);background-color:var(--post-current-bg);padding:var(--post-core-dimension-4) var(--post-core-dimension-8);max-width:var(--post-tooltip-max-width, 280px);width:inherit;min-height:32px;word-wrap:break-word;white-space:normal}`;
8
8
 
9
9
  const PostTooltip = class {
10
10
  constructor(hostRef) {
@@ -44,7 +44,7 @@ const PostTooltip = class {
44
44
  async show(target) {
45
45
  if (this.open)
46
46
  return;
47
- this.popoverRef.show(target);
47
+ await this.popoverRef.show(target);
48
48
  }
49
49
  /**
50
50
  * Programmatically hide this tooltip.
@@ -64,18 +64,20 @@ const PostTooltip = class {
64
64
  * Set the open state based on the toggle event.
65
65
  * @param e Popovercontainer toggle event
66
66
  */
67
- handleToggle(e) {
68
- this.open = e.detail.isOpen;
67
+ handleBeforeToggle(e) {
68
+ this.open = e.detail.willOpen;
69
69
  }
70
70
  render() {
71
71
  const popoverClass = `${this.arrow ? 'has-arrow' : ''}`;
72
- 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' }))));
72
+ return (h(Host, { key: '5de53c10c2556ddb974a65ba06e27ccc99311762', "data-version": version }, h("post-popovercontainer", { key: 'ae3a26fc69d983884eb5aee2b024e74d91983c73', safeSpace: "trapezoid", class: popoverClass, role: "tooltip", arrow: this.arrow, placement: this.placement, onPostBeforeToggle: e => this.handleBeforeToggle(e), ref: (el) => (this.popoverRef = el) }, h("slot", { key: '1fd537504554e094894f8549de5c29c515322866' }))));
73
73
  }
74
74
  get host() { return getElement(this); }
75
75
  static get watchers() { return {
76
- "placement": ["validatePlacement"]
76
+ "placement": [{
77
+ "validatePlacement": 0
78
+ }]
77
79
  }; }
78
80
  };
79
- PostTooltip.style = postTooltipCss;
81
+ PostTooltip.style = postTooltipCss();
80
82
 
81
83
  export { PostTooltip as post_tooltip };
@@ -0,0 +1,24 @@
1
+ const headerEase = {
2
+ x1: 0.8,
3
+ y1: 0.2,
4
+ x2: 0.8,
5
+ y2: 0.7,
6
+ };
7
+ const PRESET_MAP = {
8
+ 'linear': 'linear',
9
+ 'ease': 'ease',
10
+ 'ease-in': 'ease-in',
11
+ 'ease-out': 'ease-out',
12
+ 'ease-in-out': 'ease-in-out',
13
+ 'headerEase': headerEase,
14
+ };
15
+
16
+ function resolveEasing(easing) {
17
+ const e = typeof easing === 'string' ? (PRESET_MAP[easing] ?? easing) : easing;
18
+ if (typeof e === 'string')
19
+ return e;
20
+ const { x1, y1, x2, y2 } = e;
21
+ return `cubic-bezier(${x1}, ${y1}, ${x2}, ${y2})`;
22
+ }
23
+
24
+ export { resolveEasing as r };
@@ -0,0 +1 @@
1
+ import{r as t,h as o,H as e,a as s}from"./p-CDZBzSdV.js";import{v as i}from"./p-CZvbetqX.js";import{f as a}from"./p-B7ebLhHc.js";import{P as r}from"./p-DRiVosES.js";import"./p-CEmnRoA6.js";const n=class{constructor(o){t(this,o),this.placement="top",this.arrow=!1,this.open=!1}validatePlacement(){a(this,"placement",r)}componentWillLoad(){this.validatePlacement()}componentDidLoad(){this.host.id||console.error("No id set: <post-tooltip> must have an id, linking it to it's target element with a <post-tooltip-trigger> element.")}async show(t){this.open||await this.popoverRef.show(t)}async hide(){this.popoverRef.hide()}async toggle(t,o){this.popoverRef.toggle(t,o)}handleBeforeToggle(t){this.open=t.detail.willOpen}render(){return o(e,{key:"5de53c10c2556ddb974a65ba06e27ccc99311762","data-version":i},o("post-popovercontainer",{key:"ae3a26fc69d983884eb5aee2b024e74d91983c73",safeSpace:"trapezoid",class:this.arrow?"has-arrow":"",role:"tooltip",arrow:this.arrow,placement:this.placement,onPostBeforeToggle:t=>this.handleBeforeToggle(t),ref:t=>this.popoverRef=t},o("slot",{key:"1fd537504554e094894f8549de5c29c515322866"})))}get host(){return s(this)}static get watchers(){return{placement:[{validatePlacement:0}]}}};n.style=':host{display:none}:host([open]){display:contents}post-popovercontainer[arrow]::after{position:absolute;content:"";inset:-13px;z-index:-1}post-popovercontainer>div{color:var(--post-current-fg);background-color:var(--post-current-bg);padding:var(--post-core-dimension-4) var(--post-core-dimension-8);max-width:var(--post-tooltip-max-width, 280px);width:inherit;min-height:32px;word-wrap:break-word;white-space:normal}';export{n as post_tooltip}
@@ -0,0 +1 @@
1
+ import{r as e,h as t,H as i,a as o}from"./p-CDZBzSdV.js";import{v as r}from"./p-CZvbetqX.js";import{a as s,c as a}from"./p-B7ebLhHc.js";import{d as c}from"./p-C9hMpmsD.js";import"./p-CEmnRoA6.js";const n=class{constructor(t){e(this,t),this.breadcrumbItems=[],this.waitForBreadcrumbsRef=c((()=>{this.breadcrumbsNavRef?.clientWidth>0?this.checkConcatenation():this.waitForBreadcrumbsRef()}),50),this.handleResize=()=>{window.innerWidth!==this.lastWindowWidth&&(this.lastWindowWidth=window.innerWidth,this.checkConcatenation())}}validateHomeUrl(){s(this,"homeUrl")}validateTextHome(){a(this,"textHome","string")}validateTextBreadcrumbs(){a(this,"textBreadcrumbs","string")}validateTextMoreItems(){a(this,"textMoreItems","string")}componentWillLoad(){this.updateBreadcrumbItems()}componentDidLoad(){this.validateHomeUrl(),this.validateTextHome(),this.validateTextBreadcrumbs(),this.validateTextMoreItems(),window.addEventListener("resize",this.handleResize),this.waitForBreadcrumbsRef()}disconnectedCallback(){window.removeEventListener("resize",this.handleResize)}updateBreadcrumbItems(){this.breadcrumbItems=Array.from(this.host.querySelectorAll("post-breadcrumb-item")).map((e=>({text:e.textContent||"",url:e.getAttribute("url")||""}))),this.lastItem=this.breadcrumbItems[this.breadcrumbItems.length-1]}getParentWidth(){let e=this.host.parentNode;for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e instanceof HTMLElement?e.clientWidth:window.innerWidth}checkConcatenation(){if(!this.breadcrumbsNavRef)return;const e=this.getParentWidth(),t=Array.from(this.host.shadowRoot?.querySelectorAll(".hidden-breadcrumb-item")||[]).reduce(((e,t)=>e+t.getBoundingClientRect().width),0);this.isConcatenated=t>e}handleBreadcrumbItemClick(){if(this.host.shadowRoot){const e=this.host.shadowRoot?.querySelector(".menu-trigger-wrapper")?.querySelector("button");e&&e.click()}}render(){const e=this.breadcrumbItems.slice(0,-1);return t(i,{key:"f3c59a174634a6ca6d3b9beceb455563275d04a6","data-version":r},t("nav",{key:"cdc7cd4bbad53c57cdcbb735804b548f20b39523","aria-label":this.textBreadcrumbs,class:"breadcrumbs-nav",ref:e=>this.breadcrumbsNavRef=e},t("ol",{key:"419658d8f58822c3fbf8e58bfc0069f629fc46d9",class:"no-list breadcrumbs-list"},t("li",{key:"52348e55a01f3236957e23fc502cce6cbb4eadb9"},t("a",{key:"8d1d8acff9f33c52e82ff4ce920c3f6a8418cdaa",href:this.homeUrl,class:"breadcrumb-link"},t("span",{key:"1aca58d1afb96580f4b2f744dd972a1556fd9ad3",class:"visually-hidden"},this.textHome),t("post-icon",{key:"dfe6d8b330f718408ac82024ebd89e13382119bf",name:"home",class:"home-icon"}))),this.isConcatenated?t("li",{class:"menu-trigger-wrapper"},t("post-icon",{name:"chevronright",class:"breadcrumb-item-icon"}),t("div",{class:"actual-menu"},t("post-menu-trigger",{for:"breadcrumb-menu",tabIndex:0,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),this.handleBreadcrumbItemClick())}},t("button",{class:"btn",tabIndex:-1},"...")),t("post-menu",{id:"breadcrumb-menu",label:this.textMoreItems},e.map((e=>t("post-menu-item",{key:e.url||e.text,class:"breadcrumb-item",onKeyDown:e=>{if("Enter"===e.key||" "===e.key){const t=e.currentTarget.querySelector("a");t?.click(),e.preventDefault()}}},e.url?t("a",{href:e.url},e.text):t("span",null,e.text))))))):e.map((e=>t("li",null,t("post-breadcrumb-item",{url:e.url,key:e.url||e.text},e.text)))),this.lastItem&&t("li",{key:"13d8b9834218f995a2e7404227c288ef6e87f583","aria-current":"page"},t("post-breadcrumb-item",{key:"eb1b375fa201d81fa84a3b30cff0f64f58bfd3a4",url:this.lastItem.url,tabindex:-1},this.lastItem.text))),t("div",{key:"5527023bc4109b42b20202404246a74bd3120eff",class:"hidden-items"},t("a",{key:"0a7d14bb5d482790011c816599ddf663a2b32e80",href:this.homeUrl,class:"hidden-breadcrumb-item"},t("span",{key:"715281201fd630b00306add80d68c87ade21f83c",class:"visually-hidden"},this.textHome),t("post-icon",{key:"e8c78c08c0eff93d180e927d4ebe6c7e4b5fd224",name:"home",class:"home-icon"})),this.breadcrumbItems.map((e=>t("post-breadcrumb-item",{url:e.url,key:`hidden-${e.url||e.text}`,class:"hidden-breadcrumb-item"},e.text))))))}get host(){return o(this)}static get watchers(){return{homeUrl:[{validateHomeUrl:0}],textHome:[{validateTextHome:0}],textBreadcrumbs:[{validateTextBreadcrumbs:0}],textMoreItems:[{validateTextMoreItems:0}]}}};n.style=":host{display:flex;align-items:center}.breadcrumbs-nav{display:flex;align-items:center}.hidden-items{gap:var(--post-device-spacing-gap-inline-4);position:absolute;height:0;overflow:hidden;white-space:nowrap}.breadcrumbs-list{display:flex;flex-wrap:nowrap;position:relative;margin:0;padding:0;list-style:none;align-items:center;height:100%;gap:var(--post-device-spacing-gap-inline-4)}post-icon{display:inline-block;box-sizing:border-box;color:var(--post-scheme-color-interactive-primary-enabled-fg1);height:var(--post-core-dimension-24);width:var(--post-core-dimension-24)}.breadcrumb-item-icon{padding-block:var(--post-core-dimension-4);padding-inline:var(--post-core-dimension-4)}li a{display:flex;align-items:center}li a{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}li a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){li a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){li a:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){li a:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}li a:focus{border-radius:var(--post-device-border-radius-focus)}li a .home-icon{padding-block:var(--post-device-spacing-padding-4);padding-inline:var(--post-device-spacing-padding-4)}li a .home-icon:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){li a .home-icon a,li a .home-icon:focus,li a .home-icon:hover{color:CanvasText !important}}.menu-trigger-wrapper{display:flex;align-items:center;gap:var(--post-device-spacing-gap-inline-5)}.actual-menu{display:flex;align-items:center}post-menu-trigger{display:flex;align-items:center;padding-block:var(--post-device-spacing-padding-block-7)}post-menu-trigger{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}post-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-trigger:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){post-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-trigger:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}post-menu-trigger:focus{border-radius:var(--post-device-border-radius-focus)}post-menu-trigger button{background:none;border:none;line-height:150%;font-size:var(--post-device-font-size-6);cursor:pointer;padding:0;color:var(--post-scheme-color-interactive-primary-enabled-fg1)}post-menu-trigger button:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-trigger button a,post-menu-trigger button:focus,post-menu-trigger button:hover{color:LinkText !important}}post-menu::part(popover-container){display:flex;flex-direction:column;align-items:start;padding:.6rem;gap:var(--post-device-spacing-gap-inline-4)}post-menu::part(popover-container) ::slotted(post-menu-item:not(:last-child)){margin-block-end:var(--post-device-spacing-gap-inline-4)}.breadcrumb-item{display:flex;align-items:center;justify-content:center;gap:var(--post-device-spacing-gap-inline-5)}.breadcrumb-item span:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}.breadcrumb-item span:focus-visible{border-radius:var(--post-device-border-radius-focus)}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item a,.breadcrumb-item:focus,.breadcrumb-item:hover{color:LinkText !important}.breadcrumb-item:visited{color:VisitedText !important}}li[aria-current=page] post-breadcrumb-item{pointer-events:none;color:var(--post-scheme-color-interactive-primary-selected-fg1);font-weight:var(--post-device-font-weight-bold);text-decoration:var(--post-core-text-decoration-none)}li[aria-current=page] post-breadcrumb-item:hover{color:var(--post-scheme-color-interactive-primary-selected-fg1);text-decoration:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}";export{n as post_breadcrumbs}
@@ -1 +1 @@
1
- import{r as t,h as s,H as i,a as e}from"./p-wEFJ-c34.js";import{I as o}from"./p-CJ80BZ06.js";import{a as r}from"./p-Beaz8wEe.js";import{v as h}from"./p-BhxZzOEC.js";import{i as n}from"./p-HygIVKXC.js";const a=["pointerenter","pointerleave","focusin","focusout","long-press"];o&&(async()=>{await import("./p-C_2k3G1c.js")})();const l=class{constructor(s){t(this,s),this.delay=0,this.trigger=null,this.delayTimeout=null,this.boundTriggerHandler=this.handleTriggerEvent.bind(this),this.boundTooltipHandler=this.handleTooltipEvent.bind(this)}validateControlFor(){r(this,"for","string")}get tooltip(){if(!o)return null;const t=document.getElementById(this.for);return"post-tooltip"===t?.localName?t:null}componentDidLoad(){this.setupTrigger(),this.attachListeners(),this.attachTooltipListeners()}disconnectedCallback(){this.removeListeners(),this.removeTooltipListeners(),this.cleanupTrigger(),this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null)}handleSlotChange(){this.cleanupTrigger(),this.setupTrigger()}cleanupTrigger(){if(this.trigger){const t=this.trigger.getAttribute("aria-describedby")||"";if(t.includes(this.for)){const s=t.split(" ").filter((t=>t!==this.for)).join(" ");s?this.trigger.setAttribute("aria-describedby",s):this.trigger.removeAttribute("aria-describedby")}this.trigger=null}}setupTrigger(){if(this.trigger=this.host.querySelector("*"),this.trigger){n(this.trigger)||this.trigger.setAttribute("tabindex","0");const t=this.trigger.getAttribute("aria-describedby")||"";t.includes(this.for)||this.trigger.setAttribute("aria-describedby",`${t} ${this.for}`.trim())}else console.warn("No content found in the post-tooltip-trigger slot. Please insert a focusable element or content that can receive focus.")}attachListeners(){a.forEach((t=>{this.host.addEventListener(t,this.boundTriggerHandler)}))}removeListeners(){a.forEach((t=>{this.host.removeEventListener(t,this.boundTriggerHandler)}))}attachTooltipListeners(){this.tooltip&&(this.tooltip.addEventListener("pointerenter",this.boundTooltipHandler),this.tooltip.addEventListener("pointerleave",this.boundTooltipHandler))}removeTooltipListeners(){this.tooltip&&(this.tooltip.removeEventListener("pointerenter",this.boundTooltipHandler),this.tooltip.removeEventListener("pointerleave",this.boundTooltipHandler))}handleTriggerEvent(t){switch(t.type){case"pointerenter":case"focusin":case"long-press":this.handleEnter();break;case"pointerleave":case"focusout":this.handleLeave(t)}}handleTooltipEvent(t){switch(t.type){case"pointerenter":this.handleEnter();break;case"pointerleave":this.handleLeave(t)}}handleEnter(){this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null),this.interestHandler()}handleLeave(t){const s=t.relatedTarget;this.tooltip&&s&&this.tooltip.contains(s)||s===this.trigger||this.interestLostHandler()}interestHandler(){this.trigger&&(this.delay>0?this.delayTimeout=window.setTimeout((()=>{this.tooltip?.show(this.trigger),this.delayTimeout=null}),this.delay):this.tooltip?.show(this.trigger))}interestLostHandler(){this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null),this.tooltip?.hide()}render(){return s(i,{key:"48246523aabaf1851e05d0273346d3e26e7ad866","data-version":h},s("slot",{key:"0442aeadddd59642c317b6f10c93008adf3e6585",onSlotchange:()=>this.handleSlotChange()}))}get host(){return e(this)}static get watchers(){return{for:["validateControlFor"]}}};l.style="post-tooltip-trigger{vertical-align:top}:host{cursor:pointer}";export{l as post_tooltip_trigger}
1
+ import{r as t,h as s,H as i,a as e}from"./p-CDZBzSdV.js";import{a as o}from"./p-CEmnRoA6.js";import{b as r}from"./p-B7ebLhHc.js";import{v as h}from"./p-CZvbetqX.js";import{i as n}from"./p-HygIVKXC.js";const a=["pointerenter","pointerleave","focusin","focusout","long-press"];o&&(async()=>{await import("./p-C_2k3G1c.js")})();const l=class{constructor(s){t(this,s),this.delay=0,this.trigger=null,this.delayTimeout=null,this.boundTriggerHandler=this.handleTriggerEvent.bind(this),this.boundTooltipHandler=this.handleTooltipEvent.bind(this)}validateControlFor(){r(this,"for","string")}get tooltip(){if(!o)return null;const t=document.getElementById(this.for);return"post-tooltip"===t?.localName?t:null}componentDidLoad(){this.setupTrigger(),this.attachListeners(),this.attachTooltipListeners()}disconnectedCallback(){this.removeListeners(),this.removeTooltipListeners(),this.cleanupTrigger(),this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null)}handleSlotChange(){this.cleanupTrigger(),this.setupTrigger()}cleanupTrigger(){if(this.trigger){const t=this.trigger.getAttribute("aria-describedby")||"";if(t.includes(this.for)){const s=t.split(" ").filter((t=>t!==this.for)).join(" ");s?this.trigger.setAttribute("aria-describedby",s):this.trigger.removeAttribute("aria-describedby")}this.trigger=null}}setupTrigger(){if(this.trigger=this.host.querySelector("*"),this.trigger){n(this.trigger)||this.trigger.setAttribute("tabindex","0");const t=this.trigger.getAttribute("aria-describedby")||"";t.includes(this.for)||this.trigger.setAttribute("aria-describedby",`${t} ${this.for}`.trim())}else console.warn("No content found in the post-tooltip-trigger slot. Please insert a focusable element or content that can receive focus.")}attachListeners(){a.forEach((t=>{this.host.addEventListener(t,this.boundTriggerHandler)}))}removeListeners(){a.forEach((t=>{this.host.removeEventListener(t,this.boundTriggerHandler)}))}attachTooltipListeners(){this.tooltip&&(this.tooltip.addEventListener("pointerenter",this.boundTooltipHandler),this.tooltip.addEventListener("pointerleave",this.boundTooltipHandler))}removeTooltipListeners(){this.tooltip&&(this.tooltip.removeEventListener("pointerenter",this.boundTooltipHandler),this.tooltip.removeEventListener("pointerleave",this.boundTooltipHandler))}handleTriggerEvent(t){switch(t.type){case"pointerenter":case"focusin":case"long-press":this.handleEnter();break;case"pointerleave":case"focusout":this.handleLeave(t)}}handleTooltipEvent(t){switch(t.type){case"pointerenter":this.handleEnter();break;case"pointerleave":this.handleLeave(t)}}handleEnter(){this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null),this.interestHandler()}handleLeave(t){const s=t.relatedTarget;this.tooltip&&s&&this.tooltip.contains(s)||s===this.trigger||this.interestLostHandler()}interestHandler(){this.trigger&&(this.delay>0?this.delayTimeout=window.setTimeout((()=>{this.tooltip?.show(this.trigger),this.delayTimeout=null}),this.delay):this.tooltip?.show(this.trigger))}interestLostHandler(){this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null),this.tooltip?.hide()}render(){return s(i,{key:"4f6165e23284794b677748c495401ed7c110d134","data-version":h},s("slot",{key:"87a8d412ed0e3fb145853aebb9426dfe13677853",onSlotchange:()=>this.handleSlotChange()}))}get host(){return e(this)}static get watchers(){return{for:[{validateControlFor:0}]}}};l.style="post-tooltip-trigger{vertical-align:top}:host{cursor:pointer}";export{l as post_tooltip_trigger}