@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,9 +1,273 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-010dc207.js');
4
- const _package = require('./package-8e810a59.js');
5
- const attributeObserver = require('./attribute-observer-10f08c04.js');
6
- const index$1 = require('./index-5d4e0aed.js');
3
+ const index = require('./index-e1f32cce.js');
4
+ const checkType = require('./check-type-64af82a9.js');
5
+ const _package = require('./package-3ed88bb9.js');
6
+
7
+ /*!
8
+ * long-press-event - v@version@
9
+ * Pure JavaScript long-press-event
10
+ * https://github.com/john-doherty/long-press-event
11
+ * @author John Doherty <www.johndoherty.info>
12
+ * @license MIT
13
+ */
14
+ (function (window, document) {
15
+
16
+ // local timer object based on rAF
17
+ var timer = null;
18
+
19
+ // check if we're using a touch screen
20
+ var hasPointerEvents = (('PointerEvent' in window) || (window.navigator && 'msPointerEnabled' in window.navigator));
21
+ var isTouch = (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));
22
+
23
+ // switch to pointer events or touch events if using a touch screen
24
+ var mouseDown = hasPointerEvents ? 'pointerdown' : isTouch ? 'touchstart' : 'mousedown';
25
+ var mouseUp = hasPointerEvents ? 'pointerup' : isTouch ? 'touchend' : 'mouseup';
26
+ var mouseMove = hasPointerEvents ? 'pointermove' : isTouch ? 'touchmove' : 'mousemove';
27
+ var mouseLeave = hasPointerEvents ? 'pointerleave' : isTouch ? 'touchleave' : 'mouseleave';
28
+
29
+ // track number of pixels the mouse moves during long press
30
+ var startX = 0; // mouse x position when timer started
31
+ var startY = 0; // mouse y position when timer started
32
+ var maxDiffX = 10; // max number of X pixels the mouse can move during long press before it is canceled
33
+ var maxDiffY = 10; // max number of Y pixels the mouse can move during long press before it is canceled
34
+
35
+ // patch CustomEvent to allow constructor creation (IE/Chrome)
36
+ if (typeof window.CustomEvent !== 'function') {
37
+
38
+ window.CustomEvent = function (event, params) {
39
+
40
+ params = params || { bubbles: false, cancelable: false, detail: undefined };
41
+
42
+ var evt = document.createEvent('CustomEvent');
43
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
44
+ return evt;
45
+ };
46
+
47
+ window.CustomEvent.prototype = window.Event.prototype;
48
+ }
49
+
50
+ // requestAnimationFrame() shim by Paul Irish
51
+ window.requestAnimFrame = (function () {
52
+ return window.requestAnimationFrame ||
53
+ window.webkitRequestAnimationFrame ||
54
+ window.mozRequestAnimationFrame ||
55
+ window.oRequestAnimationFrame ||
56
+ window.msRequestAnimationFrame || function (callback) {
57
+ window.setTimeout(callback, 1000 / 60);
58
+ };
59
+ })();
60
+
61
+ /**
62
+ * Behaves the same as setTimeout except uses requestAnimationFrame() where possible for better performance
63
+ * @param {function} fn The callback function
64
+ * @param {int} delay The delay in milliseconds
65
+ * @returns {object} handle to the timeout object
66
+ */
67
+ function requestTimeout(fn, delay) {
68
+
69
+ if (!window.requestAnimationFrame && !window.webkitRequestAnimationFrame &&
70
+ !(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support
71
+ !window.oRequestAnimationFrame && !window.msRequestAnimationFrame) return window.setTimeout(fn, delay);
72
+
73
+ var start = new Date().getTime();
74
+ var handle = {};
75
+
76
+ var loop = function () {
77
+ var current = new Date().getTime();
78
+ var delta = current - start;
79
+
80
+ if (delta >= delay) {
81
+ fn.call();
82
+ }
83
+ else {
84
+ handle.value = requestAnimFrame(loop);
85
+ }
86
+ };
87
+
88
+ handle.value = requestAnimFrame(loop);
89
+
90
+ return handle;
91
+ }
92
+
93
+ /**
94
+ * Behaves the same as clearTimeout except uses cancelRequestAnimationFrame() where possible for better performance
95
+ * @param {object} handle The callback function
96
+ * @returns {void}
97
+ */
98
+ function clearRequestTimeout(handle) {
99
+ if (handle) {
100
+ window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) :
101
+ window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) :
102
+ window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : /* Support for legacy API */
103
+ window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) :
104
+ window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) :
105
+ window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) :
106
+ clearTimeout(handle);
107
+ }
108
+ }
109
+
110
+ /**
111
+ * Fires the 'long-press' event on element
112
+ * @param {MouseEvent|PointerEvent|TouchEvent} originalEvent The original event being fired
113
+ * @returns {void}
114
+ */
115
+ function fireLongPressEvent(originalEvent) {
116
+
117
+ clearLongPressTimer();
118
+
119
+ originalEvent = unifyEvent(originalEvent);
120
+
121
+ // fire the long-press event
122
+ var allowClickEvent = this.dispatchEvent(new CustomEvent('long-press', {
123
+ bubbles: true,
124
+ cancelable: true,
125
+
126
+ // custom event data (legacy)
127
+ detail: {
128
+ clientX: originalEvent.clientX,
129
+ clientY: originalEvent.clientY,
130
+ offsetX: originalEvent.offsetX,
131
+ offsetY: originalEvent.offsetY,
132
+ pageX: originalEvent.pageX,
133
+ pageY: originalEvent.pageY
134
+ },
135
+
136
+ // add coordinate data that would typically acompany a touch/click event
137
+ clientX: originalEvent.clientX,
138
+ clientY: originalEvent.clientY,
139
+ offsetX: originalEvent.offsetX,
140
+ offsetY: originalEvent.offsetY,
141
+ pageX: originalEvent.pageX,
142
+ pageY: originalEvent.pageY,
143
+ screenX: originalEvent.screenX,
144
+ screenY: originalEvent.screenY
145
+ }));
146
+
147
+ if (!allowClickEvent) {
148
+ // suppress the next click event if e.preventDefault() was called in long-press handler
149
+ document.addEventListener('click', function suppressEvent(e) {
150
+ document.removeEventListener('click', suppressEvent, true);
151
+ cancelEvent(e);
152
+ }, true);
153
+ }
154
+ }
155
+
156
+ /**
157
+ * consolidates mouse, touch, and Pointer events
158
+ * @param {MouseEvent|PointerEvent|TouchEvent} e The original event being fired
159
+ * @returns {MouseEvent|PointerEvent|Touch}
160
+ */
161
+ function unifyEvent(e) {
162
+ if (e.changedTouches !== undefined) {
163
+ return e.changedTouches[0];
164
+ }
165
+ return e;
166
+ }
167
+
168
+ /**
169
+ * method responsible for starting the long press timer
170
+ * @param {event} e - event object
171
+ * @returns {void}
172
+ */
173
+ function startLongPressTimer(e) {
174
+
175
+ clearLongPressTimer();
176
+
177
+ var el = e.target;
178
+
179
+ // get delay from html attribute if it exists, otherwise default to 1500
180
+ var longPressDelayInMs = parseInt(getNearestAttribute(el, 'data-long-press-delay', '1500'), 10); // default 1500
181
+
182
+ // start the timer
183
+ timer = requestTimeout(fireLongPressEvent.bind(el, e), longPressDelayInMs);
184
+ }
185
+
186
+ /**
187
+ * method responsible for clearing a pending long press timer
188
+ * @param {event} e - event object
189
+ * @returns {void}
190
+ */
191
+ function clearLongPressTimer(e) {
192
+ clearRequestTimeout(timer);
193
+ timer = null;
194
+ }
195
+
196
+ /**
197
+ * Cancels the current event
198
+ * @param {object} e - browser event object
199
+ * @returns {void}
200
+ */
201
+ function cancelEvent(e) {
202
+ e.stopImmediatePropagation();
203
+ e.preventDefault();
204
+ e.stopPropagation();
205
+ }
206
+
207
+ /**
208
+ * Starts the timer on mouse down and logs current position
209
+ * @param {object} e - browser event object
210
+ * @returns {void}
211
+ */
212
+ function mouseDownHandler(e) {
213
+ startX = e.clientX;
214
+ startY = e.clientY;
215
+ startLongPressTimer(e);
216
+ }
217
+
218
+ /**
219
+ * If the mouse moves n pixels during long-press, cancel the timer
220
+ * @param {object} e - browser event object
221
+ * @returns {void}
222
+ */
223
+ function mouseMoveHandler(e) {
224
+
225
+ // calculate total number of pixels the pointer has moved
226
+ var diffX = Math.abs(startX - e.clientX);
227
+ var diffY = Math.abs(startY - e.clientY);
228
+
229
+ // if pointer has moved more than allowed, cancel the long-press timer and therefore the event
230
+ if (diffX >= maxDiffX || diffY >= maxDiffY) {
231
+ clearLongPressTimer();
232
+ }
233
+ }
234
+
235
+ /**
236
+ * Gets attribute off HTML element or nearest parent
237
+ * @param {object} el - HTML element to retrieve attribute from
238
+ * @param {string} attributeName - name of the attribute
239
+ * @param {any} defaultValue - default value to return if no match found
240
+ * @returns {any} attribute value or defaultValue
241
+ */
242
+ function getNearestAttribute(el, attributeName, defaultValue) {
243
+
244
+ // walk up the dom tree looking for data-action and data-trigger
245
+ while (el && el !== document.documentElement) {
246
+
247
+ var attributeValue = el.getAttribute(attributeName);
248
+
249
+ if (attributeValue) {
250
+ return attributeValue;
251
+ }
252
+
253
+ el = el.parentNode;
254
+ }
255
+
256
+ return defaultValue;
257
+ }
258
+
259
+ // hook events that clear a pending long press event
260
+ document.addEventListener(mouseUp, clearLongPressTimer, true);
261
+ document.addEventListener(mouseLeave, clearLongPressTimer, true);
262
+ document.addEventListener(mouseMove, mouseMoveHandler, true);
263
+ document.addEventListener('wheel', clearLongPressTimer, true);
264
+ document.addEventListener('scroll', clearLongPressTimer, true);
265
+ document.addEventListener('contextmenu', clearLongPressTimer, true);
266
+
267
+ // hook events that can trigger a long press event
268
+ document.addEventListener(mouseDown, mouseDownHandler, true); // <- start
269
+
270
+ }(window, document));
7
271
 
