@beeq/core 1.12.14-beta.0 → 1.13.1

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 (597) hide show
  1. package/dist/beeq/beeq.esm.js +1 -1
  2. package/dist/beeq/beeq.esm.js.map +1 -1
  3. package/dist/beeq/index.esm.js +1 -1
  4. package/dist/beeq/index.esm.js.map +1 -1
  5. package/dist/beeq/{p-9d1503bd.entry.js → p-0d078519.entry.js} +2 -2
  6. package/dist/beeq/{p-9d1503bd.entry.js.map → p-0d078519.entry.js.map} +1 -1
  7. package/dist/beeq/{p-7f9d895b.entry.js → p-1a2c4878.entry.js} +2 -2
  8. package/dist/beeq/{p-7f9d895b.entry.js.map → p-1a2c4878.entry.js.map} +1 -1
  9. package/dist/beeq/p-21db4f39.entry.js +6 -0
  10. package/dist/beeq/p-21db4f39.entry.js.map +1 -0
  11. package/dist/beeq/{p-f47905ae.entry.js → p-24bb2588.entry.js} +2 -2
  12. package/dist/beeq/{p-f47905ae.entry.js.map → p-24bb2588.entry.js.map} +1 -1
  13. package/dist/beeq/{p-41910dc5.entry.js → p-2a081a54.entry.js} +2 -2
  14. package/dist/beeq/{p-41910dc5.entry.js.map → p-2a081a54.entry.js.map} +1 -1
  15. package/dist/beeq/{p-515a1162.entry.js → p-2e1fffcd.entry.js} +2 -2
  16. package/dist/beeq/{p-515a1162.entry.js.map → p-2e1fffcd.entry.js.map} +1 -1
  17. package/dist/beeq/{p-7d356cce.entry.js → p-30d1bd84.entry.js} +2 -2
  18. package/dist/beeq/p-30d1bd84.entry.js.map +1 -0
  19. package/dist/beeq/{p-882966dd.entry.js → p-38006c8e.entry.js} +2 -2
  20. package/dist/beeq/p-3d754d97.entry.js +6 -0
  21. package/dist/beeq/p-3d754d97.entry.js.map +1 -0
  22. package/dist/beeq/{p-e9535627.entry.js → p-45ae19aa.entry.js} +2 -2
  23. package/dist/beeq/p-45ae19aa.entry.js.map +1 -0
  24. package/dist/beeq/{p-54bfb042.entry.js → p-56b49d4e.entry.js} +2 -2
  25. package/dist/beeq/{p-54bfb042.entry.js.map → p-56b49d4e.entry.js.map} +1 -1
  26. package/dist/beeq/{p-0d8618d2.entry.js → p-58813f83.entry.js} +2 -2
  27. package/dist/beeq/{p-0d8618d2.entry.js.map → p-58813f83.entry.js.map} +1 -1
  28. package/dist/beeq/{p-050c757b.entry.js → p-5eba392c.entry.js} +2 -2
  29. package/dist/beeq/{p-050c757b.entry.js.map → p-5eba392c.entry.js.map} +1 -1
  30. package/dist/beeq/{p-debcabde.entry.js → p-6a38fcaf.entry.js} +2 -2
  31. package/dist/beeq/{p-debcabde.entry.js.map → p-6a38fcaf.entry.js.map} +1 -1
  32. package/dist/beeq/{p-8dfd0329.entry.js → p-6b0f896f.entry.js} +2 -2
  33. package/dist/beeq/{p-a0ef4135.entry.js → p-6be3f23a.entry.js} +2 -2
  34. package/dist/beeq/{p-a0ef4135.entry.js.map → p-6be3f23a.entry.js.map} +1 -1
  35. package/dist/beeq/{p-ea473f56.entry.js → p-72ff2fe2.entry.js} +2 -2
  36. package/dist/beeq/{p-7527b08d.entry.js → p-79fd999a.entry.js} +2 -2
  37. package/dist/beeq/{p-7527b08d.entry.js.map → p-79fd999a.entry.js.map} +1 -1
  38. package/dist/beeq/{p-0323869d.entry.js → p-7ebe6b9d.entry.js} +2 -2
  39. package/dist/beeq/p-7ebe6b9d.entry.js.map +1 -0
  40. package/dist/beeq/{p-250ee94e.entry.js → p-817f7a5e.entry.js} +2 -2
  41. package/dist/beeq/{p-250ee94e.entry.js.map → p-817f7a5e.entry.js.map} +1 -1
  42. package/dist/beeq/{p-ad419446.entry.js → p-8bd7f4c2.entry.js} +2 -2
  43. package/dist/beeq/{p-e63d6c4f.entry.js → p-8be7ceb5.entry.js} +2 -2
  44. package/dist/beeq/{p-e63d6c4f.entry.js.map → p-8be7ceb5.entry.js.map} +1 -1
  45. package/dist/beeq/p-923da026.entry.js +6 -0
  46. package/dist/beeq/p-923da026.entry.js.map +1 -0
  47. package/dist/beeq/{p-42e388d0.entry.js → p-9413a4d3.entry.js} +2 -2
  48. package/dist/beeq/{p-42e388d0.entry.js.map → p-9413a4d3.entry.js.map} +1 -1
  49. package/dist/beeq/{p-c25c20bf.entry.js → p-96f72671.entry.js} +2 -2
  50. package/dist/beeq/p-96f72671.entry.js.map +1 -0
  51. package/dist/beeq/{p-CO2T68hs.js → p-BSSRzVAz.js} +2 -2
  52. package/dist/beeq/p-BSSRzVAz.js.map +1 -0
  53. package/dist/beeq/p-DXYHHeJY.js +6 -0
  54. package/dist/beeq/p-DXYHHeJY.js.map +1 -0
  55. package/dist/beeq/p-DbxZ8FhA.js +6 -0
  56. package/dist/beeq/p-DbxZ8FhA.js.map +1 -0
  57. package/dist/beeq/p-DdvbF5yL.js.map +1 -1
  58. package/dist/beeq/p-Dx-CEPSQ.js.map +1 -1
  59. package/dist/beeq/p-a0a8ea5b.entry.js +6 -0
  60. package/dist/beeq/p-a0a8ea5b.entry.js.map +1 -0
  61. package/dist/beeq/{p-7adb6e2e.entry.js → p-a72671f9.entry.js} +2 -2
  62. package/dist/beeq/p-a72671f9.entry.js.map +1 -0
  63. package/dist/beeq/{p-40bb4e2c.entry.js → p-bb99b400.entry.js} +2 -2
  64. package/dist/beeq/{p-40bb4e2c.entry.js.map → p-bb99b400.entry.js.map} +1 -1
  65. package/dist/beeq/p-bdb983f9.entry.js +6 -0
  66. package/dist/beeq/{p-bb46524f.entry.js.map → p-bdb983f9.entry.js.map} +1 -1
  67. package/dist/beeq/{p-cfe07fad.entry.js → p-cf2e4d57.entry.js} +2 -2
  68. package/dist/beeq/{p-cfe07fad.entry.js.map → p-cf2e4d57.entry.js.map} +1 -1
  69. package/dist/beeq/p-d4fa3abb.entry.js +6 -0
  70. package/dist/beeq/p-d4fa3abb.entry.js.map +1 -0
  71. package/dist/beeq/{p-6cd90918.entry.js → p-d6c35472.entry.js} +2 -2
  72. package/dist/beeq/{p-6cd90918.entry.js.map → p-d6c35472.entry.js.map} +1 -1
  73. package/dist/beeq/p-d792e3d3.entry.js +6 -0
  74. package/dist/beeq/{p-edc81a31.entry.js.map → p-d792e3d3.entry.js.map} +1 -1
  75. package/dist/beeq/{p-bae91da4.entry.js → p-e91ee0da.entry.js} +2 -2
  76. package/dist/beeq/{p-bae91da4.entry.js.map → p-e91ee0da.entry.js.map} +1 -1
  77. package/dist/beeq/{p-1fb43de2.entry.js → p-e9a1b183.entry.js} +2 -2
  78. package/dist/beeq/{p-580f0a77.entry.js → p-f3184477.entry.js} +2 -2
  79. package/dist/beeq/{p-580f0a77.entry.js.map → p-f3184477.entry.js.map} +1 -1
  80. package/dist/beeq/p-f688d230.entry.js +6 -0
  81. package/dist/beeq/{p-1e675bdc.entry.js.map → p-f688d230.entry.js.map} +1 -1
  82. package/dist/beeq/{p-3c77308c.entry.js → p-f891fb4b.entry.js} +2 -2
  83. package/dist/beeq/{p-40163197.entry.js → p-fa123a10.entry.js} +2 -2
  84. package/dist/beeq/{p-40163197.entry.js.map → p-fa123a10.entry.js.map} +1 -1
  85. package/dist/beeq/p-kY6d9Evy.js +6 -0
  86. package/dist/beeq/p-kY6d9Evy.js.map +1 -0
  87. package/dist/beeq/p-seEHHqwi.js +6 -0
  88. package/dist/beeq/p-seEHHqwi.js.map +1 -0
  89. package/dist/beeq/p-uqkxeAeG.js.map +1 -1
  90. package/dist/beeq/svg/.icons-meta.json +13 -0
  91. package/dist/beeq.html-custom-data.json +2214 -106
  92. package/dist/cjs/beeq.cjs.js +3 -3
  93. package/dist/cjs/beeq.cjs.js.map +1 -1
  94. package/dist/cjs/bq-accordion-group.cjs.entry.js +2 -2
  95. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
  96. package/dist/cjs/bq-accordion.cjs.entry.js +3 -3
  97. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  98. package/dist/cjs/bq-alert.cjs.entry.js +3 -3
  99. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  100. package/dist/cjs/bq-avatar.cjs.entry.js +3 -3
  101. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  102. package/dist/cjs/bq-badge.cjs.entry.js +3 -3
  103. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +3 -3
  104. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  105. package/dist/cjs/bq-breadcrumb.cjs.entry.js +2 -2
  106. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
  107. package/dist/cjs/bq-button_2.cjs.entry.js +6 -6
  108. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  109. package/dist/cjs/bq-card.cjs.entry.js +3 -3
  110. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  111. package/dist/cjs/bq-checkbox.cjs.entry.js +35 -22
  112. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  113. package/dist/cjs/bq-date-picker.cjs.entry.js +1743 -366
  114. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  115. package/dist/cjs/bq-dialog.cjs.entry.js +7 -7
  116. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  117. package/dist/cjs/bq-divider.cjs.entry.js +7 -7
  118. package/dist/cjs/bq-drawer.cjs.entry.js +7 -7
  119. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  120. package/dist/cjs/bq-dropdown_2.cjs.entry.js +16 -10
  121. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
  122. package/dist/cjs/bq-empty-state.cjs.entry.js +8 -8
  123. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  124. package/dist/cjs/bq-input.cjs.entry.js +17 -10
  125. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  126. package/dist/cjs/bq-notification.cjs.entry.js +8 -8
  127. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  128. package/dist/cjs/bq-option-group.cjs.entry.js +3 -3
  129. package/dist/cjs/bq-option-group.cjs.entry.js.map +1 -1
  130. package/dist/cjs/bq-option-list_2.cjs.entry.js +10 -10
  131. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  132. package/dist/cjs/bq-option.cjs.entry.js +5 -5
  133. package/dist/cjs/bq-page-title.cjs.entry.js +6 -6
  134. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
  135. package/dist/cjs/bq-progress.cjs.entry.js +7 -7
  136. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  137. package/dist/cjs/bq-radio-group.cjs.entry.js +8 -12
  138. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  139. package/dist/cjs/bq-radio.cjs.entry.js +5 -5
  140. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  141. package/dist/cjs/bq-select.cjs.entry.js +39 -10
  142. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  143. package/dist/cjs/bq-side-menu-item.cjs.entry.js +2 -2
  144. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  145. package/dist/cjs/bq-side-menu.cjs.entry.js +3 -3
  146. package/dist/cjs/bq-slider.cjs.entry.js +4 -4
  147. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  148. package/dist/cjs/bq-spinner.cjs.entry.js +8 -8
  149. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  150. package/dist/cjs/bq-status.cjs.entry.js +4 -4
  151. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  152. package/dist/cjs/bq-step-item.cjs.entry.js +7 -7
  153. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  154. package/dist/cjs/bq-steps.cjs.entry.js +4 -4
  155. package/dist/cjs/bq-switch.cjs.entry.js +9 -20
  156. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  157. package/dist/cjs/bq-tab-group.cjs.entry.js +5 -5
  158. package/dist/cjs/bq-tab.cjs.entry.js +6 -6
  159. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  160. package/dist/cjs/bq-textarea.cjs.entry.js +17 -15
  161. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  162. package/dist/cjs/bq-toast.cjs.entry.js +5 -7
  163. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  164. package/dist/cjs/bq-tooltip.cjs.entry.js +77 -15
  165. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  166. package/dist/cjs/{cssVariables-exM7Oz37.js → cssVariables-DuVz7KcV.js} +3 -3
  167. package/dist/cjs/cssVariables-DuVz7KcV.js.map +1 -0
  168. package/dist/cjs/event-BhuEFC-I.js.map +1 -1
  169. package/dist/cjs/{index-CfLTYjba.js → index-CVDzXB4K.js} +213 -189
  170. package/dist/cjs/index-CVDzXB4K.js.map +1 -0
  171. package/dist/cjs/{index-BSrsKFVG.js → index-J9jJ-fFQ.js} +47 -12
  172. package/dist/cjs/index-J9jJ-fFQ.js.map +1 -0
  173. package/dist/cjs/index.cjs.js +4 -2
  174. package/dist/cjs/index.cjs.js.map +1 -1
  175. package/dist/cjs/isPopoverSupported-CfD5YIXR.js +18 -0
  176. package/dist/cjs/isPopoverSupported-CfD5YIXR.js.map +1 -0
  177. package/dist/cjs/loader.cjs.js +2 -2
  178. package/dist/cjs/{props-DzFXZXSF.js → props-BXpv3G-e.js} +6 -5
  179. package/dist/cjs/props-BXpv3G-e.js.map +1 -0
  180. package/dist/cjs/slot-DKWrtk4b.js.map +1 -1
  181. package/dist/cjs/transition-C0S-pYqN.js.map +1 -1
  182. package/dist/collection/collection-manifest.json +1 -1
  183. package/dist/collection/components/accordion-group/scss/bq-accordion-group.css +1 -1
  184. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  185. package/dist/collection/components/avatar/scss/bq-avatar.css +1 -1
  186. package/dist/collection/components/breadcrumb/scss/bq-breadcrumb.css +1 -1
  187. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js +1 -1
  188. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js.map +1 -1
  189. package/dist/collection/components/breadcrumb-item/scss/bq-breadcrumb-item.css +1 -1
  190. package/dist/collection/components/button/scss/bq-button.css +1 -1
  191. package/dist/collection/components/card/scss/bq-card.css +1 -1
  192. package/dist/collection/components/checkbox/bq-checkbox.js +35 -21
  193. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  194. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  195. package/dist/collection/components/date-picker/bq-date-picker.js +1141 -457
  196. package/dist/collection/components/date-picker/bq-date-picker.js.map +1 -1
  197. package/dist/collection/components/date-picker/bq-date-picker.types.js +29 -0
  198. package/dist/collection/components/date-picker/bq-date-picker.types.js.map +1 -1
  199. package/dist/collection/components/date-picker/components/CalendarDayView.js +96 -0
  200. package/dist/collection/components/date-picker/components/CalendarDayView.js.map +1 -0
  201. package/dist/collection/components/date-picker/components/CalendarHeader.js +18 -0
  202. package/dist/collection/components/date-picker/components/CalendarHeader.js.map +1 -0
  203. package/dist/collection/components/date-picker/components/CalendarMonthView.js +70 -0
  204. package/dist/collection/components/date-picker/components/CalendarMonthView.js.map +1 -0
  205. package/dist/collection/components/date-picker/components/CalendarYearView.js +68 -0
  206. package/dist/collection/components/date-picker/components/CalendarYearView.js.map +1 -0
  207. package/dist/collection/components/date-picker/helper/bounds.js +114 -0
  208. package/dist/collection/components/date-picker/helper/bounds.js.map +1 -0
  209. package/dist/collection/components/date-picker/helper/calendar.js +156 -0
  210. package/dist/collection/components/date-picker/helper/calendar.js.map +1 -0
  211. package/dist/collection/components/date-picker/helper/constants.js +62 -16
  212. package/dist/collection/components/date-picker/helper/constants.js.map +1 -1
  213. package/dist/collection/components/date-picker/helper/input.js +37 -0
  214. package/dist/collection/components/date-picker/helper/input.js.map +1 -0
  215. package/dist/collection/components/date-picker/helper/intl.js +78 -0
  216. package/dist/collection/components/date-picker/helper/intl.js.map +1 -0
  217. package/dist/collection/components/date-picker/helper/labels.js +61 -0
  218. package/dist/collection/components/date-picker/helper/labels.js.map +1 -0
  219. package/dist/collection/components/date-picker/helper/navigation.js +45 -0
  220. package/dist/collection/components/date-picker/helper/navigation.js.map +1 -0
  221. package/dist/collection/components/date-picker/helper/selection.js +167 -0
  222. package/dist/collection/components/date-picker/helper/selection.js.map +1 -0
  223. package/dist/collection/components/date-picker/helper/value.js +49 -0
  224. package/dist/collection/components/date-picker/helper/value.js.map +1 -0
  225. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  226. package/dist/collection/components/dialog/bq-dialog.js +4 -4
  227. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  228. package/dist/collection/components/divider/bq-divider.js +4 -4
  229. package/dist/collection/components/drawer/bq-drawer.js +4 -4
  230. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  231. package/dist/collection/components/dropdown/bq-dropdown.js +1 -1
  232. package/dist/collection/components/dropdown/scss/bq-dropdown.css +1 -1
  233. package/dist/collection/components/empty-state/bq-empty-state.js +5 -5
  234. package/dist/collection/components/empty-state/scss/bq-empty-state.css +1 -1
  235. package/dist/collection/components/icon/bq-icon.js +1 -1
  236. package/dist/collection/components/icon/helper/request.js +1 -1
  237. package/dist/collection/components/icon/helper/request.js.map +1 -1
  238. package/dist/collection/components/icon/svg/.icons-meta.json +13 -0
  239. package/dist/collection/components/input/bq-input.js +15 -8
  240. package/dist/collection/components/input/bq-input.js.map +1 -1
  241. package/dist/collection/components/input/scss/bq-input.css +1 -1
  242. package/dist/collection/components/notification/bq-notification.js +5 -5
  243. package/dist/collection/components/notification/bq-notification.js.map +1 -1
  244. package/dist/collection/components/notification/scss/bq-notification.css +1 -1
  245. package/dist/collection/components/option/bq-option.js +4 -4
  246. package/dist/collection/components/option-group/bq-option-group.js +1 -1
  247. package/dist/collection/components/option-group/scss/bq-option-group.css +1 -1
  248. package/dist/collection/components/option-list/bq-option-list.js +1 -1
  249. package/dist/collection/components/option-list/scss/bq-option-list.css +1 -1
  250. package/dist/collection/components/page-title/bq-page-title.js +4 -4
  251. package/dist/collection/components/page-title/scss/bq-page-title.css +1 -1
  252. package/dist/collection/components/panel/bq-panel.js +11 -5
  253. package/dist/collection/components/panel/bq-panel.js.map +1 -1
  254. package/dist/collection/components/panel/scss/bq-panel.css +1 -1
  255. package/dist/collection/components/progress/bq-progress.js +4 -4
  256. package/dist/collection/components/progress/scss/bq-progress.css +1 -1
  257. package/dist/collection/components/radio/bq-radio.js +5 -4
  258. package/dist/collection/components/radio/bq-radio.js.map +1 -1
  259. package/dist/collection/components/radio/scss/bq-radio.css +1 -1
  260. package/dist/collection/components/radio-group/bq-radio-group.js +6 -10
  261. package/dist/collection/components/radio-group/bq-radio-group.js.map +1 -1
  262. package/dist/collection/components/select/bq-select.js +59 -10
  263. package/dist/collection/components/select/bq-select.js.map +1 -1
  264. package/dist/collection/components/select/scss/bq-select.css +1 -1
  265. package/dist/collection/components/side-menu/bq-side-menu.js +2 -2
  266. package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
  267. package/dist/collection/components/slider/bq-slider.js +2 -2
  268. package/dist/collection/components/slider/scss/bq-slider.css +1 -1
  269. package/dist/collection/components/spinner/bq-spinner.js +4 -4
  270. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  271. package/dist/collection/components/status/bq-status.js +1 -1
  272. package/dist/collection/components/status/scss/bq-status.css +1 -1
  273. package/dist/collection/components/step-item/bq-step-item.js +4 -4
  274. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  275. package/dist/collection/components/steps/bq-steps.js +2 -2
  276. package/dist/collection/components/switch/bq-switch.js +9 -18
  277. package/dist/collection/components/switch/bq-switch.js.map +1 -1
  278. package/dist/collection/components/switch/scss/bq-switch.css +1 -1
  279. package/dist/collection/components/tab/bq-tab.js +3 -3
  280. package/dist/collection/components/tab/scss/bq-tab.css +1 -1
  281. package/dist/collection/components/tab-group/bq-tab-group.js +3 -3
  282. package/dist/collection/components/tag/bq-tag.js +4 -4
  283. package/dist/collection/components/tag/scss/bq-tag.css +1 -1
  284. package/dist/collection/components/textarea/bq-textarea.js +15 -13
  285. package/dist/collection/components/textarea/bq-textarea.js.map +1 -1
  286. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  287. package/dist/collection/components/toast/bq-toast.js +2 -4
  288. package/dist/collection/components/toast/bq-toast.js.map +1 -1
  289. package/dist/collection/components/toast/scss/bq-toast.css +1 -1
  290. package/dist/collection/components/tooltip/bq-tooltip.js +74 -13
  291. package/dist/collection/components/tooltip/bq-tooltip.js.map +1 -1
  292. package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
  293. package/dist/collection/services/interfaces/floating-ui.js.map +1 -1
  294. package/dist/collection/services/libraries/floating-ui/index.js +93 -64
  295. package/dist/collection/services/libraries/floating-ui/index.js.map +1 -1
  296. package/dist/collection/shared/test-utils/computedStyle.js +24 -24
  297. package/dist/collection/shared/test-utils/computedStyle.js.map +1 -1
  298. package/dist/collection/shared/test-utils/setProperties.js +1 -1
  299. package/dist/collection/shared/test-utils/setProperties.js.map +1 -1
  300. package/dist/collection/shared/test-utils/sleep.js +5 -1
  301. package/dist/collection/shared/test-utils/sleep.js.map +1 -1
  302. package/dist/collection/shared/utils/cssVariables.js +1 -1
  303. package/dist/collection/shared/utils/cssVariables.js.map +1 -1
  304. package/dist/collection/shared/utils/event.js.map +1 -1
  305. package/dist/collection/shared/utils/index.js +1 -0
  306. package/dist/collection/shared/utils/index.js.map +1 -1
  307. package/dist/collection/shared/utils/isPopoverSupported.js +12 -0
  308. package/dist/collection/shared/utils/isPopoverSupported.js.map +1 -0
  309. package/dist/collection/shared/utils/props.js +4 -3
  310. package/dist/collection/shared/utils/props.js.map +1 -1
  311. package/dist/collection/shared/utils/slot.js.map +1 -1
  312. package/dist/collection/shared/utils/transition.js.map +1 -1
  313. package/dist/components/bq-accordion-group.js +1 -1
  314. package/dist/components/bq-accordion.js +1 -1
  315. package/dist/components/bq-alert.js +1 -1
  316. package/dist/components/bq-avatar.js +1 -1
  317. package/dist/components/bq-badge.js +1 -1
  318. package/dist/components/bq-breadcrumb-item.js +1 -1
  319. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  320. package/dist/components/bq-breadcrumb.js +1 -1
  321. package/dist/components/bq-button.js +1 -1
  322. package/dist/components/bq-card.js +1 -1
  323. package/dist/components/bq-checkbox.js +1 -1
  324. package/dist/components/bq-checkbox.js.map +1 -1
  325. package/dist/components/bq-date-picker.js +1 -1
  326. package/dist/components/bq-date-picker.js.map +1 -1
  327. package/dist/components/bq-dialog.js +1 -1
  328. package/dist/components/bq-dialog.js.map +1 -1
  329. package/dist/components/bq-divider.js +1 -1
  330. package/dist/components/bq-drawer.js +1 -1
  331. package/dist/components/bq-drawer.js.map +1 -1
  332. package/dist/components/bq-dropdown.js +1 -1
  333. package/dist/components/bq-empty-state.js +1 -1
  334. package/dist/components/bq-empty-state.js.map +1 -1
  335. package/dist/components/bq-icon.js +1 -1
  336. package/dist/components/bq-input.js +1 -1
  337. package/dist/components/bq-input.js.map +1 -1
  338. package/dist/components/bq-notification.js +1 -1
  339. package/dist/components/bq-notification.js.map +1 -1
  340. package/dist/components/bq-option-group.js +1 -1
  341. package/dist/components/bq-option-group.js.map +1 -1
  342. package/dist/components/bq-option-list.js +1 -1
  343. package/dist/components/bq-option.js +1 -1
  344. package/dist/components/bq-page-title.js +1 -1
  345. package/dist/components/bq-page-title.js.map +1 -1
  346. package/dist/components/bq-panel.js +1 -1
  347. package/dist/components/bq-progress.js +1 -1
  348. package/dist/components/bq-progress.js.map +1 -1
  349. package/dist/components/bq-radio-group.js +1 -1
  350. package/dist/components/bq-radio-group.js.map +1 -1
  351. package/dist/components/bq-radio.js +1 -1
  352. package/dist/components/bq-radio.js.map +1 -1
  353. package/dist/components/bq-select.js +1 -1
  354. package/dist/components/bq-select.js.map +1 -1
  355. package/dist/components/bq-side-menu-item.js +1 -1
  356. package/dist/components/bq-side-menu-item.js.map +1 -1
  357. package/dist/components/bq-side-menu.js +1 -1
  358. package/dist/components/bq-slider.js +1 -1
  359. package/dist/components/bq-slider.js.map +1 -1
  360. package/dist/components/bq-spinner.js +1 -1
  361. package/dist/components/bq-status.js +1 -1
  362. package/dist/components/bq-status.js.map +1 -1
  363. package/dist/components/bq-step-item.js +1 -1
  364. package/dist/components/bq-step-item.js.map +1 -1
  365. package/dist/components/bq-steps.js +1 -1
  366. package/dist/components/bq-switch.js +1 -1
  367. package/dist/components/bq-switch.js.map +1 -1
  368. package/dist/components/bq-tab-group.js +1 -1
  369. package/dist/components/bq-tab.js +1 -1
  370. package/dist/components/bq-tag.js +1 -1
  371. package/dist/components/bq-textarea.js +1 -1
  372. package/dist/components/bq-textarea.js.map +1 -1
  373. package/dist/components/bq-toast.js +1 -1
  374. package/dist/components/bq-toast.js.map +1 -1
  375. package/dist/components/bq-tooltip.js +1 -1
  376. package/dist/components/index.js +1 -1
  377. package/dist/components/index.js.map +1 -1
  378. package/dist/components/{p-YjPwN7vu.js → p-2eUC8A3N.js} +2 -2
  379. package/dist/components/p-2eUC8A3N.js.map +1 -0
  380. package/dist/components/p-B4jdbg-4.js +6 -0
  381. package/dist/components/p-B4jdbg-4.js.map +1 -0
  382. package/dist/components/{p-D3RCJ1ti.js → p-BBCVL6R0.js} +2 -2
  383. package/dist/components/{p-BY4GkNoQ.js → p-BMHXMsVR.js} +2 -2
  384. package/dist/components/{p-DTsYGX5p.js → p-CWawcXxA.js} +2 -2
  385. package/dist/components/{p-DTsYGX5p.js.map → p-CWawcXxA.js.map} +1 -1
  386. package/dist/components/{p-fdkSHq2G.js → p-D6ngGq0Y.js} +2 -2
  387. package/dist/components/p-D6ngGq0Y.js.map +1 -0
  388. package/dist/components/{p-B99eLANt.js → p-DMKBBBUE.js} +2 -2
  389. package/dist/components/p-DXYHHeJY.js +6 -0
  390. package/dist/components/p-DXYHHeJY.js.map +1 -0
  391. package/dist/components/p-DbxZ8FhA.js +6 -0
  392. package/dist/components/p-DbxZ8FhA.js.map +1 -0
  393. package/dist/components/p-DdvbF5yL.js.map +1 -1
  394. package/dist/components/p-Dx-CEPSQ.js.map +1 -1
  395. package/dist/components/{p-4ksDMBf6.js → p-_I8PqzzU.js} +2 -2
  396. package/dist/components/{p-Dj-mQvqv.js → p-c6L-z8md.js} +2 -2
  397. package/dist/components/p-c6L-z8md.js.map +1 -0
  398. package/dist/components/p-kY6d9Evy.js +6 -0
  399. package/dist/components/p-kY6d9Evy.js.map +1 -0
  400. package/dist/components/p-uqkxeAeG.js.map +1 -1
  401. package/dist/{beeq/p-edc81a31.entry.js → components/p-v3c5-Hhf.js} +2 -2
  402. package/dist/components/p-v3c5-Hhf.js.map +1 -0
  403. package/dist/custom-elements.json +34104 -9693
  404. package/dist/esm/beeq.js +4 -4
  405. package/dist/esm/beeq.js.map +1 -1
  406. package/dist/esm/bq-accordion-group.entry.js +2 -2
  407. package/dist/esm/bq-accordion-group.entry.js.map +1 -1
  408. package/dist/esm/bq-accordion.entry.js +3 -3
  409. package/dist/esm/bq-accordion.entry.js.map +1 -1
  410. package/dist/esm/bq-alert.entry.js +3 -3
  411. package/dist/esm/bq-alert.entry.js.map +1 -1
  412. package/dist/esm/bq-avatar.entry.js +3 -3
  413. package/dist/esm/bq-avatar.entry.js.map +1 -1
  414. package/dist/esm/bq-badge.entry.js +3 -3
  415. package/dist/esm/bq-breadcrumb-item.entry.js +3 -3
  416. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  417. package/dist/esm/bq-breadcrumb.entry.js +2 -2
  418. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  419. package/dist/esm/bq-button_2.entry.js +6 -6
  420. package/dist/esm/bq-button_2.entry.js.map +1 -1
  421. package/dist/esm/bq-card.entry.js +3 -3
  422. package/dist/esm/bq-card.entry.js.map +1 -1
  423. package/dist/esm/bq-checkbox.entry.js +35 -22
  424. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  425. package/dist/esm/bq-date-picker.entry.js +1744 -367
  426. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  427. package/dist/esm/bq-dialog.entry.js +7 -7
  428. package/dist/esm/bq-dialog.entry.js.map +1 -1
  429. package/dist/esm/bq-divider.entry.js +7 -7
  430. package/dist/esm/bq-drawer.entry.js +7 -7
  431. package/dist/esm/bq-drawer.entry.js.map +1 -1
  432. package/dist/esm/bq-dropdown_2.entry.js +16 -10
  433. package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
  434. package/dist/esm/bq-empty-state.entry.js +8 -8
  435. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  436. package/dist/esm/bq-input.entry.js +17 -10
  437. package/dist/esm/bq-input.entry.js.map +1 -1
  438. package/dist/esm/bq-notification.entry.js +8 -8
  439. package/dist/esm/bq-notification.entry.js.map +1 -1
  440. package/dist/esm/bq-option-group.entry.js +3 -3
  441. package/dist/esm/bq-option-group.entry.js.map +1 -1
  442. package/dist/esm/bq-option-list_2.entry.js +10 -10
  443. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  444. package/dist/esm/bq-option.entry.js +5 -5
  445. package/dist/esm/bq-page-title.entry.js +6 -6
  446. package/dist/esm/bq-page-title.entry.js.map +1 -1
  447. package/dist/esm/bq-progress.entry.js +7 -7
  448. package/dist/esm/bq-progress.entry.js.map +1 -1
  449. package/dist/esm/bq-radio-group.entry.js +8 -12
  450. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  451. package/dist/esm/bq-radio.entry.js +5 -5
  452. package/dist/esm/bq-radio.entry.js.map +1 -1
  453. package/dist/esm/bq-select.entry.js +39 -10
  454. package/dist/esm/bq-select.entry.js.map +1 -1
  455. package/dist/esm/bq-side-menu-item.entry.js +2 -2
  456. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  457. package/dist/esm/bq-side-menu.entry.js +3 -3
  458. package/dist/esm/bq-slider.entry.js +4 -4
  459. package/dist/esm/bq-slider.entry.js.map +1 -1
  460. package/dist/esm/bq-spinner.entry.js +8 -8
  461. package/dist/esm/bq-spinner.entry.js.map +1 -1
  462. package/dist/esm/bq-status.entry.js +4 -4
  463. package/dist/esm/bq-status.entry.js.map +1 -1
  464. package/dist/esm/bq-step-item.entry.js +7 -7
  465. package/dist/esm/bq-step-item.entry.js.map +1 -1
  466. package/dist/esm/bq-steps.entry.js +4 -4
  467. package/dist/esm/bq-switch.entry.js +9 -20
  468. package/dist/esm/bq-switch.entry.js.map +1 -1
  469. package/dist/esm/bq-tab-group.entry.js +5 -5
  470. package/dist/esm/bq-tab.entry.js +6 -6
  471. package/dist/esm/bq-tab.entry.js.map +1 -1
  472. package/dist/esm/bq-textarea.entry.js +17 -15
  473. package/dist/esm/bq-textarea.entry.js.map +1 -1
  474. package/dist/esm/bq-toast.entry.js +5 -7
  475. package/dist/esm/bq-toast.entry.js.map +1 -1
  476. package/dist/esm/bq-tooltip.entry.js +77 -15
  477. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  478. package/dist/esm/{cssVariables-CyiWA5Ok.js → cssVariables-DhGXeOL_.js} +3 -3
  479. package/dist/esm/cssVariables-DhGXeOL_.js.map +1 -0
  480. package/dist/esm/event-Dx-CEPSQ.js.map +1 -1
  481. package/dist/esm/{index-CO2T68hs.js → index-BSSRzVAz.js} +47 -12
  482. package/dist/esm/index-BSSRzVAz.js.map +1 -0
  483. package/dist/esm/{index-CSAZnAFf.js → index-DXYHHeJY.js} +213 -189
  484. package/dist/esm/index-DXYHHeJY.js.map +1 -0
  485. package/dist/esm/index.js +3 -2
  486. package/dist/esm/index.js.map +1 -1
  487. package/dist/esm/isPopoverSupported-seEHHqwi.js +16 -0
  488. package/dist/esm/isPopoverSupported-seEHHqwi.js.map +1 -0
  489. package/dist/esm/loader.js +3 -3
  490. package/dist/esm/{props-zh4P02Kn.js → props-DbxZ8FhA.js} +6 -5
  491. package/dist/esm/props-DbxZ8FhA.js.map +1 -0
  492. package/dist/esm/slot-uqkxeAeG.js.map +1 -1
  493. package/dist/esm/transition-DdvbF5yL.js.map +1 -1
  494. package/dist/hydrate/index.js +2440 -874
  495. package/dist/hydrate/index.mjs +2440 -874
  496. package/dist/stencil.config.js +7 -0
  497. package/dist/stencil.config.js.map +1 -1
  498. package/dist/types/components/checkbox/bq-checkbox.d.ts +4 -3
  499. package/dist/types/components/date-picker/bq-date-picker.d.ts +330 -238
  500. package/dist/types/components/date-picker/bq-date-picker.types.d.ts +30 -39
  501. package/dist/types/components/date-picker/components/CalendarDayView.d.ts +42 -0
  502. package/dist/types/components/date-picker/components/CalendarHeader.d.ts +34 -0
  503. package/dist/types/components/date-picker/components/CalendarMonthView.d.ts +34 -0
  504. package/dist/types/components/date-picker/components/CalendarYearView.d.ts +32 -0
  505. package/dist/types/components/date-picker/helper/bounds.d.ts +49 -0
  506. package/dist/types/components/date-picker/helper/calendar.d.ts +78 -0
  507. package/dist/types/components/date-picker/helper/constants.d.ts +62 -16
  508. package/dist/types/components/date-picker/helper/input.d.ts +23 -0
  509. package/dist/types/components/date-picker/helper/intl.d.ts +38 -0
  510. package/dist/types/components/date-picker/helper/labels.d.ts +29 -0
  511. package/dist/types/components/date-picker/helper/navigation.d.ts +23 -0
  512. package/dist/types/components/date-picker/helper/selection.d.ts +44 -0
  513. package/dist/types/components/date-picker/helper/value.d.ts +31 -0
  514. package/dist/types/components/input/bq-input.d.ts +1 -0
  515. package/dist/types/components/panel/bq-panel.d.ts +1 -0
  516. package/dist/types/components/radio/bq-radio.d.ts +2 -1
  517. package/dist/types/components/select/bq-select.d.ts +5 -0
  518. package/dist/types/components/switch/bq-switch.d.ts +2 -3
  519. package/dist/types/components/tooltip/bq-tooltip.d.ts +14 -0
  520. package/dist/types/components.d.ts +450 -350
  521. package/dist/types/home/runner/work/BEEQ/BEEQ/.stencil/packages/beeq/vitest.config.d.ts +2 -0
  522. package/dist/types/services/interfaces/floating-ui.d.ts +1 -1
  523. package/dist/types/services/libraries/floating-ui/index.d.ts +37 -14
  524. package/dist/types/shared/test-utils/computedStyle.d.ts +7 -6
  525. package/dist/types/shared/test-utils/setProperties.d.ts +2 -2
  526. package/dist/types/shared/test-utils/sleep.d.ts +5 -1
  527. package/dist/types/shared/utils/event.d.ts +1 -1
  528. package/dist/types/shared/utils/index.d.ts +1 -0
  529. package/dist/types/shared/utils/isPopoverSupported.d.ts +2 -0
  530. package/dist/types/shared/utils/slot.d.ts +1 -1
  531. package/dist/types/stencil-public-runtime.d.ts +1 -0
  532. package/dist/vitest.config.js +81 -0
  533. package/dist/vitest.config.js.map +1 -0
  534. package/package.json +3 -3
  535. package/dist/beeq/p-0323869d.entry.js.map +0 -1
  536. package/dist/beeq/p-1e675bdc.entry.js +0 -6
  537. package/dist/beeq/p-2283258e.entry.js +0 -6
  538. package/dist/beeq/p-2283258e.entry.js.map +0 -1
  539. package/dist/beeq/p-2e9bc398.entry.js +0 -6
  540. package/dist/beeq/p-2e9bc398.entry.js.map +0 -1
  541. package/dist/beeq/p-654c7701.entry.js +0 -6
  542. package/dist/beeq/p-654c7701.entry.js.map +0 -1
  543. package/dist/beeq/p-7a6a89f1.entry.js +0 -6
  544. package/dist/beeq/p-7a6a89f1.entry.js.map +0 -1
  545. package/dist/beeq/p-7adb6e2e.entry.js.map +0 -1
  546. package/dist/beeq/p-7d356cce.entry.js.map +0 -1
  547. package/dist/beeq/p-CO2T68hs.js.map +0 -1
  548. package/dist/beeq/p-CSAZnAFf.js +0 -6
  549. package/dist/beeq/p-CSAZnAFf.js.map +0 -1
  550. package/dist/beeq/p-_RvVpeh2.js +0 -6
  551. package/dist/beeq/p-_RvVpeh2.js.map +0 -1
  552. package/dist/beeq/p-a83ce5aa.entry.js +0 -6
  553. package/dist/beeq/p-a83ce5aa.entry.js.map +0 -1
  554. package/dist/beeq/p-bb46524f.entry.js +0 -6
  555. package/dist/beeq/p-c25c20bf.entry.js.map +0 -1
  556. package/dist/beeq/p-e9535627.entry.js.map +0 -1
  557. package/dist/beeq/p-zh4P02Kn.js +0 -6
  558. package/dist/beeq/p-zh4P02Kn.js.map +0 -1
  559. package/dist/cjs/cssVariables-exM7Oz37.js.map +0 -1
  560. package/dist/cjs/index-BSrsKFVG.js.map +0 -1
  561. package/dist/cjs/index-CfLTYjba.js.map +0 -1
  562. package/dist/cjs/props-DzFXZXSF.js.map +0 -1
  563. package/dist/collection/components/date-picker/libs/callyLibrary.js +0 -92
  564. package/dist/collection/components/date-picker/libs/callyLibrary.js.map +0 -1
  565. package/dist/components/p-CSAZnAFf.js +0 -6
  566. package/dist/components/p-CSAZnAFf.js.map +0 -1
  567. package/dist/components/p-CvvcRGDG.js +0 -6
  568. package/dist/components/p-CvvcRGDG.js.map +0 -1
  569. package/dist/components/p-Dj-mQvqv.js.map +0 -1
  570. package/dist/components/p-DnqmdkvK.js +0 -6
  571. package/dist/components/p-DnqmdkvK.js.map +0 -1
  572. package/dist/components/p-YjPwN7vu.js.map +0 -1
  573. package/dist/components/p-_RvVpeh2.js +0 -6
  574. package/dist/components/p-_RvVpeh2.js.map +0 -1
  575. package/dist/components/p-fdkSHq2G.js.map +0 -1
  576. package/dist/components/p-zh4P02Kn.js +0 -6
  577. package/dist/components/p-zh4P02Kn.js.map +0 -1
  578. package/dist/esm/cssVariables-CyiWA5Ok.js.map +0 -1
  579. package/dist/esm/index-CO2T68hs.js.map +0 -1
  580. package/dist/esm/index-CSAZnAFf.js.map +0 -1
  581. package/dist/esm/props-zh4P02Kn.js.map +0 -1
  582. package/dist/jest.config.js +0 -23
  583. package/dist/jest.config.js.map +0 -1
  584. package/dist/types/Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System/.stencil/packages/beeq/jest.config.d.ts +0 -19
  585. package/dist/types/components/date-picker/libs/callyLibrary.d.ts +0 -15
  586. /package/dist/beeq/{p-882966dd.entry.js.map → p-38006c8e.entry.js.map} +0 -0
  587. /package/dist/beeq/{p-8dfd0329.entry.js.map → p-6b0f896f.entry.js.map} +0 -0
  588. /package/dist/beeq/{p-ea473f56.entry.js.map → p-72ff2fe2.entry.js.map} +0 -0
  589. /package/dist/beeq/{p-ad419446.entry.js.map → p-8bd7f4c2.entry.js.map} +0 -0
  590. /package/dist/beeq/{p-1fb43de2.entry.js.map → p-e9a1b183.entry.js.map} +0 -0
  591. /package/dist/beeq/{p-3c77308c.entry.js.map → p-f891fb4b.entry.js.map} +0 -0
  592. /package/dist/components/{p-D3RCJ1ti.js.map → p-BBCVL6R0.js.map} +0 -0
  593. /package/dist/components/{p-BY4GkNoQ.js.map → p-BMHXMsVR.js.map} +0 -0
  594. /package/dist/components/{p-B99eLANt.js.map → p-DMKBBBUE.js.map} +0 -0
  595. /package/dist/components/{p-4ksDMBf6.js.map → p-_I8PqzzU.js.map} +0 -0
  596. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/runner/work/BEEQ/BEEQ}/.stencil/packages/beeq/stencil.config.d.ts +0 -0
  597. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/runner/work/BEEQ/BEEQ}/.stencil/tailwind.config.d.ts +0 -0
