@swisspost/design-system-components 9.0.0-next.8 → 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 (432) hide show
  1. package/dist/cjs/index-e1f32cce.js +16 -36
  2. package/dist/cjs/index.cjs.js +23 -44
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/{package-a2b895fc.js → package-3ed88bb9.js} +1 -1
  5. package/dist/cjs/{post-accordion-3ce01432.js → post-accordion-9ef382e8.js} +2 -2
  6. package/dist/cjs/post-accordion-item-5f685bee.js +52 -0
  7. package/dist/cjs/post-accordion-item.cjs.entry.js +2 -2
  8. package/dist/cjs/post-accordion.cjs.entry.js +2 -2
  9. package/dist/cjs/post-alert-88adc668.js +99 -0
  10. package/dist/cjs/{post-banner.cjs.entry.js → post-alert.cjs.entry.js} +3 -3
  11. package/dist/cjs/post-card-control-c6e5c427.js +272 -0
  12. package/dist/cjs/post-card-control.cjs.entry.js +2 -2
  13. package/dist/cjs/{post-collapsible-trigger-8ca4d85b.js → post-collapsible-trigger-1764e6dc.js} +12 -7
  14. package/dist/cjs/post-collapsible_2.cjs.entry.js +2 -3
  15. package/dist/cjs/post-components.cjs.js +1 -1
  16. package/dist/cjs/post-icon-f735da00.js +139 -0
  17. package/dist/cjs/{post-language-option.cjs.entry.js → post-icon.cjs.entry.js} +4 -3
  18. package/dist/cjs/post-logo-2cd8ae98.js +39 -0
  19. package/dist/cjs/{post-breadcrumb-item.cjs.entry.js → post-logo.cjs.entry.js} +3 -3
  20. package/dist/cjs/post-popover-36c854a4.js +131 -0
  21. package/dist/cjs/post-popover.cjs.entry.js +2 -3
  22. package/dist/cjs/{post-megadropdown-trigger-7376d867.js → post-popovercontainer-cb4793c1.js} +142 -545
  23. package/dist/cjs/post-popovercontainer.cjs.entry.js +11 -0
  24. package/dist/cjs/post-rating-d5073d8d.js +88 -0
  25. package/dist/cjs/post-rating.cjs.entry.js +2 -2
  26. package/dist/cjs/post-tab-header-b756d9b1.js +32 -0
  27. package/dist/cjs/post-tab-header.cjs.entry.js +2 -2
  28. package/dist/cjs/{post-tab-panel-34aed8e6.js → post-tab-panel-97b79ecd.js} +2 -2
  29. package/dist/cjs/post-tab-panel.cjs.entry.js +2 -2
  30. package/dist/cjs/{post-tabs-dd2da5d2.js → post-tabs-834497f2.js} +8 -6
  31. package/dist/cjs/post-tabs.cjs.entry.js +2 -2
  32. package/dist/cjs/post-tag-c70fb945.js +47 -0
  33. package/dist/cjs/post-tag.cjs.entry.js +2 -2
  34. package/dist/cjs/post-tooltip-20ebe011.js +69 -0
  35. package/dist/cjs/{post-tooltip-3e0c1509.js → post-tooltip-trigger-6f4c9748.js} +506 -556
  36. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +12 -0
  37. package/dist/cjs/post-tooltip.cjs.entry.js +2 -6
  38. package/dist/collection/collection-manifest.json +3 -17
  39. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  40. package/dist/collection/components/post-accordion/post-accordion.js +2 -2
  41. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  42. package/dist/collection/components/post-accordion-item/post-accordion-item.js +8 -19
  43. package/dist/collection/components/post-alert/alert-types.js +1 -0
  44. package/dist/collection/components/post-alert/post-alert.css +35 -0
  45. package/dist/collection/components/{post-banner/post-banner.js → post-alert/post-alert.js} +68 -39
  46. package/dist/collection/components/post-card-control/post-card-control.css +30 -2
  47. package/dist/collection/components/post-card-control/post-card-control.js +8 -8
  48. package/dist/collection/components/post-collapsible/post-collapsible.js +2 -4
  49. package/dist/collection/components/post-icon/post-icon.css +1 -1
  50. package/dist/collection/components/post-icon/post-icon.js +52 -13
  51. package/dist/collection/components/post-logo/post-logo.js +1 -1
  52. package/dist/collection/components/post-popover/post-popover.css +30 -2
  53. package/dist/collection/components/post-popover/post-popover.js +10 -6
  54. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +31 -1
  55. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +180 -52
  56. package/dist/collection/components/post-rating/post-rating.css +29 -1
  57. package/dist/collection/components/post-rating/post-rating.js +1 -1
  58. package/dist/collection/components/post-tab-header/post-tab-header.css +29 -1
  59. package/dist/collection/components/post-tab-header/post-tab-header.js +1 -1
  60. package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
  61. package/dist/collection/components/post-tabs/post-tabs.css +1 -1
  62. package/dist/collection/components/post-tabs/post-tabs.js +6 -4
  63. package/dist/collection/components/post-tag/post-tag.css +29 -1
  64. package/dist/collection/components/post-tag/post-tag.js +2 -2
  65. package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
  66. package/dist/collection/components/post-tooltip/post-tooltip.js +60 -213
  67. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.css +1 -0
  68. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +230 -0
  69. package/dist/collection/index.js +2 -16
  70. package/dist/components/index.js +2 -16
  71. package/dist/components/index2.js +1 -1
  72. package/dist/components/package.js +1 -1
  73. package/dist/components/post-accordion-item2.js +10 -27
  74. package/dist/components/post-accordion2.js +1 -1
  75. package/dist/components/{post-menu.d.ts → post-alert.d.ts} +4 -4
  76. package/dist/components/post-alert.js +6 -0
  77. package/dist/components/post-alert2.js +136 -0
  78. package/dist/components/post-card-control2.js +3 -3
  79. package/dist/components/post-collapsible-trigger2.js +8 -1
  80. package/dist/components/post-collapsible2.js +3 -5
  81. package/dist/components/post-icon2.js +54 -15
  82. package/dist/components/post-logo2.js +2 -2
  83. package/dist/components/post-popover2.js +35 -8
  84. package/dist/components/post-popovercontainer2.js +136 -41
  85. package/dist/components/post-rating2.js +2 -2
  86. package/dist/components/post-tab-header2.js +2 -2
  87. package/dist/components/post-tab-panel2.js +1 -1
  88. package/dist/components/post-tabs2.js +7 -5
  89. package/dist/components/post-tag2.js +2 -2
  90. package/dist/components/{post-banner.d.ts → post-tooltip-trigger.d.ts} +4 -4
  91. package/dist/components/post-tooltip-trigger.js +6 -0
  92. package/dist/components/post-tooltip-trigger2.js +4968 -0
  93. package/dist/components/post-tooltip2.js +32 -4962
  94. package/dist/docs.json +290 -1288
  95. package/dist/esm/{index-f8a00dc0.js → index-69587a51.js} +1 -1
  96. package/dist/esm/index-e1b64755.js +16 -36
  97. package/dist/esm/index.js +19 -26
  98. package/dist/esm/loader.js +1 -1
  99. package/dist/esm/package-983f957d.js +3 -0
  100. package/dist/esm/{post-accordion-19e88941.js → post-accordion-ad570427.js} +2 -2
  101. package/dist/esm/post-accordion-item-4db0aa2a.js +50 -0
  102. package/dist/esm/post-accordion-item.entry.js +3 -3
  103. package/dist/esm/post-accordion.entry.js +2 -2
  104. package/dist/esm/post-alert-1e9fbdfa.js +97 -0
  105. package/dist/esm/{post-banner.entry.js → post-alert.entry.js} +3 -3
  106. package/dist/esm/post-card-control-ccb189a8.js +270 -0
  107. package/dist/esm/post-card-control.entry.js +2 -2
  108. package/dist/esm/{post-collapsible-trigger-1d939eb6.js → post-collapsible-trigger-45fe328a.js} +12 -7
  109. package/dist/esm/post-collapsible_2.entry.js +3 -4
  110. package/dist/esm/post-components.js +1 -1
  111. package/dist/esm/post-icon-3fc4dd7d.js +137 -0
  112. package/dist/esm/post-icon.entry.js +8 -0
  113. package/dist/esm/post-logo-e6cdea13.js +37 -0
  114. package/dist/esm/post-logo.entry.js +7 -0
  115. package/dist/esm/post-popover-afdf4906.js +129 -0
  116. package/dist/esm/post-popover.entry.js +2 -3
  117. package/dist/esm/{post-megadropdown-trigger-210b4ab3.js → post-popovercontainer-b19b7606.js} +144 -538
  118. package/dist/esm/post-popovercontainer.entry.js +3 -0
  119. package/dist/esm/post-rating-f60024fa.js +86 -0
  120. package/dist/esm/post-rating.entry.js +2 -2
  121. package/dist/esm/post-tab-header-333e15d5.js +30 -0
  122. package/dist/esm/post-tab-header.entry.js +2 -2
  123. package/dist/esm/{post-tab-panel-afce8d40.js → post-tab-panel-0ddb05a2.js} +2 -2
  124. package/dist/esm/post-tab-panel.entry.js +2 -2
  125. package/dist/esm/{post-tabs-fbb42496.js → post-tabs-ab7853cf.js} +8 -6
  126. package/dist/esm/post-tabs.entry.js +2 -2
  127. package/dist/esm/post-tag-4a7d14b9.js +45 -0
  128. package/dist/esm/post-tag.entry.js +2 -2
  129. package/dist/esm/post-tooltip-c03cd719.js +67 -0
  130. package/dist/esm/{post-tooltip-7101ed24.js → post-tooltip-trigger-1fefc8ad.js} +506 -556
  131. package/dist/esm/post-tooltip-trigger.entry.js +4 -0
  132. package/dist/esm/post-tooltip.entry.js +2 -6
  133. package/dist/post-components/index.esm.js +1 -1
  134. package/dist/post-components/p-0a45da5e.entry.js +1 -0
  135. package/dist/post-components/p-12e82863.entry.js +1 -0
  136. package/dist/post-components/p-1386b77d.js +1 -0
  137. package/dist/post-components/p-1528b798.js +1 -0
  138. package/dist/post-components/p-18dc1299.entry.js +1 -0
  139. package/dist/post-components/p-1a8f6c84.entry.js +1 -0
  140. package/dist/post-components/p-256453ca.js +1 -0
  141. package/dist/post-components/p-3272ebad.js +1 -0
  142. package/dist/post-components/p-3596035e.js +1 -0
  143. package/dist/post-components/p-3668f4fa.entry.js +1 -0
  144. package/dist/post-components/p-375845d4.js +1 -0
  145. package/dist/post-components/p-381de59d.entry.js +1 -0
  146. package/dist/post-components/p-4e68c514.js +1 -0
  147. package/dist/post-components/p-4eb5d9a1.entry.js +1 -0
  148. package/dist/post-components/p-61a7d216.js +1 -0
  149. package/dist/post-components/{p-0338f9da.js → p-788e64fb.js} +1 -1
  150. package/dist/post-components/p-7d5b41d1.js +1 -0
  151. package/dist/post-components/p-82ea24e7.js +1 -0
  152. package/dist/post-components/p-85c4d04f.js +1 -0
  153. package/dist/post-components/p-85c6d001.entry.js +1 -0
  154. package/dist/post-components/p-8e555dda.js +15 -0
  155. package/dist/post-components/p-962a6f36.entry.js +1 -0
  156. package/dist/post-components/p-a76c71bc.js +1 -0
  157. package/dist/post-components/p-a7e8fd41.entry.js +1 -0
  158. package/dist/post-components/p-ac216bd0.entry.js +1 -0
  159. package/dist/post-components/p-b17ecbee.entry.js +1 -0
  160. package/dist/post-components/p-bb4227ad.entry.js +1 -0
  161. package/dist/post-components/p-bc294d0b.js +1 -0
  162. package/dist/post-components/p-d0b3c5d3.entry.js +1 -0
  163. package/dist/post-components/p-d4e148d8.entry.js +1 -0
  164. package/dist/post-components/p-d9809281.js +1 -0
  165. package/dist/post-components/p-eb1e7a49.js +1 -0
  166. package/dist/post-components/p-f35291d5.entry.js +1 -0
  167. package/dist/post-components/p-fc3bfe08.js +1 -0
  168. package/dist/post-components/post-components.esm.js +1 -1
  169. package/dist/types/components/post-accordion/post-accordion.d.ts +1 -1
  170. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +1 -5
  171. package/dist/types/components/post-alert/alert-types.d.ts +2 -0
  172. package/dist/types/components/post-alert/post-alert.d.ts +54 -0
  173. package/dist/types/components/post-card-control/post-card-control.d.ts +7 -7
  174. package/dist/types/components/post-icon/post-icon.d.ts +1 -1
  175. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +31 -13
  176. package/dist/types/components/post-tag/post-tag.d.ts +1 -1
  177. package/dist/types/components/post-tooltip/post-tooltip.d.ts +20 -34
  178. package/dist/types/components/post-tooltip-trigger/post-tooltip-trigger.d.ts +47 -0
  179. package/dist/types/components.d.ts +124 -490
  180. package/dist/types/index.d.ts +2 -16
  181. package/loaders/index.d.ts +4 -32
  182. package/loaders/index.js +4 -18
  183. package/loaders/index2.js +1 -1
  184. package/loaders/package.js +1 -1
  185. package/loaders/post-accordion-item.js +11 -28
  186. package/loaders/post-accordion.js +1 -1
  187. package/loaders/{post-menu.d.ts → post-alert.d.ts} +4 -4
  188. package/loaders/post-alert.js +139 -0
  189. package/loaders/post-card-control.js +3 -3
  190. package/loaders/post-collapsible-trigger2.js +8 -1
  191. package/loaders/post-collapsible2.js +3 -5
  192. package/loaders/post-icon2.js +54 -15
  193. package/loaders/post-logo.js +2 -2
  194. package/loaders/post-popover.js +35 -8
  195. package/loaders/post-popovercontainer2.js +136 -41
  196. package/loaders/post-rating.js +2 -2
  197. package/loaders/post-tab-header.js +2 -2
  198. package/loaders/post-tab-panel.js +1 -1
  199. package/loaders/post-tabs.js +7 -5
  200. package/loaders/post-tag.js +2 -2
  201. package/loaders/{post-avatar.d.ts → post-tooltip-trigger.d.ts} +4 -4
  202. package/loaders/post-tooltip-trigger.js +4971 -0
  203. package/loaders/post-tooltip.js +32 -4962
  204. package/package.json +5 -7
  205. package/dist/cjs/attribute-observer-10f08c04.js +0 -27
  206. package/dist/cjs/get-root-7a3498ef.js +0 -11
  207. package/dist/cjs/post-accordion-item-81601b1e.js +0 -62
  208. package/dist/cjs/post-avatar-b1c97f51.js +0 -148
  209. package/dist/cjs/post-avatar.cjs.entry.js +0 -13
  210. package/dist/cjs/post-back-to-top-0ce98569.js +0 -98
  211. package/dist/cjs/post-back-to-top.cjs.entry.js +0 -14
  212. package/dist/cjs/post-banner-8611eab5.js +0 -90
  213. package/dist/cjs/post-breadcrumb-item-2075462a.js +0 -49
  214. package/dist/cjs/post-card-control-acd30573.js +0 -272
  215. package/dist/cjs/post-closebutton_10.cjs.entry.js +0 -25
  216. package/dist/cjs/post-language-option-cf32d0ed.js +0 -68
  217. package/dist/cjs/post-menu-a3b7b63b.js +0 -176
  218. package/dist/cjs/post-menu-item-28ab1a72.js +0 -20
  219. package/dist/cjs/post-menu-item.cjs.entry.js +0 -11
  220. package/dist/cjs/post-menu-trigger-821839f5.js +0 -75
  221. package/dist/cjs/post-menu-trigger.cjs.entry.js +0 -13
  222. package/dist/cjs/post-menu.cjs.entry.js +0 -11
  223. package/dist/cjs/post-popover-c4f50134.js +0 -104
  224. package/dist/cjs/post-rating-3a87ca46.js +0 -88
  225. package/dist/cjs/post-tab-header-5fdb05a1.js +0 -32
  226. package/dist/cjs/post-tag-59232922.js +0 -47
  227. package/dist/cjs/post-togglebutton-59c6357b.js +0 -28
  228. package/dist/cjs/post-togglebutton.cjs.entry.js +0 -11
  229. package/dist/collection/animations/slide.js +0 -23
  230. package/dist/collection/components/post-avatar/post-avatar.css +0 -3
  231. package/dist/collection/components/post-avatar/post-avatar.js +0 -237
  232. package/dist/collection/components/post-back-to-top/post-back-to-top.css +0 -1
  233. package/dist/collection/components/post-back-to-top/post-back-to-top.js +0 -107
  234. package/dist/collection/components/post-banner/banner-types.js +0 -1
  235. package/dist/collection/components/post-banner/post-banner.css +0 -3
  236. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +0 -1
  237. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +0 -83
  238. package/dist/collection/components/post-closebutton/post-closebutton.js +0 -12
  239. package/dist/collection/components/post-header/post-header.css +0 -1
  240. package/dist/collection/components/post-header/post-header.js +0 -103
  241. package/dist/collection/components/post-language-option/post-language-option.css +0 -3
  242. package/dist/collection/components/post-language-option/post-language-option.js +0 -191
  243. package/dist/collection/components/post-list/post-list.css +0 -3
  244. package/dist/collection/components/post-list/post-list.js +0 -87
  245. package/dist/collection/components/post-list-item/post-list-item.css +0 -1
  246. package/dist/collection/components/post-list-item/post-list-item.js +0 -25
  247. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +0 -1
  248. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +0 -61
  249. package/dist/collection/components/post-megadropdown/post-megadropdown.css +0 -1
  250. package/dist/collection/components/post-megadropdown/post-megadropdown.js +0 -137
  251. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +0 -1
  252. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +0 -48
  253. package/dist/collection/components/post-menu/post-menu.css +0 -3
  254. package/dist/collection/components/post-menu/post-menu.js +0 -278
  255. package/dist/collection/components/post-menu-item/post-menu-item.css +0 -1
  256. package/dist/collection/components/post-menu-item/post-menu-item.js +0 -20
  257. package/dist/collection/components/post-menu-trigger/post-menu-trigger.css +0 -1
  258. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +0 -104
  259. package/dist/collection/components/post-togglebutton/post-togglebutton.css +0 -1
  260. package/dist/collection/components/post-togglebutton/post-togglebutton.js +0 -56
  261. package/dist/collection/utils/is-focusable.js +0 -26
  262. package/dist/components/attribute-observer.js +0 -25
  263. package/dist/components/get-root.js +0 -9
  264. package/dist/components/post-avatar.d.ts +0 -11
  265. package/dist/components/post-avatar.js +0 -6
  266. package/dist/components/post-avatar2.js +0 -173
  267. package/dist/components/post-back-to-top.d.ts +0 -11
  268. package/dist/components/post-back-to-top.js +0 -6
  269. package/dist/components/post-back-to-top2.js +0 -123
  270. package/dist/components/post-banner.js +0 -6
  271. package/dist/components/post-banner2.js +0 -125
  272. package/dist/components/post-breadcrumb-item.d.ts +0 -11
  273. package/dist/components/post-breadcrumb-item.js +0 -6
  274. package/dist/components/post-breadcrumb-item2.js +0 -72
  275. package/dist/components/post-closebutton.d.ts +0 -11
  276. package/dist/components/post-closebutton.js +0 -6
  277. package/dist/components/post-closebutton2.js +0 -34
  278. package/dist/components/post-header.d.ts +0 -11
  279. package/dist/components/post-header.js +0 -6
  280. package/dist/components/post-header2.js +0 -235
  281. package/dist/components/post-language-option.d.ts +0 -11
  282. package/dist/components/post-language-option.js +0 -6
  283. package/dist/components/post-language-option2.js +0 -92
  284. package/dist/components/post-list-item.d.ts +0 -11
  285. package/dist/components/post-list-item.js +0 -6
  286. package/dist/components/post-list-item2.js +0 -35
  287. package/dist/components/post-list.d.ts +0 -11
  288. package/dist/components/post-list.js +0 -6
  289. package/dist/components/post-list2.js +0 -53
  290. package/dist/components/post-mainnavigation.d.ts +0 -11
  291. package/dist/components/post-mainnavigation.js +0 -6
  292. package/dist/components/post-mainnavigation2.js +0 -48
  293. package/dist/components/post-megadropdown-trigger.d.ts +0 -11
  294. package/dist/components/post-megadropdown-trigger.js +0 -6
  295. package/dist/components/post-megadropdown-trigger2.js +0 -39
  296. package/dist/components/post-megadropdown.d.ts +0 -11
  297. package/dist/components/post-megadropdown.js +0 -6
  298. package/dist/components/post-megadropdown2.js +0 -67
  299. package/dist/components/post-menu-item.d.ts +0 -11
  300. package/dist/components/post-menu-item.js +0 -6
  301. package/dist/components/post-menu-item2.js +0 -33
  302. package/dist/components/post-menu-trigger.d.ts +0 -11
  303. package/dist/components/post-menu-trigger.js +0 -6
  304. package/dist/components/post-menu-trigger2.js +0 -92
  305. package/dist/components/post-menu.js +0 -6
  306. package/dist/components/post-menu2.js +0 -201
  307. package/dist/components/post-togglebutton.d.ts +0 -11
  308. package/dist/components/post-togglebutton.js +0 -6
  309. package/dist/components/post-togglebutton2.js +0 -43
  310. package/dist/esm/attribute-observer-37fa950a.js +0 -25
  311. package/dist/esm/get-root-7af2e0d1.js +0 -9
  312. package/dist/esm/package-9cafe148.js +0 -3
  313. package/dist/esm/post-accordion-item-33bbe4de.js +0 -60
  314. package/dist/esm/post-avatar-d15a9f9e.js +0 -146
  315. package/dist/esm/post-avatar.entry.js +0 -5
  316. package/dist/esm/post-back-to-top-bcf46150.js +0 -96
  317. package/dist/esm/post-back-to-top.entry.js +0 -6
  318. package/dist/esm/post-banner-bf5e6a18.js +0 -88
  319. package/dist/esm/post-breadcrumb-item-e3b41f74.js +0 -47
  320. package/dist/esm/post-breadcrumb-item.entry.js +0 -7
  321. package/dist/esm/post-card-control-f0788f6f.js +0 -270
  322. package/dist/esm/post-closebutton_10.entry.js +0 -8
  323. package/dist/esm/post-language-option-1436370d.js +0 -66
  324. package/dist/esm/post-language-option.entry.js +0 -7
  325. package/dist/esm/post-menu-e853e28b.js +0 -174
  326. package/dist/esm/post-menu-item-86d4c7ab.js +0 -18
  327. package/dist/esm/post-menu-item.entry.js +0 -3
  328. package/dist/esm/post-menu-trigger-80c2bdf4.js +0 -73
  329. package/dist/esm/post-menu-trigger.entry.js +0 -5
  330. package/dist/esm/post-menu.entry.js +0 -3
  331. package/dist/esm/post-popover-7195d05a.js +0 -102
  332. package/dist/esm/post-rating-8baf86fe.js +0 -86
  333. package/dist/esm/post-tab-header-a1d1d9d0.js +0 -30
  334. package/dist/esm/post-tag-d67b6a19.js +0 -45
  335. package/dist/esm/post-togglebutton-c3fb912d.js +0 -26
  336. package/dist/esm/post-togglebutton.entry.js +0 -3
  337. package/dist/post-components/p-00fa0152.js +0 -1
  338. package/dist/post-components/p-1667387e.entry.js +0 -1
  339. package/dist/post-components/p-19551c18.entry.js +0 -1
  340. package/dist/post-components/p-1b627f80.js +0 -1
  341. package/dist/post-components/p-24673919.js +0 -1
  342. package/dist/post-components/p-266b734f.entry.js +0 -1
  343. package/dist/post-components/p-282115c4.js +0 -1
  344. package/dist/post-components/p-2d0ffc1e.entry.js +0 -1
  345. package/dist/post-components/p-45018d7e.entry.js +0 -1
  346. package/dist/post-components/p-485dafcf.js +0 -1
  347. package/dist/post-components/p-4a647a78.js +0 -1
  348. package/dist/post-components/p-4abfa65b.js +0 -1
  349. package/dist/post-components/p-517f2b1f.entry.js +0 -1
  350. package/dist/post-components/p-55224ee7.entry.js +0 -1
  351. package/dist/post-components/p-558a9849.js +0 -1
  352. package/dist/post-components/p-59b31557.js +0 -1
  353. package/dist/post-components/p-5d1db85c.entry.js +0 -1
  354. package/dist/post-components/p-61e79941.js +0 -1
  355. package/dist/post-components/p-679978de.entry.js +0 -1
  356. package/dist/post-components/p-6a842b96.entry.js +0 -1
  357. package/dist/post-components/p-6adeaa6c.js +0 -1
  358. package/dist/post-components/p-6cea23cd.js +0 -15
  359. package/dist/post-components/p-71f03424.js +0 -1
  360. package/dist/post-components/p-8c2568c1.entry.js +0 -1
  361. package/dist/post-components/p-8fd3a3cb.entry.js +0 -1
  362. package/dist/post-components/p-939f2ba7.js +0 -1
  363. package/dist/post-components/p-a4c39296.entry.js +0 -1
  364. package/dist/post-components/p-af5d3b89.entry.js +0 -1
  365. package/dist/post-components/p-b4423249.entry.js +0 -1
  366. package/dist/post-components/p-c31a7d65.entry.js +0 -1
  367. package/dist/post-components/p-c544bb82.js +0 -1
  368. package/dist/post-components/p-ccb6dfa1.js +0 -1
  369. package/dist/post-components/p-d0b8820a.js +0 -1
  370. package/dist/post-components/p-d36adfb5.js +0 -1
  371. package/dist/post-components/p-da6a8268.entry.js +0 -1
  372. package/dist/post-components/p-ece14d88.js +0 -1
  373. package/dist/post-components/p-f0f8427e.js +0 -1
  374. package/dist/post-components/p-f2e1b4d8.js +0 -1
  375. package/dist/post-components/p-f627744e.js +0 -1
  376. package/dist/post-components/p-f7b6b96a.entry.js +0 -1
  377. package/dist/post-components/p-f812e93d.entry.js +0 -1
  378. package/dist/post-components/p-f8d41c32.js +0 -1
  379. package/dist/post-components/p-fc91cbc2.js +0 -1
  380. package/dist/post-components/p-fe516cdf.entry.js +0 -1
  381. package/dist/post-components/p-fe7467fb.entry.js +0 -1
  382. package/dist/types/animations/slide.d.ts +0 -2
  383. package/dist/types/components/post-avatar/post-avatar.d.ts +0 -51
  384. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +0 -19
  385. package/dist/types/components/post-banner/banner-types.d.ts +0 -2
  386. package/dist/types/components/post-banner/post-banner.d.ts +0 -49
  387. package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +0 -15
  388. package/dist/types/components/post-closebutton/post-closebutton.d.ts +0 -7
  389. package/dist/types/components/post-header/post-header.d.ts +0 -16
  390. package/dist/types/components/post-language-option/post-language-option.d.ts +0 -40
  391. package/dist/types/components/post-list/post-list.d.ts +0 -24
  392. package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
  393. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +0 -10
  394. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +0 -23
  395. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +0 -10
  396. package/dist/types/components/post-menu/post-menu.d.ts +0 -47
  397. package/dist/types/components/post-menu-item/post-menu-item.d.ts +0 -4
  398. package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +0 -27
  399. package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +0 -13
  400. package/dist/types/utils/is-focusable.d.ts +0 -1
  401. package/loaders/attribute-observer.js +0 -25
  402. package/loaders/get-root.js +0 -9
  403. package/loaders/post-avatar.js +0 -176
  404. package/loaders/post-back-to-top.d.ts +0 -11
  405. package/loaders/post-back-to-top.js +0 -126
  406. package/loaders/post-banner.d.ts +0 -11
  407. package/loaders/post-banner.js +0 -128
  408. package/loaders/post-breadcrumb-item.d.ts +0 -11
  409. package/loaders/post-breadcrumb-item.js +0 -75
  410. package/loaders/post-closebutton.d.ts +0 -11
  411. package/loaders/post-closebutton.js +0 -37
  412. package/loaders/post-header.d.ts +0 -11
  413. package/loaders/post-header.js +0 -238
  414. package/loaders/post-language-option.d.ts +0 -11
  415. package/loaders/post-language-option.js +0 -95
  416. package/loaders/post-list-item.d.ts +0 -11
  417. package/loaders/post-list-item.js +0 -38
  418. package/loaders/post-list.d.ts +0 -11
  419. package/loaders/post-list.js +0 -56
  420. package/loaders/post-mainnavigation.d.ts +0 -11
  421. package/loaders/post-mainnavigation.js +0 -51
  422. package/loaders/post-megadropdown-trigger.d.ts +0 -11
  423. package/loaders/post-megadropdown-trigger.js +0 -42
  424. package/loaders/post-megadropdown.d.ts +0 -11
  425. package/loaders/post-megadropdown.js +0 -70
  426. package/loaders/post-menu-item.d.ts +0 -11
  427. package/loaders/post-menu-item.js +0 -36
  428. package/loaders/post-menu-trigger.d.ts +0 -11
  429. package/loaders/post-menu-trigger.js +0 -95
  430. package/loaders/post-menu.js +0 -204
  431. package/loaders/post-togglebutton.d.ts +0 -11
  432. package/loaders/post-togglebutton.js +0 -46
