@swisspost/design-system-components 9.0.0-next.9 → 9.0.0

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 (466) hide show
  1. package/dist/cjs/{index-5d4e0aed.js → index-824d2b71.js} +12 -2
  2. package/dist/cjs/{index-010dc207.js → index-e1f32cce.js} +17 -30
  3. package/dist/cjs/index.cjs.js +26 -50
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/{package-8e810a59.js → package-3ed88bb9.js} +1 -1
  6. package/dist/cjs/{post-accordion-b9df8522.js → post-accordion-9ef382e8.js} +3 -3
  7. package/dist/cjs/post-accordion-item-5f685bee.js +52 -0
  8. package/dist/cjs/post-accordion-item.cjs.entry.js +4 -5
  9. package/dist/cjs/post-accordion.cjs.entry.js +3 -3
  10. package/dist/cjs/post-alert-88adc668.js +99 -0
  11. package/dist/cjs/{post-banner.cjs.entry.js → post-alert.cjs.entry.js} +5 -6
  12. package/dist/cjs/post-card-control-c6e5c427.js +272 -0
  13. package/dist/cjs/post-card-control.cjs.entry.js +3 -3
  14. package/dist/cjs/{post-collapsible-trigger-143cf84a.js → post-collapsible-trigger-1764e6dc.js} +24 -11
  15. package/dist/cjs/post-collapsible_2.cjs.entry.js +4 -7
  16. package/dist/cjs/post-components.cjs.js +2 -2
  17. package/dist/cjs/post-icon-f735da00.js +139 -0
  18. package/dist/cjs/post-icon.cjs.entry.js +16 -0
  19. package/dist/cjs/post-logo-2cd8ae98.js +39 -0
  20. package/dist/cjs/post-logo.cjs.entry.js +15 -0
  21. package/dist/cjs/post-popover-36c854a4.js +131 -0
  22. package/dist/cjs/post-popover.cjs.entry.js +3 -4
  23. package/dist/cjs/{post-togglebutton-0984a694.js → post-popovercontainer-cb4793c1.js} +148 -1106
  24. package/dist/cjs/post-popovercontainer.cjs.entry.js +11 -0
  25. package/dist/cjs/post-rating-d5073d8d.js +88 -0
  26. package/dist/cjs/post-rating.cjs.entry.js +3 -3
  27. package/dist/cjs/post-tab-header-b756d9b1.js +32 -0
  28. package/dist/cjs/post-tab-header.cjs.entry.js +3 -3
  29. package/dist/cjs/{post-tab-panel-60f211a5.js → post-tab-panel-97b79ecd.js} +3 -3
  30. package/dist/cjs/post-tab-panel.cjs.entry.js +3 -3
  31. package/dist/cjs/{post-tabs-1f797ce4.js → post-tabs-834497f2.js} +5 -5
  32. package/dist/cjs/post-tabs.cjs.entry.js +3 -3
  33. package/dist/cjs/post-tag-c70fb945.js +47 -0
  34. package/dist/cjs/post-tag.cjs.entry.js +3 -3
  35. package/dist/cjs/post-tooltip-20ebe011.js +69 -0
  36. package/dist/cjs/{post-tooltip-38c839a4.js → post-tooltip-trigger-6f4c9748.js} +507 -557
  37. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +12 -0
  38. package/dist/cjs/post-tooltip.cjs.entry.js +3 -8
  39. package/dist/collection/collection-manifest.json +4 -21
  40. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  41. package/dist/collection/components/post-accordion/post-accordion.js +2 -2
  42. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  43. package/dist/collection/components/post-accordion-item/post-accordion-item.js +10 -24
  44. package/dist/collection/components/post-alert/alert-types.js +1 -0
  45. package/dist/collection/components/post-alert/post-alert.css +35 -0
  46. package/dist/collection/components/{post-banner/post-banner.js → post-alert/post-alert.js} +68 -39
  47. package/dist/collection/components/post-card-control/post-card-control.css +30 -2
  48. package/dist/collection/components/post-card-control/post-card-control.js +8 -8
  49. package/dist/collection/components/post-collapsible/post-collapsible.js +2 -4
  50. package/dist/collection/components/post-icon/post-icon.css +1 -1
  51. package/dist/collection/components/post-icon/post-icon.js +52 -13
  52. package/dist/collection/components/post-logo/post-logo.js +1 -1
  53. package/dist/collection/components/post-popover/post-popover.css +30 -2
  54. package/dist/collection/components/post-popover/post-popover.js +10 -6
  55. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +31 -1
  56. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +180 -52
  57. package/dist/collection/components/post-rating/post-rating.css +29 -1
  58. package/dist/collection/components/post-rating/post-rating.js +1 -1
  59. package/dist/collection/components/post-tab-header/post-tab-header.css +29 -1
  60. package/dist/collection/components/post-tab-header/post-tab-header.js +1 -1
  61. package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
  62. package/dist/collection/components/post-tabs/post-tabs.css +1 -1
  63. package/dist/collection/components/post-tabs/post-tabs.js +2 -2
  64. package/dist/collection/components/post-tag/post-tag.css +29 -1
  65. package/dist/collection/components/post-tag/post-tag.js +2 -2
  66. package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
  67. package/dist/collection/components/post-tooltip/post-tooltip.js +60 -213
  68. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.css +1 -0
  69. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +230 -0
  70. package/dist/collection/index.js +3 -20
  71. package/dist/components/index.js +3 -20
  72. package/dist/components/index2.js +1 -1
  73. package/dist/components/package.js +1 -1
  74. package/dist/components/post-accordion-item2.js +12 -30
  75. package/dist/components/post-accordion2.js +1 -1
  76. package/dist/components/{post-list.d.ts → post-alert.d.ts} +4 -4
  77. package/dist/components/post-alert.js +6 -0
  78. package/dist/components/post-alert2.js +136 -0
  79. package/dist/components/post-card-control2.js +3 -3
  80. package/dist/components/post-collapsible-trigger2.js +17 -2
  81. package/dist/components/post-collapsible2.js +3 -5
  82. package/dist/components/post-icon2.js +54 -15
  83. package/dist/components/post-logo2.js +1 -1
  84. package/dist/components/post-popover2.js +35 -8
  85. package/dist/components/post-popovercontainer2.js +136 -41
  86. package/dist/components/post-rating2.js +2 -2
  87. package/dist/components/post-tab-header2.js +2 -2
  88. package/dist/components/post-tab-panel2.js +1 -1
  89. package/dist/components/post-tabs2.js +3 -3
  90. package/dist/components/post-tag2.js +2 -2
  91. package/dist/components/{post-breadcrumb-item.d.ts → post-tooltip-trigger.d.ts} +4 -4
  92. package/dist/components/post-tooltip-trigger.js +6 -0
  93. package/dist/components/post-tooltip-trigger2.js +4968 -0
  94. package/dist/components/post-tooltip2.js +32 -4962
  95. package/dist/docs.json +401 -1776
  96. package/dist/esm/{index-b49c9904.js → index-69587a51.js} +12 -2
  97. package/dist/esm/{index-fb8d6be7.js → index-e1b64755.js} +17 -30
  98. package/dist/esm/index.js +20 -27
  99. package/dist/esm/loader.js +3 -3
  100. package/dist/esm/package-983f957d.js +3 -0
  101. package/dist/esm/{post-accordion-ee54a3ef.js → post-accordion-ad570427.js} +3 -3
  102. package/dist/esm/post-accordion-item-4db0aa2a.js +50 -0
  103. package/dist/esm/post-accordion-item.entry.js +4 -5
  104. package/dist/esm/post-accordion.entry.js +3 -3
  105. package/dist/esm/post-alert-1e9fbdfa.js +97 -0
  106. package/dist/esm/post-alert.entry.js +9 -0
  107. package/dist/esm/post-card-control-ccb189a8.js +270 -0
  108. package/dist/esm/post-card-control.entry.js +3 -3
  109. package/dist/esm/{post-collapsible-trigger-1c7833f8.js → post-collapsible-trigger-45fe328a.js} +22 -9
  110. package/dist/esm/post-collapsible_2.entry.js +4 -7
  111. package/dist/esm/post-components.js +3 -3
  112. package/dist/esm/post-icon-3fc4dd7d.js +137 -0
  113. package/dist/esm/post-icon.entry.js +8 -0
  114. package/dist/esm/post-logo-e6cdea13.js +37 -0
  115. package/dist/esm/post-logo.entry.js +7 -0
  116. package/dist/esm/post-popover-afdf4906.js +129 -0
  117. package/dist/esm/post-popover.entry.js +3 -4
  118. package/dist/esm/{post-togglebutton-395bf3f0.js → post-popovercontainer-b19b7606.js} +149 -1093
  119. package/dist/esm/post-popovercontainer.entry.js +3 -0
  120. package/dist/esm/post-rating-f60024fa.js +86 -0
  121. package/dist/esm/post-rating.entry.js +3 -3
  122. package/dist/esm/post-tab-header-333e15d5.js +30 -0
  123. package/dist/esm/post-tab-header.entry.js +3 -3
  124. package/dist/esm/{post-tab-panel-cafd9e04.js → post-tab-panel-0ddb05a2.js} +3 -3
  125. package/dist/esm/post-tab-panel.entry.js +3 -3
  126. package/dist/esm/{post-tabs-beef8eae.js → post-tabs-ab7853cf.js} +5 -5
  127. package/dist/esm/post-tabs.entry.js +3 -3
  128. package/dist/esm/post-tag-4a7d14b9.js +45 -0
  129. package/dist/esm/post-tag.entry.js +3 -3
  130. package/dist/esm/post-tooltip-c03cd719.js +67 -0
  131. package/dist/esm/{post-tooltip-b298039a.js → post-tooltip-trigger-1fefc8ad.js} +507 -557
  132. package/dist/esm/post-tooltip-trigger.entry.js +4 -0
  133. package/dist/esm/post-tooltip.entry.js +3 -8
  134. package/dist/post-components/index.esm.js +1 -1
  135. package/dist/post-components/p-0a45da5e.entry.js +1 -0
  136. package/dist/post-components/p-12e82863.entry.js +1 -0
  137. package/dist/post-components/p-1386b77d.js +1 -0
  138. package/dist/post-components/p-1528b798.js +1 -0
  139. package/dist/post-components/p-18dc1299.entry.js +1 -0
  140. package/dist/post-components/p-1a8f6c84.entry.js +1 -0
  141. package/dist/post-components/p-256453ca.js +1 -0
  142. package/dist/post-components/p-3272ebad.js +1 -0
  143. package/dist/post-components/p-3596035e.js +1 -0
  144. package/dist/post-components/p-3668f4fa.entry.js +1 -0
  145. package/dist/post-components/p-375845d4.js +1 -0
  146. package/dist/post-components/p-381de59d.entry.js +1 -0
  147. package/dist/post-components/{p-c0ae9886.js → p-3eab790d.js} +1 -1
  148. package/dist/post-components/p-4e68c514.js +1 -0
  149. package/dist/post-components/p-4eb5d9a1.entry.js +1 -0
  150. package/dist/post-components/p-61a7d216.js +1 -0
  151. package/dist/post-components/p-788e64fb.js +1 -0
  152. package/dist/post-components/p-7d5b41d1.js +1 -0
  153. package/dist/post-components/p-82ea24e7.js +1 -0
  154. package/dist/post-components/p-85c4d04f.js +1 -0
  155. package/dist/post-components/p-85c6d001.entry.js +1 -0
  156. package/dist/post-components/p-8e555dda.js +15 -0
  157. package/dist/post-components/p-962a6f36.entry.js +1 -0
  158. package/dist/post-components/p-a76c71bc.js +1 -0
  159. package/dist/post-components/p-a7e8fd41.entry.js +1 -0
  160. package/dist/post-components/p-ac216bd0.entry.js +1 -0
  161. package/dist/post-components/p-b17ecbee.entry.js +1 -0
  162. package/dist/post-components/p-bb4227ad.entry.js +1 -0
  163. package/dist/post-components/p-bc294d0b.js +1 -0
  164. package/dist/post-components/p-d0b3c5d3.entry.js +1 -0
  165. package/dist/post-components/p-d4e148d8.entry.js +1 -0
  166. package/dist/post-components/p-d9809281.js +1 -0
  167. package/dist/post-components/p-eb1e7a49.js +1 -0
  168. package/dist/post-components/p-f35291d5.entry.js +1 -0
  169. package/dist/post-components/p-fc3bfe08.js +1 -0
  170. package/dist/post-components/post-components.esm.js +1 -1
  171. package/dist/types/components/post-accordion/post-accordion.d.ts +1 -1
  172. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +1 -7
  173. package/dist/types/components/post-alert/alert-types.d.ts +2 -0
  174. package/dist/types/components/post-alert/post-alert.d.ts +54 -0
  175. package/dist/types/components/post-card-control/post-card-control.d.ts +7 -7
  176. package/dist/types/components/post-icon/post-icon.d.ts +1 -1
  177. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +31 -13
  178. package/dist/types/components/post-tag/post-tag.d.ts +1 -1
  179. package/dist/types/components/post-tooltip/post-tooltip.d.ts +20 -34
  180. package/dist/types/components/post-tooltip-trigger/post-tooltip-trigger.d.ts +47 -0
  181. package/dist/types/components.d.ts +124 -590
  182. package/dist/types/index.d.ts +3 -20
  183. package/loaders/index.d.ts +4 -38
  184. package/loaders/index.js +4 -21
  185. package/loaders/index2.js +1 -1
  186. package/loaders/package.js +1 -1
  187. package/loaders/post-accordion-item.js +82 -1
  188. package/loaders/post-accordion.js +1 -1
  189. package/loaders/{post-list.d.ts → post-alert.d.ts} +4 -4
  190. package/loaders/post-alert.js +139 -0
  191. package/loaders/post-card-control.js +3 -3
  192. package/loaders/post-collapsible-trigger2.js +17 -2
  193. package/loaders/post-collapsible2.js +3 -5
  194. package/loaders/post-icon2.js +54 -15
  195. package/loaders/post-logo.js +2 -2
  196. package/loaders/post-popover.js +35 -8
  197. package/loaders/post-popovercontainer2.js +136 -41
  198. package/loaders/post-rating.js +2 -2
  199. package/loaders/post-tab-header.js +2 -2
  200. package/loaders/post-tab-panel.js +1 -1
  201. package/loaders/post-tabs.js +3 -3
  202. package/loaders/post-tag.js +2 -2
  203. package/loaders/{post-avatar.d.ts → post-tooltip-trigger.d.ts} +4 -4
  204. package/loaders/post-tooltip-trigger.js +4971 -0
  205. package/loaders/post-tooltip.js +32 -4962
  206. package/package.json +6 -9
  207. package/dist/cjs/attribute-observer-10f08c04.js +0 -27
  208. package/dist/cjs/check-url-3ffdd2fb.js +0 -14
  209. package/dist/cjs/debounce-1151afe3.js +0 -12
  210. package/dist/cjs/get-root-7a3498ef.js +0 -11
  211. package/dist/cjs/post-accordion-item-ecc6749f.js +0 -63
  212. package/dist/cjs/post-avatar-f7236084.js +0 -148
  213. package/dist/cjs/post-avatar.cjs.entry.js +0 -13
  214. package/dist/cjs/post-back-to-top-60762f8e.js +0 -75
  215. package/dist/cjs/post-back-to-top.cjs.entry.js +0 -15
  216. package/dist/cjs/post-banner-9662f22c.js +0 -90
  217. package/dist/cjs/post-breadcrumb-b40732fc.js +0 -111
  218. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +0 -17
  219. package/dist/cjs/post-breadcrumb.cjs.entry.js +0 -13
  220. package/dist/cjs/post-card-control-039c9a4b.js +0 -272
  221. package/dist/cjs/post-closebutton_15.cjs.entry.js +0 -33
  222. package/dist/cjs/post-footer-5f7fdf96.js +0 -84
  223. package/dist/cjs/post-footer.cjs.entry.js +0 -11
  224. package/dist/cjs/post-menu-item-bb0b0b9e.js +0 -74
  225. package/dist/cjs/post-popover-d0ce9dc6.js +0 -104
  226. package/dist/cjs/post-rating-1082197c.js +0 -88
  227. package/dist/cjs/post-tab-header-4b6d8d54.js +0 -32
  228. package/dist/cjs/post-tag-ddaaaedc.js +0 -47
  229. package/dist/cjs/slide-5d51abe8.js +0 -28
  230. package/dist/collection/animations/slide.js +0 -23
  231. package/dist/collection/components/post-avatar/post-avatar.css +0 -3
  232. package/dist/collection/components/post-avatar/post-avatar.js +0 -237
  233. package/dist/collection/components/post-back-to-top/post-back-to-top.css +0 -1
  234. package/dist/collection/components/post-back-to-top/post-back-to-top.js +0 -107
  235. package/dist/collection/components/post-banner/banner-types.js +0 -1
  236. package/dist/collection/components/post-banner/post-banner.css +0 -3
  237. package/dist/collection/components/post-breadcrumb/post-breadcrumb.css +0 -3
  238. package/dist/collection/components/post-breadcrumb/post-breadcrumb.js +0 -161
  239. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +0 -1
  240. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +0 -93
  241. package/dist/collection/components/post-closebutton/post-closebutton.js +0 -12
  242. package/dist/collection/components/post-footer/post-footer.css +0 -1
  243. package/dist/collection/components/post-footer/post-footer.js +0 -75
  244. package/dist/collection/components/post-header/post-header.css +0 -1
  245. package/dist/collection/components/post-header/post-header.js +0 -160
  246. package/dist/collection/components/post-language-option/post-language-option.css +0 -3
  247. package/dist/collection/components/post-language-option/post-language-option.js +0 -215
  248. package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
  249. package/dist/collection/components/post-language-switch/post-language-switch.js +0 -163
  250. package/dist/collection/components/post-language-switch/switch-variants.js +0 -1
  251. package/dist/collection/components/post-list/post-list.css +0 -3
  252. package/dist/collection/components/post-list/post-list.js +0 -87
  253. package/dist/collection/components/post-list-item/post-list-item.css +0 -1
  254. package/dist/collection/components/post-list-item/post-list-item.js +0 -25
  255. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +0 -1
  256. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +0 -52
  257. package/dist/collection/components/post-megadropdown/post-megadropdown.css +0 -1
  258. package/dist/collection/components/post-megadropdown/post-megadropdown.js +0 -151
  259. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +0 -1
  260. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +0 -104
  261. package/dist/collection/components/post-menu/post-menu.css +0 -3
  262. package/dist/collection/components/post-menu/post-menu.js +0 -280
  263. package/dist/collection/components/post-menu-item/post-menu-item.css +0 -1
  264. package/dist/collection/components/post-menu-item/post-menu-item.js +0 -20
  265. package/dist/collection/components/post-menu-trigger/post-menu-trigger.css +0 -1
  266. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +0 -114
  267. package/dist/collection/components/post-togglebutton/post-togglebutton.css +0 -1
  268. package/dist/collection/components/post-togglebutton/post-togglebutton.js +0 -74
  269. package/dist/collection/utils/breakpoints.js +0 -46
  270. package/dist/collection/utils/is-focusable.js +0 -26
  271. package/dist/components/attribute-observer.js +0 -25
  272. package/dist/components/debounce.js +0 -10
  273. package/dist/components/get-root.js +0 -9
  274. package/dist/components/post-avatar.d.ts +0 -11
  275. package/dist/components/post-avatar.js +0 -6
  276. package/dist/components/post-avatar2.js +0 -173
  277. package/dist/components/post-back-to-top.d.ts +0 -11
  278. package/dist/components/post-back-to-top.js +0 -6
  279. package/dist/components/post-back-to-top2.js +0 -100
  280. package/dist/components/post-banner.d.ts +0 -11
  281. package/dist/components/post-banner.js +0 -6
  282. package/dist/components/post-banner2.js +0 -125
  283. package/dist/components/post-breadcrumb-item.js +0 -6
  284. package/dist/components/post-breadcrumb-item2.js +0 -82
  285. package/dist/components/post-breadcrumb.d.ts +0 -11
  286. package/dist/components/post-breadcrumb.js +0 -6
  287. package/dist/components/post-breadcrumb2.js +0 -168
  288. package/dist/components/post-closebutton.d.ts +0 -11
  289. package/dist/components/post-closebutton.js +0 -6
  290. package/dist/components/post-closebutton2.js +0 -34
  291. package/dist/components/post-footer.d.ts +0 -11
  292. package/dist/components/post-footer.js +0 -6
  293. package/dist/components/post-footer2.js +0 -124
  294. package/dist/components/post-header.d.ts +0 -11
  295. package/dist/components/post-header.js +0 -6
  296. package/dist/components/post-header2.js +0 -276
  297. package/dist/components/post-language-option.d.ts +0 -11
  298. package/dist/components/post-language-option.js +0 -6
  299. package/dist/components/post-language-option2.js +0 -94
  300. package/dist/components/post-language-switch.d.ts +0 -11
  301. package/dist/components/post-language-switch.js +0 -6
  302. package/dist/components/post-language-switch2.js +0 -146
  303. package/dist/components/post-list-item.d.ts +0 -11
  304. package/dist/components/post-list-item.js +0 -6
  305. package/dist/components/post-list-item2.js +0 -35
  306. package/dist/components/post-list.js +0 -6
  307. package/dist/components/post-list2.js +0 -53
  308. package/dist/components/post-mainnavigation.d.ts +0 -11
  309. package/dist/components/post-mainnavigation.js +0 -6
  310. package/dist/components/post-mainnavigation2.js +0 -48
  311. package/dist/components/post-megadropdown-trigger.d.ts +0 -11
  312. package/dist/components/post-megadropdown-trigger.js +0 -6
  313. package/dist/components/post-megadropdown-trigger2.js +0 -91
  314. package/dist/components/post-megadropdown.d.ts +0 -11
  315. package/dist/components/post-megadropdown.js +0 -6
  316. package/dist/components/post-megadropdown2.js +0 -93
  317. package/dist/components/post-menu-item.d.ts +0 -11
  318. package/dist/components/post-menu-item.js +0 -6
  319. package/dist/components/post-menu-item2.js +0 -33
  320. package/dist/components/post-menu-trigger.d.ts +0 -11
  321. package/dist/components/post-menu-trigger.js +0 -6
  322. package/dist/components/post-menu-trigger2.js +0 -102
  323. package/dist/components/post-menu.d.ts +0 -11
  324. package/dist/components/post-menu.js +0 -6
  325. package/dist/components/post-menu2.js +0 -203
  326. package/dist/components/post-togglebutton.d.ts +0 -11
  327. package/dist/components/post-togglebutton.js +0 -6
  328. package/dist/components/post-togglebutton2.js +0 -61
  329. package/dist/components/slide.js +0 -25
  330. package/dist/esm/attribute-observer-37fa950a.js +0 -25
  331. package/dist/esm/check-url-a974431e.js +0 -12
  332. package/dist/esm/debounce-abe98cc2.js +0 -10
  333. package/dist/esm/get-root-7af2e0d1.js +0 -9
  334. package/dist/esm/package-4d81f3c2.js +0 -3
  335. package/dist/esm/post-accordion-item-e10452dc.js +0 -61
  336. package/dist/esm/post-avatar-5572fa73.js +0 -146
  337. package/dist/esm/post-avatar.entry.js +0 -5
  338. package/dist/esm/post-back-to-top-1d823c43.js +0 -73
  339. package/dist/esm/post-back-to-top.entry.js +0 -7
  340. package/dist/esm/post-banner-78480475.js +0 -88
  341. package/dist/esm/post-banner.entry.js +0 -10
  342. package/dist/esm/post-breadcrumb-aaa77f74.js +0 -109
  343. package/dist/esm/post-breadcrumb-item_2.entry.js +0 -8
  344. package/dist/esm/post-breadcrumb.entry.js +0 -5
  345. package/dist/esm/post-card-control-862aa961.js +0 -270
  346. package/dist/esm/post-closebutton_15.entry.js +0 -11
  347. package/dist/esm/post-footer-b18875e7.js +0 -82
  348. package/dist/esm/post-footer.entry.js +0 -3
  349. package/dist/esm/post-menu-item-2906384b.js +0 -71
  350. package/dist/esm/post-popover-2432bb3f.js +0 -102
  351. package/dist/esm/post-rating-95cbdbb8.js +0 -86
  352. package/dist/esm/post-tab-header-dfea00ea.js +0 -30
  353. package/dist/esm/post-tag-a77e7af6.js +0 -45
  354. package/dist/esm/slide-3422b8a3.js +0 -25
  355. package/dist/post-components/p-0711f76d.entry.js +0 -1
  356. package/dist/post-components/p-095a06f6.entry.js +0 -1
  357. package/dist/post-components/p-0b5a5f32.js +0 -1
  358. package/dist/post-components/p-135fa60f.js +0 -1
  359. package/dist/post-components/p-18e38d8a.js +0 -1
  360. package/dist/post-components/p-2e1ec074.entry.js +0 -1
  361. package/dist/post-components/p-4202b433.entry.js +0 -1
  362. package/dist/post-components/p-45773f59.js +0 -1
  363. package/dist/post-components/p-4953de7e.js +0 -1
  364. package/dist/post-components/p-4f67c5f5.entry.js +0 -1
  365. package/dist/post-components/p-4f9746f6.js +0 -15
  366. package/dist/post-components/p-5075c672.entry.js +0 -1
  367. package/dist/post-components/p-515e0f96.js +0 -1
  368. package/dist/post-components/p-5467b223.js +0 -1
  369. package/dist/post-components/p-67036798.entry.js +0 -1
  370. package/dist/post-components/p-6adeaa6c.js +0 -1
  371. package/dist/post-components/p-6d953fb2.js +0 -1
  372. package/dist/post-components/p-6edb0ac5.js +0 -1
  373. package/dist/post-components/p-6f8f39ca.js +0 -1
  374. package/dist/post-components/p-7503a623.js +0 -1
  375. package/dist/post-components/p-761b24c7.entry.js +0 -1
  376. package/dist/post-components/p-77c4c1d2.js +0 -1
  377. package/dist/post-components/p-7cf0c2ad.js +0 -1
  378. package/dist/post-components/p-856c14d6.entry.js +0 -1
  379. package/dist/post-components/p-866bf50a.entry.js +0 -1
  380. package/dist/post-components/p-8d621781.js +0 -1
  381. package/dist/post-components/p-8fe2d72c.entry.js +0 -1
  382. package/dist/post-components/p-9ad5088f.entry.js +0 -1
  383. package/dist/post-components/p-a1d2b90e.js +0 -1
  384. package/dist/post-components/p-a521419d.entry.js +0 -1
  385. package/dist/post-components/p-aa538648.js +0 -1
  386. package/dist/post-components/p-afdbee2f.js +0 -1
  387. package/dist/post-components/p-b02817f2.entry.js +0 -1
  388. package/dist/post-components/p-b157dcba.entry.js +0 -1
  389. package/dist/post-components/p-b22656b1.js +0 -1
  390. package/dist/post-components/p-bdbd11cb.js +0 -1
  391. package/dist/post-components/p-c537e196.entry.js +0 -1
  392. package/dist/post-components/p-d4f93f2b.js +0 -1
  393. package/dist/post-components/p-dca4246a.entry.js +0 -1
  394. package/dist/post-components/p-f319b026.js +0 -1
  395. package/dist/post-components/p-f4b7b379.js +0 -1
  396. package/dist/post-components/p-fac66087.entry.js +0 -1
  397. package/dist/post-components/p-fc91cbc2.js +0 -1
  398. package/dist/types/animations/slide.d.ts +0 -2
  399. package/dist/types/components/post-avatar/post-avatar.d.ts +0 -51
  400. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +0 -19
  401. package/dist/types/components/post-banner/banner-types.d.ts +0 -2
  402. package/dist/types/components/post-banner/post-banner.d.ts +0 -49
  403. package/dist/types/components/post-breadcrumb/post-breadcrumb.d.ts +0 -30
  404. package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +0 -16
  405. package/dist/types/components/post-closebutton/post-closebutton.d.ts +0 -7
  406. package/dist/types/components/post-footer/post-footer.d.ts +0 -23
  407. package/dist/types/components/post-header/post-header.d.ts +0 -24
  408. package/dist/types/components/post-language-option/post-language-option.d.ts +0 -45
  409. package/dist/types/components/post-language-switch/post-language-switch.d.ts +0 -31
  410. package/dist/types/components/post-language-switch/switch-variants.d.ts +0 -2
  411. package/dist/types/components/post-list/post-list.d.ts +0 -24
  412. package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
  413. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +0 -19
  414. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +0 -35
  415. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +0 -25
  416. package/dist/types/components/post-menu/post-menu.d.ts +0 -48
  417. package/dist/types/components/post-menu-item/post-menu-item.d.ts +0 -4
  418. package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +0 -27
  419. package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +0 -15
  420. package/dist/types/utils/breakpoints.d.ts +0 -11
  421. package/dist/types/utils/is-focusable.d.ts +0 -1
  422. package/loaders/attribute-observer.js +0 -25
  423. package/loaders/debounce.js +0 -10
  424. package/loaders/get-root.js +0 -9
  425. package/loaders/post-accordion-item2.js +0 -102
  426. package/loaders/post-avatar.js +0 -176
  427. package/loaders/post-back-to-top.d.ts +0 -11
  428. package/loaders/post-back-to-top.js +0 -103
  429. package/loaders/post-banner.d.ts +0 -11
  430. package/loaders/post-banner.js +0 -128
  431. package/loaders/post-breadcrumb-item.d.ts +0 -11
  432. package/loaders/post-breadcrumb-item.js +0 -6
  433. package/loaders/post-breadcrumb-item2.js +0 -82
  434. package/loaders/post-breadcrumb.d.ts +0 -11
  435. package/loaders/post-breadcrumb.js +0 -171
  436. package/loaders/post-closebutton.d.ts +0 -11
  437. package/loaders/post-closebutton.js +0 -37
  438. package/loaders/post-footer.d.ts +0 -11
  439. package/loaders/post-footer.js +0 -127
  440. package/loaders/post-header.d.ts +0 -11
  441. package/loaders/post-header.js +0 -279
  442. package/loaders/post-language-option.d.ts +0 -11
  443. package/loaders/post-language-option.js +0 -97
  444. package/loaders/post-language-switch.d.ts +0 -11
  445. package/loaders/post-language-switch.js +0 -149
  446. package/loaders/post-list-item.d.ts +0 -11
  447. package/loaders/post-list-item.js +0 -38
  448. package/loaders/post-list.js +0 -56
  449. package/loaders/post-mainnavigation.d.ts +0 -11
  450. package/loaders/post-mainnavigation.js +0 -51
  451. package/loaders/post-megadropdown-trigger.d.ts +0 -11
  452. package/loaders/post-megadropdown-trigger.js +0 -94
  453. package/loaders/post-megadropdown.d.ts +0 -11
  454. package/loaders/post-megadropdown.js +0 -96
  455. package/loaders/post-menu-item.d.ts +0 -11
  456. package/loaders/post-menu-item.js +0 -6
  457. package/loaders/post-menu-item2.js +0 -33
  458. package/loaders/post-menu-trigger.d.ts +0 -11
  459. package/loaders/post-menu-trigger.js +0 -6
  460. package/loaders/post-menu-trigger2.js +0 -102
  461. package/loaders/post-menu.d.ts +0 -11
  462. package/loaders/post-menu.js +0 -6
  463. package/loaders/post-menu2.js +0 -203
  464. package/loaders/post-togglebutton.d.ts +0 -11
  465. package/loaders/post-togglebutton.js +0 -64
  466. package/loaders/slide.js +0 -25