@@ -100,12 +100,12 @@ function getOppositePlacement(placement) {
100
100
  return oppositeSideMap[side] + placement.slice(side.length);
101
101
  }
102
102
  function expandPaddingObject(padding) {
103
+ var _padding$top, _padding$right, _padding$bottom, _padding$left;
103
104
  return {
104
- top: 0,
105
- right: 0,
106
- bottom: 0,
107
- left: 0,
108
- ...padding
105
+ top: (_padding$top = padding.top) != null ? _padding$top : 0,
106
+ right: (_padding$right = padding.right) != null ? _padding$right : 0,
107
+ bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,
108
+ left: (_padding$left = padding.left) != null ? _padding$left : 0
109
109
  };
110
110
  }
111
111
  function getPaddingObject(padding) {
@@ -180,13 +180,9 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
180
180
  y: reference.y
181
181
  };
182
182
  }
183
- switch (getAlignment(placement)) {
184
- case 'start':
185
- coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
186
- break;
187
- case 'end':
188
- coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
189
- break;
183
+ const alignment = getAlignment(placement);
184
+ if (alignment) {
185
+ coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);
190
186
  }
191
187
  return coords;
192
188
  }
@@ -235,10 +231,7 @@ async function detectOverflow(state, options) {
235
231
  height: rects.floating.height
236
232
  } : rects.reference;