@@ -30,7 +30,7 @@ export class PostTag {
30
30
  this.setClasses();
31
31
  }
32
32
  render() {
33
- return (h(Host, { key: 'e2d95e10853f66d7b05768b80a0350e0bc05051d', "data-version": version }, h("div", { key: '72bac44cca9c4197e9042e6a4896f235d057a5c9', class: this.classes }, this.icon ? h("post-icon", { name: this.icon }) : null, h("div", { key: '1b54b8a89320306aa09fe1e50dffd453b44fc587', class: "tag-text" }, h("slot", { key: '52f4f5b2d62f8ae245c7b472cdbc9f5202b554c1' })))));
33
+ return (h(Host, { key: '20c4c9dc37c9db3d4372090fb374bf2eea0cdb07', "data-version": version }, h("div", { key: '9bef44d17e73969a1fc3cfe580c6347958da89dc', class: this.classes }, this.icon ? h("post-icon", { name: this.icon }) : null, h("div", { key: '2bc158a3bd9981960053ab4ffc9f69419cd38af3', class: "tag-text" }, h("slot", { key: 'fabe72ce90e9a6e06fa62c748731de44f1c7f6b7' })))));
34
34
  }
35
35
  static get is() { return "post-tag"; }
36
36
  static get encapsulation() { return "shadow"; }
