@beeq/core 1.12.14-beta.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (545) 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/{p-9d1503bd.entry.js → p-0d078519.entry.js} +2 -2
  5. package/dist/beeq/{p-9d1503bd.entry.js.map → p-0d078519.entry.js.map} +1 -1
  6. package/dist/beeq/{p-7f9d895b.entry.js → p-1a2c4878.entry.js} +2 -2
  7. package/dist/beeq/{p-7f9d895b.entry.js.map → p-1a2c4878.entry.js.map} +1 -1
  8. package/dist/beeq/p-21db4f39.entry.js +6 -0
  9. package/dist/beeq/p-21db4f39.entry.js.map +1 -0
  10. package/dist/beeq/{p-f47905ae.entry.js → p-24bb2588.entry.js} +2 -2
  11. package/dist/beeq/{p-f47905ae.entry.js.map → p-24bb2588.entry.js.map} +1 -1
  12. package/dist/beeq/{p-41910dc5.entry.js → p-2a081a54.entry.js} +2 -2
  13. package/dist/beeq/{p-41910dc5.entry.js.map → p-2a081a54.entry.js.map} +1 -1
  14. package/dist/beeq/{p-515a1162.entry.js → p-2e1fffcd.entry.js} +2 -2
  15. package/dist/beeq/{p-515a1162.entry.js.map → p-2e1fffcd.entry.js.map} +1 -1
  16. package/dist/beeq/p-2fd6ea70.entry.js +6 -0
  17. package/dist/beeq/{p-2283258e.entry.js.map → p-2fd6ea70.entry.js.map} +1 -1
  18. package/dist/beeq/{p-7d356cce.entry.js → p-30d1bd84.entry.js} +2 -2
  19. package/dist/beeq/p-30d1bd84.entry.js.map +1 -0
  20. package/dist/beeq/{p-882966dd.entry.js → p-38006c8e.entry.js} +2 -2
  21. package/dist/beeq/p-3d754d97.entry.js +6 -0
  22. package/dist/beeq/p-3d754d97.entry.js.map +1 -0
  23. package/dist/beeq/{p-e9535627.entry.js → p-45ae19aa.entry.js} +2 -2
  24. package/dist/beeq/p-45ae19aa.entry.js.map +1 -0
  25. package/dist/beeq/{p-54bfb042.entry.js → p-56b49d4e.entry.js} +2 -2
  26. package/dist/beeq/{p-54bfb042.entry.js.map → p-56b49d4e.entry.js.map} +1 -1
  27. package/dist/beeq/{p-0d8618d2.entry.js → p-58813f83.entry.js} +2 -2
  28. package/dist/beeq/{p-0d8618d2.entry.js.map → p-58813f83.entry.js.map} +1 -1
  29. package/dist/beeq/{p-050c757b.entry.js → p-5eba392c.entry.js} +2 -2
  30. package/dist/beeq/{p-050c757b.entry.js.map → p-5eba392c.entry.js.map} +1 -1
  31. package/dist/beeq/{p-debcabde.entry.js → p-6a38fcaf.entry.js} +2 -2
  32. package/dist/beeq/{p-debcabde.entry.js.map → p-6a38fcaf.entry.js.map} +1 -1
  33. package/dist/beeq/{p-8dfd0329.entry.js → p-6b0f896f.entry.js} +2 -2
  34. package/dist/beeq/{p-a0ef4135.entry.js → p-6be3f23a.entry.js} +2 -2
  35. package/dist/beeq/{p-a0ef4135.entry.js.map → p-6be3f23a.entry.js.map} +1 -1
  36. package/dist/beeq/{p-ea473f56.entry.js → p-72ff2fe2.entry.js} +2 -2
  37. package/dist/beeq/{p-7527b08d.entry.js → p-79fd999a.entry.js} +2 -2
  38. package/dist/beeq/{p-7527b08d.entry.js.map → p-79fd999a.entry.js.map} +1 -1
  39. package/dist/beeq/{p-0323869d.entry.js → p-7ebe6b9d.entry.js} +2 -2
  40. package/dist/beeq/p-7ebe6b9d.entry.js.map +1 -0
  41. package/dist/beeq/{p-250ee94e.entry.js → p-817f7a5e.entry.js} +2 -2
  42. package/dist/beeq/{p-250ee94e.entry.js.map → p-817f7a5e.entry.js.map} +1 -1
  43. package/dist/beeq/{p-ad419446.entry.js → p-8bd7f4c2.entry.js} +2 -2
  44. package/dist/beeq/{p-e63d6c4f.entry.js → p-8be7ceb5.entry.js} +2 -2
  45. package/dist/beeq/{p-e63d6c4f.entry.js.map → p-8be7ceb5.entry.js.map} +1 -1
  46. package/dist/beeq/{p-42e388d0.entry.js → p-9413a4d3.entry.js} +2 -2
  47. package/dist/beeq/{p-42e388d0.entry.js.map → p-9413a4d3.entry.js.map} +1 -1
  48. package/dist/beeq/{p-c25c20bf.entry.js → p-96f72671.entry.js} +2 -2
  49. package/dist/beeq/p-96f72671.entry.js.map +1 -0
  50. package/dist/beeq/{p-CO2T68hs.js → p-BSSRzVAz.js} +2 -2
  51. package/dist/beeq/p-BSSRzVAz.js.map +1 -0
  52. package/dist/beeq/p-DbxZ8FhA.js +6 -0
  53. package/dist/beeq/p-DbxZ8FhA.js.map +1 -0
  54. package/dist/beeq/p-DdvbF5yL.js.map +1 -1
  55. package/dist/beeq/p-Dx-CEPSQ.js.map +1 -1
  56. package/dist/beeq/p-a0a8ea5b.entry.js +6 -0
  57. package/dist/beeq/p-a0a8ea5b.entry.js.map +1 -0
  58. package/dist/beeq/{p-2e9bc398.entry.js → p-a55354ee.entry.js} +2 -2
  59. package/dist/beeq/{p-2e9bc398.entry.js.map → p-a55354ee.entry.js.map} +1 -1
  60. package/dist/beeq/{p-7adb6e2e.entry.js → p-a72671f9.entry.js} +2 -2
  61. package/dist/beeq/p-a72671f9.entry.js.map +1 -0
  62. package/dist/beeq/{p-40bb4e2c.entry.js → p-bb99b400.entry.js} +2 -2
  63. package/dist/beeq/{p-40bb4e2c.entry.js.map → p-bb99b400.entry.js.map} +1 -1
  64. package/dist/beeq/p-bdb983f9.entry.js +6 -0
  65. package/dist/beeq/{p-bb46524f.entry.js.map → p-bdb983f9.entry.js.map} +1 -1
  66. package/dist/beeq/{p-cfe07fad.entry.js → p-cf2e4d57.entry.js} +2 -2
  67. package/dist/beeq/{p-cfe07fad.entry.js.map → p-cf2e4d57.entry.js.map} +1 -1
  68. package/dist/beeq/{p-6cd90918.entry.js → p-d6c35472.entry.js} +2 -2
  69. package/dist/beeq/{p-6cd90918.entry.js.map → p-d6c35472.entry.js.map} +1 -1
  70. package/dist/beeq/p-d792e3d3.entry.js +6 -0
  71. package/dist/beeq/{p-edc81a31.entry.js.map → p-d792e3d3.entry.js.map} +1 -1
  72. package/dist/beeq/{p-bae91da4.entry.js → p-e91ee0da.entry.js} +2 -2
  73. package/dist/beeq/{p-bae91da4.entry.js.map → p-e91ee0da.entry.js.map} +1 -1
  74. package/dist/beeq/{p-1fb43de2.entry.js → p-e9a1b183.entry.js} +2 -2
  75. package/dist/beeq/{p-580f0a77.entry.js → p-f3184477.entry.js} +2 -2
  76. package/dist/beeq/{p-580f0a77.entry.js.map → p-f3184477.entry.js.map} +1 -1
  77. package/dist/beeq/p-f688d230.entry.js +6 -0
  78. package/dist/beeq/{p-1e675bdc.entry.js.map → p-f688d230.entry.js.map} +1 -1
  79. package/dist/beeq/{p-3c77308c.entry.js → p-f891fb4b.entry.js} +2 -2
  80. package/dist/beeq/{p-40163197.entry.js → p-fa123a10.entry.js} +2 -2
  81. package/dist/beeq/{p-40163197.entry.js.map → p-fa123a10.entry.js.map} +1 -1
  82. package/dist/beeq/p-kY6d9Evy.js +6 -0
  83. package/dist/beeq/p-kY6d9Evy.js.map +1 -0
  84. package/dist/beeq/p-uqkxeAeG.js.map +1 -1
  85. package/dist/beeq/svg/.icons-meta.json +13 -0
  86. package/dist/beeq.html-custom-data.json +2214 -106
  87. package/dist/cjs/beeq.cjs.js +3 -3
  88. package/dist/cjs/beeq.cjs.js.map +1 -1
  89. package/dist/cjs/bq-accordion-group.cjs.entry.js +2 -2
  90. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
  91. package/dist/cjs/bq-accordion.cjs.entry.js +3 -3
  92. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  93. package/dist/cjs/bq-alert.cjs.entry.js +3 -3
  94. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  95. package/dist/cjs/bq-avatar.cjs.entry.js +3 -3
  96. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  97. package/dist/cjs/bq-badge.cjs.entry.js +3 -3
  98. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +3 -3
  99. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  100. package/dist/cjs/bq-breadcrumb.cjs.entry.js +2 -2
  101. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
  102. package/dist/cjs/bq-button_2.cjs.entry.js +6 -6
  103. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  104. package/dist/cjs/bq-card.cjs.entry.js +3 -3
  105. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  106. package/dist/cjs/bq-checkbox.cjs.entry.js +35 -22
  107. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  108. package/dist/cjs/bq-date-picker.cjs.entry.js +1743 -366
  109. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  110. package/dist/cjs/bq-dialog.cjs.entry.js +7 -7
  111. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  112. package/dist/cjs/bq-divider.cjs.entry.js +7 -7
  113. package/dist/cjs/bq-drawer.cjs.entry.js +7 -7
  114. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  115. package/dist/cjs/bq-dropdown_2.cjs.entry.js +6 -6
  116. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
  117. package/dist/cjs/bq-empty-state.cjs.entry.js +8 -8
  118. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  119. package/dist/cjs/bq-input.cjs.entry.js +17 -10
  120. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  121. package/dist/cjs/bq-notification.cjs.entry.js +8 -8
  122. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  123. package/dist/cjs/bq-option-group.cjs.entry.js +3 -3
  124. package/dist/cjs/bq-option-group.cjs.entry.js.map +1 -1
  125. package/dist/cjs/bq-option-list_2.cjs.entry.js +10 -10
  126. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  127. package/dist/cjs/bq-option.cjs.entry.js +5 -5
  128. package/dist/cjs/bq-page-title.cjs.entry.js +6 -6
  129. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
  130. package/dist/cjs/bq-progress.cjs.entry.js +7 -7
  131. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  132. package/dist/cjs/bq-radio-group.cjs.entry.js +8 -12
  133. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  134. package/dist/cjs/bq-radio.cjs.entry.js +5 -5
  135. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  136. package/dist/cjs/bq-select.cjs.entry.js +39 -10
  137. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  138. package/dist/cjs/bq-side-menu-item.cjs.entry.js +2 -2
  139. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  140. package/dist/cjs/bq-side-menu.cjs.entry.js +3 -3
  141. package/dist/cjs/bq-slider.cjs.entry.js +4 -4
  142. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  143. package/dist/cjs/bq-spinner.cjs.entry.js +8 -8
  144. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  145. package/dist/cjs/bq-status.cjs.entry.js +4 -4
  146. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  147. package/dist/cjs/bq-step-item.cjs.entry.js +7 -7
  148. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  149. package/dist/cjs/bq-steps.cjs.entry.js +4 -4
  150. package/dist/cjs/bq-switch.cjs.entry.js +9 -20
  151. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  152. package/dist/cjs/bq-tab-group.cjs.entry.js +5 -5
  153. package/dist/cjs/bq-tab.cjs.entry.js +6 -6
  154. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  155. package/dist/cjs/bq-textarea.cjs.entry.js +17 -15
  156. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  157. package/dist/cjs/bq-toast.cjs.entry.js +5 -7
  158. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  159. package/dist/cjs/bq-tooltip.cjs.entry.js +6 -6
  160. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  161. package/dist/cjs/{cssVariables-exM7Oz37.js → cssVariables-DuVz7KcV.js} +3 -3
  162. package/dist/cjs/cssVariables-DuVz7KcV.js.map +1 -0
  163. package/dist/cjs/event-BhuEFC-I.js.map +1 -1
  164. package/dist/cjs/{index-BSrsKFVG.js → index-J9jJ-fFQ.js} +47 -12
  165. package/dist/cjs/index-J9jJ-fFQ.js.map +1 -0
  166. package/dist/cjs/index.cjs.js +2 -2
  167. package/dist/cjs/loader.cjs.js +2 -2
  168. package/dist/cjs/{props-DzFXZXSF.js → props-BXpv3G-e.js} +6 -5
  169. package/dist/cjs/props-BXpv3G-e.js.map +1 -0
  170. package/dist/cjs/slot-DKWrtk4b.js.map +1 -1
  171. package/dist/cjs/transition-C0S-pYqN.js.map +1 -1
  172. package/dist/collection/collection-manifest.json +1 -1
  173. package/dist/collection/components/accordion-group/scss/bq-accordion-group.css +1 -1
  174. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  175. package/dist/collection/components/avatar/scss/bq-avatar.css +1 -1
  176. package/dist/collection/components/breadcrumb/scss/bq-breadcrumb.css +1 -1
  177. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js +1 -1
  178. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js.map +1 -1
  179. package/dist/collection/components/breadcrumb-item/scss/bq-breadcrumb-item.css +1 -1
  180. package/dist/collection/components/button/scss/bq-button.css +1 -1
  181. package/dist/collection/components/card/scss/bq-card.css +1 -1
  182. package/dist/collection/components/checkbox/bq-checkbox.js +35 -21
  183. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  184. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  185. package/dist/collection/components/date-picker/bq-date-picker.js +1141 -457
  186. package/dist/collection/components/date-picker/bq-date-picker.js.map +1 -1
  187. package/dist/collection/components/date-picker/bq-date-picker.types.js +29 -0
  188. package/dist/collection/components/date-picker/bq-date-picker.types.js.map +1 -1
  189. package/dist/collection/components/date-picker/components/CalendarDayView.js +96 -0
  190. package/dist/collection/components/date-picker/components/CalendarDayView.js.map +1 -0
  191. package/dist/collection/components/date-picker/components/CalendarHeader.js +18 -0
  192. package/dist/collection/components/date-picker/components/CalendarHeader.js.map +1 -0
  193. package/dist/collection/components/date-picker/components/CalendarMonthView.js +70 -0
  194. package/dist/collection/components/date-picker/components/CalendarMonthView.js.map +1 -0
  195. package/dist/collection/components/date-picker/components/CalendarYearView.js +68 -0
  196. package/dist/collection/components/date-picker/components/CalendarYearView.js.map +1 -0
  197. package/dist/collection/components/date-picker/helper/bounds.js +114 -0
  198. package/dist/collection/components/date-picker/helper/bounds.js.map +1 -0
  199. package/dist/collection/components/date-picker/helper/calendar.js +156 -0
  200. package/dist/collection/components/date-picker/helper/calendar.js.map +1 -0
  201. package/dist/collection/components/date-picker/helper/constants.js +62 -16
  202. package/dist/collection/components/date-picker/helper/constants.js.map +1 -1
  203. package/dist/collection/components/date-picker/helper/input.js +37 -0
  204. package/dist/collection/components/date-picker/helper/input.js.map +1 -0
  205. package/dist/collection/components/date-picker/helper/intl.js +78 -0
  206. package/dist/collection/components/date-picker/helper/intl.js.map +1 -0
  207. package/dist/collection/components/date-picker/helper/labels.js +61 -0
  208. package/dist/collection/components/date-picker/helper/labels.js.map +1 -0
  209. package/dist/collection/components/date-picker/helper/navigation.js +45 -0
  210. package/dist/collection/components/date-picker/helper/navigation.js.map +1 -0
  211. package/dist/collection/components/date-picker/helper/selection.js +167 -0
  212. package/dist/collection/components/date-picker/helper/selection.js.map +1 -0
  213. package/dist/collection/components/date-picker/helper/value.js +49 -0
  214. package/dist/collection/components/date-picker/helper/value.js.map +1 -0
  215. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  216. package/dist/collection/components/dialog/bq-dialog.js +4 -4
  217. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  218. package/dist/collection/components/divider/bq-divider.js +4 -4
  219. package/dist/collection/components/drawer/bq-drawer.js +4 -4
  220. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  221. package/dist/collection/components/dropdown/bq-dropdown.js +1 -1
  222. package/dist/collection/components/dropdown/scss/bq-dropdown.css +1 -1
  223. package/dist/collection/components/empty-state/bq-empty-state.js +5 -5
  224. package/dist/collection/components/empty-state/scss/bq-empty-state.css +1 -1
  225. package/dist/collection/components/icon/bq-icon.js +1 -1
  226. package/dist/collection/components/icon/helper/request.js +1 -1
  227. package/dist/collection/components/icon/helper/request.js.map +1 -1
  228. package/dist/collection/components/icon/svg/.icons-meta.json +13 -0
  229. package/dist/collection/components/input/bq-input.js +15 -8
  230. package/dist/collection/components/input/bq-input.js.map +1 -1
  231. package/dist/collection/components/input/scss/bq-input.css +1 -1
  232. package/dist/collection/components/notification/bq-notification.js +5 -5
  233. package/dist/collection/components/notification/bq-notification.js.map +1 -1
  234. package/dist/collection/components/notification/scss/bq-notification.css +1 -1
  235. package/dist/collection/components/option/bq-option.js +4 -4
  236. package/dist/collection/components/option-group/bq-option-group.js +1 -1
  237. package/dist/collection/components/option-group/scss/bq-option-group.css +1 -1
  238. package/dist/collection/components/option-list/bq-option-list.js +1 -1
  239. package/dist/collection/components/option-list/scss/bq-option-list.css +1 -1
  240. package/dist/collection/components/page-title/bq-page-title.js +4 -4
  241. package/dist/collection/components/page-title/scss/bq-page-title.css +1 -1
  242. package/dist/collection/components/panel/bq-panel.js +2 -2
  243. package/dist/collection/components/panel/scss/bq-panel.css +1 -1
  244. package/dist/collection/components/progress/bq-progress.js +4 -4
  245. package/dist/collection/components/progress/scss/bq-progress.css +1 -1
  246. package/dist/collection/components/radio/bq-radio.js +5 -4
  247. package/dist/collection/components/radio/bq-radio.js.map +1 -1
  248. package/dist/collection/components/radio/scss/bq-radio.css +1 -1
  249. package/dist/collection/components/radio-group/bq-radio-group.js +6 -10
  250. package/dist/collection/components/radio-group/bq-radio-group.js.map +1 -1
  251. package/dist/collection/components/select/bq-select.js +59 -10
  252. package/dist/collection/components/select/bq-select.js.map +1 -1
  253. package/dist/collection/components/select/scss/bq-select.css +1 -1
  254. package/dist/collection/components/side-menu/bq-side-menu.js +2 -2
  255. package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
  256. package/dist/collection/components/slider/bq-slider.js +2 -2
  257. package/dist/collection/components/spinner/bq-spinner.js +4 -4
  258. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  259. package/dist/collection/components/status/bq-status.js +1 -1
  260. package/dist/collection/components/status/scss/bq-status.css +1 -1
  261. package/dist/collection/components/step-item/bq-step-item.js +4 -4
  262. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  263. package/dist/collection/components/steps/bq-steps.js +2 -2
  264. package/dist/collection/components/switch/bq-switch.js +9 -18
  265. package/dist/collection/components/switch/bq-switch.js.map +1 -1
  266. package/dist/collection/components/switch/scss/bq-switch.css +1 -1
  267. package/dist/collection/components/tab/bq-tab.js +3 -3
  268. package/dist/collection/components/tab/scss/bq-tab.css +1 -1
  269. package/dist/collection/components/tab-group/bq-tab-group.js +3 -3
  270. package/dist/collection/components/tag/bq-tag.js +4 -4
  271. package/dist/collection/components/tag/scss/bq-tag.css +1 -1
  272. package/dist/collection/components/textarea/bq-textarea.js +15 -13
  273. package/dist/collection/components/textarea/bq-textarea.js.map +1 -1
  274. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  275. package/dist/collection/components/toast/bq-toast.js +2 -4
  276. package/dist/collection/components/toast/bq-toast.js.map +1 -1
  277. package/dist/collection/components/toast/scss/bq-toast.css +1 -1
  278. package/dist/collection/components/tooltip/bq-tooltip.js +4 -4
  279. package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
  280. package/dist/collection/shared/test-utils/computedStyle.js +24 -24
  281. package/dist/collection/shared/test-utils/computedStyle.js.map +1 -1
  282. package/dist/collection/shared/test-utils/sleep.js +5 -1
  283. package/dist/collection/shared/test-utils/sleep.js.map +1 -1
  284. package/dist/collection/shared/utils/cssVariables.js +1 -1
  285. package/dist/collection/shared/utils/cssVariables.js.map +1 -1
  286. package/dist/collection/shared/utils/event.js.map +1 -1
  287. package/dist/collection/shared/utils/props.js +4 -3
  288. package/dist/collection/shared/utils/props.js.map +1 -1
  289. package/dist/collection/shared/utils/slot.js.map +1 -1
  290. package/dist/collection/shared/utils/transition.js.map +1 -1
  291. package/dist/components/bq-accordion-group.js +1 -1
  292. package/dist/components/bq-accordion.js +1 -1
  293. package/dist/components/bq-alert.js +1 -1
  294. package/dist/components/bq-avatar.js +1 -1
  295. package/dist/components/bq-badge.js +1 -1
  296. package/dist/components/bq-breadcrumb-item.js +1 -1
  297. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  298. package/dist/components/bq-breadcrumb.js +1 -1
  299. package/dist/components/bq-button.js +1 -1
  300. package/dist/components/bq-card.js +1 -1
  301. package/dist/components/bq-checkbox.js +1 -1
  302. package/dist/components/bq-checkbox.js.map +1 -1
  303. package/dist/components/bq-date-picker.js +1 -1
  304. package/dist/components/bq-date-picker.js.map +1 -1
  305. package/dist/components/bq-dialog.js +1 -1
  306. package/dist/components/bq-dialog.js.map +1 -1
  307. package/dist/components/bq-divider.js +1 -1
  308. package/dist/components/bq-drawer.js +1 -1
  309. package/dist/components/bq-drawer.js.map +1 -1
  310. package/dist/components/bq-dropdown.js +1 -1
  311. package/dist/components/bq-empty-state.js +1 -1
  312. package/dist/components/bq-icon.js +1 -1
  313. package/dist/components/bq-input.js +1 -1
  314. package/dist/components/bq-input.js.map +1 -1
  315. package/dist/components/bq-notification.js +1 -1
  316. package/dist/components/bq-notification.js.map +1 -1
  317. package/dist/components/bq-option-group.js +1 -1
  318. package/dist/components/bq-option-group.js.map +1 -1
  319. package/dist/components/bq-option-list.js +1 -1
  320. package/dist/components/bq-option.js +1 -1
  321. package/dist/components/bq-page-title.js +1 -1
  322. package/dist/components/bq-page-title.js.map +1 -1
  323. package/dist/components/bq-panel.js +1 -1
  324. package/dist/components/bq-progress.js +1 -1
  325. package/dist/components/bq-radio-group.js +1 -1
  326. package/dist/components/bq-radio-group.js.map +1 -1
  327. package/dist/components/bq-radio.js +1 -1
  328. package/dist/components/bq-radio.js.map +1 -1
  329. package/dist/components/bq-select.js +1 -1
  330. package/dist/components/bq-select.js.map +1 -1
  331. package/dist/components/bq-side-menu-item.js +1 -1
  332. package/dist/components/bq-side-menu.js +1 -1
  333. package/dist/components/bq-slider.js +1 -1
  334. package/dist/components/bq-spinner.js +1 -1
  335. package/dist/components/bq-status.js +1 -1
  336. package/dist/components/bq-status.js.map +1 -1
  337. package/dist/components/bq-step-item.js +1 -1
  338. package/dist/components/bq-step-item.js.map +1 -1
  339. package/dist/components/bq-steps.js +1 -1
  340. package/dist/components/bq-switch.js +1 -1
  341. package/dist/components/bq-switch.js.map +1 -1
  342. package/dist/components/bq-tab-group.js +1 -1
  343. package/dist/components/bq-tab.js +1 -1
  344. package/dist/components/bq-tag.js +1 -1
  345. package/dist/components/bq-textarea.js +1 -1
  346. package/dist/components/bq-textarea.js.map +1 -1
  347. package/dist/components/bq-toast.js +1 -1
  348. package/dist/components/bq-toast.js.map +1 -1
  349. package/dist/components/bq-tooltip.js +1 -1
  350. package/dist/components/index.js +1 -1
  351. package/dist/components/{p-YjPwN7vu.js → p-2eUC8A3N.js} +2 -2
  352. package/dist/components/p-2eUC8A3N.js.map +1 -0
  353. package/dist/components/{p-D3RCJ1ti.js → p-BBCVL6R0.js} +2 -2
  354. package/dist/components/{p-BY4GkNoQ.js → p-BMHXMsVR.js} +2 -2
  355. package/dist/components/{p-4ksDMBf6.js → p-BS8hIETL.js} +2 -2
  356. package/dist/components/{p-DTsYGX5p.js → p-CWawcXxA.js} +2 -2
  357. package/dist/components/{p-DTsYGX5p.js.map → p-CWawcXxA.js.map} +1 -1
  358. package/dist/components/{p-fdkSHq2G.js → p-D6ngGq0Y.js} +2 -2
  359. package/dist/components/p-D6ngGq0Y.js.map +1 -0
  360. package/dist/components/{p-B99eLANt.js → p-DMKBBBUE.js} +2 -2
  361. package/dist/components/p-DbxZ8FhA.js +6 -0
  362. package/dist/components/p-DbxZ8FhA.js.map +1 -0
  363. package/dist/components/{p-CvvcRGDG.js → p-Dd3v3b2E.js} +2 -2
  364. package/dist/components/p-DdvbF5yL.js.map +1 -1
  365. package/dist/components/p-Dx-CEPSQ.js.map +1 -1
  366. package/dist/components/{p-Dj-mQvqv.js → p-iyX-PhkX.js} +2 -2
  367. package/dist/components/p-kY6d9Evy.js +6 -0
  368. package/dist/components/p-kY6d9Evy.js.map +1 -0
  369. package/dist/components/p-uqkxeAeG.js.map +1 -1
  370. package/dist/{beeq/p-edc81a31.entry.js → components/p-v3c5-Hhf.js} +2 -2
  371. package/dist/components/p-v3c5-Hhf.js.map +1 -0
  372. package/dist/custom-elements.json +25954 -1583
  373. package/dist/esm/beeq.js +4 -4
  374. package/dist/esm/beeq.js.map +1 -1
  375. package/dist/esm/bq-accordion-group.entry.js +2 -2
  376. package/dist/esm/bq-accordion-group.entry.js.map +1 -1
  377. package/dist/esm/bq-accordion.entry.js +3 -3
  378. package/dist/esm/bq-accordion.entry.js.map +1 -1
  379. package/dist/esm/bq-alert.entry.js +3 -3
  380. package/dist/esm/bq-alert.entry.js.map +1 -1
  381. package/dist/esm/bq-avatar.entry.js +3 -3
  382. package/dist/esm/bq-avatar.entry.js.map +1 -1
  383. package/dist/esm/bq-badge.entry.js +3 -3
  384. package/dist/esm/bq-breadcrumb-item.entry.js +3 -3
  385. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  386. package/dist/esm/bq-breadcrumb.entry.js +2 -2
  387. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  388. package/dist/esm/bq-button_2.entry.js +6 -6
  389. package/dist/esm/bq-button_2.entry.js.map +1 -1
  390. package/dist/esm/bq-card.entry.js +3 -3
  391. package/dist/esm/bq-card.entry.js.map +1 -1
  392. package/dist/esm/bq-checkbox.entry.js +35 -22
  393. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  394. package/dist/esm/bq-date-picker.entry.js +1744 -367
  395. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  396. package/dist/esm/bq-dialog.entry.js +7 -7
  397. package/dist/esm/bq-dialog.entry.js.map +1 -1
  398. package/dist/esm/bq-divider.entry.js +7 -7
  399. package/dist/esm/bq-drawer.entry.js +7 -7
  400. package/dist/esm/bq-drawer.entry.js.map +1 -1
  401. package/dist/esm/bq-dropdown_2.entry.js +6 -6
  402. package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
  403. package/dist/esm/bq-empty-state.entry.js +8 -8
  404. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  405. package/dist/esm/bq-input.entry.js +17 -10
  406. package/dist/esm/bq-input.entry.js.map +1 -1
  407. package/dist/esm/bq-notification.entry.js +8 -8
  408. package/dist/esm/bq-notification.entry.js.map +1 -1
  409. package/dist/esm/bq-option-group.entry.js +3 -3
  410. package/dist/esm/bq-option-group.entry.js.map +1 -1
  411. package/dist/esm/bq-option-list_2.entry.js +10 -10
  412. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  413. package/dist/esm/bq-option.entry.js +5 -5
  414. package/dist/esm/bq-page-title.entry.js +6 -6
  415. package/dist/esm/bq-page-title.entry.js.map +1 -1
  416. package/dist/esm/bq-progress.entry.js +7 -7
  417. package/dist/esm/bq-progress.entry.js.map +1 -1
  418. package/dist/esm/bq-radio-group.entry.js +8 -12
  419. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  420. package/dist/esm/bq-radio.entry.js +5 -5
  421. package/dist/esm/bq-radio.entry.js.map +1 -1
  422. package/dist/esm/bq-select.entry.js +39 -10
  423. package/dist/esm/bq-select.entry.js.map +1 -1
  424. package/dist/esm/bq-side-menu-item.entry.js +2 -2
  425. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  426. package/dist/esm/bq-side-menu.entry.js +3 -3
  427. package/dist/esm/bq-slider.entry.js +4 -4
  428. package/dist/esm/bq-slider.entry.js.map +1 -1
  429. package/dist/esm/bq-spinner.entry.js +8 -8
  430. package/dist/esm/bq-spinner.entry.js.map +1 -1
  431. package/dist/esm/bq-status.entry.js +4 -4
  432. package/dist/esm/bq-status.entry.js.map +1 -1
  433. package/dist/esm/bq-step-item.entry.js +7 -7
  434. package/dist/esm/bq-step-item.entry.js.map +1 -1
  435. package/dist/esm/bq-steps.entry.js +4 -4
  436. package/dist/esm/bq-switch.entry.js +9 -20
  437. package/dist/esm/bq-switch.entry.js.map +1 -1
  438. package/dist/esm/bq-tab-group.entry.js +5 -5
  439. package/dist/esm/bq-tab.entry.js +6 -6
  440. package/dist/esm/bq-tab.entry.js.map +1 -1
  441. package/dist/esm/bq-textarea.entry.js +17 -15
  442. package/dist/esm/bq-textarea.entry.js.map +1 -1
  443. package/dist/esm/bq-toast.entry.js +5 -7
  444. package/dist/esm/bq-toast.entry.js.map +1 -1
  445. package/dist/esm/bq-tooltip.entry.js +6 -6
  446. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  447. package/dist/esm/{cssVariables-CyiWA5Ok.js → cssVariables-DhGXeOL_.js} +3 -3
  448. package/dist/esm/cssVariables-DhGXeOL_.js.map +1 -0
  449. package/dist/esm/event-Dx-CEPSQ.js.map +1 -1
  450. package/dist/esm/{index-CO2T68hs.js → index-BSSRzVAz.js} +47 -12
  451. package/dist/esm/index-BSSRzVAz.js.map +1 -0
  452. package/dist/esm/index.js +2 -2
  453. package/dist/esm/loader.js +3 -3
  454. package/dist/esm/{props-zh4P02Kn.js → props-DbxZ8FhA.js} +6 -5
  455. package/dist/esm/props-DbxZ8FhA.js.map +1 -0
  456. package/dist/esm/slot-uqkxeAeG.js.map +1 -1
  457. package/dist/esm/transition-DdvbF5yL.js.map +1 -1
  458. package/dist/hydrate/index.js +2142 -675
  459. package/dist/hydrate/index.mjs +2142 -675
  460. package/dist/stencil.config.js +7 -0
  461. package/dist/stencil.config.js.map +1 -1
  462. package/dist/types/components/checkbox/bq-checkbox.d.ts +4 -3
  463. package/dist/types/components/date-picker/bq-date-picker.d.ts +330 -238
  464. package/dist/types/components/date-picker/bq-date-picker.types.d.ts +30 -39
  465. package/dist/types/components/date-picker/components/CalendarDayView.d.ts +42 -0
  466. package/dist/types/components/date-picker/components/CalendarHeader.d.ts +34 -0
  467. package/dist/types/components/date-picker/components/CalendarMonthView.d.ts +34 -0
  468. package/dist/types/components/date-picker/components/CalendarYearView.d.ts +32 -0
  469. package/dist/types/components/date-picker/helper/bounds.d.ts +49 -0
  470. package/dist/types/components/date-picker/helper/calendar.d.ts +78 -0
  471. package/dist/types/components/date-picker/helper/constants.d.ts +62 -16
  472. package/dist/types/components/date-picker/helper/input.d.ts +23 -0
  473. package/dist/types/components/date-picker/helper/intl.d.ts +38 -0
  474. package/dist/types/components/date-picker/helper/labels.d.ts +29 -0
  475. package/dist/types/components/date-picker/helper/navigation.d.ts +23 -0
  476. package/dist/types/components/date-picker/helper/selection.d.ts +44 -0
  477. package/dist/types/components/date-picker/helper/value.d.ts +31 -0
  478. package/dist/types/components/input/bq-input.d.ts +1 -0
  479. package/dist/types/components/radio/bq-radio.d.ts +2 -1
  480. package/dist/types/components/select/bq-select.d.ts +5 -0
  481. package/dist/types/components/switch/bq-switch.d.ts +2 -3
  482. package/dist/types/components.d.ts +450 -350
  483. package/dist/types/home/runner/work/BEEQ/BEEQ/.stencil/packages/beeq/vitest.config.d.ts +2 -0
  484. package/dist/types/shared/test-utils/computedStyle.d.ts +7 -6
  485. package/dist/types/shared/test-utils/setProperties.d.ts +1 -1
  486. package/dist/types/shared/test-utils/sleep.d.ts +5 -1
  487. package/dist/types/shared/utils/event.d.ts +1 -1
  488. package/dist/types/shared/utils/slot.d.ts +1 -1
  489. package/dist/types/stencil-public-runtime.d.ts +1 -0
  490. package/dist/vitest.config.js +81 -0
  491. package/dist/vitest.config.js.map +1 -0
  492. package/package.json +1 -1
  493. package/dist/beeq/p-0323869d.entry.js.map +0 -1
  494. package/dist/beeq/p-1e675bdc.entry.js +0 -6
  495. package/dist/beeq/p-2283258e.entry.js +0 -6
  496. package/dist/beeq/p-654c7701.entry.js +0 -6
  497. package/dist/beeq/p-654c7701.entry.js.map +0 -1
  498. package/dist/beeq/p-7a6a89f1.entry.js +0 -6
  499. package/dist/beeq/p-7a6a89f1.entry.js.map +0 -1
  500. package/dist/beeq/p-7adb6e2e.entry.js.map +0 -1
  501. package/dist/beeq/p-7d356cce.entry.js.map +0 -1
  502. package/dist/beeq/p-CO2T68hs.js.map +0 -1
  503. package/dist/beeq/p-_RvVpeh2.js +0 -6
  504. package/dist/beeq/p-_RvVpeh2.js.map +0 -1
  505. package/dist/beeq/p-a83ce5aa.entry.js +0 -6
  506. package/dist/beeq/p-a83ce5aa.entry.js.map +0 -1
  507. package/dist/beeq/p-bb46524f.entry.js +0 -6
  508. package/dist/beeq/p-c25c20bf.entry.js.map +0 -1
  509. package/dist/beeq/p-e9535627.entry.js.map +0 -1
  510. package/dist/beeq/p-zh4P02Kn.js +0 -6
  511. package/dist/beeq/p-zh4P02Kn.js.map +0 -1
  512. package/dist/cjs/cssVariables-exM7Oz37.js.map +0 -1
  513. package/dist/cjs/index-BSrsKFVG.js.map +0 -1
  514. package/dist/cjs/props-DzFXZXSF.js.map +0 -1
  515. package/dist/collection/components/date-picker/libs/callyLibrary.js +0 -92
  516. package/dist/collection/components/date-picker/libs/callyLibrary.js.map +0 -1
  517. package/dist/components/p-DnqmdkvK.js +0 -6
  518. package/dist/components/p-DnqmdkvK.js.map +0 -1
  519. package/dist/components/p-YjPwN7vu.js.map +0 -1
  520. package/dist/components/p-_RvVpeh2.js +0 -6
  521. package/dist/components/p-_RvVpeh2.js.map +0 -1
  522. package/dist/components/p-fdkSHq2G.js.map +0 -1
  523. package/dist/components/p-zh4P02Kn.js +0 -6
  524. package/dist/components/p-zh4P02Kn.js.map +0 -1
  525. package/dist/esm/cssVariables-CyiWA5Ok.js.map +0 -1
  526. package/dist/esm/index-CO2T68hs.js.map +0 -1
  527. package/dist/esm/props-zh4P02Kn.js.map +0 -1
  528. package/dist/jest.config.js +0 -23
  529. package/dist/jest.config.js.map +0 -1
  530. package/dist/types/Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System/.stencil/packages/beeq/jest.config.d.ts +0 -19
  531. package/dist/types/components/date-picker/libs/callyLibrary.d.ts +0 -15
  532. /package/dist/beeq/{p-882966dd.entry.js.map → p-38006c8e.entry.js.map} +0 -0
  533. /package/dist/beeq/{p-8dfd0329.entry.js.map → p-6b0f896f.entry.js.map} +0 -0
  534. /package/dist/beeq/{p-ea473f56.entry.js.map → p-72ff2fe2.entry.js.map} +0 -0
  535. /package/dist/beeq/{p-ad419446.entry.js.map → p-8bd7f4c2.entry.js.map} +0 -0
  536. /package/dist/beeq/{p-1fb43de2.entry.js.map → p-e9a1b183.entry.js.map} +0 -0
  537. /package/dist/beeq/{p-3c77308c.entry.js.map → p-f891fb4b.entry.js.map} +0 -0
  538. /package/dist/components/{p-D3RCJ1ti.js.map → p-BBCVL6R0.js.map} +0 -0
  539. /package/dist/components/{p-BY4GkNoQ.js.map → p-BMHXMsVR.js.map} +0 -0
  540. /package/dist/components/{p-4ksDMBf6.js.map → p-BS8hIETL.js.map} +0 -0
  541. /package/dist/components/{p-B99eLANt.js.map → p-DMKBBBUE.js.map} +0 -0
  542. /package/dist/components/{p-CvvcRGDG.js.map → p-Dd3v3b2E.js.map} +0 -0
  543. /package/dist/components/{p-Dj-mQvqv.js.map → p-iyX-PhkX.js.map} +0 -0
  544. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/runner/work/BEEQ/BEEQ}/.stencil/packages/beeq/stencil.config.d.ts +0 -0
  545. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/runner/work/BEEQ/BEEQ}/.stencil/tailwind.config.d.ts +0 -0
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Built by Endavans
3
+ * © https://beeq.design - Apache 2 License.
4
+ */
5
+ const o=(o,e,t,n)=>{const s=n;const c=t[s];if(o.includes(c))return;t[s]=e;console.warn(`[${t.tagName.toUpperCase()}] Please notice that "${s}" should be one of ${o.join("|")}`)};export{o as v};
6
+ //# sourceMappingURL=p-DbxZ8FhA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-DbxZ8FhA.js","sources":["../../packages/beeq/src/shared/utils/props.ts"],"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"],"names":[],"mappings":";;;;AAGA;;;;;;;;AAQG;AACI,MAAM,iBAAiB,GAAG,CAC/B,eAA8B,EAC9B,aAAgB,EAChB,OAAU,EACV,YAAkC,KAC1B;IACR,MAAM,WAAW,GAAG,YAAsB;AAC1C,IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;;AAE1C,IAAA,IAAI,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE;;AAE7C,IAAA,OAAO,CAAC,WAAW,CAAC,GAAG,aAAa;;IAEpC,OAAO,CAAC,IAAI,CACV,CAAA,CAAA,EAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,yBAAyB,WAAW,CAAA,mBAAA,EAAsB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,CACvH;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-DdvbF5yL.js","sources":["../../packages/beeq/src/shared/utils/transition.ts"],"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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-DdvbF5yL.js","sources":["../../packages/beeq/src/shared/utils/transition.ts"],"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"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-Dx-CEPSQ.js","sources":["../../packages/beeq/src/shared/utils/event.ts"],"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"],"names":[],"mappings":";;;;AAAA;;;;;AAKG;MACU,2BAA2B,GAAG,CAAC,KAAY,EAAE,WAAwB,KAAa;AAC7F,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE;AAEjC,IAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACnC;;;;"}
1
+ {"version":3,"file":"p-Dx-CEPSQ.js","sources":["../../packages/beeq/src/shared/utils/event.ts"],"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"],"names":[],"mappings":";;;;AAAA;;;;;AAKG;MACU,2BAA2B,GAAG,CAAC,KAAY,EAAE,WAAwB,KAAa;AAC7F,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE;AAEjC,IAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;AACnC;;;;"}
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Built by Endavans
3
+ * © https://beeq.design - Apache 2 License.
4
+ */
5
+ import{r as e,c as r,a,h as t}from"./p-BSSRzVAz.js";import{d as b}from"./p-CVw85-WU.js";import{i as n}from"./p-BRbYDZoo.js";import{i}from"./p-D1A0LpG_.js";import{i as s}from"./p-BcPwGxIn.js";import{b as o}from"./p-uqkxeAeG.js";import{s as l}from"./p-BNvWMggA.js";import"./p-lysmVw2n.js";const q=()=>`.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq:not([bq-mode]),.light,:root:not([bq-theme]):not([bq-mode]),:root[bq-theme=beeq]:not([bq-mode]),[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,.endava:not([bq-mode]),[bq-theme=endava]:not([bq-mode]),[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.pointer-events-none{pointer-events:none}.m-0{margin:0}.me-\\[--bq-select--gap\\]{margin-inline-end:var(--bq-select--gap)}.me-xs2{margin-inline-end:var(--bq-spacing-xs2)}.ms-\\[--bq-select--gap\\]{margin-inline-start:var(--bq-select--gap)}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.w-full{width:100%}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.cursor-inherit{cursor:inherit}.cursor-not-allowed{cursor:not-allowed}.select-none{user-select:none}.appearance-none{appearance:none}.items-center{align-items:center}.gap-xs2{gap:var(--bq-spacing-xs2)}.text-nowrap{text-wrap:nowrap}.rounded-\\[--bq-select--border-radius\\]{border-radius:var(--bq-select--border-radius)}.border-\\[length\\:--bq-select--border-width\\]{border-width:var(--bq-select--border-width)}.border-none{border-style:none}.border-\\[color\\:--bq-select--border-color-focus\\]{border-color:var(--bq-select--border-color-focus)}.border-\\[color\\:--bq-select--border-color\\]{border-color:var(--bq-select--border-color)}.border-danger{border-color:var(--bq-stroke--danger)}.border-success{border-color:var(--bq-stroke--success)}.border-warning{border-color:var(--bq-stroke--warning)}.bg-\\[--bq-select--background-color\\]{background-color:var(--bq-select--background-color)}.bg-inherit{background-color:inherit}.p-0{padding:0}.pe-\\[--bq-select--padding-end\\]{padding-inline-end:var(--bq-select--padding-end)}.ps-\\[--bq-select--padding-start\\]{padding-inline-start:var(--bq-select--padding-start)}.font-inherit{font-family:inherit}.text-\\[length\\:--bq-select--helper-text-size\\]{font-size:var(--bq-select--helper-text-size)}.text-\\[length\\:--bq-select--label-text-size\\]{font-size:var(--bq-select--label-text-size)}.text-\\[length\\:--bq-select--text-size\\]{font-size:var(--bq-select--text-size)}.text-\\[length\\:inherit\\]{font-size:inherit}.leading-small{line-height:var(--bq-font-line-height--small)}.text-\\[color\\:--bq-select--helper-text-color\\]{color:var(--bq-select--helper-text-color)}.text-\\[color\\:--bq-select--label-text-color\\]{color:var(--bq-select--label-text-color)}.text-\\[color\\:--bq-select--text-color\\],.text-\\[color\\:var\\(--bq-select--text-color\\)\\]{color:var(--bq-select--text-color)}.text-danger{color:var(--bq-text--danger)}.text-success{color:var(--bq-text--success)}.text-warning{color:var(--bq-text--warning)}.opacity-60{opacity:.6}.transition-\\[border-color\\2c box-shadow\\]{transition-duration:.15s;transition-property:border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.border-active-danger{border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-active) 20%)}.border-active-success{border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-active) 20%)}.border-active-warning{border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-active) 20%)}.min-bs-\\[var\\(--bq-select--icon-size\\)\\]{min-block-size:var(--bq-select--icon-size)}.min-is-0{min-inline-size:0}.p-b-\\[var\\(--bq-select--paddingY\\)\\]{padding-block:var(--bq-select--paddingY)}.m-be-\\[--bq-select--label-margin-bottom\\]{margin-block-end:var(--bq-select--label-margin-bottom)}.m-bs-\\[--bq-select--helper-margin-top\\]{margin-block-start:var(--bq-select--helper-margin-top)}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-select--background-color:var(--bq-ui--primary);--bq-select--border-color:var(--bq-stroke--tertiary);--bq-select--border-color-focus:var(--bq-stroke--brand);--bq-select--border-radius:var(--bq-radius--s);--bq-select--border-width:var(--bq-stroke-s);--bq-select--border-style:solid;--bq-select--gap:var(--bq-spacing-xs);--bq-select--helper-margin-top:var(--bq-spacing-xs);--bq-select--helper-text-size:var(--bq-font-size--s);--bq-select--helper-text-color:var(--bq-text--primary);--bq-select--icon-size:24px;--bq-select--label-margin-bottom:var(--bq-spacing-xs);--bq-select--label-text-size:var(--bq-font-size--s);--bq-select--label-text-color:var(--bq-text--primary);--bq-select--padding-start:calc(var(--bq-spacing-m) - var(--bq-select--border-width));--bq-select--padding-end:calc(var(--bq-spacing-m) - var(--bq-select--border-width));--bq-select--paddingY:calc(var(--bq-spacing-s) - var(--bq-select--border-width));--bq-select--text-color:var(--bq-text--primary);--bq-select--text-size:var(--bq-font-size--m);--bq-select--text-placeholder-color:var(--bq-text--secondary);display:block;width:100%}.bq-select__label{align-items:center;color:var(--bq-select--label-text-color);display:flex;font-size:var(--bq-select--label-text-size);margin-block-end:var(--bq-select--label-margin-bottom)}.bq-select__helper-text{color:var(--bq-select--helper-text-color);font-size:var(--bq-select--helper-text-size);margin-block-start:var(--bq-select--helper-margin-top)}.bq-select__helper-text.validation-error{color:var(--bq-text--danger)}.bq-select__helper-text.validation-success{color:var(--bq-text--success)}.bq-select__helper-text.validation-warning{color:var(--bq-text--warning)}.bq-select__dropdown:has(:focus-within,:focus-visible) .bq-select__control{--bq-ring-width:1px;--bq-ring-offset-width:0;--bq-ring-color-focus:var(--bq-select--border-color-focus);border-color:var(--bq-select--border-color-focus);outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-select__control{align-items:center;background-color:var(--bq-select--background-color);border-color:var(--bq-select--border-color);border-radius:var(--bq-select--border-radius);border-style:var(--bq-select--border-style);border-width:var(--bq-select--border-width);color:var(--bq-select--text-color);display:flex;font-size:var(--bq-select--text-size);inline-size:100%;padding-block:var(--bq-select--paddingY);padding-inline-end:var(--bq-select--padding-end);padding-inline-start:var(--bq-select--padding-start);transition-duration:.15s;transition-property:border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);user-select:none}.bq-select__control::placeholder{color:var(--bq-select--text-placeholder-color)}.bq-select__control:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--brand),var(--bq-hover) 20%)}.bq-select__control:not(.disabled):focus-within .bq-select__control--clear,.bq-select__control:not(.disabled):hover .bq-select__control--clear{display:inline-block}.bq-select__control.disabled{cursor:not-allowed;opacity:.6}.bq-select__control.validation-error{border-color:var(--bq-stroke--danger)}.bq-select__control.validation-error:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-hover) 20%)}.bq-select__control.validation-error:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--danger);border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-active) 20%)}.bq-select__control.validation-success{border-color:var(--bq-stroke--success)}.bq-select__control.validation-success:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-hover) 20%)}.bq-select__control.validation-success:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--success);border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-active) 20%)}.bq-select__control.validation-warning{border-color:var(--bq-stroke--warning)}.bq-select__control.validation-warning:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-hover) 20%)}.bq-select__control.validation-warning:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--warning);border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-active) 20%)}.bq-select__control--input{appearance:none;background-color:inherit;border-style:none;-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:inherit;flex:1 1 auto;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;min-block-size:var(--bq-select--icon-size);min-inline-size:0;padding:0;user-select:none}.bq-select__control--input:focus{outline:2px solid transparent;outline-offset:2px}.bq-select__control--input:focus-visible{outline:2px solid transparent;outline-offset:2px}.bq-select__control--clear::part(button){--bq-ring-width:initial;--bq-ring-offset-width:initial;--bq-ring-color-focus:initial}.bq-select__control--prefix,.bq-select__control--suffix{align-items:center;color:var(--bq-select--text-color);display:flex;pointer-events:none}.bq-select__control--prefix{margin-inline-end:var(--bq-select--gap)}.bq-select__control--suffix{margin-inline-start:var(--bq-select--gap);transition-duration:.3s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-select__tags{display:flex;flex:1 1 0%;gap:var(--bq-spacing-xs2);margin-inline-end:var(--bq-spacing-xs2)}.bq-select__tags ::slotted(bq-tag),.bq-select__tags bq-tag{display:inline-flex}.bq-select__tags bq-tag::part(text){text-wrap:nowrap;line-height:var(--bq-font-line-height--small)}::slotted(bq-icon),bq-icon{--bq-icon--size:var(--bq-select--icon-size)!important}.placeholder\\:text-\\[color\\:--bq-select--text-placeholder-color\\]::placeholder{color:var(--bq-select--text-placeholder-color)}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.rotate-0,.rotate-180{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.\\!hidden{display:none!important}.hidden{display:none}.flex-grow{flex-grow:1}.rotate-0{--tw-rotate:0deg}.rotate-180{--tw-rotate:180deg}.overflow-x-auto{overflow-x:auto}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.is-full{inline-size:100%}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\\[\\&\\:\\:part\\(button\\)\\]\\:border-none::part(button){border-style:none}.\\[\\&\\:\\:part\\(button\\)\\]\\:p-0::part(button){padding:0}`;const c=class{constructor(a){e(this,a);this.bqBlur=r(this,"bqBlur");this.bqClear=r(this,"bqClear");this.bqFocus=r(this,"bqFocus");this.bqSelect=r(this,"bqSelect");this.bqInput=r(this,"bqInput");if(a.$hostElement$["s-ei"]){this.internals=a.$hostElement$["s-ei"]}else{this.internals=a.$hostElement$.attachInternals();a.$hostElement$["s-ei"]=this.internals}}helperTextElem;inputElem;labelElem;prefixElem;suffixElem;debounceQuery;debounceInput;fallbackInputId="select";get el(){return a(this)}internals;displayValue;hasHelperText=false;selectedOptions=[];hasLabel=false;hasPrefix=false;hasSuffix=false;hasValue=false;autofocus;clearButtonLabel="Clear value";debounceTime=0;disableScrollLock=false;disabled=false;disableClear=false;distance=8;form;formValidationMessage;keepOpenOnSelect=false;name;maxTagsVisible=2;multiple=false;open=false;panelHeight;placeholder;placement="bottom";readonly;required;sameWidth=true;skidding=0;strategy="fixed";validationStatus="none";value;handleValueChange(){if(s(this.value)){this.value=this.multiple?[]:"";this.internals.setFormValue(undefined);this.syncItemsFromValue();this.updateFormValidity();return}if(this.multiple){this.value=l(this.value);this.internals.setFormValue(this.value.join(","));this.syncItemsFromValue();this.updateFormValidity();return}this.value=String(this.value);this.internals.setFormValue(this.value);this.syncItemsFromValue();this.updateFormValidity()}handleRequiredPropChange(){this.updateFormValidity()}bqBlur;bqClear;bqFocus;bqSelect;bqInput;connectedCallback(){this.initMultipleValue()}componentWillLoad(){this.initMultipleValue()}componentDidLoad(){this.handleSlotChange();if(this.multiple&&Array.isArray(this.value)){this.selectedOptions=this.options.filter((e=>this.value.includes(e.value)))}this.handleValueChange()}formAssociatedCallback(){this.internals.role="combobox";this.internals.ariaExpanded=this.open?"true":"false";this.updateFormValidity()}async formResetCallback(){if(s(this.value))return;this.updateFormValidity();this.clear()}handleOpenChange(e){if(!e.composedPath().includes(this.el))return;this.open=e.detail.open}stopOptionFocusBlurPropagation(e){if(i(e.target,"bq-select"))return;e.stopPropagation()}handleScrollEvent(){if(!this.open||this.disableScrollLock)return;this.open=false}async clear(){if(this.disabled)return;const{multiple:e,inputElem:r,bqClear:a,el:t}=this;this.value="";this.selectedOptions=[];if(!e){this.displayValue="";r.value=""}this.resetOptionsVisibility();a.emit(t)}async reset(e){if(s(e))return;this.value=e;this.syncItemsFromValue()}initMultipleValue=()=>{if(!this.multiple||!n(this.value))return;this.value=Array.isArray(this.value)?this.value:Array.from(JSON.parse(String(this.value)))};handleBlur=()=>{if(this.disabled)return;this.bqBlur.emit(this.el)};handleFocus=()=>{if(this.disabled)return;this.bqFocus.emit(this.el)};handleSelect=e=>{if(this.disabled)return;if(this.multiple){e.stopPropagation()}const{value:r,item:a}=e.detail;if(this.multiple){this.handleMultipleSelection(a);this.inputElem.value="";this.bqSelect.emit({value:this.value,item:a})}else{this.value=r}this.resetOptionsVisibility();this.inputElem.focus()};handleMultipleSelection=e=>{const r=new Set(this.selectedOptions);if(r.has(e)){r.delete(e)}else{r.add(e)}this.selectedOptions=Array.from(r);this.value=this.selectedOptions.map((e=>e.value))};handleSearchFilter=e=>{if(this.disabled)return;this.debounceQuery?.cancel();const r=e?.trim();if(!n(r)){if(this.multiple){this.resetOptionsVisibility();return}this.clear();return}this.debounceQuery=b((()=>{this.options.forEach((e=>{const a=e.innerText?.trim().toLowerCase();const t=e.value?.toLowerCase();const b=a.includes(r.toLowerCase())||t.includes(r.toLowerCase());e.hidden=!b}))}),this.debounceTime);this.debounceQuery();this.open=true};handleKeydown=e=>{if(this.disabled||e.key!=="Backspace"||!this.multiple)return;if(this.inputElem?.value===""&&this.selectedOptions.length>0){e.preventDefault();const r=this.selectedOptions[this.selectedOptions.length-1];this.handleTagRemove(r)}};handleInput=e=>{if(this.disabled)return;const{value:r}=e.target;this.debounceInput?.cancel();this.debounceInput=b((()=>{const e=this.bqInput.emit({value:r});if(!e.defaultPrevented){this.handleSearchFilter(r)}}),this.debounceTime);this.debounceInput()};handleClearClick=e=>{(async()=>{await this.clear()})();this.inputElem.focus();e.stopPropagation()};handleTagRemove=e=>{if(this.disabled)return;this.handleMultipleSelection(e);this.bqSelect.emit({value:this.value,item:e})};handleSlotChange=()=>{this.hasLabel=o(this.labelElem);this.hasPrefix=o(this.prefixElem);this.hasSuffix=o(this.suffixElem);this.hasHelperText=o(this.helperTextElem)};resetOptionsVisibility=()=>{this.options.forEach((e=>{e.hidden=false}))};syncItemsFromValue=()=>{const{internals:e,options:r,value:a}=this;if(!r.length)return;this.syncSelectedOptionsState();if(this.multiple){this.selectedOptions=r.filter((e=>this.value?.includes(e.value)))}this.updateDisplayLabel();e.setFormValue(!s(a)?`${a}`:undefined)};syncSelectedOptionsState=()=>{const{options:e,multiple:r,value:a}=this;const t=String(a).toLowerCase();e.forEach((e=>{if(r&&Array.isArray(a)){e.selected=a.includes(e.value)}else{e.selected=e.value?.toLowerCase()===t}}))};updateDisplayLabel=()=>{const{value:e,options:r,inputElem:a}=this;const t=r.find((r=>r.value===e));const b=t?this.getOptionLabel(t):"";this.displayValue=b;if(a){a.value=b}};getOptionLabel=e=>{if(!e)return"";if(e.displayValue){return e.displayValue.trim()}const r=e.shadowRoot?.querySelector("slot:not([name])");if(!r){return e.innerText.trim()}const a=this.getItemTextContent(r);if(a)return a;return e.innerText.trim()};getItemTextContent=e=>{const r=e.assignedNodes({flatten:true});for(const e of r){if(e.nodeType===Node.TEXT_NODE){const r=e.textContent?.trim();if(r)return r}if(e.nodeType===Node.ELEMENT_NODE){for(const r of Array.from(e.childNodes)){const e=r.textContent?.trim();if(e)return e}}}return""};updateFormValidity=()=>{const{formValidationMessage:e,internals:r,required:a,value:t}=this;r?.states.clear();const b=this.multiple?!Array.isArray(t)||t.length===0:!n(t)||String(t).trim()==="";if(a&&b){r?.states.add("invalid");r?.setValidity({valueMissing:true},e||"Please select an option",this.inputElem);return}r?.states.add("valid");r?.setValidity({})};get options(){return Array.from(this.el.querySelectorAll("bq-option"))}get displayPlaceholder(){return this.multiple&&this.selectedOptions.length!==0?undefined:this.placeholder}get displayTags(){return this.selectedOptions.map(((e,r)=>{if(r<this.maxTagsVisible||this.maxTagsVisible<0){return t("bq-tag",{exportparts:"wrapper:tag__base,prefix:tag__prefix,text:tag__text,btn-close:tag__btn-close",key:e.value,onBqClick:e=>e.stopPropagation(),onBqClose:r=>{r.stopPropagation();this.handleTagRemove(e)},part:"tag",removable:true,size:"xsmall",variant:"filled"},this.getOptionLabel(e))}else if(r===this.maxTagsVisible){return t("bq-tag",{exportparts:"wrapper:tag__base,prefix:tag__prefix,text:tag__text,btn-close:tag__btn-close",key:"more",part:"tag",size:"xsmall",variant:"filled"},"+",this.selectedOptions.length-r)}return null}))}get hasClearIcon(){if(this.disableClear||this.disabled){return false}if(this.multiple){return this.selectedOptions.length>0}return n(this.displayValue)}render(){const e=`bq-select__label-${this.name||this.fallbackInputId}`;return t("div",{key:"3ac6927fd004b8de97f4b66f0fcb83151d04755c",class:"bq-select",part:"base"},t("label",{key:"5f0d3b9899c3c17ce58a4cff93ba377993ff4f72","aria-label":this.name||this.fallbackInputId,class:{"bq-select__label":true,"!hidden":!this.hasLabel},htmlFor:this.name||this.fallbackInputId,id:e,part:"label",ref:e=>{this.labelElem=e}},t("slot",{key:"c7262cb63edc2a85de1bd119b9acab5f22038cb7",name:"label",onSlotchange:this.handleSlotChange})),t("bq-dropdown",{key:"3c8b5050c2c5d59236a5c2e9c663f11fde6d22eb",class:"bq-select__dropdown w-full",disabled:this.disabled,disableScrollLock:this.disableScrollLock,distance:this.distance,exportparts:"panel",keepOpenOnSelect:this.keepOpenOnSelect,open:this.open,panelHeight:this.panelHeight,placement:this.placement,sameWidth:this.sameWidth,skidding:this.skidding,strategy:this.strategy},t("div",{key:"f4affd0bc3129ebd50d6812b71aab734ad08dc14",class:{"bq-select__control":true,[`validation-${this.validationStatus}`]:true,disabled:this.disabled},part:"control",slot:"trigger"},t("span",{key:"228c2739b4e2ba0d1fa09360e1c45a2594e3af1c",class:{"bq-select__control--prefix":true,"!hidden":!this.hasPrefix},part:"prefix",ref:e=>{this.prefixElem=e}},t("slot",{key:"98a207db3b4e9fbb2aee9545d40b56ae3e3a2124",name:"prefix",onSlotchange:this.handleSlotChange})),t("div",{key:"ee7ff8f24c599b9954f0ca664f7169262ee75636",class:"flex flex-1 overflow-x-auto",part:"input-outline"},this.multiple&&t("span",{key:"a9f016739ad1cad0e468954932bddaa00c222160",class:"bq-select__tags",part:"tags"},t("slot",{key:"faae09dca15fa1fbec43e6cbde5ecb7241fb82c0",name:"tags"},this.displayTags)),t("input",{key:"f5d11d101de3bab402f41253bd0bcbeb7f40c417","aria-controls":`bq-options-${this.name}`,"aria-disabled":this.disabled?"true":"false","aria-expanded":this.open?"true":"false","aria-haspopup":"listbox",autoCapitalize:"off",autoComplete:"off",class:"bq-select__control--input is-full flex-grow",disabled:this.disabled,form:this.form,id:this.name||this.fallbackInputId,name:this.name,onBlur:this.handleBlur,onFocus:this.handleFocus,onInput:this.handleInput,onKeyDown:this.handleKeydown,part:"input",placeholder:this.displayPlaceholder,readOnly:this.readonly,ref:e=>{this.inputElem=e},required:this.required,role:"combobox",spellcheck:false,type:"text",value:this.displayValue})),this.hasClearIcon&&t("bq-button",{key:"1bae439a9b9f3ba28393cf3c7a6fa7dde1bfdd4d",appearance:"text",border:"s",class:"bq-select__control--clear ms-[--bq-select--gap] hidden [&::part(button)]:border-none [&::part(button)]:p-0",exportparts:"button",label:this.clearButtonLabel,onBqClick:this.handleClearClick,onlyIcon:true,part:"clear-btn",size:"small",tabIndex:-1},t("slot",{key:"52147b8bbb070b92acfe631114e6c074ed04b3c1",name:"clear-icon"},t("bq-icon",{key:"fc1f97a1f710654113431fd816229e4421f04f72","aria-hidden":"true",class:"flex",name:"x-circle"}))),t("span",{key:"d6499acc2ff3c1d977d9048c62e961e90a894164",class:{"bq-select__control--suffix":true,"rotate-180":this.open,"rotate-0":!this.open},part:"suffix",ref:e=>{this.suffixElem=e}},t("slot",{key:"b8da8cd1692533d5cb89507849b7b8ef11086287",name:"suffix",onSlotchange:this.handleSlotChange},t("bq-icon",{key:"14e08948bbcac9b5ce4657fb900737c255e83415",class:"flex",name:"caret-down"})))),t("bq-option-list",{key:"c8636fcfd3537b92bfa0ae4c2afff3da2207ac49","aria-expanded":this.open?"true":"false",exportparts:"base:option-list",id:`bq-options-${this.name}`,onBqSelect:this.handleSelect,role:"listbox"},t("slot",{key:"fb79a3d78b80e1e46fbd686262f5b5ac32f14e69"}))),t("div",{key:"c5a85030b5239bfef0997a893472bbe713d2a434",class:{[`bq-select__helper-text validation-${this.validationStatus}`]:true,"!hidden":!this.hasHelperText},part:"helper-text",ref:e=>{this.helperTextElem=e}},t("slot",{key:"7e779ebbb1ac575e253003e26d54c9eb402357fb",name:"helper-text",onSlotchange:this.handleSlotChange})))}static get delegatesFocus(){return true}static get formAssociated(){return true}static get watchers(){return{value:[{handleValueChange:0}],required:[{handleRequiredPropChange:0}]}}};c.style=q();export{c as bq_select};
6
+ //# sourceMappingURL=p-a0a8ea5b.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bqSelectCss","BqSelect","helperTextElem","inputElem","labelElem","prefixElem","suffixElem","debounceQuery","debounceInput","fallbackInputId","internals","displayValue","hasHelperText","selectedOptions","hasLabel","hasPrefix","hasSuffix","hasValue","autofocus","clearButtonLabel","debounceTime","disableScrollLock","disabled","disableClear","distance","form","formValidationMessage","keepOpenOnSelect","name","maxTagsVisible","multiple","open","panelHeight","placeholder","placement","readonly","required","sameWidth","skidding","strategy","validationStatus","value","handleValueChange","isNil","this","setFormValue","undefined","syncItemsFromValue","updateFormValidity","stringToArray","join","String","handleRequiredPropChange","bqBlur","bqClear","bqFocus","bqSelect","bqInput","connectedCallback","initMultipleValue","componentWillLoad","componentDidLoad","handleSlotChange","Array","isArray","options","filter","item","includes","formAssociatedCallback","role","ariaExpanded","formResetCallback","clear","handleOpenChange","ev","composedPath","el","detail","stopOptionFocusBlurPropagation","isHTMLElement","target","stopPropagation","handleScrollEvent","resetOptionsVisibility","emit","reset","isDefined","from","JSON","parse","handleBlur","handleFocus","handleSelect","handleMultipleSelection","focus","selectedOptionsSet","Set","has","delete","add","map","handleSearchFilter","cancel","trimmedValue","trim","debounce","forEach","optionLabel","innerText","toLowerCase","optionValue","matches","hidden","handleKeydown","key","length","preventDefault","lastOption","handleTagRemove","handleInput","inputEvent","defaultPrevented","handleClearClick","hasSlotContent","syncSelectedOptionsState","option","updateDisplayLabel","lowerCaseValue","selected","checkedItem","find","getOptionLabel","defaultSlot","shadowRoot","querySelector","text","getItemTextContent","slot","nodes","assignedNodes","flatten","node","nodeType","Node","TEXT_NODE","textContent","ELEMENT_NODE","child","childNodes","states","isEmpty","setValidity","valueMissing","querySelectorAll","displayPlaceholder","displayTags","index","h","exportparts","onBqClick","onBqClose","event","part","removable","size","variant","hasClearIcon","render","labelId","class","htmlFor","id","ref","onSlotchange","spanElem","autoCapitalize","autoComplete","onBlur","onFocus","onInput","onKeyDown","readOnly","spellcheck","type","appearance","border","label","onlyIcon","tabIndex","onBqSelect","divElem"],"sources":["../../packages/beeq/src/components/select/scss/bq-select.scss?tag=bq-select&encapsulation=shadow","../../packages/beeq/src/components/select/bq-select.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Select styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-select.variables';\n\n:host {\n @apply block w-full;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Label and Helper text */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__label {\n @apply flex items-center m-be-[--bq-select--label-margin-bottom];\n @apply text-[length:--bq-select--label-text-size] text-[color:--bq-select--label-text-color];\n}\n\n.bq-select__helper-text {\n @apply text-[length:--bq-select--helper-text-size] text-[color:--bq-select--helper-text-color] m-bs-[--bq-select--helper-margin-top];\n}\n\n.bq-select__helper-text.validation-error {\n @apply text-danger;\n}\n\n.bq-select__helper-text.validation-success {\n @apply text-success;\n}\n\n.bq-select__helper-text.validation-warning {\n @apply text-warning;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Select input group control */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__dropdown:has(:focus-within, :focus-visible) {\n // The focus state will be controlled by the dropdown element\n // if any of its children has focus, the dropdown will set the focus state to the .bq-select__control\n .bq-select__control {\n --bq-ring-width: 1px;\n --bq-ring-offset-width: 0;\n --bq-ring-color-focus: var(--bq-select--border-color-focus);\n\n @apply focus border-[color:--bq-select--border-color-focus];\n }\n}\n\n.bq-select__control {\n @apply flex items-center bg-[--bq-select--background-color] transition-[border-color,box-shadow] is-full;\n // Border\n @apply rounded-[--bq-select--border-radius] border-[length:--bq-select--border-width] border-[color:--bq-select--border-color];\n // Padding\n @apply pe-[--bq-select--padding-end] ps-[--bq-select--padding-start] p-b-[var(--bq-select--paddingY)];\n // Text\n @apply select-none text-[length:--bq-select--text-size] text-[color:--bq-select--text-color] placeholder:text-[color:--bq-select--text-placeholder-color];\n // Hover\n @apply [&:not(.disabled):not(:focus-within)]:hover:border-hover-brand;\n\n border-style: var(--bq-select--border-style);\n\n // Enable clear button whenever the input group control is hovered or has focus\n &:not(.disabled):hover,\n &:not(.disabled):focus-within {\n .bq-select__control--clear {\n @apply inline-block;\n }\n }\n}\n\n.bq-select__control.disabled {\n @apply cursor-not-allowed opacity-60;\n}\n\n/* ------------------------------- Validation ------------------------------- */\n\n.bq-select__control.validation-error {\n @apply border-danger [&:not(.disabled):not(:focus-within)]:hover:border-hover-danger;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.danger);\n\n @apply border-active-danger;\n }\n}\n\n.bq-select__control.validation-success {\n @apply border-success [&:not(.disabled):not(:focus-within)]:hover:border-hover-success;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.success);\n\n @apply border-active-success;\n }\n}\n\n.bq-select__control.validation-warning {\n @apply border-warning [&:not(.disabled):not(:focus-within)]:hover:border-hover-warning;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.warning);\n\n @apply border-active-warning;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Native HTML Input */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--input {\n @apply flex-auto cursor-inherit select-none appearance-none bg-inherit font-inherit text-[length:inherit] text-inherit;\n @apply m-0 border-none p-0 min-bs-[var(--bq-select--icon-size)] min-is-0 focus:outline-none focus-visible:outline-none;\n\n box-shadow: none;\n font-weight: inherit;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Clear button */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--clear::part(button) {\n // Since the clear button is inside the input group control,\n // we need to reset the focus ring styles\n --bq-ring-width: initial;\n --bq-ring-offset-width: initial;\n --bq-ring-color-focus: initial;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Prefix and suffix */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--prefix,\n.bq-select__control--suffix {\n @apply pointer-events-none flex items-center text-[color:var(--bq-select--text-color)];\n}\n\n.bq-select__control--prefix {\n @apply me-[--bq-select--gap];\n}\n\n.bq-select__control--suffix {\n @apply ms-[--bq-select--gap] transition-transform duration-300 ease-in-out;\n}\n\n.bq-select__tags {\n @apply me-xs2 flex flex-1 gap-xs2;\n\n bq-tag,\n ::slotted(bq-tag) {\n @apply inline-flex;\n }\n\n bq-tag::part(text) {\n @apply text-nowrap leading-small;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Slotted and internal icons */\n/* -------------------------------------------------------------------------- */\n\nbq-icon,\n::slotted(bq-icon) {\n --bq-icon--size: var(--bq-select--icon-size) !important;\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { AttachInternals, Component, Element, Event, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport type { BqTagCustomEvent } from '../..';\nimport type { Placement } from '../../services/interfaces';\nimport {\n debounce,\n hasSlotContent,\n isDefined,\n isHTMLElement,\n isNil,\n stringToArray,\n type TDebounce,\n} from '../../shared/utils';\nimport type { TInputValidation } from '../input/bq-input.types';\n\nexport type TSelectValue = string | string[];\n\n/**\n * The select input component lets users choose from a predefined list, commonly used in forms for easy data selection.\n *\n * @example How to use it\n * ```html\n * <bq-select placeholder=\"Placeholder\">\n * <label slot=\"label\">Select label</label>\n * <span slot=\"helper-text\">\n * <bq-icon name=\"star\"></bq-icon>\n * Helper text\n * </span>\n *\n * <bq-option value=\"1\">Option 1</bq-option>\n * <bq-option value=\"2\">Option 2</bq-option>\n * <bq-option value=\"3\">Option 3</bq-option>\n * </bq-select>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/41989d-select/b/09d7b1\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-dropdown\n * @dependency bq-icon\n * @dependency bq-option-list\n * @dependency bq-tag\n *\n * @attr {boolean} autofocus - If `true`, the Select input will be focused on component render.\n * @attr {string} clear-button-label - The clear button aria label.\n * @attr {number} debounce-time - The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * @attr {boolean} disable-clear - If `true`, the clear button won't be displayed.\n * @attr {boolean} disabled - Indicates whether the Select input is disabled and cannot be interacted with.\n * @attr {number} distance - Represents the distance (gutter or margin) between the Select panel and the input element.\n * @attr {string} form - The ID of the form that Select input field belongs to.\n * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).\n * @attr {boolean} keep-open-on-select - If `true`, the Select panel will remain open after a selection is made.\n * @attr {number} max-tags-visible - The maximum number of tags to display when multiple selection is enabled.\n * @attr {boolean} multiple - If `true`, the Select input will allow multiple selections.\n * @attr {string} name - The Select input name.\n * @attr {boolean} open - If `true`, the Select panel will be visible.\n * @attr {string} panel-height - When set, it will override the height of the Select panel.\n * @attr {string} placeholder - The Select input placeholder text value.\n * @attr {\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"} placement - Position of the Select panel.\n * @attr {boolean} readonly - If `true`, the Select input cannot be modified.\n * @attr {boolean} required - Indicates whether or not the Select input is required to be filled out before submitting the form.\n * @attr {boolean} same-width - Whether the panel should have the Select same width as the input element.\n * @attr {number} skidding - Represents the skidding between the Select panel and the input element.\n * @attr {\"absolute\" | \"fixed\"} strategy - Defines the strategy to position the Select panel.\n * @attr {\"error\" | \"success\" | \"warning\" | \"none\"} validation-status - The validation status of the Select input.\n * @attr {\"number\" | \"string\" | \"string[]\"} value - The select input value can be used to reset the field to a previous value.\n *\n * @method clear - Method to be called to clear the selected value.\n *\n * @event bqBlur - The callback handler is emitted when the Select input loses focus.\n * @event bqClear - The callback handler is emitted when the selected value has been cleared.\n * @event bqFocus - A callback handler is emitted when the Select input has received focus.\n * @event bqSelect - The callback handler is emitted when the selected value has changed.\n *\n * @slot label - The label slot container.\n * @slot prefix - The prefix slot container.\n * @slot tags - The tags slot container.\n * @slot clear-icon - The clear icon slot container.\n * @slot suffix - The suffix slot container.\n * @slot helper-text - The helper text slot container.\n *\n * @part base - The component's base wrapper.\n * @part button - The native HTML button used under the hood in the clear button.\n * @part clear-btn - The clear button.\n * @part control - The input control wrapper.\n * @part input-outline - The input outline wrapper that holds the tags container and the native HTML input used under the hood.\n * @part helper-text - The helper text slot container.\n * @part input - The native HTML input element used under the hood.\n * @part label - The label slot container.\n * @part panel - The select panel container\n * @part prefix - The prefix slot container.\n * @part suffix - The suffix slot container.\n * @part tags - The tags container of the BqTags for multiple selection.\n * @part tag - The tag container of the BqTag for multiple selection.\n * @part tag__base - The base wrapper of the BqTag for multiple selection.\n * @part tag__prefix - The prefix slot container of the BqTag for multiple selection.\n * @part tag__text - The text slot container of the BqTag for multiple selection.\n * @part tag__btn-close - The close button of the BqTag for multiple selection.\n * @part option-list - The option list container.\n *\n * @cssprop --bq-select--background-color - Select background color\n * @cssprop --bq-select--border-color - Select border color\n * @cssprop --bq-select--border-color-focus - Select border color on focus\n * @cssprop --bq-select--border-color-disabled - Select border color when disabled\n * @cssprop --bq-select--border-radius - Select border radius\n * @cssprop --bq-select--border-width - Select border width\n * @cssprop --bq-select--border-style - Select border style\n * @cssprop --bq-select--gap - Gap between Select content and prefix/suffix\n * @cssprop --bq-select--helper-margin-top - Helper text margin top\n * @cssprop --bq-select--helper-text-color - Helper text color\n * @cssprop --bq-select--helper-text-size - Helper text size\n * @cssprop --bq-select--icon-size - Icon size to use in prefix/suffix and clear button\n * @cssprop --bq-select--label-margin-bottom - Select label margin bottom\n * @cssprop --bq-select--label-text-color - Select label text color\n * @cssprop --bq-select--label-text-size - Select label text size\n * @cssprop --bq-select--padding-start - Select padding start\n * @cssprop --bq-select--padding-end - Select padding end\n * @cssprop --bq-select--paddingY - Select padding top and bottom\n * @cssprop --bq-select--text-color - Select text color\n * @cssprop --bq-select--text-size - Select text size\n * @cssprop --bq-select--text-placeholder-color - Select placeholder text color\n */\n@Component({\n tag: 'bq-select',\n styleUrl: './scss/bq-select.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqSelect {\n // Own Properties\n // ====================\n\n private helperTextElem?: HTMLElement;\n private inputElem?: HTMLInputElement;\n private labelElem?: HTMLElement;\n private prefixElem?: HTMLElement;\n private suffixElem?: HTMLElement;\n\n private debounceQuery: TDebounce<void>;\n private debounceInput: TDebounce<void>;\n\n private fallbackInputId = 'select';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqSelectElement;\n @AttachInternals() internals!: ElementInternals;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() displayValue?: string;\n @State() hasHelperText = false;\n @State() selectedOptions: HTMLBqOptionElement[] = [];\n\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n @State() hasValue = false;\n\n // Public Property API\n // ========================\n\n /** If true, the Select input will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /** The clear button aria label */\n @Prop({ reflect: true }) clearButtonLabel? = 'Clear value';\n\n /**\n * The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * A value of 0 means no debouncing will occur.\n */\n @Prop({ reflect: true, mutable: true }) debounceTime? = 0;\n\n /** If true, the Select panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /**\n * Indicates whether the Select input is disabled or not.\n * If `true`, the Select is disabled and cannot be interacted with.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n\n /** If true, the clear button won't be displayed */\n @Prop({ reflect: true }) disableClear? = false;\n\n /** Represents the distance (gutter or margin) between the Select panel and the input element. */\n @Prop({ reflect: true }) distance?: number = 8;\n\n /** The ID of the form that the Select input belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /** The native form validation message (mandatory if `required` is set) */\n @Prop({ mutable: true }) formValidationMessage?: string;\n\n /** If true, the Select panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** The Select input name. */\n @Prop({ reflect: true }) name!: string;\n\n /** The maximum number of tags to display when multiple selection is enabled */\n @Prop({ mutable: true }) maxTagsVisible: number = 2;\n\n /** If true, the Select input will allow multiple selections. */\n @Prop({ reflect: true }) multiple?: boolean = false;\n\n /** If true, the Select panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the Select panel. */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** The Select input placeholder text value */\n @Prop({ reflect: true }) placeholder?: string;\n\n /** Position of the Select panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom';\n\n /** If true, the list of options cannot be filtered (searching won't be available) */\n @Prop({ reflect: true }) readonly?: boolean;\n\n /** Indicates whether or not the Select input is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean;\n\n /** Whether the panel should have the Select same width as the input element */\n @Prop({ reflect: true }) sameWidth?: boolean = true;\n\n /** Represents the skidding between the Select panel and the input element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the Select panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n /**\n * The validation status of the Select input.\n *\n * @remarks\n * This property is used to indicate the validation status of the select input. It can be set to one of the following values:\n * - `'none'`: No validation status is set.\n * - `'error'`: The input has a validation error.\n * - `'warning'`: The input has a validation warning.\n * - `'success'`: The input has passed validation.\n */\n @Prop({ reflect: true }) validationStatus: TInputValidation = 'none';\n\n /** The select input value, it can be used to reset the field to a previous value */\n @Prop({ reflect: true, mutable: true }) value: TSelectValue;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n // Early return for undefined/null values\n if (isNil(this.value)) {\n this.value = this.multiple ? [] : '';\n this.internals.setFormValue(undefined);\n this.syncItemsFromValue();\n this.updateFormValidity();\n return;\n }\n\n // Handle multiple selection mode\n if (this.multiple) {\n this.value = stringToArray(this.value);\n this.internals.setFormValue(this.value.join(','));\n this.syncItemsFromValue();\n this.updateFormValidity();\n\n return;\n }\n\n // Handle single selection mode\n this.value = String(this.value);\n this.internals.setFormValue(this.value);\n this.syncItemsFromValue();\n this.updateFormValidity();\n }\n\n @Watch('required')\n handleRequiredPropChange() {\n this.updateFormValidity();\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the Select input loses focus */\n @Event() bqBlur!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the selected value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the Select input has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the selected value has changed */\n @Event() bqSelect!: EventEmitter<{ value: string | number | string[]; item: HTMLBqOptionElement }>;\n\n /** Callback handler emitted when the Select input changes its value while typing */\n @Event() bqInput: EventEmitter<{ value: string | number | string[] }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n this.initMultipleValue();\n }\n\n componentWillLoad() {\n this.initMultipleValue();\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n\n if (this.multiple && Array.isArray(this.value)) {\n this.selectedOptions = this.options.filter((item) => this.value.includes(item.value));\n }\n this.handleValueChange();\n }\n\n formAssociatedCallback() {\n this.internals.role = 'combobox';\n this.internals.ariaExpanded = this.open ? 'true' : 'false';\n this.updateFormValidity();\n }\n\n async formResetCallback() {\n if (isNil(this.value)) return;\n\n this.updateFormValidity();\n this.clear();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqOpen', { capture: true })\n handleOpenChange(ev: CustomEvent<{ open: boolean }>) {\n if (!ev.composedPath().includes(this.el)) return;\n\n this.open = ev.detail.open;\n }\n\n @Listen('bqFocus', { capture: true })\n @Listen('bqBlur', { capture: true })\n stopOptionFocusBlurPropagation(ev: CustomEvent) {\n // Stop propagation of focus and blur events coming from the `bq-option` elements\n if (isHTMLElement(ev.target, 'bq-select')) return;\n\n ev.stopPropagation();\n }\n\n @Listen('scroll', { target: 'window', passive: true, capture: true })\n handleScrollEvent() {\n if (!this.open || this.disableScrollLock) return;\n\n // Close the panel when the scroll event is triggered.\n // This is useful for those cases where the floating panel is inside a scrollable container.\n // For example, a select inside a dialog, drawer, etc.\n // ⚠️ Notice that document body scroll lock is handled via the `scrollLock` utility.\n this.open = false;\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /**\n * Clears the selected value.\n *\n * @return {Promise<void>}\n * @memberof BqSelect\n */\n @Method()\n async clear(): Promise<void> {\n if (this.disabled) return;\n\n const { multiple, inputElem, bqClear, el } = this;\n\n // Clear value and selected options\n this.value = '';\n this.selectedOptions = [];\n\n // Clear display value and input element if not multiple\n if (!multiple) {\n this.displayValue = '';\n inputElem.value = '';\n }\n\n // Update form value and reset options visibility\n this.resetOptionsVisibility();\n\n // Emit clear event\n bqClear.emit(el);\n }\n\n /**\n * Resets the Select input to a previous value.\n *\n * @param {TSelectValue} value - The value to reset the Select input to.\n * @return {Promise<void>}\n * @memberof BqSelect\n */\n @Method()\n async reset(value: TSelectValue): Promise<void> {\n if (isNil(value)) return;\n\n this.value = value;\n this.syncItemsFromValue();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private initMultipleValue = () => {\n if (!this.multiple || !isDefined(this.value)) return;\n\n this.value = Array.isArray(this.value) ? this.value : Array.from(JSON.parse(String(this.value)));\n };\n\n private handleBlur = () => {\n if (this.disabled) return;\n\n this.bqBlur.emit(this.el);\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleSelect = (ev: CustomEvent<{ value: TSelectValue; item: HTMLBqOptionElement }>) => {\n if (this.disabled) return;\n\n if (this.multiple) {\n ev.stopPropagation();\n }\n\n const { value, item } = ev.detail;\n\n if (this.multiple) {\n this.handleMultipleSelection(item);\n // Clear the input value after selecting an item\n this.inputElem.value = '';\n // If multiple selection is enabled, emit the selected items array instead of relying on\n // the option list to emit the value of the selected item\n this.bqSelect.emit({ value: this.value, item });\n } else {\n this.value = value;\n }\n\n this.resetOptionsVisibility();\n this.inputElem.focus();\n };\n\n private handleMultipleSelection = (item: HTMLBqOptionElement) => {\n // Set has O(1) complexity for insertion, deletion, and search operations, compared to an Array's O(n)\n const selectedOptionsSet = new Set(this.selectedOptions);\n\n if (selectedOptionsSet.has(item)) {\n selectedOptionsSet.delete(item);\n } else {\n selectedOptionsSet.add(item);\n }\n\n this.selectedOptions = Array.from(selectedOptionsSet);\n this.value = this.selectedOptions.map((item) => item.value);\n };\n\n private handleSearchFilter = (value: string) => {\n if (this.disabled) return;\n\n this.debounceQuery?.cancel();\n\n const trimmedValue = value?.trim();\n if (!isDefined(trimmedValue)) {\n // For multi-select, just reset options visibility without clearing selections\n // This prevents backspace from removing selected tags when only clearing search text\n if (this.multiple) {\n this.resetOptionsVisibility();\n return;\n }\n\n this.clear();\n return;\n }\n\n this.debounceQuery = debounce(() => {\n this.options.forEach((item: HTMLBqOptionElement) => {\n // We want to get the entire inner text of the option element\n // to allow searching across the entire text, not just the first level\n const optionLabel = item.innerText?.trim().toLowerCase();\n const optionValue = item.value?.toLowerCase();\n // Show item if EITHER label OR value matches\n const matches =\n optionLabel.includes(trimmedValue.toLowerCase()) || optionValue.includes(trimmedValue.toLowerCase());\n item.hidden = !matches;\n });\n }, this.debounceTime);\n\n this.debounceQuery();\n\n // The panel will close once a selection is made\n // so we need to make sure it's open when the user is typing and the query is not empty\n this.open = true;\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (this.disabled || ev.key !== 'Backspace' || !this.multiple) return;\n\n // Only remove tags if input value is empty (no writing) and there are selected options\n if (this.inputElem?.value === '' && this.selectedOptions.length > 0) {\n ev.preventDefault();\n // Remove one selected option at a time starting from the last one\n const lastOption = this.selectedOptions[this.selectedOptions.length - 1];\n this.handleTagRemove(lastOption);\n }\n };\n\n private handleInput = (ev: Event) => {\n if (this.disabled) return;\n\n const { value } = ev.target as HTMLInputElement;\n\n this.debounceInput?.cancel();\n\n this.debounceInput = debounce(() => {\n const inputEvent = this.bqInput.emit({ value });\n if (!inputEvent.defaultPrevented) {\n // Continue with search filtering only if the event wasn't prevented\n this.handleSearchFilter(value);\n }\n }, this.debounceTime);\n\n this.debounceInput();\n };\n\n private handleClearClick = (ev: CustomEvent) => {\n (async () => {\n await this.clear();\n })();\n this.inputElem.focus();\n\n ev.stopPropagation();\n };\n\n private handleTagRemove = (item: HTMLBqOptionElement) => {\n if (this.disabled) return;\n\n this.handleMultipleSelection(item);\n this.bqSelect.emit({ value: this.value, item });\n };\n\n private handleSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n this.hasPrefix = hasSlotContent(this.prefixElem);\n this.hasSuffix = hasSlotContent(this.suffixElem);\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n private resetOptionsVisibility = () => {\n this.options.forEach((item: HTMLBqOptionElement) => {\n item.hidden = false;\n });\n };\n\n private syncItemsFromValue = () => {\n const { internals, options, value } = this;\n if (!options.length) return;\n\n // Sync selected state of the BqOption elements\n this.syncSelectedOptionsState();\n\n if (this.multiple) {\n // Sync selected options for multiple selection mode\n this.selectedOptions = options.filter((option) => this.value?.includes(option.value));\n }\n\n // Always update display value and form value\n this.updateDisplayLabel();\n internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n };\n\n /**\n * Syncs the selected state of the BqOption elements which value is included in the `value` property.\n * Notice that value can be a string or an array of strings.\n *\n * @private\n * @memberof BqSelect\n */\n private syncSelectedOptionsState = () => {\n const { options, multiple, value } = this;\n const lowerCaseValue = String(value).toLowerCase();\n\n options.forEach((option: HTMLBqOptionElement) => {\n if (multiple && Array.isArray(value)) {\n option.selected = value.includes(option.value);\n } else {\n option.selected = option.value?.toLowerCase() === lowerCaseValue;\n }\n });\n };\n\n /**\n * Updates the display value of the input element based on the selected option.\n *\n * @private\n * @memberof BqSelect\n */\n private updateDisplayLabel = () => {\n const { value, options, inputElem } = this;\n\n const checkedItem = options.find((item) => item.value === value);\n const displayValue = checkedItem ? this.getOptionLabel(checkedItem) : '';\n\n this.displayValue = displayValue;\n if (inputElem) {\n inputElem.value = displayValue;\n }\n };\n\n private getOptionLabel = (item: HTMLBqOptionElement) => {\n if (!item) return '';\n\n if (item.displayValue) {\n return item.displayValue.trim();\n }\n\n const defaultSlot = item.shadowRoot?.querySelector('slot:not([name])');\n if (!defaultSlot) {\n return item.innerText.trim();\n }\n\n const text = this.getItemTextContent(defaultSlot as HTMLSlotElement);\n if (text) return text;\n\n // Fallback to innerText\n return item.innerText.trim();\n };\n\n private getItemTextContent = (slot: HTMLSlotElement): string | undefined => {\n const nodes = slot.assignedNodes({ flatten: true });\n\n for (const node of nodes) {\n if (node.nodeType === Node.TEXT_NODE) {\n const text = node.textContent?.trim();\n if (text) return text;\n }\n\n // Element node - get first child text\n if (node.nodeType === Node.ELEMENT_NODE) {\n for (const child of Array.from((node as HTMLElement).childNodes)) {\n const text = child.textContent?.trim();\n if (text) return text;\n }\n }\n }\n\n return '';\n };\n\n private updateFormValidity = () => {\n const { formValidationMessage, internals, required, value } = this;\n\n // Clear the validity state\n internals?.states.clear();\n\n const isEmpty = this.multiple\n ? !Array.isArray(value) || value.length === 0\n : !isDefined(value) || String(value).trim() === '';\n\n if (required && isEmpty) {\n // Set validity state to invalid\n internals?.states.add('invalid');\n internals?.setValidity(\n { valueMissing: true },\n formValidationMessage || 'Please select an option',\n this.inputElem,\n );\n return;\n }\n\n // Set validity state to valid if textarea has value or is not required\n internals?.states.add('valid');\n internals?.setValidity({});\n };\n\n private get options() {\n return Array.from(this.el.querySelectorAll('bq-option'));\n }\n\n private get displayPlaceholder() {\n // Hide the placeholder when multiple selection is enabled and there are selected items\n return this.multiple && this.selectedOptions.length !== 0 ? undefined : this.placeholder;\n }\n\n private get displayTags() {\n return this.selectedOptions.map((item, index) => {\n if (index < this.maxTagsVisible || this.maxTagsVisible < 0) {\n return (\n <bq-tag\n exportparts=\"wrapper:tag__base,prefix:tag__prefix,text:tag__text,btn-close:tag__btn-close\"\n key={item.value}\n // Prevent the tag from closing the panel when clicked\n onBqClick={(ev: BqTagCustomEvent<HTMLBqTagElement>) => ev.stopPropagation()}\n onBqClose={(event) => {\n // NOTE: prevents triggering bqClose on parent\n event.stopPropagation();\n this.handleTagRemove(item);\n }}\n part=\"tag\"\n removable\n size=\"xsmall\"\n variant=\"filled\"\n >\n {this.getOptionLabel(item)}\n </bq-tag>\n );\n } else if (index === this.maxTagsVisible) {\n return (\n <bq-tag\n exportparts=\"wrapper:tag__base,prefix:tag__prefix,text:tag__text,btn-close:tag__btn-close\"\n key=\"more\"\n part=\"tag\"\n size=\"xsmall\"\n variant=\"filled\"\n >\n +{this.selectedOptions.length - index}\n </bq-tag>\n );\n }\n\n return null;\n });\n }\n\n private get hasClearIcon() {\n if (this.disableClear || this.disabled) {\n return false;\n }\n\n if (this.multiple) {\n return this.selectedOptions.length > 0;\n }\n\n return isDefined(this.displayValue);\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const labelId = `bq-select__label-${this.name || this.fallbackInputId}`;\n\n return (\n <div class=\"bq-select\" part=\"base\">\n {/* Label */}\n <label\n aria-label={this.name || this.fallbackInputId}\n class={{ 'bq-select__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name || this.fallbackInputId}\n id={labelId}\n part=\"label\"\n ref={(labelElem: HTMLSpanElement) => {\n this.labelElem = labelElem;\n }}\n >\n <slot name=\"label\" onSlotchange={this.handleSlotChange} />\n </label>\n {/* Select dropdown */}\n <bq-dropdown\n class=\"bq-select__dropdown w-full\"\n disabled={this.disabled}\n disableScrollLock={this.disableScrollLock}\n distance={this.distance}\n exportparts=\"panel\"\n keepOpenOnSelect={this.keepOpenOnSelect}\n open={this.open}\n panelHeight={this.panelHeight}\n placement={this.placement}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n >\n {/* Input control group */}\n <div\n class={{\n 'bq-select__control': true,\n [`validation-${this.validationStatus}`]: true,\n disabled: this.disabled,\n }}\n part=\"control\"\n slot=\"trigger\"\n >\n {/* Prefix */}\n <span\n class={{ 'bq-select__control--prefix': true, '!hidden': !this.hasPrefix }}\n part=\"prefix\"\n ref={(spanElem: HTMLSpanElement) => {\n this.prefixElem = spanElem;\n }}\n >\n <slot name=\"prefix\" onSlotchange={this.handleSlotChange} />\n </span>\n <div class=\"flex flex-1 overflow-x-auto\" part=\"input-outline\">\n {/* Display selected values using BqTags for multiple selection */}\n {this.multiple && (\n <span class=\"bq-select__tags\" part=\"tags\">\n <slot name=\"tags\">{this.displayTags}</slot>\n </span>\n )}\n {/* HTML Input */}\n <input\n aria-controls={`bq-options-${this.name}`}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-expanded={this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n class=\"bq-select__control--input is-full flex-grow\"\n disabled={this.disabled}\n form={this.form}\n id={this.name || this.fallbackInputId}\n name={this.name}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onInput={this.handleInput}\n onKeyDown={this.handleKeydown}\n part=\"input\"\n placeholder={this.displayPlaceholder}\n readOnly={this.readonly}\n ref={(inputElem: HTMLInputElement) => {\n this.inputElem = inputElem;\n }}\n required={this.required}\n role=\"combobox\"\n // Events\n spellcheck={false}\n type=\"text\"\n value={this.displayValue}\n />\n </div>\n {/* Clear Button */}\n {this.hasClearIcon && (\n // The clear button will be visible as long as the input has a value\n // and the parent group is hovered or has focus-within\n <bq-button\n appearance=\"text\"\n border=\"s\"\n class=\"bq-select__control--clear ms-[--bq-select--gap] hidden [&::part(button)]:border-none [&::part(button)]:p-0\"\n exportparts=\"button\"\n label={this.clearButtonLabel}\n onBqClick={this.handleClearClick}\n onlyIcon\n part=\"clear-btn\"\n size=\"small\"\n tabIndex={-1}\n >\n <slot name=\"clear-icon\">\n <bq-icon aria-hidden=\"true\" class=\"flex\" name=\"x-circle\" />\n </slot>\n </bq-button>\n )}\n {/* Suffix */}\n <span\n class={{ 'bq-select__control--suffix': true, 'rotate-180': this.open, 'rotate-0': !this.open }}\n part=\"suffix\"\n ref={(spanElem: HTMLSpanElement) => {\n this.suffixElem = spanElem;\n }}\n >\n <slot name=\"suffix\" onSlotchange={this.handleSlotChange}>\n <bq-icon class=\"flex\" name=\"caret-down\" />\n </slot>\n </span>\n </div>\n <bq-option-list\n aria-expanded={this.open ? 'true' : 'false'}\n exportparts=\"base:option-list\"\n id={`bq-options-${this.name}`}\n onBqSelect={this.handleSelect}\n role=\"listbox\"\n >\n <slot />\n </bq-option-list>\n </bq-dropdown>\n {/* Helper text */}\n <div\n class={{\n [`bq-select__helper-text validation-${this.validationStatus}`]: true,\n '!hidden': !this.hasHelperText,\n }}\n part=\"helper-text\"\n ref={(divElem: HTMLDivElement) => {\n this.helperTextElem = divElem;\n }}\n >\n <slot name=\"helper-text\" onSlotchange={this.handleSlotChange} />\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,5 +2,5 @@
2
2
  * Built by Endavans
