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