@@ -93,7 +93,7 @@ export class PostTag {
93
93
  "optional": false,
94
94
  "docs": {
95
95
  "tags": [],
96
- "text": "Defines the icon `name` inside of the component.\n<span className=\"banner banner-sm banner-info\">If not set the icon will not show up.</span>\nTo learn which icons are available, please visit our <a href=\"/?path=/docs/5704bdc4-c5b5-45e6-b123-c54d01fce2f1--docs\">icon library</a>."
96
+ "text": "Defines the icon `name` inside of the component.\n<span className=\"alert alert-sm alert-info\">If not set the icon will not show up.</span>\nTo learn which icons are available, please visit our <a href=\"/?path=/docs/5704bdc4-c5b5-45e6-b123-c54d01fce2f1--docs\">icon library</a>."
97
97
  },
98
98
  "attribute": "icon",
99
99
  "reflect": false,
@@ -1 +1 @@
1
- :host{--post-contrast-color: #fff;--post-bg-rgb: 51, 51, 51}post-popovercontainer{padding:.25rem .5rem;max-width:13.5rem;min-height:1rem}post-popovercontainer[arrow]::after{position:absolute;content:"";inset:-13px;z-index:-1}
1
+ :host{display:none;--post-contrast-color: #fff;--post-bg-rgb: 51, 51, 51}:host([open]){display:block}post-popovercontainer[arrow]::after{position:absolute;content:"";inset:-13px;z-index:-1}post-popovercontainer>div{padding:.25rem .5rem;max-width:200px;min-height:32px}
@@ -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: 'accf9ab04bcac0d6ed46818dc00e9110f936e593', "data-version": version, role: "tooltip", onPointerOver: this.handleInterest, onPointerOut: this.handleInterestLost, onFocusIn: this.handleInterest, onFocusOut: this.handleInterestLost }, h("post-popovercontainer", { key: 'e31610624b6833e78de7cb6ec52fb3fc5ca02d49', class: popoverClass, arrow: this.arrow, placement: this.placement, ref: (el) => (this.popoverRef = el) }, h("slot", { key: '206925925cc51d3b0eb4f2c0b1e8ca65ab3fd8c4' }))));
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
+ }