@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
@@ -3,11 +3,28 @@
3
3
  * © https://beeq.design - Apache 2 License.
4
4
  */
5
5
  import { arrow, autoUpdate, computePosition, flip, hide, offset, shift, size, } from "@floating-ui/dom";
6
+ const STATIC_SIDE_BY_PLACEMENT = {
7
+ top: 'bottom',
8
+ right: 'left',
9
+ bottom: 'top',
10
+ left: 'right',
11
+ };
12
+ /**
13
+ * Thin wrapper around Floating UI that owns the shared middleware pipeline
14
+ * and ensures each instance has at most one `autoUpdate` subscription.
15
+ *
16
+ * Lifecycle:
17
+ * - `start()` starts position tracking and performs an initial reposition.
18
+ * - `stop()` stops tracking and invalidates pending positioning results.
19
+ * - `reposition()` computes and applies the position once.
20
+ * - `configure(options)` updates options and repositions only when active.
21
+ */
6
22
  export class FloatingUI {
7
23
  panel;
8
24
  trigger;
9
25
  options;
10
- cleanUp;
26
+ cleanup;
27
+ repositionId = 0;
11
28
  constructor(trigger, panel, options) {
12
29
  this.trigger = trigger;
13
30
  this.panel = panel;
@@ -18,74 +35,92 @@ export class FloatingUI {
18
35
  sameWidth: false,
19
36
  ...options,
20
37
  };
21
- this.init(options);
22
38
  }
23
- init(options) {
24
- this.options = Object.assign(this.options, options);
25
- this.update();
39
+ /**
40
+ * Merges new options into the current configuration. Active instances
41
+ * reposition without recreating their `autoUpdate` subscription; stopped
42
+ * instances apply the options the next time they start.
43
+ */
44
+ configure(options) {
45
+ Object.assign(this.options, options);
46
+ this.repositionId += 1;
47
+ if (options.sameWidth === false) {
48
+ this.panel.style.width = '';
49
+ }
50
+ if (!this.cleanup)
51
+ return;
52
+ void this.reposition();
26
53
  }
27
- update() {
28
- this.cleanUp = autoUpdate(this.trigger, this.panel, () => {
29
- (async () => {
30
- const { x, y, placement, middlewareData } = await computePosition(this.trigger, this.panel, {
31
- placement: this.options.placement,
32
- strategy: this.options.strategy,
33
- middleware: [
34
- offset({ mainAxis: this.options.distance, crossAxis: this.options.skidding }),
35
- flip(),
36
- shift(),
37
- size(this.options.sameWidth && {
38
- apply({ rects, elements }) {
39
- Object.assign(elements.floating.style, {
40
- width: `${rects.reference.width}px`,
41
- });
42
- },
43
- }),
44
- arrow({ element: this.options.arrow || null }),
45
- this.positionChange(),
46
- hide(),
47
- ],
48
- });
49
- this.applyPanelPosition(x, y);
50
- this.applyArrowPosition(placement, middlewareData);
51
- this.applyVisibility(middlewareData);
52
- })();
53
- });
54
+ /**
55
+ * Opens the `autoUpdate` subscription so the panel keeps tracking the
56
+ * trigger through scroll, resize, layout and ancestor changes. No-op if
57
+ * the subscription is already running.
58
+ */
59
+ start() {
60
+ if (this.cleanup)
61
+ return;
62
+ this.cleanup = autoUpdate(this.trigger, this.panel, () => void this.reposition());
54
63
  }
55
- destroy() {
56
- if (!this.cleanUp)
64
+ /**
65
+ * Tears down the `autoUpdate` subscription. Idempotent — safe to call
66
+ * multiple times, and before the first `start()`.
67
+ */
68
+ stop() {
69
+ this.repositionId += 1;
70
+ if (!this.cleanup)
57
71
  return;
58
- this.cleanUp();
72
+ this.cleanup();
73
+ this.cleanup = undefined;
59
74
  }
60
- positionChange() {
61
- return {
62
- name: 'positionChange',
63
- fn: ({ placement: position }) => {
64
- if (typeof this.options.onPositionChange !== 'function')
65
- return {};
66
- this.options.onPositionChange(position);
67
- return {};
68
- },
69
- };
75
+ /**
76
+ * Runs a single Floating UI `computePosition` pass and applies the
77
+ * resulting styles to the panel (and the arrow, if configured).
78
+ */
79
+ async reposition() {
80
+ const repositionId = ++this.repositionId;
81
+ const { arrow: arrowElement, distance, onPositionChange, placement: configuredPlacement, sameWidth, skidding, strategy, } = this.options;
82
+ const { x, y, placement, middlewareData } = await computePosition(this.trigger, this.panel, {
83
+ placement: configuredPlacement,
84
+ strategy,
85
+ middleware: [
86
+ offset({ mainAxis: distance, crossAxis: skidding }),
87
+ flip(),
88
+ shift(),
89
+ size({
90
+ apply: ({ rects, elements }) => {
91
+ if (repositionId !== this.repositionId || !elements.floating.isConnected)
92
+ return;
93
+ elements.floating.style.width = sameWidth ? `${rects.reference.width}px` : '';
94
+ },
95
+ }),
96
+ ...(arrowElement ? [arrow({ element: arrowElement })] : []),
97
+ hide(),
98
+ ],
99
+ });
100
+ if (repositionId !== this.repositionId || !this.panel.isConnected)
101
+ return;
102
+ this.applyPanelPosition(x, y);
103
+ this.applyArrowPosition(arrowElement, placement, middlewareData);
104
+ this.applyVisibility(middlewareData);
105
+ onPositionChange?.(placement);
70
106
  }
71
107
  applyPanelPosition(x, y) {
108
+ const dpr = window.devicePixelRatio || 1;
109
+ const roundedX = Math.round(x * dpr) / dpr;
110
+ const roundedY = Math.round(y * dpr) / dpr;
72
111
  Object.assign(this.panel.style, {
73
112
  top: '0',
74
113
  left: '0',
75
- transform: `translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)`,
114
+ transform: `translate(${roundedX}px, ${roundedY}px)`,
76
115
  });
77
116
  }
78
- applyArrowPosition(placement, middlewareData) {
79
- if (!this.options.arrow)
117
+ applyArrowPosition(arrowElement, placement, middlewareData) {
118
+ if (!arrowElement)
80
119
  return;
81
- const { x: arrowX, y: arrowY } = middlewareData.arrow;
82
- const staticSide = {
83
- top: 'bottom',
84
- right: 'left',
85
- bottom: 'top',
86
- left: 'right',
87
- }[placement.split('-')[0]];
88
- Object.assign(this.options.arrow.style, {
120
+ const { x: arrowX, y: arrowY } = middlewareData.arrow ?? {};
121
+ const basePlacement = placement.split('-')[0];
122
+ const staticSide = STATIC_SIDE_BY_PLACEMENT[basePlacement];
123
+ Object.assign(arrowElement.style, {
89
124
  left: arrowX != null ? `${arrowX}px` : '',
90
125
  top: arrowY != null ? `${arrowY}px` : '',
91
126
  right: '',
@@ -94,14 +129,8 @@ export class FloatingUI {
94
129
  });
95
130
  }
96
131
  applyVisibility(middlewareData) {
97
- const { referenceHidden } = middlewareData.hide;
98
- Object.assign(this.panel.style, {
99
- visibility: referenceHidden ? 'hidden' : 'visible',
100
- });
101
- }
102
- roundByDPR(value) {
103
- const dpr = window.devicePixelRatio || 1;
104
- return Math.round(value * dpr) / dpr;
132
+ const referenceHidden = middlewareData.hide?.referenceHidden;
133
+ this.panel.style.visibility = referenceHidden ? 'hidden' : 'visible';
105
134
  }
106
135
  }
107
136
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/beeq/src/services/libraries/floating-ui/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n hide,\n type MiddlewareData,\n offset,\n type ReferenceElement,\n shift,\n size,\n} from '@floating-ui/dom';\n\nimport type { FloatingUIOptions } from '../../interfaces';\n\nexport class FloatingUI {\n panel: HTMLElement;\n trigger: ReferenceElement;\n options: FloatingUIOptions;\n cleanUp: () => void;\n\n constructor(trigger: ReferenceElement, panel: HTMLElement, options?: FloatingUIOptions) {\n this.trigger = trigger;\n this.panel = panel;\n this.options = {\n distance: 20,\n placement: 'bottom',\n strategy: 'absolute',\n sameWidth: false,\n ...options,\n };\n this.init(options);\n }\n\n init(options: FloatingUIOptions) {\n this.options = Object.assign(this.options, options);\n this.update();\n }\n\n update() {\n this.cleanUp = autoUpdate(this.trigger, this.panel, () => {\n (async () => {\n const { x, y, placement, middlewareData } = await computePosition(this.trigger, this.panel, {\n placement: this.options.placement,\n strategy: this.options.strategy,\n middleware: [\n offset({ mainAxis: this.options.distance, crossAxis: this.options.skidding }),\n flip(),\n shift(),\n size(\n this.options.sameWidth && {\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n },\n ),\n arrow({ element: this.options.arrow || null }),\n this.positionChange(),\n hide(),\n ],\n });\n\n this.applyPanelPosition(x, y);\n this.applyArrowPosition(placement, middlewareData);\n this.applyVisibility(middlewareData);\n })();\n });\n }\n\n destroy() {\n if (!this.cleanUp) return;\n this.cleanUp();\n }\n\n positionChange() {\n return {\n name: 'positionChange',\n fn: ({ placement: position }) => {\n if (typeof this.options.onPositionChange !== 'function') return {};\n this.options.onPositionChange(position);\n return {};\n },\n };\n }\n\n private applyPanelPosition(x: number, y: number) {\n Object.assign(this.panel.style, {\n top: '0',\n left: '0',\n transform: `translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)`,\n });\n }\n\n private applyArrowPosition(placement: string, middlewareData: MiddlewareData) {\n if (!this.options.arrow) return;\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n Object.assign(this.options.arrow.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n [staticSide]: '-4px',\n });\n }\n\n private applyVisibility(middlewareData: MiddlewareData) {\n const { referenceHidden } = middlewareData.hide;\n Object.assign(this.panel.style, {\n visibility: referenceHidden ? 'hidden' : 'visible',\n });\n }\n\n private roundByDPR(value: number) {\n const dpr = window.devicePixelRatio || 1;\n return Math.round(value * dpr) / dpr;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/beeq/src/services/libraries/floating-ui/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n hide,\n type MiddlewareData,\n offset,\n type Placement,\n type ReferenceElement,\n shift,\n size,\n} from '@floating-ui/dom';\n\nimport type { FloatingUIOptions } from '../../interfaces';\n\nconst STATIC_SIDE_BY_PLACEMENT = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n} as const;\n\n/**\n * Thin wrapper around Floating UI that owns the shared middleware pipeline\n * and ensures each instance has at most one `autoUpdate` subscription.\n *\n * Lifecycle:\n * - `start()` starts position tracking and performs an initial reposition.\n * - `stop()` stops tracking and invalidates pending positioning results.\n * - `reposition()` computes and applies the position once.\n * - `configure(options)` updates options and repositions only when active.\n */\nexport class FloatingUI {\n readonly panel: HTMLElement;\n readonly trigger: ReferenceElement;\n readonly options: FloatingUIOptions;\n private cleanup: (() => void) | undefined;\n private repositionId = 0;\n\n constructor(trigger: ReferenceElement, panel: HTMLElement, options?: FloatingUIOptions) {\n this.trigger = trigger;\n this.panel = panel;\n this.options = {\n distance: 20,\n placement: 'bottom',\n strategy: 'absolute',\n sameWidth: false,\n ...options,\n };\n }\n\n /**\n * Merges new options into the current configuration. Active instances\n * reposition without recreating their `autoUpdate` subscription; stopped\n * instances apply the options the next time they start.\n */\n configure(options: Partial<FloatingUIOptions>): void {\n Object.assign(this.options, options);\n this.repositionId += 1;\n\n if (options.sameWidth === false) {\n this.panel.style.width = '';\n }\n if (!this.cleanup) return;\n\n void this.reposition();\n }\n\n /**\n * Opens the `autoUpdate` subscription so the panel keeps tracking the\n * trigger through scroll, resize, layout and ancestor changes. No-op if\n * the subscription is already running.\n */\n start(): void {\n if (this.cleanup) return;\n\n this.cleanup = autoUpdate(this.trigger, this.panel, () => void this.reposition());\n }\n\n /**\n * Tears down the `autoUpdate` subscription. Idempotent — safe to call\n * multiple times, and before the first `start()`.\n */\n stop(): void {\n this.repositionId += 1;\n if (!this.cleanup) return;\n\n this.cleanup();\n this.cleanup = undefined;\n }\n\n /**\n * Runs a single Floating UI `computePosition` pass and applies the\n * resulting styles to the panel (and the arrow, if configured).\n */\n async reposition(): Promise<void> {\n const repositionId = ++this.repositionId;\n const {\n arrow: arrowElement,\n distance,\n onPositionChange,\n placement: configuredPlacement,\n sameWidth,\n skidding,\n strategy,\n } = this.options;\n const { x, y, placement, middlewareData } = await computePosition(this.trigger, this.panel, {\n placement: configuredPlacement,\n strategy,\n middleware: [\n offset({ mainAxis: distance, crossAxis: skidding }),\n flip(),\n shift(),\n size({\n apply: ({ rects, elements }) => {\n if (repositionId !== this.repositionId || !elements.floating.isConnected) return;\n elements.floating.style.width = sameWidth ? `${rects.reference.width}px` : '';\n },\n }),\n ...(arrowElement ? [arrow({ element: arrowElement })] : []),\n hide(),\n ],\n });\n\n if (repositionId !== this.repositionId || !this.panel.isConnected) return;\n\n this.applyPanelPosition(x, y);\n this.applyArrowPosition(arrowElement, placement, middlewareData);\n this.applyVisibility(middlewareData);\n\n onPositionChange?.(placement);\n }\n\n private applyPanelPosition(x: number, y: number): void {\n const dpr = window.devicePixelRatio || 1;\n const roundedX = Math.round(x * dpr) / dpr;\n const roundedY = Math.round(y * dpr) / dpr;\n\n Object.assign(this.panel.style, {\n top: '0',\n left: '0',\n transform: `translate(${roundedX}px, ${roundedY}px)`,\n });\n }\n\n private applyArrowPosition(\n arrowElement: HTMLElement | null | undefined,\n placement: Placement,\n middlewareData: MiddlewareData,\n ): void {\n if (!arrowElement) return;\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow ?? {};\n const basePlacement = placement.split('-')[0] as keyof typeof STATIC_SIDE_BY_PLACEMENT;\n const staticSide = STATIC_SIDE_BY_PLACEMENT[basePlacement];\n\n Object.assign(arrowElement.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n [staticSide]: '-4px',\n });\n }\n\n private applyVisibility(middlewareData: MiddlewareData): void {\n const referenceHidden = middlewareData.hide?.referenceHidden;\n this.panel.style.visibility = referenceHidden ? 'hidden' : 'visible';\n }\n}\n"]}
@@ -3,32 +3,32 @@
3
3
  * © https://beeq.design - Apache 2 License.
4
4
  */
5
5
  /**
6
- * Enhances page to retrieve element style by a given selector
7
- * @param {E2EPage} page - stencil instance of puppeteer page
8
- * @param {String} selector - selector to be passed to querySelector, it supports stencil `>>>` selector
9
- * @returns {Object} style declaration
6
+ * Retrieves computed CSS styles for an element, with support for shadow DOM piercing via `>>>` selector.
7
+ * Works directly with the DOM (designed for browser-mode e2e tests).
8
+ *
9
+ * @param {string} selector - CSS selector, supports `>>>` to pierce into shadow DOM
10
+ * @param {ReadonlyArray<T>} [filter] - Optional list of CSS property names to return
11
+ * @returns {Pick<CSSStyleDeclaration, T>} The computed style (filtered if specified)
10
12
  */
11
- export const computedStyle = (page, selector, filter) => {
12
- return page.evaluate((querySelector, filter) => {
13
- const [lightDomSelector, shadowDomSelector] = querySelector.split('>>>');
14
- let element = document.querySelector(lightDomSelector);
13
+ export const computedStyle = (selector, filter) => {
14
+ const [lightDomSelector, shadowDomSelector] = selector.split('>>>').map((s) => s.trim());
15
+ let element = document.querySelector(lightDomSelector);
16
+ if (!element) {
17
+ throw new Error(`Could not find element ${lightDomSelector}`);
18
+ }
19
+ if (shadowDomSelector) {
20
+ element = element.shadowRoot?.querySelector(shadowDomSelector) ?? null;
15
21
  if (!element) {
16
- throw new Error(`Could not find element ${lightDomSelector}`);
22
+ throw new Error(`Could not find element ${shadowDomSelector}`);
17
23
  }
18
- if (shadowDomSelector) {
19
- element = element.shadowRoot.querySelector(shadowDomSelector);
20
- if (!element) {
21
- throw new Error(`Could not find element ${shadowDomSelector}`);
22
- }
23
- }
24
- const style = getComputedStyle(element);
25
- if (filter) {
26
- return filter.reduce((acc, key) => {
27
- acc[key] = style[key];
28
- return acc;
29
- }, {});
30
- }
31
- return JSON.parse(JSON.stringify(style));
32
- }, selector, filter);
24
+ }
25
+ const style = getComputedStyle(element);
26
+ if (filter) {
27
+ return filter.reduce((acc, key) => {
28
+ acc[key] = style[key];
29
+ return acc;
30
+ }, {});
31
+ }
32
+ return JSON.parse(JSON.stringify(style));
33
33
  };
34
34
  //# sourceMappingURL=computedStyle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"computedStyle.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/test-utils/computedStyle.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAAa,EACb,QAAgB,EAChB,MAAyB,EACc,EAAE;IACzC,OAAO,IAAI,CAAC,QAAQ,CAClB,CAAC,aAAqB,EAAE,MAAiB,EAAE,EAAE;QAC3C,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEzE,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,gBAAgB,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YAE9D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,iBAAiB,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAkC,CACnC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC,EACD,QAAQ,EACR,MAAM,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { E2EPage } from '@stencil/core/testing';\n\n/**\n * Enhances page to retrieve element style by a given selector\n * @param {E2EPage} page - stencil instance of puppeteer page\n * @param {String} selector - selector to be passed to querySelector, it supports stencil `>>>` selector\n * @returns {Object} style declaration\n */\nexport const computedStyle = <T extends keyof CSSStyleDeclaration>(\n page: E2EPage,\n selector: string,\n filter?: ReadonlyArray<T>,\n): Promise<Pick<CSSStyleDeclaration, T>> => {\n return page.evaluate(\n (querySelector: string, filter?: Array<T>) => {\n const [lightDomSelector, shadowDomSelector] = querySelector.split('>>>');\n\n let element = document.querySelector(lightDomSelector);\n\n if (!element) {\n throw new Error(`Could not find element ${lightDomSelector}`);\n }\n\n if (shadowDomSelector) {\n element = element.shadowRoot.querySelector(shadowDomSelector);\n\n if (!element) {\n throw new Error(`Could not find element ${shadowDomSelector}`);\n }\n }\n\n const style = getComputedStyle(element);\n\n if (filter) {\n return filter.reduce(\n (acc, key) => {\n acc[key] = style[key];\n return acc;\n },\n {} as Pick<CSSStyleDeclaration, T>,\n );\n }\n\n return JSON.parse(JSON.stringify(style));\n },\n selector,\n filter,\n );\n};\n"]}
1
+ {"version":3,"file":"computedStyle.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/test-utils/computedStyle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,QAAgB,EAChB,MAAyB,EACK,EAAE;IAChC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAEzF,IAAI,OAAO,GAAmB,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAEvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,gBAAgB,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;QAEvE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,iBAAiB,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAkC,CACnC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC","sourcesContent":["/**\n * Retrieves computed CSS styles for an element, with support for shadow DOM piercing via `>>>` selector.\n * Works directly with the DOM (designed for browser-mode e2e tests).\n *\n * @param {string} selector - CSS selector, supports `>>>` to pierce into shadow DOM\n * @param {ReadonlyArray<T>} [filter] - Optional list of CSS property names to return\n * @returns {Pick<CSSStyleDeclaration, T>} The computed style (filtered if specified)\n */\nexport const computedStyle = <T extends keyof CSSStyleDeclaration>(\n selector: string,\n filter?: ReadonlyArray<T>,\n): Pick<CSSStyleDeclaration, T> => {\n const [lightDomSelector, shadowDomSelector] = selector.split('>>>').map((s) => s.trim());\n\n let element: Element | null = document.querySelector(lightDomSelector);\n\n if (!element) {\n throw new Error(`Could not find element ${lightDomSelector}`);\n }\n\n if (shadowDomSelector) {\n element = element.shadowRoot?.querySelector(shadowDomSelector) ?? null;\n\n if (!element) {\n throw new Error(`Could not find element ${shadowDomSelector}`);\n }\n }\n\n const style = getComputedStyle(element);\n\n if (filter) {\n return filter.reduce(\n (acc, key) => {\n acc[key] = style[key];\n return acc;\n },\n {} as Pick<CSSStyleDeclaration, T>,\n );\n }\n\n return JSON.parse(JSON.stringify(style));\n};\n"]}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  /**
6
6
  * Enhances page to set and retrieve properties based on attributes parameter. It typed against bq web components
7
- * @param {E2EPage} page - stencil instance of puppeteer page
7
+ * @param {E2EPage} page - Stencil E2E page instance
8
8
  * @param {String} element - element selector
9
9
  * @param {Object} attributes - attributes that will be set on element instance
10
10
  * @returns {Object} attributes that were set on element instance
@@ -1 +1 @@
1
- {"version":3,"file":"setProperties.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/test-utils/setProperties.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,IAAa,EACb,OAAU,EACV,UAA6C,EAC7C,EAAE;IACF,MAAM,IAAI,CAAC,KAAK,CACd,OAAO,EACP,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE;QACzB,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EACD,UAAU,CACX,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,OAAO,IAAI,CAAC,KAAK,CACf,OAAO,EACP,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE;QACzB,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,UAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,UAAU,CACX,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { E2EPage } from '@stencil/core/testing';\n\nexport type BqHTMLTagNameMap = keyof {\n [TAG in keyof HTMLElementTagNameMap as TAG extends `bq-${string}` ? TAG : never]: TAG extends `bq-${string}`\n ? TAG\n : never;\n};\n\n/**\n * Enhances page to set and retrieve properties based on attributes parameter. It typed against bq web components\n * @param {E2EPage} page - stencil instance of puppeteer page\n * @param {String} element - element selector\n * @param {Object} attributes - attributes that will be set on element instance\n * @returns {Object} attributes that were set on element instance\n */\nexport const setProperties = async <T extends keyof HTMLElementTagNameMap = BqHTMLTagNameMap>(\n page: E2EPage,\n element: T,\n attributes: Partial<HTMLElementTagNameMap[T]>,\n) => {\n await page.$eval(\n element,\n (elementRef, attributes) => {\n if (attributes && typeof attributes === 'object') {\n Object.keys(attributes).forEach((attr) => {\n elementRef[attr] = attributes[attr];\n });\n }\n },\n attributes,\n );\n\n await page.waitForChanges();\n\n return page.$eval(\n element,\n (elementRef, attributes) => {\n const attrs: Record<string, unknown> = {};\n if (attributes && typeof attributes === 'object') {\n Object.keys(attributes as object).forEach((attr) => {\n attrs[attr] = elementRef[attr];\n });\n }\n return attrs;\n },\n attributes,\n );\n};\n"]}
1
+ {"version":3,"file":"setProperties.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/test-utils/setProperties.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,IAAa,EACb,OAAU,EACV,UAA6C,EAC7C,EAAE;IACF,MAAM,IAAI,CAAC,KAAK,CACd,OAAO,EACP,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE;QACzB,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EACD,UAAU,CACX,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,OAAO,IAAI,CAAC,KAAK,CACf,OAAO,EACP,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE;QACzB,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,UAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,UAAU,CACX,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { E2EPage } from '@stencil/core/testing';\n\nexport type BqHTMLTagNameMap = keyof {\n [TAG in keyof HTMLElementTagNameMap as TAG extends `bq-${string}` ? TAG : never]: TAG extends `bq-${string}`\n ? TAG\n : never;\n};\n\n/**\n * Enhances page to set and retrieve properties based on attributes parameter. It typed against bq web components\n * @param {E2EPage} page - Stencil E2E page instance\n * @param {String} element - element selector\n * @param {Object} attributes - attributes that will be set on element instance\n * @returns {Object} attributes that were set on element instance\n */\nexport const setProperties = async <T extends keyof HTMLElementTagNameMap = BqHTMLTagNameMap>(\n page: E2EPage,\n element: T,\n attributes: Partial<HTMLElementTagNameMap[T]>,\n) => {\n await page.$eval(\n element,\n (elementRef, attributes) => {\n if (attributes && typeof attributes === 'object') {\n Object.keys(attributes).forEach((attr) => {\n elementRef[attr] = attributes[attr];\n });\n }\n },\n attributes,\n );\n\n await page.waitForChanges();\n\n return page.$eval(\n element,\n (elementRef, attributes) => {\n const attrs: Record<string, unknown> = {};\n if (attributes && typeof attributes === 'object') {\n Object.keys(attributes as object).forEach((attr) => {\n attrs[attr] = elementRef[attr];\n });\n }\n return attrs;\n },\n attributes,\n );\n};\n"]}
@@ -2,5 +2,9 @@
2
2
  * Built by Endavans
3
3
  * © https://beeq.design - Apache 2 License.
4
4
  */
5
- export { setTimeout as sleep } from 'node:timers/promises';
5
+ /**
6
+ * Returns a promise that resolves after the given number of milliseconds.
7
+ * Compatible with both Node.js (unit tests) and browser environments (e2e tests).
8
+ */
9
+ export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
6
10
  //# sourceMappingURL=sleep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/test-utils/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["export { setTimeout as sleep } from 'node:timers/promises';\n"]}
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/test-utils/sleep.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC","sourcesContent":["/**\n * Returns a promise that resolves after the given number of milliseconds.\n * Compatible with both Node.js (unit tests) and browser environments (e2e tests).\n */\nexport const sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));\n"]}
@@ -11,7 +11,7 @@ const CSSVALUEPREFIX = '--bq-';
11
11
  * @return {string} The corresponding CSS custom property variable
12
12
  */
13
13
  export function getColorCSSVariable(colorName) {
14
- if (!isClient)
14
+ if (!isClient())
15
15
  return undefined;
16
16
  const token = `${CSSVALUEPREFIX}${colorName}`;
17
17
  const value = getComputedStyle(document.documentElement).getPropertyValue(token);
@@ -1 +1 @@
1
- {"version":3,"file":"cssVariables.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/cssVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,KAAK,GAAG,GAAG,cAAc,GAAG,SAAS,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,OAAO,OAAO,KAAK,GAAG,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,SAAkB;IACtE,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC","sourcesContent":["import { isClient } from './isClient';\n\nconst CSSVALUEPREFIX = '--bq-';\n\n/**\n * Get CSS custom property variable of a given color string value\n *\n * @param {string} colorName - Valid string value.\n * @return {string} The corresponding CSS custom property variable\n */\nexport function getColorCSSVariable(colorName: string): string | undefined {\n if (!isClient) return undefined;\n\n const token = `${CSSVALUEPREFIX}${colorName}`;\n const value = getComputedStyle(document.documentElement).getPropertyValue(token);\n if (!value) return undefined;\n\n return `var(${token})`;\n}\n\n/**\n * Get compiled CSS custom property value\n *\n * @param {string} variable - The variable name for which to get its value\n * @return {string} The corresponding value for the given CSS custom property\n */\nexport function getCSSVariableValue(variable: string, component: Element): string {\n const styles = getComputedStyle(component);\n return String(styles.getPropertyValue(`--${variable}`)).trim();\n}\n"]}
1
+ {"version":3,"file":"cssVariables.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/cssVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,IAAI,CAAC,QAAQ,EAAE;QAAE,OAAO,SAAS,CAAC;IAElC,MAAM,KAAK,GAAG,GAAG,cAAc,GAAG,SAAS,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,OAAO,OAAO,KAAK,GAAG,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,SAAkB;IACtE,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC","sourcesContent":["import { isClient } from './isClient';\n\nconst CSSVALUEPREFIX = '--bq-';\n\n/**\n * Get CSS custom property variable of a given color string value\n *\n * @param {string} colorName - Valid string value.\n * @return {string} The corresponding CSS custom property variable\n */\nexport function getColorCSSVariable(colorName: string): string | undefined {\n if (!isClient()) return undefined;\n\n const token = `${CSSVALUEPREFIX}${colorName}`;\n const value = getComputedStyle(document.documentElement).getPropertyValue(token);\n if (!value) return undefined;\n\n return `var(${token})`;\n}\n\n/**\n * Get compiled CSS custom property value\n *\n * @param {string} variable - The variable name for which to get its value\n * @return {string} The corresponding value for the given CSS custom property\n */\nexport function getCSSVariableValue(variable: string, component: Element): string {\n const styles = getComputedStyle(component);\n return String(styles.getPropertyValue(`--${variable}`)).trim();\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/event.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAY,EAAE,WAAwB,EAAW,EAAE;IAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IAElC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC,CAAC","sourcesContent":["/**\n * Check if the event target is a child of the host element\n * @param event - The event to check\n * @param hostElement - The host element to check against\n * @returns True if the event target is a child of the host element\n */\nexport const isEventTargetChildOfElement = (event: Event, hostElement: HTMLElement): boolean => {\n const path = event.composedPath();\n\n return path.includes(hostElement);\n};\n"]}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/event.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAY,EAAE,WAAwB,EAAW,EAAE;IAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IAElC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC,CAAC","sourcesContent":["/**\n * Check if the event target is a child of the host element\n * @param event - The event to check\n * @param hostElement - The host element to check against\n * @returns True if the event target is a child of the host element\n */\nexport const isEventTargetChildOfElement = (event: Event, hostElement: EventTarget): boolean => {\n const path = event.composedPath();\n\n return path.includes(hostElement);\n};\n"]}
@@ -16,6 +16,7 @@ export * from './isDefined';
16
16
  export * from './isEmpty';
17
17
  export * from './isHTMLElement';
18
18
  export * from './isNil';
19
+ export * from './isPopoverSupported';
19
20
  export * from './isString';
20
21
  export * from './props';
21
22
  export * from './scrollLock';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC","sourcesContent":["export * from './assetsPath';\nexport * from './clamp';\nexport * from './cssVariables';\nexport * from './date';\nexport * from './debounce';\nexport * from './event';\nexport * from './form';\nexport * from './getNextElement';\nexport * from './getRandom';\nexport * from './isClient';\nexport * from './isDefined';\nexport * from './isEmpty';\nexport * from './isHTMLElement';\nexport * from './isNil';\nexport * from './isString';\nexport * from './props';\nexport * from './scrollLock';\nexport * from './setRafTimeout';\nexport * from './slot';\nexport * from './stringToArray';\nexport * from './transition';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC","sourcesContent":["export * from './assetsPath';\nexport * from './clamp';\nexport * from './cssVariables';\nexport * from './date';\nexport * from './debounce';\nexport * from './event';\nexport * from './form';\nexport * from './getNextElement';\nexport * from './getRandom';\nexport * from './isClient';\nexport * from './isDefined';\nexport * from './isEmpty';\nexport * from './isHTMLElement';\nexport * from './isNil';\nexport * from './isPopoverSupported';\nexport * from './isString';\nexport * from './props';\nexport * from './scrollLock';\nexport * from './setRafTimeout';\nexport * from './slot';\nexport * from './stringToArray';\nexport * from './transition';\n"]}
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Built by Endavans
3
+ * © https://beeq.design - Apache 2 License.
4
+ */
5
+ /** Returns whether the current runtime provides the complete HTML Popover API. */
6
+ export const isPopoverSupported = () => {
7
+ return (typeof HTMLElement !== 'undefined' &&
8
+ 'popover' in HTMLElement.prototype &&
9
+ typeof HTMLElement.prototype.showPopover === 'function' &&
10
+ typeof HTMLElement.prototype.hidePopover === 'function');
11
+ };
12
+ //# sourceMappingURL=isPopoverSupported.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPopoverSupported.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/isPopoverSupported.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAY,EAAE;IAC9C,OAAO,CACL,OAAO,WAAW,KAAK,WAAW;QAClC,SAAS,IAAI,WAAW,CAAC,SAAS;QAClC,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,KAAK,UAAU;QACvD,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,KAAK,UAAU,CACxD,CAAC;AACJ,CAAC,CAAC","sourcesContent":["/** Returns whether the current runtime provides the complete HTML Popover API. */\nexport const isPopoverSupported = (): boolean => {\n return (\n typeof HTMLElement !== 'undefined' &&\n 'popover' in HTMLElement.prototype &&\n typeof HTMLElement.prototype.showPopover === 'function' &&\n typeof HTMLElement.prototype.hidePopover === 'function'\n );\n};\n"]}
@@ -12,13 +12,14 @@
12
12
  * @returns {void}
13
13
  */
14
14
  export const validatePropValue = (ACCEPTED_VALUES, fallbackValue, element, propertyName) => {
15
- const propertyValue = element[propertyName];
15
+ const propertyKey = propertyName;
16
+ const propertyValue = element[propertyKey];
16
17
  // Early return if the property value is one of the accepted values
17
18
  if (ACCEPTED_VALUES.includes(propertyValue))
18
19
  return;
19
20
  // Override property with fallback value
20
- element[propertyName] = fallbackValue;
21
+ element[propertyKey] = fallbackValue;
21
22
  // Notify developer in the browser console
22
- console.warn(`[${element.tagName.toUpperCase()}] Please notice that "${String(propertyName)}" should be one of ${ACCEPTED_VALUES.join('|')}`);
23
+ console.warn(`[${element.tagName.toUpperCase()}] Please notice that "${propertyKey}" should be one of ${ACCEPTED_VALUES.join('|')}`);
23
24
  };
24
25
  //# sourceMappingURL=props.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/props.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,eAA8B,EAC9B,aAAgB,EAChB,OAAU,EACV,YAAkC,EAC5B,EAAE;IACR,MAAM,aAAa,GAAG,OAAO,CAAC,YAAsB,CAAC,CAAC;IACtD,mEAAmE;IACnE,IAAI,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO;IACpD,wCAAwC;IACxC,OAAO,CAAC,YAAsB,CAAC,GAAG,aAAa,CAAC;IAChD,0CAA0C;IAC1C,OAAO,CAAC,IAAI,CACV,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,yBAAyB,MAAM,CAC9D,YAAY,CACb,sBAAsB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACnD,CAAC;AACJ,CAAC,CAAC","sourcesContent":["export type TExtractProp<T> = T[keyof T] extends infer U ? U : never;\nexport type TValidProperty<E, T> = TExtractProp<{ [K in keyof E]: E[K] extends T ? K : never }>;\n\n/**\n * Validate the element property value, if is one of the accepted values\n *\n * @param {readonly} ACCEPTED_VALUES - The list of the accepted values to check against.\n * @param {unknown} fallbackValue - The default value to assign\n * @param {Element} element - The component reference\n * @param {string} propertyName - The property name (will be used in the console notification)\n * @returns {void}\n */\nexport const validatePropValue = <T extends E[keyof E], E extends Element>(\n ACCEPTED_VALUES: Readonly<T[]>,\n fallbackValue: T,\n element: E,\n propertyName: TValidProperty<E, T>,\n): void => {\n const propertyValue = element[propertyName as string];\n // Early return if the property value is one of the accepted values\n if (ACCEPTED_VALUES.includes(propertyValue)) return;\n // Override property with fallback value\n element[propertyName as string] = fallbackValue;\n // Notify developer in the browser console\n console.warn(\n `[${element.tagName.toUpperCase()}] Please notice that \"${String(\n propertyName,\n )}\" should be one of ${ACCEPTED_VALUES.join('|')}`,\n );\n};\n"]}
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/props.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,eAA8B,EAC9B,aAAgB,EAChB,OAAU,EACV,YAAkC,EAC5B,EAAE;IACR,MAAM,WAAW,GAAG,YAAsB,CAAC;IAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,mEAAmE;IACnE,IAAI,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO;IACpD,wCAAwC;IACxC,OAAO,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC;IACrC,0CAA0C;IAC1C,OAAO,CAAC,IAAI,CACV,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,yBAAyB,WAAW,sBAAsB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACvH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["export type TExtractProp<T> = T[keyof T] extends infer U ? U : never;\nexport type TValidProperty<E, T> = TExtractProp<{ [K in keyof E]: E[K] extends T ? K : never }>;\n\n/**\n * Validate the element property value, if is one of the accepted values\n *\n * @param {readonly} ACCEPTED_VALUES - The list of the accepted values to check against.\n * @param {unknown} fallbackValue - The default value to assign\n * @param {Element} element - The component reference\n * @param {string} propertyName - The property name (will be used in the console notification)\n * @returns {void}\n */\nexport const validatePropValue = <T extends E[keyof E], E extends Element>(\n ACCEPTED_VALUES: Readonly<T[]>,\n fallbackValue: T,\n element: E,\n propertyName: TValidProperty<E, T>,\n): void => {\n const propertyKey = propertyName as string;\n const propertyValue = element[propertyKey];\n // Early return if the property value is one of the accepted values\n if (ACCEPTED_VALUES.includes(propertyValue)) return;\n // Override property with fallback value\n element[propertyKey] = fallbackValue;\n // Notify developer in the browser console\n console.warn(\n `[${element.tagName.toUpperCase()}] Please notice that \"${propertyKey}\" should be one of ${ACCEPTED_VALUES.join('|')}`,\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"slot.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/slot.ts"],"names":[],"mappings":"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","sourcesContent":["/*=========================================================================================\n= Credit: =\n= https://github.com/shoelace-style/shoelace/blob/next/src/utilities/slot.ts =\n=========================================================================================*/\n\nfunction isElementNode(node: Node): node is HTMLElement {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nfunction isTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n\nfunction getText(node: Node, currentLevel = 1, maxLevel = Infinity): string {\n let text = '';\n if (currentLevel <= maxLevel) {\n if (isTextNode(node)) {\n text += node.textContent;\n } else if (isElementNode(node) && node.hasChildNodes()) {\n const nextLevel = currentLevel + 1;\n node.childNodes.forEach((node) => {\n text += getText(node, nextLevel, maxLevel);\n });\n }\n }\n\n return text;\n}\n\nexport interface IOptions {\n recurse: boolean;\n maxLevel?: number;\n}\n\n/**\n * Iterates over all of its assigned element and text nodes of a given slot and returns the concatenated HTML as a string.\n *\n * @param {HTMLSlotElement} slot - Slot HTML element\n * @return {string} The concatenated HTML as a string\n */\nexport function getInnerHTML(slot: HTMLSlotElement): string {\n const nodes = slot.assignedNodes({ flatten: true });\n let html = '';\n\n [...nodes].forEach((node) => {\n if (isElementNode(node)) {\n html += node.outerHTML;\n }\n\n if (isTextNode(node)) {\n html += node.textContent;\n }\n });\n\n return html;\n}\n\n/**\n * Iterates over all of its assigned text nodes of a given slot and returns the concatenated text as a string.\n *\n * @param {HTMLSlotElement} slot - Slot HTML element\n * @return {string} The concatenated text as a string\n */\nexport function getTextContent(slot: HTMLSlotElement): string;\n/**\n * Iterates over all of its assigned text nodes of a given slot and returns the concatenated text as a string.\n *\n * @param {HTMLSlotElement} slot - Slot HTML element\n * @param {IOptions} options - Options to retrieve text\n * @return {string} The concatenated text as a string\n */\nexport function getTextContent(slot: HTMLSlotElement, options: IOptions): string;\nexport function getTextContent(slot: HTMLSlotElement, options?: IOptions): string {\n const nodes = slot.assignedNodes({ flatten: true });\n const { recurse = false, maxLevel } = options ?? {};\n let text = '';\n\n [...nodes].forEach((node) => {\n text += getText(node, 1, recurse ? maxLevel : 1);\n });\n\n return text.trim();\n}\n\n/**\n * Determines whether a slot with the given name exists in an element.\n *\n * @param {HTMLElement} el - The HTMl element to check\n * @param {string} name - Name of the slot to check inside the HTML element\n * @return {boolean} True or false if the given HTML element has slot\n */\nexport function hasSlot(el: HTMLElement, name: string): boolean {\n return (\n Array.from(el.querySelectorAll('[slot]')).filter((slottedEl: HTMLSlotElement) => slottedEl.slot === name).length > 0\n );\n}\n\n/**\n * Will return whether if a given slot have HTML children elements or not.\n *\n * @param {HTMLElement} el - The HTML element that holds the slot\n * @param {string} [name] - Optional slot name\n * @return {boolean} True or false if the slot have HTML children elements\n */\nexport function hasSlotContent(el: HTMLElement, name?: string): boolean {\n if (!el) return false;\n\n const slotSelector = name ? `[name='${name}']` : '';\n const slotContent = el.querySelector<HTMLSlotElement>(`slot${slotSelector}`)?.assignedElements({ flatten: true });\n if (!slotContent || !Array.isArray(slotContent)) return false;\n\n return !!slotContent.length;\n}\n"]}
1
+ {"version":3,"file":"slot.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/slot.ts"],"names":[],"mappings":"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","sourcesContent":["/*=========================================================================================\n= Credit: =\n= https://github.com/shoelace-style/shoelace/blob/next/src/utilities/slot.ts =\n=========================================================================================*/\n\nfunction isElementNode(node: Node): node is HTMLElement {\n return node.nodeType === Node.ELEMENT_NODE;\n}\n\nfunction isTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n\nfunction getText(node: Node, currentLevel = 1, maxLevel = Infinity): string {\n let text = '';\n if (currentLevel <= maxLevel) {\n if (isTextNode(node)) {\n text += node.textContent;\n } else if (isElementNode(node) && node.hasChildNodes()) {\n const nextLevel = currentLevel + 1;\n node.childNodes.forEach((node) => {\n text += getText(node, nextLevel, maxLevel);\n });\n }\n }\n\n return text;\n}\n\nexport interface IOptions {\n recurse: boolean;\n maxLevel?: number;\n}\n\n/**\n * Iterates over all of its assigned element and text nodes of a given slot and returns the concatenated HTML as a string.\n *\n * @param {HTMLSlotElement} slot - Slot HTML element\n * @return {string} The concatenated HTML as a string\n */\nexport function getInnerHTML(slot: HTMLSlotElement): string {\n const nodes = slot.assignedNodes({ flatten: true });\n let html = '';\n\n [...nodes].forEach((node) => {\n if (isElementNode(node)) {\n html += node.outerHTML;\n }\n\n if (isTextNode(node)) {\n html += node.textContent;\n }\n });\n\n return html;\n}\n\n/**\n * Iterates over all of its assigned text nodes of a given slot and returns the concatenated text as a string.\n *\n * @param {HTMLSlotElement} slot - Slot HTML element\n * @return {string} The concatenated text as a string\n */\nexport function getTextContent(slot: HTMLSlotElement): string;\n/**\n * Iterates over all of its assigned text nodes of a given slot and returns the concatenated text as a string.\n *\n * @param {HTMLSlotElement} slot - Slot HTML element\n * @param {IOptions} options - Options to retrieve text\n * @return {string} The concatenated text as a string\n */\nexport function getTextContent(slot: HTMLSlotElement, options: IOptions): string;\nexport function getTextContent(slot: HTMLSlotElement, options?: IOptions): string {\n const nodes = slot.assignedNodes({ flatten: true });\n const { recurse = false, maxLevel } = options ?? {};\n let text = '';\n\n [...nodes].forEach((node) => {\n text += getText(node, 1, recurse ? maxLevel : 1);\n });\n\n return text.trim();\n}\n\n/**\n * Determines whether a slot with the given name exists in an element.\n *\n * @param {HTMLElement} el - The HTMl element to check\n * @param {string} name - Name of the slot to check inside the HTML element\n * @return {boolean} True or false if the given HTML element has slot\n */\nexport function hasSlot(el: HTMLElement, name: string): boolean {\n return (\n Array.from(el.querySelectorAll('[slot]')).filter((slottedEl: HTMLSlotElement) => slottedEl.slot === name).length > 0\n );\n}\n\n/**\n * Will return whether if a given slot have HTML children elements or not.\n *\n * @param {HTMLElement} el - The HTML element that holds the slot\n * @param {string} [name] - Optional slot name\n * @return {boolean} True or false if the slot have HTML children elements\n */\nexport function hasSlotContent(el?: HTMLElement, name?: string): boolean {\n if (!el) return false;\n\n const slotSelector = name ? `[name='${name}']` : '';\n const slotContent = el.querySelector<HTMLSlotElement>(`slot${slotSelector}`)?.assignedElements({ flatten: true });\n if (!slotContent || !Array.isArray(slotContent)) return false;\n\n return !!slotContent.length;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/transition.ts"],"names":[],"mappings":"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","sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Credits to MikeMcCall for the original implementation */\n/* Github: https://github.com/mmccall10/el-transition */\n/* -------------------------------------------------------------------------- */\n\ninterface HTMLElementWithAnimations extends HTMLElement {\n getAnimations(): Animation[];\n}\n\n/**\n * Transition an element entry\n *\n * @param element The element to enter\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const enter = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n element.classList.remove('hidden');\n await transition('enter', element, transitionName);\n};\n\n/**\n * Transition an element exit\n *\n * @param element The element to leave\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const leave = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n await transition('leave', element, transitionName);\n element.classList.add('hidden');\n};\n\n/**\n * Toggle an element entry/exit\n *\n * @param element The element to toggle\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const toggle = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n if (element.classList.contains('hidden')) {\n await enter(element, transitionName);\n } else {\n await leave(element, transitionName);\n }\n};\n\n/**\n * Perform a transition on an element\n *\n * @param direction The direction of the transition\n * @param element The element to transition\n * @param animation The animation to use\n * @returns A promise that resolves when the transition is complete\n * @internal\n */\nconst transition = async (direction: string, element: HTMLElement, animation: string | null): Promise<void> => {\n const { dataset } = element;\n const animationClass = animation ? `${animation}-${direction}` : direction;\n const transitionKey = `transition${direction.charAt(0).toUpperCase() + direction.slice(1)}`;\n\n // Get the genesis, start, and end classes\n const genesisClasses = getDatasetValueOrDefault(dataset, transitionKey, animationClass);\n const startClasses = getDatasetValueOrDefault(dataset, `${transitionKey}Start`, `${animationClass}-start`);\n const endClasses = getDatasetValueOrDefault(dataset, `${transitionKey}End`, `${animationClass}-end`);\n\n // Add genesis and start classes, then wait for the next frame\n addClasses(element, genesisClasses);\n addClasses(element, startClasses);\n await nextFrame();\n\n // Replace start classes with end classes, then wait for the transition to finish\n removeClasses(element, startClasses);\n addClasses(element, endClasses);\n await afterTransition(element as HTMLElementWithAnimations);\n\n // Remove end and genesis classes\n removeClasses(element, endClasses);\n removeClasses(element, genesisClasses);\n};\n\n/**\n * Get the value of a dataset key or a default value\n *\n * @param dataset The dataset to get the value from\n * @param key The key to get the value for\n * @param defaultValue The default value to return if the key is not found\n * @returns The value of the dataset key or the default value\n * @internal\n */\nconst getDatasetValueOrDefault = (dataset: DOMStringMap, key: string, defaultValue: string): string[] => {\n return dataset[key] ? dataset[key].split(' ') : [defaultValue];\n};\n\n/**\n * Add classes to an element\n *\n * @param element The element to add the CSS classes to\n * @param classes The classes to add\n * @internal\n */\nconst addClasses = (element: HTMLElement, classes: string[]): void => {\n element.classList.add(...classes);\n};\n\n/**\n * Remove classes from an element\n *\n * @param element The element to remove the CSS classes from\n * @param classes The classes to remove\n * @internal\n */\nconst removeClasses = (element: HTMLElement, classes: string[]): void => {\n element.classList.remove(...classes);\n};\n\n/**\n * Wait for the next frame\n * @returns A promise that resolves when the next frame is available\n * @internal\n */\nconst nextFrame = (): Promise<void> => {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => resolve());\n });\n });\n};\n\n/**\n * Wait for all animations to finish\n * @param element The element to wait for\n * @returns A promise that resolves when all animations are finished\n * @internal\n */\nconst afterTransition = (element: HTMLElementWithAnimations): Promise<Animation[]> => {\n return Promise.all(element.getAnimations().map((animation) => animation.finished));\n};\n"]}
1
+ {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../../../../../packages/beeq/src/shared/utils/transition.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAMhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,OAAoB,EAAE,iBAAgC,IAAI,EAAiB,EAAE;IACvG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,OAAoB,EAAE,iBAAgC,IAAI,EAAiB,EAAE;IACvG,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACnD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,OAAoB,EAAE,iBAAgC,IAAI,EAAiB,EAAE;IACxG,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAoB,EAAE,SAAwB,EAAiB,EAAE;IAC5G,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,aAAa,GAAG,aAAa,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5F,0CAA0C;IAC1C,MAAM,cAAc,GAAG,wBAAwB,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,wBAAwB,CAAC,OAAO,EAAE,GAAG,aAAa,OAAO,EAAE,GAAG,cAAc,QAAQ,CAAC,CAAC;IAC3G,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,EAAE,GAAG,aAAa,KAAK,EAAE,GAAG,cAAc,MAAM,CAAC,CAAC;IAErG,8DAA8D;IAC9D,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACpC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClC,MAAM,SAAS,EAAE,CAAC;IAElB,iFAAiF;IACjF,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAChC,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAE/B,iCAAiC;IACjC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,wBAAwB,GAAG,CAAC,OAAqB,EAAE,GAAW,EAAE,YAAoB,EAAY,EAAE;IACtG,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAE,OAAiB,EAAQ,EAAE;IACnE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,OAAoB,EAAE,OAAiB,EAAQ,EAAE;IACtE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,SAAS,GAAG,GAAkB,EAAE;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,qBAAqB,CAAC,GAAG,EAAE;YACzB,qBAAqB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,eAAe,GAAG,CAAC,OAAkC,EAAwB,EAAE;IACnF,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC","sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Credits to MikeMcCall for the original implementation */\n/* Github: https://github.com/mmccall10/el-transition */\n/* -------------------------------------------------------------------------- */\n\ninterface HTMLElementWithAnimations extends HTMLElement {\n getAnimations(): Animation[];\n}\n\n/**\n * Transition an element entry\n *\n * @param element The element to enter\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const enter = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n element.classList.remove('hidden');\n await transition('enter', element, transitionName);\n};\n\n/**\n * Transition an element exit\n *\n * @param element The element to leave\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const leave = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n await transition('leave', element, transitionName);\n element.classList.add('hidden');\n};\n\n/**\n * Toggle an element entry/exit\n *\n * @param element The element to toggle\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const toggle = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n if (element.classList.contains('hidden')) {\n await enter(element, transitionName);\n } else {\n await leave(element, transitionName);\n }\n};\n\n/**\n * Perform a transition on an element\n *\n * @param direction The direction of the transition\n * @param element The element to transition\n * @param animation The animation to use\n * @returns A promise that resolves when the transition is complete\n * @internal\n */\nconst transition = async (direction: string, element: HTMLElement, animation: string | null): Promise<void> => {\n const { dataset } = element;\n const animationClass = animation ? `${animation}-${direction}` : direction;\n const transitionKey = `transition${direction.charAt(0).toUpperCase() + direction.slice(1)}`;\n\n // Get the genesis, start, and end classes\n const genesisClasses = getDatasetValueOrDefault(dataset, transitionKey, animationClass);\n const startClasses = getDatasetValueOrDefault(dataset, `${transitionKey}Start`, `${animationClass}-start`);\n const endClasses = getDatasetValueOrDefault(dataset, `${transitionKey}End`, `${animationClass}-end`);\n\n // Add genesis and start classes, then wait for the next frame\n addClasses(element, genesisClasses);\n addClasses(element, startClasses);\n await nextFrame();\n\n // Replace start classes with end classes, then wait for the transition to finish\n removeClasses(element, startClasses);\n addClasses(element, endClasses);\n await afterTransition(element);\n\n // Remove end and genesis classes\n removeClasses(element, endClasses);\n removeClasses(element, genesisClasses);\n};\n\n/**\n * Get the value of a dataset key or a default value\n *\n * @param dataset The dataset to get the value from\n * @param key The key to get the value for\n * @param defaultValue The default value to return if the key is not found\n * @returns The value of the dataset key or the default value\n * @internal\n */\nconst getDatasetValueOrDefault = (dataset: DOMStringMap, key: string, defaultValue: string): string[] => {\n return dataset[key] ? dataset[key].split(' ') : [defaultValue];\n};\n\n/**\n * Add classes to an element\n *\n * @param element The element to add the CSS classes to\n * @param classes The classes to add\n * @internal\n */\nconst addClasses = (element: HTMLElement, classes: string[]): void => {\n element.classList.add(...classes);\n};\n\n/**\n * Remove classes from an element\n *\n * @param element The element to remove the CSS classes from\n * @param classes The classes to remove\n * @internal\n */\nconst removeClasses = (element: HTMLElement, classes: string[]): void => {\n element.classList.remove(...classes);\n};\n\n/**\n * Wait for the next frame\n * @returns A promise that resolves when the next frame is available\n * @internal\n */\nconst nextFrame = (): Promise<void> => {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => resolve());\n });\n });\n};\n\n/**\n * Wait for all animations to finish\n * @param element The element to wait for\n * @returns A promise that resolves when all animations are finished\n * @internal\n */\nconst afterTransition = (element: HTMLElementWithAnimations): Promise<Animation[]> => {\n return Promise.all(element.getAnimations().map((animation) => animation.finished));\n};\n"]}