8
272
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
9
273
 
@@ -4390,611 +4654,297 @@ function isOnlyFocusRelevant(element) {
4390
4654
 
4391
4655
  if (nodeName === 'area') {
4392
4656
  // all <area>s are considered relevant,
4393
- // but only the valid <area>s are focusable
4394
- return !(0, _validArea2.default)(element);
4395
- }
4396
-
4397
- return false;
4398
- }
4399
-
4400
- function isFocusableRules() {
4401
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
4402
- context = _ref.context,
4403
- _ref$except = _ref.except,
4404
- except = _ref$except === undefined ? {
4405
- disabled: false,
4406
- visible: false,
4407
- onlyTabbable: false
4408
- } : _ref$except;
4409
-
4410
- if (!supports$1) {
4411
- supports$1 = (0, _supports3.default)();
4412
- }
4413
-
4414
- var _isOnlyTabbable = _onlyTabbable2.default.rules.except({
4415
- onlyFocusableBrowsingContext: true,
4416
- visible: except.visible
4417
- });
4418
-
4419
- var element = (0, _contextToElement2.default)({
4420
- label: 'is/focusable',
4421
- resolveDocument: true,
4422
- context: context
4423
- });
4424
-
4425
- var focusRelevant = _focusRelevant2.default.rules({
4426
- context: element,
4427
- except: except
4428
- });
4429
-
4430
- if (!focusRelevant || isOnlyFocusRelevant(element)) {
4431
- return false;
4432
- }
4433
-
4434
- if (!except.disabled && (0, _disabled2.default)(element)) {
4435
- return false;
4436
- }
4437
-
4438
- if (!except.onlyTabbable && _isOnlyTabbable(element)) {
4439
- // some elements may be keyboard focusable, but not script focusable
4440
- return false;
4441
- }
4442
-
4443
- // elements that are not rendered, cannot be focused
4444
- if (!except.visible) {
4445
- var visibilityOptions = {
4446
- context: element,
4447
- except: {}
4448
- };
4449
-
4450
- if (supports$1.focusInHiddenIframe) {
4451
- // WebKit and Blink can focus content in hidden <iframe> and <object>
4452
- visibilityOptions.except.browsingContext = true;
4453
- }
4454
-
4455
- if (supports$1.focusObjectSvgHidden) {
4456
- // Blink allows focusing the object element, even if it has visibility: hidden;
4457
- // @browser-issue Blink https://code.google.com/p/chromium/issues/detail?id=586191
4458
- var _nodeName2 = element.nodeName.toLowerCase();
4459
- if (_nodeName2 === 'object') {
4460
- visibilityOptions.except.cssVisibility = true;
4461
- }
4462
- }
4463
-
4464
- if (!_visible2.default.rules(visibilityOptions)) {
4465
- return false;
4466
- }
4467
- }
4468
-
4469
- var frameElement = (0, _getFrameElement2.default)(element);
4470
- if (frameElement) {
4471
- var _nodeName = frameElement.nodeName.toLowerCase();
4472
- if (_nodeName === 'object' && !supports$1.focusInZeroDimensionObject) {
4473
- if (!frameElement.offsetWidth || !frameElement.offsetHeight) {
4474
- // WebKit can not focus content in <object> if it doesn't have dimensions
4475
- return false;
4476
- }
4477
- }
4478
- }
4479
-
4480
- var nodeName = element.nodeName.toLowerCase();
4481
- if (nodeName === 'svg' && supports$1.focusSvgInIframe && !frameElement && element.getAttribute('tabindex') === null) {
4482
- return false;
4483
- }
4484
-
4485
- return true;
4486
- }
4487
-
4488
- // bind exceptions to an iterator callback
4489
- isFocusableRules.except = function () {
4490
- var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4491
-
4492
- var isFocusable = function isFocusable(context) {
4493
- return isFocusableRules({
4494
- context: context,
4495
- except: except
4496
- });
4497
- };
4498
-
4499
- isFocusable.rules = isFocusableRules;
4500
- return isFocusable;
4501
- };
4502
-
4503
- // provide isFocusRelevant(context) as default iterator callback
4504
- var isFocusable = isFocusableRules.except({});
4505
- exports.default = isFocusable;
4506
- module.exports = exports['default'];
4507
-
4508
- }(focusable, focusable.exports));
4509
-
4510
- const isFocusable = /*@__PURE__*/getDefaultExportFromCjs(focusable.exports);
4511
-
4512
- /*!
4513
- * long-press-event - v@version@
4514
- * Pure JavaScript long-press-event
4515
- * https://github.com/john-doherty/long-press-event
4516
- * @author John Doherty <www.johndoherty.info>
4517
- * @license MIT
4518
- */
4519
- (function (window, document) {
4520
-
4521
- // local timer object based on rAF
4522
- var timer = null;
4523
-
4524
- // check if we're using a touch screen
4525
- var hasPointerEvents = (('PointerEvent' in window) || (window.navigator && 'msPointerEnabled' in window.navigator));
4526
- var isTouch = (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));
4527
-
4528
- // switch to pointer events or touch events if using a touch screen
4529
- var mouseDown = hasPointerEvents ? 'pointerdown' : isTouch ? 'touchstart' : 'mousedown';
4530
- var mouseUp = hasPointerEvents ? 'pointerup' : isTouch ? 'touchend' : 'mouseup';
4531
- var mouseMove = hasPointerEvents ? 'pointermove' : isTouch ? 'touchmove' : 'mousemove';
4532
- var mouseLeave = hasPointerEvents ? 'pointerleave' : isTouch ? 'touchleave' : 'mouseleave';
4533
-
4534
- // track number of pixels the mouse moves during long press
4535
- var startX = 0; // mouse x position when timer started
4536
- var startY = 0; // mouse y position when timer started
4537
- var maxDiffX = 10; // max number of X pixels the mouse can move during long press before it is canceled
4538
- var maxDiffY = 10; // max number of Y pixels the mouse can move during long press before it is canceled
4539
-
4540
- // patch CustomEvent to allow constructor creation (IE/Chrome)
4541
- if (typeof window.CustomEvent !== 'function') {
4542
-
4543
- window.CustomEvent = function (event, params) {
4544
-
4545
- params = params || { bubbles: false, cancelable: false, detail: undefined };
4546
-
4547
- var evt = document.createEvent('CustomEvent');
4548
- evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
4549
- return evt;
4550
- };
4551
-
4552
- window.CustomEvent.prototype = window.Event.prototype;
4553
- }
4554
-
4555
- // requestAnimationFrame() shim by Paul Irish
4556
- window.requestAnimFrame = (function () {
4557
- return window.requestAnimationFrame ||
4558
- window.webkitRequestAnimationFrame ||
4559
- window.mozRequestAnimationFrame ||
4560
- window.oRequestAnimationFrame ||
4561
- window.msRequestAnimationFrame || function (callback) {
4562
- window.setTimeout(callback, 1000 / 60);
4563
- };
4564
- })();
4565
-
4566
- /**
4567
- * Behaves the same as setTimeout except uses requestAnimationFrame() where possible for better performance
4568
- * @param {function} fn The callback function
4569
- * @param {int} delay The delay in milliseconds
4570
- * @returns {object} handle to the timeout object
4571
- */
4572
- function requestTimeout(fn, delay) {
4573
-
4574
- if (!window.requestAnimationFrame && !window.webkitRequestAnimationFrame &&
4575
- !(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support
4576
- !window.oRequestAnimationFrame && !window.msRequestAnimationFrame) return window.setTimeout(fn, delay);
4577
-
4578
- var start = new Date().getTime();
4579
- var handle = {};
4580
-
4581
- var loop = function () {
4582
- var current = new Date().getTime();
4583
- var delta = current - start;
4584
-
4585
- if (delta >= delay) {
4586
- fn.call();
4587
- }
4588
- else {
4589
- handle.value = requestAnimFrame(loop);
4590
- }
4591
- };
4592
-
4593
- handle.value = requestAnimFrame(loop);
4594
-
4595
- return handle;
4596
- }
4597
-
4598
- /**
4599
- * Behaves the same as clearTimeout except uses cancelRequestAnimationFrame() where possible for better performance
4600
- * @param {object} handle The callback function
4601
- * @returns {void}
4602
- */
4603
- function clearRequestTimeout(handle) {
4604
- if (handle) {
4605
- window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) :
4606
- window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) :
4607
- window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : /* Support for legacy API */
4608
- window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) :
4609
- window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) :
4610
- window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) :
4611
- clearTimeout(handle);
4612
- }
4613
- }
4614
-
4615
- /**
4616
- * Fires the 'long-press' event on element
4617
- * @param {MouseEvent|PointerEvent|TouchEvent} originalEvent The original event being fired
4618
- * @returns {void}
4619
- */
4620
- function fireLongPressEvent(originalEvent) {
4621
-
4622
- clearLongPressTimer();
4623
-
4624
- originalEvent = unifyEvent(originalEvent);
4625
-
4626
- // fire the long-press event
4627
- var allowClickEvent = this.dispatchEvent(new CustomEvent('long-press', {
4628
- bubbles: true,
4629
- cancelable: true,
4630
-
4631
- // custom event data (legacy)
4632
- detail: {
4633
- clientX: originalEvent.clientX,
4634
- clientY: originalEvent.clientY,
4635
- offsetX: originalEvent.offsetX,
4636
- offsetY: originalEvent.offsetY,
4637
- pageX: originalEvent.pageX,
4638
- pageY: originalEvent.pageY
4639
- },
4657
+ // but only the valid <area>s are focusable
4658
+ return !(0, _validArea2.default)(element);
4659
+ }
4640
4660
 
4641
- // add coordinate data that would typically acompany a touch/click event
4642
- clientX: originalEvent.clientX,
4643
- clientY: originalEvent.clientY,
4644
- offsetX: originalEvent.offsetX,
4645
- offsetY: originalEvent.offsetY,
4646
- pageX: originalEvent.pageX,
4647
- pageY: originalEvent.pageY,
4648
- screenX: originalEvent.screenX,
4649
- screenY: originalEvent.screenY
4650
- }));
4661
+ return false;
4662
+ }
4651
4663
 
