@swisspost/design-system-components 9.0.0 → 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 (568) 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-e1f32cce.js → index-b60129c4.js} +35 -15
  12. package/dist/cjs/index.browser-4af21c17.js +16 -0
  13. package/dist/cjs/index.cjs.js +57 -28
  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-3ed88bb9.js → package-8121f093.js} +1 -1
  17. package/dist/cjs/{post-accordion-9ef382e8.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 -6
  20. package/dist/cjs/post-accordion.cjs.entry.js +6 -4
  21. package/dist/cjs/post-avatar-a36991fb.js +145 -0
  22. package/dist/cjs/post-avatar.cjs.entry.js +14 -0
  23. package/dist/cjs/post-back-to-top-32aa9017.js +96 -0
  24. package/dist/cjs/post-back-to-top.cjs.entry.js +16 -0
  25. package/dist/cjs/post-banner-be0e8909.js +92 -0
  26. package/dist/cjs/post-banner.cjs.entry.js +20 -0
  27. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +18 -0
  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 +36 -0
  33. package/dist/cjs/{post-collapsible-trigger-1764e6dc.js → post-collapsible-trigger-f42be607.js} +62 -76
  34. package/dist/cjs/post-collapsible_2.cjs.entry.js +11 -7
  35. package/dist/cjs/post-components.cjs.js +2 -2
  36. package/dist/cjs/post-footer-5179aa17.js +38 -0
  37. package/dist/cjs/post-footer.cjs.entry.js +12 -0
  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-d78a9121.js +68 -0
  41. package/dist/cjs/post-popover-feb1e773.js +135 -0
  42. package/dist/cjs/post-popover.cjs.entry.js +4 -3
  43. package/dist/cjs/{post-rating-d5073d8d.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-97b79ecd.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-834497f2.js → post-tabs-45db2696.js} +14 -16
  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-20ebe011.js → post-tooltip-f833d51d.js} +10 -6
  55. package/dist/cjs/{post-tooltip-trigger-6f4c9748.js → post-tooltip-trigger-3ceac010.js} +17 -280
  56. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +5 -4
  57. package/dist/cjs/post-tooltip.cjs.entry.js +5 -4
  58. package/dist/cjs/slide-cd1f09b3.js +28 -0
  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 +23 -0
  62. package/dist/collection/collection-manifest.json +22 -3
  63. package/dist/collection/components/post-accordion/post-accordion.css +1 -1
  64. package/dist/collection/components/post-accordion/post-accordion.js +8 -10
  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 +30 -16
  67. package/dist/collection/components/post-avatar/post-avatar.css +1 -0
  68. package/dist/collection/components/post-avatar/post-avatar.js +233 -0
  69. package/dist/collection/components/post-back-to-top/post-back-to-top.css +1 -0
  70. package/dist/collection/components/post-back-to-top/post-back-to-top.js +127 -0
  71. package/dist/collection/components/post-banner/banner-types.js +1 -0
  72. package/dist/collection/components/post-banner/post-banner.css +1 -0
  73. package/dist/collection/components/{post-alert/post-alert.js → post-banner/post-banner.js} +44 -72
  74. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -0
  75. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +96 -0
  76. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -0
  77. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +160 -0
  78. package/dist/collection/components/post-card-control/post-card-control.css +1 -31
  79. package/dist/collection/components/post-card-control/post-card-control.js +20 -24
  80. package/dist/collection/components/post-closebutton/post-closebutton.css +1 -0
  81. package/dist/collection/components/post-closebutton/post-closebutton.js +23 -0
  82. package/dist/collection/components/post-collapsible/post-collapsible.css +1 -1
  83. package/dist/collection/components/post-collapsible/post-collapsible.js +6 -3
  84. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +43 -45
  85. package/dist/collection/components/post-footer/post-footer.css +1 -0
  86. package/dist/collection/components/post-footer/post-footer.js +75 -0
  87. package/dist/collection/components/post-header/post-header.css +1 -0
  88. package/dist/collection/components/post-header/post-header.js +320 -0
  89. package/dist/collection/components/post-icon/post-icon.js +58 -55
  90. package/dist/collection/components/post-language-option/post-language-option.css +1 -0
  91. package/dist/collection/components/post-language-option/post-language-option.js +237 -0
  92. package/dist/collection/components/post-language-switch/post-language-switch.css +1 -0
  93. package/dist/collection/components/post-language-switch/post-language-switch.js +186 -0
  94. package/dist/collection/components/post-language-switch/switch-variants.js +1 -0
  95. package/dist/collection/components/post-linkarea/post-linkarea.css +1 -0
  96. package/dist/collection/components/post-linkarea/post-linkarea.js +30 -0
  97. package/dist/collection/components/post-list/post-list.css +1 -0
  98. package/dist/collection/components/post-list/post-list.js +88 -0
  99. package/dist/collection/components/post-list-item/post-list-item.css +1 -0
  100. package/dist/collection/components/post-list-item/post-list-item.js +26 -0
  101. package/dist/collection/components/post-logo/post-logo.css +1 -1
  102. package/dist/collection/components/post-logo/post-logo.js +2 -2
  103. package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -0
  104. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +184 -0
  105. package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -0
  106. package/dist/collection/components/post-megadropdown/post-megadropdown.js +275 -0
  107. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +1 -0
  108. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +133 -0
  109. package/dist/collection/components/post-menu/post-menu.css +1 -0
  110. package/dist/collection/components/post-menu/post-menu.js +294 -0
  111. package/dist/collection/components/post-menu-item/post-menu-item.js +8 -0
  112. package/dist/collection/components/post-menu-trigger/post-menu-trigger.css +1 -0
  113. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +120 -0
  114. package/dist/collection/components/post-popover/post-popover.css +1 -31
  115. package/dist/collection/components/post-popover/post-popover.js +16 -13
  116. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -31
  117. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +39 -6
  118. package/dist/collection/components/post-rating/post-rating.css +1 -31
  119. package/dist/collection/components/post-rating/post-rating.js +1 -1
  120. package/dist/collection/components/post-tab-header/post-tab-header.css +1 -31
  121. package/dist/collection/components/post-tab-header/post-tab-header.js +6 -5
  122. package/dist/collection/components/post-tab-panel/post-tab-panel.js +4 -3
  123. package/dist/collection/components/post-tabs/post-tabs.css +1 -1
  124. package/dist/collection/components/post-tabs/post-tabs.js +7 -15
  125. package/dist/collection/components/post-tag/post-tag.css +1 -31
  126. package/dist/collection/components/post-tag/post-tag.js +2 -2
  127. package/dist/collection/components/post-togglebutton/post-togglebutton.css +1 -0
  128. package/dist/collection/components/post-togglebutton/post-togglebutton.js +74 -0
  129. package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
  130. package/dist/collection/components/post-tooltip/post-tooltip.js +6 -3
  131. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +14 -14
  132. package/dist/collection/index.js +21 -2
  133. package/dist/collection/utils/attribute-observer.js +6 -5
  134. package/dist/collection/utils/breakpoints.js +52 -0
  135. package/dist/collection/utils/component-on-ready.js +4 -4
  136. package/dist/collection/utils/debounce.js +2 -1
  137. package/dist/collection/utils/environment.js +2 -0
  138. package/dist/collection/utils/event-guard.js +43 -0
  139. package/dist/collection/utils/get-focusable-children.js +33 -0
  140. package/dist/collection/utils/get-root.js +6 -1
  141. package/dist/collection/utils/index.js +5 -0
  142. package/dist/collection/utils/is-motion-reduced.js +2 -1
  143. package/dist/collection/utils/property-checkers/check-non-empty.js +6 -2
  144. package/dist/collection/utils/property-checkers/check-one-of.js +8 -3
  145. package/dist/collection/utils/property-checkers/check-pattern.js +8 -3
  146. package/dist/collection/utils/property-checkers/check-type.js +11 -6
  147. package/dist/collection/utils/property-checkers/check-url.js +11 -6
  148. package/dist/collection/utils/property-checkers/empty-or.js +5 -2
  149. package/dist/collection/utils/sass-export.js +8 -5
  150. package/dist/components/breakpoints.js +56 -0
  151. package/dist/components/check-non-empty.js +6 -2
  152. package/dist/components/check-one-of.js +8 -3
  153. package/dist/components/check-type.js +11 -6
  154. package/dist/components/event-guard.js +45 -0
  155. package/dist/components/fade.js +6 -2
  156. package/dist/components/get-focusable-children.js +35 -0
  157. package/dist/components/get-root.js +15 -0
  158. package/dist/components/index.browser.js +14 -0
  159. package/dist/components/index.js +21 -2
  160. package/dist/components/index2.js +25 -12
  161. package/dist/components/long-press-event.js +264 -0
  162. package/dist/components/package.js +1 -1
  163. package/dist/components/post-accordion-item2.js +37 -18
  164. package/dist/components/post-accordion2.js +8 -9
  165. package/dist/components/post-avatar.d.ts +11 -0
  166. package/dist/components/post-avatar.js +6 -0
  167. package/dist/components/post-avatar2.js +170 -0
  168. package/dist/components/post-back-to-top.d.ts +11 -0
  169. package/dist/components/post-back-to-top.js +6 -0
  170. package/dist/components/post-back-to-top2.js +121 -0
  171. package/dist/components/post-banner.d.ts +11 -0
  172. package/dist/components/post-banner.js +6 -0
  173. package/dist/components/post-banner2.js +127 -0
  174. package/dist/components/post-breadcrumb-item.d.ts +11 -0
  175. package/dist/components/post-breadcrumb-item.js +6 -0
  176. package/dist/components/post-breadcrumb-item2.js +82 -0
  177. package/dist/components/post-breadcrumbs.d.ts +11 -0
  178. package/dist/components/post-breadcrumbs.js +6 -0
  179. package/dist/components/post-breadcrumbs2.js +177 -0
  180. package/dist/components/post-card-control2.js +16 -19
  181. package/dist/components/post-closebutton.d.ts +11 -0
  182. package/dist/components/post-closebutton.js +6 -0
  183. package/dist/components/post-closebutton2.js +39 -0
  184. package/dist/components/post-collapsible-trigger2.js +47 -64
  185. package/dist/components/post-collapsible2.js +17 -12
  186. package/dist/components/post-footer.d.ts +11 -0
  187. package/dist/components/post-footer.js +6 -0
  188. package/dist/components/post-footer2.js +78 -0
  189. package/dist/components/post-header.d.ts +11 -0
  190. package/dist/components/post-header.js +6 -0
  191. package/dist/components/post-header2.js +399 -0
  192. package/dist/components/post-icon2.js +59 -55
  193. package/dist/components/post-language-option.d.ts +11 -0
  194. package/dist/components/post-language-option.js +6 -0
  195. package/dist/components/post-language-option2.js +103 -0
  196. package/dist/components/post-language-switch.d.ts +11 -0
  197. package/dist/components/post-language-switch.js +6 -0
  198. package/dist/components/post-language-switch2.js +145 -0
  199. package/dist/components/post-linkarea.d.ts +11 -0
  200. package/dist/components/post-linkarea.js +6 -0
  201. package/dist/components/post-linkarea2.js +43 -0
  202. package/dist/components/post-list-item.d.ts +11 -0
  203. package/dist/components/post-list-item.js +6 -0
  204. package/dist/components/post-list-item2.js +36 -0
  205. package/dist/components/{post-alert.d.ts → post-list.d.ts} +4 -4
  206. package/dist/components/post-list.js +6 -0
  207. package/dist/components/post-list2.js +54 -0
  208. package/dist/components/post-logo2.js +4 -3
  209. package/dist/components/post-mainnavigation.d.ts +11 -0
  210. package/dist/components/post-mainnavigation.js +6 -0
  211. package/dist/components/post-mainnavigation2.js +183 -0
  212. package/dist/components/post-megadropdown-trigger.d.ts +11 -0
  213. package/dist/components/post-megadropdown-trigger.js +6 -0
  214. package/dist/components/post-megadropdown-trigger2.js +121 -0
  215. package/dist/components/post-megadropdown.d.ts +11 -0
  216. package/dist/components/post-megadropdown.js +6 -0
  217. package/dist/components/post-megadropdown2.js +190 -0
  218. package/dist/components/post-menu-item.d.ts +11 -0
  219. package/dist/components/post-menu-item.js +6 -0
  220. package/dist/components/post-menu-item2.js +27 -0
  221. package/dist/components/post-menu-trigger.d.ts +11 -0
  222. package/dist/components/post-menu-trigger.js +6 -0
  223. package/dist/components/post-menu-trigger2.js +109 -0
  224. package/dist/components/post-menu.d.ts +11 -0
  225. package/dist/components/post-menu.js +6 -0
  226. package/dist/components/post-menu2.js +192 -0
  227. package/dist/components/post-popover2.js +20 -16
  228. package/dist/components/post-popovercontainer2.js +788 -73
  229. package/dist/components/post-rating2.js +2 -2
  230. package/dist/components/post-tab-header2.js +8 -6
  231. package/dist/components/post-tab-panel2.js +4 -3
  232. package/dist/components/post-tabs2.js +11 -13
  233. package/dist/components/post-tag2.js +2 -2
  234. package/dist/components/post-togglebutton.d.ts +11 -0
  235. package/dist/components/post-togglebutton.js +6 -0
  236. package/dist/components/post-togglebutton2.js +62 -0
  237. package/dist/components/post-tooltip-trigger2.js +14 -277
  238. package/dist/components/post-tooltip2.js +7 -3
  239. package/dist/components/slide.js +25 -0
  240. package/dist/docs.json +1977 -287
  241. package/dist/esm/breakpoints-7812702e.js +56 -0
  242. package/dist/esm/check-non-empty-258a56b3.js +13 -0
  243. package/dist/esm/check-one-of-0bee20f5.js +11 -0
  244. package/dist/esm/check-type-37d5d307.js +19 -0
  245. package/dist/esm/check-url-17962bc8.js +17 -0
  246. package/dist/esm/event-guard-538ee077.js +45 -0
  247. package/dist/esm/fade-1f3cacf4.js +11 -0
  248. package/dist/esm/get-root-1b1af46f.js +15 -0
  249. package/dist/esm/index-8f8fe5b0.js +32 -0
  250. package/dist/esm/{index-e1b64755.js → index-f4d19816.js} +35 -15
  251. package/dist/esm/index.browser-ff103197.js +14 -0
  252. package/dist/esm/index.js +33 -23
  253. package/dist/esm/loader.js +3 -3
  254. package/dist/esm/long-press-event-04d24397.js +264 -0
  255. package/dist/esm/package-d9237b44.js +3 -0
  256. package/dist/esm/{post-accordion-ad570427.js → post-accordion-fdcf7205.js} +11 -12
  257. package/dist/esm/post-accordion-item-e11e3804.js +62 -0
  258. package/dist/esm/post-accordion-item.entry.js +10 -6
  259. package/dist/esm/post-accordion.entry.js +6 -4
  260. package/dist/esm/post-avatar-d360c6d2.js +143 -0
  261. package/dist/esm/post-avatar.entry.js +6 -0
  262. package/dist/esm/post-back-to-top-85796c8b.js +94 -0
  263. package/dist/esm/post-back-to-top.entry.js +8 -0
  264. package/dist/esm/post-banner-a3090f67.js +90 -0
  265. package/dist/esm/post-banner.entry.js +12 -0
  266. package/dist/esm/post-breadcrumb-item_2.entry.js +9 -0
  267. package/dist/esm/post-breadcrumbs-15ec5a26.js +118 -0
  268. package/dist/esm/post-breadcrumbs.entry.js +5 -0
  269. package/dist/esm/post-card-control-6142534e.js +267 -0
  270. package/dist/esm/post-card-control.entry.js +6 -5
  271. package/dist/esm/post-closebutton_15.entry.js +14 -0
  272. package/dist/esm/{post-collapsible-trigger-45fe328a.js → post-collapsible-trigger-68306358.js} +62 -76
  273. package/dist/esm/post-collapsible_2.entry.js +11 -7
  274. package/dist/esm/post-components.js +3 -3
  275. package/dist/esm/post-footer-d2a3270e.js +36 -0
  276. package/dist/esm/post-footer.entry.js +4 -0
  277. package/dist/esm/post-linkarea-64998c67.js +28 -0
  278. package/dist/esm/post-linkarea.entry.js +3 -0
  279. package/dist/esm/post-menu-item-95a0a647.js +65 -0
  280. package/dist/esm/post-popover-c5f81087.js +133 -0
  281. package/dist/esm/post-popover.entry.js +4 -3
  282. package/dist/esm/{post-rating-f60024fa.js → post-rating-7bfedafb.js} +4 -4
  283. package/dist/esm/post-rating.entry.js +3 -3
  284. package/dist/esm/post-tab-header-08033da4.js +32 -0
  285. package/dist/esm/post-tab-header.entry.js +6 -4
  286. package/dist/esm/{post-tab-panel-0ddb05a2.js → post-tab-panel-be701793.js} +5 -4
  287. package/dist/esm/post-tab-panel.entry.js +4 -3
  288. package/dist/esm/{post-tabs-ab7853cf.js → post-tabs-c69e2842.js} +14 -16
  289. package/dist/esm/post-tabs.entry.js +5 -4
  290. package/dist/esm/post-tag-ebac7f3e.js +45 -0
  291. package/dist/esm/post-tag.entry.js +3 -3
  292. package/dist/esm/post-togglebutton-706e3af0.js +4478 -0
  293. package/dist/esm/{post-tooltip-c03cd719.js → post-tooltip-9a195d47.js} +10 -6
  294. package/dist/esm/{post-tooltip-trigger-1fefc8ad.js → post-tooltip-trigger-7d6f234b.js} +17 -280
  295. package/dist/esm/post-tooltip-trigger.entry.js +5 -4
  296. package/dist/esm/post-tooltip.entry.js +5 -4
  297. package/dist/esm/slide-cd2850ee.js +25 -0
  298. package/dist/post-components/index.esm.js +1 -1
  299. package/dist/post-components/p-034715ec.js +1 -0
  300. package/dist/post-components/p-0717fe4c.js +1 -0
  301. package/dist/post-components/p-0889c759.js +1 -0
  302. package/dist/post-components/p-0c03547b.js +1 -0
  303. package/dist/post-components/p-0de8d05f.js +1 -0
  304. package/dist/post-components/p-1373a79b.entry.js +1 -0
  305. package/dist/post-components/p-17dc4170.js +8 -0
  306. package/dist/post-components/p-181c73d5.js +1 -0
  307. package/dist/post-components/p-1a21fd8d.js +1 -0
  308. package/dist/post-components/p-1ab3eba4.entry.js +1 -0
  309. package/dist/post-components/p-2d6c0670.js +1 -0
  310. package/dist/post-components/p-2dc0a2d0.js +1 -0
  311. package/dist/post-components/p-35ad2e11.entry.js +1 -0
  312. package/dist/post-components/p-368c473a.js +1 -0
  313. package/dist/post-components/p-38f778a7.entry.js +1 -0
  314. package/dist/post-components/p-39a8df3c.entry.js +1 -0
  315. package/dist/post-components/p-3c7f6003.js +1 -0
  316. package/dist/post-components/p-474a41bc.entry.js +1 -0
  317. package/dist/post-components/p-64e3de38.js +1 -0
  318. package/dist/post-components/p-69bc8eaf.entry.js +1 -0
  319. package/dist/post-components/p-6b31a76a.js +1 -0
  320. package/dist/post-components/p-722ffaae.js +1 -0
  321. package/dist/post-components/p-72310bf0.entry.js +1 -0
  322. package/dist/post-components/p-7709c14a.js +1 -0
  323. package/dist/post-components/p-804b61b7.entry.js +1 -0
  324. package/dist/post-components/p-85fdc2d3.js +1 -0
  325. package/dist/post-components/p-89247caa.js +1 -0
  326. package/dist/post-components/p-89dc67c7.entry.js +1 -0
  327. package/dist/post-components/p-8db32dab.js +8 -0
  328. package/dist/post-components/p-8f7f5200.entry.js +1 -0
  329. package/dist/post-components/p-964f9581.js +1 -0
  330. package/dist/post-components/p-9b052461.js +1 -0
  331. package/dist/post-components/{p-3eab790d.js → p-9e461613.js} +2 -2
  332. package/dist/post-components/p-a52b2d34.js +1 -0
  333. package/dist/post-components/p-ab566526.js +1 -0
  334. package/dist/post-components/p-b648e537.entry.js +1 -0
  335. package/dist/post-components/p-bc33a6d9.js +1 -0
  336. package/dist/post-components/p-bcfdbd0b.entry.js +1 -0
  337. package/dist/post-components/p-beb67979.js +1 -0
  338. package/dist/post-components/p-c41868b1.js +1 -0
  339. package/dist/post-components/p-c65f32b0.js +1 -0
  340. package/dist/post-components/p-c71700a7.js +1 -0
  341. package/dist/post-components/p-cb027003.js +1 -0
  342. package/dist/post-components/p-cc5b1437.js +1 -0
  343. package/dist/post-components/p-ceda889e.entry.js +1 -0
  344. package/dist/post-components/p-d45df336.js +1 -0
  345. package/dist/post-components/p-de4d4274.js +1 -0
  346. package/dist/post-components/p-deb9efcf.entry.js +1 -0
  347. package/dist/post-components/p-e585c6fe.js +1 -0
  348. package/dist/post-components/p-e9f1cc46.entry.js +1 -0
  349. package/dist/post-components/p-ee4e776d.entry.js +1 -0
  350. package/dist/post-components/p-ee7c3bcc.entry.js +1 -0
  351. package/dist/post-components/p-f56482fa.entry.js +1 -0
  352. package/dist/post-components/p-f8c652ce.entry.js +1 -0
  353. package/dist/post-components/post-components.esm.js +1 -1
  354. package/dist/types/animations/collapse.d.ts +2 -2
  355. package/dist/types/animations/fade.d.ts +2 -2
  356. package/dist/types/animations/slide.d.ts +2 -0
  357. package/dist/types/components/post-accordion/post-accordion.d.ts +1 -1
  358. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +8 -2
  359. package/dist/types/components/post-avatar/post-avatar.d.ts +51 -0
  360. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +21 -0
  361. package/dist/types/components/post-banner/banner-types.d.ts +2 -0
  362. package/dist/types/components/post-banner/post-banner.d.ts +49 -0
  363. package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +20 -0
  364. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +30 -0
  365. package/dist/types/components/post-card-control/post-card-control.d.ts +9 -9
  366. package/dist/types/components/post-closebutton/post-closebutton.d.ts +7 -0
  367. package/dist/types/components/post-collapsible-trigger/post-collapsible-trigger.d.ts +9 -14
  368. package/dist/types/components/post-footer/post-footer.d.ts +23 -0
  369. package/dist/types/components/post-header/post-header.d.ts +52 -0
  370. package/dist/types/components/post-icon/post-icon.d.ts +10 -6
  371. package/dist/types/components/post-language-option/post-language-option.d.ts +49 -0
  372. package/dist/types/components/post-language-switch/post-language-switch.d.ts +39 -0
  373. package/dist/types/components/post-language-switch/switch-variants.d.ts +2 -0
  374. package/dist/types/components/post-linkarea/post-linkarea.d.ts +5 -0
  375. package/dist/types/components/post-list/post-list.d.ts +24 -0
  376. package/dist/types/components/post-list-item/post-list-item.d.ts +8 -0
  377. package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +46 -0
  378. package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +59 -0
  379. package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +33 -0
  380. package/dist/types/components/post-menu/post-menu.d.ts +49 -0
  381. package/dist/types/components/post-menu-item/post-menu-item.d.ts +3 -0
  382. package/dist/types/components/post-menu-trigger/post-menu-trigger.d.ts +28 -0
  383. package/dist/types/components/post-popover/post-popover.d.ts +6 -4
  384. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +9 -1
  385. package/dist/types/components/post-tab-header/post-tab-header.d.ts +1 -1
  386. package/dist/types/components/post-tabs/post-tabs.d.ts +1 -1
  387. package/dist/types/components/post-tag/post-tag.d.ts +2 -2
  388. package/dist/types/components/post-togglebutton/post-togglebutton.d.ts +15 -0
  389. package/dist/types/components/post-tooltip/post-tooltip.d.ts +1 -0
  390. package/dist/types/components/post-tooltip-trigger/post-tooltip-trigger.d.ts +0 -1
  391. package/dist/types/components.d.ts +603 -50
  392. package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/.config/bindings.angular.d.ts +2 -0
  393. package/dist/types/index.d.ts +22 -3
  394. package/dist/types/popover-fn.d.ts +11 -0
  395. package/dist/types/utils/attribute-observer.d.ts +1 -1
  396. package/dist/types/utils/breakpoints.d.ts +12 -0
  397. package/dist/types/utils/component-on-ready.d.ts +1 -1
  398. package/dist/types/utils/environment.d.ts +2 -0
  399. package/dist/types/utils/event-guard.d.ts +4 -0
  400. package/dist/types/utils/get-focusable-children.d.ts +1 -0
  401. package/dist/types/utils/get-root.d.ts +5 -1
  402. package/dist/types/utils/index.d.ts +5 -0
  403. package/dist/types/utils/property-checkers/check-non-empty.d.ts +3 -1
  404. package/dist/types/utils/property-checkers/check-one-of.d.ts +3 -1
  405. package/dist/types/utils/property-checkers/check-pattern.d.ts +3 -1
  406. package/dist/types/utils/property-checkers/check-type.d.ts +3 -1
  407. package/dist/types/utils/property-checkers/check-url.d.ts +3 -1
  408. package/dist/types/utils/property-checkers/index.d.ts +12 -4
  409. package/dist/types/utils/sass-export.d.ts +5 -1
  410. package/loaders/breakpoints.js +56 -0
  411. package/loaders/check-non-empty.js +6 -2
  412. package/loaders/check-one-of.js +8 -3
  413. package/loaders/check-type.js +11 -6
  414. package/loaders/event-guard.js +45 -0
  415. package/loaders/fade.js +6 -2
  416. package/loaders/get-focusable-children.js +35 -0
  417. package/loaders/get-root.js +15 -0
  418. package/loaders/index.browser.js +14 -0
  419. package/loaders/index.d.ts +40 -2
  420. package/loaders/index.js +22 -2
  421. package/loaders/index2.js +25 -12
  422. package/loaders/long-press-event.js +264 -0
  423. package/loaders/package.js +1 -1
  424. package/loaders/post-accordion-item.js +1 -82
  425. package/loaders/post-accordion-item2.js +103 -0
  426. package/loaders/post-accordion.js +8 -9
  427. package/loaders/post-avatar.d.ts +11 -0
  428. package/loaders/post-avatar.js +173 -0
  429. package/loaders/post-back-to-top.d.ts +11 -0
  430. package/loaders/post-back-to-top.js +124 -0
  431. package/loaders/post-banner.d.ts +11 -0
  432. package/loaders/post-banner.js +130 -0
  433. package/loaders/post-breadcrumb-item.d.ts +11 -0
  434. package/loaders/post-breadcrumb-item.js +6 -0
  435. package/loaders/post-breadcrumb-item2.js +82 -0
  436. package/loaders/post-breadcrumbs.d.ts +11 -0
  437. package/loaders/post-breadcrumbs.js +180 -0
  438. package/loaders/post-card-control.js +16 -19
  439. package/loaders/post-closebutton.d.ts +11 -0
  440. package/loaders/post-closebutton.js +42 -0
  441. package/loaders/post-collapsible-trigger2.js +47 -64
  442. package/loaders/post-collapsible2.js +16 -11
  443. package/loaders/post-footer.d.ts +11 -0
  444. package/loaders/post-footer.js +81 -0
  445. package/loaders/post-header.d.ts +11 -0
  446. package/loaders/post-header.js +402 -0
  447. package/loaders/post-icon2.js +59 -55
  448. package/loaders/post-language-option.d.ts +11 -0
  449. package/loaders/post-language-option.js +106 -0
  450. package/loaders/post-language-switch.d.ts +11 -0
  451. package/loaders/post-language-switch.js +148 -0
  452. package/loaders/post-linkarea.d.ts +11 -0
  453. package/loaders/post-linkarea.js +46 -0
  454. package/loaders/post-list-item.d.ts +11 -0
  455. package/loaders/post-list-item.js +39 -0
  456. package/loaders/{post-alert.d.ts → post-list.d.ts} +4 -4
  457. package/loaders/post-list.js +57 -0
  458. package/loaders/post-logo.js +5 -4
  459. package/loaders/post-mainnavigation.d.ts +11 -0
  460. package/loaders/post-mainnavigation.js +186 -0
  461. package/loaders/post-megadropdown-trigger.d.ts +11 -0
  462. package/loaders/post-megadropdown-trigger.js +124 -0
  463. package/loaders/post-megadropdown.d.ts +11 -0
  464. package/loaders/post-megadropdown.js +193 -0
  465. package/loaders/post-menu-item.d.ts +11 -0
  466. package/loaders/post-menu-item.js +6 -0
  467. package/loaders/post-menu-item2.js +27 -0
  468. package/loaders/post-menu-trigger.d.ts +11 -0
  469. package/loaders/post-menu-trigger.js +6 -0
  470. package/loaders/post-menu-trigger2.js +109 -0
  471. package/loaders/post-menu.d.ts +11 -0
  472. package/loaders/post-menu.js +6 -0
  473. package/loaders/post-menu2.js +192 -0
  474. package/loaders/post-popover.js +20 -16
  475. package/loaders/post-popovercontainer2.js +788 -73
  476. package/loaders/post-rating.js +2 -2
  477. package/loaders/post-tab-header.js +8 -6
  478. package/loaders/post-tab-panel.js +4 -3
  479. package/loaders/post-tabs.js +11 -13
  480. package/loaders/post-tag.js +2 -2
  481. package/loaders/post-togglebutton.d.ts +11 -0
  482. package/loaders/post-togglebutton.js +65 -0
  483. package/loaders/post-tooltip-trigger.js +14 -277
  484. package/loaders/post-tooltip.js +7 -3
  485. package/loaders/slide.js +25 -0
  486. package/package.json +45 -33
  487. package/dist/cjs/check-non-empty-eeaa8f77.js +0 -11
  488. package/dist/cjs/check-one-of-f4f5d0c0.js +0 -8
  489. package/dist/cjs/check-type-64af82a9.js +0 -16
  490. package/dist/cjs/fade-35a3633a.js +0 -10
  491. package/dist/cjs/index-824d2b71.js +0 -39
  492. package/dist/cjs/post-accordion-item-5f685bee.js +0 -52
  493. package/dist/cjs/post-alert-88adc668.js +0 -99
  494. package/dist/cjs/post-alert.cjs.entry.js +0 -17
  495. package/dist/cjs/post-card-control-c6e5c427.js +0 -272
  496. package/dist/cjs/post-icon-f735da00.js +0 -139
  497. package/dist/cjs/post-icon.cjs.entry.js +0 -16
  498. package/dist/cjs/post-logo-2cd8ae98.js +0 -39
  499. package/dist/cjs/post-logo.cjs.entry.js +0 -15
  500. package/dist/cjs/post-popover-36c854a4.js +0 -131
  501. package/dist/cjs/post-popovercontainer-cb4793c1.js +0 -2281
  502. package/dist/cjs/post-popovercontainer.cjs.entry.js +0 -11
  503. package/dist/cjs/post-tab-header-b756d9b1.js +0 -32
  504. package/dist/cjs/post-tag-c70fb945.js +0 -47
  505. package/dist/collection/components/post-alert/alert-types.js +0 -1
  506. package/dist/collection/components/post-alert/post-alert.css +0 -35
  507. package/dist/components/post-alert.js +0 -6
  508. package/dist/components/post-alert2.js +0 -136
  509. package/dist/esm/check-non-empty-58bd6b17.js +0 -9
  510. package/dist/esm/check-one-of-6b3ef8eb.js +0 -6
  511. package/dist/esm/check-type-8828dbe4.js +0 -14
  512. package/dist/esm/fade-7fd71785.js +0 -7
  513. package/dist/esm/index-69587a51.js +0 -34
  514. package/dist/esm/package-983f957d.js +0 -3
  515. package/dist/esm/post-accordion-item-4db0aa2a.js +0 -50
  516. package/dist/esm/post-alert-1e9fbdfa.js +0 -97
  517. package/dist/esm/post-alert.entry.js +0 -9
  518. package/dist/esm/post-card-control-ccb189a8.js +0 -270
  519. package/dist/esm/post-icon-3fc4dd7d.js +0 -137
  520. package/dist/esm/post-icon.entry.js +0 -8
  521. package/dist/esm/post-logo-e6cdea13.js +0 -37
  522. package/dist/esm/post-logo.entry.js +0 -7
  523. package/dist/esm/post-popover-afdf4906.js +0 -129
  524. package/dist/esm/post-popovercontainer-b19b7606.js +0 -2279
  525. package/dist/esm/post-popovercontainer.entry.js +0 -3
  526. package/dist/esm/post-tab-header-333e15d5.js +0 -30
  527. package/dist/esm/post-tag-4a7d14b9.js +0 -45
  528. package/dist/post-components/p-0a45da5e.entry.js +0 -1
  529. package/dist/post-components/p-12e82863.entry.js +0 -1
  530. package/dist/post-components/p-1386b77d.js +0 -1
  531. package/dist/post-components/p-1528b798.js +0 -1
  532. package/dist/post-components/p-18dc1299.entry.js +0 -1
  533. package/dist/post-components/p-1a8f6c84.entry.js +0 -1
  534. package/dist/post-components/p-256453ca.js +0 -1
  535. package/dist/post-components/p-2737eaf5.js +0 -1
  536. package/dist/post-components/p-3272ebad.js +0 -1
  537. package/dist/post-components/p-3596035e.js +0 -1
  538. package/dist/post-components/p-3668f4fa.entry.js +0 -1
  539. package/dist/post-components/p-375845d4.js +0 -1
  540. package/dist/post-components/p-381de59d.entry.js +0 -1
  541. package/dist/post-components/p-4a3f67ab.js +0 -1
  542. package/dist/post-components/p-4e68c514.js +0 -1
  543. package/dist/post-components/p-4eb5d9a1.entry.js +0 -1
  544. package/dist/post-components/p-611b3c41.js +0 -1
  545. package/dist/post-components/p-61a7d216.js +0 -1
  546. package/dist/post-components/p-788e64fb.js +0 -1
  547. package/dist/post-components/p-7d5b41d1.js +0 -1
  548. package/dist/post-components/p-82ea24e7.js +0 -1
  549. package/dist/post-components/p-85c4d04f.js +0 -1
  550. package/dist/post-components/p-85c6d001.entry.js +0 -1
  551. package/dist/post-components/p-8e555dda.js +0 -15
  552. package/dist/post-components/p-962a6f36.entry.js +0 -1
  553. package/dist/post-components/p-a76c71bc.js +0 -1
  554. package/dist/post-components/p-a7e8fd41.entry.js +0 -1
  555. package/dist/post-components/p-ac216bd0.entry.js +0 -1
  556. package/dist/post-components/p-b095519d.js +0 -1
  557. package/dist/post-components/p-b17ecbee.entry.js +0 -1
  558. package/dist/post-components/p-bb4227ad.entry.js +0 -1
  559. package/dist/post-components/p-bc294d0b.js +0 -1
  560. package/dist/post-components/p-d0b3c5d3.entry.js +0 -1
  561. package/dist/post-components/p-d4e148d8.entry.js +0 -1
  562. package/dist/post-components/p-d9809281.js +0 -1
  563. package/dist/post-components/p-eb1e7a49.js +0 -1
  564. package/dist/post-components/p-f35291d5.entry.js +0 -1
  565. package/dist/post-components/p-fc3bfe08.js +0 -1
  566. package/dist/types/components/post-alert/alert-types.d.ts +0 -2
  567. package/dist/types/components/post-alert/post-alert.d.ts +0 -54
  568. package/loaders/post-alert.js +0 -139