@@ -1,220 +1,56 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { version } from "../../../../package";
3
- import isFocusable from "ally.js/is/focusable";
4
- import "long-press-event";
5
- import { getAttributeObserver } from "../../utils/attribute-observer";
6
- import { checkEmptyOrType } from "../../utils/index";
7
- const OPEN_DELAY = 650; // matches HTML title delay
8
- /**
9
- * @slot default - Slot for the content of the tooltip.
10
- */
11
- /**
12
- * Track how many instances remain on the page. Used for removing global event listeners
13
- */
14
- let tooltipInstances = 0;
15
- let hideTooltipTimeout = null;
16
- const tooltipTargetAttribute = 'data-tooltip-target';
17
- const tooltipTargetAttributeSelector = `[${tooltipTargetAttribute}]`;
18
- let globalCurrentTarget;
19
- let tooltipTimeout = null;
20
- /**
21
- * Global event listener to show tooltips. This is globalized so that triggers that are rendered
22
- * async will still work without the need to set listeners on the element itself
23
- *
24
- * This handler manages both pointer and focus events to properly trigger tooltips.
25
- * If the event is a focus event (e.g., keyboard navigation), pointer events are ignored to avoid
26
- * interference with tooltip behavior.
27
- * @param e Event
28
- * @returns
29
- */
30
- const globalInterestHandler = (e) => {
31
- const targetElement = e.target.closest(tooltipTargetAttributeSelector);
32
- globalCurrentTarget = targetElement;
33
- if (!targetElement || !('getAttribute' in targetElement)) {
34
- clearTimeout(tooltipTimeout);
35
- return;
36
- }
37
- const tooltipTarget = targetElement.getAttribute(tooltipTargetAttribute);
38
- if (!tooltipTarget || tooltipTarget === '')
39
- return;
40
- const tooltip = document.getElementById(tooltipTarget);
41
- // Determine if the tooltip was triggered by a focus event
42
- const triggeredByFocus = e.type === 'focusin';
43
- void (tooltip === null || tooltip === void 0 ? void 0 : tooltip.show(targetElement, triggeredByFocus));
44
- if (hideTooltipTimeout) {
45
- window.clearTimeout(hideTooltipTimeout);
46
- hideTooltipTimeout = null;
47
- }
48
- };
49
- /**
50
- * Global event listener to hide tooltips. This is globalized so that triggers that are rendered
51
- * async will still work without the need to set listeners on the element itself
52
- * @param e Event
53
- * @returns
54
- */
55
- const globalInterestLostHandler = (e) => {
56
- const targetElement = e.target.closest(tooltipTargetAttributeSelector);
57
- if (!targetElement || !('getAttribute' in targetElement))
58
- return;
59
- const tooltipTarget = targetElement.getAttribute(tooltipTargetAttribute);
60
- if (!tooltipTarget || tooltipTarget === '')
61
- return;
62
- const tooltip = document.getElementById(tooltipTarget);
63
- globalHideTooltip(tooltip);
64
- };
65
- /**
66
- * Start the hiding process through a timeout to give other interest events a chance to
67
- * intervene and cancel the hide event.
68
- * @param {HTMLPostTooltipElement} tooltip
69
- */
70
- const globalHideTooltip = (tooltip) => {
71
- hideTooltipTimeout = window.setTimeout(() => {
72
- tooltip.hide();
73
- hideTooltipTimeout = null;
74
- }, 42);
75
- };
76
- /**
77
- * Patch some accessibility features that are hard to remember or understand
78
- * @param {HTMLElement} trigger
79
- */
80
- const patchAccessibilityFeatures = (trigger) => {
81
- const describedBy = trigger.getAttribute('aria-describedby');
82
- const id = trigger.getAttribute(tooltipTargetAttribute);
83
- // Add tooltip to aria-describedby
84
- if (!(describedBy === null || describedBy === void 0 ? void 0 : describedBy.includes(id))) {
85
- const newDescribedBy = describedBy ? `${describedBy} ${id}` : id;
86
- trigger.setAttribute('aria-describedby', newDescribedBy);
87
- }
88
- // Make element focusable
89
- if (!isFocusable(trigger)) {
90
- trigger.setAttribute('tabindex', '0');
91
- }
92
- };
93
- // Initialize a mutation observer for patching accessibility features
94
- const triggerObserver = getAttributeObserver(tooltipTargetAttribute, patchAccessibilityFeatures);
3
+ import { checkType } from "../../utils/index";
95
4
  export class PostTooltip {
96
5
  constructor() {
97
- this.wasOpenedByFocus = false;
98
6
  this.placement = 'top';
99
- this.arrow = true;
100
- this.delayed = false;
101
- }
102
- validateDelayed() {
103
- checkEmptyOrType(this.delayed, 'boolean', 'The post-tooltip "delayed" property should be a boolean.');
7
+ this.arrow = false;
8
+ this.animation = null;
9
+ this.open = false;
104
10
  }
105
- connectedCallback() {
106
- this.validateDelayed();
11
+ validateOpen() {
12
+ checkType(this.open, 'boolean', 'The "open" property of the post-tooltip must be a boolean.');
107
13
  }
108
14
  componentDidLoad() {
109
15
  if (!this.host.id) {
110
- throw new Error(
16
+ console.error(
111
17
  /*prettier-ignore*/
112
- 'No id set: <post-tooltip> must have an id, linking it to it\'s target element using the data-tooltip-target attribute.');
18
+ 'No id set: <post-tooltip> must have an id, linking it to it\'s target element with a <post-tooltip-trigger> element.');
113
19
  }
114
20
  }
115
21
  /**
116
- * Add interest event listeners, but only once, and start
117
- * the accessibility patcher
22
+ * Programmatically display the tooltip.
23
+ * @param target An element where the tooltip should be shown
118
24
  */
119
- componentWillLoad() {
120
- if (tooltipInstances === 0) {
121
- // This is the first tooltip on the page, add event listeners
122
- document.addEventListener('pointerover', globalInterestHandler);
123
- document.addEventListener('pointerout', globalInterestLostHandler);
124
- document.addEventListener('focusin', globalInterestHandler);
125
- document.addEventListener('focusout', globalInterestLostHandler);
126
- document.addEventListener('long-press', globalInterestHandler);
127
- // Initially run the accessibility patcher on all triggers
128
- document.querySelectorAll('[data-tooltip-target]').forEach(patchAccessibilityFeatures);
129
- // Start watching for future triggers
130
- triggerObserver.observe(document.body, {
131
- subtree: true,
132
- childList: true,
133
- attributeFilter: [tooltipTargetAttribute],
134
- });
135
- }
136
- tooltipInstances++;
25
+ async show(target) {
26
+ if (this.open)
27
+ return;
28
+ this.popoverRef.show(target);
137
29
  }
138
30
  /**
139
- * Remove a bunch of event listeners if the tooltip gets removed from the DOM
140
- * and disconnect the accessibility patcher
141
- */
142
- disconnectedCallback() {
143
- tooltipInstances--;
144
- if (tooltipInstances <= 0) {
145
- // The last tooltip has been removed, stop listening for these kind of events
146
- document.removeEventListener('pointerover', globalInterestHandler);
147
- document.removeEventListener('pointerout', globalInterestLostHandler);
148
- document.removeEventListener('focusin', globalInterestHandler);
149
- document.removeEventListener('focusout', globalInterestLostHandler);
150
- document.removeEventListener('long-press', globalInterestHandler);
151
- triggerObserver.disconnect();
152
- }
153
- }
154
- /**
155
- * Programmatically display the tooltip
156
- * @param target An element with [data-tooltip-target="id"] where the tooltip should be shown
157
- * @param triggeredByFocus A boolean indicating if the tooltip was triggered by a focus event.
158
- */
159
- async show(target, triggeredByFocus = false) {
160
- const showTooltip = () => {
161
- // If focus or pointer event is not on the button anymore, don't show the tooltip
162
- if (globalCurrentTarget !== target)
163
- return;
164
- // Determine if the tooltip was opened by a focus event
165
- this.wasOpenedByFocus = triggeredByFocus;
166
- // Disable pointer events if triggered by focus, otherwise enable them
167
- if (this.wasOpenedByFocus) {
168
- this.host.style.pointerEvents = 'none';
169
- }
170
- else {
171
- this.host.style.pointerEvents = 'auto';
172
- }
173
- this.popoverRef.show(target);
174
- };
175
- if (this.delayed) {
176
- tooltipTimeout = setTimeout(() => {
177
- showTooltip();
178
- }, OPEN_DELAY);
179
- }
180
- else {
181
- showTooltip();
182
- }
183
- }
184
- /**
185
- * Programmatically hide this tooltip
31
+ * Programmatically hide this tooltip.
186
32
  */
187
33
  async hide() {
188
34
  this.popoverRef.hide();
189
35
  }
190
36
  /**
191
- * Toggle tooltip display
192
- * @param target An element with [data-tooltip-target="id"] where the tooltip should be shown
193
- * @param force Pass true to always show or false to always hide
37
+ * Toggle tooltip display.
38
+ * @param target An element where the tooltip should be shown
39
+ * @param [force] Pass true to always show or false to always hide
194
40
  */
195
41
  async toggle(target, force) {
196
42
  this.popoverRef.toggle(target, force);
197
43
  }
198
44
  /**
199
- * Pointer or focus is on the tooltip, stop the tooltip from disappearing
45
+ * Set the open state based on the toggle event.
46
+ * @param e Popovercontainer toggle event
200
47
  */
201
- handleInterest() {
202
- if (hideTooltipTimeout) {
203
- window.clearTimeout(hideTooltipTimeout);
204
- hideTooltipTimeout = null;
205
- }
206
- }
207
- /**
208
- * Pointer or focus left the tooltip, initiate the hiding process
209
- * Re-enable pointer events when the tooltip is no longer in focus or hovered
210
- */
211
- handleInterestLost() {
212
- globalHideTooltip(this);
213
- this.host.style.pointerEvents = 'auto';
48
+ handleToggle(e) {
49
+ this.open = e.detail;
214
50
  }
215
51
  render() {
216
- const popoverClass = `${this.arrow ? ' has-arrow' : ''}`;
217
- return (h(Host, { key: '71db1ccf3cf929d76550b08e69c8594479eaa84f', "data-version": version, role: "tooltip", onPointerOver: this.handleInterest, onPointerOut: this.handleInterestLost, onFocusIn: this.handleInterest, onFocusOut: this.handleInterestLost }, h("post-popovercontainer", { key: 'b9a38cabbfc2cf2eb9b257bca32022b5d97aac7c', class: popoverClass, arrow: this.arrow, placement: this.placement, ref: (el) => (this.popoverRef = el) }, h("slot", { key: '316b55f5fc55d9607205496a87f02a0a5fa197cf' }))));
52
+ const popoverClass = `${this.arrow ? 'has-arrow' : ''}`;
53
+ return (h(Host, { key: '42d4dbfacdfd2aa9d00c8555cfb672e71013d455', "data-version": version, role: "tooltip" }, h("post-popovercontainer", { key: '781b9a2a90d6e1d7dc1fe233d68787cdc96d1b2a', safeSpace: 'trapezoid', class: popoverClass, arrow: this.arrow, animation: this.animation, placement: this.placement, onPostToggle: e => this.handleToggle(e), ref: (el) => (this.popoverRef = el) }, h("slot", { key: '895559a810d2ec11e5078c0334f4e8f9c73533e5' }))));
218
54
  }
219
55
  static get is() { return "post-tooltip"; }
220
56
  static get encapsulation() { return "shadow"; }
@@ -248,7 +84,7 @@ export class PostTooltip {
248
84
  "optional": true,
249
85
  "docs": {
250
86
  "tags": [],
251
- "text": "Defines the placement of the tooltip according to the floating-ui options available at https://floating-ui.com/docs/computePosition#placement.\nTooltips are automatically flipped to the opposite side if there is not enough available space and are shifted\ntowards the viewport if they would overlap edge boundaries."
87
+ "text": "Defines the position of the tooltip relative to its trigger.\nTooltips are automatically flipped to the opposite side if there is not enough available space and are shifted towards the viewport if they would overlap edge boundaries.\nFor supported values and behavior details, see the [Floating UI placement documentation](https://floating-ui.com/docs/computePosition#placement)."
252
88
  },
253
89
  "attribute": "placement",
254
90
  "reflect": false,
@@ -266,15 +102,33 @@ export class PostTooltip {
266
102
  "optional": true,
267
103
  "docs": {
268
104
  "tags": [],
269
- "text": "Wheter or not to display a little pointer arrow"
105
+ "text": "Whether or not to display a little pointer arrow"
270
106
  },
271
107
  "attribute": "arrow",
272
108
  "reflect": false,
273
- "defaultValue": "true"
109
+ "defaultValue": "false"
274
110
  },
275
- "delayed": {
276
- "type": "boolean",
111
+ "animation": {
112
+ "type": "string",
277
113
  "mutable": false,
114
+ "complexType": {
115
+ "original": "'pop-in' | null",
116
+ "resolved": "\"pop-in\"",
117
+ "references": {}
118
+ },
119
+ "required": false,
120
+ "optional": true,
121
+ "docs": {
122
+ "tags": [],
123
+ "text": "Choose a tooltip animation"
124
+ },
125
+ "attribute": "animation",
126
+ "reflect": false,
127
+ "defaultValue": "null"
128
+ },
129
+ "open": {
130
+ "type": "boolean",
131
+ "mutable": true,
278
132
  "complexType": {
279
133
  "original": "boolean",
280
134
  "resolved": "boolean",
@@ -284,10 +138,10 @@ export class PostTooltip {
284
138
  "optional": false,
285
139
  "docs": {
286
140
  "tags": [],
287
- "text": "If `true`, the tooltip is displayed a few milliseconds after it is triggered"
141
+ "text": "Indicates the open state of the tooltip"
288
142
  },
289
- "attribute": "delayed",
290
- "reflect": false,
143
+ "attribute": "open",
144
+ "reflect": true,
291
145
  "defaultValue": "false"
292
146
  }
293
147
  };
@@ -296,15 +150,11 @@ export class PostTooltip {
296
150
  return {
297
151
  "show": {
298
152
  "complexType": {
299
- "signature": "(target: HTMLElement, triggeredByFocus?: boolean) => Promise<void>",
153
+ "signature": "(target: HTMLElement) => Promise<void>",
300
154
  "parameters": [{
301
155
  "name": "target",
302
156
  "type": "HTMLElement",
303
- "docs": "An element with [data-tooltip-target=\"id\"] where the tooltip should be shown"
304
- }, {
305
- "name": "triggeredByFocus",
306
- "type": "boolean",
307
- "docs": "A boolean indicating if the tooltip was triggered by a focus event."
157
+ "docs": "An element where the tooltip should be shown"
308
158
  }],
309
159
  "references": {
310
160
  "Promise": {
@@ -319,13 +169,10 @@ export class PostTooltip {
319
169
  "return": "Promise<void>"
320
170
  },
321
171
  "docs": {
322
- "text": "Programmatically display the tooltip",
172
+ "text": "Programmatically display the tooltip.",
323
173
  "tags": [{
324
174
  "name": "param",
325
- "text": "target An element with [data-tooltip-target=\"id\"] where the tooltip should be shown"
326
- }, {
327
- "name": "param",
328
- "text": "triggeredByFocus A boolean indicating if the tooltip was triggered by a focus event."
175
+ "text": "target An element where the tooltip should be shown"
329
176
  }]
330
177
  }
331
178
  },
@@ -342,7 +189,7 @@ export class PostTooltip {
342
189
  "return": "Promise<void>"
343
190
  },
344
191
  "docs": {
345
- "text": "Programmatically hide this tooltip",
192
+ "text": "Programmatically hide this tooltip.",
346
193
  "tags": []
347
194
  }
348
195
  },
@@ -352,7 +199,7 @@ export class PostTooltip {
352
199
  "parameters": [{
353
200
  "name": "target",
354
201
  "type": "HTMLElement",
355
- "docs": "An element with [data-tooltip-target=\"id\"] where the tooltip should be shown"
202
+ "docs": "An element where the tooltip should be shown"
356
203
  }, {
357
204
  "name": "force",
358
205
  "type": "boolean",
@@ -371,10 +218,10 @@ export class PostTooltip {
371
218
  "return": "Promise<void>"
372
219
  },
373
220
  "docs": {
374
- "text": "Toggle tooltip display",
221
+ "text": "Toggle tooltip display.",
375
222
  "tags": [{
376
223
  "name": "param",
377
- "text": "target An element with [data-tooltip-target=\"id\"] where the tooltip should be shown"
224
+ "text": "target An element where the tooltip should be shown"
378
225
  }, {
379
226
  "name": "param",
380
227
  "text": "force Pass true to always show or false to always hide"
@@ -386,8 +233,8 @@ export class PostTooltip {
386
233
  static get elementRef() { return "host"; }
387
234
  static get watchers() {
388
235
  return [{
389
- "propName": "delayed",
390
- "methodName": "validateDelayed"
236
+ "propName": "open",
237
+ "methodName": "validateOpen"
391
238
  }];
392
239
  }
393
240
  }
@@ -0,0 +1 @@
1
+ post-tooltip-trigger{vertical-align:top}
@@ -0,0 +1,230 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { checkType } from "../../utils/index";
3
+ import "long-press-event";
4
+ import { version } from "../../../../package";
5
+ import isFocusable from "ally.js/is/focusable";
6
+ const TRIGGER_EVENTS = ['pointerenter', 'pointerleave', 'focusin', 'focusout', 'long-press'];
7
+ /**
8
+ * @slot default - Content to trigger the tooltip. Can contain any focusable element or will be made focusable automatically.
9
+ */
10
+ export class PostTooltipTrigger {
11
+ constructor() {
12
+ /**
13
+ * Reference to the element inside the host that will act as the trigger.
14
+ */
15
+ this.trigger = null;
16
+ /**
17
+ * Timeout ID for the delay.
18
+ */
19
+ this.delayTimeout = null;
20
+ this.for = undefined;
21
+ this.delay = 0;
22
+ this.boundTriggerHandler = this.handleTriggerEvent.bind(this);
23
+ this.boundTooltipHandler = this.handleTooltipEvent.bind(this);
24
+ }
25
+ validateControlFor() {
26
+ checkType(this.for, // The actual property value
27
+ 'string', // The expected type
28
+ 'The "for" property must be a string' // A meaningful error message
29
+ );
30
+ }
31
+ get tooltip() {
32
+ const ref = document.getElementById(this.for);
33
+ return (ref === null || ref === void 0 ? void 0 : ref.localName) === 'post-tooltip'
34
+ ? ref
35
+ : null;
36
+ }
37
+ componentDidLoad() {
38
+ this.setupTrigger();
39
+ this.attachListeners();
40
+ this.attachTooltipListeners();
41
+ }
42
+ disconnectedCallback() {
43
+ this.removeListeners();
44
+ this.removeTooltipListeners();
45
+ this.cleanupTrigger();
46
+ if (this.delayTimeout) {
47
+ clearTimeout(this.delayTimeout);
48
+ this.delayTimeout = null;
49
+ }
50
+ }
51
+ handleSlotChange() {
52
+ this.cleanupTrigger();
53
+ this.setupTrigger();
54
+ }
55
+ cleanupTrigger() {
56
+ if (this.trigger) {
57
+ const describedBy = this.trigger.getAttribute('aria-describedby') || '';
58
+ if (describedBy.includes(this.for)) {
59
+ const newDescribedBy = describedBy
60
+ .split(' ')
61
+ .filter(id => id !== this.for)
62
+ .join(' ');
63
+ if (newDescribedBy) {
64
+ this.trigger.setAttribute('aria-describedby', newDescribedBy);
65
+ }
66
+ else {
67
+ this.trigger.removeAttribute('aria-describedby');
68
+ }
69
+ }
70
+ this.trigger = null;
71
+ }
72
+ }
73
+ setupTrigger() {
74
+ this.trigger = this.host.querySelector('*');
75
+ if (this.trigger) {
76
+ if (!isFocusable(this.trigger)) {
77
+ this.trigger.setAttribute('tabindex', '0');
78
+ }
79
+ const describedBy = this.trigger.getAttribute('aria-describedby') || '';
80
+ if (!describedBy.includes(this.for)) {
81
+ this.trigger.setAttribute('aria-describedby', `${describedBy} ${this.for}`.trim());
82
+ }
83
+ }
84
+ else {
85
+ console.warn('No content found in the post-tooltip-trigger slot. Please insert a focusable element or content that can receive focus.');
86
+ }
87
+ }
88
+ attachListeners() {
89
+ TRIGGER_EVENTS.forEach(event => {
90
+ this.host.addEventListener(event, this.boundTriggerHandler);
91
+ });
92
+ }
93
+ removeListeners() {
94
+ TRIGGER_EVENTS.forEach(event => {
95
+ this.host.removeEventListener(event, this.boundTriggerHandler);
96
+ });
97
+ }
98
+ attachTooltipListeners() {
99
+ if (this.tooltip) {
100
+ this.tooltip.addEventListener('pointerenter', this.boundTooltipHandler);
101
+ this.tooltip.addEventListener('pointerleave', this.boundTooltipHandler);
102
+ }
103
+ }
104
+ removeTooltipListeners() {
105
+ if (this.tooltip) {
106
+ this.tooltip.removeEventListener('pointerenter', this.boundTooltipHandler);
107
+ this.tooltip.removeEventListener('pointerleave', this.boundTooltipHandler);
108
+ }
109
+ }
110
+ handleTriggerEvent(event) {
111
+ switch (event.type) {
112
+ case 'pointerenter':
113
+ case 'focusin':
114
+ case 'long-press':
115
+ this.handleEnter();
116
+ break;
117
+ case 'pointerleave':
118
+ case 'focusout':
119
+ this.handleLeave(event);
120
+ break;
121
+ }
122
+ }
123
+ handleTooltipEvent(event) {
124
+ switch (event.type) {
125
+ case 'pointerenter':
126
+ this.handleEnter();
127
+ break;
128
+ case 'pointerleave':
129
+ this.handleLeave(event);
130
+ break;
131
+ }
132
+ }
133
+ handleEnter() {
134
+ if (this.delayTimeout) {
135
+ clearTimeout(this.delayTimeout);
136
+ this.delayTimeout = null;
137
+ }
138
+ this.interestHandler();
139
+ }
140
+ handleLeave(event) {
141
+ const newTarget = event.relatedTarget;
142
+ if ((this.tooltip && newTarget && this.tooltip.contains(newTarget)) ||
143
+ (newTarget === this.trigger)) {
144
+ return;
145
+ }
146
+ this.interestLostHandler();
147
+ }
148
+ interestHandler() {
149
+ var _a;
150
+ if (this.delay > 0) {
151
+ this.delayTimeout = window.setTimeout(() => {
152
+ var _a;
153
+ (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.show(this.trigger);
154
+ this.delayTimeout = null;
155
+ }, this.delay);
156
+ }
157
+ else {
158
+ (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.show(this.trigger);
159
+ }
160
+ }
161
+ interestLostHandler() {
162
+ var _a;
163
+ if (this.delayTimeout) {
164
+ clearTimeout(this.delayTimeout);
165
+ this.delayTimeout = null;
166
+ }
167
+ (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.hide();
168
+ }
169
+ render() {
170
+ return (h(Host, { key: 'a37c76972c4db24292fa95ddacf097055dea70f0', "data-version": version }, h("slot", { key: '51de3cd7dedfc1c5fe5ef86fbf0ab953d07945cb', onSlotchange: () => this.handleSlotChange() })));
171
+ }
172
+ static get is() { return "post-tooltip-trigger"; }
173
+ static get encapsulation() { return "shadow"; }
174
+ static get originalStyleUrls() {
175
+ return {
176
+ "$": ["post-tooltip-trigger.scss"]
177
+ };
178
+ }
179
+ static get styleUrls() {
180
+ return {
181
+ "$": ["post-tooltip-trigger.css"]
182
+ };
183
+ }
184
+ static get properties() {
185
+ return {
186
+ "for": {
187
+ "type": "string",
188
+ "mutable": false,
189
+ "complexType": {
190
+ "original": "string",
191
+ "resolved": "string",
192
+ "references": {}
193
+ },
194
+ "required": true,
195
+ "optional": false,
196
+ "docs": {
197
+ "tags": [],
198
+ "text": "ID of the tooltip element that this trigger is linked to."
199
+ },
200
+ "attribute": "for",
201
+ "reflect": true
202
+ },
203
+ "delay": {
204
+ "type": "number",
205
+ "mutable": false,
206
+ "complexType": {
207
+ "original": "number",
208
+ "resolved": "number",
209
+ "references": {}
210
+ },
211
+ "required": false,
212
+ "optional": false,
213
+ "docs": {
214
+ "tags": [],
215
+ "text": "Delay (in milliseconds) before the tooltip is shown."
216
+ },
217
+ "attribute": "delay",
218
+ "reflect": false,
219
+ "defaultValue": "0"
220
+ }
221
+ };
222
+ }
223
+ static get elementRef() { return "host"; }
224
+ static get watchers() {
225
+ return [{
226
+ "propName": "for",
227
+ "methodName": "validateControlFor"
228
+ }];
229
+ }
230
+ }
@@ -1,35 +1,18 @@
1
1
  // Export every single component so it gets included in the dist output
2
2
  export { PostAccordion } from './components/post-accordion/post-accordion';
3
3
  export { PostAccordionItem } from './components/post-accordion-item/post-accordion-item';
4
- export { PostAvatar } from './components/post-avatar/post-avatar';
5
- export { PostBackToTop } from './components/post-back-to-top/post-back-to-top';
6
- export { PostBanner } from './components/post-banner/post-banner';
7
- export { PostBreadcrumb } from './components/post-breadcrumb/post-breadcrumb';
8
- export { PostBreadcrumbItem } from './components/post-breadcrumb-item/post-breadcrumb-item';
4
+ export { PostAlert } from './components/post-alert/post-alert';
9
5
  export { PostCardControl } from './components/post-card-control/post-card-control';
10
- export { PostClosebutton } from './components/post-closebutton/post-closebutton';
11
6
  export { PostCollapsible } from './components/post-collapsible/post-collapsible';
12
7
  export { PostCollapsibleTrigger } from './components/post-collapsible-trigger/post-collapsible-trigger';
13
- export { PostFooter } from './components/post-footer/post-footer';
14
- export { PostHeader } from './components/post-header/post-header';
15
8
  export { PostIcon } from './components/post-icon/post-icon';
16
- export { PostLanguageOption } from './components/post-language-option/post-language-option';
17
- export { PostLanguageSwitch } from './components/post-language-switch/post-language-switch';
18
- export { PostList } from './components/post-list/post-list';
19
- export { PostListItem } from './components/post-list-item/post-list-item';
20
9
  export { PostLogo } from './components/post-logo/post-logo';
21
- export { PostMainnavigation } from './components/post-mainnavigation/post-mainnavigation';
22
- export { PostMegadropdown } from './components/post-megadropdown/post-megadropdown';
23
- export { PostMegadropdownTrigger } from './components/post-megadropdown-trigger/post-megadropdown-trigger';
24
- export { PostMenu } from './components/post-menu/post-menu';
25
- export { PostMenuItem } from './components/post-menu-item/post-menu-item';
26
- export { PostMenuTrigger } from './components/post-menu-trigger/post-menu-trigger';
27
10
  export { PostPopover } from './components/post-popover/post-popover';
28
11
  export { PostPopovercontainer } from './components/post-popovercontainer/post-popovercontainer';
29
12
  export { PostRating } from './components/post-rating/post-rating';
30
13
  export { PostTabs } from './components/post-tabs/post-tabs';
31
14
  export { PostTabHeader } from './components/post-tab-header/post-tab-header';
32
15
  export { PostTabPanel } from './components/post-tab-panel/post-tab-panel';
33
- export { PostTag } from './components/post-tag/post-tag';
34
- export { PostTogglebutton } from './components/post-togglebutton/post-togglebutton';
35
16
  export { PostTooltip } from './components/post-tooltip/post-tooltip';
17
+ export { PostTooltipTrigger } from './components/post-tooltip-trigger/post-tooltip-trigger';
18
+ export { PostTag } from './components/post-tag/post-tag';