3
3
  * © https://beeq.design - Apache 2 License.
4
4
  */
5
- import{r as a,c as r,a as e,h as b}from"./p-CO2T68hs.js";import{F as t}from"./p-CSAZnAFf.js";import{i as n}from"./p-Dx-CEPSQ.js";const q=()=>`.bq-tooltip--arrow:before,.rotate-45,.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1}.bq-tooltip--panel,.shadow-\\[shadow\\:--bq-tooltip--box-shadow\\]{--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq:not([bq-mode]),.light,:root:not([bq-theme]):not([bq-mode]),:root[bq-theme=beeq]:not([bq-mode]),[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,.endava:not([bq-mode]),[bq-theme=endava]:not([bq-mode]),[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.start-0{inset-inline-start:0}.-z-\\[1\\]{z-index:-1}.z-\\[--bq-tooltip--z-index\\]{z-index:var(--bq-tooltip--z-index)}.box-border{box-sizing:border-box}.rotate-45{--tw-rotate:45deg}.rotate-45,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rounded-\\[--bq-tooltip--border-radius\\]{border-radius:var(--bq-tooltip--border-radius)}.border-\\[length\\:--bq-tooltip--border-width\\]{border-width:var(--bq-tooltip--border-width)}.border-\\[color\\:--bq-tooltip--border-color\\]{border-color:var(--bq-tooltip--border-color)}.bg-\\[--bq-tooltip--background-color\\]{background-color:var(--bq-tooltip--background-color)}.text-\\[length\\:--bq-tooltip--font-size\\]{font-size:var(--bq-tooltip--font-size)}.leading-\\[--bq-tooltip--line-height\\]{line-height:var(--bq-tooltip--line-height)}.text-\\[color\\:--bq-tooltip--text-color\\]{color:var(--bq-tooltip--text-color)}.shadow-\\[shadow\\:--bq-tooltip--box-shadow\\]{--tw-shadow:var(--bq-tooltip--box-shadow);--tw-shadow-colored:var(--bq-tooltip--box-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.content-empty{--tw-content:"";content:var(--tw-content)}.bs-2{block-size:.5rem}.is-2{inline-size:.5rem}.is-\\[--bq-tooltip--width\\]{inline-size:var(--bq-tooltip--width)}.max-is-\\[--bq-tooltip--max-width\\]{max-inline-size:var(--bq-tooltip--max-width)}.p-b-\\[--bq-tooltip--paddingY\\]{padding-block:var(--bq-tooltip--paddingY)}.p-i-\\[--bq-tooltip--paddingX\\]{padding-inline:var(--bq-tooltip--paddingX)}.inset-bs-0{inset-block-start:0}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-tooltip--background-color:var(--bq-ui--inverse);--bq-tooltip--box-shadow:var(--bq-box-shadow--m);--bq-tooltip--font-size:var(--bq-font-size--m);--bq-tooltip--line-height:var(--bq-font-line-height--regular);--bq-tooltip--text-color:var(--bq-text--inverse);--bq-tooltip--paddingX:var(--bq-spacing-xs);--bq-tooltip--paddingY:var(--bq-spacing-xs2);--bq-tooltip--border-color:transparent;--bq-tooltip--border-radius:var(--bq-radius--s);--bq-tooltip--border-style:none;--bq-tooltip--border-width:unset;--bq-tooltip--max-width:320px;--bq-tooltip--width:max-content;--bq-tooltip--z-index:10}.bq-tooltip--panel{--tw-shadow:var(--bq-tooltip--box-shadow);--tw-shadow-colored:var(--bq-tooltip--box-shadow);-webkit-animation:fade-in .3s ease 0s;animation:fade-in .3s ease 0s;background-color:var(--bq-tooltip--background-color);border-color:var(--bq-tooltip--border-color);border-radius:var(--bq-tooltip--border-radius);border-width:var(--bq-tooltip--border-width);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-sizing:border-box;color:var(--bq-tooltip--text-color);font-size:var(--bq-tooltip--font-size);inline-size:var(--bq-tooltip--width);line-height:var(--bq-tooltip--line-height);max-inline-size:var(--bq-tooltip--max-width);padding-block:var(--bq-tooltip--paddingY);padding-inline:var(--bq-tooltip--paddingX);pointer-events:none;position:fixed;z-index:var(--bq-tooltip--z-index)}.bq-tooltip--arrow,.bq-tooltip--arrow:before{block-size:.5rem;inline-size:.5rem;position:absolute;z-index:-1}.bq-tooltip--arrow:before{--tw-rotate:45deg;--tw-content:"";background-color:var(--bq-tooltip--background-color);content:var(--tw-content);inset-block-start:0;inset-inline-start:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.visible{visibility:visible}.static{position:static}.relative{position:relative}.hidden{display:none}`;const i=class{constructor(e){a(this,e);this.bqClick=r(this,"bqClick");this.bqFocusIn=r(this,"bqFocusIn");this.bqFocusOut=r(this,"bqFocusOut");this.bqHoverIn=r(this,"bqHoverIn");this.bqHoverOut=r(this,"bqHoverOut")}trigger;panel;arrow;floatingUI;get el(){return e(this)}alwaysVisible=false;distance=10;hideArrow=false;placement="top";sameWidth=false;displayOn="hover";visible=false;async handleVisibleChange(){if(!this.visible&&!this.alwaysVisible){return await this.hide()}await this.show()}handleFloatingUIOptionsChange(){this.floatingUI.init({placement:this.placement,distance:this.distance,sameWidth:this.sameWidth,strategy:"fixed"})}bqClick;bqFocusIn;bqFocusOut;bqHoverIn;bqHoverOut;componentDidLoad(){this.floatingUI=new t(this.trigger,this.panel,{...!this.hideArrow&&{arrow:this.arrow},placement:this.placement,distance:this.distance,sameWidth:this.sameWidth,strategy:"absolute",skidding:0})}disconnectedCallback(){this.floatingUI?.destroy()}handleDocumentKeyDown(a){if(this.alwaysVisible||!this.visible||this.displayOn!=="click")return;if(a.key!=="Escape")return;this.hide()}handleDocumentMouseDown(a){if(this.alwaysVisible||!this.visible)return;if(n(a,this.el))return;this.hide()}handleDocumentScroll(){if(this.alwaysVisible||!this.visible)return;this.hide()}async show(){this.visible=true;this.showTooltip()}async hide(){if(this.alwaysVisible)return;this.visible=false;this.hideTooltip()}handleTriggerMouseOver=async()=>{if(this.displayOn!=="hover")return;const a=this.bqHoverIn.emit(this.el);if(a.defaultPrevented)return;await this.show()};handleTriggerMouseLeave=async()=>{if(this.displayOn!=="hover")return;const a=this.bqHoverOut.emit(this.el);if(a.defaultPrevented)return;await this.hide()};handleTriggerOnClick=async()=>{if(this.displayOn!=="click")return;const a=this.bqClick.emit(this.el);if(a.defaultPrevented)return;await(this.visible?this.hide():this.show())};handleTriggerFocusin=async()=>{if(this.visible||this.displayOn==="click")return;const a=this.bqFocusIn.emit(this.el);if(a.defaultPrevented)return;await this.show()};handleTriggerFocusout=async()=>{if(!this.visible||this.displayOn==="click")return;const a=this.bqFocusOut.emit(this.el);if(a.defaultPrevented)return;await this.hide()};showTooltip=()=>{if(!this.panel)return;this.floatingUI?.update()};hideTooltip=()=>{if(!this.panel)return;this.visible=false};get isHidden(){return!this.visible&&!this.alwaysVisible}render(){return b("div",{key:"f2db0dd86444c45036569946336e5a2acc9e62e7",class:"bq-tooltip relative",part:"base"},b("div",{key:"fd29d43f2526a44239e0985831596cbc1b90be33",class:"bq-tooltip--trigger",onClick:this.handleTriggerOnClick,onFocusin:this.handleTriggerFocusin,onFocusout:this.handleTriggerFocusout,onMouseEnter:this.handleTriggerMouseOver,onMouseLeave:this.handleTriggerMouseLeave,part:"trigger",ref:a=>{this.trigger=a}},b("slot",{key:"e8c45c4014ab7f16c76327997770b7df016f632b",name:"trigger"})),b("div",{key:"f22aa8f8248fd4661300395859b171e0ad68f4f5","aria-hidden":this.isHidden,class:"bq-tooltip--panel",hidden:this.isHidden,part:"panel",ref:a=>{this.panel=a},role:"tooltip"},!this.hideArrow&&b("div",{key:"e543f0decb1a92c8eb8c324716c098ed1c0b70c0",class:"bq-tooltip--arrow",ref:a=>{this.arrow=a}}),b("slot",{key:"8e9e98030a5e9f42ea296b2fd49be7d076ba6065"})))}static get watchers(){return{visible:[{handleVisibleChange:0}],distance:[{handleFloatingUIOptionsChange:0}],hideArrow:[{handleFloatingUIOptionsChange:0}],placement:[{handleFloatingUIOptionsChange:0}],sameWidth:[{handleFloatingUIOptionsChange:0}]}}};i.style=q();export{i as bq_tooltip};
6
- //# sourceMappingURL=p-2e9bc398.entry.js.map
5
+ import{r as a,c as r,a as e,h as b}from"./p-BSSRzVAz.js";import{F as t}from"./p-CSAZnAFf.js";import{i as n}from"./p-Dx-CEPSQ.js";const q=()=>`.bq-tooltip--arrow:before,.rotate-45,.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1}.bq-tooltip--panel,.shadow-\\[shadow\\:--bq-tooltip--box-shadow\\]{--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq:not([bq-mode]),.light,:root:not([bq-theme]):not([bq-mode]),:root[bq-theme=beeq]:not([bq-mode]),[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,.endava:not([bq-mode]),[bq-theme=endava]:not([bq-mode]),[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.start-0{inset-inline-start:0}.-z-\\[1\\]{z-index:-1}.z-\\[--bq-tooltip--z-index\\]{z-index:var(--bq-tooltip--z-index)}.box-border{box-sizing:border-box}.rotate-45{--tw-rotate:45deg}.rotate-45,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rounded-\\[--bq-tooltip--border-radius\\]{border-radius:var(--bq-tooltip--border-radius)}.border-\\[length\\:--bq-tooltip--border-width\\]{border-width:var(--bq-tooltip--border-width)}.border-\\[color\\:--bq-tooltip--border-color\\]{border-color:var(--bq-tooltip--border-color)}.bg-\\[--bq-tooltip--background-color\\]{background-color:var(--bq-tooltip--background-color)}.text-\\[length\\:--bq-tooltip--font-size\\]{font-size:var(--bq-tooltip--font-size)}.leading-\\[--bq-tooltip--line-height\\]{line-height:var(--bq-tooltip--line-height)}.text-\\[color\\:--bq-tooltip--text-color\\]{color:var(--bq-tooltip--text-color)}.shadow-\\[shadow\\:--bq-tooltip--box-shadow\\]{--tw-shadow:var(--bq-tooltip--box-shadow);--tw-shadow-colored:var(--bq-tooltip--box-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.content-empty{--tw-content:"";content:var(--tw-content)}.bs-2{block-size:.5rem}.is-2{inline-size:.5rem}.is-\\[--bq-tooltip--width\\]{inline-size:var(--bq-tooltip--width)}.max-is-\\[--bq-tooltip--max-width\\]{max-inline-size:var(--bq-tooltip--max-width)}.p-b-\\[--bq-tooltip--paddingY\\]{padding-block:var(--bq-tooltip--paddingY)}.p-i-\\[--bq-tooltip--paddingX\\]{padding-inline:var(--bq-tooltip--paddingX)}.inset-bs-0{inset-block-start:0}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-tooltip--background-color:var(--bq-ui--inverse);--bq-tooltip--box-shadow:var(--bq-box-shadow--m);--bq-tooltip--font-size:var(--bq-font-size--m);--bq-tooltip--line-height:var(--bq-font-line-height--regular);--bq-tooltip--text-color:var(--bq-text--inverse);--bq-tooltip--paddingX:var(--bq-spacing-xs);--bq-tooltip--paddingY:var(--bq-spacing-xs2);--bq-tooltip--border-color:transparent;--bq-tooltip--border-radius:var(--bq-radius--s);--bq-tooltip--border-style:none;--bq-tooltip--border-width:unset;--bq-tooltip--max-width:320px;--bq-tooltip--width:max-content;--bq-tooltip--z-index:10}.bq-tooltip--panel{--tw-shadow:var(--bq-tooltip--box-shadow);--tw-shadow-colored:var(--bq-tooltip--box-shadow);-webkit-animation:fade-in .3s ease 0s;animation:fade-in .3s ease 0s;background-color:var(--bq-tooltip--background-color);border-color:var(--bq-tooltip--border-color);border-radius:var(--bq-tooltip--border-radius);border-width:var(--bq-tooltip--border-width);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-sizing:border-box;color:var(--bq-tooltip--text-color);font-size:var(--bq-tooltip--font-size);inline-size:var(--bq-tooltip--width);line-height:var(--bq-tooltip--line-height);max-inline-size:var(--bq-tooltip--max-width);padding-block:var(--bq-tooltip--paddingY);padding-inline:var(--bq-tooltip--paddingX);pointer-events:none;position:fixed;z-index:var(--bq-tooltip--z-index)}.bq-tooltip--arrow,.bq-tooltip--arrow:before{block-size:.5rem;inline-size:.5rem;position:absolute;z-index:-1}.bq-tooltip--arrow:before{--tw-rotate:45deg;--tw-content:"";background-color:var(--bq-tooltip--background-color);content:var(--tw-content);inset-block-start:0;inset-inline-start:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.visible{visibility:visible}.static{position:static}.relative{position:relative}.hidden{display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}`;const i=class{constructor(e){a(this,e);this.bqClick=r(this,"bqClick");this.bqFocusIn=r(this,"bqFocusIn");this.bqFocusOut=r(this,"bqFocusOut");this.bqHoverIn=r(this,"bqHoverIn");this.bqHoverOut=r(this,"bqHoverOut")}trigger;panel;arrow;floatingUI;get el(){return e(this)}alwaysVisible=false;distance=10;hideArrow=false;placement="top";sameWidth=false;displayOn="hover";visible=false;async handleVisibleChange(){if(!this.visible&&!this.alwaysVisible){return await this.hide()}await this.show()}handleFloatingUIOptionsChange(){this.floatingUI.init({placement:this.placement,distance:this.distance,sameWidth:this.sameWidth,strategy:"fixed"})}bqClick;bqFocusIn;bqFocusOut;bqHoverIn;bqHoverOut;componentDidLoad(){this.floatingUI=new t(this.trigger,this.panel,{...!this.hideArrow&&{arrow:this.arrow},placement:this.placement,distance:this.distance,sameWidth:this.sameWidth,strategy:"absolute",skidding:0})}disconnectedCallback(){this.floatingUI?.destroy()}handleDocumentKeyDown(a){if(this.alwaysVisible||!this.visible||this.displayOn!=="click")return;if(a.key!=="Escape")return;this.hide()}handleDocumentMouseDown(a){if(this.alwaysVisible||!this.visible)return;if(n(a,this.el))return;this.hide()}handleDocumentScroll(){if(this.alwaysVisible||!this.visible)return;this.hide()}async show(){this.visible=true;this.showTooltip()}async hide(){if(this.alwaysVisible)return;this.visible=false;this.hideTooltip()}handleTriggerMouseOver=async()=>{if(this.displayOn!=="hover")return;const a=this.bqHoverIn.emit(this.el);if(a.defaultPrevented)return;await this.show()};handleTriggerMouseLeave=async()=>{if(this.displayOn!=="hover")return;const a=this.bqHoverOut.emit(this.el);if(a.defaultPrevented)return;await this.hide()};handleTriggerOnClick=async()=>{if(this.displayOn!=="click")return;const a=this.bqClick.emit(this.el);if(a.defaultPrevented)return;await(this.visible?this.hide():this.show())};handleTriggerFocusin=async()=>{if(this.visible||this.displayOn==="click")return;const a=this.bqFocusIn.emit(this.el);if(a.defaultPrevented)return;await this.show()};handleTriggerFocusout=async()=>{if(!this.visible||this.displayOn==="click")return;const a=this.bqFocusOut.emit(this.el);if(a.defaultPrevented)return;await this.hide()};showTooltip=()=>{if(!this.panel)return;this.floatingUI?.update()};hideTooltip=()=>{if(!this.panel)return;this.visible=false};get isHidden(){return!this.visible&&!this.alwaysVisible}render(){return b("div",{key:"f312ed1e15341e5596d868e6f85fdb496e04a2fe",class:"bq-tooltip relative",part:"base"},b("div",{key:"e62b777ac939bcb2bc1a62a4639f461cf4d680f7",class:"bq-tooltip--trigger",onClick:this.handleTriggerOnClick,onFocusin:this.handleTriggerFocusin,onFocusout:this.handleTriggerFocusout,onMouseEnter:this.handleTriggerMouseOver,onMouseLeave:this.handleTriggerMouseLeave,part:"trigger",ref:a=>{this.trigger=a}},b("slot",{key:"63bfa9cfca963f9c4ef57f583d80a9ea8741fc2a",name:"trigger"})),b("div",{key:"842394883e5d3916a44d53bfc94946968a40682d","aria-hidden":this.isHidden,class:"bq-tooltip--panel",hidden:this.isHidden,part:"panel",ref:a=>{this.panel=a},role:"tooltip"},!this.hideArrow&&b("div",{key:"c79a1192c15575c1557dd675184ecee7100bf1db",class:"bq-tooltip--arrow",ref:a=>{this.arrow=a}}),b("slot",{key:"974ac76b3b82a6a99e8651b209336882ea114dcc"})))}static get watchers(){return{visible:[{handleVisibleChange:0}],distance:[{handleFloatingUIOptionsChange:0}],hideArrow:[{handleFloatingUIOptionsChange:0}],placement:[{handleFloatingUIOptionsChange:0}],sameWidth:[{handleFloatingUIOptionsChange:0}]}}};i.style=q();export{i as bq_tooltip};
6
+ //# sourceMappingURL=p-a55354ee.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["bqTooltipCss","BqTooltip","trigger","panel","arrow","floatingUI","alwaysVisible","distance","hideArrow","placement","sameWidth","displayOn","visible","handleVisibleChange","this","hide","show","handleFloatingUIOptionsChange","init","strategy","bqClick","bqFocusIn","bqFocusOut","bqHoverIn","bqHoverOut","componentDidLoad","FloatingUI","skidding","disconnectedCallback","destroy","handleDocumentKeyDown","event","key","handleDocumentMouseDown","isEventTargetChildOfElement","el","handleDocumentScroll","showTooltip","hideTooltip","handleTriggerMouseOver","async","hoverEvent","emit","defaultPrevented","handleTriggerMouseLeave","handleTriggerOnClick","clickEvent","handleTriggerFocusin","focusEvent","handleTriggerFocusout","update","isHidden","render","h","class","part","onClick","onFocusin","onFocusout","onMouseEnter","onMouseLeave","ref","name","hidden","role"],"sources":["../../packages/beeq/src/components/tooltip/scss/bq-tooltip.scss?tag=bq-tooltip&encapsulation=shadow","../../packages/beeq/src/components/tooltip/bq-tooltip.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Tooltip styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-tooltip.variables';\n\n.bq-tooltip--panel {\n @include animation-fade-in;\n @apply pointer-events-none fixed z-[--bq-tooltip--z-index] box-border bg-[--bq-tooltip--background-color];\n @apply is-[--bq-tooltip--width] max-is-[--bq-tooltip--max-width] p-b-[--bq-tooltip--paddingY] p-i-[--bq-tooltip--paddingX];\n @apply text-[length:--bq-tooltip--font-size] leading-[--bq-tooltip--line-height] text-[color:--bq-tooltip--text-color];\n @apply rounded-[--bq-tooltip--border-radius] border-[length:--bq-tooltip--border-width] border-[color:--bq-tooltip--border-color];\n @apply shadow-[shadow:--bq-tooltip--box-shadow];\n}\n\n.bq-tooltip--arrow {\n &,\n &::before {\n @apply absolute -z-[1] bs-2 is-2;\n }\n\n &::before {\n @apply start-0 rotate-45 bg-[--bq-tooltip--background-color] content-empty inset-bs-0;\n }\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Element, Event, h, Listen, Method, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { FloatingUI } from '../../services/libraries';\nimport { isEventTargetChildOfElement } from '../../shared/utils';\n\n/**\n * The Tooltip component is a small pop-up box that appears when a user hovers over or clicks on an element, providing additional information or context.\n *\n * @example How to use it\n * ```html\n * <bq-tooltip visible>\n * Yuhu! I'm a tooltip 🙃\n * <bq-button slot=\"trigger\">Hover me!</bq-button>\n * </bq-tooltip>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/64c562-tooltip\n * @status stable\n *\n * @attr {boolean} always-visible - If true, the tooltip will always be visible\n * @attr {number} distance - Distance between trigger element and tooltip\n * @attr {boolean} hide-arrow - If true, the arrow on the tooltip content won't be shown\n * @attr {\"top\" | \"right\" | \"bottom\" | \"left\"} placement - Defines the position of the tooltip\n * @attr {boolean} same-width - Whether the tooltip should have the same width as the trigger element (applicable only for content shorter than the trigger element)\n * @attr {\"click\" | \"hover\"} display-on - Set the action when the tooltip should be displayed, on hover (default) or click\n * @attr {boolean} visible - Indicates whether or not the tooltip is visible when the component is first rendered, and when interacting with the trigger\n *\n * @method show - Shows the tooltip\n * @method hide - Hides the tooltip\n *\n * @slot trigger - The element which displays tooltip on hover\n * @slot - The tooltip content\n *\n * @part base - The component wrapper container inside the shadow DOM\n * @part trigger - The `<div>` container that holds the element which displays tooltip on hover\n * @part panel - The `<div>` container that holds the tooltip content\n *\n * @cssprop --bq-tooltip--background-color - Tooltip background color\n * @cssprop --bq-tooltip--box-shadow - Tooltip box shadow\n * @cssprop --bq-tooltip--font-size - Tooltip font size\n * @cssprop --bq-tooltip--line-height - Tooltip line height\n * @cssprop --bq-tooltip--text-color - Tooltip text color\n * @cssprop --bq-tooltip--paddingX - Tooltip horizontal padding\n * @cssprop --bq-tooltip--paddingY - Tooltip vertical padding\n * @cssprop --bq-tooltip--border-color - Tooltip border color\n * @cssprop --bq-tooltip--border-radius - Tooltip border radius\n * @cssprop --bq-tooltip--border-style - Tooltip border style\n * @cssprop --bq-tooltip--border-width - Tooltip border width\n * @cssprop --bq-tooltip--z-index: Tooltip z-index\n */\n@Component({\n tag: 'bq-tooltip',\n styleUrl: './scss/bq-tooltip.scss',\n shadow: true,\n})\nexport class BqTooltip {\n // Own Properties\n // ====================\n private trigger: HTMLElement;\n private panel: HTMLElement;\n private arrow: HTMLElement;\n private floatingUI: FloatingUI;\n\n // Reference to host HTML element\n // ===================================\n @Element() el!: HTMLBqTooltipElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the tooltip will always be visible */\n @Prop() alwaysVisible?: boolean = false;\n\n /** Distance between trigger element and tooltip */\n @Prop({ reflect: true }) distance?: number = 10;\n\n /** If true, the arrow on the tooltip content won't be shown */\n @Prop({ reflect: true }) hideArrow?: boolean = false;\n\n /* Defines the position of the tooltip */\n @Prop({ reflect: true }) placement?: Placement = 'top';\n\n /** Whether the tooltip should have the same width as the trigger element\n * (applicable only for content shorter than the trigger element) */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Set the action when the tooltip should be displayed, on hover (default) or click */\n @Prop({ reflect: true }) displayOn: 'click' | 'hover' = 'hover';\n\n /**\n * Indicates whether or not the tooltip is visible when the component is first rendered,\n * and when interacting with the trigger\n */\n @Prop({ reflect: true, mutable: true }) visible? = false;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('visible')\n async handleVisibleChange() {\n if (!this.visible && !this.alwaysVisible) {\n return await this.hide();\n }\n\n await this.show();\n }\n\n @Watch('distance')\n @Watch('hideArrow')\n @Watch('placement')\n @Watch('sameWidth')\n handleFloatingUIOptionsChange() {\n this.floatingUI.init({\n placement: this.placement,\n distance: this.distance,\n sameWidth: this.sameWidth,\n strategy: 'fixed',\n });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Emitted when the tooltip trigger is clicked */\n @Event() bqClick: EventEmitter<HTMLBqTooltipElement>;\n\n /** Emitted when the tooltip trigger is focused in */\n @Event() bqFocusIn: EventEmitter<HTMLBqTooltipElement>;\n\n /** Emitted when the tooltip trigger is focused out */\n @Event() bqFocusOut: EventEmitter<HTMLBqTooltipElement>;\n\n /** Emitted when the tooltip trigger is hovered in */\n @Event() bqHoverIn: EventEmitter<HTMLBqTooltipElement>;\n\n /** Emitted when the tooltip trigger is hovered out */\n @Event() bqHoverOut: EventEmitter<HTMLBqTooltipElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.floatingUI = new FloatingUI(this.trigger, this.panel, {\n ...(!this.hideArrow && { arrow: this.arrow }),\n placement: this.placement,\n distance: this.distance,\n sameWidth: this.sameWidth,\n strategy: 'absolute',\n skidding: 0,\n });\n }\n\n disconnectedCallback() {\n this.floatingUI?.destroy();\n }\n\n // Listeners\n // ==============\n\n @Listen('keydown', { target: 'document' })\n handleDocumentKeyDown(event: KeyboardEvent) {\n // Early returns for performance optimization\n if (this.alwaysVisible || !this.visible || this.displayOn !== 'click') return;\n // Hide tooltip when the user presses the escape key, but only if the displayOn is click and the tooltip is visible\n if (event.key !== 'Escape') return;\n\n this.hide();\n }\n\n @Listen('mousedown', { target: 'document' })\n handleDocumentMouseDown(event: MouseEvent) {\n // Early returns for performance optimization\n if (this.alwaysVisible || !this.visible) return;\n // Hide tooltip when the user clicks outside of the tooltip, but only if the displayOn is click and the tooltip is visible\n if (isEventTargetChildOfElement(event, this.el)) return;\n\n this.hide();\n }\n\n @Listen('scroll', { target: 'document', passive: true, capture: true })\n handleDocumentScroll() {\n // Early returns for performance optimization\n if (this.alwaysVisible || !this.visible) return;\n // Hide tooltip when the user scrolls, but only if the the tooltip is visible\n this.hide();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /** Shows the tooltip */\n @Method()\n async show() {\n this.visible = true;\n this.showTooltip();\n }\n\n /** Hides the tooltip */\n @Method()\n async hide() {\n if (this.alwaysVisible) return;\n\n this.visible = false;\n this.hideTooltip();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleTriggerMouseOver = async () => {\n if (this.displayOn !== 'hover') return;\n\n const hoverEvent = this.bqHoverIn.emit(this.el);\n if (hoverEvent.defaultPrevented) return;\n\n await this.show();\n };\n\n private handleTriggerMouseLeave = async () => {\n if (this.displayOn !== 'hover') return;\n\n const hoverEvent = this.bqHoverOut.emit(this.el);\n if (hoverEvent.defaultPrevented) return;\n\n await this.hide();\n };\n\n private handleTriggerOnClick = async () => {\n if (this.displayOn !== 'click') return;\n\n const clickEvent = this.bqClick.emit(this.el);\n if (clickEvent.defaultPrevented) return;\n\n await (this.visible ? this.hide() : this.show());\n };\n\n private handleTriggerFocusin = async () => {\n if (this.visible || this.displayOn === 'click') return;\n\n const focusEvent = this.bqFocusIn.emit(this.el);\n if (focusEvent.defaultPrevented) return;\n\n await this.show();\n };\n\n private handleTriggerFocusout = async () => {\n if (!this.visible || this.displayOn === 'click') return;\n\n const focusEvent = this.bqFocusOut.emit(this.el);\n if (focusEvent.defaultPrevented) return;\n\n await this.hide();\n };\n\n private showTooltip = () => {\n if (!this.panel) return;\n this.floatingUI?.update();\n };\n\n private hideTooltip = () => {\n if (!this.panel) return;\n this.visible = false;\n };\n\n private get isHidden() {\n return !this.visible && !this.alwaysVisible;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-tooltip relative\" part=\"base\">\n {/* TRIGGER */}\n {/**\n * NOTE: We could use a native HTML button as trigger container, but it causes issues with\n * certain interactive elements inside the trigger slot (e.g., buttons, links, inputs...).\n * This is because nested interactive elements are not allowed inside a button.\n * Also, that will force the user to focus twice to reach the inner interactive element.\n */}\n {/** biome-ignore lint/a11y/noStaticElementInteractions: bypass the \"Static Elements should not be interactive.\" rule */}\n {/** biome-ignore lint/a11y/useKeyWithClickEvents: bypass the \"Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.\" rule */}\n <div\n class=\"bq-tooltip--trigger\"\n onClick={this.handleTriggerOnClick}\n onFocusin={this.handleTriggerFocusin}\n onFocusout={this.handleTriggerFocusout}\n onMouseEnter={this.handleTriggerMouseOver}\n onMouseLeave={this.handleTriggerMouseLeave}\n part=\"trigger\"\n ref={(el: HTMLDivElement) => {\n this.trigger = el;\n }}\n >\n <slot name=\"trigger\" />\n </div>\n {/* PANEL */}\n <div\n aria-hidden={this.isHidden}\n class=\"bq-tooltip--panel\"\n hidden={this.isHidden}\n part=\"panel\"\n ref={(el: HTMLDivElement) => {\n this.panel = el;\n }}\n role=\"tooltip\"\n >\n {!this.hideArrow && (\n <div\n class=\"bq-tooltip--arrow\"\n ref={(el: HTMLDivElement) => {\n this.arrow = el;\n }}\n />\n )}\n <slot />\n </div>\n </div>\n );\n }\n}\n"],"mappings":";;;;iIAAA,MAAMA,EAAe,IAAM,sitB,MCyDdC,EAAS,M,wMAGZC,QACAC,MACAC,MACAC,W,wBAcAC,cAA0B,MAGTC,SAAoB,GAGpBC,UAAsB,MAGtBC,UAAwB,MAIxBC,UAAsB,MAGtBC,UAA+B,QAMhBC,QAAW,MAMnD,yBAAMC,GACJ,IAAKC,KAAKF,UAAYE,KAAKR,cAAe,CACxC,aAAaQ,KAAKC,M,OAGdD,KAAKE,M,CAOb,6BAAAC,GACEH,KAAKT,WAAWa,KAAK,CACnBT,UAAWK,KAAKL,UAChBF,SAAUO,KAAKP,SACfG,UAAWI,KAAKJ,UAChBS,SAAU,S,CASLC,QAGAC,UAGAC,WAGAC,UAGAC,WAMT,gBAAAC,GACEX,KAAKT,WAAa,IAAIqB,EAAWZ,KAAKZ,QAASY,KAAKX,MAAO,KACpDW,KAAKN,WAAa,CAAEJ,MAAOU,KAAKV,OACrCK,UAAWK,KAAKL,UAChBF,SAAUO,KAAKP,SACfG,UAAWI,KAAKJ,UAChBS,SAAU,WACVQ,SAAU,G,CAId,oBAAAC,GACEd,KAAKT,YAAYwB,S,CAOnB,qBAAAC,CAAsBC,GAEpB,GAAIjB,KAAKR,gBAAkBQ,KAAKF,SAAWE,KAAKH,YAAc,QAAS,OAEvE,GAAIoB,EAAMC,MAAQ,SAAU,OAE5BlB,KAAKC,M,CAIP,uBAAAkB,CAAwBF,GAEtB,GAAIjB,KAAKR,gBAAkBQ,KAAKF,QAAS,OAEzC,GAAIsB,EAA4BH,EAAOjB,KAAKqB,IAAK,OAEjDrB,KAAKC,M,CAIP,oBAAAqB,GAEE,GAAItB,KAAKR,gBAAkBQ,KAAKF,QAAS,OAEzCE,KAAKC,M,CAYP,UAAMC,GACJF,KAAKF,QAAU,KACfE,KAAKuB,a,CAKP,UAAMtB,GACJ,GAAID,KAAKR,cAAe,OAExBQ,KAAKF,QAAU,MACfE,KAAKwB,a,CAQCC,uBAAyBC,UAC/B,GAAI1B,KAAKH,YAAc,QAAS,OAEhC,MAAM8B,EAAa3B,KAAKS,UAAUmB,KAAK5B,KAAKqB,IAC5C,GAAIM,EAAWE,iBAAkB,aAE3B7B,KAAKE,MAAM,EAGX4B,wBAA0BJ,UAChC,GAAI1B,KAAKH,YAAc,QAAS,OAEhC,MAAM8B,EAAa3B,KAAKU,WAAWkB,KAAK5B,KAAKqB,IAC7C,GAAIM,EAAWE,iBAAkB,aAE3B7B,KAAKC,MAAM,EAGX8B,qBAAuBL,UAC7B,GAAI1B,KAAKH,YAAc,QAAS,OAEhC,MAAMmC,EAAahC,KAAKM,QAAQsB,KAAK5B,KAAKqB,IAC1C,GAAIW,EAAWH,iBAAkB,aAE1B7B,KAAKF,QAAUE,KAAKC,OAASD,KAAKE,OAAO,EAG1C+B,qBAAuBP,UAC7B,GAAI1B,KAAKF,SAAWE,KAAKH,YAAc,QAAS,OAEhD,MAAMqC,EAAalC,KAAKO,UAAUqB,KAAK5B,KAAKqB,IAC5C,GAAIa,EAAWL,iBAAkB,aAE3B7B,KAAKE,MAAM,EAGXiC,sBAAwBT,UAC9B,IAAK1B,KAAKF,SAAWE,KAAKH,YAAc,QAAS,OAEjD,MAAMqC,EAAalC,KAAKQ,WAAWoB,KAAK5B,KAAKqB,IAC7C,GAAIa,EAAWL,iBAAkB,aAE3B7B,KAAKC,MAAM,EAGXsB,YAAc,KACpB,IAAKvB,KAAKX,MAAO,OACjBW,KAAKT,YAAY6C,QAAQ,EAGnBZ,YAAc,KACpB,IAAKxB,KAAKX,MAAO,OACjBW,KAAKF,QAAU,KAAK,EAGtB,YAAYuC,GACV,OAAQrC,KAAKF,UAAYE,KAAKR,a,CAOhC,MAAA8C,GACE,OACEC,EAAA,OAAArB,IAAA,2CAAKsB,MAAM,sBAAsBC,KAAK,QAUpCF,EAAA,OAAArB,IAAA,2CACEsB,MAAM,sBACNE,QAAS1C,KAAK+B,qBACdY,UAAW3C,KAAKiC,qBAChBW,WAAY5C,KAAKmC,sBACjBU,aAAc7C,KAAKyB,uBACnBqB,aAAc9C,KAAK8B,wBACnBW,KAAK,UACLM,IAAM1B,IACJrB,KAAKZ,QAAUiC,CAAE,GAGnBkB,EAAA,QAAArB,IAAA,2CAAM8B,KAAK,aAGbT,EAAA,OAAArB,IAAA,yDACelB,KAAKqC,SAClBG,MAAM,oBACNS,OAAQjD,KAAKqC,SACbI,KAAK,QACLM,IAAM1B,IACJrB,KAAKX,MAAQgC,CAAE,EAEjB6B,KAAK,YAEHlD,KAAKN,WACL6C,EAAA,OAAArB,IAAA,2CACEsB,MAAM,oBACNO,IAAM1B,IACJrB,KAAKV,MAAQ+B,CAAE,IAIrBkB,EAAA,QAAArB,IAAA,8C","ignoreList":[]}
1
+ {"version":3,"names":["bqTooltipCss","BqTooltip","trigger","panel","arrow","floatingUI","alwaysVisible","distance","hideArrow","placement","sameWidth","displayOn","visible","handleVisibleChange","this","hide","show","handleFloatingUIOptionsChange","init","strategy","bqClick","bqFocusIn","bqFocusOut","bqHoverIn","bqHoverOut","componentDidLoad","FloatingUI","skidding","disconnectedCallback","destroy","handleDocumentKeyDown","event","key","handleDocumentMouseDown","isEventTargetChildOfElement","el","handleDocumentScroll","showTooltip","hideTooltip","handleTriggerMouseOver","async","hoverEvent","emit","defaultPrevented","handleTriggerMouseLeave","handleTriggerOnClick","clickEvent","handleTriggerFocusin","focusEvent","handleTriggerFocusout","update","isHidden","render","h","class","part","onClick","onFocusin","onFocusout","onMouseEnter","onMouseLeave","ref","name","hidden","role"],"sources":["../../packages/beeq/src/components/tooltip/scss/bq-tooltip.scss?tag=bq-tooltip&encapsulation=shadow","../../packages/beeq/src/components/tooltip/bq-tooltip.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Tooltip styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-tooltip.variables';\n\n.bq-tooltip--panel {\n @include animation-fade-in;\n @apply pointer-events-none fixed z-[--bq-tooltip--z-index] box-border bg-[--bq-tooltip--background-color];\n @apply is-[--bq-tooltip--width] max-is-[--bq-tooltip--max-width] p-b-[--bq-tooltip--paddingY] p-i-[--bq-tooltip--paddingX];\n @apply text-[length:--bq-tooltip--font-size] leading-[--bq-tooltip--line-height] text-[color:--bq-tooltip--text-color];\n @apply rounded-[--bq-tooltip--border-radius] border-[length:--bq-tooltip--border-width] border-[color:--bq-tooltip--border-color];\n @apply shadow-[shadow:--bq-tooltip--box-shadow];\n}\n\n.bq-tooltip--arrow {\n &,\n &::before {\n @apply absolute -z-[1] bs-2 is-2;\n }\n\n &::before {\n @apply start-0 rotate-45 bg-[--bq-tooltip--background-color] content-empty inset-bs-0;\n }\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Element, Event, h, Listen, Method, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { FloatingUI } from '../../services/libraries';\nimport { isEventTargetChildOfElement } from '../../shared/utils';\n\n/**\n * The Tooltip component is a small pop-up box that appears when a user hovers over or clicks on an element, providing additional information or context.\n *\n * @example How to use it\n * ```html\n * <bq-tooltip visible>\n * Yuhu! I'm a tooltip 🙃\n * <bq-button slot=\"trigger\">Hover me!</bq-button>\n * </bq-tooltip>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/64c562-tooltip\n * @status stable\n *\n * @attr {boolean} always-visible - If true, the tooltip will always be visible\n * @attr {number} distance - Distance between trigger element and tooltip\n * @attr {boolean} hide-arrow - If true, the arrow on the tooltip content won't be shown\n * @attr {\"top\" | \"right\" | \"bottom\" | \"left\"} placement - Defines the position of the tooltip\n * @attr {boolean} same-width - Whether the tooltip should have the same width as the trigger element (applicable only for content shorter than the trigger element)\n * @attr {\"click\" | \"hover\"} display-on - Set the action when the tooltip should be displayed, on hover (default) or click\n * @attr {boolean} visible - Indicates whether or not the tooltip is visible when the component is first rendered, and when interacting with the trigger\n *\n * @method show - Shows the tooltip\n * @method hide - Hides the tooltip\n *\n * @slot trigger - The element which displays tooltip on hover\n * @slot - The tooltip content\n *\n * @part base - The component wrapper container inside the shadow DOM\n * @part trigger - The `<div>` container that holds the element which displays tooltip on hover\n * @part panel - The `<div>` container that holds the tooltip content\n *\n * @cssprop --bq-tooltip--background-color - Tooltip background color\n * @cssprop --bq-tooltip--box-shadow - Tooltip box shadow\n * @cssprop --bq-tooltip--font-size - Tooltip font size\n * @cssprop --bq-tooltip--line-height - Tooltip line height\n * @cssprop --bq-tooltip--text-color - Tooltip text color\n * @cssprop --bq-tooltip--paddingX - Tooltip horizontal padding\n * @cssprop --bq-tooltip--paddingY - Tooltip vertical padding\n * @cssprop --bq-tooltip--border-color - Tooltip border color\n * @cssprop --bq-tooltip--border-radius - Tooltip border radius\n * @cssprop --bq-tooltip--border-style - Tooltip border style\n * @cssprop --bq-tooltip--border-width - Tooltip border width\n * @cssprop --bq-tooltip--z-index: Tooltip z-index\n */\n@Component({\n tag: 'bq-tooltip',\n styleUrl: './scss/bq-tooltip.scss',\n shadow: true,\n})\nexport class BqTooltip {\n // Own Properties\n // ====================\n private trigger: HTMLElement;\n private panel: HTMLElement;\n private arrow: HTMLElement;\n private floatingUI: FloatingUI;\n\n // Reference to host HTML element\n // ===================================\n @Element() el!: HTMLBqTooltipElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the tooltip will always be visible */\n @Prop() alwaysVisible?: boolean = false;\n\n /** Distance between trigger element and tooltip */\n @Prop({ reflect: true }) distance?: number = 10;\n\n /** If true, the arrow on the tooltip content won't be shown */\n @Prop({ reflect: true }) hideArrow?: boolean = false;\n\n /* Defines the position of the tooltip */\n @Prop({ reflect: true }) placement?: Placement = 'top';\n\n /** Whether the tooltip should have the same width as the trigger element\n * (applicable only for content shorter than the trigger element) */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Set the action when the tooltip should be displayed, on hover (default) or click */\n @Prop({ reflect: true }) displayOn: 'click' | 'hover' = 'hover';\n\n /**\n * Indicates whether or not the tooltip is visible when the component is first rendered,\n * and when interacting with the trigger\n */\n @Prop({ reflect: true, mutable: true }) visible? = false;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('visible')\n async handleVisibleChange() {\n if (!this.visible && !this.alwaysVisible) {\n return await this.hide();\n }\n\n await this.show();\n }\n\n @Watch('distance')\n @Watch('hideArrow')\n @Watch('placement')\n @Watch('sameWidth')\n handleFloatingUIOptionsChange() {\n this.floatingUI.init({\n placement: this.placement,\n distance: this.distance,\n sameWidth: this.sameWidth,\n strategy: 'fixed',\n });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Emitted when the tooltip trigger is clicked */\n @Event() bqClick: EventEmitter<HTMLBqTooltipElement>;\n\n /** Emitted when the tooltip trigger is focused in */\n @Event() bqFocusIn: EventEmitter<HTMLBqTooltipElement>;\n\n /** Emitted when the tooltip trigger is focused out */\n @Event() bqFocusOut: EventEmitter<HTMLBqTooltipElement>;\n\n /** Emitted when the tooltip trigger is hovered in */\n @Event() bqHoverIn: EventEmitter<HTMLBqTooltipElement>;\n\n /** Emitted when the tooltip trigger is hovered out */\n @Event() bqHoverOut: EventEmitter<HTMLBqTooltipElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.floatingUI = new FloatingUI(this.trigger, this.panel, {\n ...(!this.hideArrow && { arrow: this.arrow }),\n placement: this.placement,\n distance: this.distance,\n sameWidth: this.sameWidth,\n strategy: 'absolute',\n skidding: 0,\n });\n }\n\n disconnectedCallback() {\n this.floatingUI?.destroy();\n }\n\n // Listeners\n // ==============\n\n @Listen('keydown', { target: 'document' })\n handleDocumentKeyDown(event: KeyboardEvent) {\n // Early returns for performance optimization\n if (this.alwaysVisible || !this.visible || this.displayOn !== 'click') return;\n // Hide tooltip when the user presses the escape key, but only if the displayOn is click and the tooltip is visible\n if (event.key !== 'Escape') return;\n\n this.hide();\n }\n\n @Listen('mousedown', { target: 'document' })\n handleDocumentMouseDown(event: MouseEvent) {\n // Early returns for performance optimization\n if (this.alwaysVisible || !this.visible) return;\n // Hide tooltip when the user clicks outside of the tooltip, but only if the displayOn is click and the tooltip is visible\n if (isEventTargetChildOfElement(event, this.el)) return;\n\n this.hide();\n }\n\n @Listen('scroll', { target: 'document', passive: true, capture: true })\n handleDocumentScroll() {\n // Early returns for performance optimization\n if (this.alwaysVisible || !this.visible) return;\n // Hide tooltip when the user scrolls, but only if the the tooltip is visible\n this.hide();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /** Shows the tooltip */\n @Method()\n async show() {\n this.visible = true;\n this.showTooltip();\n }\n\n /** Hides the tooltip */\n @Method()\n async hide() {\n if (this.alwaysVisible) return;\n\n this.visible = false;\n this.hideTooltip();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleTriggerMouseOver = async () => {\n if (this.displayOn !== 'hover') return;\n\n const hoverEvent = this.bqHoverIn.emit(this.el);\n if (hoverEvent.defaultPrevented) return;\n\n await this.show();\n };\n\n private handleTriggerMouseLeave = async () => {\n if (this.displayOn !== 'hover') return;\n\n const hoverEvent = this.bqHoverOut.emit(this.el);\n if (hoverEvent.defaultPrevented) return;\n\n await this.hide();\n };\n\n private handleTriggerOnClick = async () => {\n if (this.displayOn !== 'click') return;\n\n const clickEvent = this.bqClick.emit(this.el);\n if (clickEvent.defaultPrevented) return;\n\n await (this.visible ? this.hide() : this.show());\n };\n\n private handleTriggerFocusin = async () => {\n if (this.visible || this.displayOn === 'click') return;\n\n const focusEvent = this.bqFocusIn.emit(this.el);\n if (focusEvent.defaultPrevented) return;\n\n await this.show();\n };\n\n private handleTriggerFocusout = async () => {\n if (!this.visible || this.displayOn === 'click') return;\n\n const focusEvent = this.bqFocusOut.emit(this.el);\n if (focusEvent.defaultPrevented) return;\n\n await this.hide();\n };\n\n private showTooltip = () => {\n if (!this.panel) return;\n this.floatingUI?.update();\n };\n\n private hideTooltip = () => {\n if (!this.panel) return;\n this.visible = false;\n };\n\n private get isHidden() {\n return !this.visible && !this.alwaysVisible;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-tooltip relative\" part=\"base\">\n {/* TRIGGER */}\n {/**\n * NOTE: We could use a native HTML button as trigger container, but it causes issues with\n * certain interactive elements inside the trigger slot (e.g., buttons, links, inputs...).\n * This is because nested interactive elements are not allowed inside a button.\n * Also, that will force the user to focus twice to reach the inner interactive element.\n */}\n {/** biome-ignore lint/a11y/noStaticElementInteractions: bypass the \"Static Elements should not be interactive.\" rule */}\n {/** biome-ignore lint/a11y/useKeyWithClickEvents: bypass the \"Enforce to have the onClick mouse event with the onKeyUp, the onKeyDown, or the onKeyPress keyboard event.\" rule */}\n <div\n class=\"bq-tooltip--trigger\"\n onClick={this.handleTriggerOnClick}\n onFocusin={this.handleTriggerFocusin}\n onFocusout={this.handleTriggerFocusout}\n onMouseEnter={this.handleTriggerMouseOver}\n onMouseLeave={this.handleTriggerMouseLeave}\n part=\"trigger\"\n ref={(el: HTMLDivElement) => {\n this.trigger = el;\n }}\n >\n <slot name=\"trigger\" />\n </div>\n {/* PANEL */}\n <div\n aria-hidden={this.isHidden}\n class=\"bq-tooltip--panel\"\n hidden={this.isHidden}\n part=\"panel\"\n ref={(el: HTMLDivElement) => {\n this.panel = el;\n }}\n role=\"tooltip\"\n >\n {!this.hideArrow && (\n <div\n class=\"bq-tooltip--arrow\"\n ref={(el: HTMLDivElement) => {\n this.arrow = el;\n }}\n />\n )}\n <slot />\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}