4652
- if (!allowClickEvent) {
4653
- // suppress the next click event if e.preventDefault() was called in long-press handler
4654
- document.addEventListener('click', function suppressEvent(e) {
4655
- document.removeEventListener('click', suppressEvent, true);
4656
- cancelEvent(e);
4657
- }, true);
4658
- }
4659
- }
4664
+ function isFocusableRules() {
4665
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
4666
+ context = _ref.context,
4667
+ _ref$except = _ref.except,
4668
+ except = _ref$except === undefined ? {
4669
+ disabled: false,
4670
+ visible: false,
4671
+ onlyTabbable: false
4672
+ } : _ref$except;
4660
4673
 
4661
- /**
4662
- * consolidates mouse, touch, and Pointer events
4663
- * @param {MouseEvent|PointerEvent|TouchEvent} e The original event being fired
4664
- * @returns {MouseEvent|PointerEvent|Touch}
4665
- */
4666
- function unifyEvent(e) {
4667
- if (e.changedTouches !== undefined) {
4668
- return e.changedTouches[0];
4669
- }
4670
- return e;
4671
- }
4674
+ if (!supports$1) {
4675
+ supports$1 = (0, _supports3.default)();
4676
+ }
4672
4677
 
4673
- /**
4674
- * method responsible for starting the long press timer
4675
- * @param {event} e - event object
4676
- * @returns {void}
4677
- */
4678
- function startLongPressTimer(e) {
4678
+ var _isOnlyTabbable = _onlyTabbable2.default.rules.except({
4679
+ onlyFocusableBrowsingContext: true,
4680
+ visible: except.visible
4681
+ });
4679
4682
 
4680
- clearLongPressTimer();
4683
+ var element = (0, _contextToElement2.default)({
4684
+ label: 'is/focusable',
4685
+ resolveDocument: true,
4686
+ context: context
4687
+ });
4681
4688
 
4682
- var el = e.target;
4689
+ var focusRelevant = _focusRelevant2.default.rules({
4690
+ context: element,
4691
+ except: except
4692
+ });
4683
4693
 
4684
- // get delay from html attribute if it exists, otherwise default to 1500
4685
- var longPressDelayInMs = parseInt(getNearestAttribute(el, 'data-long-press-delay', '1500'), 10); // default 1500
4694
+ if (!focusRelevant || isOnlyFocusRelevant(element)) {
4695
+ return false;
4696
+ }
4686
4697
 
4687
- // start the timer
4688
- timer = requestTimeout(fireLongPressEvent.bind(el, e), longPressDelayInMs);
4689
- }
4698
+ if (!except.disabled && (0, _disabled2.default)(element)) {
4699
+ return false;
4700
+ }
4690
4701
 
4691
- /**
4692
- * method responsible for clearing a pending long press timer
4693
- * @param {event} e - event object
4694
- * @returns {void}
4695
- */
4696
- function clearLongPressTimer(e) {
4697
- clearRequestTimeout(timer);
4698
- timer = null;
4699
- }
4702
+ if (!except.onlyTabbable && _isOnlyTabbable(element)) {
4703
+ // some elements may be keyboard focusable, but not script focusable
4704
+ return false;
4705
+ }
4700
4706
 
4701
- /**
4702
- * Cancels the current event
4703
- * @param {object} e - browser event object
4704
- * @returns {void}
4705
- */
4706
- function cancelEvent(e) {
4707
- e.stopImmediatePropagation();
4708
- e.preventDefault();
4709
- e.stopPropagation();
4710
- }
4707
+ // elements that are not rendered, cannot be focused
4708
+ if (!except.visible) {
4709
+ var visibilityOptions = {
4710
+ context: element,
4711
+ except: {}
4712
+ };
4711
4713
 
4712
- /**
4713
- * Starts the timer on mouse down and logs current position
4714
- * @param {object} e - browser event object
4715
- * @returns {void}
4716
- */
4717
- function mouseDownHandler(e) {
4718
- startX = e.clientX;
4719
- startY = e.clientY;
4720
- startLongPressTimer(e);
4714
+ if (supports$1.focusInHiddenIframe) {
4715
+ // WebKit and Blink can focus content in hidden <iframe> and <object>
4716
+ visibilityOptions.except.browsingContext = true;
4721
4717
  }
4722
4718
 
4723
- /**
4724
- * If the mouse moves n pixels during long-press, cancel the timer
4725
- * @param {object} e - browser event object
4726
- * @returns {void}
4727
- */
4728
- function mouseMoveHandler(e) {
4729
-
4730
- // calculate total number of pixels the pointer has moved
4731
- var diffX = Math.abs(startX - e.clientX);
4732
- var diffY = Math.abs(startY - e.clientY);
4719
+ if (supports$1.focusObjectSvgHidden) {
4720
+ // Blink allows focusing the object element, even if it has visibility: hidden;
4721
+ // @browser-issue Blink https://code.google.com/p/chromium/issues/detail?id=586191
4722
+ var _nodeName2 = element.nodeName.toLowerCase();
4723
+ if (_nodeName2 === 'object') {
4724
+ visibilityOptions.except.cssVisibility = true;
4725
+ }
4726
+ }
4733
4727
 
4734
- // if pointer has moved more than allowed, cancel the long-press timer and therefore the event
4735
- if (diffX >= maxDiffX || diffY >= maxDiffY) {
4736
- clearLongPressTimer();
4737
- }
4728
+ if (!_visible2.default.rules(visibilityOptions)) {
4729
+ return false;
4738
4730
  }
4731
+ }
4739
4732
 
4740
- /**
4741
- * Gets attribute off HTML element or nearest parent
4742
- * @param {object} el - HTML element to retrieve attribute from
4743
- * @param {string} attributeName - name of the attribute
4744
- * @param {any} defaultValue - default value to return if no match found
4745
- * @returns {any} attribute value or defaultValue
4746
- */
4747
- function getNearestAttribute(el, attributeName, defaultValue) {
4733
+ var frameElement = (0, _getFrameElement2.default)(element);
4734
+ if (frameElement) {
4735
+ var _nodeName = frameElement.nodeName.toLowerCase();
4736
+ if (_nodeName === 'object' && !supports$1.focusInZeroDimensionObject) {
4737
+ if (!frameElement.offsetWidth || !frameElement.offsetHeight) {
4738
+ // WebKit can not focus content in <object> if it doesn't have dimensions
4739
+ return false;
4740
+ }
4741
+ }
4742
+ }
4748
4743
 
4749
- // walk up the dom tree looking for data-action and data-trigger
4750
- while (el && el !== document.documentElement) {
4744
+ var nodeName = element.nodeName.toLowerCase();
4745
+ if (nodeName === 'svg' && supports$1.focusSvgInIframe && !frameElement && element.getAttribute('tabindex') === null) {
4746
+ return false;
4747
+ }
4751
4748
 
4752
- var attributeValue = el.getAttribute(attributeName);
4749
+ return true;
4750
+ }
4753
4751
 
4754
- if (attributeValue) {
4755
- return attributeValue;
4756
- }
4752
+ // bind exceptions to an iterator callback
4753
+ isFocusableRules.except = function () {
4754
+ var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4757
4755
 
4758
- el = el.parentNode;
4759
- }
4756
+ var isFocusable = function isFocusable(context) {
4757
+ return isFocusableRules({
4758
+ context: context,
4759
+ except: except
4760
+ });
4761
+ };
4760
4762
 
4761
- return defaultValue;
4762
- }
4763
+ isFocusable.rules = isFocusableRules;
4764
+ return isFocusable;
4765
+ };
4763
4766
 
4764
- // hook events that clear a pending long press event
4765
- document.addEventListener(mouseUp, clearLongPressTimer, true);
4766
- document.addEventListener(mouseLeave, clearLongPressTimer, true);
4767
- document.addEventListener(mouseMove, mouseMoveHandler, true);
4768
- document.addEventListener('wheel', clearLongPressTimer, true);
4769
- document.addEventListener('scroll', clearLongPressTimer, true);
4770
- document.addEventListener('contextmenu', clearLongPressTimer, true);
4767
+ // provide isFocusRelevant(context) as default iterator callback
4768
+ var isFocusable = isFocusableRules.except({});
4769
+ exports.default = isFocusable;
4770
+ module.exports = exports['default'];
4771
4771
 
4772
- // hook events that can trigger a long press event
4773
- document.addEventListener(mouseDown, mouseDownHandler, true); // <- start
4772
+ }(focusable, focusable.exports));
4774
4773
 
