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

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 (516) hide show
  1. package/dist/.config/bindings.angular.js +4 -0
  2. package/dist/cjs/breakpoints-cdf1b747.js +59 -0
  3. package/dist/cjs/check-non-empty-bd99d236.js +15 -0
  4. package/dist/cjs/check-one-of-75d270b5.js +13 -0
  5. package/dist/cjs/check-type-cdbf6d29.js +21 -0
  6. package/dist/cjs/check-url-220a286c.js +19 -0
  7. package/dist/cjs/event-guard-efabc84f.js +47 -0
  8. package/dist/cjs/fade-72d5ef55.js +14 -0
  9. package/dist/cjs/get-root-8102fecd.js +17 -0
  10. package/dist/cjs/index-23e36ff7.js +37 -0
  11. package/dist/cjs/{index-010dc207.js → index-b60129c4.js} +17 -10
  12. package/dist/cjs/index.browser-4af21c17.js +16 -0
  13. package/dist/cjs/index.cjs.js +36 -31
  14. package/dist/cjs/loader.cjs.js +2 -2
  15. package/dist/cjs/long-press-event-6e62d113.js +266 -0
  16. package/dist/cjs/{package-8e810a59.js → package-8121f093.js} +1 -1
  17. package/dist/cjs/{post-accordion-b9df8522.js → post-accordion-beac7c9f.js} +11 -12
  18. package/dist/cjs/post-accordion-item-4846fbee.js +64 -0
  19. package/dist/cjs/post-accordion-item.cjs.entry.js +10 -7
  20. package/dist/cjs/post-accordion.cjs.entry.js +6 -4
  21. package/dist/cjs/{post-avatar-f7236084.js → post-avatar-a36991fb.js} +10 -13
  22. package/dist/cjs/post-avatar.cjs.entry.js +5 -4
  23. package/dist/cjs/post-back-to-top-32aa9017.js +96 -0
  24. package/dist/cjs/post-back-to-top.cjs.entry.js +7 -6
  25. package/dist/cjs/post-banner-be0e8909.js +92 -0
  26. package/dist/cjs/post-banner.cjs.entry.js +11 -9
  27. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +8 -7
  28. package/dist/cjs/post-breadcrumbs-6ef82a41.js +120 -0
  29. package/dist/cjs/post-breadcrumbs.cjs.entry.js +13 -0
  30. package/dist/cjs/post-card-control-fe919333.js +269 -0
  31. package/dist/cjs/post-card-control.cjs.entry.js +6 -5
  32. package/dist/cjs/post-closebutton_15.cjs.entry.js +13 -10
  33. package/dist/cjs/{post-collapsible-trigger-143cf84a.js → post-collapsible-trigger-f42be607.js} +59 -60
  34. package/dist/cjs/post-collapsible_2.cjs.entry.js +11 -10
  35. package/dist/cjs/post-components.cjs.js +2 -2
  36. package/dist/cjs/{post-footer-5f7fdf96.js → post-footer-5179aa17.js} +11 -57
  37. package/dist/cjs/post-footer.cjs.entry.js +4 -3
  38. package/dist/cjs/post-linkarea-27125078.js +30 -0
  39. package/dist/cjs/post-linkarea.cjs.entry.js +11 -0
  40. package/dist/cjs/{post-menu-item-bb0b0b9e.js → post-menu-item-d78a9121.js} +11 -17
  41. package/dist/cjs/post-popover-feb1e773.js +135 -0
  42. package/dist/cjs/post-popover.cjs.entry.js +4 -4
  43. package/dist/cjs/{post-rating-1082197c.js → post-rating-6d153a2c.js} +4 -4
  44. package/dist/cjs/post-rating.cjs.entry.js +3 -3
  45. package/dist/cjs/post-tab-header-e4532918.js +34 -0
  46. package/dist/cjs/post-tab-header.cjs.entry.js +6 -4
  47. package/dist/cjs/{post-tab-panel-60f211a5.js → post-tab-panel-40df21ad.js} +5 -4
  48. package/dist/cjs/post-tab-panel.cjs.entry.js +4 -3
  49. package/dist/cjs/{post-tabs-1f797ce4.js → post-tabs-45db2696.js} +13 -15
  50. package/dist/cjs/post-tabs.cjs.entry.js +5 -4
  51. package/dist/cjs/post-tag-0967bb1e.js +47 -0
  52. package/dist/cjs/post-tag.cjs.entry.js +3 -3
  53. package/dist/cjs/post-togglebutton-42b7d166.js +4494 -0
  54. package/dist/cjs/post-tooltip-f833d51d.js +73 -0
  55. package/dist/cjs/{post-tooltip-38c839a4.js → post-tooltip-trigger-3ceac010.js} +143 -456
  56. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +13 -0
  57. package/dist/cjs/post-tooltip.cjs.entry.js +5 -9
  58. package/dist/cjs/{slide-5d51abe8.js → slide-cd1f09b3.js} +8 -8
  59. package/dist/collection/animations/collapse.js +8 -6
  60. package/dist/collection/animations/fade.js +6 -2
  61. package/dist/collection/animations/slide.js +8 -8
  62. package/dist/collection/collection-manifest.json +5 -3
  63. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  64. package/dist/collection/components/post-accordion/post-accordion.js +6 -8
  65. package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
  66. package/dist/collection/components/post-accordion-item/post-accordion-item.js +12 -12
  67. package/dist/collection/components/post-avatar/post-avatar.css +1 -3
  68. package/dist/collection/components/post-avatar/post-avatar.js +7 -11
  69. package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -1
  70. package/dist/collection/components/post-back-to-top/post-back-to-top.js +38 -18
  71. package/dist/collection/components/post-banner/post-banner.css +1 -3
  72. package/dist/collection/components/post-banner/post-banner.js +13 -12
  73. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +11 -8
  74. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -0
  75. package/dist/collection/components/{post-breadcrumb/post-breadcrumb.js → post-breadcrumbs/post-breadcrumbs.js} +20 -21
  76. package/dist/collection/components/post-card-control/post-card-control.css +1 -3
  77. package/dist/collection/components/post-card-control/post-card-control.js +15 -19
  78. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -0
  79. package/dist/collection/components/post-closebutton/post-closebutton.js +12 -1
  80. package/dist/collection/components/post-collapsible/post-collapsible.css +1 -1
  81. package/dist/collection/components/post-collapsible/post-collapsible.js +3 -2
  82. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +43 -45
  83. package/dist/collection/components/post-footer/post-footer.js +8 -8
  84. package/dist/collection/components/post-header/post-header.css +1 -1
  85. package/dist/collection/components/post-header/post-header.js +212 -52
  86. package/dist/collection/components/post-icon/post-icon.css +1 -1
  87. package/dist/collection/components/post-icon/post-icon.js +71 -29
  88. package/dist/collection/components/post-language-option/post-language-option.css +1 -3
  89. package/dist/collection/components/post-language-option/post-language-option.js +34 -12
  90. package/dist/collection/components/post-language-switch/post-language-switch.css +1 -1
  91. package/dist/collection/components/post-language-switch/post-language-switch.js +56 -33
  92. package/dist/collection/components/post-language-switch/switch-variants.js +1 -1
  93. package/dist/collection/components/post-linkarea/post-linkarea.css +1 -0
  94. package/dist/collection/components/post-linkarea/post-linkarea.js +30 -0
  95. package/dist/collection/components/post-list/post-list.css +1 -3
  96. package/dist/collection/components/post-list/post-list.js +4 -3
  97. package/dist/collection/components/post-list-item/post-list-item.js +2 -1
  98. package/dist/collection/components/post-logo/post-logo.css +1 -1
  99. package/dist/collection/components/post-logo/post-logo.js +2 -2
  100. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
  101. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +157 -25
  102. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
  103. package/dist/collection/components/post-megadropdown/post-megadropdown.js +179 -55
  104. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -1
  105. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +41 -12
  106. package/dist/collection/components/post-menu/post-menu.css +1 -3
  107. package/dist/collection/components/post-menu/post-menu.js +44 -30
  108. package/dist/collection/components/post-menu-item/post-menu-item.js +1 -13
  109. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +16 -10
  110. package/dist/collection/components/post-popover/post-popover.css +1 -3
  111. package/dist/collection/components/post-popover/post-popover.js +23 -16
  112. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  113. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +217 -56
  114. package/dist/collection/components/post-rating/post-rating.css +1 -3
  115. package/dist/collection/components/post-rating/post-rating.js +1 -1
  116. package/dist/collection/components/post-tab-header/post-tab-header.css +1 -3
  117. package/dist/collection/components/post-tab-header/post-tab-header.js +6 -5
  118. package/dist/collection/components/post-tab-panel/post-tab-panel.js +4 -3
  119. package/dist/collection/components/post-tabs/post-tabs.css +1 -1
  120. package/dist/collection/components/post-tabs/post-tabs.js +6 -14
  121. package/dist/collection/components/post-tag/post-tag.css +1 -3
  122. package/dist/collection/components/post-tag/post-tag.js +2 -2
  123. package/dist/collection/components/post-togglebutton/post-togglebutton.js +3 -3
  124. package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
  125. package/dist/collection/components/post-tooltip/post-tooltip.js +62 -212
  126. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.css +1 -0
  127. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +230 -0
  128. package/dist/collection/index.js +3 -1
  129. package/dist/collection/utils/attribute-observer.js +6 -5
  130. package/dist/collection/utils/breakpoints.js +21 -15
  131. package/dist/collection/utils/component-on-ready.js +4 -4
  132. package/dist/collection/utils/debounce.js +2 -1
  133. package/dist/collection/utils/environment.js +2 -0
  134. package/dist/collection/utils/event-guard.js +43 -0
  135. package/dist/collection/utils/{is-focusable.js → get-focusable-children.js} +10 -3
  136. package/dist/collection/utils/get-root.js +6 -1
  137. package/dist/collection/utils/index.js +5 -0
  138. package/dist/collection/utils/is-motion-reduced.js +2 -1
  139. package/dist/collection/utils/property-checkers/check-non-empty.js +6 -2
  140. package/dist/collection/utils/property-checkers/check-one-of.js +8 -3
  141. package/dist/collection/utils/property-checkers/check-pattern.js +8 -3
  142. package/dist/collection/utils/property-checkers/check-type.js +11 -6
  143. package/dist/collection/utils/property-checkers/check-url.js +11 -6
  144. package/dist/collection/utils/property-checkers/empty-or.js +5 -2
  145. package/dist/collection/utils/sass-export.js +8 -5
  146. package/dist/components/breakpoints.js +56 -0
  147. package/dist/components/check-non-empty.js +6 -2
  148. package/dist/components/check-one-of.js +8 -3
  149. package/dist/components/check-type.js +11 -6
  150. package/dist/components/event-guard.js +45 -0
  151. package/dist/components/fade.js +6 -2
  152. package/dist/components/get-focusable-children.js +35 -0
  153. package/dist/components/get-root.js +7 -1
  154. package/dist/components/index.browser.js +14 -0
  155. package/dist/components/index.js +3 -1
  156. package/dist/components/index2.js +24 -11
  157. package/dist/components/long-press-event.js +264 -0
  158. package/dist/components/package.js +1 -1
  159. package/dist/components/post-accordion-item2.js +14 -13
  160. package/dist/components/post-accordion2.js +8 -9
  161. package/dist/components/post-avatar2.js +8 -11
  162. package/dist/components/post-back-to-top2.js +41 -20
  163. package/dist/components/post-banner2.js +15 -13
  164. package/dist/components/post-breadcrumb-item2.js +9 -9
  165. package/dist/components/post-breadcrumbs.d.ts +11 -0
  166. package/dist/components/post-breadcrumbs.js +6 -0
  167. package/dist/components/post-breadcrumbs2.js +177 -0
  168. package/dist/components/post-card-control2.js +16 -19
  169. package/dist/components/post-closebutton2.js +7 -2
  170. package/dist/components/post-collapsible-trigger2.js +46 -48
  171. package/dist/components/post-collapsible2.js +13 -10
  172. package/dist/components/post-footer2.js +8 -54
  173. package/dist/components/post-header2.js +174 -51
  174. package/dist/components/post-icon2.js +72 -29
  175. package/dist/components/post-language-option2.js +21 -12
  176. package/dist/components/post-language-switch2.js +44 -45
  177. package/dist/components/{post-breadcrumb.d.ts → post-linkarea.d.ts} +4 -4
  178. package/dist/components/post-linkarea.js +6 -0
  179. package/dist/components/post-linkarea2.js +43 -0
  180. package/dist/components/post-list-item2.js +2 -1
  181. package/dist/components/post-list2.js +5 -4
  182. package/dist/components/post-logo2.js +4 -3
  183. package/dist/components/post-mainnavigation2.js +150 -15
  184. package/dist/components/post-megadropdown-trigger2.js +43 -13
  185. package/dist/components/post-megadropdown2.js +136 -39
  186. package/dist/components/post-menu-item2.js +2 -8
  187. package/dist/components/post-menu-trigger2.js +17 -10
  188. package/dist/components/post-menu2.js +43 -54
  189. package/dist/components/post-popover2.js +46 -15
  190. package/dist/components/post-popovercontainer2.js +921 -111
  191. package/dist/components/post-rating2.js +2 -2
  192. package/dist/components/post-tab-header2.js +8 -6
  193. package/dist/components/post-tab-panel2.js +4 -3
  194. package/dist/components/post-tabs2.js +10 -12
  195. package/dist/components/post-tag2.js +2 -2
  196. package/dist/components/post-togglebutton2.js +4 -3
  197. package/dist/components/post-tooltip-trigger.d.ts +11 -0
  198. package/dist/components/post-tooltip-trigger.js +6 -0
  199. package/dist/components/post-tooltip-trigger2.js +4705 -0
  200. package/dist/components/post-tooltip2.js +34 -4960
  201. package/dist/components/slide.js +9 -9
  202. package/dist/docs.json +567 -252
  203. package/dist/esm/breakpoints-7812702e.js +56 -0
  204. package/dist/esm/check-non-empty-258a56b3.js +13 -0
  205. package/dist/esm/check-one-of-0bee20f5.js +11 -0
  206. package/dist/esm/check-type-37d5d307.js +19 -0
  207. package/dist/esm/check-url-17962bc8.js +17 -0
  208. package/dist/esm/event-guard-538ee077.js +45 -0
  209. package/dist/esm/fade-1f3cacf4.js +11 -0
  210. package/dist/esm/get-root-1b1af46f.js +15 -0
  211. package/dist/esm/index-8f8fe5b0.js +32 -0
  212. package/dist/esm/{index-fb8d6be7.js → index-f4d19816.js} +17 -10
  213. package/dist/esm/index.browser-ff103197.js +14 -0
  214. package/dist/esm/index.js +33 -30
  215. package/dist/esm/loader.js +3 -3
  216. package/dist/esm/long-press-event-04d24397.js +264 -0
  217. package/dist/esm/package-d9237b44.js +3 -0
  218. package/dist/esm/{post-accordion-ee54a3ef.js → post-accordion-fdcf7205.js} +11 -12
  219. package/dist/esm/post-accordion-item-e11e3804.js +62 -0
  220. package/dist/esm/post-accordion-item.entry.js +10 -7
  221. package/dist/esm/post-accordion.entry.js +6 -4
  222. package/dist/esm/{post-avatar-5572fa73.js → post-avatar-d360c6d2.js} +10 -13
  223. package/dist/esm/post-avatar.entry.js +5 -4
  224. package/dist/esm/post-back-to-top-85796c8b.js +94 -0
  225. package/dist/esm/post-back-to-top.entry.js +7 -6
  226. package/dist/esm/post-banner-a3090f67.js +90 -0
  227. package/dist/esm/post-banner.entry.js +11 -9
  228. package/dist/esm/post-breadcrumb-item_2.entry.js +8 -7
  229. package/dist/esm/post-breadcrumbs-15ec5a26.js +118 -0
  230. package/dist/esm/post-breadcrumbs.entry.js +5 -0
  231. package/dist/esm/post-card-control-6142534e.js +267 -0
  232. package/dist/esm/post-card-control.entry.js +6 -5
  233. package/dist/esm/post-closebutton_15.entry.js +13 -10
  234. package/dist/esm/{post-collapsible-trigger-1c7833f8.js → post-collapsible-trigger-68306358.js} +59 -60
  235. package/dist/esm/post-collapsible_2.entry.js +11 -10
  236. package/dist/esm/post-components.js +3 -3
  237. package/dist/esm/{post-footer-b18875e7.js → post-footer-d2a3270e.js} +10 -56
  238. package/dist/esm/post-footer.entry.js +4 -3
  239. package/dist/esm/post-linkarea-64998c67.js +28 -0
  240. package/dist/esm/post-linkarea.entry.js +3 -0
  241. package/dist/esm/{post-menu-item-2906384b.js → post-menu-item-95a0a647.js} +11 -17
  242. package/dist/esm/post-popover-c5f81087.js +133 -0
  243. package/dist/esm/post-popover.entry.js +4 -4
  244. package/dist/esm/{post-rating-95cbdbb8.js → post-rating-7bfedafb.js} +4 -4
  245. package/dist/esm/post-rating.entry.js +3 -3
  246. package/dist/esm/post-tab-header-08033da4.js +32 -0
  247. package/dist/esm/post-tab-header.entry.js +6 -4
  248. package/dist/esm/{post-tab-panel-cafd9e04.js → post-tab-panel-be701793.js} +5 -4
  249. package/dist/esm/post-tab-panel.entry.js +4 -3
  250. package/dist/esm/{post-tabs-beef8eae.js → post-tabs-c69e2842.js} +13 -15
  251. package/dist/esm/post-tabs.entry.js +5 -4
  252. package/dist/esm/post-tag-ebac7f3e.js +45 -0
  253. package/dist/esm/post-tag.entry.js +3 -3
  254. package/dist/esm/post-togglebutton-706e3af0.js +4478 -0
  255. package/dist/esm/post-tooltip-9a195d47.js +71 -0
  256. package/dist/esm/{post-tooltip-b298039a.js → post-tooltip-trigger-7d6f234b.js} +143 -456
  257. package/dist/esm/post-tooltip-trigger.entry.js +5 -0
  258. package/dist/esm/post-tooltip.entry.js +5 -9
  259. package/dist/esm/{slide-3422b8a3.js → slide-cd2850ee.js} +9 -9
  260. package/dist/post-components/index.esm.js +1 -1
  261. package/dist/post-components/p-034715ec.js +1 -0
  262. package/dist/post-components/p-0717fe4c.js +1 -0
  263. package/dist/post-components/p-0889c759.js +1 -0
  264. package/dist/post-components/p-0c03547b.js +1 -0
  265. package/dist/post-components/p-0de8d05f.js +1 -0
  266. package/dist/post-components/p-1373a79b.entry.js +1 -0
  267. package/dist/post-components/{p-4f9746f6.js → p-17dc4170.js} +2 -9
  268. package/dist/post-components/p-181c73d5.js +1 -0
  269. package/dist/post-components/p-1a21fd8d.js +1 -0
  270. package/dist/post-components/p-1ab3eba4.entry.js +1 -0
  271. package/dist/post-components/p-2d6c0670.js +1 -0
  272. package/dist/post-components/p-2dc0a2d0.js +1 -0
  273. package/dist/post-components/p-35ad2e11.entry.js +1 -0
  274. package/dist/post-components/p-368c473a.js +1 -0
  275. package/dist/post-components/p-38f778a7.entry.js +1 -0
  276. package/dist/post-components/p-39a8df3c.entry.js +1 -0
  277. package/dist/post-components/p-3c7f6003.js +1 -0
  278. package/dist/post-components/p-474a41bc.entry.js +1 -0
  279. package/dist/post-components/p-64e3de38.js +1 -0
  280. package/dist/post-components/p-69bc8eaf.entry.js +1 -0
  281. package/dist/post-components/p-6b31a76a.js +1 -0
  282. package/dist/post-components/p-722ffaae.js +1 -0
  283. package/dist/post-components/p-72310bf0.entry.js +1 -0
  284. package/dist/post-components/p-7709c14a.js +1 -0
  285. package/dist/post-components/p-804b61b7.entry.js +1 -0
  286. package/dist/post-components/p-85fdc2d3.js +1 -0
  287. package/dist/post-components/p-89247caa.js +1 -0
  288. package/dist/post-components/p-89dc67c7.entry.js +1 -0
  289. package/dist/post-components/p-8db32dab.js +8 -0
  290. package/dist/post-components/p-8f7f5200.entry.js +1 -0
  291. package/dist/post-components/p-964f9581.js +1 -0
  292. package/dist/post-components/p-9b052461.js +1 -0
  293. package/dist/post-components/{p-c0ae9886.js → p-9e461613.js} +2 -2
  294. package/dist/post-components/p-a52b2d34.js +1 -0
  295. package/dist/post-components/p-ab566526.js +1 -0
  296. package/dist/post-components/p-b648e537.entry.js +1 -0
  297. package/dist/post-components/p-bc33a6d9.js +1 -0
  298. package/dist/post-components/p-bcfdbd0b.entry.js +1 -0
  299. package/dist/post-components/p-beb67979.js +1 -0
  300. package/dist/post-components/p-c41868b1.js +1 -0
  301. package/dist/post-components/p-c65f32b0.js +1 -0
  302. package/dist/post-components/p-c71700a7.js +1 -0
  303. package/dist/post-components/p-cb027003.js +1 -0
  304. package/dist/post-components/p-cc5b1437.js +1 -0
  305. package/dist/post-components/p-ceda889e.entry.js +1 -0
  306. package/dist/post-components/p-d45df336.js +1 -0
  307. package/dist/post-components/p-de4d4274.js +1 -0
  308. package/dist/post-components/p-deb9efcf.entry.js +1 -0
  309. package/dist/post-components/p-e585c6fe.js +1 -0
  310. package/dist/post-components/p-e9f1cc46.entry.js +1 -0
  311. package/dist/post-components/p-ee4e776d.entry.js +1 -0
  312. package/dist/post-components/p-ee7c3bcc.entry.js +1 -0
  313. package/dist/post-components/p-f56482fa.entry.js +1 -0
  314. package/dist/post-components/p-f8c652ce.entry.js +1 -0
  315. package/dist/post-components/post-components.esm.js +1 -1
  316. package/dist/types/animations/collapse.d.ts +2 -2
  317. package/dist/types/animations/fade.d.ts +2 -2
  318. package/dist/types/animations/slide.d.ts +2 -2
  319. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +1 -1
  320. package/dist/types/components/post-avatar/post-avatar.d.ts +1 -1
  321. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +4 -2
  322. package/dist/types/components/post-banner/post-banner.d.ts +5 -5
  323. package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +4 -0
  324. package/dist/types/components/{post-breadcrumb/post-breadcrumb.d.ts → post-breadcrumbs/post-breadcrumbs.d.ts} +4 -4
  325. package/dist/types/components/post-card-control/post-card-control.d.ts +3 -3
  326. package/dist/types/components/post-collapsible-trigger/post-collapsible-trigger.d.ts +9 -14
  327. package/dist/types/components/post-footer/post-footer.d.ts +2 -2
  328. package/dist/types/components/post-header/post-header.d.ts +38 -10
  329. package/dist/types/components/post-icon/post-icon.d.ts +11 -7
  330. package/dist/types/components/post-language-option/post-language-option.d.ts +9 -5
  331. package/dist/types/components/post-language-switch/post-language-switch.d.ts +16 -8
  332. package/dist/types/components/post-language-switch/switch-variants.d.ts +1 -1
  333. package/dist/types/components/post-linkarea/post-linkarea.d.ts +5 -0
  334. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +36 -9
  335. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +37 -13
  336. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +9 -1
  337. package/dist/types/components/post-menu/post-menu.d.ts +4 -3
  338. package/dist/types/components/post-menu-item/post-menu-item.d.ts +0 -1
  339. package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +4 -3
  340. package/dist/types/components/post-popover/post-popover.d.ts +6 -4
  341. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +40 -14
  342. package/dist/types/components/post-tab-header/post-tab-header.d.ts +1 -1
  343. package/dist/types/components/post-tabs/post-tabs.d.ts +1 -1
  344. package/dist/types/components/post-tag/post-tag.d.ts +1 -1
  345. package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +1 -1
  346. package/dist/types/components/post-tooltip/post-tooltip.d.ts +21 -34
  347. package/dist/types/components/post-tooltip-trigger/post-tooltip-trigger.d.ts +46 -0
  348. package/dist/types/components.d.ts +181 -94
  349. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/.config/bindings.angular.d.ts +2 -0
  350. package/dist/types/index.d.ts +5 -3
  351. package/dist/types/popover-fn.d.ts +11 -0
  352. package/dist/types/utils/attribute-observer.d.ts +1 -1
  353. package/dist/types/utils/breakpoints.d.ts +1 -0
  354. package/dist/types/utils/component-on-ready.d.ts +1 -1
  355. package/dist/types/utils/environment.d.ts +2 -0
  356. package/dist/types/utils/event-guard.d.ts +4 -0
  357. package/dist/types/utils/get-focusable-children.d.ts +1 -0
  358. package/dist/types/utils/get-root.d.ts +5 -1
  359. package/dist/types/utils/index.d.ts +5 -0
  360. package/dist/types/utils/property-checkers/check-non-empty.d.ts +3 -1
  361. package/dist/types/utils/property-checkers/check-one-of.d.ts +3 -1
  362. package/dist/types/utils/property-checkers/check-pattern.d.ts +3 -1
  363. package/dist/types/utils/property-checkers/check-type.d.ts +3 -1
  364. package/dist/types/utils/property-checkers/check-url.d.ts +3 -1
  365. package/dist/types/utils/property-checkers/index.d.ts +12 -4
  366. package/dist/types/utils/sass-export.d.ts +5 -1
  367. package/loaders/breakpoints.js +56 -0
  368. package/loaders/check-non-empty.js +6 -2
  369. package/loaders/check-one-of.js +8 -3
  370. package/loaders/check-type.js +11 -6
  371. package/loaders/event-guard.js +45 -0
  372. package/loaders/fade.js +6 -2
  373. package/loaders/get-focusable-children.js +35 -0
  374. package/loaders/get-root.js +7 -1
  375. package/loaders/index.browser.js +14 -0
  376. package/loaders/index.d.ts +6 -2
  377. package/loaders/index.js +8 -5
  378. package/loaders/index2.js +25 -12
  379. package/loaders/long-press-event.js +264 -0
  380. package/loaders/package.js +1 -1
  381. package/loaders/post-accordion-item2.js +15 -14
  382. package/loaders/post-accordion.js +8 -9
  383. package/loaders/post-avatar.js +8 -11
  384. package/loaders/post-back-to-top.js +41 -20
  385. package/loaders/post-banner.js +16 -14
  386. package/loaders/post-breadcrumb-item2.js +9 -9
  387. package/loaders/post-breadcrumbs.d.ts +11 -0
  388. package/loaders/post-breadcrumbs.js +180 -0
  389. package/loaders/post-card-control.js +16 -19
  390. package/loaders/post-closebutton.js +7 -2
  391. package/loaders/post-collapsible-trigger2.js +46 -48
  392. package/loaders/post-collapsible2.js +14 -11
  393. package/loaders/post-footer.js +8 -54
  394. package/loaders/post-header.js +174 -51
  395. package/loaders/post-icon2.js +73 -30
  396. package/loaders/post-language-option.js +22 -13
  397. package/loaders/post-language-switch.js +45 -46
  398. package/loaders/{post-breadcrumb.d.ts → post-linkarea.d.ts} +4 -4
  399. package/loaders/post-linkarea.js +46 -0
  400. package/loaders/post-list-item.js +2 -1
  401. package/loaders/post-list.js +5 -4
  402. package/loaders/post-logo.js +4 -3
  403. package/loaders/post-mainnavigation.js +150 -15
  404. package/loaders/post-megadropdown-trigger.js +43 -13
  405. package/loaders/post-megadropdown.js +136 -39
  406. package/loaders/post-menu-item2.js +2 -8
  407. package/loaders/post-menu-trigger2.js +17 -10
  408. package/loaders/post-menu2.js +43 -54
  409. package/loaders/post-popover.js +46 -15
  410. package/loaders/post-popovercontainer2.js +921 -111
  411. package/loaders/post-rating.js +2 -2
  412. package/loaders/post-tab-header.js +8 -6
  413. package/loaders/post-tab-panel.js +4 -3
  414. package/loaders/post-tabs.js +10 -12
  415. package/loaders/post-tag.js +2 -2
  416. package/loaders/post-togglebutton.js +4 -3
  417. package/loaders/post-tooltip-trigger.d.ts +11 -0
  418. package/loaders/post-tooltip-trigger.js +4708 -0
  419. package/loaders/post-tooltip.js +34 -4960
  420. package/loaders/slide.js +9 -9
  421. package/package.json +41 -32
  422. package/dist/cjs/attribute-observer-10f08c04.js +0 -27
  423. package/dist/cjs/check-non-empty-eeaa8f77.js +0 -11
  424. package/dist/cjs/check-one-of-f4f5d0c0.js +0 -8
  425. package/dist/cjs/check-type-64af82a9.js +0 -16
  426. package/dist/cjs/check-url-3ffdd2fb.js +0 -14
  427. package/dist/cjs/debounce-1151afe3.js +0 -12
  428. package/dist/cjs/fade-35a3633a.js +0 -10
  429. package/dist/cjs/get-root-7a3498ef.js +0 -11
  430. package/dist/cjs/index-5d4e0aed.js +0 -29
  431. package/dist/cjs/post-accordion-item-ecc6749f.js +0 -63
  432. package/dist/cjs/post-back-to-top-60762f8e.js +0 -75
  433. package/dist/cjs/post-banner-9662f22c.js +0 -90
  434. package/dist/cjs/post-breadcrumb-b40732fc.js +0 -111
  435. package/dist/cjs/post-breadcrumb.cjs.entry.js +0 -13
  436. package/dist/cjs/post-card-control-039c9a4b.js +0 -272
  437. package/dist/cjs/post-popover-d0ce9dc6.js +0 -104
  438. package/dist/cjs/post-tab-header-4b6d8d54.js +0 -32
  439. package/dist/cjs/post-tag-ddaaaedc.js +0 -47
  440. package/dist/cjs/post-togglebutton-0984a694.js +0 -3239
  441. package/dist/collection/components/post-breadcrumb/post-breadcrumb.css +0 -3
  442. package/dist/collection/components/post-menu-item/post-menu-item.css +0 -1
  443. package/dist/components/attribute-observer.js +0 -25
  444. package/dist/components/debounce.js +0 -10
  445. package/dist/components/post-breadcrumb.js +0 -6
  446. package/dist/components/post-breadcrumb2.js +0 -168
  447. package/dist/esm/attribute-observer-37fa950a.js +0 -25
  448. package/dist/esm/check-non-empty-58bd6b17.js +0 -9
  449. package/dist/esm/check-one-of-6b3ef8eb.js +0 -6
  450. package/dist/esm/check-type-8828dbe4.js +0 -14
  451. package/dist/esm/check-url-a974431e.js +0 -12
  452. package/dist/esm/debounce-abe98cc2.js +0 -10
  453. package/dist/esm/fade-7fd71785.js +0 -7
  454. package/dist/esm/get-root-7af2e0d1.js +0 -9
  455. package/dist/esm/index-b49c9904.js +0 -24
  456. package/dist/esm/package-4d81f3c2.js +0 -3
  457. package/dist/esm/post-accordion-item-e10452dc.js +0 -61
  458. package/dist/esm/post-back-to-top-1d823c43.js +0 -73
  459. package/dist/esm/post-banner-78480475.js +0 -88
  460. package/dist/esm/post-breadcrumb-aaa77f74.js +0 -109
  461. package/dist/esm/post-breadcrumb.entry.js +0 -5
  462. package/dist/esm/post-card-control-862aa961.js +0 -270
  463. package/dist/esm/post-popover-2432bb3f.js +0 -102
  464. package/dist/esm/post-tab-header-dfea00ea.js +0 -30
  465. package/dist/esm/post-tag-a77e7af6.js +0 -45
  466. package/dist/esm/post-togglebutton-395bf3f0.js +0 -3223
  467. package/dist/post-components/p-0711f76d.entry.js +0 -1
  468. package/dist/post-components/p-095a06f6.entry.js +0 -1
  469. package/dist/post-components/p-0b5a5f32.js +0 -1
  470. package/dist/post-components/p-135fa60f.js +0 -1
  471. package/dist/post-components/p-18e38d8a.js +0 -1
  472. package/dist/post-components/p-2737eaf5.js +0 -1
  473. package/dist/post-components/p-2e1ec074.entry.js +0 -1
  474. package/dist/post-components/p-4202b433.entry.js +0 -1
  475. package/dist/post-components/p-45773f59.js +0 -1
  476. package/dist/post-components/p-4953de7e.js +0 -1
  477. package/dist/post-components/p-4a3f67ab.js +0 -1
  478. package/dist/post-components/p-4f67c5f5.entry.js +0 -1
  479. package/dist/post-components/p-5075c672.entry.js +0 -1
  480. package/dist/post-components/p-515e0f96.js +0 -1
  481. package/dist/post-components/p-5467b223.js +0 -1
  482. package/dist/post-components/p-611b3c41.js +0 -1
  483. package/dist/post-components/p-67036798.entry.js +0 -1
  484. package/dist/post-components/p-6adeaa6c.js +0 -1
  485. package/dist/post-components/p-6d953fb2.js +0 -1
  486. package/dist/post-components/p-6edb0ac5.js +0 -1
  487. package/dist/post-components/p-6f8f39ca.js +0 -1
  488. package/dist/post-components/p-7503a623.js +0 -1
  489. package/dist/post-components/p-761b24c7.entry.js +0 -1
  490. package/dist/post-components/p-77c4c1d2.js +0 -1
  491. package/dist/post-components/p-7cf0c2ad.js +0 -1
  492. package/dist/post-components/p-856c14d6.entry.js +0 -1
  493. package/dist/post-components/p-866bf50a.entry.js +0 -1
  494. package/dist/post-components/p-8d621781.js +0 -1
  495. package/dist/post-components/p-8fe2d72c.entry.js +0 -1
  496. package/dist/post-components/p-9ad5088f.entry.js +0 -1
  497. package/dist/post-components/p-a1d2b90e.js +0 -1
  498. package/dist/post-components/p-a521419d.entry.js +0 -1
  499. package/dist/post-components/p-aa538648.js +0 -1
  500. package/dist/post-components/p-afdbee2f.js +0 -1
  501. package/dist/post-components/p-b02817f2.entry.js +0 -1
  502. package/dist/post-components/p-b095519d.js +0 -1
  503. package/dist/post-components/p-b157dcba.entry.js +0 -1
  504. package/dist/post-components/p-b22656b1.js +0 -1
  505. package/dist/post-components/p-bdbd11cb.js +0 -1
  506. package/dist/post-components/p-c537e196.entry.js +0 -1
  507. package/dist/post-components/p-d4f93f2b.js +0 -1
  508. package/dist/post-components/p-dca4246a.entry.js +0 -1
  509. package/dist/post-components/p-f319b026.js +0 -1
  510. package/dist/post-components/p-f4b7b379.js +0 -1
  511. package/dist/post-components/p-fac66087.entry.js +0 -1
  512. package/dist/post-components/p-fc91cbc2.js +0 -1
  513. package/dist/types/utils/is-focusable.d.ts +0 -1
  514. package/loaders/attribute-observer.js +0 -25
  515. package/loaders/debounce.js +0 -10
  516. package/loaders/post-breadcrumb.js +0 -171
