@beeq/core 1.9.0 → 1.10.0-beta.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 (580) hide show
  1. package/dist/beeq/beeq.css +1 -1
  2. package/dist/beeq/beeq.esm.js +1 -1
  3. package/dist/beeq/beeq.esm.js.map +1 -1
  4. package/dist/beeq/bq-accordion-group.entry.esm.js.map +1 -1
  5. package/dist/beeq/bq-accordion.entry.esm.js.map +1 -1
  6. package/dist/beeq/bq-alert.entry.esm.js.map +1 -1
  7. package/dist/beeq/bq-avatar.entry.esm.js.map +1 -1
  8. package/dist/beeq/bq-badge.entry.esm.js.map +1 -1
  9. package/dist/beeq/bq-breadcrumb-item.entry.esm.js.map +1 -1
  10. package/dist/beeq/bq-breadcrumb.entry.esm.js.map +1 -1
  11. package/dist/beeq/bq-button.bq-icon.entry.esm.js.map +1 -1
  12. package/dist/beeq/bq-card.entry.esm.js.map +1 -1
  13. package/dist/beeq/bq-checkbox.entry.esm.js.map +1 -1
  14. package/dist/beeq/bq-date-picker.entry.esm.js.map +1 -1
  15. package/dist/beeq/bq-dialog.entry.esm.js.map +1 -1
  16. package/dist/beeq/bq-divider.entry.esm.js.map +1 -1
  17. package/dist/beeq/bq-drawer.entry.esm.js.map +1 -1
  18. package/dist/beeq/bq-dropdown.bq-panel.entry.esm.js.map +1 -1
  19. package/dist/beeq/bq-empty-state.entry.esm.js.map +1 -1
  20. package/dist/beeq/bq-input.entry.esm.js.map +1 -1
  21. package/dist/beeq/bq-notification.entry.esm.js.map +1 -1
  22. package/dist/beeq/bq-option-group.entry.esm.js.map +1 -1
  23. package/dist/beeq/bq-option-list.bq-tag.entry.esm.js.map +1 -1
  24. package/dist/beeq/bq-option.entry.esm.js.map +1 -1
  25. package/dist/beeq/bq-page-title.entry.esm.js.map +1 -1
  26. package/dist/beeq/bq-progress.entry.esm.js.map +1 -1
  27. package/dist/beeq/bq-radio-group.entry.esm.js.map +1 -1
  28. package/dist/beeq/bq-radio.entry.esm.js.map +1 -1
  29. package/dist/beeq/bq-select.entry.esm.js.map +1 -1
  30. package/dist/beeq/bq-side-menu-item.entry.esm.js.map +1 -1
  31. package/dist/beeq/bq-side-menu.entry.esm.js.map +1 -1
  32. package/dist/beeq/bq-slider.entry.esm.js.map +1 -1
  33. package/dist/beeq/bq-spinner.entry.esm.js.map +1 -1
  34. package/dist/beeq/bq-status.entry.esm.js.map +1 -1
  35. package/dist/beeq/bq-step-item.entry.esm.js.map +1 -1
  36. package/dist/beeq/bq-steps.entry.esm.js.map +1 -1
  37. package/dist/beeq/bq-switch.entry.esm.js.map +1 -1
  38. package/dist/beeq/bq-tab-group.entry.esm.js.map +1 -1
  39. package/dist/beeq/bq-tab.entry.esm.js.map +1 -1
  40. package/dist/beeq/bq-textarea.entry.esm.js.map +1 -1
  41. package/dist/beeq/bq-toast.entry.esm.js.map +1 -1
  42. package/dist/beeq/bq-tooltip.entry.esm.js.map +1 -1
  43. package/dist/beeq/index.esm.js +1 -1
  44. package/dist/beeq/index.esm.js.map +1 -1
  45. package/dist/beeq/loader.esm.js.map +1 -1
  46. package/dist/beeq/p-078d8f91.entry.js +6 -0
  47. package/dist/beeq/{p-0d37b636.entry.js.map → p-078d8f91.entry.js.map} +1 -1
  48. package/dist/beeq/p-0949ff39.entry.js +6 -0
  49. package/dist/beeq/{p-0b25af76.entry.js.map → p-0949ff39.entry.js.map} +1 -1
  50. package/dist/beeq/p-189629c7.entry.js +6 -0
  51. package/dist/beeq/p-189629c7.entry.js.map +1 -0
  52. package/dist/beeq/p-20d9b09b.entry.js +6 -0
  53. package/dist/beeq/{p-a68fbc9a.entry.js.map → p-20d9b09b.entry.js.map} +1 -1
  54. package/dist/beeq/p-2219f451.entry.js +6 -0
  55. package/dist/beeq/{p-d153a008.entry.js.map → p-2219f451.entry.js.map} +1 -1
  56. package/dist/beeq/p-36f5231a.entry.js +6 -0
  57. package/dist/beeq/{p-999f9e20.entry.js.map → p-36f5231a.entry.js.map} +1 -1
  58. package/dist/beeq/p-388876c1.entry.js +6 -0
  59. package/dist/beeq/{p-a72768fd.entry.js.map → p-388876c1.entry.js.map} +1 -1
  60. package/dist/beeq/p-3c330710.entry.js +6 -0
  61. package/dist/beeq/{p-90fd4b0c.entry.js.map → p-3c330710.entry.js.map} +1 -1
  62. package/dist/beeq/p-3f7193fb.entry.js +6 -0
  63. package/dist/beeq/{p-fea2b8c2.entry.js.map → p-3f7193fb.entry.js.map} +1 -1
  64. package/dist/beeq/p-3fa6805d.entry.js +6 -0
  65. package/dist/beeq/{p-4f3809da.entry.js.map → p-3fa6805d.entry.js.map} +1 -1
  66. package/dist/beeq/p-41744618.entry.js +6 -0
  67. package/dist/beeq/{p-ccc302f0.entry.js.map → p-41744618.entry.js.map} +1 -1
  68. package/dist/beeq/p-4623461e.entry.js +6 -0
  69. package/dist/beeq/{p-b724504a.entry.js.map → p-4623461e.entry.js.map} +1 -1
  70. package/dist/beeq/p-49bda6bc.entry.js +6 -0
  71. package/dist/beeq/{p-542eb8fa.entry.js.map → p-49bda6bc.entry.js.map} +1 -1
  72. package/dist/beeq/p-4c4201e1.entry.js +6 -0
  73. package/dist/beeq/{p-da8596cf.entry.js.map → p-4c4201e1.entry.js.map} +1 -1
  74. package/dist/beeq/p-4f24e77c.entry.js +6 -0
  75. package/dist/beeq/{p-cfec306f.entry.js.map → p-4f24e77c.entry.js.map} +1 -1
  76. package/dist/beeq/p-50f9e2c0.entry.js +6 -0
  77. package/dist/beeq/{p-29209d90.entry.js.map → p-50f9e2c0.entry.js.map} +1 -1
  78. package/dist/beeq/p-604a001b.entry.js +6 -0
  79. package/dist/beeq/{p-d7564e29.entry.js.map → p-604a001b.entry.js.map} +1 -1
  80. package/dist/beeq/p-6bcae73b.entry.js +6 -0
  81. package/dist/beeq/p-6bcae73b.entry.js.map +1 -0
  82. package/dist/beeq/p-6e7734bb.entry.js +6 -0
  83. package/dist/beeq/{p-2bb8c586.entry.js.map → p-6e7734bb.entry.js.map} +1 -1
  84. package/dist/beeq/p-6ebad63f.entry.js +6 -0
  85. package/dist/beeq/{p-cd4f1493.entry.js.map → p-6ebad63f.entry.js.map} +1 -1
  86. package/dist/beeq/p-76ee57c6.entry.js +6 -0
  87. package/dist/beeq/{p-e0257fb4.entry.js.map → p-76ee57c6.entry.js.map} +1 -1
  88. package/dist/beeq/p-80916524.entry.js +6 -0
  89. package/dist/beeq/{p-3df3af93.entry.js.map → p-80916524.entry.js.map} +1 -1
  90. package/dist/beeq/p-90947d6b.entry.js +6 -0
  91. package/dist/beeq/{p-58c37e96.entry.js.map → p-90947d6b.entry.js.map} +1 -1
  92. package/dist/beeq/p-912955f0.entry.js +6 -0
  93. package/dist/beeq/{p-44c2a6b9.entry.js.map → p-912955f0.entry.js.map} +1 -1
  94. package/dist/beeq/p-98333265.entry.js +6 -0
  95. package/dist/beeq/{p-5ea58411.entry.js.map → p-98333265.entry.js.map} +1 -1
  96. package/dist/beeq/p-987c0ab6.entry.js +6 -0
  97. package/dist/beeq/{p-cab20c11.entry.js.map → p-987c0ab6.entry.js.map} +1 -1
  98. package/dist/beeq/p-CCNjsDdb.js +6 -0
  99. package/dist/beeq/p-CCNjsDdb.js.map +1 -0
  100. package/dist/beeq/p-a489f10f.entry.js +6 -0
  101. package/dist/beeq/{p-00022fe8.entry.js.map → p-a489f10f.entry.js.map} +1 -1
  102. package/dist/beeq/p-a6d2ceb4.entry.js +6 -0
  103. package/dist/beeq/{p-8570c34a.entry.js.map → p-a6d2ceb4.entry.js.map} +1 -1
  104. package/dist/beeq/p-ab352f43.entry.js +6 -0
  105. package/dist/beeq/{p-165744f3.entry.js.map → p-ab352f43.entry.js.map} +1 -1
  106. package/dist/beeq/p-af445f7e.entry.js +6 -0
  107. package/dist/beeq/{p-ab5ce46e.entry.js.map → p-af445f7e.entry.js.map} +1 -1
  108. package/dist/beeq/p-bf7a0a2d.entry.js +6 -0
  109. package/dist/beeq/{p-bee9cc2b.entry.js.map → p-bf7a0a2d.entry.js.map} +1 -1
  110. package/dist/beeq/p-c3f20d0e.entry.js +6 -0
  111. package/dist/beeq/{p-a96ffa70.entry.js.map → p-c3f20d0e.entry.js.map} +1 -1
  112. package/dist/beeq/p-d4b529aa.entry.js +6 -0
  113. package/dist/beeq/{p-ffcc02f7.entry.js.map → p-d4b529aa.entry.js.map} +1 -1
  114. package/dist/beeq/p-e5zjNNdI.js +7 -0
  115. package/dist/beeq/p-e5zjNNdI.js.map +1 -0
  116. package/dist/beeq/p-e8435655.entry.js +6 -0
  117. package/dist/beeq/{p-fd79697e.entry.js.map → p-e8435655.entry.js.map} +1 -1
  118. package/dist/beeq/p-e91d1052.entry.js +6 -0
  119. package/dist/beeq/{p-b07e39c4.entry.js.map → p-e91d1052.entry.js.map} +1 -1
  120. package/dist/beeq/p-ed10c8bf.entry.js +6 -0
  121. package/dist/beeq/{p-2ca0624c.entry.js.map → p-ed10c8bf.entry.js.map} +1 -1
  122. package/dist/beeq/p-ee31c3cb.entry.js +6 -0
  123. package/dist/beeq/{p-e29356c6.entry.js.map → p-ee31c3cb.entry.js.map} +1 -1
  124. package/dist/beeq/p-f683e400.entry.js +6 -0
  125. package/dist/beeq/p-f683e400.entry.js.map +1 -0
  126. package/dist/beeq/p-f9734e66.entry.js +6 -0
  127. package/dist/beeq/{p-0d137bf6.entry.js.map → p-f9734e66.entry.js.map} +1 -1
  128. package/dist/beeq.html-custom-data.json +116 -113
  129. package/dist/cjs/beeq.cjs.js +4 -5
  130. package/dist/cjs/beeq.cjs.js.map +1 -1
  131. package/dist/cjs/bq-accordion-group.cjs.entry.js +2 -2
  132. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
  133. package/dist/cjs/bq-accordion-group.entry.cjs.js.map +1 -1
  134. package/dist/cjs/bq-accordion.cjs.entry.js +2 -2
  135. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  136. package/dist/cjs/bq-accordion.entry.cjs.js.map +1 -1
  137. package/dist/cjs/bq-alert.cjs.entry.js +2 -2
  138. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  139. package/dist/cjs/bq-alert.entry.cjs.js.map +1 -1
  140. package/dist/cjs/bq-avatar.cjs.entry.js +2 -2
  141. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  142. package/dist/cjs/bq-avatar.entry.cjs.js.map +1 -1
  143. package/dist/cjs/bq-badge.cjs.entry.js +2 -2
  144. package/dist/cjs/bq-badge.cjs.entry.js.map +1 -1
  145. package/dist/cjs/bq-badge.entry.cjs.js.map +1 -1
  146. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +2 -2
  147. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  148. package/dist/cjs/bq-breadcrumb-item.entry.cjs.js.map +1 -1
  149. package/dist/cjs/bq-breadcrumb.cjs.entry.js +2 -2
  150. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
  151. package/dist/cjs/bq-breadcrumb.entry.cjs.js.map +1 -1
  152. package/dist/cjs/bq-button.bq-icon.entry.cjs.js.map +1 -1
  153. package/dist/cjs/bq-button_2.cjs.entry.js +3 -3
  154. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  155. package/dist/cjs/bq-card.cjs.entry.js +2 -2
  156. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  157. package/dist/cjs/bq-card.entry.cjs.js.map +1 -1
  158. package/dist/cjs/bq-checkbox.cjs.entry.js +2 -2
  159. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  160. package/dist/cjs/bq-checkbox.entry.cjs.js.map +1 -1
  161. package/dist/cjs/bq-date-picker.cjs.entry.js +2 -2
  162. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  163. package/dist/cjs/bq-date-picker.entry.cjs.js.map +1 -1
  164. package/dist/cjs/bq-dialog.cjs.entry.js +2 -2
  165. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  166. package/dist/cjs/bq-dialog.entry.cjs.js.map +1 -1
  167. package/dist/cjs/bq-divider.cjs.entry.js +2 -2
  168. package/dist/cjs/bq-divider.cjs.entry.js.map +1 -1
  169. package/dist/cjs/bq-divider.entry.cjs.js.map +1 -1
  170. package/dist/cjs/bq-drawer.cjs.entry.js +2 -2
  171. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  172. package/dist/cjs/bq-drawer.entry.cjs.js.map +1 -1
  173. package/dist/cjs/bq-dropdown.bq-panel.entry.cjs.js.map +1 -1
  174. package/dist/cjs/bq-dropdown_2.cjs.entry.js +49 -19
  175. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
  176. package/dist/cjs/bq-empty-state.cjs.entry.js +2 -2
  177. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  178. package/dist/cjs/bq-empty-state.entry.cjs.js.map +1 -1
  179. package/dist/cjs/bq-input.cjs.entry.js +2 -2
  180. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  181. package/dist/cjs/bq-input.entry.cjs.js.map +1 -1
  182. package/dist/cjs/bq-notification.cjs.entry.js +2 -2
  183. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  184. package/dist/cjs/bq-notification.entry.cjs.js.map +1 -1
  185. package/dist/cjs/bq-option-group.cjs.entry.js +2 -2
  186. package/dist/cjs/bq-option-group.cjs.entry.js.map +1 -1
  187. package/dist/cjs/bq-option-group.entry.cjs.js.map +1 -1
  188. package/dist/cjs/bq-option-list.bq-tag.entry.cjs.js.map +1 -1
  189. package/dist/cjs/bq-option-list_2.cjs.entry.js +3 -3
  190. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  191. package/dist/cjs/bq-option.cjs.entry.js +2 -2
  192. package/dist/cjs/bq-option.cjs.entry.js.map +1 -1
  193. package/dist/cjs/bq-option.entry.cjs.js.map +1 -1
  194. package/dist/cjs/bq-page-title.cjs.entry.js +2 -2
  195. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
  196. package/dist/cjs/bq-page-title.entry.cjs.js.map +1 -1
  197. package/dist/cjs/bq-progress.cjs.entry.js +2 -2
  198. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  199. package/dist/cjs/bq-progress.entry.cjs.js.map +1 -1
  200. package/dist/cjs/bq-radio-group.cjs.entry.js +2 -2
  201. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  202. package/dist/cjs/bq-radio-group.entry.cjs.js.map +1 -1
  203. package/dist/cjs/bq-radio.cjs.entry.js +2 -2
  204. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  205. package/dist/cjs/bq-radio.entry.cjs.js.map +1 -1
  206. package/dist/cjs/bq-select.cjs.entry.js +17 -6
  207. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  208. package/dist/cjs/bq-select.entry.cjs.js.map +1 -1
  209. package/dist/cjs/bq-side-menu-item.cjs.entry.js +2 -2
  210. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  211. package/dist/cjs/bq-side-menu-item.entry.cjs.js.map +1 -1
  212. package/dist/cjs/bq-side-menu.cjs.entry.js +2 -2
  213. package/dist/cjs/bq-side-menu.cjs.entry.js.map +1 -1
  214. package/dist/cjs/bq-side-menu.entry.cjs.js.map +1 -1
  215. package/dist/cjs/bq-slider.cjs.entry.js +2 -2
  216. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  217. package/dist/cjs/bq-slider.entry.cjs.js.map +1 -1
  218. package/dist/cjs/bq-spinner.cjs.entry.js +2 -2
  219. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  220. package/dist/cjs/bq-spinner.entry.cjs.js.map +1 -1
  221. package/dist/cjs/bq-status.cjs.entry.js +2 -2
  222. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  223. package/dist/cjs/bq-status.entry.cjs.js.map +1 -1
  224. package/dist/cjs/bq-step-item.cjs.entry.js +2 -2
  225. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  226. package/dist/cjs/bq-step-item.entry.cjs.js.map +1 -1
  227. package/dist/cjs/bq-steps.cjs.entry.js +2 -2
  228. package/dist/cjs/bq-steps.cjs.entry.js.map +1 -1
  229. package/dist/cjs/bq-steps.entry.cjs.js.map +1 -1
  230. package/dist/cjs/bq-switch.cjs.entry.js +2 -2
  231. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  232. package/dist/cjs/bq-switch.entry.cjs.js.map +1 -1
  233. package/dist/cjs/bq-tab-group.cjs.entry.js +2 -2
  234. package/dist/cjs/bq-tab-group.cjs.entry.js.map +1 -1
  235. package/dist/cjs/bq-tab-group.entry.cjs.js.map +1 -1
  236. package/dist/cjs/bq-tab.cjs.entry.js +2 -2
  237. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  238. package/dist/cjs/bq-tab.entry.cjs.js.map +1 -1
  239. package/dist/cjs/bq-textarea.cjs.entry.js +2 -2
  240. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  241. package/dist/cjs/bq-textarea.entry.cjs.js.map +1 -1
  242. package/dist/cjs/bq-toast.cjs.entry.js +2 -2
  243. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  244. package/dist/cjs/bq-toast.entry.cjs.js.map +1 -1
  245. package/dist/cjs/bq-tooltip.cjs.entry.js +50 -27
  246. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  247. package/dist/cjs/bq-tooltip.entry.cjs.js.map +1 -1
  248. package/dist/cjs/{index-DkHCSxhS.js → index-bEOoX8tm.js} +70 -20
  249. package/dist/cjs/index-bEOoX8tm.js.map +1 -0
  250. package/dist/cjs/index.cjs.js +7 -0
  251. package/dist/cjs/index.cjs.js.map +1 -1
  252. package/dist/cjs/loader.cjs.js +3 -4
  253. package/dist/cjs/loader.cjs.js.map +1 -1
  254. package/dist/cjs/scrollLock-OTzU3x3y.js +110 -0
  255. package/dist/cjs/scrollLock-OTzU3x3y.js.map +1 -0
  256. package/dist/collection/collection-manifest.json +1 -1
  257. package/dist/collection/components/accordion/scss/bq-accordion.css +1 -1
  258. package/dist/collection/components/accordion-group/scss/bq-accordion-group.css +1 -1
  259. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  260. package/dist/collection/components/avatar/scss/bq-avatar.css +1 -1
  261. package/dist/collection/components/badge/scss/bq-badge.css +1 -1
  262. package/dist/collection/components/breadcrumb/scss/bq-breadcrumb.css +1 -1
  263. package/dist/collection/components/breadcrumb-item/scss/bq-breadcrumb-item.css +1 -1
  264. package/dist/collection/components/button/scss/bq-button.css +1 -1
  265. package/dist/collection/components/card/scss/bq-card.css +1 -1
  266. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  267. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  268. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  269. package/dist/collection/components/divider/scss/bq-divider.css +1 -1
  270. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  271. package/dist/collection/components/dropdown/bq-dropdown.js +49 -17
  272. package/dist/collection/components/dropdown/bq-dropdown.js.map +1 -1
  273. package/dist/collection/components/dropdown/scss/bq-dropdown.css +1 -1
  274. package/dist/collection/components/empty-state/scss/bq-empty-state.css +1 -1
  275. package/dist/collection/components/icon/scss/bq-icon.css +1 -1
  276. package/dist/collection/components/input/scss/bq-input.css +1 -1
  277. package/dist/collection/components/notification/scss/bq-notification.css +1 -1
  278. package/dist/collection/components/option/scss/bq-option.css +1 -1
  279. package/dist/collection/components/option-group/scss/bq-option-group.css +1 -1
  280. package/dist/collection/components/option-list/scss/bq-option-list.css +1 -1
  281. package/dist/collection/components/page-title/scss/bq-page-title.css +1 -1
  282. package/dist/collection/components/panel/bq-panel.js +44 -1
  283. package/dist/collection/components/panel/bq-panel.js.map +1 -1
  284. package/dist/collection/components/panel/scss/bq-panel.css +1 -1
  285. package/dist/collection/components/progress/scss/bq-progress.css +1 -1
  286. package/dist/collection/components/radio/scss/bq-radio.css +1 -1
  287. package/dist/collection/components/radio-group/scss/bq-radio-group.css +1 -1
  288. package/dist/collection/components/select/bq-select.js +43 -6
  289. package/dist/collection/components/select/bq-select.js.map +1 -1
  290. package/dist/collection/components/select/scss/bq-select.css +1 -1
  291. package/dist/collection/components/side-menu/scss/bq-side-menu.css +1 -1
  292. package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
  293. package/dist/collection/components/slider/scss/bq-slider.css +1 -1
  294. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  295. package/dist/collection/components/status/scss/bq-status.css +1 -1
  296. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  297. package/dist/collection/components/steps/scss/bq-steps.css +1 -1
  298. package/dist/collection/components/switch/scss/bq-switch.css +1 -1
  299. package/dist/collection/components/tab/scss/bq-tab.css +1 -1
  300. package/dist/collection/components/tab-group/scss/bq-tab-group.css +1 -1
  301. package/dist/collection/components/tag/scss/bq-tag.css +1 -1
  302. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  303. package/dist/collection/components/toast/scss/bq-toast.css +1 -1
  304. package/dist/collection/components/tooltip/bq-tooltip.js +60 -25
  305. package/dist/collection/components/tooltip/bq-tooltip.js.map +1 -1
  306. package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
  307. package/dist/collection/shared/utils/index.js +1 -0
  308. package/dist/collection/shared/utils/index.js.map +1 -1
  309. package/dist/collection/shared/utils/scrollLock.js +98 -0
  310. package/dist/collection/shared/utils/scrollLock.js.map +1 -0
  311. package/dist/components/bq-accordion-group.js +1 -1
  312. package/dist/components/bq-accordion-group.js.map +1 -1
  313. package/dist/components/bq-accordion.js +1 -1
  314. package/dist/components/bq-accordion.js.map +1 -1
  315. package/dist/components/bq-alert.js +1 -1
  316. package/dist/components/bq-alert.js.map +1 -1
  317. package/dist/components/bq-avatar.js +1 -1
  318. package/dist/components/bq-avatar.js.map +1 -1
  319. package/dist/components/bq-badge.js +1 -1
  320. package/dist/components/bq-breadcrumb-item.js +1 -1
  321. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  322. package/dist/components/bq-breadcrumb.js +1 -1
  323. package/dist/components/bq-breadcrumb.js.map +1 -1
  324. package/dist/components/bq-button.js +1 -1
  325. package/dist/components/bq-card.js +1 -1
  326. package/dist/components/bq-card.js.map +1 -1
  327. package/dist/components/bq-checkbox.js +1 -1
  328. package/dist/components/bq-checkbox.js.map +1 -1
  329. package/dist/components/bq-date-picker.js +1 -1
  330. package/dist/components/bq-date-picker.js.map +1 -1
  331. package/dist/components/bq-dialog.js +1 -1
  332. package/dist/components/bq-dialog.js.map +1 -1
  333. package/dist/components/bq-divider.js +1 -1
  334. package/dist/components/bq-drawer.js +1 -1
  335. package/dist/components/bq-drawer.js.map +1 -1
  336. package/dist/components/bq-dropdown.js +1 -1
  337. package/dist/components/bq-empty-state.js +1 -1
  338. package/dist/components/bq-empty-state.js.map +1 -1
  339. package/dist/components/bq-icon.js +1 -1
  340. package/dist/components/bq-input.js +1 -1
  341. package/dist/components/bq-input.js.map +1 -1
  342. package/dist/components/bq-notification.js +1 -1
  343. package/dist/components/bq-notification.js.map +1 -1
  344. package/dist/components/bq-option-group.js +1 -1
  345. package/dist/components/bq-option-group.js.map +1 -1
  346. package/dist/components/bq-option-list.js +1 -1
  347. package/dist/components/bq-option.js +1 -1
  348. package/dist/components/bq-option.js.map +1 -1
  349. package/dist/components/bq-page-title.js +1 -1
  350. package/dist/components/bq-page-title.js.map +1 -1
  351. package/dist/components/bq-panel.js +1 -1
  352. package/dist/components/bq-progress.js +1 -1
  353. package/dist/components/bq-progress.js.map +1 -1
  354. package/dist/components/bq-radio-group.js +1 -1
  355. package/dist/components/bq-radio-group.js.map +1 -1
  356. package/dist/components/bq-radio.js +1 -1
  357. package/dist/components/bq-radio.js.map +1 -1
  358. package/dist/components/bq-select.js +1 -1
  359. package/dist/components/bq-select.js.map +1 -1
  360. package/dist/components/bq-side-menu-item.js +1 -1
  361. package/dist/components/bq-side-menu-item.js.map +1 -1
  362. package/dist/components/bq-side-menu.js +1 -1
  363. package/dist/components/bq-side-menu.js.map +1 -1
  364. package/dist/components/bq-slider.js +1 -1
  365. package/dist/components/bq-slider.js.map +1 -1
  366. package/dist/components/bq-spinner.js +1 -1
  367. package/dist/components/bq-spinner.js.map +1 -1
  368. package/dist/components/bq-status.js +1 -1
  369. package/dist/components/bq-status.js.map +1 -1
  370. package/dist/components/bq-step-item.js +1 -1
  371. package/dist/components/bq-step-item.js.map +1 -1
  372. package/dist/components/bq-steps.js +1 -1
  373. package/dist/components/bq-steps.js.map +1 -1
  374. package/dist/components/bq-switch.js +1 -1
  375. package/dist/components/bq-switch.js.map +1 -1
  376. package/dist/components/bq-tab-group.js +1 -1
  377. package/dist/components/bq-tab-group.js.map +1 -1
  378. package/dist/components/bq-tab.js +1 -1
  379. package/dist/components/bq-tab.js.map +1 -1
  380. package/dist/components/bq-tag.js +1 -1
  381. package/dist/components/bq-textarea.js +1 -1
  382. package/dist/components/bq-textarea.js.map +1 -1
  383. package/dist/components/bq-toast.js +1 -1
  384. package/dist/components/bq-toast.js.map +1 -1
  385. package/dist/components/bq-tooltip.js +1 -1
  386. package/dist/components/index.js +1 -1
  387. package/dist/components/index.js.map +1 -1
  388. package/dist/components/p-3sipvPdx.js +6 -0
  389. package/dist/components/{p-WHcChQx3.js.map → p-3sipvPdx.js.map} +1 -1
  390. package/dist/components/p-BV-P7QQT.js +6 -0
  391. package/dist/components/p-BV-P7QQT.js.map +1 -0
  392. package/dist/components/p-CBNE-LlA.js +6 -0
  393. package/dist/components/p-CBNE-LlA.js.map +1 -0
  394. package/dist/components/p-CJrRuo-b.js +6 -0
  395. package/dist/components/{p-DkbxITg_.js.map → p-CJrRuo-b.js.map} +1 -1
  396. package/dist/components/p-Cggonv2n.js +6 -0
  397. package/dist/components/{p-DBUH9nOd.js.map → p-Cggonv2n.js.map} +1 -1
  398. package/dist/components/p-CzunKNKG.js +6 -0
  399. package/dist/components/p-CzunKNKG.js.map +1 -0
  400. package/dist/components/p-DBkP6C_Q.js +6 -0
  401. package/dist/components/p-DBkP6C_Q.js.map +1 -0
  402. package/dist/components/p-DLp7W9zW.js +6 -0
  403. package/dist/components/{p-DWElqaGc.js.map → p-DLp7W9zW.js.map} +1 -1
  404. package/dist/components/p-NQu7tItb.js +6 -0
  405. package/dist/components/{p-vwcgzTkx.js.map → p-NQu7tItb.js.map} +1 -1
  406. package/dist/components/p-bqZ_kYEH.js +6 -0
  407. package/dist/components/{p-BzsDSFgf.js.map → p-bqZ_kYEH.js.map} +1 -1
  408. package/dist/custom-elements.json +1816 -1318
  409. package/dist/esm/beeq.js +4 -5
  410. package/dist/esm/beeq.js.map +1 -1
  411. package/dist/esm/bq-accordion-group.entry.js +2 -2
  412. package/dist/esm/bq-accordion-group.entry.js.map +1 -1
  413. package/dist/esm/bq-accordion.entry.js +2 -2
  414. package/dist/esm/bq-accordion.entry.js.map +1 -1
  415. package/dist/esm/bq-alert.entry.js +2 -2
  416. package/dist/esm/bq-alert.entry.js.map +1 -1
  417. package/dist/esm/bq-avatar.entry.js +2 -2
  418. package/dist/esm/bq-avatar.entry.js.map +1 -1
  419. package/dist/esm/bq-badge.entry.js +2 -2
  420. package/dist/esm/bq-badge.entry.js.map +1 -1
  421. package/dist/esm/bq-breadcrumb-item.entry.js +2 -2
  422. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  423. package/dist/esm/bq-breadcrumb.entry.js +2 -2
  424. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  425. package/dist/esm/bq-button.bq-icon.entry.js.map +1 -1
  426. package/dist/esm/bq-button_2.entry.js +3 -3
  427. package/dist/esm/bq-button_2.entry.js.map +1 -1
  428. package/dist/esm/bq-card.entry.js +2 -2
  429. package/dist/esm/bq-card.entry.js.map +1 -1
  430. package/dist/esm/bq-checkbox.entry.js +2 -2
  431. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  432. package/dist/esm/bq-date-picker.entry.js +2 -2
  433. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  434. package/dist/esm/bq-dialog.entry.js +2 -2
  435. package/dist/esm/bq-dialog.entry.js.map +1 -1
  436. package/dist/esm/bq-divider.entry.js +2 -2
  437. package/dist/esm/bq-divider.entry.js.map +1 -1
  438. package/dist/esm/bq-drawer.entry.js +2 -2
  439. package/dist/esm/bq-drawer.entry.js.map +1 -1
  440. package/dist/esm/bq-dropdown.bq-panel.entry.js.map +1 -1
  441. package/dist/esm/bq-dropdown_2.entry.js +47 -17
  442. package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
  443. package/dist/esm/bq-empty-state.entry.js +2 -2
  444. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  445. package/dist/esm/bq-input.entry.js +2 -2
  446. package/dist/esm/bq-input.entry.js.map +1 -1
  447. package/dist/esm/bq-notification.entry.js +2 -2
  448. package/dist/esm/bq-notification.entry.js.map +1 -1
  449. package/dist/esm/bq-option-group.entry.js +2 -2
  450. package/dist/esm/bq-option-group.entry.js.map +1 -1
  451. package/dist/esm/bq-option-list.bq-tag.entry.js.map +1 -1
  452. package/dist/esm/bq-option-list_2.entry.js +3 -3
  453. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  454. package/dist/esm/bq-option.entry.js +2 -2
  455. package/dist/esm/bq-option.entry.js.map +1 -1
  456. package/dist/esm/bq-page-title.entry.js +2 -2
  457. package/dist/esm/bq-page-title.entry.js.map +1 -1
  458. package/dist/esm/bq-progress.entry.js +2 -2
  459. package/dist/esm/bq-progress.entry.js.map +1 -1
  460. package/dist/esm/bq-radio-group.entry.js +2 -2
  461. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  462. package/dist/esm/bq-radio.entry.js +2 -2
  463. package/dist/esm/bq-radio.entry.js.map +1 -1
  464. package/dist/esm/bq-select.entry.js +17 -6
  465. package/dist/esm/bq-select.entry.js.map +1 -1
  466. package/dist/esm/bq-side-menu-item.entry.js +2 -2
  467. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  468. package/dist/esm/bq-side-menu.entry.js +2 -2
  469. package/dist/esm/bq-side-menu.entry.js.map +1 -1
  470. package/dist/esm/bq-slider.entry.js +2 -2
  471. package/dist/esm/bq-slider.entry.js.map +1 -1
  472. package/dist/esm/bq-spinner.entry.js +2 -2
  473. package/dist/esm/bq-spinner.entry.js.map +1 -1
  474. package/dist/esm/bq-status.entry.js +2 -2
  475. package/dist/esm/bq-status.entry.js.map +1 -1
  476. package/dist/esm/bq-step-item.entry.js +2 -2
  477. package/dist/esm/bq-step-item.entry.js.map +1 -1
  478. package/dist/esm/bq-steps.entry.js +2 -2
  479. package/dist/esm/bq-steps.entry.js.map +1 -1
  480. package/dist/esm/bq-switch.entry.js +2 -2
  481. package/dist/esm/bq-switch.entry.js.map +1 -1
  482. package/dist/esm/bq-tab-group.entry.js +2 -2
  483. package/dist/esm/bq-tab-group.entry.js.map +1 -1
  484. package/dist/esm/bq-tab.entry.js +2 -2
  485. package/dist/esm/bq-tab.entry.js.map +1 -1
  486. package/dist/esm/bq-textarea.entry.js +2 -2
  487. package/dist/esm/bq-textarea.entry.js.map +1 -1
  488. package/dist/esm/bq-toast.entry.js +2 -2
  489. package/dist/esm/bq-toast.entry.js.map +1 -1
  490. package/dist/esm/bq-tooltip.entry.js +50 -27
  491. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  492. package/dist/esm/{index-DxsVp5np.js → index-e5zjNNdI.js} +51 -20
  493. package/dist/esm/index-e5zjNNdI.js.map +1 -0
  494. package/dist/esm/index.js +1 -0
  495. package/dist/esm/index.js.map +1 -1
  496. package/dist/esm/loader.js +3 -4
  497. package/dist/esm/loader.js.map +1 -1
  498. package/dist/esm/scrollLock-3vky8wTo.js +103 -0
  499. package/dist/esm/scrollLock-3vky8wTo.js.map +1 -0
  500. package/dist/hydrate/index.d.ts +26 -24
  501. package/dist/hydrate/index.js +289 -118
  502. package/dist/hydrate/index.mjs +289 -118
  503. package/dist/types/{home/runner/work/BEEQ/BEEQ → Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System}/.stencil/tailwind.config.d.ts +4 -1
  504. package/dist/types/components/dropdown/bq-dropdown.d.ts +4 -5
  505. package/dist/types/components/panel/bq-panel.d.ts +2 -0
  506. package/dist/types/components/select/bq-select.d.ts +3 -0
  507. package/dist/types/components/tooltip/bq-tooltip.d.ts +5 -1
  508. package/dist/types/components.d.ts +446 -0
  509. package/dist/types/shared/utils/index.d.ts +1 -0
  510. package/dist/types/shared/utils/scrollLock.d.ts +36 -0
  511. package/dist/types/stencil-public-runtime.d.ts +1 -1
  512. package/package.json +1 -1
  513. package/dist/beeq/p-00022fe8.entry.js +0 -6
  514. package/dist/beeq/p-0b25af76.entry.js +0 -6
  515. package/dist/beeq/p-0d137bf6.entry.js +0 -6
  516. package/dist/beeq/p-0d37b636.entry.js +0 -6
  517. package/dist/beeq/p-165744f3.entry.js +0 -6
  518. package/dist/beeq/p-217d6ad4.entry.js +0 -6
  519. package/dist/beeq/p-217d6ad4.entry.js.map +0 -1
  520. package/dist/beeq/p-29209d90.entry.js +0 -6
  521. package/dist/beeq/p-2bb8c586.entry.js +0 -6
  522. package/dist/beeq/p-2ca0624c.entry.js +0 -6
  523. package/dist/beeq/p-3df3af93.entry.js +0 -6
  524. package/dist/beeq/p-44c2a6b9.entry.js +0 -6
  525. package/dist/beeq/p-4f3809da.entry.js +0 -6
  526. package/dist/beeq/p-52ae6a62.entry.js +0 -6
  527. package/dist/beeq/p-52ae6a62.entry.js.map +0 -1
  528. package/dist/beeq/p-542eb8fa.entry.js +0 -6
  529. package/dist/beeq/p-58c37e96.entry.js +0 -6
  530. package/dist/beeq/p-5ea58411.entry.js +0 -6
  531. package/dist/beeq/p-8570c34a.entry.js +0 -6
  532. package/dist/beeq/p-90fd4b0c.entry.js +0 -6
  533. package/dist/beeq/p-999f9e20.entry.js +0 -6
  534. package/dist/beeq/p-BtYhUEAn.js +0 -6
  535. package/dist/beeq/p-BtYhUEAn.js.map +0 -1
  536. package/dist/beeq/p-DxsVp5np.js +0 -7
  537. package/dist/beeq/p-DxsVp5np.js.map +0 -1
  538. package/dist/beeq/p-a68fbc9a.entry.js +0 -6
  539. package/dist/beeq/p-a72768fd.entry.js +0 -6
  540. package/dist/beeq/p-a96ffa70.entry.js +0 -6
  541. package/dist/beeq/p-ab5ce46e.entry.js +0 -6
  542. package/dist/beeq/p-b07e39c4.entry.js +0 -6
  543. package/dist/beeq/p-b724504a.entry.js +0 -6
  544. package/dist/beeq/p-bee9cc2b.entry.js +0 -6
  545. package/dist/beeq/p-cab20c11.entry.js +0 -6
  546. package/dist/beeq/p-ccc302f0.entry.js +0 -6
  547. package/dist/beeq/p-cd4f1493.entry.js +0 -6
  548. package/dist/beeq/p-cfec306f.entry.js +0 -6
  549. package/dist/beeq/p-d153a008.entry.js +0 -6
  550. package/dist/beeq/p-d7564e29.entry.js +0 -6
  551. package/dist/beeq/p-da8596cf.entry.js +0 -6
  552. package/dist/beeq/p-e0257fb4.entry.js +0 -6
  553. package/dist/beeq/p-e29356c6.entry.js +0 -6
  554. package/dist/beeq/p-e5a52055.entry.js +0 -6
  555. package/dist/beeq/p-e5a52055.entry.js.map +0 -1
  556. package/dist/beeq/p-fd79697e.entry.js +0 -6
  557. package/dist/beeq/p-fea2b8c2.entry.js +0 -6
  558. package/dist/beeq/p-ffcc02f7.entry.js +0 -6
  559. package/dist/cjs/app-globals-BY_z0SzA.js +0 -12
  560. package/dist/cjs/app-globals-BY_z0SzA.js.map +0 -1
  561. package/dist/cjs/index-DkHCSxhS.js.map +0 -1
  562. package/dist/components/p-3yNfc1gW.js +0 -6
  563. package/dist/components/p-3yNfc1gW.js.map +0 -1
  564. package/dist/components/p-BzsDSFgf.js +0 -6
  565. package/dist/components/p-DBUH9nOd.js +0 -6
  566. package/dist/components/p-DFcM00d7.js +0 -6
  567. package/dist/components/p-DFcM00d7.js.map +0 -1
  568. package/dist/components/p-DWElqaGc.js +0 -6
  569. package/dist/components/p-DkbxITg_.js +0 -6
  570. package/dist/components/p-VAzCkxML.js +0 -6
  571. package/dist/components/p-VAzCkxML.js.map +0 -1
  572. package/dist/components/p-WHcChQx3.js +0 -6
  573. package/dist/components/p-iu8JIKCE.js +0 -6
  574. package/dist/components/p-iu8JIKCE.js.map +0 -1
  575. package/dist/components/p-vwcgzTkx.js +0 -6
  576. package/dist/esm/app-globals-BtYhUEAn.js +0 -10
  577. package/dist/esm/app-globals-BtYhUEAn.js.map +0 -1
  578. package/dist/esm/index-DxsVp5np.js.map +0 -1
  579. /package/dist/types/{home/runner/work/BEEQ/BEEQ → Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System}/.stencil/packages/beeq/jest.config.d.ts +0 -0
  580. /package/dist/types/{home/runner/work/BEEQ/BEEQ → Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System}/.stencil/packages/beeq/stencil.config.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"bq-dropdown.bq-panel.entry.js","sources":["../../packages/beeq/src/components/dropdown/scss/bq-dropdown.scss?tag=bq-dropdown&encapsulation=shadow","../../packages/beeq/src/components/dropdown/bq-dropdown.tsx","../../packages/beeq/src/components/panel/scss/bq-panel.scss?tag=bq-panel&encapsulation=shadow","../../packages/beeq/src/components/panel/bq-panel.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Dropdown styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply relative inline-block;\n}\n","import { Component, Element, Event, h, Listen, Prop, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\n\nlet id = 0;\n\n/**\n * The Dropdown Component is commonly used when presenting a list of selectable options that are too numerous to fit comfortably on the screen.\n * They provide an efficient way to save space and present a long list of options in a compact and organized manner.\n *\n * @example How to use it\n * ```html\n * <bq-dropdown placement=\"bottom-start\">\n * <bq-button slot=\"trigger\">Dropdown</bq-button>\n * <bq-option-list>\n * <bq-option value=\"users\">...</bq-option>\n * <bq-option value=\"user\">...</bq-option>\n * <bq-option value=\"dashboard\">...</bq-option>\n * <bq-option value=\"settings\">...</bq-option>\n * <bq-option value=\"logout\">...</bq-option>\n * </bq-option-list>\n * </bq-dropdown>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/47ff4b-dropdown\n * @status stable\n *\n * @dependency bq-panel\n *\n * @attr {boolean} disabled - If true, the dropdown panel will be visible and won't be shown.\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {boolean} keep-open-on-select - If true, the panel will remain open after a selection is made.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {string} panel-height - When set, it will override the height of the dropdown panel.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @event bqOpen - Callback handler to be called when the dropdown panel is opened or closed.\n *\n * @slot trigger - The trigger element that opens the dropdown panel.\n * @slot - The content of the dropdown panel.\n *\n * @part base - The component's internal wrapper.\n * @part dropdown - The `<bq-panel>` element used under the hood to display the dropdown panel.\n * @part panel - The `<div>` element used to display and style the panel inside the `<bq-panel>` element.\n * @part trigger - The `<div>` element that hosts the trigger element.\n *\n * @cssprop --bq-panel--background - Panel background color\n * @cssprop --bq-panel--border-color - Panel border color\n * @cssprop --bq-panel--border-radius - Panel border radius\n * @cssprop --bq-panel--border-style - Panel border style\n * @cssprop --bq-panel--border-width - Panel border width\n * @cssprop --bq-panel--box-shadow - Panel box shadow\n * @cssprop --bq-panel--padding - Panel padding\n * @cssprop --bq-panel--height - Panel height\n * @cssprop --bq-panel--width - Panel width\n * @cssprop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-dropdown',\n styleUrl: './scss/bq-dropdown.scss',\n shadow: true,\n})\nexport class BqDropdown {\n // Own Properties\n // ====================\n\n private dropdownPanelId = `bq-dropdown-panel-${++id}`;\n private triggerElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDropdownElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the dropdown panel will be visible and won't be shown. */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** If true, the panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the dropdown panel */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n onOpenChange() {\n this.bqOpen.emit({ open: this.open });\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n if (!this.triggerElem) return;\n\n // set 'disabled' attribute based on 'this.disabled' value, ensuring consistent state handling\n if (!this.disabled) {\n this.triggerElem?.removeAttribute('disabled');\n return;\n }\n this.triggerElem?.setAttribute('disabled', 'true');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the dropdown panel is opened or closed. */\n @Event() bqOpen: EventEmitter<{ open: boolean }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.triggerElem = this.el.querySelector('[slot=\"trigger\"]');\n this.handleDisabledChange();\n }\n\n // Listeners\n // ==============\n\n /** Listens for the 'click' event on the document object\n * and closes the dropdown panel if the click is outside the component.\n */\n @Listen('click', { target: 'document', passive: true })\n onClickOutside(event: MouseEvent) {\n if (!this.open) return;\n\n // Close when clicking outside of the close element\n const path = event.composedPath();\n if (!path.includes(this.el)) {\n this.open = false;\n }\n }\n\n /**\n * Listens for the 'keyup' event on the window object\n * and closes the dropdown panel if the 'Escape' key or 'Tab' key outside the component is pressed.\n */\n @Listen('keyup', { target: 'window', passive: true })\n onEscape(event: KeyboardEvent) {\n if (!this.open) return;\n\n if (event.key === 'Escape' || (event.key === 'Tab' && !event.composedPath().includes(this.el))) {\n this.open = false;\n }\n }\n\n @Listen('bqSelect', { passive: true })\n onItemSelect() {\n if (this.keepOpenOnSelect) return;\n\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private togglePanel = (): void => {\n // Don't toggle the panel if the component is disabled or the trigger element is disabled\n if (this.disabled || this.triggerElem?.hasAttribute('disabled')) return;\n\n this.open = !this.open;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.panelHeight && { '--bq-panel--height': this.panelHeight }),\n };\n\n return (\n <div class=\"bq-dropdown\" part=\"base\">\n {/* TRIGGER CONTAINER */}\n <div\n class=\"bq-dropdown__trigger block\"\n aria-controls={this.dropdownPanelId}\n aria-haspopup=\"true\"\n onClick={this.togglePanel}\n part=\"trigger\"\n >\n <slot name=\"trigger\" />\n </div>\n {/* PANEL */}\n <bq-panel\n style={style}\n id={this.dropdownPanelId}\n class=\"bq-dropdown__panel\"\n distance={this.distance}\n placement={this.placement}\n open={this.open}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n role=\"group\"\n part=\"dropdown\"\n exportparts=\"panel\"\n >\n <slot />\n </bq-panel>\n </div>\n );\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Panel styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-panel.variables';\n\n:host {\n @apply block;\n}\n\n.bq-panel {\n @include animation-fade-in;\n @apply fixed z-[--bq-panel-z-index] overflow-y-auto overflow-x-hidden is-[--bq-panel--width] max-bs-[--bq-panel--height];\n @apply rounded-[--bq-panel--border-radius] bg-[--bq-panel--background] shadow-[shadow:--bq-panel--box-shadow];\n @apply pe-[--bq-panel--padding-end] ps-[--bq-panel--padding-start] p-b-[--bq-panel--paddingY];\n @apply border-[length:--bq-panel--border-width] border-[color:--bq-panel--border-color];\n\n border-style: var(--bq-panel--border-style);\n}\n","import { ReferenceElement } from '@floating-ui/dom';\nimport { Component, Element, h, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { FloatingUI } from '../../services/libraries';\n\n/**\n * The Panel component is a versatile and essential element used to wrap and display content in a floating panel.\n *\n * @example How to use it\n * ```html\n * <bq-panel open>\n * <div>Panel content</div>\n * </bq-panel>\n * ```\n *\n * @status stable\n *\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @slot - The content of the panel.\n *\n * @part panel - The `<div>` element used to display and style the panel\n *\n * @prop --bq-panel--background - Panel background color\n * @prop --bq-panel--border-color - Panel border color\n * @prop --bq-panel--border-radius - Panel border radius\n * @prop --bq-panel--border-style - Panel border style\n * @prop --bq-panel--border-width - Panel border width\n * @prop --bq-panel--box-shadow - Panel box shadow\n * @prop --bq-panel--padding - Panel padding\n * @prop --bq-panel--height - Panel height\n * @prop --bq-panel--width - Panel width\n * @prop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-panel',\n styleUrl: './scss/bq-panel.scss',\n shadow: true,\n})\nexport class BqPanel {\n // Own Properties\n // ====================\n\n private panel: HTMLElement;\n private floatingUI: FloatingUI;\n private trigger: ReferenceElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqPanelElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n handleOpenChange() {\n if (!this.open) {\n this.hidePanel();\n return;\n }\n\n this.showPanel();\n }\n\n @Watch('distance')\n @Watch('placement')\n @Watch('sameWidth')\n @Watch('skidding')\n @Watch('strategy')\n onPropChange() {\n this.floatingUI?.init({ ...this.options });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n // We need to find the trigger element from the parent to position the panel relative to it.\n const parentTrigger = this.el.parentElement.querySelector('div[part=\"trigger\"]');\n if (!parentTrigger) return;\n\n this.trigger = {\n getBoundingClientRect: () => parentTrigger.getBoundingClientRect(),\n contextElement: parentTrigger,\n };\n\n this.floatingUI = new FloatingUI(this.trigger, this.panel, { ...this.options });\n this.handleOpenChange();\n }\n\n disconnectedCallback() {\n this.floatingUI?.destroy();\n }\n\n // Listeners\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private showPanel() {\n this.floatingUI?.update();\n }\n\n private async hidePanel() {\n this.open = false;\n }\n\n private get options() {\n return {\n distance: this.distance,\n placement: this.placement,\n sameWidth: this.sameWidth,\n skidding: this.skidding,\n strategy: this.strategy,\n };\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div\n class=\"bq-panel\"\n ref={(el) => (this.panel = el)}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open}\n part=\"panel\"\n >\n <slot />\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bq-dropdown.bq-panel.entry.js","sources":["../../packages/beeq/src/components/dropdown/scss/bq-dropdown.scss?tag=bq-dropdown&encapsulation=shadow","../../packages/beeq/src/components/dropdown/bq-dropdown.tsx","../../packages/beeq/src/components/panel/scss/bq-panel.scss?tag=bq-panel&encapsulation=shadow","../../packages/beeq/src/components/panel/bq-panel.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Dropdown styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply relative inline-block;\n}\n","import { Component, Element, Event, h, Listen, Prop, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { isEventTargetChildOfElement } from '../../shared/utils';\n\nlet id = 0;\n\n/**\n * The Dropdown Component is commonly used when presenting a list of selectable options that are too numerous to fit comfortably on the screen.\n * They provide an efficient way to save space and present a long list of options in a compact and organized manner.\n *\n * @example How to use it\n * ```html\n * <bq-dropdown placement=\"bottom-start\">\n * <bq-button slot=\"trigger\">Dropdown</bq-button>\n * <bq-option-list>\n * <bq-option value=\"users\">...</bq-option>\n * <bq-option value=\"user\">...</bq-option>\n * <bq-option value=\"dashboard\">...</bq-option>\n * <bq-option value=\"settings\">...</bq-option>\n * <bq-option value=\"logout\">...</bq-option>\n * </bq-option-list>\n * </bq-dropdown>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/47ff4b-dropdown\n * @status stable\n *\n * @dependency bq-panel\n *\n * @attr {boolean} disabled - If true, the dropdown panel will be visible and won't be shown.\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {boolean} keep-open-on-select - If true, the panel will remain open after a selection is made.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {string} panel-height - When set, it will override the height of the dropdown panel.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @event bqOpen - Callback handler to be called when the dropdown panel is opened or closed.\n *\n * @slot trigger - The trigger element that opens the dropdown panel.\n * @slot - The content of the dropdown panel.\n *\n * @part base - The component's internal wrapper.\n * @part dropdown - The `<bq-panel>` element used under the hood to display the dropdown panel.\n * @part panel - The `<div>` element used to display and style the panel inside the `<bq-panel>` element.\n * @part trigger - The `<div>` element that hosts the trigger element.\n *\n * @cssprop --bq-panel--background - Panel background color\n * @cssprop --bq-panel--border-color - Panel border color\n * @cssprop --bq-panel--border-radius - Panel border radius\n * @cssprop --bq-panel--border-style - Panel border style\n * @cssprop --bq-panel--border-width - Panel border width\n * @cssprop --bq-panel--box-shadow - Panel box shadow\n * @cssprop --bq-panel--padding - Panel padding\n * @cssprop --bq-panel--height - Panel height\n * @cssprop --bq-panel--width - Panel width\n * @cssprop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-dropdown',\n styleUrl: './scss/bq-dropdown.scss',\n shadow: true,\n})\nexport class BqDropdown {\n // Own Properties\n // ====================\n\n private dropdownPanelId = `bq-dropdown-panel-${++id}`;\n private triggerElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDropdownElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the dropdown panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /** If true, the dropdown panel will be visible and won't be shown. */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** If true, the panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the dropdown panel */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n onOpenChange() {\n this.bqOpen.emit({ open: this.open });\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n if (!this.triggerElem) return;\n\n // set 'disabled' attribute based on 'this.disabled' value, ensuring consistent state handling\n if (!this.disabled) {\n this.triggerElem?.removeAttribute('disabled');\n return;\n }\n this.triggerElem?.setAttribute('disabled', 'true');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the dropdown panel is opened or closed. */\n @Event() bqOpen: EventEmitter<{ open: boolean }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.triggerElem = this.el.querySelector('[slot=\"trigger\"]');\n this.handleDisabledChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqSelect', { passive: true })\n onItemSelect() {\n if (this.keepOpenOnSelect) return;\n\n this.open = false;\n }\n\n /** Listens for the 'click' event on the document object\n * and closes the dropdown panel if the click is outside the component.\n */\n @Listen('click', { target: 'document', passive: true })\n onClickOutside(event: MouseEvent) {\n if (!this.open || isEventTargetChildOfElement(event, this.el)) return;\n\n // Close when clicking outside of the close element\n this.open = false;\n }\n\n @Listen('keyup', { target: 'window', passive: true })\n onEscape(event: KeyboardEvent) {\n if (!this.open) return;\n // Close the panel when pressing Escape or when pressing Tab and the component loses focus.\n if (event.key === 'Escape' || (event.key === 'Tab' && !isEventTargetChildOfElement(event, this.el))) {\n this.open = false;\n }\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private togglePanel = (): void => {\n // Don't toggle the panel if the component is disabled or the trigger element is disabled\n if (this.disabled || this.triggerElem?.hasAttribute('disabled')) return;\n\n this.open = !this.open;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.panelHeight && { '--bq-panel--height': this.panelHeight }),\n };\n\n return (\n <div class=\"bq-dropdown\" part=\"base\">\n {/* TRIGGER CONTAINER */}\n <div\n class=\"bq-dropdown__trigger block\"\n aria-controls={this.dropdownPanelId}\n aria-haspopup=\"true\"\n onClick={this.togglePanel}\n part=\"trigger\"\n >\n <slot name=\"trigger\" />\n </div>\n {/* PANEL */}\n <bq-panel\n style={style}\n id={this.dropdownPanelId}\n class=\"bq-dropdown__panel\"\n disableScrollLock={this.disableScrollLock}\n distance={this.distance}\n placement={this.placement}\n open={this.open}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n role=\"group\"\n part=\"dropdown\"\n exportparts=\"panel\"\n >\n <slot />\n </bq-panel>\n </div>\n );\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Panel styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-panel.variables';\n\n:host {\n @apply block;\n}\n\n.bq-panel {\n @include animation-fade-in;\n @apply fixed z-[--bq-panel-z-index] overflow-y-auto overflow-x-hidden is-[--bq-panel--width] max-bs-[--bq-panel--height];\n @apply rounded-[--bq-panel--border-radius] bg-[--bq-panel--background] shadow-[shadow:--bq-panel--box-shadow];\n @apply pe-[--bq-panel--padding-end] ps-[--bq-panel--padding-start] p-b-[--bq-panel--paddingY];\n @apply border-[length:--bq-panel--border-width] border-[color:--bq-panel--border-color];\n\n border-style: var(--bq-panel--border-style);\n}\n","import { ReferenceElement } from '@floating-ui/dom';\nimport { Component, Element, h, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { FloatingUI } from '../../services/libraries';\nimport { isClient, lockBodyScroll, unlockBodyScroll } from '../../shared/utils';\n\n/**\n * The Panel component is a versatile and essential element used to wrap and display content in a floating panel.\n *\n * @example How to use it\n * ```html\n * <bq-panel open>\n * <div>Panel content</div>\n * </bq-panel>\n * ```\n *\n * @status stable\n *\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @slot - The content of the panel.\n *\n * @part panel - The `<div>` element used to display and style the panel\n *\n * @prop --bq-panel--background - Panel background color\n * @prop --bq-panel--border-color - Panel border color\n * @prop --bq-panel--border-radius - Panel border radius\n * @prop --bq-panel--border-style - Panel border style\n * @prop --bq-panel--border-width - Panel border width\n * @prop --bq-panel--box-shadow - Panel box shadow\n * @prop --bq-panel--padding - Panel padding\n * @prop --bq-panel--height - Panel height\n * @prop --bq-panel--width - Panel width\n * @prop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-panel',\n styleUrl: './scss/bq-panel.scss',\n shadow: true,\n})\nexport class BqPanel {\n // Own Properties\n // ====================\n\n private panel: HTMLElement;\n private floatingUI: FloatingUI;\n private trigger: ReferenceElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqPanelElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n handleOpenChange() {\n if (!this.open) {\n this.hidePanel();\n return;\n }\n\n this.showPanel();\n }\n\n @Watch('distance')\n @Watch('placement')\n @Watch('sameWidth')\n @Watch('skidding')\n @Watch('strategy')\n onPropChange() {\n if (!isClient()) return;\n\n this.floatingUI?.init({ ...this.options });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n if (!isClient()) return;\n\n // We need to find the trigger element from the parent to position the panel relative to it.\n const parentTrigger = this.el.parentElement.querySelector('div[part=\"trigger\"]');\n\n if (!parentTrigger) return;\n\n this.trigger = {\n getBoundingClientRect: () => parentTrigger.getBoundingClientRect(),\n contextElement: parentTrigger,\n };\n\n this.floatingUI = new FloatingUI(this.trigger, this.panel, { ...this.options });\n this.handleOpenChange();\n }\n\n disconnectedCallback() {\n if (!isClient()) return;\n\n this.floatingUI?.destroy();\n\n // Ensure scroll lock is removed if the component is disconnected while the panel is open.\n if (this.open && !this.disableScrollLock) {\n unlockBodyScroll();\n }\n }\n\n // Listeners\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private showPanel() {\n if (!isClient()) return;\n\n this.floatingUI?.update();\n\n // Lock the body scroll if the disableScrollLock prop is not true.\n if (!this.disableScrollLock) {\n lockBodyScroll();\n }\n }\n\n private async hidePanel() {\n this.open = false;\n\n // Unlock the body scroll if the disableScrollLock prop is not true.\n if (isClient() && !this.disableScrollLock) {\n unlockBodyScroll();\n }\n }\n\n private get options() {\n return {\n distance: this.distance,\n placement: this.placement,\n sameWidth: this.sameWidth,\n skidding: this.skidding,\n strategy: this.strategy,\n };\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div\n class=\"bq-panel\"\n ref={(el) => (this.panel = el)}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open}\n part=\"panel\"\n >\n <slot />\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -2,10 +2,13 @@
2
2
  * Built by Endavans
3
3
  * © https://beeq.design - Apache 2 License.
4
4
  */
5
- import { r as registerInstance, c as createEvent, g as getElement, h } from './index-DxsVp5np.js';
5
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-e5zjNNdI.js';
6
+ import { i as isEventTargetChildOfElement } from './event-Dx-CEPSQ.js';
6
7
  import { F as FloatingUI } from './index-DJ_hypV7.js';
8
+ import { i as isClient } from './isClient-B4sM1t6Z.js';
9
+ import { u as unlockBodyScroll, l as lockBodyScroll } from './scrollLock-3vky8wTo.js';
7
10
 
8
- const bqDropdownCss = "::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{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);font-family:var(--bq-font-family);line-height:var(--bq-font-line-height--regular);min-height:100vh;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}}: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.light,.light,:root,[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-200);--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}.beeq.dark,.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-800);--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}.endava,[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,[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-200);--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-800);--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}.relative{position:relative}.inline-block{display:inline-block}@-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{display:inline-block;position:relative}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.block{display:block}.hidden{display:none}";
11
+ const bqDropdownCss = "::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.light,.light,[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-200);--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}.beeq.dark,.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-800);--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,[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-200);--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-800);--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}.relative{position:relative}.inline-block{display:inline-block}@-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{display:inline-block;position:relative}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.block{display:block}.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}}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.hidden{display:none}";
9
12
 
10
13
  let id = 0;
11
14
  const BqDropdown = class {
@@ -23,6 +26,8 @@ const BqDropdown = class {
23
26
  // =======================================
24
27
  // Public Property API
25
28
  // ========================
29
+ /** If true, the dropdown panel will not lock the page body scroll when open. */
30
+ disableScrollLock = false;
26
31
  /** If true, the dropdown panel will be visible and won't be shown. */
27
32
  disabled = false;
28
33
  /** Represents the distance (gutter or margin) between the panel and the trigger element. */
@@ -70,32 +75,35 @@ const BqDropdown = class {
70
75
  }
71
76
  // Listeners
72
77
  // ==============
78
+ onItemSelect() {
79
+ if (this.keepOpenOnSelect)
80
+ return;
81
+ this.open = false;
82
+ }
73
83
  /** Listens for the 'click' event on the document object
74
84
  * and closes the dropdown panel if the click is outside the component.
75
85
  */
76
86
  onClickOutside(event) {
77
- if (!this.open)
87
+ if (!this.open || isEventTargetChildOfElement(event, this.el))
78
88
  return;
79
89
  // Close when clicking outside of the close element
80
- const path = event.composedPath();
81
- if (!path.includes(this.el)) {
82
- this.open = false;
83
- }
90
+ this.open = false;
84
91
  }
85
- /**
86
- * Listens for the 'keyup' event on the window object
87
- * and closes the dropdown panel if the 'Escape' key or 'Tab' key outside the component is pressed.
88
- */
89
92
  onEscape(event) {
90
93
  if (!this.open)
91
94
  return;
92
- if (event.key === 'Escape' || (event.key === 'Tab' && !event.composedPath().includes(this.el))) {
95
+ // Close the panel when pressing Escape or when pressing Tab and the component loses focus.
96
+ if (event.key === 'Escape' || (event.key === 'Tab' && !isEventTargetChildOfElement(event, this.el))) {
93
97
  this.open = false;
94
98
  }
95
99
  }
96
- onItemSelect() {
97
- if (this.keepOpenOnSelect)
100
+ handleScrollEvent() {
101
+ if (!this.open || this.disableScrollLock)
98
102
  return;
103
+ // Close the panel when the scroll event is triggered.
104
+ // This is useful for those cases where the floating panel is inside a scrollable container.
105
+ // For example, a select inside a dialog, drawer, etc.
106
+ // ⚠️ Notice that document body scroll lock is handled via the `scrollLock` utility.
99
107
  this.open = false;
100
108
  }
101
109
  // Public methods API
@@ -121,7 +129,7 @@ const BqDropdown = class {
121
129
  const style = {
122
130
  ...(this.panelHeight && { '--bq-panel--height': this.panelHeight }),
123
131
  };
124
- return (h("div", { key: '691f94206a01b5e4a715d884f863c1ac4c42463d', class: "bq-dropdown", part: "base" }, h("div", { key: '4a38a343a13037c38438cc1b9cd9fe2d8f8ac799', class: "bq-dropdown__trigger block", "aria-controls": this.dropdownPanelId, "aria-haspopup": "true", onClick: this.togglePanel, part: "trigger" }, h("slot", { key: '31699625980d137dd77682f863e7d92302a2a984', name: "trigger" })), h("bq-panel", { key: 'd4c5d1188ff35c0722e7d22cbd50d4d63056202e', style: style, id: this.dropdownPanelId, class: "bq-dropdown__panel", distance: this.distance, placement: this.placement, open: this.open, sameWidth: this.sameWidth, skidding: this.skidding, strategy: this.strategy, role: "group", part: "dropdown", exportparts: "panel" }, h("slot", { key: '65d9a8c65b7ebcd9b83600570ad1add3ab7ddc4b' }))));
132
+ return (h("div", { key: '41c44113b7496cdcfec26e5bcdb1d89a56ca37eb', class: "bq-dropdown", part: "base" }, h("div", { key: '4dd4bde1af1c60b1b25961fbe206f02ef275ce0c', class: "bq-dropdown__trigger block", "aria-controls": this.dropdownPanelId, "aria-haspopup": "true", onClick: this.togglePanel, part: "trigger" }, h("slot", { key: '6cdebf21d0b79076a47ee69847ed8b44257c23ae', name: "trigger" })), h("bq-panel", { key: '1b1ce13ffef3b27ba390aac6262839a56723674a', style: style, id: this.dropdownPanelId, class: "bq-dropdown__panel", disableScrollLock: this.disableScrollLock, distance: this.distance, placement: this.placement, open: this.open, sameWidth: this.sameWidth, skidding: this.skidding, strategy: this.strategy, role: "group", part: "dropdown", exportparts: "panel" }, h("slot", { key: '8c09398a557856632a5b8ff55fda03fc8a731394' }))));
125
133
  }
126
134
  static get watchers() { return {
127
135
  "open": ["onOpenChange"],
@@ -130,7 +138,7 @@ const BqDropdown = class {
130
138
  };
131
139
  BqDropdown.style = bqDropdownCss;
132
140
 
133
- const bqPanelCss = ".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))}.bq-panel,.shadow-\\[shadow\\:--bq-panel--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{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);font-family:var(--bq-font-family);line-height:var(--bq-font-line-height--regular);min-height:100vh;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}}: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.light,.light,:root,[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-200);--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}.beeq.dark,.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-800);--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}.endava,[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,[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-200);--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-800);--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}.fixed{position:fixed}.z-\\[--bq-panel-z-index\\]{z-index:var(--bq-panel-z-index)}.block{display:block}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.rounded-\\[--bq-panel--border-radius\\]{border-radius:var(--bq-panel--border-radius)}.border-\\[length\\:--bq-panel--border-width\\]{border-width:var(--bq-panel--border-width)}.border-\\[color\\:--bq-panel--border-color\\]{border-color:var(--bq-panel--border-color)}.bg-\\[--bq-panel--background\\]{background-color:var(--bq-panel--background)}.pe-\\[--bq-panel--padding-end\\]{padding-inline-end:var(--bq-panel--padding-end)}.ps-\\[--bq-panel--padding-start\\]{padding-inline-start:var(--bq-panel--padding-start)}.shadow-\\[shadow\\:--bq-panel--box-shadow\\]{--tw-shadow:var(--bq-panel--box-shadow);--tw-shadow-colored:var(--bq-panel--box-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.is-\\[--bq-panel--width\\]{inline-size:var(--bq-panel--width)}.max-bs-\\[--bq-panel--height\\]{max-block-size:var(--bq-panel--height)}.p-b-\\[--bq-panel--paddingY\\]{padding-block:var(--bq-panel--paddingY)}@-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-panel--background:var(--bq-ui--primary);--bq-panel--border-color:transparent;--bq-panel--border-radius:var(--bq-radius--s);--bq-panel--border-style:none;--bq-panel--border-width:unset;--bq-panel--box-shadow:var(--bq-box-shadow--m);--bq-panel--paddingY:var(--bq-spacing-xs);--bq-panel--padding-start:var(--bq-spacing-xs);--bq-panel--padding-end:var(--bq-spacing-xs);--bq-panel--height:50vh;--bq-panel--width:320px;--bq-panel-z-index:10;display:block}.bq-panel{--tw-shadow:var(--bq-panel--box-shadow);--tw-shadow-colored:var(--bq-panel--box-shadow);-webkit-animation:fade-in .3s ease 0s;animation:fade-in .3s ease 0s;background-color:var(--bq-panel--background);border-color:var(--bq-panel--border-color);border-radius:var(--bq-panel--border-radius);border-style:var(--bq-panel--border-style);border-width:var(--bq-panel--border-width);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);inline-size:var(--bq-panel--width);max-block-size:var(--bq-panel--height);overflow-x:hidden;overflow-y:auto;padding-block:var(--bq-panel--paddingY);padding-inline-end:var(--bq-panel--padding-end);padding-inline-start:var(--bq-panel--padding-start);position:fixed;z-index:var(--bq-panel-z-index)}.visible{visibility:visible}.static{position:static}.relative{position:relative}.hidden{display:none}";
141
+ const bqPanelCss = ".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))}.bq-panel,.shadow-\\[shadow\\:--bq-panel--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.light,.light,[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-200);--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}.beeq.dark,.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-800);--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,[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-200);--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-800);--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}.fixed{position:fixed}.z-\\[--bq-panel-z-index\\]{z-index:var(--bq-panel-z-index)}.block{display:block}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.rounded-\\[--bq-panel--border-radius\\]{border-radius:var(--bq-panel--border-radius)}.border-\\[length\\:--bq-panel--border-width\\]{border-width:var(--bq-panel--border-width)}.border-\\[color\\:--bq-panel--border-color\\]{border-color:var(--bq-panel--border-color)}.bg-\\[--bq-panel--background\\]{background-color:var(--bq-panel--background)}.pe-\\[--bq-panel--padding-end\\]{padding-inline-end:var(--bq-panel--padding-end)}.ps-\\[--bq-panel--padding-start\\]{padding-inline-start:var(--bq-panel--padding-start)}.shadow-\\[shadow\\:--bq-panel--box-shadow\\]{--tw-shadow:var(--bq-panel--box-shadow);--tw-shadow-colored:var(--bq-panel--box-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.is-\\[--bq-panel--width\\]{inline-size:var(--bq-panel--width)}.max-bs-\\[--bq-panel--height\\]{max-block-size:var(--bq-panel--height)}.p-b-\\[--bq-panel--paddingY\\]{padding-block:var(--bq-panel--paddingY)}@-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-panel--background:var(--bq-ui--primary);--bq-panel--border-color:transparent;--bq-panel--border-radius:var(--bq-radius--s);--bq-panel--border-style:none;--bq-panel--border-width:unset;--bq-panel--box-shadow:var(--bq-box-shadow--m);--bq-panel--paddingY:var(--bq-spacing-xs);--bq-panel--padding-start:var(--bq-spacing-xs);--bq-panel--padding-end:var(--bq-spacing-xs);--bq-panel--height:50vh;--bq-panel--width:320px;--bq-panel-z-index:10;display:block}.bq-panel{--tw-shadow:var(--bq-panel--box-shadow);--tw-shadow-colored:var(--bq-panel--box-shadow);-webkit-animation:fade-in .3s ease 0s;animation:fade-in .3s ease 0s;background-color:var(--bq-panel--background);border-color:var(--bq-panel--border-color);border-radius:var(--bq-panel--border-radius);border-style:var(--bq-panel--border-style);border-width:var(--bq-panel--border-width);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);inline-size:var(--bq-panel--width);max-block-size:var(--bq-panel--height);overflow-x:hidden;overflow-y:auto;padding-block:var(--bq-panel--paddingY);padding-inline-end:var(--bq-panel--padding-end);padding-inline-start:var(--bq-panel--padding-start);position:fixed;z-index:var(--bq-panel-z-index)}.visible{visibility:visible}.static{position:static}.relative{position:relative}.hidden{display:none}";
134
142
 
135
143
  const BqPanel = class {
136
144
  constructor(hostRef) {
@@ -147,6 +155,8 @@ const BqPanel = class {
147
155
  // =======================================
148
156
  // Public Property API
149
157
  // ========================
158
+ /** If true, the panel will not lock the page body scroll when open. */
159
+ disableScrollLock = false;
150
160
  /** Represents the distance (gutter or margin) between the panel and the trigger element. */
151
161
  distance = 4;
152
162
  /** Position of the panel */
@@ -169,6 +179,8 @@ const BqPanel = class {
169
179
  this.showPanel();
170
180
  }
171
181
  onPropChange() {
182
+ if (!isClient())
183
+ return;
172
184
  this.floatingUI?.init({ ...this.options });
173
185
  }
174
186
  // Events section
@@ -178,6 +190,8 @@ const BqPanel = class {
178
190
  // Ordered by their natural call order
179
191
  // =====================================
180
192
  componentDidLoad() {
193
+ if (!isClient())
194
+ return;
181
195
  // We need to find the trigger element from the parent to position the panel relative to it.
182
196
  const parentTrigger = this.el.parentElement.querySelector('div[part="trigger"]');
183
197
  if (!parentTrigger)
@@ -190,7 +204,13 @@ const BqPanel = class {
190
204
  this.handleOpenChange();
191
205
  }
192
206
  disconnectedCallback() {
207
+ if (!isClient())
208
+ return;
193
209
  this.floatingUI?.destroy();
210
+ // Ensure scroll lock is removed if the component is disconnected while the panel is open.
211
+ if (this.open && !this.disableScrollLock) {
212
+ unlockBodyScroll();
213
+ }
194
214
  }
195
215
  // Listeners
196
216
  // ==============
@@ -205,10 +225,20 @@ const BqPanel = class {
205
225
  // These methods cannot be called from the host element.
206
226
  // =======================================================
207
227
  showPanel() {
228
+ if (!isClient())
229
+ return;
208
230
  this.floatingUI?.update();
231
+ // Lock the body scroll if the disableScrollLock prop is not true.
232
+ if (!this.disableScrollLock) {
233
+ lockBodyScroll();
234
+ }
209
235
  }
210
236
  async hidePanel() {
211
237
  this.open = false;
238
+ // Unlock the body scroll if the disableScrollLock prop is not true.
239
+ if (isClient() && !this.disableScrollLock) {
240
+ unlockBodyScroll();
241
+ }
212
242
  }
213
243
  get options() {
214
244
  return {
@@ -223,7 +253,7 @@ const BqPanel = class {
223
253
  // Always the last one in the class.
224
254
  // ===================================
225
255
  render() {
226
- return (h("div", { key: 'e1bb11632f93df8bad880d877cbbba90fd39d021', class: "bq-panel", ref: (el) => (this.panel = el), "aria-hidden": !this.open ? 'true' : 'false', hidden: !this.open, part: "panel" }, h("slot", { key: 'fd621fca1c3158c859fb314b7bdd1738c30557bc' })));
256
+ return (h("div", { key: '23544597590fa3902b7601c8f47d012f2bf7b75d', class: "bq-panel", ref: (el) => (this.panel = el), "aria-hidden": !this.open ? 'true' : 'false', hidden: !this.open, part: "panel" }, h("slot", { key: '6bdf3a5bd8307b1a2c9ead52a23de47abf8ce28d' })));
227
257
  }
228
258
  static get watchers() { return {
229
259
  "open": ["handleOpenChange"],
@@ -1 +1 @@
1
- {"file":"bq-dropdown.bq-panel.entry.js","mappings":"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","names":[],"sources":["../../packages/beeq/src/components/dropdown/scss/bq-dropdown.scss?tag=bq-dropdown&encapsulation=shadow","../../packages/beeq/src/components/dropdown/bq-dropdown.tsx","../../packages/beeq/src/components/panel/scss/bq-panel.scss?tag=bq-panel&encapsulation=shadow","../../packages/beeq/src/components/panel/bq-panel.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Dropdown styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply relative inline-block;\n}\n","import { Component, Element, Event, h, Listen, Prop, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\n\nlet id = 0;\n\n/**\n * The Dropdown Component is commonly used when presenting a list of selectable options that are too numerous to fit comfortably on the screen.\n * They provide an efficient way to save space and present a long list of options in a compact and organized manner.\n *\n * @example How to use it\n * ```html\n * <bq-dropdown placement=\"bottom-start\">\n * <bq-button slot=\"trigger\">Dropdown</bq-button>\n * <bq-option-list>\n * <bq-option value=\"users\">...</bq-option>\n * <bq-option value=\"user\">...</bq-option>\n * <bq-option value=\"dashboard\">...</bq-option>\n * <bq-option value=\"settings\">...</bq-option>\n * <bq-option value=\"logout\">...</bq-option>\n * </bq-option-list>\n * </bq-dropdown>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/47ff4b-dropdown\n * @status stable\n *\n * @dependency bq-panel\n *\n * @attr {boolean} disabled - If true, the dropdown panel will be visible and won't be shown.\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {boolean} keep-open-on-select - If true, the panel will remain open after a selection is made.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {string} panel-height - When set, it will override the height of the dropdown panel.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @event bqOpen - Callback handler to be called when the dropdown panel is opened or closed.\n *\n * @slot trigger - The trigger element that opens the dropdown panel.\n * @slot - The content of the dropdown panel.\n *\n * @part base - The component's internal wrapper.\n * @part dropdown - The `<bq-panel>` element used under the hood to display the dropdown panel.\n * @part panel - The `<div>` element used to display and style the panel inside the `<bq-panel>` element.\n * @part trigger - The `<div>` element that hosts the trigger element.\n *\n * @cssprop --bq-panel--background - Panel background color\n * @cssprop --bq-panel--border-color - Panel border color\n * @cssprop --bq-panel--border-radius - Panel border radius\n * @cssprop --bq-panel--border-style - Panel border style\n * @cssprop --bq-panel--border-width - Panel border width\n * @cssprop --bq-panel--box-shadow - Panel box shadow\n * @cssprop --bq-panel--padding - Panel padding\n * @cssprop --bq-panel--height - Panel height\n * @cssprop --bq-panel--width - Panel width\n * @cssprop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-dropdown',\n styleUrl: './scss/bq-dropdown.scss',\n shadow: true,\n})\nexport class BqDropdown {\n // Own Properties\n // ====================\n\n private dropdownPanelId = `bq-dropdown-panel-${++id}`;\n private triggerElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDropdownElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the dropdown panel will be visible and won't be shown. */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** If true, the panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the dropdown panel */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n onOpenChange() {\n this.bqOpen.emit({ open: this.open });\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n if (!this.triggerElem) return;\n\n // set 'disabled' attribute based on 'this.disabled' value, ensuring consistent state handling\n if (!this.disabled) {\n this.triggerElem?.removeAttribute('disabled');\n return;\n }\n this.triggerElem?.setAttribute('disabled', 'true');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the dropdown panel is opened or closed. */\n @Event() bqOpen: EventEmitter<{ open: boolean }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.triggerElem = this.el.querySelector('[slot=\"trigger\"]');\n this.handleDisabledChange();\n }\n\n // Listeners\n // ==============\n\n /** Listens for the 'click' event on the document object\n * and closes the dropdown panel if the click is outside the component.\n */\n @Listen('click', { target: 'document', passive: true })\n onClickOutside(event: MouseEvent) {\n if (!this.open) return;\n\n // Close when clicking outside of the close element\n const path = event.composedPath();\n if (!path.includes(this.el)) {\n this.open = false;\n }\n }\n\n /**\n * Listens for the 'keyup' event on the window object\n * and closes the dropdown panel if the 'Escape' key or 'Tab' key outside the component is pressed.\n */\n @Listen('keyup', { target: 'window', passive: true })\n onEscape(event: KeyboardEvent) {\n if (!this.open) return;\n\n if (event.key === 'Escape' || (event.key === 'Tab' && !event.composedPath().includes(this.el))) {\n this.open = false;\n }\n }\n\n @Listen('bqSelect', { passive: true })\n onItemSelect() {\n if (this.keepOpenOnSelect) return;\n\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private togglePanel = (): void => {\n // Don't toggle the panel if the component is disabled or the trigger element is disabled\n if (this.disabled || this.triggerElem?.hasAttribute('disabled')) return;\n\n this.open = !this.open;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.panelHeight && { '--bq-panel--height': this.panelHeight }),\n };\n\n return (\n <div class=\"bq-dropdown\" part=\"base\">\n {/* TRIGGER CONTAINER */}\n <div\n class=\"bq-dropdown__trigger block\"\n aria-controls={this.dropdownPanelId}\n aria-haspopup=\"true\"\n onClick={this.togglePanel}\n part=\"trigger\"\n >\n <slot name=\"trigger\" />\n </div>\n {/* PANEL */}\n <bq-panel\n style={style}\n id={this.dropdownPanelId}\n class=\"bq-dropdown__panel\"\n distance={this.distance}\n placement={this.placement}\n open={this.open}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n role=\"group\"\n part=\"dropdown\"\n exportparts=\"panel\"\n >\n <slot />\n </bq-panel>\n </div>\n );\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Panel styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-panel.variables';\n\n:host {\n @apply block;\n}\n\n.bq-panel {\n @include animation-fade-in;\n @apply fixed z-[--bq-panel-z-index] overflow-y-auto overflow-x-hidden is-[--bq-panel--width] max-bs-[--bq-panel--height];\n @apply rounded-[--bq-panel--border-radius] bg-[--bq-panel--background] shadow-[shadow:--bq-panel--box-shadow];\n @apply pe-[--bq-panel--padding-end] ps-[--bq-panel--padding-start] p-b-[--bq-panel--paddingY];\n @apply border-[length:--bq-panel--border-width] border-[color:--bq-panel--border-color];\n\n border-style: var(--bq-panel--border-style);\n}\n","import { ReferenceElement } from '@floating-ui/dom';\nimport { Component, Element, h, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { FloatingUI } from '../../services/libraries';\n\n/**\n * The Panel component is a versatile and essential element used to wrap and display content in a floating panel.\n *\n * @example How to use it\n * ```html\n * <bq-panel open>\n * <div>Panel content</div>\n * </bq-panel>\n * ```\n *\n * @status stable\n *\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @slot - The content of the panel.\n *\n * @part panel - The `<div>` element used to display and style the panel\n *\n * @prop --bq-panel--background - Panel background color\n * @prop --bq-panel--border-color - Panel border color\n * @prop --bq-panel--border-radius - Panel border radius\n * @prop --bq-panel--border-style - Panel border style\n * @prop --bq-panel--border-width - Panel border width\n * @prop --bq-panel--box-shadow - Panel box shadow\n * @prop --bq-panel--padding - Panel padding\n * @prop --bq-panel--height - Panel height\n * @prop --bq-panel--width - Panel width\n * @prop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-panel',\n styleUrl: './scss/bq-panel.scss',\n shadow: true,\n})\nexport class BqPanel {\n // Own Properties\n // ====================\n\n private panel: HTMLElement;\n private floatingUI: FloatingUI;\n private trigger: ReferenceElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqPanelElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n handleOpenChange() {\n if (!this.open) {\n this.hidePanel();\n return;\n }\n\n this.showPanel();\n }\n\n @Watch('distance')\n @Watch('placement')\n @Watch('sameWidth')\n @Watch('skidding')\n @Watch('strategy')\n onPropChange() {\n this.floatingUI?.init({ ...this.options });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n // We need to find the trigger element from the parent to position the panel relative to it.\n const parentTrigger = this.el.parentElement.querySelector('div[part=\"trigger\"]');\n if (!parentTrigger) return;\n\n this.trigger = {\n getBoundingClientRect: () => parentTrigger.getBoundingClientRect(),\n contextElement: parentTrigger,\n };\n\n this.floatingUI = new FloatingUI(this.trigger, this.panel, { ...this.options });\n this.handleOpenChange();\n }\n\n disconnectedCallback() {\n this.floatingUI?.destroy();\n }\n\n // Listeners\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private showPanel() {\n this.floatingUI?.update();\n }\n\n private async hidePanel() {\n this.open = false;\n }\n\n private get options() {\n return {\n distance: this.distance,\n placement: this.placement,\n sameWidth: this.sameWidth,\n skidding: this.skidding,\n strategy: this.strategy,\n };\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div\n class=\"bq-panel\"\n ref={(el) => (this.panel = el)}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open}\n part=\"panel\"\n >\n <slot />\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bq-dropdown.bq-panel.entry.js","mappings":";;;;;;;;;;AAAA,MAAM,aAAa,GAAG,ygmBAAygmB;;ACM/hmB,IAAI,EAAE,GAAG,CAAC;MA6DG,UAAU,GAAA,MAAA;;;;;;;AAIb,IAAA,eAAe,GAAG,CAAA,kBAAA,EAAqB,EAAE,EAAE,EAAE;AAC7C,IAAA,WAAW;;;;;;;;IAeM,iBAAiB,GAAa,KAAK;;IAGnC,QAAQ,GAAa,KAAK;;IAG1B,QAAQ,GAAY,CAAC;;IAGrB,gBAAgB,GAAa,KAAK;;IAGlC,SAAS,GAAe,cAAc;;IAGvB,IAAI,GAAa,KAAK;;AAGrC,IAAA,WAAW;;IAGX,SAAS,GAAa,KAAK;;IAG3B,QAAQ,GAAY,CAAC;;IAGrB,QAAQ,GAA0B,OAAO;;;IAMlE,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;;IAIvC,oBAAoB,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE;;AAGvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,UAAU,CAAC;YAC7C;;QAEF,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC;;;;;;AAQ3C,IAAA,MAAM;;;;IAMf,gBAAgB,GAAA;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAC5D,IAAI,CAAC,oBAAoB,EAAE;;;;IAO7B,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,gBAAgB;YAAE;AAE3B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;AAGnB;;AAEG;AAEH,IAAA,cAAc,CAAC,KAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,2BAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAAE;;AAG/D,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;AAInB,IAAA,QAAQ,CAAC,KAAoB,EAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE;;QAEhB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;AACnG,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;;IAKrB,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB;YAAE;;;;;AAM1C,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;;;;;;;;;;;IAeX,WAAW,GAAG,MAAW;;QAE/B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,UAAU,CAAC;YAAE;AAEjE,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;AACxB,KAAC;;;;IAMD,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;SACpE;AAED,QAAA,QACE,4DAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAA,EAElC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,4BAA4B,mBACnB,IAAI,CAAC,eAAe,EACrB,eAAA,EAAA,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,IAAI,EAAC,SAAS,EAAA,EAEd,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,SAAS,EAAA,CAAG,CACnB,EAEN,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,IAAI,CAAC,eAAe,EACxB,KAAK,EAAC,oBAAoB,EAC1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,UAAU,EACf,WAAW,EAAC,OAAO,EAAA,EAEnB,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACC,CACP;;;;;;;;;AC3PZ,MAAM,UAAU,GAAG,gwqBAAgwqB;;MC8CtwqB,OAAO,GAAA,MAAA;;;;;;AAIV,IAAA,KAAK;AACL,IAAA,UAAU;AACV,IAAA,OAAO;;;;;;;;IAeU,iBAAiB,GAAa,KAAK;;IAGnC,QAAQ,GAAY,CAAC;;IAGrB,SAAS,GAAe,cAAc;;IAGvB,IAAI,GAAa,KAAK;;IAGrC,SAAS,GAAa,KAAK;;IAG3B,QAAQ,GAAY,CAAC;;IAGrB,QAAQ,GAA0B,OAAO;;;IAMlE,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,SAAS,EAAE;YAChB;;QAGF,IAAI,CAAC,SAAS,EAAE;;IAQlB,YAAY,GAAA;QACV,IAAI,CAAC,QAAQ,EAAE;YAAE;AAEjB,QAAA,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;;;;;;;;IAW5C,gBAAgB,GAAA;QACd,IAAI,CAAC,QAAQ,EAAE;YAAE;;AAGjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,CAAC;AAEhF,QAAA,IAAI,CAAC,aAAa;YAAE;QAEpB,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,qBAAqB,EAAE,MAAM,aAAa,CAAC,qBAAqB,EAAE;AAClE,YAAA,cAAc,EAAE,aAAa;SAC9B;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/E,IAAI,CAAC,gBAAgB,EAAE;;IAGzB,oBAAoB,GAAA;QAClB,IAAI,CAAC,QAAQ,EAAE;YAAE;AAEjB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;;QAG1B,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACxC,YAAA,gBAAgB,EAAE;;;;;;;;;;;;;;;IAmBd,SAAS,GAAA;QACf,IAAI,CAAC,QAAQ,EAAE;YAAE;AAEjB,QAAA,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;;AAGzB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC3B,YAAA,cAAc,EAAE;;;AAIZ,IAAA,MAAM,SAAS,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;;QAGjB,IAAI,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACzC,YAAA,gBAAgB,EAAE;;;AAItB,IAAA,IAAY,OAAO,GAAA;QACjB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;;;;;IAOH,MAAM,GAAA;AACJ,QAAA,QACE,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,UAAU,EAChB,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAA,aAAA,EACjB,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,EAC1C,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAClB,IAAI,EAAC,OAAO,EAAA,EAEZ,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;;;;;","names":[],"sources":["../../packages/beeq/src/components/dropdown/scss/bq-dropdown.scss?tag=bq-dropdown&encapsulation=shadow","../../packages/beeq/src/components/dropdown/bq-dropdown.tsx","../../packages/beeq/src/components/panel/scss/bq-panel.scss?tag=bq-panel&encapsulation=shadow","../../packages/beeq/src/components/panel/bq-panel.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Dropdown styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply relative inline-block;\n}\n","import { Component, Element, Event, h, Listen, Prop, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { isEventTargetChildOfElement } from '../../shared/utils';\n\nlet id = 0;\n\n/**\n * The Dropdown Component is commonly used when presenting a list of selectable options that are too numerous to fit comfortably on the screen.\n * They provide an efficient way to save space and present a long list of options in a compact and organized manner.\n *\n * @example How to use it\n * ```html\n * <bq-dropdown placement=\"bottom-start\">\n * <bq-button slot=\"trigger\">Dropdown</bq-button>\n * <bq-option-list>\n * <bq-option value=\"users\">...</bq-option>\n * <bq-option value=\"user\">...</bq-option>\n * <bq-option value=\"dashboard\">...</bq-option>\n * <bq-option value=\"settings\">...</bq-option>\n * <bq-option value=\"logout\">...</bq-option>\n * </bq-option-list>\n * </bq-dropdown>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/47ff4b-dropdown\n * @status stable\n *\n * @dependency bq-panel\n *\n * @attr {boolean} disabled - If true, the dropdown panel will be visible and won't be shown.\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {boolean} keep-open-on-select - If true, the panel will remain open after a selection is made.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {string} panel-height - When set, it will override the height of the dropdown panel.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @event bqOpen - Callback handler to be called when the dropdown panel is opened or closed.\n *\n * @slot trigger - The trigger element that opens the dropdown panel.\n * @slot - The content of the dropdown panel.\n *\n * @part base - The component's internal wrapper.\n * @part dropdown - The `<bq-panel>` element used under the hood to display the dropdown panel.\n * @part panel - The `<div>` element used to display and style the panel inside the `<bq-panel>` element.\n * @part trigger - The `<div>` element that hosts the trigger element.\n *\n * @cssprop --bq-panel--background - Panel background color\n * @cssprop --bq-panel--border-color - Panel border color\n * @cssprop --bq-panel--border-radius - Panel border radius\n * @cssprop --bq-panel--border-style - Panel border style\n * @cssprop --bq-panel--border-width - Panel border width\n * @cssprop --bq-panel--box-shadow - Panel box shadow\n * @cssprop --bq-panel--padding - Panel padding\n * @cssprop --bq-panel--height - Panel height\n * @cssprop --bq-panel--width - Panel width\n * @cssprop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-dropdown',\n styleUrl: './scss/bq-dropdown.scss',\n shadow: true,\n})\nexport class BqDropdown {\n // Own Properties\n // ====================\n\n private dropdownPanelId = `bq-dropdown-panel-${++id}`;\n private triggerElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDropdownElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the dropdown panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /** If true, the dropdown panel will be visible and won't be shown. */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** If true, the panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the dropdown panel */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n onOpenChange() {\n this.bqOpen.emit({ open: this.open });\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n if (!this.triggerElem) return;\n\n // set 'disabled' attribute based on 'this.disabled' value, ensuring consistent state handling\n if (!this.disabled) {\n this.triggerElem?.removeAttribute('disabled');\n return;\n }\n this.triggerElem?.setAttribute('disabled', 'true');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the dropdown panel is opened or closed. */\n @Event() bqOpen: EventEmitter<{ open: boolean }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.triggerElem = this.el.querySelector('[slot=\"trigger\"]');\n this.handleDisabledChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqSelect', { passive: true })\n onItemSelect() {\n if (this.keepOpenOnSelect) return;\n\n this.open = false;\n }\n\n /** Listens for the 'click' event on the document object\n * and closes the dropdown panel if the click is outside the component.\n */\n @Listen('click', { target: 'document', passive: true })\n onClickOutside(event: MouseEvent) {\n if (!this.open || isEventTargetChildOfElement(event, this.el)) return;\n\n // Close when clicking outside of the close element\n this.open = false;\n }\n\n @Listen('keyup', { target: 'window', passive: true })\n onEscape(event: KeyboardEvent) {\n if (!this.open) return;\n // Close the panel when pressing Escape or when pressing Tab and the component loses focus.\n if (event.key === 'Escape' || (event.key === 'Tab' && !isEventTargetChildOfElement(event, this.el))) {\n this.open = false;\n }\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private togglePanel = (): void => {\n // Don't toggle the panel if the component is disabled or the trigger element is disabled\n if (this.disabled || this.triggerElem?.hasAttribute('disabled')) return;\n\n this.open = !this.open;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.panelHeight && { '--bq-panel--height': this.panelHeight }),\n };\n\n return (\n <div class=\"bq-dropdown\" part=\"base\">\n {/* TRIGGER CONTAINER */}\n <div\n class=\"bq-dropdown__trigger block\"\n aria-controls={this.dropdownPanelId}\n aria-haspopup=\"true\"\n onClick={this.togglePanel}\n part=\"trigger\"\n >\n <slot name=\"trigger\" />\n </div>\n {/* PANEL */}\n <bq-panel\n style={style}\n id={this.dropdownPanelId}\n class=\"bq-dropdown__panel\"\n disableScrollLock={this.disableScrollLock}\n distance={this.distance}\n placement={this.placement}\n open={this.open}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n role=\"group\"\n part=\"dropdown\"\n exportparts=\"panel\"\n >\n <slot />\n </bq-panel>\n </div>\n );\n }\n}\n","/* -------------------------------------------------------------------------- */\n/* Panel styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-panel.variables';\n\n:host {\n @apply block;\n}\n\n.bq-panel {\n @include animation-fade-in;\n @apply fixed z-[--bq-panel-z-index] overflow-y-auto overflow-x-hidden is-[--bq-panel--width] max-bs-[--bq-panel--height];\n @apply rounded-[--bq-panel--border-radius] bg-[--bq-panel--background] shadow-[shadow:--bq-panel--box-shadow];\n @apply pe-[--bq-panel--padding-end] ps-[--bq-panel--padding-start] p-b-[--bq-panel--paddingY];\n @apply border-[length:--bq-panel--border-width] border-[color:--bq-panel--border-color];\n\n border-style: var(--bq-panel--border-style);\n}\n","import { ReferenceElement } from '@floating-ui/dom';\nimport { Component, Element, h, Prop, Watch } from '@stencil/core';\n\nimport type { Placement } from '../../services/interfaces';\nimport { FloatingUI } from '../../services/libraries';\nimport { isClient, lockBodyScroll, unlockBodyScroll } from '../../shared/utils';\n\n/**\n * The Panel component is a versatile and essential element used to wrap and display content in a floating panel.\n *\n * @example How to use it\n * ```html\n * <bq-panel open>\n * <div>Panel content</div>\n * </bq-panel>\n * ```\n *\n * @status stable\n *\n * @attr {number} distance - Represents the distance (gutter or margin) between the panel and the trigger element.\n * @attr {\"top\" | \"bottom\" | \"left\" | \"right\" | \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\"} placement - Position of the panel.\n * @attr {boolean} open - If true, the panel will be visible.\n * @attr {boolean} same-width - Whether the panel should have the same width as the trigger element.\n * @attr {number} skidding - Represents the skidding between the panel and the trigger element.\n * @attr {\"fixed\" | \"absolute\"} strategy - Defines the strategy to position the panel.\n *\n * @slot - The content of the panel.\n *\n * @part panel - The `<div>` element used to display and style the panel\n *\n * @prop --bq-panel--background - Panel background color\n * @prop --bq-panel--border-color - Panel border color\n * @prop --bq-panel--border-radius - Panel border radius\n * @prop --bq-panel--border-style - Panel border style\n * @prop --bq-panel--border-width - Panel border width\n * @prop --bq-panel--box-shadow - Panel box shadow\n * @prop --bq-panel--padding - Panel padding\n * @prop --bq-panel--height - Panel height\n * @prop --bq-panel--width - Panel width\n * @prop --bq-panel-z-index - Panel z-index applied when opened\n */\n@Component({\n tag: 'bq-panel',\n styleUrl: './scss/bq-panel.scss',\n shadow: true,\n})\nexport class BqPanel {\n // Own Properties\n // ====================\n\n private panel: HTMLElement;\n private floatingUI: FloatingUI;\n private trigger: ReferenceElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqPanelElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, the panel will not lock the page body scroll when open. */\n @Prop({ reflect: true }) disableScrollLock?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the panel and the trigger element. */\n @Prop({ reflect: true }) distance?: number = 4;\n\n /** Position of the panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-start';\n\n /** If true, the panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** Whether the panel should have the same width as the trigger element */\n @Prop({ reflect: true }) sameWidth?: boolean = false;\n\n /** Represents the skidding between the panel and the trigger element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('open')\n handleOpenChange() {\n if (!this.open) {\n this.hidePanel();\n return;\n }\n\n this.showPanel();\n }\n\n @Watch('distance')\n @Watch('placement')\n @Watch('sameWidth')\n @Watch('skidding')\n @Watch('strategy')\n onPropChange() {\n if (!isClient()) return;\n\n this.floatingUI?.init({ ...this.options });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n if (!isClient()) return;\n\n // We need to find the trigger element from the parent to position the panel relative to it.\n const parentTrigger = this.el.parentElement.querySelector('div[part=\"trigger\"]');\n\n if (!parentTrigger) return;\n\n this.trigger = {\n getBoundingClientRect: () => parentTrigger.getBoundingClientRect(),\n contextElement: parentTrigger,\n };\n\n this.floatingUI = new FloatingUI(this.trigger, this.panel, { ...this.options });\n this.handleOpenChange();\n }\n\n disconnectedCallback() {\n if (!isClient()) return;\n\n this.floatingUI?.destroy();\n\n // Ensure scroll lock is removed if the component is disconnected while the panel is open.\n if (this.open && !this.disableScrollLock) {\n unlockBodyScroll();\n }\n }\n\n // Listeners\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private showPanel() {\n if (!isClient()) return;\n\n this.floatingUI?.update();\n\n // Lock the body scroll if the disableScrollLock prop is not true.\n if (!this.disableScrollLock) {\n lockBodyScroll();\n }\n }\n\n private async hidePanel() {\n this.open = false;\n\n // Unlock the body scroll if the disableScrollLock prop is not true.\n if (isClient() && !this.disableScrollLock) {\n unlockBodyScroll();\n }\n }\n\n private get options() {\n return {\n distance: this.distance,\n placement: this.placement,\n sameWidth: this.sameWidth,\n skidding: this.skidding,\n strategy: this.strategy,\n };\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div\n class=\"bq-panel\"\n ref={(el) => (this.panel = el)}\n aria-hidden={!this.open ? 'true' : 'false'}\n hidden={!this.open}\n part=\"panel\"\n >\n <slot />\n </div>\n );\n }\n}\n"],"version":3}