4775
- }(window, document));
4774
+ const isFocusable = /*@__PURE__*/getDefaultExportFromCjs(focusable.exports);
4776
4775
 
4777
- const postTooltipCss = ":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}";
4778
- const PostTooltipStyle0 = postTooltipCss;
4776
+ const postTooltipTriggerCss = "post-tooltip-trigger{vertical-align:top}";
4777
+ const PostTooltipTriggerStyle0 = postTooltipTriggerCss;
4779
4778
 
4780
- const OPEN_DELAY = 650; // matches HTML title delay
4781
- /**
4782
- * @slot default - Slot for the content of the tooltip.
4783
- */
4784
- /**
4785
- * Track how many instances remain on the page. Used for removing global event listeners
4786
- */
4787
- let tooltipInstances = 0;
4788
- let hideTooltipTimeout = null;
4789
- const tooltipTargetAttribute = 'data-tooltip-target';
4790
- const tooltipTargetAttributeSelector = `[${tooltipTargetAttribute}]`;
4791
- let globalCurrentTarget;
4792
- let tooltipTimeout = null;
4793
- /**
4794
- * Global event listener to show tooltips. This is globalized so that triggers that are rendered
4795
- * async will still work without the need to set listeners on the element itself
4796
- *
4797
- * This handler manages both pointer and focus events to properly trigger tooltips.
4798
- * If the event is a focus event (e.g., keyboard navigation), pointer events are ignored to avoid
4799
- * interference with tooltip behavior.
4800
- * @param e Event
4801
- * @returns
4802
- */
4803
- const globalInterestHandler = (e) => {
4804
- const targetElement = e.target.closest(tooltipTargetAttributeSelector);
4805
- globalCurrentTarget = targetElement;
4806
- if (!targetElement || !('getAttribute' in targetElement)) {
4807
- clearTimeout(tooltipTimeout);
4808
- return;
4809
- }
4810
- const tooltipTarget = targetElement.getAttribute(tooltipTargetAttribute);
4811
- if (!tooltipTarget || tooltipTarget === '')
4812
- return;
4813
- const tooltip = document.getElementById(tooltipTarget);
4814
- // Determine if the tooltip was triggered by a focus event
4815
- const triggeredByFocus = e.type === 'focusin';
4816
- void (tooltip === null || tooltip === void 0 ? void 0 : tooltip.show(targetElement, triggeredByFocus));
4817
- if (hideTooltipTimeout) {
4818
- window.clearTimeout(hideTooltipTimeout);
4819
- hideTooltipTimeout = null;
4820
- }
4821
- };
4822
- /**
4823
- * Global event listener to hide tooltips. This is globalized so that triggers that are rendered
4824
- * async will still work without the need to set listeners on the element itself
4825
- * @param e Event
4826
- * @returns
4827
- */
4828
- const globalInterestLostHandler = (e) => {
4829
- const targetElement = e.target.closest(tooltipTargetAttributeSelector);
4830
- if (!targetElement || !('getAttribute' in targetElement))
4831
- return;
4832
- const tooltipTarget = targetElement.getAttribute(tooltipTargetAttribute);
4833
- if (!tooltipTarget || tooltipTarget === '')
4834
- return;
4835
- const tooltip = document.getElementById(tooltipTarget);
4836
- globalHideTooltip(tooltip);
4837
- };
4838
- /**
4839
- * Start the hiding process through a timeout to give other interest events a chance to
4840
- * intervene and cancel the hide event.
4841
- * @param {HTMLPostTooltipElement} tooltip
4842
- */
4843
- const globalHideTooltip = (tooltip) => {
4844
- hideTooltipTimeout = window.setTimeout(() => {
4845
- tooltip.hide();
4846
- hideTooltipTimeout = null;
4847
- }, 42);
4848
- };
4849
- /**
4850
- * Patch some accessibility features that are hard to remember or understand
4851
- * @param {HTMLElement} trigger
4852
- */
4853
- const patchAccessibilityFeatures = (trigger) => {
4854
- const describedBy = trigger.getAttribute('aria-describedby');
4855
- const id = trigger.getAttribute(tooltipTargetAttribute);
4856
- // Add tooltip to aria-describedby
4857
- if (!(describedBy === null || describedBy === void 0 ? void 0 : describedBy.includes(id))) {
4858
- const newDescribedBy = describedBy ? `${describedBy} ${id}` : id;
4859
- trigger.setAttribute('aria-describedby', newDescribedBy);
4860
- }
4861
- // Make element focusable
4862
- if (!isFocusable(trigger)) {
4863
- trigger.setAttribute('tabindex', '0');
4864
- }
4865
- };
4866
- // Initialize a mutation observer for patching accessibility features
4867
- const triggerObserver = attributeObserver.getAttributeObserver(tooltipTargetAttribute, patchAccessibilityFeatures);
4868
- const PostTooltip = class {
4779
+ const TRIGGER_EVENTS = ['pointerenter', 'pointerleave', 'focusin', 'focusout', 'long-press'];
4780
+ const PostTooltipTrigger = class {
4869
4781
  constructor(hostRef) {
4870
4782
  index.registerInstance(this, hostRef);
4871
- this.wasOpenedByFocus = false;
4872
- this.placement = 'top';
4873
- this.arrow = true;
4874
- this.delayed = false;
4783
+ /**
4784
+ * Reference to the element inside the host that will act as the trigger.
4785
+ */
4786
+ this.trigger = null;
4787
+ /**
4788
+ * Timeout ID for the delay.
4789
+ */
4790
+ this.delayTimeout = null;
4791
+ this.for = undefined;
4792
+ this.delay = 0;
4793
+ this.boundTriggerHandler = this.handleTriggerEvent.bind(this);
4794
+ this.boundTooltipHandler = this.handleTooltipEvent.bind(this);
4875
4795
  }
4876
- validateDelayed() {
4877
- index$1.checkEmptyOrType(this.delayed, 'boolean', 'The post-tooltip "delayed" property should be a boolean.');
4796
+ validateControlFor() {
4797
+ checkType.checkType(this.for, // The actual property value
4798
+ 'string', // The expected type
4799
+ 'The "for" property must be a string' // A meaningful error message
4800
+ );
4878
4801
  }
4879
- connectedCallback() {
4880
- this.validateDelayed();
4802
+ get tooltip() {
4803
+ const ref = document.getElementById(this.for);
4804
+ return (ref === null || ref === void 0 ? void 0 : ref.localName) === 'post-tooltip'
4805
+ ? ref
4806
+ : null;
4881
4807
  }
4882
4808
  componentDidLoad() {
4883
- if (!this.host.id) {
4884
- throw new Error(
4885
- /*prettier-ignore*/
4886
- 'No id set: <post-tooltip> must have an id, linking it to it\'s target element using the data-tooltip-target attribute.');
4887
- }
4809
+ this.setupTrigger();
4810
+ this.attachListeners();
4811
+ this.attachTooltipListeners();
4888
4812
  }
4889
- /**
4890
- * Add interest event listeners, but only once, and start
4891
- * the accessibility patcher
4892
- */
4893
- componentWillLoad() {
4894
- if (tooltipInstances === 0) {
4895
- // This is the first tooltip on the page, add event listeners
4896
- document.addEventListener('pointerover', globalInterestHandler);
4897
- document.addEventListener('pointerout', globalInterestLostHandler);
4898
- document.addEventListener('focusin', globalInterestHandler);
4899
- document.addEventListener('focusout', globalInterestLostHandler);
4900
- document.addEventListener('long-press', globalInterestHandler);
4901
- // Initially run the accessibility patcher on all triggers
4902
- document.querySelectorAll('[data-tooltip-target]').forEach(patchAccessibilityFeatures);
4903
- // Start watching for future triggers
4904
- triggerObserver.observe(document.body, {
4905
- subtree: true,
4906
- childList: true,
4907
- attributeFilter: [tooltipTargetAttribute],
4908
- });
4813
+ disconnectedCallback() {
4814
+ this.removeListeners();
4815
+ this.removeTooltipListeners();
4816
+ this.cleanupTrigger();
4817
+ if (this.delayTimeout) {
4818
+ clearTimeout(this.delayTimeout);
4819
+ this.delayTimeout = null;
4909
4820
  }
4910
- tooltipInstances++;
4911
4821
  }
4912
- /**
4913
- * Remove a bunch of event listeners if the tooltip gets removed from the DOM
4914
- * and disconnect the accessibility patcher
4915
- */
4916
- disconnectedCallback() {
4917
- tooltipInstances--;
4918
- if (tooltipInstances <= 0) {
4919
- // The last tooltip has been removed, stop listening for these kind of events
4920
- document.removeEventListener('pointerover', globalInterestHandler);
4921
- document.removeEventListener('pointerout', globalInterestLostHandler);
4922
- document.removeEventListener('focusin', globalInterestHandler);
4923
- document.removeEventListener('focusout', globalInterestLostHandler);
4924
- document.removeEventListener('long-press', globalInterestHandler);
4925
- triggerObserver.disconnect();
4822
+ handleSlotChange() {
4823
+ this.cleanupTrigger();
4824
+ this.setupTrigger();
4825
+ }
4826
+ cleanupTrigger() {
4827
+ if (this.trigger) {
4828
+ const describedBy = this.trigger.getAttribute('aria-describedby') || '';
4829
+ if (describedBy.includes(this.for)) {
4830
+ const newDescribedBy = describedBy
4831
+ .split(' ')
4832
+ .filter(id => id !== this.for)
4833
+ .join(' ');
4834
+ if (newDescribedBy) {
4835
+ this.trigger.setAttribute('aria-describedby', newDescribedBy);
4836
+ }
4837
+ else {
4838
+ this.trigger.removeAttribute('aria-describedby');
4839
+ }
4840
+ }
4841
+ this.trigger = null;
4926
4842
  }
4927
4843
  }
4928
- /**
4929
- * Programmatically display the tooltip
4930
- * @param target An element with [data-tooltip-target="id"] where the tooltip should be shown
4931
- * @param triggeredByFocus A boolean indicating if the tooltip was triggered by a focus event.
4932
- */
4933
- async show(target, triggeredByFocus = false) {
4934
- const showTooltip = () => {
4935
- // If focus or pointer event is not on the button anymore, don't show the tooltip
4936
- if (globalCurrentTarget !== target)
4937
- return;
4938
- // Determine if the tooltip was opened by a focus event
4939
- this.wasOpenedByFocus = triggeredByFocus;
4940
- // Disable pointer events if triggered by focus, otherwise enable them
4941
- if (this.wasOpenedByFocus) {
4942
- this.host.style.pointerEvents = 'none';
4844
+ setupTrigger() {
4845
+ this.trigger = this.host.querySelector('*');
4846
+ if (this.trigger) {
4847
+ if (!isFocusable(this.trigger)) {
4848
+ this.trigger.setAttribute('tabindex', '0');
4943
4849
  }
4944
- else {
4945
- this.host.style.pointerEvents = 'auto';
4850
+ const describedBy = this.trigger.getAttribute('aria-describedby') || '';
4851
+ if (!describedBy.includes(this.for)) {
4852
+ this.trigger.setAttribute('aria-describedby', `${describedBy} ${this.for}`.trim());
4946
4853
  }
4947
- this.popoverRef.show(target);
4948
- };
4949
- if (this.delayed) {
4950
- tooltipTimeout = setTimeout(() => {
4951
- showTooltip();
4952
- }, OPEN_DELAY);
4953
4854
  }
4954
4855
  else {
4955
- showTooltip();
4856
+ console.warn('No content found in the post-tooltip-trigger slot. Please insert a focusable element or content that can receive focus.');
4956
4857
  }
4957
4858
  }
4958
- /**
4959
- * Programmatically hide this tooltip
4960
- */
4961
- async hide() {
4962
- this.popoverRef.hide();
4859
+ attachListeners() {
4860
+ TRIGGER_EVENTS.forEach(event => {
4861
+ this.host.addEventListener(event, this.boundTriggerHandler);
4862
+ });
4963
4863
  }
4964
- /**
4965
- * Toggle tooltip display
4966
- * @param target An element with [data-tooltip-target="id"] where the tooltip should be shown
4967
- * @param force Pass true to always show or false to always hide
4968
- */
4969
- async toggle(target, force) {
4970
- this.popoverRef.toggle(target, force);
4864
+ removeListeners() {
4865
+ TRIGGER_EVENTS.forEach(event => {
4866
+ this.host.removeEventListener(event, this.boundTriggerHandler);
4867
+ });
4971
4868
  }
4972
- /**
4973
- * Pointer or focus is on the tooltip, stop the tooltip from disappearing
4974
- */
4975
- handleInterest() {
4976
- if (hideTooltipTimeout) {
4977
- window.clearTimeout(hideTooltipTimeout);
4978
- hideTooltipTimeout = null;
4869
+ attachTooltipListeners() {
4870
+ if (this.tooltip) {
4871
+ this.tooltip.addEventListener('pointerenter', this.boundTooltipHandler);
4872
+ this.tooltip.addEventListener('pointerleave', this.boundTooltipHandler);
4979
4873
  }
4980
4874
  }
4981
- /**
4982
- * Pointer or focus left the tooltip, initiate the hiding process
4983
- * Re-enable pointer events when the tooltip is no longer in focus or hovered
4984
- */
4985
- handleInterestLost() {
4986
- globalHideTooltip(this);
4987
- this.host.style.pointerEvents = 'auto';
4875
+ removeTooltipListeners() {
4876
+ if (this.tooltip) {
4877
+ this.tooltip.removeEventListener('pointerenter', this.boundTooltipHandler);
4878
+ this.tooltip.removeEventListener('pointerleave', this.boundTooltipHandler);
4879
+ }
4880
+ }
4881
+ handleTriggerEvent(event) {
4882
+ switch (event.type) {
4883
+ case 'pointerenter':
4884
+ case 'focusin':
4885
+ case 'long-press':
4886
+ this.handleEnter();
4887
+ break;
4888
+ case 'pointerleave':
4889
+ case 'focusout':
4890
+ this.handleLeave(event);
4891
+ break;
4892
+ }
4893
+ }
4894
+ handleTooltipEvent(event) {
4895
+ switch (event.type) {
4896
+ case 'pointerenter':
4897
+ this.handleEnter();
4898
+ break;
4899
+ case 'pointerleave':
4900
+ this.handleLeave(event);
4901
+ break;
4902
+ }
4903
+ }
4904
+ handleEnter() {
4905
+ if (this.delayTimeout) {
4906
+ clearTimeout(this.delayTimeout);
4907
+ this.delayTimeout = null;
4908
+ }
4909
+ this.interestHandler();
4910
+ }
4911
+ handleLeave(event) {
4912
+ const newTarget = event.relatedTarget;
4913
+ if ((this.tooltip && newTarget && this.tooltip.contains(newTarget)) ||
4914
+ (newTarget === this.trigger)) {
4915
+ return;
4916
+ }
4917
+ this.interestLostHandler();
4918
+ }
4919
+ interestHandler() {
4920
+ var _a;
4921
+ if (this.delay > 0) {
4922
+ this.delayTimeout = window.setTimeout(() => {
4923
+ var _a;
4924
+ (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.show(this.trigger);
4925
+ this.delayTimeout = null;
4926
+ }, this.delay);
4927
+ }
4928
+ else {
4929
+ (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.show(this.trigger);
4930
+ }
4931
+ }
4932
+ interestLostHandler() {
4933
+ var _a;
4934
+ if (this.delayTimeout) {
4935
+ clearTimeout(this.delayTimeout);
4936
+ this.delayTimeout = null;
4937
+ }
4938
+ (_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.hide();
4988
4939
  }
4989
4940
  render() {
4990
- const popoverClass = `${this.arrow ? ' has-arrow' : ''}`;
4991
- return (index.h(index.Host, { key: '71db1ccf3cf929d76550b08e69c8594479eaa84f', "data-version": _package.version, role: "tooltip", onPointerOver: this.handleInterest, onPointerOut: this.handleInterestLost, onFocusIn: this.handleInterest, onFocusOut: this.handleInterestLost }, index.h("post-popovercontainer", { key: 'b9a38cabbfc2cf2eb9b257bca32022b5d97aac7c', class: popoverClass, arrow: this.arrow, placement: this.placement, ref: (el) => (this.popoverRef = el) }, index.h("slot", { key: '316b55f5fc55d9607205496a87f02a0a5fa197cf' }))));
4941
+ return (index.h(index.Host, { key: 'a37c76972c4db24292fa95ddacf097055dea70f0', "data-version": _package.version }, index.h("slot", { key: '51de3cd7dedfc1c5fe5ef86fbf0ab953d07945cb', onSlotchange: () => this.handleSlotChange() })));
4992
4942
  }
4993
4943
  get host() { return index.getElement(this); }
4994
4944
  static get watchers() { return {
4995
- "delayed": ["validateDelayed"]
4945
+ "for": ["validateControlFor"]
4996
4946
  }; }
4997
4947
  };
4998
- PostTooltip.style = PostTooltipStyle0;
4948
+ PostTooltipTrigger.style = PostTooltipTriggerStyle0;
4999
4949
 
5000
- exports.PostTooltip = PostTooltip;
4950
+ exports.PostTooltipTrigger = PostTooltipTrigger;