@@ -1,4 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement as HTMLElement$1, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { I as IS_BROWSER } from './breakpoints.js';
2
3
  import { v as version } from './package.js';
3
4
 
4
5
  /**
@@ -323,9 +324,10 @@ async function detectOverflow(state, options) {
323
324
  strategy
324
325
  }));
325
326
  const rect = elementContext === 'floating' ? {
326
- ...rects.floating,
327
327
  x,
328
- y
328
+ y,
329
+ width: rects.floating.width,
330
+ height: rects.floating.height
329
331
  } : rects.reference;
330
332
  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
331
333
  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
@@ -575,10 +577,12 @@ const flip$1 = function (options) {
575
577
  return {};
576
578
  }
577
579
  const side = getSide(placement);
580
+ const initialSideAxis = getSideAxis(initialPlacement);
578
581
  const isBasePlacement = getSide(initialPlacement) === initialPlacement;
579
582
  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
580
583
  const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
581
- if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {
584
+ const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';
585
+ if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
582
586
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
583
587
  }
584
588
  const placements = [initialPlacement, ...fallbackPlacements];
@@ -603,16 +607,21 @@ const flip$1 = function (options) {
603
607
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
604
608
  const nextPlacement = placements[nextIndex];
605
609
  if (nextPlacement) {
606
- // Try next placement and re-run the lifecycle.
607
- return {
608
- data: {
609
- index: nextIndex,
610
- overflows: overflowsData
611
- },
612
- reset: {
613
- placement: nextPlacement
614
- }
615
- };
610
+ var _overflowsData$;
611
+ const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
612
+ const hasInitialMainAxisOverflow = ((_overflowsData$ = overflowsData[0]) == null ? void 0 : _overflowsData$.overflows[0]) > 0;
613
+ if (!ignoreCrossAxisOverflow || hasInitialMainAxisOverflow) {
614
+ // Try next placement and re-run the lifecycle.
615
+ return {
616
+ data: {
617
+ index: nextIndex,
618
+ overflows: overflowsData
619
+ },
620
+ reset: {
621
+ placement: nextPlacement
622
+ }
623
+ };
624
+ }
616
625
  }
617
626
 
618
627
  // First, find the candidates that fit on the mainAxis side of overflow,
@@ -624,8 +633,17 @@ const flip$1 = function (options) {
624
633
  switch (fallbackStrategy) {
625
634
  case 'bestFit':
626
635
  {
627
- var _overflowsData$map$so;
628
- const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];
636
+ var _overflowsData$filter2;
637
+ const placement = (_overflowsData$filter2 = overflowsData.filter(d => {
638
+ if (hasFallbackAxisSideDirection) {
639
+ const currentSideAxis = getSideAxis(d.placement);
640
+ return currentSideAxis === initialSideAxis ||
641
+ // Create a bias to the `y` side axis due to horizontal
642
+ // reading directions favoring greater width.
643
+ currentSideAxis === 'y';
644
+ }
645
+ return true;
646
+ }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
629
647
  if (placement) {
630
648
  resetPlacement = placement;
631
649
  }
@@ -865,6 +883,8 @@ async function convertValueToCoords(state, options) {
865
883
  const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
866
884
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
867
885
  const rawValue = evaluate(options, state);
886
+
887
+ // eslint-disable-next-line prefer-const
868
888
  let {
869
889
  mainAxis,
870
890
  crossAxis,
@@ -874,10 +894,9 @@ async function convertValueToCoords(state, options) {
874
894
  crossAxis: 0,
875
895
  alignmentAxis: null
876
896
  } : {
877
- mainAxis: 0,
878
- crossAxis: 0,
879
- alignmentAxis: null,
880
- ...rawValue
897
+ mainAxis: rawValue.mainAxis || 0,
898
+ crossAxis: rawValue.crossAxis || 0,
899
+ alignmentAxis: rawValue.alignmentAxis
881
900
  };
882
901
  if (alignment && typeof alignmentAxis === 'number') {
883
902
  crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;
@@ -999,7 +1018,11 @@ const shift$1 = function (options) {
999
1018
  ...limitedCoords,
1000
1019
  data: {
1001
1020
  x: limitedCoords.x - x,
1002
- y: limitedCoords.y - y
1021
+ y: limitedCoords.y - y,
1022
+ enabled: {
1023
+ [mainAxis]: checkMainAxis,
1024
+ [crossAxis]: checkCrossAxis
1025
+ }
1003
1026
  }
1004
1027
  };
1005
1028
  }
@@ -1088,6 +1111,7 @@ const size$1 = function (options) {
1088
1111
  name: 'size',
1089
1112
  options,
1090
1113
  async fn(state) {
1114
+ var _state$middlewareData, _state$middlewareData2;
1091
1115
  const {
1092
1116
  placement,
1093
1117
  rects,
@@ -1115,17 +1139,18 @@ const size$1 = function (options) {
1115
1139
  widthSide = side;
1116
1140
  heightSide = alignment === 'end' ? 'top' : 'bottom';
1117
1141
  }
1118
- const overflowAvailableHeight = height - overflow[heightSide];
1119
- const overflowAvailableWidth = width - overflow[widthSide];
1142
+ const maximumClippingHeight = height - overflow.top - overflow.bottom;
1143
+ const maximumClippingWidth = width - overflow.left - overflow.right;
1144
+ const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
1145
+ const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
1120
1146
  const noShift = !state.middlewareData.shift;
1121
1147
  let availableHeight = overflowAvailableHeight;
1122
1148
  let availableWidth = overflowAvailableWidth;
1123
- if (isYAxis) {
1124
- const maximumClippingWidth = width - overflow.left - overflow.right;
1125
- availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
1126
- } else {
1127
- const maximumClippingHeight = height - overflow.top - overflow.bottom;
1128
- availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
1149
+ if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
1150
+ availableWidth = maximumClippingWidth;
1151
+ }
1152
+ if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
1153
+ availableHeight = maximumClippingHeight;
1129
1154
  }
1130
1155
  if (noShift && !alignment) {
1131
1156
  const xMin = max(overflow.left, 0);
@@ -1156,6 +1181,9 @@ const size$1 = function (options) {
1156
1181
  };
1157
1182
  };
1158
1183
 
1184
+ function hasWindow() {
1185
+ return typeof window !== 'undefined';
1186
+ }
1159
1187
  function getNodeName(node) {
1160
1188
  if (isNode(node)) {
1161
1189
  return (node.nodeName || '').toLowerCase();
@@ -1174,17 +1202,25 @@ function getDocumentElement(node) {
1174
1202
  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
1175
1203
  }
1176
1204
  function isNode(value) {
1205
+ if (!hasWindow()) {
1206
+ return false;
1207
+ }
1177
1208
  return value instanceof Node || value instanceof getWindow(value).Node;
1178
1209
  }
1179
1210
  function isElement(value) {
1211
+ if (!hasWindow()) {
1212
+ return false;
1213
+ }
1180
1214
  return value instanceof Element || value instanceof getWindow(value).Element;
1181
1215
  }
1182
1216
  function isHTMLElement(value) {
1217
+ if (!hasWindow()) {
1218
+ return false;
1219
+ }
1183
1220
  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
1184
1221
  }
1185
1222
  function isShadowRoot(value) {
1186
- // Browsers without `ShadowRoot` support.
1187
- if (typeof ShadowRoot === 'undefined') {
1223
+ if (!hasWindow() || typeof ShadowRoot === 'undefined') {
1188
1224
  return false;
1189
1225
  }
1190
1226
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
@@ -1195,7 +1231,7 @@ function isOverflowElement(element) {
1195
1231
  overflowX,
1196
1232
  overflowY,
1197
1233
  display
1198
- } = getComputedStyle(element);
1234
+ } = getComputedStyle$1(element);
1199
1235
  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
1200
1236
  }
1201
1237
  function isTableElement(element) {
@@ -1212,10 +1248,11 @@ function isTopLayer(element) {
1212
1248
  }
1213
1249
  function isContainingBlock(elementOrCss) {
1214
1250
  const webkit = isWebKit();
1215
- const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;
1251
+ const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
1216
1252
 
1217
1253
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
1218
- return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
1254
+ // https://drafts.csswg.org/css-transforms-2/#individual-transforms
1255
+ return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
1219
1256
  }
1220
1257
  function getContainingBlock(element) {
1221
1258
  let currentNode = getParentNode(element);
@@ -1236,7 +1273,7 @@ function isWebKit() {
1236
1273
  function isLastTraversableNode(node) {
1237
1274
  return ['html', 'body', '#document'].includes(getNodeName(node));
1238
1275
  }
1239
- function getComputedStyle(element) {
1276
+ function getComputedStyle$1(element) {
1240
1277
  return getWindow(element).getComputedStyle(element);
1241
1278
  }
1242
1279
  function getNodeScroll(element) {
@@ -1288,13 +1325,17 @@ function getOverflowAncestors(node, list, traverseIframes) {
1288
1325
  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
1289
1326
  const win = getWindow(scrollableAncestor);
1290
1327
  if (isBody) {
1291
- return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);
1328
+ const frameElement = getFrameElement(win);
1329
+ return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
1292
1330
  }
1293
1331
  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
1294
1332
  }
1333
+ function getFrameElement(win) {
1334
+ return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
1335
+ }
1295
1336
 
1296
1337
  function getCssDimensions(element) {
1297
- const css = getComputedStyle(element);
1338
+ const css = getComputedStyle$1(element);
1298
1339
  // In testing environments, the `width` and `height` properties are empty
1299
1340
  // strings for SVG elements, returning NaN. Fallback to `0` in this case.
1300
1341
  let width = parseFloat(css.width) || 0;
@@ -1395,11 +1436,11 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
1395
1436
  const win = getWindow(domElement);
1396
1437
  const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
1397
1438
  let currentWin = win;
1398
- let currentIFrame = currentWin.frameElement;
1439
+ let currentIFrame = getFrameElement(currentWin);
1399
1440
  while (currentIFrame && offsetParent && offsetWin !== currentWin) {
1400
1441
  const iframeScale = getScale(currentIFrame);
1401
1442
  const iframeRect = currentIFrame.getBoundingClientRect();
1402
- const css = getComputedStyle(currentIFrame);
1443
+ const css = getComputedStyle$1(currentIFrame);
1403
1444
  const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
1404
1445
  const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
1405
1446
  x *= iframeScale.x;
@@ -1409,7 +1450,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
1409
1450
  x += left;
1410
1451
  y += top;
1411
1452
  currentWin = getWindow(currentIFrame);
1412
- currentIFrame = currentWin.frameElement;
1453
+ currentIFrame = getFrameElement(currentWin);
1413
1454
  }
1414
1455
  }
1415
1456
  return rectToClientRect({
@@ -1420,6 +1461,31 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
1420
1461
  });
1421
1462
  }
1422
1463
 
1464
+ // If <html> has a CSS width greater than the viewport, then this will be
1465
+ // incorrect for RTL.
1466
+ function getWindowScrollBarX(element, rect) {
1467
+ const leftScroll = getNodeScroll(element).scrollLeft;
1468
+ if (!rect) {
1469
+ return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;
1470
+ }
1471
+ return rect.left + leftScroll;
1472
+ }
1473
+
1474
+ function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
1475
+ if (ignoreScrollbarX === void 0) {
1476
+ ignoreScrollbarX = false;
1477
+ }
1478
+ const htmlRect = documentElement.getBoundingClientRect();
1479
+ const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
1480
+ // RTL <body> scrollbar.
1481
+ getWindowScrollBarX(documentElement, htmlRect));
1482
+ const y = htmlRect.top + scroll.scrollTop;
1483
+ return {
1484
+ x,
1485
+ y
1486
+ };
1487
+ }
1488
+
1423
1489
  function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1424
1490
  let {
1425
1491
  elements,
@@ -1451,11 +1517,12 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1451
1517
  offsets.y = offsetRect.y + offsetParent.clientTop;
1452
1518
  }
1453
1519
  }
1520
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
1454
1521
  return {
1455
1522
  width: rect.width * scale.x,
1456
1523
  height: rect.height * scale.y,
1457
- x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,
1458
- y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y
1524
+ x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
1525
+ y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
1459
1526
  };
1460
1527
  }
1461
1528
 
@@ -1463,12 +1530,6 @@ function getClientRects(element) {
1463
1530
  return Array.from(element.getClientRects());
1464
1531
  }
1465
1532
 
1466
- function getWindowScrollBarX(element) {
1467
- // If <html> has a CSS width greater than the viewport, then this will be
1468
- // incorrect for RTL.
1469
- return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
1470
- }
1471
-
1472
1533
  // Gets the entire size of the scrollable document area, even extending outside
1473
1534
  // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
1474
1535
  function getDocumentRect(element) {
@@ -1479,7 +1540,7 @@ function getDocumentRect(element) {
1479
1540
  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
1480
1541
  let x = -scroll.scrollLeft + getWindowScrollBarX(element);
1481
1542
  const y = -scroll.scrollTop;
1482
- if (getComputedStyle(body).direction === 'rtl') {
1543
+ if (getComputedStyle$1(body).direction === 'rtl') {
1483
1544
  x += max(html.clientWidth, body.clientWidth) - width;
1484
1545
  }
1485
1546
  return {
@@ -1543,9 +1604,10 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
1543
1604
  } else {
1544
1605
  const visualOffsets = getVisualOffsets(element);
1545
1606
  rect = {
1546
- ...clippingAncestor,
1547
1607
  x: clippingAncestor.x - visualOffsets.x,
1548
- y: clippingAncestor.y - visualOffsets.y
1608
+ y: clippingAncestor.y - visualOffsets.y,
1609
+ width: clippingAncestor.width,
1610
+ height: clippingAncestor.height
1549
1611
  };
1550
1612
  }
1551
1613
  return rectToClientRect(rect);
@@ -1555,7 +1617,7 @@ function hasFixedPositionAncestor(element, stopNode) {
1555
1617
  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
1556
1618
  return false;
1557
1619
  }
1558
- return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1620
+ return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1559
1621
  }
1560
1622
 
1561
1623
  // A "clipping ancestor" is an `overflow` element with the characteristic of
@@ -1568,12 +1630,12 @@ function getClippingElementAncestors(element, cache) {
1568
1630
  }
1569
1631
  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
1570
1632
  let currentContainingBlockComputedStyle = null;
1571
- const elementIsFixed = getComputedStyle(element).position === 'fixed';
1633
+ const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
1572
1634
  let currentNode = elementIsFixed ? getParentNode(element) : element;
1573
1635
 
1574
1636
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
1575
1637
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
1576
- const computedStyle = getComputedStyle(currentNode);
1638
+ const computedStyle = getComputedStyle$1(currentNode);
1577
1639
  const currentNodeIsContaining = isContainingBlock(currentNode);
1578
1640
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
1579
1641
  currentContainingBlockComputedStyle = null;
@@ -1641,6 +1703,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1641
1703
  scrollTop: 0
1642
1704
  };
1643
1705
  const offsets = createCoords(0);
1706
+
1707
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1708
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1709
+ function setLeftRTLScrollbarOffset() {
1710
+ offsets.x = getWindowScrollBarX(documentElement);
1711
+ }
1644
1712
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1645
1713
  if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1646
1714
  scroll = getNodeScroll(offsetParent);
@@ -1650,11 +1718,15 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1650
1718
  offsets.x = offsetRect.x + offsetParent.clientLeft;
1651
1719
  offsets.y = offsetRect.y + offsetParent.clientTop;
1652
1720
  } else if (documentElement) {
1653
- offsets.x = getWindowScrollBarX(documentElement);
1721
+ setLeftRTLScrollbarOffset();
1654
1722
  }
1655
1723
  }
1656
- const x = rect.left + scroll.scrollLeft - offsets.x;
1657
- const y = rect.top + scroll.scrollTop - offsets.y;
1724
+ if (isFixed && !isOffsetParentAnElement && documentElement) {
1725
+ setLeftRTLScrollbarOffset();
1726
+ }
1727
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1728
+ const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
1729
+ const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
1658
1730
  return {
1659
1731
  x,
1660
1732
  y,
@@ -1664,17 +1736,26 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1664
1736
  }
1665
1737
 
1666
1738
  function isStaticPositioned(element) {
1667
- return getComputedStyle(element).position === 'static';
1739
+ return getComputedStyle$1(element).position === 'static';
1668
1740
  }
1669
1741
 
1670
1742
  function getTrueOffsetParent(element, polyfill) {
1671
- if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {
1743
+ if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {
1672
1744
  return null;
1673
1745
  }
1674
1746
  if (polyfill) {
1675
1747
  return polyfill(element);
1676
1748
  }
1677
- return element.offsetParent;
1749
+ let rawOffsetParent = element.offsetParent;
1750
+
1751
+ // Firefox returns the <html> element as the offsetParent if it's non-static,
1752
+ // while Chrome and Safari return the <body> element. The <body> element must
1753
+ // be used to perform the correct calculations even if the <html> element is
1754
+ // non-static.
1755
+ if (getDocumentElement(element) === rawOffsetParent) {
1756
+ rawOffsetParent = rawOffsetParent.ownerDocument.body;
1757
+ }
1758
+ return rawOffsetParent;
1678
1759
  }
1679
1760
 
1680
1761
  // Gets the closest ancestor positioned element. Handles some edge cases,
@@ -1720,7 +1801,7 @@ const getElementRects = async function (data) {
1720
1801
  };
1721
1802
 
1722
1803
  function isRTL(element) {
1723
- return getComputedStyle(element).direction === 'rtl';
1804
+ return getComputedStyle$1(element).direction === 'rtl';
1724
1805
  }
1725
1806
 
1726
1807
  const platform = {
@@ -1736,6 +1817,10 @@ const platform = {
1736
1817
  isRTL
1737
1818
  };
1738
1819
 
1820
+ function rectsAreEqual(a, b) {
1821
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
1822
+ }
1823
+
1739
1824
  // https://samthor.au/2021/observing-dom/
1740
1825
  function observeMove(element, onMove) {
1741
1826
  let io = null;
@@ -1755,12 +1840,13 @@ function observeMove(element, onMove) {
1755
1840
  threshold = 1;
1756
1841
  }
1757
1842
  cleanup();
1843
+ const elementRectForRootMargin = element.getBoundingClientRect();
1758
1844
  const {
1759
1845
  left,
1760
1846
  top,
1761
1847
  width,
1762
1848
  height
1763
- } = element.getBoundingClientRect();
1849
+ } = elementRectForRootMargin;
1764
1850
  if (!skip) {
1765
1851
  onMove();
1766
1852
  }
@@ -1793,6 +1879,16 @@ function observeMove(element, onMove) {
1793
1879
  refresh(false, ratio);
1794
1880
  }
1795
1881
  }
1882
+ if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
1883
+ // It's possible that even though the ratio is reported as 1, the
1884
+ // element is not actually fully within the IntersectionObserver's root
1885
+ // area anymore. This can happen under performance constraints. This may
1886
+ // be a bug in the browser's IntersectionObserver implementation. To
1887
+ // work around this, we compare the element's bounding rect now with
1888
+ // what it was at the time we created the IntersectionObserver. If they
1889
+ // are not equal then the element moved, so we refresh.
1890
+ refresh();
1891
+ }
1796
1892
  isFirstUpdate = false;
1797
1893
  }
1798
1894
 
@@ -1804,7 +1900,7 @@ function observeMove(element, onMove) {
1804
1900
  // Handle <iframe>s
1805
1901
  root: root.ownerDocument
1806
1902
  });
1807
- } catch (e) {
1903
+ } catch (_e) {
1808
1904
  io = new IntersectionObserver(handleObserve, options);
1809
1905
  }
1810
1906
  io.observe(element);
@@ -1870,7 +1966,7 @@ function autoUpdate(reference, floating, update, options) {
1870
1966
  }
1871
1967
  function frameLoop() {
1872
1968
  const nextRefRect = getBoundingClientRect(reference);
1873
- if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {
1969
+ if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {
1874
1970
  update();
1875
1971
  }
1876
1972
  prevRefRect = nextRefRect;
@@ -1981,7 +2077,385 @@ const computePosition = (reference, floating, options) => {
1981
2077
  });
1982
2078
  };
1983
2079
 
1984
- (()=>{var c=class extends Event{oldState;newState;constructor(t,{oldState:o="",newState:r="",...i}={}){super(t,i),this.oldState=String(o||""),this.newState=String(r||"");}},R=new WeakMap;function A(e,t,o){R.set(e,setTimeout(()=>{R.has(e)&&e.dispatchEvent(new c("toggle",{cancelable:!1,oldState:t,newState:o}));},0));}var D=globalThis.ShadowRoot||function(){},z=globalThis.HTMLDialogElement||function(){},M=new WeakMap,p=new WeakMap,h=new WeakMap;function L(e){return h.get(e)||"hidden"}var b=new WeakMap;function O(e){let t=e.popoverTargetElement;if(!(t instanceof HTMLElement))return;let o=L(t);e.popoverTargetAction==="show"&&o==="showing"||e.popoverTargetAction==="hide"&&o==="hidden"||(o==="showing"?m(t,!0,!0):d(t,!1)&&(b.set(t,e),S(t)));}function d(e,t){return !(e.popover!=="auto"&&e.popover!=="manual"||!e.isConnected||t&&L(e)!=="showing"||!t&&L(e)!=="hidden"||e instanceof z&&e.hasAttribute("open")||document.fullscreenElement===e)}function N(e){return e?Array.from(p.get(e.ownerDocument)||[]).indexOf(e)+1:0}function V(e){let t=W(e),o=U(e);return N(t)>N(o)?t:o}function y(e){let t=p.get(e);for(let o of t||[])if(!o.isConnected)t.delete(o);else return o;return null}function v(e){return typeof e.getRootNode=="function"?e.getRootNode():e.parentNode?v(e.parentNode):e}function W(e){for(;e;){if(e instanceof HTMLElement&&e.popover==="auto"&&h.get(e)==="showing")return e;if(e=e.parentElement||v(e),e instanceof D&&(e=e.host),e instanceof Document)return}}function U(e){for(;e;){let t=e.popoverTargetElement;if(t instanceof HTMLElement)return t;if(e=e.parentElement||v(e),e instanceof D&&(e=e.host),e instanceof Document)return}}function G(e){let t=new Map,o=0,r=e.ownerDocument;for(let a of p.get(r)||[])t.set(a,o),o+=1;t.set(e,o),o+=1;let i=null;function l(a){let g=W(a);if(g===null)return null;let n=t.get(g);(i===null||t.get(i)<n)&&(i=g);}return l(e?.parentElement),i}function Q(e){return e.hidden||e instanceof D||(e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||e instanceof HTMLOptGroupElement||e instanceof HTMLOptionElement||e instanceof HTMLFieldSetElement)&&e.disabled||e instanceof HTMLInputElement&&e.type==="hidden"||e instanceof HTMLAnchorElement&&e.href===""?!1:typeof e.tabIndex=="number"&&e.tabIndex!==-1}function _(e){if(e.shadowRoot&&e.shadowRoot.delegatesFocus!==!0)return null;let t=e;t.shadowRoot&&(t=t.shadowRoot);let o=t.querySelector("[autofocus]");if(o)return o;{let l=t.querySelectorAll("slot");for(let a of l){let g=a.assignedElements({flatten:!0});for(let n of g){if(n.hasAttribute("autofocus"))return n;if(o=n.querySelector("[autofocus]"),o)return o}}}let r=e.ownerDocument.createTreeWalker(t,NodeFilter.SHOW_ELEMENT),i=r.currentNode;for(;i;){if(Q(i))return i;i=r.nextNode();}}function $(e){_(e)?.focus();}var H=new WeakMap;function S(e){if(!d(e,!1))return;let t=e.ownerDocument;if(!e.dispatchEvent(new c("beforetoggle",{cancelable:!0,oldState:"closed",newState:"open"}))||!d(e,!1))return;let o=!1;if(e.popover==="auto"){let i=e.getAttribute("popover"),l=G(e)||t;if(T(l,!1,!0),i!==e.getAttribute("popover")||!d(e,!1))return}y(t)||(o=!0),H.delete(e);let r=t.activeElement;e.classList.add(":popover-open"),h.set(e,"showing"),M.has(t)||M.set(t,new Set),M.get(t).add(e),$(e),e.popover==="auto"&&(p.has(t)||p.set(t,new Set),p.get(t).add(e),q(b.get(e),!0)),o&&r&&e.popover==="auto"&&H.set(e,r),A(e,"closed","open");}function m(e,t=!1,o=!1){if(!d(e,!0))return;let r=e.ownerDocument;if(e.popover==="auto"&&(T(e,t,o),!d(e,!0))||(q(b.get(e),!1),b.delete(e),o&&(e.dispatchEvent(new c("beforetoggle",{oldState:"open",newState:"closed"})),!d(e,!0))))return;M.get(r)?.delete(e),p.get(r)?.delete(e),e.classList.remove(":popover-open"),h.set(e,"hidden"),o&&A(e,"open","closed");let i=H.get(e);i&&(H.delete(e),t&&i.focus());}function F(e,t=!1,o=!1){let r=y(e);for(;r;)m(r,t,o),r=y(e);}function T(e,t,o){let r=e.ownerDocument||e;if(e instanceof Document)return F(r,t,o);let i=null,l=!1;for(let a of p.get(r)||[])if(a===e)l=!0;else if(l){i=a;break}if(!l)return F(r,t,o);for(;i&&L(i)==="showing"&&p.get(r)?.size;)m(i,t,o);}var P=new WeakMap;function x(e){if(!e.isTrusted)return;let t=e.composedPath()[0];if(!t)return;let o=t.ownerDocument;if(!y(o))return;let i=V(t);if(i&&e.type==="pointerdown")P.set(o,i);else if(e.type==="pointerup"){let l=P.get(o)===i;P.delete(o),l&&T(i||o,!1,!0);}}var k=new WeakMap;function q(e,t=!1){if(!e)return;k.has(e)||k.set(e,e.getAttribute("aria-expanded"));let o=e.popoverTargetElement;if(o instanceof HTMLElement&&o.popover==="auto")e.setAttribute("aria-expanded",String(t));else {let r=k.get(e);r?e.setAttribute("aria-expanded",r):e.removeAttribute("aria-expanded");}}var B=globalThis.ShadowRoot||function(){};function j(){return typeof HTMLElement<"u"&&typeof HTMLElement.prototype=="object"&&"popover"in HTMLElement.prototype}function f(e,t,o){let r=e[t];Object.defineProperty(e,t,{value(i){return r.call(this,o(i))}});}var J=/(^|[^\\]):popover-open\b/g,C=`
2080
+ // src/events.ts
2081
+ var ToggleEvent = class extends Event {
2082
+ oldState;
2083
+ newState;
2084
+ constructor(type, { oldState = "", newState = "", ...init } = {}) {
2085
+ super(type, init);
2086
+ this.oldState = String(oldState || "");
2087
+ this.newState = String(newState || "");
2088
+ }
2089
+ };
2090
+ var popoverToggleTaskQueue = /* @__PURE__ */ new WeakMap();
2091
+ function queuePopoverToggleEventTask(element, oldState, newState) {
2092
+ popoverToggleTaskQueue.set(
2093
+ element,
2094
+ setTimeout(() => {
2095
+ if (!popoverToggleTaskQueue.has(element)) return;
2096
+ element.dispatchEvent(
2097
+ new ToggleEvent("toggle", {
2098
+ cancelable: false,
2099
+ oldState,
2100
+ newState
2101
+ })
2102
+ );
2103
+ }, 0)
2104
+ );
2105
+ }
2106
+
2107
+ // src/popover-helpers.ts
2108
+ var ShadowRoot$1 = globalThis.ShadowRoot || function() {
2109
+ };
2110
+ var HTMLDialogElement = globalThis.HTMLDialogElement || function() {
2111
+ };
2112
+ var topLayerElements = /* @__PURE__ */ new WeakMap();
2113
+ var autoPopoverList = /* @__PURE__ */ new WeakMap();
2114
+ var visibilityState = /* @__PURE__ */ new WeakMap();
2115
+ function getPopoverVisibilityState(popover) {
2116
+ return visibilityState.get(popover) || "hidden";
2117
+ }
2118
+ var popoverInvoker = /* @__PURE__ */ new WeakMap();
2119
+ function popoverTargetAttributeActivationBehavior(element) {
2120
+ const popover = element.popoverTargetElement;
2121
+ if (!(popover instanceof HTMLElement)) {
2122
+ return;
2123
+ }
2124
+ const visibility = getPopoverVisibilityState(popover);
2125
+ if (element.popoverTargetAction === "show" && visibility === "showing") {
2126
+ return;
2127
+ }
2128
+ if (element.popoverTargetAction === "hide" && visibility === "hidden") return;
2129
+ if (visibility === "showing") {
2130
+ hidePopover(popover, true, true);
2131
+ } else if (checkPopoverValidity(popover, false)) {
2132
+ popoverInvoker.set(popover, element);
2133
+ showPopover(popover);
2134
+ }
2135
+ }
2136
+ function checkPopoverValidity(element, expectedToBeShowing) {
2137
+ if (element.popover !== "auto" && element.popover !== "manual") {
2138
+ return false;
2139
+ }
2140
+ if (!element.isConnected) return false;
2141
+ if (expectedToBeShowing && getPopoverVisibilityState(element) !== "showing") {
2142
+ return false;
2143
+ }
2144
+ if (!expectedToBeShowing && getPopoverVisibilityState(element) !== "hidden") {
2145
+ return false;
2146
+ }
2147
+ if (element instanceof HTMLDialogElement && element.hasAttribute("open")) {
2148
+ return false;
2149
+ }
2150
+ if (document.fullscreenElement === element) return false;
2151
+ return true;
2152
+ }
2153
+ function getStackPosition(popover) {
2154
+ if (!popover) return 0;
2155
+ return Array.from(autoPopoverList.get(popover.ownerDocument) || []).indexOf(
2156
+ popover
2157
+ ) + 1;
2158
+ }
2159
+ function topMostClickedPopover(target) {
2160
+ const clickedPopover = nearestInclusiveOpenPopover(target);
2161
+ const invokerPopover = nearestInclusiveTargetPopoverForInvoker(target);
2162
+ if (getStackPosition(clickedPopover) > getStackPosition(invokerPopover)) {
2163
+ return clickedPopover;
2164
+ }
2165
+ return invokerPopover;
2166
+ }
2167
+ function topMostAutoPopover(document2) {
2168
+ const documentPopovers = autoPopoverList.get(document2);
2169
+ for (const popover of documentPopovers || []) {
2170
+ if (!popover.isConnected) {
2171
+ documentPopovers.delete(popover);
2172
+ } else {
2173
+ return popover;
2174
+ }
2175
+ }
2176
+ return null;
2177
+ }
2178
+ function getRootNode(node) {
2179
+ if (typeof node.getRootNode === "function") {
2180
+ return node.getRootNode();
2181
+ }
2182
+ if (node.parentNode) return getRootNode(node.parentNode);
2183
+ return node;
2184
+ }
2185
+ function nearestInclusiveOpenPopover(node) {
2186
+ while (node) {
2187
+ if (node instanceof HTMLElement && node.popover === "auto" && visibilityState.get(node) === "showing") {
2188
+ return node;
2189
+ }
2190
+ node = node instanceof Element && node.assignedSlot || node.parentElement || getRootNode(node);
2191
+ if (node instanceof ShadowRoot$1) node = node.host;
2192
+ if (node instanceof Document) return;
2193
+ }
2194
+ }
2195
+ function nearestInclusiveTargetPopoverForInvoker(node) {
2196
+ while (node) {
2197
+ const nodePopover = node.popoverTargetElement;
2198
+ if (nodePopover instanceof HTMLElement) return nodePopover;
2199
+ node = node.parentElement || getRootNode(node);
2200
+ if (node instanceof ShadowRoot$1) node = node.host;
2201
+ if (node instanceof Document) return;
2202
+ }
2203
+ }
2204
+ function topMostPopoverAncestor(newPopover) {
2205
+ const popoverPositions = /* @__PURE__ */ new Map();
2206
+ let i = 0;
2207
+ for (const popover of autoPopoverList.get(newPopover.ownerDocument) || []) {
2208
+ popoverPositions.set(popover, i);
2209
+ i += 1;
2210
+ }
2211
+ popoverPositions.set(newPopover, i);
2212
+ i += 1;
2213
+ let topMostPopoverAncestor2 = null;
2214
+ function checkAncestor(candidate) {
2215
+ const candidateAncestor = nearestInclusiveOpenPopover(candidate);
2216
+ if (candidateAncestor === null) return null;
2217
+ const candidatePosition = popoverPositions.get(candidateAncestor);
2218
+ if (topMostPopoverAncestor2 === null || popoverPositions.get(topMostPopoverAncestor2) < candidatePosition) {
2219
+ topMostPopoverAncestor2 = candidateAncestor;
2220
+ }
2221
+ }
2222
+ checkAncestor(newPopover.parentElement || getRootNode(newPopover));
2223
+ return topMostPopoverAncestor2;
2224
+ }
2225
+ function isFocusable(focusTarget) {
2226
+ if (focusTarget.hidden || focusTarget instanceof ShadowRoot$1) return false;
2227
+ if (focusTarget instanceof HTMLButtonElement || focusTarget instanceof HTMLInputElement || focusTarget instanceof HTMLSelectElement || focusTarget instanceof HTMLTextAreaElement || focusTarget instanceof HTMLOptGroupElement || focusTarget instanceof HTMLOptionElement || focusTarget instanceof HTMLFieldSetElement) {
2228
+ if (focusTarget.disabled) return false;
2229
+ }
2230
+ if (focusTarget instanceof HTMLInputElement && focusTarget.type === "hidden") {
2231
+ return false;
2232
+ }
2233
+ if (focusTarget instanceof HTMLAnchorElement && focusTarget.href === "") {
2234
+ return false;
2235
+ }
2236
+ return typeof focusTarget.tabIndex === "number" && focusTarget.tabIndex !== -1;
2237
+ }
2238
+ function focusDelegate(focusTarget) {
2239
+ if (focusTarget.shadowRoot && focusTarget.shadowRoot.delegatesFocus !== true) {
2240
+ return null;
2241
+ }
2242
+ let whereToLook = focusTarget;
2243
+ if (whereToLook.shadowRoot) {
2244
+ whereToLook = whereToLook.shadowRoot;
2245
+ }
2246
+ let autoFocusDelegate = whereToLook.querySelector("[autofocus]");
2247
+ if (autoFocusDelegate) {
2248
+ return autoFocusDelegate;
2249
+ } else {
2250
+ const slots = whereToLook.querySelectorAll("slot");
2251
+ for (const slot of slots) {
2252
+ const assignedElements = slot.assignedElements({ flatten: true });
2253
+ for (const el of assignedElements) {
2254
+ if (el.hasAttribute("autofocus")) {
2255
+ return el;
2256
+ } else {
2257
+ autoFocusDelegate = el.querySelector("[autofocus]");
2258
+ if (autoFocusDelegate) {
2259
+ return autoFocusDelegate;
2260
+ }
2261
+ }
2262
+ }
2263
+ }
2264
+ }
2265
+ const walker = focusTarget.ownerDocument.createTreeWalker(
2266
+ whereToLook,
2267
+ NodeFilter.SHOW_ELEMENT
2268
+ );
2269
+ let descendant = walker.currentNode;
2270
+ while (descendant) {
2271
+ if (isFocusable(descendant)) {
2272
+ return descendant;
2273
+ }
2274
+ descendant = walker.nextNode();
2275
+ }
2276
+ }
2277
+ function popoverFocusingSteps(subject) {
2278
+ focusDelegate(subject)?.focus();
2279
+ }
2280
+ var previouslyFocusedElements = /* @__PURE__ */ new WeakMap();
2281
+ function showPopover(element) {
2282
+ if (!checkPopoverValidity(element, false)) {
2283
+ return;
2284
+ }
2285
+ const document2 = element.ownerDocument;
2286
+ if (!element.dispatchEvent(
2287
+ new ToggleEvent("beforetoggle", {
2288
+ cancelable: true,
2289
+ oldState: "closed",
2290
+ newState: "open"
2291
+ })
2292
+ )) {
2293
+ return;
2294
+ }
2295
+ if (!checkPopoverValidity(element, false)) {
2296
+ return;
2297
+ }
2298
+ let shouldRestoreFocus = false;
2299
+ if (element.popover === "auto") {
2300
+ const originalType = element.getAttribute("popover");
2301
+ const ancestor = topMostPopoverAncestor(element) || document2;
2302
+ hideAllPopoversUntil(ancestor, false, true);
2303
+ if (originalType !== element.getAttribute("popover") || !checkPopoverValidity(element, false)) {
2304
+ return;
2305
+ }
2306
+ }
2307
+ if (!topMostAutoPopover(document2)) {
2308
+ shouldRestoreFocus = true;
2309
+ }
2310
+ previouslyFocusedElements.delete(element);
2311
+ const originallyFocusedElement = document2.activeElement;
2312
+ element.classList.add(":popover-open");
2313
+ visibilityState.set(element, "showing");
2314
+ if (!topLayerElements.has(document2)) {
2315
+ topLayerElements.set(document2, /* @__PURE__ */ new Set());
2316
+ }
2317
+ topLayerElements.get(document2).add(element);
2318
+ popoverFocusingSteps(element);
2319
+ if (element.popover === "auto") {
2320
+ if (!autoPopoverList.has(document2)) {
2321
+ autoPopoverList.set(document2, /* @__PURE__ */ new Set());
2322
+ }
2323
+ autoPopoverList.get(document2).add(element);
2324
+ setInvokerAriaExpanded(popoverInvoker.get(element), true);
2325
+ }
2326
+ if (shouldRestoreFocus && originallyFocusedElement && element.popover === "auto") {
2327
+ previouslyFocusedElements.set(element, originallyFocusedElement);
2328
+ }
2329
+ queuePopoverToggleEventTask(element, "closed", "open");
2330
+ }
2331
+ function hidePopover(element, focusPreviousElement = false, fireEvents = false) {
2332
+ if (!checkPopoverValidity(element, true)) {
2333
+ return;
2334
+ }
2335
+ const document2 = element.ownerDocument;
2336
+ if (element.popover === "auto") {
2337
+ hideAllPopoversUntil(element, focusPreviousElement, fireEvents);
2338
+ if (!checkPopoverValidity(element, true)) {
2339
+ return;
2340
+ }
2341
+ }
2342
+ setInvokerAriaExpanded(popoverInvoker.get(element), false);
2343
+ popoverInvoker.delete(element);
2344
+ if (fireEvents) {
2345
+ element.dispatchEvent(
2346
+ new ToggleEvent("beforetoggle", {
2347
+ oldState: "open",
2348
+ newState: "closed"
2349
+ })
2350
+ );
2351
+ if (!checkPopoverValidity(element, true)) {
2352
+ return;
2353
+ }
2354
+ }
2355
+ topLayerElements.get(document2)?.delete(element);
2356
+ autoPopoverList.get(document2)?.delete(element);
2357
+ element.classList.remove(":popover-open");
2358
+ visibilityState.set(element, "hidden");
2359
+ if (fireEvents) {
2360
+ queuePopoverToggleEventTask(element, "open", "closed");
2361
+ }
2362
+ const previouslyFocusedElement = previouslyFocusedElements.get(element);
2363
+ if (previouslyFocusedElement) {
2364
+ previouslyFocusedElements.delete(element);
2365
+ if (focusPreviousElement) {
2366
+ previouslyFocusedElement.focus();
2367
+ }
2368
+ }
2369
+ }
2370
+ function closeAllOpenPopovers(document2, focusPreviousElement = false, fireEvents = false) {
2371
+ let popover = topMostAutoPopover(document2);
2372
+ while (popover) {
2373
+ hidePopover(popover, focusPreviousElement, fireEvents);
2374
+ popover = topMostAutoPopover(document2);
2375
+ }
2376
+ }
2377
+ function hideAllPopoversUntil(endpoint, focusPreviousElement, fireEvents) {
2378
+ const document2 = endpoint.ownerDocument || endpoint;
2379
+ if (endpoint instanceof Document) {
2380
+ return closeAllOpenPopovers(document2, focusPreviousElement, fireEvents);
2381
+ }
2382
+ let lastToHide = null;
2383
+ let foundEndpoint = false;
2384
+ for (const popover of autoPopoverList.get(document2) || []) {
2385
+ if (popover === endpoint) {
2386
+ foundEndpoint = true;
2387
+ } else if (foundEndpoint) {
2388
+ lastToHide = popover;
2389
+ break;
2390
+ }
2391
+ }
2392
+ if (!foundEndpoint) {
2393
+ return closeAllOpenPopovers(document2, focusPreviousElement, fireEvents);
2394
+ }
2395
+ while (lastToHide && getPopoverVisibilityState(lastToHide) === "showing" && autoPopoverList.get(document2)?.size) {
2396
+ hidePopover(lastToHide, focusPreviousElement, fireEvents);
2397
+ }
2398
+ }
2399
+ var popoverPointerDownTargets = /* @__PURE__ */ new WeakMap();
2400
+ function lightDismissOpenPopovers(event) {
2401
+ if (!event.isTrusted) return;
2402
+ const target = event.composedPath()[0];
2403
+ if (!target) return;
2404
+ const document2 = target.ownerDocument;
2405
+ const topMostPopover = topMostAutoPopover(document2);
2406
+ if (!topMostPopover) return;
2407
+ const ancestor = topMostClickedPopover(target);
2408
+ if (ancestor && event.type === "pointerdown") {
2409
+ popoverPointerDownTargets.set(document2, ancestor);
2410
+ } else if (event.type === "pointerup") {
2411
+ const sameTarget = popoverPointerDownTargets.get(document2) === ancestor;
2412
+ popoverPointerDownTargets.delete(document2);
2413
+ if (sameTarget) {
2414
+ hideAllPopoversUntil(ancestor || document2, false, true);
2415
+ }
2416
+ }
2417
+ }
2418
+ var initialAriaExpandedValue = /* @__PURE__ */ new WeakMap();
2419
+ function setInvokerAriaExpanded(el, force = false) {
2420
+ if (!el) return;
2421
+ if (!initialAriaExpandedValue.has(el)) {
2422
+ initialAriaExpandedValue.set(el, el.getAttribute("aria-expanded"));
2423
+ }
2424
+ const popover = el.popoverTargetElement;
2425
+ if (popover instanceof HTMLElement && popover.popover === "auto") {
2426
+ el.setAttribute("aria-expanded", String(force));
2427
+ } else {
2428
+ const initialValue = initialAriaExpandedValue.get(el);
2429
+ if (!initialValue) {
2430
+ el.removeAttribute("aria-expanded");
2431
+ } else {
2432
+ el.setAttribute("aria-expanded", initialValue);
2433
+ }
2434
+ }
2435
+ }
2436
+
2437
+ // src/popover.ts
2438
+ var ShadowRoot2 = globalThis.ShadowRoot || function() {
2439
+ };
2440
+ function isSupported() {
2441
+ return typeof HTMLElement !== "undefined" && typeof HTMLElement.prototype === "object" && "popover" in HTMLElement.prototype;
2442
+ }
2443
+ function patchSelectorFn(object, name, mapper) {
2444
+ const original = object[name];
2445
+ Object.defineProperty(object, name, {
2446
+ value(selector) {
2447
+ return original.call(this, mapper(selector));
2448
+ }
2449
+ });
2450
+ }
2451
+ var nonEscapedPopoverSelector = /(^|[^\\]):popover-open\b/g;
2452
+ function hasLayerSupport() {
2453
+ return typeof globalThis.CSSLayerBlockRule === "function";
2454
+ }
2455
+ function getStyles() {
2456
+ const useLayer = hasLayerSupport();
2457
+ return `
2458
+ ${useLayer ? "@layer popover-polyfill {" : ""}
1985
2459
  :where([popover]) {
1986
2460
  position: fixed;
1987
2461
  z-index: 2147483647;
@@ -1999,6 +2473,14 @@ const computePosition = (reference, floating, options) => {
1999
2473
  margin: auto;
2000
2474
  }
2001
2475
 
2476
+ :where([popover]:not(.\\:popover-open)) {
2477
+ display: none;
2478
+ }
2479
+
2480
+ :where(dialog[popover].\\:popover-open) {
2481
+ display: block;
2482
+ }
2483
+
2002
2484
  :where(dialog[popover][open]) {
2003
2485
  display: revert;
2004
2486
  }
@@ -2033,21 +2515,233 @@ const computePosition = (reference, floating, options) => {
2033
2515
  bottom: 0;
2034
2516
  }
2035
2517
  }
2036
-
2037
- :where([popover]:not(.\\:popover-open)) {
2038
- display: none;
2518
+ ${useLayer ? "}" : ""}
2519
+ `;
2520
+ }
2521
+ var popoverStyleSheet = null;
2522
+ function injectStyles(root) {
2523
+ const styles = getStyles();
2524
+ if (popoverStyleSheet === null) {
2525
+ try {
2526
+ popoverStyleSheet = new CSSStyleSheet();
2527
+ popoverStyleSheet.replaceSync(styles);
2528
+ } catch {
2529
+ popoverStyleSheet = false;
2530
+ }
2531
+ }
2532
+ if (popoverStyleSheet === false) {
2533
+ const sheet = document.createElement("style");
2534
+ sheet.textContent = styles;
2535
+ if (root instanceof Document) {
2536
+ root.head.prepend(sheet);
2537
+ } else {
2538
+ root.prepend(sheet);
2539
+ }
2540
+ } else {
2541
+ root.adoptedStyleSheets = [popoverStyleSheet, ...root.adoptedStyleSheets];
2542
+ }
2543
+ }
2544
+ function apply() {
2545
+ if (typeof window === "undefined") return;
2546
+ window.ToggleEvent = window.ToggleEvent || ToggleEvent;
2547
+ function rewriteSelector(selector) {
2548
+ if (selector?.includes(":popover-open")) {
2549
+ selector = selector.replace(
2550
+ nonEscapedPopoverSelector,
2551
+ "$1.\\:popover-open"
2552
+ );
2553
+ }
2554
+ return selector;
2555
+ }
2556
+ patchSelectorFn(Document.prototype, "querySelector", rewriteSelector);
2557
+ patchSelectorFn(Document.prototype, "querySelectorAll", rewriteSelector);
2558
+ patchSelectorFn(Element.prototype, "querySelector", rewriteSelector);
2559
+ patchSelectorFn(Element.prototype, "querySelectorAll", rewriteSelector);
2560
+ patchSelectorFn(Element.prototype, "matches", rewriteSelector);
2561
+ patchSelectorFn(Element.prototype, "closest", rewriteSelector);
2562
+ patchSelectorFn(
2563
+ DocumentFragment.prototype,
2564
+ "querySelectorAll",
2565
+ rewriteSelector
2566
+ );
2567
+ Object.defineProperties(HTMLElement.prototype, {
2568
+ popover: {
2569
+ enumerable: true,
2570
+ configurable: true,
2571
+ get() {
2572
+ if (!this.hasAttribute("popover")) return null;
2573
+ const value = (this.getAttribute("popover") || "").toLowerCase();
2574
+ if (value === "" || value == "auto") return "auto";
2575
+ return "manual";
2576
+ },
2577
+ set(value) {
2578
+ if (value === null) {
2579
+ this.removeAttribute("popover");
2580
+ } else {
2581
+ this.setAttribute("popover", value);
2582
+ }
2583
+ }
2584
+ },
2585
+ showPopover: {
2586
+ enumerable: true,
2587
+ configurable: true,
2588
+ value() {
2589
+ showPopover(this);
2590
+ }
2591
+ },
2592
+ hidePopover: {
2593
+ enumerable: true,
2594
+ configurable: true,
2595
+ value() {
2596
+ hidePopover(this, true, true);
2597
+ }
2598
+ },
2599
+ togglePopover: {
2600
+ enumerable: true,
2601
+ configurable: true,
2602
+ value(force) {
2603
+ if (visibilityState.get(this) === "showing" && force === void 0 || force === false) {
2604
+ hidePopover(this, true, true);
2605
+ } else if (force === void 0 || force === true) {
2606
+ showPopover(this);
2607
+ }
2608
+ }
2609
+ }
2610
+ });
2611
+ const originalAttachShadow = Element.prototype.attachShadow;
2612
+ if (originalAttachShadow) {
2613
+ Object.defineProperties(Element.prototype, {
2614
+ attachShadow: {
2615
+ enumerable: true,
2616
+ configurable: true,
2617
+ writable: true,
2618
+ value(options) {
2619
+ const shadowRoot = originalAttachShadow.call(this, options);
2620
+ injectStyles(shadowRoot);
2621
+ return shadowRoot;
2622
+ }
2623
+ }
2624
+ });
2039
2625
  }
2040
- `,E=null;function I(e){if(E===null)try{E=new CSSStyleSheet,E.replaceSync(C);}catch{E=!1;}if(E===!1){let t=document.createElement("style");t.textContent=C,e instanceof Document?e.head.prepend(t):e.prepend(t);}else e.adoptedStyleSheets=[E,...e.adoptedStyleSheets];}function K(){window.ToggleEvent=window.ToggleEvent||c;function e(n){return n?.includes(":popover-open")&&(n=n.replace(J,"$1.\\:popover-open")),n}f(Document.prototype,"querySelector",e),f(Document.prototype,"querySelectorAll",e),f(Element.prototype,"querySelector",e),f(Element.prototype,"querySelectorAll",e),f(Element.prototype,"matches",e),f(Element.prototype,"closest",e),f(DocumentFragment.prototype,"querySelectorAll",e),f(DocumentFragment.prototype,"querySelectorAll",e),Object.defineProperties(HTMLElement.prototype,{popover:{enumerable:!0,configurable:!0,get(){if(!this.hasAttribute("popover"))return null;let n=(this.getAttribute("popover")||"").toLowerCase();return n===""||n=="auto"?"auto":"manual"},set(n){this.setAttribute("popover",n);}},showPopover:{enumerable:!0,configurable:!0,value(){S(this);}},hidePopover:{enumerable:!0,configurable:!0,value(){m(this,!0,!0);}},togglePopover:{enumerable:!0,configurable:!0,value(n){h.get(this)==="showing"&&n===void 0||n===!1?m(this,!0,!0):(n===void 0||n===!0)&&S(this);}}});let t=Element.prototype.attachShadow;t&&Object.defineProperties(Element.prototype,{attachShadow:{enumerable:!0,configurable:!0,writable:!0,value(n){let s=t.call(this,n);return I(s),s}}});let o=HTMLElement.prototype.attachInternals;o&&Object.defineProperties(HTMLElement.prototype,{attachInternals:{enumerable:!0,configurable:!0,writable:!0,value(){let n=o.call(this);return n.shadowRoot&&I(n.shadowRoot),n}}});let r=new WeakMap;function i(n){Object.defineProperties(n.prototype,{popoverTargetElement:{enumerable:!0,configurable:!0,set(s){if(s===null)this.removeAttribute("popovertarget"),r.delete(this);else if(s instanceof Element)this.setAttribute("popovertarget",""),r.set(this,s);else throw new TypeError("popoverTargetElement must be an element or null")},get(){if(this.localName!=="button"&&this.localName!=="input"||this.localName==="input"&&this.type!=="reset"&&this.type!=="image"&&this.type!=="button"||this.disabled||this.form&&this.type==="submit")return null;let s=r.get(this);if(s&&s.isConnected)return s;if(s&&!s.isConnected)return r.delete(this),null;let u=v(this),w=this.getAttribute("popovertarget");return (u instanceof Document||u instanceof B)&&w&&u.getElementById(w)||null}},popoverTargetAction:{enumerable:!0,configurable:!0,get(){let s=(this.getAttribute("popovertargetaction")||"").toLowerCase();return s==="show"||s==="hide"?s:"toggle"},set(s){this.setAttribute("popovertargetaction",s);}}});}i(HTMLButtonElement),i(HTMLInputElement);let l=n=>{if(!n.isTrusted)return;let s=n.composedPath()[0];if(!(s instanceof Element)||s?.shadowRoot)return;let u=v(s);if(!(u instanceof B||u instanceof Document))return;let w=s.closest("[popovertargetaction],[popovertarget]");if(w){O(w),n.preventDefault();return}},a=n=>{let s=n.key,u=n.target;!n.defaultPrevented&&u&&(s==="Escape"||s==="Esc")&&T(u.ownerDocument,!0,!0);};(n=>{n.addEventListener("click",l),n.addEventListener("keydown",a),n.addEventListener("pointerdown",x),n.addEventListener("pointerup",x);})(document),I(document);}j()||K();})();
2626
+ const originalAttachInternals = HTMLElement.prototype.attachInternals;
2627
+ if (originalAttachInternals) {
2628
+ Object.defineProperties(HTMLElement.prototype, {
2629
+ attachInternals: {
2630
+ enumerable: true,
2631
+ configurable: true,
2632
+ writable: true,
2633
+ value() {
2634
+ const internals = originalAttachInternals.call(this);
2635
+ if (internals.shadowRoot) {
2636
+ injectStyles(internals.shadowRoot);
2637
+ }
2638
+ return internals;
2639
+ }
2640
+ }
2641
+ });
2642
+ }
2643
+ const popoverTargetAssociatedElements = /* @__PURE__ */ new WeakMap();
2644
+ function applyPopoverInvokerElementMixin(ElementClass) {
2645
+ Object.defineProperties(ElementClass.prototype, {
2646
+ popoverTargetElement: {
2647
+ enumerable: true,
2648
+ configurable: true,
2649
+ set(targetElement) {
2650
+ if (targetElement === null) {
2651
+ this.removeAttribute("popovertarget");
2652
+ popoverTargetAssociatedElements.delete(this);
2653
+ } else if (!(targetElement instanceof Element)) {
2654
+ throw new TypeError(
2655
+ `popoverTargetElement must be an element or null`
2656
+ );
2657
+ } else {
2658
+ this.setAttribute("popovertarget", "");
2659
+ popoverTargetAssociatedElements.set(this, targetElement);
2660
+ }
2661
+ },
2662
+ get() {
2663
+ if (this.localName !== "button" && this.localName !== "input") {
2664
+ return null;
2665
+ }
2666
+ if (this.localName === "input" && this.type !== "reset" && this.type !== "image" && this.type !== "button") {
2667
+ return null;
2668
+ }
2669
+ if (this.disabled) {
2670
+ return null;
2671
+ }
2672
+ if (this.form && this.type === "submit") {
2673
+ return null;
2674
+ }
2675
+ const targetElement = popoverTargetAssociatedElements.get(this);
2676
+ if (targetElement && targetElement.isConnected) {
2677
+ return targetElement;
2678
+ } else if (targetElement && !targetElement.isConnected) {
2679
+ popoverTargetAssociatedElements.delete(this);
2680
+ return null;
2681
+ }
2682
+ const root = getRootNode(this);
2683
+ const idref = this.getAttribute("popovertarget");
2684
+ if ((root instanceof Document || root instanceof ShadowRoot2) && idref) {
2685
+ return root.getElementById(idref) || null;
2686
+ }
2687
+ return null;
2688
+ }
2689
+ },
2690
+ popoverTargetAction: {
2691
+ enumerable: true,
2692
+ configurable: true,
2693
+ get() {
2694
+ const value = (this.getAttribute("popovertargetaction") || "").toLowerCase();
2695
+ if (value === "show" || value === "hide") return value;
2696
+ return "toggle";
2697
+ },
2698
+ set(value) {
2699
+ this.setAttribute("popovertargetaction", value);
2700
+ }
2701
+ }
2702
+ });
2703
+ }
2704
+ applyPopoverInvokerElementMixin(HTMLButtonElement);
2705
+ applyPopoverInvokerElementMixin(HTMLInputElement);
2706
+ const handleInvokerActivation = (event) => {
2707
+ const composedPath = event.composedPath();
2708
+ const target = composedPath[0];
2709
+ if (!(target instanceof Element) || target?.shadowRoot) {
2710
+ return;
2711
+ }
2712
+ const root = getRootNode(target);
2713
+ if (!(root instanceof ShadowRoot2 || root instanceof Document)) {
2714
+ return;
2715
+ }
2716
+ const invoker = composedPath.find(
2717
+ (el) => el.matches?.("[popovertargetaction],[popovertarget]")
2718
+ );
2719
+ if (invoker) {
2720
+ popoverTargetAttributeActivationBehavior(invoker);
2721
+ event.preventDefault();
2722
+ return;
2723
+ }
2724
+ };
2725
+ const onKeydown = (event) => {
2726
+ const key = event.key;
2727
+ const target = event.target;
2728
+ if (!event.defaultPrevented && target && (key === "Escape" || key === "Esc")) {
2729
+ hideAllPopoversUntil(target.ownerDocument, true, true);
2730
+ }
2731
+ };
2732
+ const addEventListeners = (root) => {
2733
+ root.addEventListener("click", handleInvokerActivation);
2734
+ root.addEventListener("keydown", onKeydown);
2735
+ root.addEventListener("pointerdown", lightDismissOpenPopovers);
2736
+ root.addEventListener("pointerup", lightDismissOpenPopovers);
2737
+ };
2738
+ addEventListeners(document);
2739
+ injectStyles(document);
2740
+ }
2041
2741
 
2042
- const postPopovercontainerCss = "@layer polyfill{@supports not selector(:popover-open){[popover]:not(.\\:popover-open){display:none}}}:where(post-popovercontainer){box-shadow:.5px 3px 4px rgba(0,0,0,.1),2px 4px 10px 4px rgba(0,0,0,.12);position:fixed;z-index:1060;width:max-content;margin:0;padding:0;box-sizing:border-box;color:var(--post-contrast-color);background-color:rgb(var(--post-bg-rgb));border:2px solid rgba(0,0,0,0);border-radius:4px;overflow:visible}:where(post-popovercontainer)[tooltip]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:where(post-popovercontainer) .arrow{position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:where(post-popovercontainer) .arrow.top{border-left:2px solid rgba(0,0,0,0);border-top:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.right{border-right:2px solid rgba(0,0,0,0);border-top:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.left{border-left:2px solid rgba(0,0,0,0);border-bottom:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.bottom{border-right:2px solid rgba(0,0,0,0);border-bottom:2px solid rgba(0,0,0,0)}";
2742
+ const postPopovercontainerCss = "@keyframes popIn{from{transform:scale(0.9);opacity:0;transition-property:transform,opacity,overlay,display;transition-behavior:allow-discrete;transition-duration:var(--post-transition-duration, 0.35s);transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1)}to{opacity:1;transform:scale(1)}}@layer polyfill{@supports not selector(:popover-open){[popover]:not(.\\:popover-open){display:none}}}:where(post-popovercontainer){background-color:rgba(0,0,0,0);border:rgba(0,0,0,0);position:fixed;margin:0;padding:0;overflow:visible}:where(post-popovercontainer)>div{box-shadow:var(--post-device-elevation-300);width:max-content;max-width:100%;color:var(--post-current-palette-fg);background-color:var(--post-current-palette-bg);border:2px solid rgba(0,0,0,0);border-radius:4px}:where(post-popovercontainer)>div.animate-pop-in{animation:popIn .25s ease-out forwards}:where(post-popovercontainer)[tooltip]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}:where(post-popovercontainer)[safe-space]::after{content:\"\";position:fixed;inset:0;z-index:-1;pointer-events:auto}:where(post-popovercontainer)[safe-space=triangle]::after{clip-path:polygon(var(--post-safe-space-cursor-x, 0) var(--post-safe-space-cursor-y, 0), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)))}:where(post-popovercontainer)[safe-space=trapezoid]::after{clip-path:polygon(var(--post-safe-space-trigger-x-start, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-start, 0)), var(--post-safe-space-trigger-x-end, var(--post-safe-space-trigger-x, 0)) var(--post-safe-space-trigger-y, var(--post-safe-space-trigger-y-end, 0)), var(--post-safe-space-popover-x-end, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-end, 0)), var(--post-safe-space-popover-x-start, var(--post-safe-space-popover-x, 0)) var(--post-safe-space-popover-y, var(--post-safe-space-popover-y-start, 0)))}:where(post-popovercontainer):not(:has(.arrow))>div{box-shadow:var(--post-device-elevation-300)}:where(post-popovercontainer):has(.arrow)>div{filter:drop-shadow(1px 2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(2px 4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(4px 8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.top)>div{filter:drop-shadow(0px -2px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(0px -4px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(0px -8px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.left)>div{filter:drop-shadow(-2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(-4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(-8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer):has(.arrow.right)>div{filter:drop-shadow(2px 0px 3px hsla(216, 9%, 11%, 0.15)) drop-shadow(4px 0px 6px hsla(225, 17%, 9%, 0.15)) drop-shadow(8px 0px 12px hsla(225, 7%, 11%, 0.15))}:where(post-popovercontainer) .arrow{position:absolute;width:.5825rem;height:.5825rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}:where(post-popovercontainer) .arrow.top{border-block-start:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.right{border-block-start:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.left{border-block-end:2px solid rgba(0,0,0,0);border-inline-start:2px solid rgba(0,0,0,0)}:where(post-popovercontainer) .arrow.bottom{border-block-end:2px solid rgba(0,0,0,0);border-inline-end:2px solid rgba(0,0,0,0)}";
2043
2743
  const PostPopovercontainerStyle0 = postPopovercontainerCss;
2044
2744
 
2045
- const SIDE_MAP = {
2046
- top: 'bottom',
2047
- right: 'left',
2048
- bottom: 'top',
2049
- left: 'right',
2050
- };
2051
2745
  const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopovercontainer extends HTMLElement$1 {
2052
2746
  constructor() {
2053
2747
  super();
@@ -2055,19 +2749,36 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2055
2749
  this.postToggle = createEvent(this, "postToggle", 7);
2056
2750
  this.placement = 'top';
2057
2751
  this.edgeGap = 8;
2752
+ this.animation = null;
2058
2753
  this.arrow = false;
2754
+ this.manualClose = false;
2755
+ this.safeSpace = undefined;
2756
+ }
2757
+ /**
2758
+ * Updates cursor position for safe space feature when popover is open.
2759
+ * Sets CSS custom properties for dynamic styling of safe area.
2760
+ * @param event MouseEvent with cursor position
2761
+ */
2762
+ mouseTrackingHandler(event) {
2763
+ this.host.style.setProperty('--post-safe-space-cursor-x', `${event.clientX}px`);
2764
+ this.host.style.setProperty('--post-safe-space-cursor-y', `${event.clientY}px`);
2765
+ }
2766
+ connectedCallback() {
2767
+ if (IS_BROWSER && !isSupported()) {
2768
+ apply();
2769
+ }
2059
2770
  }
2060
2771
  componentDidLoad() {
2061
- this.host.setAttribute('popover', '');
2062
2772
  this.host.addEventListener('beforetoggle', this.handleToggle.bind(this));
2063
2773
  }
2064
2774
  disconnectedCallback() {
2065
- if (typeof this.clearAutoUpdate === 'function')
2775
+ if (typeof this.clearAutoUpdate === 'function') {
2066
2776
  this.clearAutoUpdate();
2777
+ }
2067
2778
  }
2068
2779
  /**
2069
- * Programmatically display the tooltip
2070
- * @param target An element with [data-tooltip-target="id"] where the tooltip should be shown
2780
+ * Programmatically display the popovercontainer
2781
+ * @param target An element with [data-popover-target="id"] where the popovercontainer should be shown
2071
2782
  */
2072
2783
  async show(target) {
2073
2784
  if (!this.toggleTimeoutId) {
@@ -2077,7 +2788,7 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2077
2788
  }
2078
2789
  }
2079
2790
  /**
2080
- * Programmatically hide this tooltip
2791
+ * Programmatically hide the popovercontainer
2081
2792
  */
2082
2793
  async hide() {
2083
2794
  if (!this.toggleTimeoutId) {
@@ -2086,8 +2797,8 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2086
2797
  }
2087
2798
  }
2088
2799
  /**
2089
- * Toggle tooltip display
2090
- * @param target An element with [data-tooltip-target="id"] where the tooltip should be shown
2800
+ * Toggle popovercontainer display
2801
+ * @param target An element with [data-popover-target="id"] where the popovercontainer should be shown
2091
2802
  * @param force Pass true to always show or false to always hide
2092
2803
  */
2093
2804
  async toggle(target, force) {
@@ -2098,11 +2809,11 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2098
2809
  this.host.togglePopover(force);
2099
2810
  this.toggleTimeoutId = null;
2100
2811
  }
2101
- return this.host.matches(':where(:popover-open, .popover-open');
2812
+ return this.host.matches(':where(:popover-open, .popover-open)');
2102
2813
  }
2103
2814
  /**
2104
- * Start or stop auto updates based on tooltip events.
2105
- * Tooltips can be closed or opened with other methods than class members,
2815
+ * Start or stop auto updates based on popovercontainer events.
2816
+ * Popovercontainers can be closed or opened with other methods than class members,
2106
2817
  * therefore listening to the toggle event is safer for cleaning up.
2107
2818
  * @param e ToggleEvent
2108
2819
  */
@@ -2111,29 +2822,63 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2111
2822
  const isOpen = e.newState === 'open';
2112
2823
  if (isOpen) {
2113
2824
  this.startAutoupdates();
2825
+ if (this.safeSpace)
2826
+ window.addEventListener('mousemove', this.mouseTrackingHandler.bind(this));
2114
2827
  }
2115
2828
  else {
2116
2829
  if (typeof this.clearAutoUpdate === 'function')
2117
2830
  this.clearAutoUpdate();
2831
+ if (this.safeSpace)
2832
+ window.removeEventListener('mousemove', this.mouseTrackingHandler.bind(this));
2118
2833
  }
2119
2834
  this.postToggle.emit(isOpen);
2120
2835
  }
2121
2836
  /**
2122
2837
  * Start listening for DOM updates, scroll events etc. that have
2123
- * an influence on tooltip positioning
2838
+ * an influence on popovercontainer positioning
2124
2839
  */
2125
2840
  startAutoupdates() {
2126
2841
  this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.calculatePosition.bind(this));
2127
2842
  }
2843
+ /**
2844
+ * Retrieves the dynamic height of the header
2845
+ */
2846
+ getHeaderHeight() {
2847
+ const header = document.querySelector('post-header');
2848
+ return header ? parseFloat(getComputedStyle(header).height) : 0;
2849
+ }
2128
2850
  async calculatePosition() {
2851
+ const { x, y, middlewareData, placement } = await this.computeMainPosition();
2852
+ const currentPlacement = placement.split('-')[0];
2853
+ // Position popover
2854
+ this.host.style.left = `${x}px`;
2855
+ this.host.style.top = `${y}px`;
2856
+ // Position arrow if enabled
2857
+ if (this.arrow && middlewareData.arrow) {
2858
+ const { x: arrowX, y: arrowY } = middlewareData.arrow;
2859
+ const staticSide = PostPopovercontainer.STATIC_SIDES[currentPlacement];
2860
+ if (staticSide) {
2861
+ Object.assign(this.arrowRef.style, {
2862
+ left: arrowX ? `${arrowX}px` : '',
2863
+ top: arrowY ? `${arrowY}px` : '',
2864
+ [staticSide]: '-7px',
2865
+ });
2866
+ }
2867
+ }
2868
+ // Handle safe space if enabled
2869
+ if (this.safeSpace && this.eventTarget) {
2870
+ await this.updateSafeSpaceBoundaries(currentPlacement);
2871
+ }
2872
+ }
2873
+ async computeMainPosition() {
2129
2874
  const gap = this.edgeGap;
2130
2875
  const middleware = [
2131
- flip(),
2876
+ flip({
2877
+ padding: this.getHeaderHeight(),
2878
+ }),
2132
2879
  inline(),
2133
2880
  shift({
2134
2881
  padding: gap,
2135
- // Prevents shifting away from the anchor too far, while shifting as far as possible
2136
- // https://floating-ui.com/docs/shift#limiter
2137
2882
  limiter: limitShift({
2138
2883
  offset: 32,
2139
2884
  }),
@@ -2145,51 +2890,116 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2145
2890
  });
2146
2891
  },
2147
2892
  }),
2148
- offset(this.arrow ? gap + 4 : gap), // 4px outside of element to account for focus outline + ~arrow size
2893
+ offset(this.arrow ? gap + 4 : gap),
2149
2894
  ];
2150
2895
  if (this.arrow) {
2151
2896
  middleware.push(arrow({ element: this.arrowRef, padding: gap }));
2152
2897
  }
2153
- const { x, y, middlewareData, placement: currentPlacement, } = await computePosition(this.eventTarget, this.host, {
2898
+ return computePosition(this.eventTarget, this.host, {
2154
2899
  placement: this.placement || 'top',
2155
2900
  strategy: 'fixed',
2156
2901
  middleware,
2157
2902
  });
2158
- // Tooltip
2159
- this.host.style.left = `${x}px`;
2160
- this.host.style.top = `${y}px`;
2161
- // Arrow
2162
- if (this.arrow) {
2163
- // Tutorial: https://codesandbox.io/s/mystifying-kare-ee3hmh?file=/src/index.js
2164
- const side = currentPlacement.split('-')[0];
2165
- const { x: arrowX, y: arrowY } = middlewareData.arrow;
2166
- const staticSide = SIDE_MAP[side];
2167
- const offsetBorderLineJoin = 2;
2168
- Object.assign(this.arrowRef.style, {
2169
- top: arrowY ? `${arrowY}px` : '',
2170
- left: arrowX ? `${arrowX}px` : '',
2171
- [staticSide]: `${-this.arrowRef.offsetWidth / 2 - offsetBorderLineJoin}px`,
2172
- });
2173
- // Add position as a class to be able to style arrow for HCM
2174
- this.arrowRef.classList.remove(...Object.values(SIDE_MAP));
2175
- this.arrowRef.classList.add(staticSide);
2903
+ }
2904
+ async updateSafeSpaceBoundaries(currentPlacement) {
2905
+ const targetRect = this.eventTarget.getBoundingClientRect();
2906
+ const popoverRect = this.host.getBoundingClientRect();
2907
+ const isVertical = currentPlacement === 'top' || currentPlacement === 'bottom';
2908
+ // Helper function to get positioning data based on placement
2909
+ const getPositioningData = (placement, popoverRect, targetRect) => {
2910
+ if (placement === 'top' || placement === 'bottom') {
2911
+ return {
2912
+ popover: {
2913
+ y: placement === 'top' ? popoverRect.bottom : popoverRect.top,
2914
+ xStart: popoverRect.left,
2915
+ xEnd: popoverRect.right,
2916
+ },
2917
+ trigger: {
2918
+ y: placement === 'top' ? targetRect.top : targetRect.bottom,
2919
+ xStart: targetRect.left,
2920
+ xEnd: targetRect.right,
2921
+ },
2922
+ };
2923
+ }
2924
+ else {
2925
+ // left or right
2926
+ return {
2927
+ popover: {
2928
+ x: placement === 'left' ? popoverRect.right : popoverRect.left,
2929
+ yStart: popoverRect.top,
2930
+ yEnd: popoverRect.bottom,
2931
+ },
2932
+ trigger: {
2933
+ x: placement === 'left' ? targetRect.left : targetRect.right,
2934
+ yStart: targetRect.top,
2935
+ yEnd: targetRect.bottom,
2936
+ },
2937
+ };
2938
+ }
2939
+ };
2940
+ const posData = getPositioningData(currentPlacement, popoverRect, targetRect);
2941
+ // Clear previous values
2942
+ PostPopovercontainer.PROPERTIES_TO_CLEAR.forEach(prop => {
2943
+ this.host.style.removeProperty(prop);
2944
+ });
2945
+ if (isVertical) {
2946
+ // For top/bottom placement
2947
+ this.host.style.setProperty('--post-safe-space-popover-y', `${posData.popover.y}px`);
2948
+ this.host.style.setProperty('--post-safe-space-popover-x-start', `${posData.popover.xStart}px`);
2949
+ this.host.style.setProperty('--post-safe-space-popover-x-end', `${posData.popover.xEnd}px`);
2950
+ this.host.style.setProperty('--post-safe-space-trigger-y', `${posData.trigger.y}px`);
2951
+ this.host.style.setProperty('--post-safe-space-trigger-x-start', `${posData.trigger.xStart}px`);
2952
+ this.host.style.setProperty('--post-safe-space-trigger-x-end', `${posData.trigger.xEnd}px`);
2953
+ }
2954
+ else {
2955
+ // For left/right placement
2956
+ this.host.style.setProperty('--post-safe-space-popover-x', `${posData.popover.x}px`);
2957
+ this.host.style.setProperty('--post-safe-space-popover-y-start', `${posData.popover.yStart}px`);
2958
+ this.host.style.setProperty('--post-safe-space-popover-y-end', `${posData.popover.yEnd}px`);
2959
+ this.host.style.setProperty('--post-safe-space-trigger-x', `${posData.trigger.x}px`);
2960
+ this.host.style.setProperty('--post-safe-space-trigger-y-start', `${posData.trigger.yStart}px`);
2961
+ this.host.style.setProperty('--post-safe-space-trigger-y-end', `${posData.trigger.yEnd}px`);
2176
2962
  }
2177
2963
  }
2178
2964
  render() {
2179
- return (h(Host, { key: '23e391236e263f7ae7c66c994b2847bcba269b37', "data-version": version }, this.arrow && (h("span", { key: '6c6053b2fd315a5940a2c3493182249782b2492c', class: "arrow", ref: el => {
2965
+ const animationClass = this.animation ? `animate-${this.animation}` : '';
2966
+ return (h(Host, { key: '980c2d7531ef77f71ea51b069dc20bbf40cd0ac4', "data-version": version, popover: this.manualClose ? 'manual' : 'auto' }, h("div", { key: '9fa08070a5e7f864aade0dc1afc2917e54693109', class: animationClass }, this.arrow && (h("span", { key: '4700f55c721387f2d918214309e87c9057e4831f', class: "arrow", ref: el => {
2180
2967
  this.arrowRef = el;
2181
- } })), h("slot", { key: 'ff998f110f42a22e886eba398285c41d94718bab' })));
2968
+ } })), h("slot", { key: 'ec5304bc77d4f3eb91c79fb2a37d096b4d43b888' }))));
2182
2969
  }
2183
2970
  get host() { return this; }
2184
2971
  static get style() { return PostPopovercontainerStyle0; }
2185
2972
  }, [4, "post-popovercontainer", {
2186
2973
  "placement": [1],
2187
2974
  "edgeGap": [2, "edge-gap"],
2975
+ "animation": [1],
2188
2976
  "arrow": [4],
2977
+ "manualClose": [4, "manual-close"],
2978
+ "safeSpace": [513, "safe-space"],
2189
2979
  "show": [64],
2190
2980
  "hide": [64],
2191
2981
  "toggle": [64]
2192
2982
  }]);
2983
+ PostPopovercontainer.STATIC_SIDES = {
2984
+ top: 'bottom',
2985
+ right: 'left',
2986
+ bottom: 'top',
2987
+ left: 'right',
2988
+ };
2989
+ PostPopovercontainer.PROPERTIES_TO_CLEAR = [
2990
+ '--post-safe-space-popover-x',
2991
+ '--post-safe-space-popover-y',
2992
+ '--post-safe-space-popover-x-start',
2993
+ '--post-safe-space-popover-x-end',
2994
+ '--post-safe-space-popover-y-start',
2995
+ '--post-safe-space-popover-y-end',
2996
+ '--post-safe-space-trigger-x',
2997
+ '--post-safe-space-trigger-y',
2998
+ '--post-safe-space-trigger-x-start',
2999
+ '--post-safe-space-trigger-x-end',
3000
+ '--post-safe-space-trigger-y-start',
3001
+ '--post-safe-space-trigger-y-end',
3002
+ ];
2193
3003
  function defineCustomElement() {
2194
3004
  if (typeof customElements === "undefined") {
2195
3005
  return;