237
233
  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
238
- const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
239
- x: 1,
240
- y: 1
241
- } : {
234
+ const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) && (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
242
235
  x: 1,
243
236
  y: 1
244
237
  };
@@ -411,17 +404,16 @@ const arrow$1 = options => ({
411
404
 
412
405
  // Make sure the arrow doesn't overflow the floating element if the center
413
406
  // point is outside the floating element's bounds.
414
- const min$1 = minPadding;
415
407
  const max = clientSize - arrowDimensions[length] - maxPadding;
416
408
  const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
417
- const offset = clamp(min$1, center, max);
409
+ const offset = clamp(minPadding, center, max);
418
410
 
419
411
  // If the reference is small enough that the arrow's padding causes it to
420
412
  // to point to nothing for an aligned placement, adjust the offset of the
421
413
  // floating element itself. To ensure `shift()` continues to take action,
422
414
  // a single reset is performed when this is true.
423
- const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
424
- const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;
415
+ const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
416
+ const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max : 0;
425
417
  return {
426
418
  [axis]: coords[axis] + alignmentOffset,
427
419
  data: {
@@ -765,23 +757,16 @@ const shift$1 = function (options) {
765
757
  y
766
758
  };
767
759
  const overflow = await platform.detectOverflow(state, detectOverflowOptions);
768
- const crossAxis = getSideAxis(getSide(placement));
760
+ const crossAxis = getSideAxis(placement);
769
761
  const mainAxis = getOppositeAxis(crossAxis);
770
762
  let mainAxisCoord = coords[mainAxis];
771
763
  let crossAxisCoord = coords[crossAxis];
764
+ const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);
772
765
  if (checkMainAxis) {
773
- const minSide = mainAxis === 'y' ? 'top' : 'left';
774
- const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
775
- const min = mainAxisCoord + overflow[minSide];
776
- const max = mainAxisCoord - overflow[maxSide];
777
- mainAxisCoord = clamp(min, mainAxisCoord, max);
766
+ mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);
778
767
  }
779
768
  if (checkCrossAxis) {
780
- const minSide = crossAxis === 'y' ? 'top' : 'left';
781
- const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
782
- const min = crossAxisCoord + overflow[minSide];
783
- const max = crossAxisCoord - overflow[maxSide];
784
- crossAxisCoord = clamp(min, crossAxisCoord, max);
769
+ crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);
785
770
  }
786
771
  const limitedCoords = limiter.fn({
787
772
  ...state,
@@ -803,6 +788,12 @@ const shift$1 = function (options) {
803
788
  };
804
789
  };
805
790
 
791
+ // Method syntax keeps callback parameters bivariant, but expressing the
792
+ // explicit `| undefined` required by `exactOptionalPropertyTypes` needs
793
+ // property syntax, which is contravariant under `strictFunctionTypes`.
794
+ // Extracting the function from a method position restores that bivariance so
795
+ // consumers can still assign callbacks with narrower parameter types.
796
+
806
797
  /**
807
798
  * Provides data that allows you to change the size of the floating element —
808
799
  * for instance, prevent it from overflowing the clipping boundary or match the
@@ -817,7 +808,6 @@ const size$1 = function (options) {
817
808
  name: 'size',
818
809
  options,
819
810
  async fn(state) {
820
- var _state$middlewareData, _state$middlewareData2;
821
811
  const {
822
812
  placement,
823
813
  rects,
@@ -849,24 +839,21 @@ const size$1 = function (options) {
849
839
  const maximumClippingWidth = width - overflow.left - overflow.right;
850
840
  const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
851
841
  const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
852
- const noShift = !state.middlewareData.shift;
842
+ const shiftData = state.middlewareData.shift;
843
+ const noShift = !shiftData;
853
844
  let availableHeight = overflowAvailableHeight;
854
845
  let availableWidth = overflowAvailableWidth;
855
- if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
846
+ if (shiftData != null && shiftData.enabled.x) {
856
847
  availableWidth = maximumClippingWidth;
857
848
  }
858
- if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
849
+ if (shiftData != null && shiftData.enabled.y) {
859
850
  availableHeight = maximumClippingHeight;
860
851
  }
861
852
  if (noShift && !alignment) {
862
- const xMin = max(overflow.left, 0);
863
- const xMax = max(overflow.right, 0);
864
- const yMin = max(overflow.top, 0);
865
- const yMax = max(overflow.bottom, 0);
866
853
  if (isYAxis) {
867
- availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
854
+ availableWidth = width - 2 * max(overflow.left, overflow.right);
868
855
  } else {
869
- availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
856
+ availableHeight = height - 2 * max(overflow.top, overflow.bottom);
870
857
  }
871
858
  }
872
859
  await apply({
@@ -1022,7 +1009,7 @@ function getParentNode(node) {
1022
1009
  function getNearestOverflowAncestor(node) {
1023
1010
  const parentNode = getParentNode(node);
1024
1011
  if (isLastTraversableNode(parentNode)) {
1025
- return node.ownerDocument ? node.ownerDocument.body : node.body;
1012
+ return (node.ownerDocument || node).body;
1026
1013
  }
1027
1014
  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
1028
1015
  return parentNode;
@@ -1119,10 +1106,7 @@ function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
1119
1106
  if (isFixed === void 0) {
1120
1107
  isFixed = false;
1121
1108
  }
1122
- if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
1123
- return false;
1124
- }
1125
- return isFixed;
1109
+ return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);
1126
1110
  }
1127
1111
 
1128
1112
  function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
@@ -1149,12 +1133,12 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
1149
1133
  let y = (clientRect.top + visualOffsets.y) / scale.y;
1150
1134
  let width = clientRect.width / scale.x;
1151
1135
  let height = clientRect.height / scale.y;
1152
- if (domElement) {
1136
+ if (domElement && offsetParent) {
1153
1137
  const win = getWindow(domElement);
1154
- const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
1138
+ const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
1155
1139
  let currentWin = win;
1156
1140
  let currentIFrame = getFrameElement(currentWin);
1157
- while (currentIFrame && offsetParent && offsetWin !== currentWin) {
1141
+ while (currentIFrame && offsetWin !== currentWin) {
1158
1142
  const iframeScale = getScale(currentIFrame);
1159
1143
  const iframeRect = currentIFrame.getBoundingClientRect();
1160
1144
  const css = getComputedStyle$1(currentIFrame);
@@ -1218,7 +1202,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1218
1202
  let scale = createCoords(1);
1219
1203
  const offsets = createCoords(0);
1220
1204
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
1221
- if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1205
+ if (isOffsetParentAnElement || !isFixed) {
1222
1206
  if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1223
1207
  scroll = getNodeScroll(offsetParent);
1224
1208
  }
@@ -1239,18 +1223,17 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1239
1223
  }
1240
1224
 
1241
1225
  function getClientRects(element) {
1242
- return Array.from(element.getClientRects());
1226
+ return element.getClientRects ? Array.from(element.getClientRects()) : [];
1243
1227
  }
1244
1228
 
1245
1229
  // Gets the entire size of the scrollable document area, even extending outside
1246
1230
  // of the `<html>` and `<body>` rect bounds if horizontally scrollable.
1247
- function getDocumentRect(element) {
1248
- const html = getDocumentElement(element);
1249
- const scroll = getNodeScroll(element);
1250
- const body = element.ownerDocument.body;
1231
+ function getDocumentRect(html) {
1232
+ const scroll = getNodeScroll(html);
1233
+ const body = html.ownerDocument.body;
1251
1234
  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
1252
1235
  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
1253
- let x = -scroll.scrollLeft + getWindowScrollBarX(element);
1236
+ let x = -scroll.scrollLeft + getWindowScrollBarX(html);
1254
1237
  const y = -scroll.scrollTop;
1255
1238
  if (getComputedStyle$1(body).direction === 'rtl') {
1256
1239
  x += max(html.clientWidth, body.clientWidth) - width;
@@ -1267,7 +1250,11 @@ function getDocumentRect(element) {
1267
1250
  // calculation is affected by unusual styles.
1268
1251
  // Most scrollbars leave 15-18px of space.
1269
1252
  const SCROLLBAR_MAX = 25;
1270
- function getViewportRect(element, strategy) {
1253
+ function getViewportRect(element, strategy, rootBoundary) {
1254
+ if (rootBoundary === void 0) {
1255
+ rootBoundary = 'viewport';
1256
+ }
1257
+ const isLayoutViewport = rootBoundary === 'layoutViewport';
1271
1258
  const win = getWindow(element);
1272
1259
  const html = getDocumentElement(element);
1273
1260
  const visualViewport = win.visualViewport;
@@ -1276,31 +1263,42 @@ function getViewportRect(element, strategy) {
1276
1263
  let x = 0;
1277
1264
  let y = 0;
1278
1265
  if (visualViewport) {
1279
- width = visualViewport.width;
1280
- height = visualViewport.height;
1281
- const visualViewportBased = isWebKit();
1282
- if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {
1283
- x = visualViewport.offsetLeft;
1284
- y = visualViewport.offsetTop;
1266
+ // Client coordinates are relative to the layout viewport, except in
1267
+ // WebKit with an `absolute` strategy, where they are relative to the
1268
+ // visual viewport.
1269
+ const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';
1270
+ if (isLayoutViewport) {
1271
+ if (!layoutRelativeClientCoords) {
1272
+ x = -visualViewport.offsetLeft;
1273
+ y = -visualViewport.offsetTop;
1274
+ }
1275
+ } else {
1276
+ width = visualViewport.width;
1277
+ height = visualViewport.height;
1278
+ if (layoutRelativeClientCoords) {
1279
+ x = visualViewport.offsetLeft;
1280
+ y = visualViewport.offsetTop;
1281
+ }
1285
1282
  }
1286
1283
  }
1287
1284
  const windowScrollbarX = getWindowScrollBarX(html);
1288
- // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
1289
- // visual width of the <html> but this is not considered in the size
1290
- // of `html.clientWidth`.
1285
+ // `scrollbar-gutter: stable` on the <html> reserves gutter space that shrinks
1286
+ // the visual width but isn't reflected in `html.clientWidth`, so subtract it.
1287
+ // Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also
1288
+ // reserves an empty inline-start gutter that clips nothing, so exclude just
1289
+ // the one scrollbar-side gutter — halve the measured (two-gutter) total. A
1290
+ // left-side scrollbar (`windowScrollbarX > 0`) is already handled by
1291
+ // `getHTMLOffset`/`visualViewport.width`; skip it here.
1291
1292
  if (windowScrollbarX <= 0) {
1292
1293
  const doc = html.ownerDocument;
1293
1294
  const body = doc.body;
1294
1295
  const bodyStyles = getComputedStyle(body);
1295
1296
  const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
1296
- const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
1297
- if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
1298
- width -= clippingStableScrollbarWidth;
1297
+ const reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
1298
+ const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;
1299
+ if (gutter <= SCROLLBAR_MAX) {
1300
+ width -= gutter;
1299
1301
  }
1300
- } else if (windowScrollbarX <= SCROLLBAR_MAX) {
1301
- // If the <body> scrollbar is on the left, the width needs to be extended
1302
- // by the scrollbar amount so there isn't extra space on the right.
1303
- width += windowScrollbarX;
1304
1302
  }
1305
1303
  return {
1306
1304
  width,
@@ -1315,7 +1313,7 @@ function getInnerBoundingClientRect(element, strategy) {
1315
1313
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
1316
1314
  const top = clientRect.top + element.clientTop;
1317
1315
  const left = clientRect.left + element.clientLeft;
1318
- const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
1316
+ const scale = getScale(element);
1319
1317
  const width = element.clientWidth * scale.x;
1320
1318
  const height = element.clientHeight * scale.y;
1321
1319
  const x = left * scale.x;
@@ -1329,8 +1327,8 @@ function getInnerBoundingClientRect(element, strategy) {
1329
1327
  }
1330
1328
  function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
1331
1329
  let rect;
1332
- if (clippingAncestor === 'viewport') {
1333
- rect = getViewportRect(element, strategy);
1330
+ if (clippingAncestor === 'viewport' || clippingAncestor === 'layoutViewport') {
1331
+ rect = getViewportRect(element, strategy, clippingAncestor);
1334
1332
  } else if (clippingAncestor === 'document') {
1335
1333
  rect = getDocumentRect(getDocumentElement(element));
1336
1334
  } else if (isElement(clippingAncestor)) {
@@ -1346,13 +1344,6 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
1346
1344
  }
1347
1345
  return rectToClientRect(rect);
1348
1346
  }
1349
- function hasFixedPositionAncestor(element, stopNode) {
1350
- const parentNode = getParentNode(element);
1351
- if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
1352
- return false;
1353
- }
1354
- return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
1355
- }
1356
1347
 
1357
1348
  // A "clipping ancestor" is an `overflow` element with the characteristic of
1358
1349
  // clipping (or hiding) child elements. This returns all clipping ancestors
@@ -1363,7 +1354,7 @@ function getClippingElementAncestors(element, cache) {
1363
1354
  return cachedResult;
1364
1355
  }
1365
1356
  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');
1366
- let currentContainingBlockComputedStyle = null;
1357
+ let lastKeptComputedStyle = null;
1367
1358
  const elementIsFixed = getComputedStyle$1(element).position === 'fixed';
1368
1359
  let currentNode = elementIsFixed ? getParentNode(element) : element;
1369
1360
 
@@ -1371,16 +1362,20 @@ function getClippingElementAncestors(element, cache) {
1371
1362
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
1372
1363
  const computedStyle = getComputedStyle$1(currentNode);
1373
1364
  const currentNodeIsContaining = isContainingBlock(currentNode);
1374
- if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
1375
- currentContainingBlockComputedStyle = null;
1376
- }
1377
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1365
+ // Position of the containing block chain below the current node. A fixed
1366
+ // element whose containing block hasn't been found yet is a fixed chain.
1367
+ const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';
1368
+
1369
+ // A non-containing ancestor does not clip the element when the chain
1370
+ // below it escapes it: a fixed chain escapes all ancestors up to the
1371
+ // next containing block, an absolute chain escapes static ancestors.
1372
+ const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');
1378
1373
  if (shouldDropCurrentNode) {
1379
1374
  // Drop non-containing blocks.
1380
1375
  result = result.filter(ancestor => ancestor !== currentNode);
1381
1376
  } else {
1382
- // Record last containing block for next iteration.
1383
- currentContainingBlockComputedStyle = computedStyle;
1377
+ // The kept node carries the chain position for the next iteration.
1378
+ lastKeptComputedStyle = computedStyle;
1384
1379
  }
1385
1380
  currentNode = getParentNode(currentNode);
1386
1381
  }
@@ -1440,13 +1435,7 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1440
1435
  scrollTop: 0
1441
1436
  };
1442
1437
  const offsets = createCoords(0);
1443
-
1444
- // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1445
- // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1446
- function setLeftRTLScrollbarOffset() {
1447
- offsets.x = getWindowScrollBarX(documentElement);
1448
- }
1449
- if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1438
+ if (isOffsetParentAnElement || !isFixed) {
1450
1439
  if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1451
1440
  scroll = getNodeScroll(offsetParent);
1452
1441
  }
@@ -1454,12 +1443,13 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1454
1443
  const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
1455
1444
  offsets.x = offsetRect.x + offsetParent.clientLeft;
1456
1445
  offsets.y = offsetRect.y + offsetParent.clientTop;
1457
- } else if (documentElement) {
1458
- setLeftRTLScrollbarOffset();
1459
1446
  }
1460
1447
  }
1461
- if (isFixed && !isOffsetParentAnElement && documentElement) {
1462
- setLeftRTLScrollbarOffset();
1448
+
1449
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1450
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1451
+ if (!isOffsetParentAnElement && documentElement) {
1452
+ offsets.x = getWindowScrollBarX(documentElement);
1463
1453
  }
1464
1454
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1465
1455
  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
@@ -1559,7 +1549,7 @@ function rectsAreEqual(a, b) {
1559
1549
  }
1560
1550
 
1561
1551
  // https://samthor.au/2021/observing-dom/
1562
- function observeMove(element, onMove) {
1552
+ function observeMove(element, onMove, ancestorResize) {
1563
1553
  let io = null;
1564
1554
  let timeoutId;
1565
1555
  const root = getDocumentElement(element);
@@ -1602,13 +1592,22 @@ function observeMove(element, onMove) {
1602
1592
  let isFirstUpdate = true;
1603
1593
  function handleObserve(entries) {
1604
1594
  const ratio = entries[0].intersectionRatio;
1595
+
1596
+ // The entry is a snapshot, so the reference may have moved since the
1597
+ // intersection was computed (under performance constraints, or between
1598
+ // consecutive frames of a multi-frame layout shift). The reported ratio
1599
+ // and the observed area are stale in that case and cannot be trusted to
1600
+ // detect subsequent movement, so refresh regardless of the ratio.
1601
+ if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
1602
+ return refresh();
1603
+ }
1605
1604
  if (ratio !== threshold) {
1606
1605
  if (!isFirstUpdate) {
1607
1606
  return refresh();
1608
1607
  }
1609
1608
  if (!ratio) {
1610
- // If the reference is clipped, the ratio is 0. Throttle the refresh
1611
- // to prevent an infinite loop of updates.
1609
+ // If the reference is clipped in place, the ratio is 0. Throttle
1610
+ // the refresh to prevent an infinite loop of updates.
1612
1611
  timeoutId = setTimeout(() => {
1613
1612
  refresh(false, 1e-7);
1614
1613
  }, 1000);
@@ -1616,16 +1615,6 @@ function observeMove(element, onMove) {
1616
1615
  refresh(false, ratio);
1617
1616
  }
1618
1617
  }
1619
- if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {
1620
- // It's possible that even though the ratio is reported as 1, the
1621
- // element is not actually fully within the IntersectionObserver's root
1622
- // area anymore. This can happen under performance constraints. This may
1623
- // be a bug in the browser's IntersectionObserver implementation. To
1624
- // work around this, we compare the element's bounding rect now with
1625
- // what it was at the time we created the IntersectionObserver. If they
1626
- // are not equal then the element moved, so we refresh.
1627
- refresh();
1628
- }
1629
1618
  isFirstUpdate = false;
1630
1619
  }
1631
1620
 
@@ -1642,8 +1631,18 @@ function observeMove(element, onMove) {
1642
1631
  }
1643
1632
  io.observe(element);
1644
1633
  }
1634
+ const win = getWindow(element);
1635
+ // The window is a resize ancestor, so when `ancestorResize` is enabled its
1636
+ // listener already runs the update on resize. Here we only need to rebuild
1637
+ // the `IntersectionObserver` for the new root size, skipping a redundant
1638
+ // update. When `ancestorResize` is disabled, this becomes the sole update.
1639
+ const handleResize = () => refresh(ancestorResize);
1640
+ win.addEventListener('resize', handleResize);
1645
1641
  refresh(true);
1646
- return cleanup;
1642
+ return () => {
1643
+ win.removeEventListener('resize', handleResize);
1644
+ cleanup();
1645
+ };
1647
1646
  }
1648
1647
 
1649
1648
  /**
@@ -1668,12 +1667,10 @@ function autoUpdate(reference, floating, update, options) {
1668
1667
  const referenceEl = unwrapElement(reference);
1669
1668
  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];
1670
1669
  ancestors.forEach(ancestor => {
1671
- ancestorScroll && ancestor.addEventListener('scroll', update, {
1672
- passive: true
1673
- });
1670
+ ancestorScroll && ancestor.addEventListener('scroll', update);
1674
1671
  ancestorResize && ancestor.addEventListener('resize', update);
1675
1672
  });
1676
- const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
1673
+ const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update, ancestorResize) : null;
1677
1674
  let reobserveFrame = -1;
1678
1675
  let resizeObserver = null;
1679
1676
  if (elementResize) {
@@ -1782,11 +1779,9 @@ const computePosition = (reference, floating, options) => {
1782
1779
  // multiple lifecycle resets re-use the same result. It only lives for a
1783
1780
  // single call. If other functions become expensive, we can add them as well.
1784
1781
  const cache = new Map();
1785
- const mergedOptions = {
1786
- platform,
1787
- ...options
1788
- };
1782
+ const mergedOptions = options != null ? options : {};
1789
1783
  const platformWithCache = {
1784
+ ...platform,
1790
1785
  ...mergedOptions.platform,
1791
1786
  _c: cache
1792
1787
  };
@@ -1796,11 +1791,28 @@ const computePosition = (reference, floating, options) => {
1796
1791
  });
1797
1792
  };
1798
1793
 
1794
+ const STATIC_SIDE_BY_PLACEMENT = {
1795
+ top: 'bottom',
1796
+ right: 'left',
1797
+ bottom: 'top',
1798
+ left: 'right',
1799
+ };
1800
+ /**
1801
+ * Thin wrapper around Floating UI that owns the shared middleware pipeline
1802
+ * and ensures each instance has at most one `autoUpdate` subscription.
1803
+ *
1804
+ * Lifecycle:
1805
+ * - `start()` starts position tracking and performs an initial reposition.
1806
+ * - `stop()` stops tracking and invalidates pending positioning results.
1807
+ * - `reposition()` computes and applies the position once.
1808
+ * - `configure(options)` updates options and repositions only when active.
1809
+ */
1799
1810
  class FloatingUI {
1800
1811
  panel;
1801
1812
  trigger;
1802
1813
  options;
1803
- cleanUp;
1814
+ cleanup;
1815
+ repositionId = 0;
1804
1816
  constructor(trigger, panel, options) {
1805
1817
  this.trigger = trigger;
1806
1818
  this.panel = panel;
@@ -1811,74 +1823,92 @@ class FloatingUI {
1811
1823
  sameWidth: false,
1812
1824
  ...options,
1813
1825
  };
1814
- this.init(options);
1815
1826
  }
1816
- init(options) {
1817
- this.options = Object.assign(this.options, options);
1818
- this.update();
1827
+ /**
1828
+ * Merges new options into the current configuration. Active instances
1829
+ * reposition without recreating their `autoUpdate` subscription; stopped
1830
+ * instances apply the options the next time they start.
1831
+ */
1832
+ configure(options) {
1833
+ Object.assign(this.options, options);
1834
+ this.repositionId += 1;
1835
+ if (options.sameWidth === false) {
1836
+ this.panel.style.width = '';
1837
+ }
1838
+ if (!this.cleanup)
1839
+ return;
1840
+ void this.reposition();
1819
1841
  }
1820
- update() {
1821
- this.cleanUp = autoUpdate(this.trigger, this.panel, () => {
1822
- (async () => {
1823
- const { x, y, placement, middlewareData } = await computePosition(this.trigger, this.panel, {
1824
- placement: this.options.placement,
1825
- strategy: this.options.strategy,
1826
- middleware: [
1827
- offset({ mainAxis: this.options.distance, crossAxis: this.options.skidding }),
1828
- flip(),
1829
- shift(),
1830
- size(this.options.sameWidth && {
1831
- apply({ rects, elements }) {
1832
- Object.assign(elements.floating.style, {
1833
- width: `${rects.reference.width}px`,
1834
- });
1835
- },
1836
- }),
1837
- arrow({ element: this.options.arrow || null }),
1838
- this.positionChange(),
1839
- hide(),
1840
- ],
1841
- });
1842
- this.applyPanelPosition(x, y);
1843
- this.applyArrowPosition(placement, middlewareData);
1844
- this.applyVisibility(middlewareData);
1845
- })();
1846
- });
1842
+ /**
1843
+ * Opens the `autoUpdate` subscription so the panel keeps tracking the
1844
+ * trigger through scroll, resize, layout and ancestor changes. No-op if
1845
+ * the subscription is already running.
1846
+ */
1847
+ start() {
1848
+ if (this.cleanup)
1849
+ return;
1850
+ this.cleanup = autoUpdate(this.trigger, this.panel, () => void this.reposition());
1847
1851
  }
1848
- destroy() {
1849
- if (!this.cleanUp)
1852
+ /**
1853
+ * Tears down the `autoUpdate` subscription. Idempotent — safe to call
1854
+ * multiple times, and before the first `start()`.
1855
+ */
1856
+ stop() {
1857
+ this.repositionId += 1;
1858
+ if (!this.cleanup)
1850
1859
  return;
1851
- this.cleanUp();
1860
+ this.cleanup();
1861
+ this.cleanup = undefined;
1852
1862
  }
1853
- positionChange() {
1854
- return {
1855
- name: 'positionChange',
1856
- fn: ({ placement: position }) => {
1857
- if (typeof this.options.onPositionChange !== 'function')
1858
- return {};
1859
- this.options.onPositionChange(position);
1860
- return {};
1861
- },
1862
- };
1863
+ /**
1864
+ * Runs a single Floating UI `computePosition` pass and applies the
1865
+ * resulting styles to the panel (and the arrow, if configured).
1866
+ */
1867
+ async reposition() {
1868
+ const repositionId = ++this.repositionId;
1869
+ const { arrow: arrowElement, distance, onPositionChange, placement: configuredPlacement, sameWidth, skidding, strategy, } = this.options;
1870
+ const { x, y, placement, middlewareData } = await computePosition(this.trigger, this.panel, {
1871
+ placement: configuredPlacement,
1872
+ strategy,
1873
+ middleware: [
1874
+ offset({ mainAxis: distance, crossAxis: skidding }),
1875
+ flip(),
1876
+ shift(),
1877
+ size({
1878
+ apply: ({ rects, elements }) => {
1879
+ if (repositionId !== this.repositionId || !elements.floating.isConnected)
1880
+ return;
1881
+ elements.floating.style.width = sameWidth ? `${rects.reference.width}px` : '';
1882
+ },
1883
+ }),
1884
+ ...(arrowElement ? [arrow({ element: arrowElement })] : []),
1885
+ hide(),
1886
+ ],
1887
+ });
1888
+ if (repositionId !== this.repositionId || !this.panel.isConnected)
1889
+ return;
1890
+ this.applyPanelPosition(x, y);
1891
+ this.applyArrowPosition(arrowElement, placement, middlewareData);
1892
+ this.applyVisibility(middlewareData);
1893
+ onPositionChange?.(placement);
1863
1894
  }
1864
1895
  applyPanelPosition(x, y) {
1896
+ const dpr = window.devicePixelRatio || 1;
1897
+ const roundedX = Math.round(x * dpr) / dpr;
1898
+ const roundedY = Math.round(y * dpr) / dpr;
1865
1899
  Object.assign(this.panel.style, {
1866
1900
  top: '0',
1867
1901
  left: '0',
1868
- transform: `translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)`,
1902
+ transform: `translate(${roundedX}px, ${roundedY}px)`,
1869
1903
  });
1870
1904
  }
1871
- applyArrowPosition(placement, middlewareData) {
1872
- if (!this.options.arrow)
1905
+ applyArrowPosition(arrowElement, placement, middlewareData) {
1906
+ if (!arrowElement)
1873
1907
  return;
1874
- const { x: arrowX, y: arrowY } = middlewareData.arrow;
1875
- const staticSide = {
1876
- top: 'bottom',
1877
- right: 'left',
1878
- bottom: 'top',
1879
- left: 'right',
1880
- }[placement.split('-')[0]];
1881
- Object.assign(this.options.arrow.style, {
1908
+ const { x: arrowX, y: arrowY } = middlewareData.arrow ?? {};
1909
+ const basePlacement = placement.split('-')[0];
1910
+ const staticSide = STATIC_SIDE_BY_PLACEMENT[basePlacement];
1911
+ Object.assign(arrowElement.style, {
1882
1912
  left: arrowX != null ? `${arrowX}px` : '',
1883
1913
  top: arrowY != null ? `${arrowY}px` : '',
1884
1914
  right: '',
@@ -1887,18 +1917,12 @@ class FloatingUI {
1887
1917
  });
1888
1918
  }
1889
1919
  applyVisibility(middlewareData) {
1890
- const { referenceHidden } = middlewareData.hide;
1891
- Object.assign(this.panel.style, {
1892
- visibility: referenceHidden ? 'hidden' : 'visible',
1893
- });
1894
- }
1895
- roundByDPR(value) {
1896
- const dpr = window.devicePixelRatio || 1;
1897
- return Math.round(value * dpr) / dpr;
1920
+ const referenceHidden = middlewareData.hide?.referenceHidden;
1921
+ this.panel.style.visibility = referenceHidden ? 'hidden' : 'visible';
1898
1922
  }
1899
1923
  }
1900
1924
 
1901
1925
  export { FloatingUI as F };
1902
- //# sourceMappingURL=index-CSAZnAFf.js.map
1926
+ //# sourceMappingURL=index-DXYHHeJY.js.map
1903
1927
 
1904
- //# sourceMappingURL=index-CSAZnAFf.js.map
1928
+ //# sourceMappingURL=index-DXYHHeJY.js.map