@@ -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,13 +2515,231 @@ 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
+ }
2039
2531
  }
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();})();
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
+ });
2625
+ }
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 = "@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)}}/*!\n * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n\n * The MIT License (MIT)\n\n * Copyright (c) 2011-2020 Twitter, Inc.\n * Copyright (c) 2011-2020 The Bootstrap Authors\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *//*!\n * Copyright 2021 by Swiss Post, Information Technology\n */@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:.5px 3px 4px rgba(0,0,0,.1),2px 4px 10px 4px rgba(0,0,0,.12);width:max-content;display:flex;align-items:center;max-width:100%;color:var(--post-contrast-color);background-color:rgb(var(--post-bg-rgb));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):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)}";
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
2745
  const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopovercontainer extends HTMLElement$1 {
@@ -2051,6 +2751,7 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2051
2751
  this.edgeGap = 8;
2052
2752
  this.animation = null;
2053
2753
  this.arrow = false;
2754
+ this.manualClose = false;
2054
2755
  this.safeSpace = undefined;
2055
2756
  }
2056
2757
  /**
@@ -2062,8 +2763,12 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2062
2763
  this.host.style.setProperty('--post-safe-space-cursor-x', `${event.clientX}px`);
2063
2764
  this.host.style.setProperty('--post-safe-space-cursor-y', `${event.clientY}px`);
2064
2765
  }
2766
+ connectedCallback() {
2767
+ if (IS_BROWSER && !isSupported()) {
2768
+ apply();
2769
+ }
2770
+ }
2065
2771
  componentDidLoad() {
2066
- this.host.setAttribute('popover', '');
2067
2772
  this.host.addEventListener('beforetoggle', this.handleToggle.bind(this));
2068
2773
  }
2069
2774
  disconnectedCallback() {
@@ -2135,6 +2840,13 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2135
2840
  startAutoupdates() {
2136
2841
  this.clearAutoUpdate = autoUpdate(this.eventTarget, this.host, this.calculatePosition.bind(this));
2137
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
+ }
2138
2850
  async calculatePosition() {
2139
2851
  const { x, y, middlewareData, placement } = await this.computeMainPosition();
2140
2852
  const currentPlacement = placement.split('-')[0];
@@ -2161,7 +2873,9 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2161
2873
  async computeMainPosition() {
2162
2874
  const gap = this.edgeGap;
2163
2875
  const middleware = [
2164
- flip(),
2876
+ flip({
2877
+ padding: this.getHeaderHeight(),
2878
+ }),
2165
2879
  inline(),
2166
2880
  shift({
2167
2881
  padding: gap,
@@ -2249,9 +2963,9 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2249
2963
  }
2250
2964
  render() {
2251
2965
  const animationClass = this.animation ? `animate-${this.animation}` : '';
2252
- return (h(Host, { key: '98ea26b46803e8aa98cc2cec53798d994c0ff856', "data-version": version }, h("div", { key: '230fa7df2963b36e67a4559f07010f7213240e3c', class: animationClass }, this.arrow && (h("span", { key: '58647eb14ef84ff04b04b7dec0bbb38b9bcd4b69', class: "arrow", ref: el => {
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 => {
2253
2967
  this.arrowRef = el;
2254
- } })), h("slot", { key: 'de0afc53f013ac7d4cdd06e0e2d7746a8e0971dc' }))));
2968
+ } })), h("slot", { key: 'ec5304bc77d4f3eb91c79fb2a37d096b4d43b888' }))));
2255
2969
  }
2256
2970
  get host() { return this; }
2257
2971
  static get style() { return PostPopovercontainerStyle0; }
@@ -2260,6 +2974,7 @@ const PostPopovercontainer = /*@__PURE__*/ proxyCustomElement(class PostPopoverc
2260
2974
  "edgeGap": [2, "edge-gap"],
2261
2975
  "animation": [1],
2262
2976
  "arrow": [4],
2977
+ "manualClose": [4, "manual-close"],
2263
2978
  "safeSpace": [513, "safe-space"],
2264
2979
  "show": [64],
2265
2980
  "hide": [64],