@beeq/core 1.6.1 → 1.8.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 (469) 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/index.esm.js +1 -1
  5. package/dist/beeq/{p-c51f0165.entry.js → p-235328ee.entry.js} +2 -2
  6. package/dist/beeq/{p-aed662aa.entry.js → p-255fcbe4.entry.js} +2 -2
  7. package/dist/beeq/{p-aed662aa.entry.js.map → p-255fcbe4.entry.js.map} +1 -1
  8. package/dist/beeq/{p-9704f9ca.entry.js → p-268dc1e3.entry.js} +2 -2
  9. package/dist/beeq/{p-9704f9ca.entry.js.map → p-268dc1e3.entry.js.map} +1 -1
  10. package/dist/beeq/p-38d4bd8a.js +6 -0
  11. package/dist/beeq/p-38d4bd8a.js.map +1 -0
  12. package/dist/beeq/{p-d5523943.entry.js → p-3aa41d80.entry.js} +2 -2
  13. package/dist/beeq/{p-d5523943.entry.js.map → p-3aa41d80.entry.js.map} +1 -1
  14. package/dist/beeq/{p-50dd8873.entry.js → p-3b2ce34b.entry.js} +2 -2
  15. package/dist/beeq/{p-50dd8873.entry.js.map → p-3b2ce34b.entry.js.map} +1 -1
  16. package/dist/beeq/p-3fd0d92d.js.map +1 -1
  17. package/dist/beeq/{p-60446fb6.entry.js → p-41bac721.entry.js} +2 -2
  18. package/dist/beeq/{p-60446fb6.entry.js.map → p-41bac721.entry.js.map} +1 -1
  19. package/dist/beeq/p-4739f5c3.entry.js +6 -0
  20. package/dist/beeq/{p-76e1659f.entry.js.map → p-4739f5c3.entry.js.map} +1 -1
  21. package/dist/beeq/{p-6bdb3bc8.entry.js → p-4ba2bec7.entry.js} +2 -2
  22. package/dist/beeq/{p-6bdb3bc8.entry.js.map → p-4ba2bec7.entry.js.map} +1 -1
  23. package/dist/beeq/p-52577f3a.entry.js +6 -0
  24. package/dist/beeq/{p-91db6d29.entry.js.map → p-52577f3a.entry.js.map} +1 -1
  25. package/dist/beeq/{p-cd244c61.entry.js → p-571b40ff.entry.js} +2 -2
  26. package/dist/beeq/{p-cd244c61.entry.js.map → p-571b40ff.entry.js.map} +1 -1
  27. package/dist/beeq/{p-5cbdfc4c.entry.js → p-606c080c.entry.js} +2 -2
  28. package/dist/beeq/{p-5cbdfc4c.entry.js.map → p-606c080c.entry.js.map} +1 -1
  29. package/dist/beeq/{p-13be15a8.entry.js → p-633319f3.entry.js} +2 -2
  30. package/dist/beeq/{p-13be15a8.entry.js.map → p-633319f3.entry.js.map} +1 -1
  31. package/dist/beeq/p-63ad9702.entry.js +6 -0
  32. package/dist/beeq/p-63ad9702.entry.js.map +1 -0
  33. package/dist/beeq/{p-a7e1fec8.entry.js → p-6e026fad.entry.js} +2 -2
  34. package/dist/beeq/{p-a7e1fec8.entry.js.map → p-6e026fad.entry.js.map} +1 -1
  35. package/dist/beeq/{p-da31e531.js → p-6edc8a33.js} +2 -2
  36. package/dist/beeq/{p-da31e531.js.map → p-6edc8a33.js.map} +1 -1
  37. package/dist/beeq/p-76e714c6.js +7 -0
  38. package/dist/beeq/p-76e714c6.js.map +1 -0
  39. package/dist/beeq/p-79b7547b.entry.js +6 -0
  40. package/dist/beeq/{p-68fd8637.entry.js.map → p-79b7547b.entry.js.map} +1 -1
  41. package/dist/beeq/p-7f23cde7.entry.js +6 -0
  42. package/dist/beeq/{p-200dfdc6.entry.js.map → p-7f23cde7.entry.js.map} +1 -1
  43. package/dist/beeq/{p-30e5d01e.entry.js → p-8059836c.entry.js} +2 -2
  44. package/dist/beeq/{p-30e5d01e.entry.js.map → p-8059836c.entry.js.map} +1 -1
  45. package/dist/beeq/p-8b7c7049.entry.js +6 -0
  46. package/dist/beeq/p-8b7c7049.entry.js.map +1 -0
  47. package/dist/beeq/{p-a4ad6be7.entry.js → p-90c5851d.entry.js} +2 -2
  48. package/dist/beeq/{p-a4ad6be7.entry.js.map → p-90c5851d.entry.js.map} +1 -1
  49. package/dist/beeq/{p-95baffb3.entry.js → p-94d62f1b.entry.js} +2 -2
  50. package/dist/beeq/{p-95baffb3.entry.js.map → p-94d62f1b.entry.js.map} +1 -1
  51. package/dist/beeq/{p-3a4ec8c2.entry.js → p-96d7f361.entry.js} +2 -2
  52. package/dist/beeq/{p-3a4ec8c2.entry.js.map → p-96d7f361.entry.js.map} +1 -1
  53. package/dist/beeq/p-9acfedb8.entry.js +6 -0
  54. package/dist/beeq/p-9acfedb8.entry.js.map +1 -0
  55. package/dist/beeq/p-9c6c6646.entry.js +6 -0
  56. package/dist/beeq/p-9c6c6646.entry.js.map +1 -0
  57. package/dist/beeq/{p-b53be9dd.entry.js → p-9cd26e8d.entry.js} +2 -2
  58. package/dist/beeq/{p-b53be9dd.entry.js.map → p-9cd26e8d.entry.js.map} +1 -1
  59. package/dist/beeq/{p-8450556c.entry.js → p-9f40249f.entry.js} +2 -2
  60. package/dist/beeq/{p-1d0c1bea.entry.js → p-a006be9e.entry.js} +2 -2
  61. package/dist/beeq/{p-1d0c1bea.entry.js.map → p-a006be9e.entry.js.map} +1 -1
  62. package/dist/beeq/{p-d66a1b57.entry.js → p-a7b0fd0b.entry.js} +2 -2
  63. package/dist/beeq/{p-d66a1b57.entry.js.map → p-a7b0fd0b.entry.js.map} +1 -1
  64. package/dist/beeq/p-a8cb8989.entry.js +6 -0
  65. package/dist/beeq/p-a8cb8989.entry.js.map +1 -0
  66. package/dist/beeq/{p-29e54a2f.entry.js → p-ae8ffb81.entry.js} +2 -2
  67. package/dist/beeq/{p-f33d1c98.js → p-aee056e5.js} +2 -2
  68. package/dist/beeq/p-af062402.js +6 -0
  69. package/dist/beeq/p-af062402.js.map +1 -0
  70. package/dist/beeq/{p-90838ab1.entry.js → p-b7281046.entry.js} +2 -2
  71. package/dist/beeq/{p-6decf071.entry.js → p-b90c6de9.entry.js} +2 -2
  72. package/dist/beeq/{p-ec0e428a.entry.js → p-b9544567.entry.js} +2 -2
  73. package/dist/beeq/p-b9544567.entry.js.map +1 -0
  74. package/dist/beeq/{p-e116f3e7.entry.js → p-be664fb0.entry.js} +2 -2
  75. package/dist/beeq/{p-85ec14c6.entry.js → p-c9c942e6.entry.js} +2 -2
  76. package/dist/beeq/{p-85ec14c6.entry.js.map → p-c9c942e6.entry.js.map} +1 -1
  77. package/dist/beeq/{p-23b51f25.entry.js → p-d2bbae3b.entry.js} +2 -2
  78. package/dist/beeq/p-d2bbae3b.entry.js.map +1 -0
  79. package/dist/beeq/p-ddb23180.entry.js +6 -0
  80. package/dist/beeq/{p-964825fa.entry.js.map → p-ddb23180.entry.js.map} +1 -1
  81. package/dist/beeq/{p-483de184.entry.js → p-e6382462.entry.js} +2 -2
  82. package/dist/beeq/{p-483de184.entry.js.map → p-e6382462.entry.js.map} +1 -1
  83. package/dist/beeq/{p-51087b73.entry.js → p-eab59153.entry.js} +2 -2
  84. package/dist/beeq/{p-51087b73.entry.js.map → p-eab59153.entry.js.map} +1 -1
  85. package/dist/beeq/{p-c4273f70.entry.js → p-eddb77c7.entry.js} +2 -2
  86. package/dist/beeq/{p-c4273f70.entry.js.map → p-eddb77c7.entry.js.map} +1 -1
  87. package/dist/cjs/app-globals-b11284b9.js.map +1 -1
  88. package/dist/cjs/{assetsPath-11934549.js → assetsPath-eac0a3bf.js} +2 -2
  89. package/dist/cjs/assetsPath-eac0a3bf.js.map +1 -0
  90. package/dist/cjs/beeq.cjs.js +3 -3
  91. package/dist/cjs/beeq.cjs.js.map +1 -1
  92. package/dist/cjs/bq-accordion-group.cjs.entry.js +2 -2
  93. package/dist/cjs/bq-accordion.cjs.entry.js +3 -3
  94. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  95. package/dist/cjs/bq-alert.cjs.entry.js +3 -3
  96. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  97. package/dist/cjs/bq-avatar.cjs.entry.js +3 -3
  98. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  99. package/dist/cjs/bq-badge.cjs.entry.js +3 -3
  100. package/dist/cjs/bq-badge.cjs.entry.js.map +1 -1
  101. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +3 -3
  102. package/dist/cjs/bq-breadcrumb.cjs.entry.js +2 -2
  103. package/dist/cjs/bq-button_2.cjs.entry.js +62 -52
  104. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  105. package/dist/cjs/bq-card.cjs.entry.js +3 -3
  106. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  107. package/dist/cjs/bq-checkbox.cjs.entry.js +58 -7
  108. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  109. package/dist/cjs/bq-date-picker.cjs.entry.js +4 -4
  110. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  111. package/dist/cjs/bq-dialog.cjs.entry.js +3 -3
  112. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  113. package/dist/cjs/bq-divider.cjs.entry.js +3 -3
  114. package/dist/cjs/bq-divider.cjs.entry.js.map +1 -1
  115. package/dist/cjs/bq-drawer.cjs.entry.js +13 -13
  116. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  117. package/dist/cjs/bq-dropdown_2.cjs.entry.js +4 -4
  118. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
  119. package/dist/cjs/bq-empty-state.cjs.entry.js +3 -3
  120. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  121. package/dist/cjs/bq-input.cjs.entry.js +44 -17
  122. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  123. package/dist/cjs/bq-notification.cjs.entry.js +3 -3
  124. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  125. package/dist/cjs/bq-option-group.cjs.entry.js +2 -2
  126. package/dist/cjs/bq-option-list_2.cjs.entry.js +6 -6
  127. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  128. package/dist/cjs/bq-option.cjs.entry.js +3 -3
  129. package/dist/cjs/bq-option.cjs.entry.js.map +1 -1
  130. package/dist/cjs/bq-page-title.cjs.entry.js +2 -2
  131. package/dist/cjs/bq-progress.cjs.entry.js +3 -3
  132. package/dist/cjs/bq-radio-group.cjs.entry.js +3 -3
  133. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  134. package/dist/cjs/bq-radio.cjs.entry.js +2 -2
  135. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  136. package/dist/cjs/bq-select.cjs.entry.js +76 -28
  137. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  138. package/dist/cjs/bq-side-menu-item.cjs.entry.js +3 -3
  139. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  140. package/dist/cjs/bq-side-menu.cjs.entry.js +3 -3
  141. package/dist/cjs/bq-side-menu.cjs.entry.js.map +1 -1
  142. package/dist/cjs/bq-slider.cjs.entry.js +3 -3
  143. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  144. package/dist/cjs/bq-spinner.cjs.entry.js +3 -3
  145. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  146. package/dist/cjs/bq-status.cjs.entry.js +4 -4
  147. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  148. package/dist/cjs/bq-step-item.cjs.entry.js +3 -3
  149. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  150. package/dist/cjs/bq-steps.cjs.entry.js +4 -4
  151. package/dist/cjs/bq-steps.cjs.entry.js.map +1 -1
  152. package/dist/cjs/bq-switch.cjs.entry.js +3 -3
  153. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  154. package/dist/cjs/bq-tab-group.cjs.entry.js +32 -16
  155. package/dist/cjs/bq-tab-group.cjs.entry.js.map +1 -1
  156. package/dist/cjs/bq-tab.cjs.entry.js +14 -8
  157. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  158. package/dist/cjs/bq-tab.types-a8b320b0.js +15 -0
  159. package/dist/cjs/bq-tab.types-a8b320b0.js.map +1 -0
  160. package/dist/cjs/bq-textarea.cjs.entry.js +6 -6
  161. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  162. package/dist/cjs/bq-toast.cjs.entry.js +4 -4
  163. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  164. package/dist/cjs/bq-tooltip.cjs.entry.js +4 -4
  165. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  166. package/dist/cjs/{index-a09d1c08.js → index-e4c116b6.js} +12 -9
  167. package/dist/cjs/index-e4c116b6.js.map +1 -0
  168. package/dist/cjs/{index-ec84f14a.js → index-e6d59dbb.js} +68 -31
  169. package/dist/cjs/index-e6d59dbb.js.map +1 -0
  170. package/dist/cjs/index.cjs.js +2 -2
  171. package/dist/cjs/{isDefined-c4073e46.js → isDefined-4f4a320b.js} +2 -2
  172. package/dist/cjs/{isDefined-c4073e46.js.map → isDefined-4f4a320b.js.map} +1 -1
  173. package/dist/cjs/loader.cjs.js +2 -2
  174. package/dist/collection/collection-manifest.json +2 -2
  175. package/dist/collection/components/accordion/scss/bq-accordion.css +1 -1
  176. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  177. package/dist/collection/components/avatar/scss/bq-avatar.css +1 -1
  178. package/dist/collection/components/badge/scss/bq-badge.css +1 -1
  179. package/dist/collection/components/button/scss/bq-button.css +1 -1
  180. package/dist/collection/components/card/scss/bq-card.css +1 -1
  181. package/dist/collection/components/checkbox/bq-checkbox.js +67 -3
  182. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  183. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  184. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  185. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  186. package/dist/collection/components/divider/scss/bq-divider.css +1 -1
  187. package/dist/collection/components/drawer/bq-drawer.js +12 -10
  188. package/dist/collection/components/drawer/bq-drawer.js.map +1 -1
  189. package/dist/collection/components/drawer/bq-drawer.types.js +1 -1
  190. package/dist/collection/components/drawer/bq-drawer.types.js.map +1 -1
  191. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  192. package/dist/collection/components/dropdown/scss/bq-dropdown.css +1 -1
  193. package/dist/collection/components/empty-state/scss/bq-empty-state.css +1 -1
  194. package/dist/collection/components/icon/bq-icon.js +42 -33
  195. package/dist/collection/components/icon/bq-icon.js.map +1 -1
  196. package/dist/collection/components/icon/bq-icon.types.js +1 -0
  197. package/dist/collection/components/icon/bq-icon.types.js.map +1 -1
  198. package/dist/collection/components/icon/helper/request.js +23 -19
  199. package/dist/collection/components/icon/helper/request.js.map +1 -1
  200. package/dist/collection/components/icon/scss/bq-icon.css +1 -1
  201. package/dist/collection/components/input/bq-input.js +34 -13
  202. package/dist/collection/components/input/bq-input.js.map +1 -1
  203. package/dist/collection/components/input/scss/bq-input.css +1 -1
  204. package/dist/collection/components/notification/scss/bq-notification.css +1 -1
  205. package/dist/collection/components/option/scss/bq-option.css +1 -1
  206. package/dist/collection/components/option-group/scss/bq-option-group.css +1 -1
  207. package/dist/collection/components/panel/scss/bq-panel.css +1 -1
  208. package/dist/collection/components/progress/scss/bq-progress.css +1 -1
  209. package/dist/collection/components/radio/scss/bq-radio.css +1 -1
  210. package/dist/collection/components/radio-group/scss/bq-radio-group.css +1 -1
  211. package/dist/collection/components/select/bq-select.js +68 -26
  212. package/dist/collection/components/select/bq-select.js.map +1 -1
  213. package/dist/collection/components/select/scss/bq-select.css +1 -1
  214. package/dist/collection/components/side-menu/scss/bq-side-menu.css +1 -1
  215. package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
  216. package/dist/collection/components/slider/scss/bq-slider.css +1 -1
  217. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  218. package/dist/collection/components/status/bq-status.js +1 -1
  219. package/dist/collection/components/status/bq-status.js.map +1 -1
  220. package/dist/collection/components/status/scss/bq-status.css +1 -1
  221. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  222. package/dist/collection/components/steps/bq-steps.js +1 -1
  223. package/dist/collection/components/steps/bq-steps.js.map +1 -1
  224. package/dist/collection/components/steps/scss/bq-steps.css +1 -1
  225. package/dist/collection/components/switch/scss/bq-switch.css +1 -1
  226. package/dist/collection/components/tab/bq-tab.js +62 -4
  227. package/dist/collection/components/tab/bq-tab.js.map +1 -1
  228. package/dist/collection/components/tab/bq-tab.types.js +2 -0
  229. package/dist/collection/components/tab/bq-tab.types.js.map +1 -1
  230. package/dist/collection/components/tab/scss/bq-tab.css +1 -1
  231. package/dist/collection/components/tab-group/bq-tab-group.js +81 -14
  232. package/dist/collection/components/tab-group/bq-tab-group.js.map +1 -1
  233. package/dist/collection/components/tab-group/scss/bq-tab-group.css +1 -1
  234. package/dist/collection/components/tag/bq-tag.js +3 -3
  235. package/dist/collection/components/tag/scss/bq-tag.css +1 -1
  236. package/dist/collection/components/textarea/bq-textarea.js +3 -3
  237. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  238. package/dist/collection/components/toast/bq-toast.js +1 -1
  239. package/dist/collection/components/toast/scss/bq-toast.css +1 -1
  240. package/dist/collection/components/tooltip/bq-tooltip.js +1 -1
  241. package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
  242. package/dist/collection/shared/utils/assetsPath.js +1 -1
  243. package/dist/collection/shared/utils/assetsPath.js.map +1 -1
  244. package/dist/components/assetsPath.js +1 -1
  245. package/dist/components/assetsPath.js.map +1 -1
  246. package/dist/components/bq-accordion.js +1 -1
  247. package/dist/components/bq-accordion.js.map +1 -1
  248. package/dist/components/bq-alert.js +1 -1
  249. package/dist/components/bq-alert.js.map +1 -1
  250. package/dist/components/bq-avatar.js +1 -1
  251. package/dist/components/bq-avatar.js.map +1 -1
  252. package/dist/components/bq-badge2.js +1 -1
  253. package/dist/components/bq-badge2.js.map +1 -1
  254. package/dist/components/bq-button2.js +1 -1
  255. package/dist/components/bq-button2.js.map +1 -1
  256. package/dist/components/bq-card.js +1 -1
  257. package/dist/components/bq-card.js.map +1 -1
  258. package/dist/components/bq-checkbox.js +54 -7
  259. package/dist/components/bq-checkbox.js.map +1 -1
  260. package/dist/components/bq-date-picker.js +1 -1
  261. package/dist/components/bq-date-picker.js.map +1 -1
  262. package/dist/components/bq-dialog.js +1 -1
  263. package/dist/components/bq-dialog.js.map +1 -1
  264. package/dist/components/bq-divider2.js +1 -1
  265. package/dist/components/bq-divider2.js.map +1 -1
  266. package/dist/components/bq-drawer.js +11 -11
  267. package/dist/components/bq-drawer.js.map +1 -1
  268. package/dist/components/bq-dropdown2.js +1 -1
  269. package/dist/components/bq-dropdown2.js.map +1 -1
  270. package/dist/components/bq-empty-state.js +1 -1
  271. package/dist/components/bq-empty-state.js.map +1 -1
  272. package/dist/components/bq-icon2.js +60 -49
  273. package/dist/components/bq-icon2.js.map +1 -1
  274. package/dist/components/bq-input.js +36 -14
  275. package/dist/components/bq-input.js.map +1 -1
  276. package/dist/components/bq-notification.js +1 -1
  277. package/dist/components/bq-notification.js.map +1 -1
  278. package/dist/components/bq-option-group.js +1 -1
  279. package/dist/components/bq-option.js +1 -1
  280. package/dist/components/bq-option.js.map +1 -1
  281. package/dist/components/bq-panel2.js +1 -1
  282. package/dist/components/bq-panel2.js.map +1 -1
  283. package/dist/components/bq-progress.js +1 -1
  284. package/dist/components/bq-radio-group.js +1 -1
  285. package/dist/components/bq-radio-group.js.map +1 -1
  286. package/dist/components/bq-radio.js +1 -1
  287. package/dist/components/bq-radio.js.map +1 -1
  288. package/dist/components/bq-select.js +68 -25
  289. package/dist/components/bq-select.js.map +1 -1
  290. package/dist/components/bq-side-menu-item.js +1 -1
  291. package/dist/components/bq-side-menu-item.js.map +1 -1
  292. package/dist/components/bq-side-menu.js +1 -1
  293. package/dist/components/bq-side-menu.js.map +1 -1
  294. package/dist/components/bq-slider.js +1 -1
  295. package/dist/components/bq-slider.js.map +1 -1
  296. package/dist/components/bq-spinner.js +1 -1
  297. package/dist/components/bq-spinner.js.map +1 -1
  298. package/dist/components/bq-status.js +2 -2
  299. package/dist/components/bq-status.js.map +1 -1
  300. package/dist/components/bq-step-item.js +1 -1
  301. package/dist/components/bq-step-item.js.map +1 -1
  302. package/dist/components/bq-steps.js +2 -2
  303. package/dist/components/bq-steps.js.map +1 -1
  304. package/dist/components/bq-switch.js +1 -1
  305. package/dist/components/bq-switch.js.map +1 -1
  306. package/dist/components/bq-tab-group.js +36 -16
  307. package/dist/components/bq-tab-group.js.map +1 -1
  308. package/dist/components/bq-tab.js +17 -7
  309. package/dist/components/bq-tab.js.map +1 -1
  310. package/dist/components/bq-tab.types.js +3 -1
  311. package/dist/components/bq-tab.types.js.map +1 -1
  312. package/dist/components/bq-tag2.js +4 -4
  313. package/dist/components/bq-tag2.js.map +1 -1
  314. package/dist/components/bq-textarea.js +4 -4
  315. package/dist/components/bq-textarea.js.map +1 -1
  316. package/dist/components/bq-toast.js +2 -2
  317. package/dist/components/bq-toast.js.map +1 -1
  318. package/dist/components/bq-tooltip2.js +2 -2
  319. package/dist/components/bq-tooltip2.js.map +1 -1
  320. package/dist/components/index2.js +11 -8
  321. package/dist/components/index2.js.map +1 -1
  322. package/dist/esm/app-globals-de5a646b.js.map +1 -1
  323. package/dist/esm/{assetsPath-4b5ef75f.js → assetsPath-ae18c25e.js} +2 -2
  324. package/dist/esm/assetsPath-ae18c25e.js.map +1 -0
  325. package/dist/esm/beeq.js +4 -4
  326. package/dist/esm/beeq.js.map +1 -1
  327. package/dist/esm/bq-accordion-group.entry.js +2 -2
  328. package/dist/esm/bq-accordion.entry.js +3 -3
  329. package/dist/esm/bq-accordion.entry.js.map +1 -1
  330. package/dist/esm/bq-alert.entry.js +3 -3
  331. package/dist/esm/bq-alert.entry.js.map +1 -1
  332. package/dist/esm/bq-avatar.entry.js +3 -3
  333. package/dist/esm/bq-avatar.entry.js.map +1 -1
  334. package/dist/esm/bq-badge.entry.js +3 -3
  335. package/dist/esm/bq-badge.entry.js.map +1 -1
  336. package/dist/esm/bq-breadcrumb-item.entry.js +3 -3
  337. package/dist/esm/bq-breadcrumb.entry.js +2 -2
  338. package/dist/esm/bq-button_2.entry.js +62 -52
  339. package/dist/esm/bq-button_2.entry.js.map +1 -1
  340. package/dist/esm/bq-card.entry.js +3 -3
  341. package/dist/esm/bq-card.entry.js.map +1 -1
  342. package/dist/esm/bq-checkbox.entry.js +58 -7
  343. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  344. package/dist/esm/bq-date-picker.entry.js +4 -4
  345. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  346. package/dist/esm/bq-dialog.entry.js +3 -3
  347. package/dist/esm/bq-dialog.entry.js.map +1 -1
  348. package/dist/esm/bq-divider.entry.js +3 -3
  349. package/dist/esm/bq-divider.entry.js.map +1 -1
  350. package/dist/esm/bq-drawer.entry.js +13 -13
  351. package/dist/esm/bq-drawer.entry.js.map +1 -1
  352. package/dist/esm/bq-dropdown_2.entry.js +4 -4
  353. package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
  354. package/dist/esm/bq-empty-state.entry.js +3 -3
  355. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  356. package/dist/esm/bq-input.entry.js +44 -17
  357. package/dist/esm/bq-input.entry.js.map +1 -1
  358. package/dist/esm/bq-notification.entry.js +3 -3
  359. package/dist/esm/bq-notification.entry.js.map +1 -1
  360. package/dist/esm/bq-option-group.entry.js +2 -2
  361. package/dist/esm/bq-option-list_2.entry.js +6 -6
  362. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  363. package/dist/esm/bq-option.entry.js +3 -3
  364. package/dist/esm/bq-option.entry.js.map +1 -1
  365. package/dist/esm/bq-page-title.entry.js +2 -2
  366. package/dist/esm/bq-progress.entry.js +3 -3
  367. package/dist/esm/bq-radio-group.entry.js +3 -3
  368. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  369. package/dist/esm/bq-radio.entry.js +2 -2
  370. package/dist/esm/bq-radio.entry.js.map +1 -1
  371. package/dist/esm/bq-select.entry.js +76 -28
  372. package/dist/esm/bq-select.entry.js.map +1 -1
  373. package/dist/esm/bq-side-menu-item.entry.js +3 -3
  374. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  375. package/dist/esm/bq-side-menu.entry.js +3 -3
  376. package/dist/esm/bq-side-menu.entry.js.map +1 -1
  377. package/dist/esm/bq-slider.entry.js +3 -3
  378. package/dist/esm/bq-slider.entry.js.map +1 -1
  379. package/dist/esm/bq-spinner.entry.js +3 -3
  380. package/dist/esm/bq-spinner.entry.js.map +1 -1
  381. package/dist/esm/bq-status.entry.js +4 -4
  382. package/dist/esm/bq-status.entry.js.map +1 -1
  383. package/dist/esm/bq-step-item.entry.js +3 -3
  384. package/dist/esm/bq-step-item.entry.js.map +1 -1
  385. package/dist/esm/bq-steps.entry.js +4 -4
  386. package/dist/esm/bq-steps.entry.js.map +1 -1
  387. package/dist/esm/bq-switch.entry.js +3 -3
  388. package/dist/esm/bq-switch.entry.js.map +1 -1
  389. package/dist/esm/bq-tab-group.entry.js +32 -16
  390. package/dist/esm/bq-tab-group.entry.js.map +1 -1
  391. package/dist/esm/bq-tab.entry.js +14 -8
  392. package/dist/esm/bq-tab.entry.js.map +1 -1
  393. package/dist/esm/bq-tab.types-36e2666e.js +11 -0
  394. package/dist/esm/bq-tab.types-36e2666e.js.map +1 -0
  395. package/dist/esm/bq-textarea.entry.js +6 -6
  396. package/dist/esm/bq-textarea.entry.js.map +1 -1
  397. package/dist/esm/bq-toast.entry.js +4 -4
  398. package/dist/esm/bq-toast.entry.js.map +1 -1
  399. package/dist/esm/bq-tooltip.entry.js +4 -4
  400. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  401. package/dist/esm/{index-138f308e.js → index-136429a6.js} +12 -9
  402. package/dist/esm/index-136429a6.js.map +1 -0
  403. package/dist/esm/{index-93763e96.js → index-efc1c2ef.js} +68 -31
  404. package/dist/esm/index-efc1c2ef.js.map +1 -0
  405. package/dist/esm/index.js +3 -3
  406. package/dist/esm/{isDefined-4f676ecc.js → isDefined-91ae4cd3.js} +2 -2
  407. package/dist/esm/{isDefined-4f676ecc.js.map → isDefined-91ae4cd3.js.map} +1 -1
  408. package/dist/esm/loader.js +3 -3
  409. package/dist/hydrate/index.js +431 -210
  410. package/dist/hydrate/index.mjs +431 -210
  411. package/dist/stencil.config.js +1 -4
  412. package/dist/stencil.config.js.map +1 -1
  413. package/dist/types/{home/runner/work/BEEQ/BEEQ → Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System}/packages/beeq/.stencil/tailwind.config.d.ts +17 -17
  414. package/dist/types/components/checkbox/bq-checkbox.d.ts +9 -0
  415. package/dist/types/components/drawer/bq-drawer.d.ts +4 -2
  416. package/dist/types/components/icon/bq-icon.d.ts +7 -3
  417. package/dist/types/components/input/bq-input.d.ts +4 -1
  418. package/dist/types/components/select/bq-select.d.ts +18 -0
  419. package/dist/types/components/tab/bq-tab.d.ts +5 -1
  420. package/dist/types/components/tab/bq-tab.types.d.ts +4 -0
  421. package/dist/types/components/tab-group/bq-tab-group.d.ts +5 -1
  422. package/dist/types/components/tag/helper/index.d.ts +1 -4
  423. package/dist/types/components.d.ts +44 -4
  424. package/dist/types/shared/test-utils/sleep.d.ts +0 -1
  425. package/dist/types/shared/utils/debounce.d.ts +1 -1
  426. package/dist/types/shared/utils/getNextElement.d.ts +1 -1
  427. package/dist/types/shared/utils/isNil.d.ts +1 -1
  428. package/package.json +24 -24
  429. package/dist/beeq/p-0f528ec6.js +0 -6
  430. package/dist/beeq/p-0f528ec6.js.map +0 -1
  431. package/dist/beeq/p-200dfdc6.entry.js +0 -6
  432. package/dist/beeq/p-23b51f25.entry.js.map +0 -1
  433. package/dist/beeq/p-282cde35.entry.js +0 -6
  434. package/dist/beeq/p-282cde35.entry.js.map +0 -1
  435. package/dist/beeq/p-31432ada.entry.js +0 -6
  436. package/dist/beeq/p-31432ada.entry.js.map +0 -1
  437. package/dist/beeq/p-44982543.js +0 -7
  438. package/dist/beeq/p-44982543.js.map +0 -1
  439. package/dist/beeq/p-68fd8637.entry.js +0 -6
  440. package/dist/beeq/p-68fdea6a.js +0 -6
  441. package/dist/beeq/p-68fdea6a.js.map +0 -1
  442. package/dist/beeq/p-76e1659f.entry.js +0 -6
  443. package/dist/beeq/p-91db6d29.entry.js +0 -6
  444. package/dist/beeq/p-964825fa.entry.js +0 -6
  445. package/dist/beeq/p-99267927.entry.js +0 -6
  446. package/dist/beeq/p-99267927.entry.js.map +0 -1
  447. package/dist/beeq/p-a8937946.entry.js +0 -6
  448. package/dist/beeq/p-a8937946.entry.js.map +0 -1
  449. package/dist/beeq/p-b40f3cd6.entry.js +0 -6
  450. package/dist/beeq/p-b40f3cd6.entry.js.map +0 -1
  451. package/dist/beeq/p-ec0e428a.entry.js.map +0 -1
  452. package/dist/cjs/assetsPath-11934549.js.map +0 -1
  453. package/dist/cjs/bq-tab.types-9fe0234a.js +0 -11
  454. package/dist/cjs/bq-tab.types-9fe0234a.js.map +0 -1
  455. package/dist/cjs/index-a09d1c08.js.map +0 -1
  456. package/dist/cjs/index-ec84f14a.js.map +0 -1
  457. package/dist/esm/assetsPath-4b5ef75f.js.map +0 -1
  458. package/dist/esm/bq-tab.types-f64aa67d.js +0 -9
  459. package/dist/esm/bq-tab.types-f64aa67d.js.map +0 -1
  460. package/dist/esm/index-138f308e.js.map +0 -1
  461. package/dist/esm/index-93763e96.js.map +0 -1
  462. /package/dist/beeq/{p-c51f0165.entry.js.map → p-235328ee.entry.js.map} +0 -0
  463. /package/dist/beeq/{p-8450556c.entry.js.map → p-9f40249f.entry.js.map} +0 -0
  464. /package/dist/beeq/{p-29e54a2f.entry.js.map → p-ae8ffb81.entry.js.map} +0 -0
  465. /package/dist/beeq/{p-f33d1c98.js.map → p-aee056e5.js.map} +0 -0
  466. /package/dist/beeq/{p-90838ab1.entry.js.map → p-b7281046.entry.js.map} +0 -0
  467. /package/dist/beeq/{p-6decf071.entry.js.map → p-b90c6de9.entry.js.map} +0 -0
  468. /package/dist/beeq/{p-e116f3e7.entry.js.map → p-be664fb0.entry.js.map} +0 -0
  469. /package/dist/types/{home/runner/work/BEEQ/BEEQ → Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System}/packages/beeq/.stencil/packages/beeq/stencil.config.d.ts +0 -0
@@ -1 +1 @@
1
- {"file":"bq-radio.js","mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,2iuBAA2iuB,CAAC;AAC/juB,sBAAe,UAAU;;MCYZA,SAAO;;;;;;;;;;;;;QAuGV,gBAAW,GAAG;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5B,CAAC;QAEM,kBAAa,GAAG;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5B,CAAC;QAEM,iBAAY,GAAG;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3B,CAAC;QAEM,oBAAe,GAAG,CAAC,KAAoB;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B,CAAC;;;;;QAWM,qBAAgB,GAAG,CAAC,KAAiB;YAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB,CAAC;;wBA9GmC,KAAK;iCAGI,KAAK;;;;;;;;;;;;;;;;;;;;;IAoDnD,MAAM,MAAM;;QACV,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;KAC5B;;;;;IAOD,MAAM,MAAM;;QACV,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;KAC5B;;;;;IAOD,MAAM,KAAK;;QACT,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,EAAE,CAAC;KAC3B;IAwBD,IAAY,QAAQ;;;QAElB,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,MAAA,IAAI,CAAC,OAAO,mCAAI,CAAC,CAAC,EAAE,CAAC;KACvC;;;;IAcD,MAAM;QACJ,QACE,8DACE,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI;gBACtB,iCAAiC,EAAE,IAAI,CAAC,QAAQ;gBAChD,YAAY,EAAE,IAAI,CAAC,OAAO;gBAC1B,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;aACzC,EACD,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,IAAI,CAAC,gBAAgB,IAElC,4DAAK,KAAK,EAAC,mBAAmB,IAC5B,8DACE,KAAK,EAAC,iBAAiB,EACvB,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,EAC/C,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,MAAM,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,SAAS,EAAE,IAAI,CAAC,eAAe,kBACjB,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,mBAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,EAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,OAAO,GACZ,EACF,4DAAK,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,OAAO,IACxC,4DAAK,KAAK,EAAC,mBAAmB,GAAG,CAC7B,CACF,EACN,6DACE,KAAK,EAAC,qGAAqG,EAC3G,IAAI,EAAC,OAAO,IAEZ,8DAAa,CACR,CACD,EACR;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["BqRadio"],"sources":["../../packages/beeq/src/components/radio/scss/bq-radio.scss?tag=bq-radio&encapsulation=shadow","../../packages/beeq/src/components/radio/bq-radio.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Radio styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-radio.variables';\n\n:host {\n @apply inline-block;\n}\n\n.bq-radio {\n @apply box-border inline-flex cursor-pointer items-center justify-center gap-2 transition-[background-color] duration-300;\n @apply rounded-s p-b-xs p-i-xs;\n\n &.is-disabled {\n .bq-radio__circle {\n @apply opacity-60;\n }\n\n &.is-checked .bq-radio__circle {\n @apply border-stroke-brand;\n }\n\n &.is-checked .bq-radio__checked {\n @apply bg-icon-brand;\n }\n }\n\n &.has-background:not(.is-disabled):hover {\n @apply bg-hover-ui-primary;\n }\n\n &.is-checked:not(.is-disabled) {\n .bq-radio__circle {\n @apply border-icon-brand;\n }\n\n .bq-radio__checked {\n @apply bg-ui-brand;\n }\n }\n\n &:not(.is-disabled):hover .bq-radio__circle {\n @apply border-hover-ui-brand;\n }\n\n &.is-checked:not(.is-disabled):hover {\n .bq-radio__checked,\n .bq-radio__circle {\n @apply border-hover-icon-brand;\n }\n }\n}\n\n.bq-radio__input {\n @apply pointer-events-none absolute opacity-0 m-b-0 m-i-0 p-b-0 p-i-0;\n\n &:focus-visible {\n ~ .bq-radio__circle {\n @apply focus;\n }\n }\n}\n\n.bq-radio__control {\n @apply box-border flex items-center justify-center rounded-full bs-[--bq-radio--size] is-[--bq-radio--size] p-b-[2px] p-i-[2px];\n}\n\n.bq-radio__circle {\n @apply relative box-border flex items-center justify-center rounded-full border-[length:--bq-radio--border-width] border-solid border-hover-icon-primary bs-full is-full p-b-[3px] p-i-[3px];\n}\n\n.bq-radio__checked {\n @apply rounded-full bs-full is-full;\n}\n\n.bq-radio__label {\n @apply font-medium leading-regular text-text-primary;\n}\n\n.bq-radio__circle,\n.bq-radio__checked,\n.bq-radio__label {\n @apply transition-[color,background-color,border-color,box-shadow] duration-300;\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop } from '@stencil/core';\n\n/**\n * @part base - The component's internal wrapper of the radio component.\n * @part input - The native HTML `<input type=\"radio\">` used under the hood.\n * @part radio - The component's internal wrapper of the radio component.\n * @part label - The `<span>` element that holds the text content.\n */\n@Component({\n tag: 'bq-radio',\n styleUrl: './scss/bq-radio.scss',\n shadow: true,\n})\nexport class BqRadio {\n // Own Properties\n // ====================\n private inputElement: HTMLInputElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqRadioElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true radio input is checked */\n @Prop({ reflect: true, mutable: true }) checked?: boolean;\n\n /** If true radio input is disabled */\n @Prop({ reflect: true }) disabled? = false;\n\n /** If true radio displays background on hover */\n @Prop({ reflect: true }) backgroundOnHover? = false;\n\n /** The form ID that the radio input is associated with */\n @Prop({ reflect: true }) formId?: string;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, it will indicate that the user must specify a value for the radio before the owning form can be submitted */\n @Prop({ reflect: true }) required?: boolean;\n\n /** A string representing the value of the radio. */\n @Prop({ reflect: true }) value!: string;\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the radio state changes */\n @Event() bqClick: EventEmitter<HTMLBqRadioElement>;\n\n /** Handler to be called when the radio gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqRadioElement>;\n\n /** Handler to be called when the radio loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqRadioElement>;\n\n /** Handler to be called when the radio key is pressed */\n @Event() bqKeyDown: EventEmitter<KeyboardEvent>;\n\n // Component lifecycle events\n // Ordered by their natural call order\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 /**\n * Simulate a click event on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.inputElement?.click();\n }\n\n /**\n * Sets focus on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.inputElement?.focus();\n }\n\n /**\n * Remove focus from the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.inputElement?.blur();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleClick = () => {\n this.checked = true;\n this.bqClick.emit(this.el);\n };\n\n private handleOnFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private handleOnBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handleOnKeyDown = (event: KeyboardEvent) => {\n this.bqKeyDown.emit(event);\n };\n\n private get tabindex(): string {\n // NOTE: this.checked is undefined when is not part of bq-radio-group\n return `${-1 + +(this.checked ?? 1)}`;\n }\n\n /**\n * This method prevents label to steal the focus and trigger input blur\n * details https://stackoverflow.com/a/73364174\n */\n private onLabelMouseDown = (event: MouseEvent) => {\n event.preventDefault();\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <label\n class={{\n 'bq-radio group': true,\n 'is-disabled !cursor-not-allowed': this.disabled,\n 'is-checked': this.checked,\n 'has-background': this.backgroundOnHover,\n }}\n part=\"base\"\n onMouseDown={this.onLabelMouseDown}\n >\n <div class=\"bq-radio__control\">\n <input\n class=\"bq-radio__input\"\n ref={(element) => (this.inputElement = element)}\n type=\"radio\"\n form={this.formId}\n name={this.name}\n value={this.value}\n required={this.required}\n disabled={this.disabled}\n onBlur={this.handleOnBlur}\n onClick={this.handleClick}\n onFocus={this.handleOnFocus}\n onKeyDown={this.handleOnKeyDown}\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n tabindex={this.tabindex}\n part=\"input\"\n />\n <div class=\"bq-radio__circle\" part=\"radio\">\n <div class=\"bq-radio__checked\" />\n </div>\n </div>\n <span\n class=\"bq-radio__label group-hover:text-text-primary-hover group-[.is-disabled]:text-text-primary-disabled\"\n part=\"label\"\n >\n <slot></slot>\n </span>\n </label>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bq-radio.js","mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,6vvBAA6vvB,CAAC;AACjxvB,sBAAe,UAAU;;MCYZA,SAAO;;;;;;;;;;;;;QAuGV,gBAAW,GAAG;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5B,CAAC;QAEM,kBAAa,GAAG;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5B,CAAC;QAEM,iBAAY,GAAG;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3B,CAAC;QAEM,oBAAe,GAAG,CAAC,KAAoB;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B,CAAC;;;;;QAWM,qBAAgB,GAAG,CAAC,KAAiB;YAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB,CAAC;;wBA9GmC,KAAK;iCAGI,KAAK;;;;;;;;;;;;;;;;;;;;;IAoDnD,MAAM,MAAM;;QACV,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;KAC5B;;;;;IAOD,MAAM,MAAM;;QACV,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;KAC5B;;;;;IAOD,MAAM,KAAK;;QACT,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,EAAE,CAAC;KAC3B;IAwBD,IAAY,QAAQ;;;QAElB,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,MAAA,IAAI,CAAC,OAAO,mCAAI,CAAC,CAAC,EAAE,CAAC;KACvC;;;;IAcD,MAAM;QACJ,QACE,8DACE,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI;gBACtB,iCAAiC,EAAE,IAAI,CAAC,QAAQ;gBAChD,YAAY,EAAE,IAAI,CAAC,OAAO;gBAC1B,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;aACzC,EACD,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,IAAI,CAAC,gBAAgB,IAElC,4DAAK,KAAK,EAAC,mBAAmB,IAC5B,8DACE,KAAK,EAAC,iBAAiB,EACvB,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,EAC/C,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,MAAM,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,YAAY,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,SAAS,EAAE,IAAI,CAAC,eAAe,kBACjB,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,mBAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,EAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,OAAO,GACZ,EACF,4DAAK,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,OAAO,IACxC,4DAAK,KAAK,EAAC,mBAAmB,GAAG,CAC7B,CACF,EACN,6DACE,KAAK,EAAC,qGAAqG,EAC3G,IAAI,EAAC,OAAO,IAEZ,8DAAa,CACR,CACD,EACR;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["BqRadio"],"sources":["../../packages/beeq/src/components/radio/scss/bq-radio.scss?tag=bq-radio&encapsulation=shadow","../../packages/beeq/src/components/radio/bq-radio.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Radio styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-radio.variables';\n\n:host {\n @apply inline-block;\n}\n\n.bq-radio {\n @apply box-border inline-flex cursor-pointer items-center justify-center gap-2 transition-[background-color] duration-300;\n @apply rounded-s p-b-xs p-i-xs;\n\n &.is-disabled {\n .bq-radio__circle {\n @apply opacity-60;\n }\n\n &.is-checked .bq-radio__circle {\n @apply border-stroke-brand;\n }\n\n &.is-checked .bq-radio__checked {\n @apply bg-icon-brand;\n }\n }\n\n &.has-background:not(.is-disabled):hover {\n @apply bg-hover-ui-primary;\n }\n\n &.is-checked:not(.is-disabled) {\n .bq-radio__circle {\n @apply border-icon-brand;\n }\n\n .bq-radio__checked {\n @apply bg-ui-brand;\n }\n }\n\n &:not(.is-disabled):hover .bq-radio__circle {\n @apply border-hover-ui-brand;\n }\n\n &.is-checked:not(.is-disabled):hover {\n .bq-radio__checked,\n .bq-radio__circle {\n @apply border-hover-icon-brand;\n }\n }\n}\n\n.bq-radio__input {\n @apply pointer-events-none absolute opacity-0 m-b-0 m-i-0 p-b-0 p-i-0;\n\n &:focus-visible {\n ~ .bq-radio__circle {\n @apply focus;\n }\n }\n}\n\n.bq-radio__control {\n @apply box-border flex items-center justify-center rounded-full bs-[--bq-radio--size] is-[--bq-radio--size] p-b-[2px] p-i-[2px];\n}\n\n.bq-radio__circle {\n @apply relative box-border flex items-center justify-center rounded-full border-[length:--bq-radio--border-width] border-solid border-hover-icon-primary bs-full is-full p-b-[3px] p-i-[3px];\n}\n\n.bq-radio__checked {\n @apply rounded-full bs-full is-full;\n}\n\n.bq-radio__label {\n @apply font-medium leading-regular text-text-primary;\n}\n\n.bq-radio__circle,\n.bq-radio__checked,\n.bq-radio__label {\n @apply transition-[color,background-color,border-color,box-shadow] duration-300;\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop } from '@stencil/core';\n\n/**\n * @part base - The component's internal wrapper of the radio component.\n * @part input - The native HTML `<input type=\"radio\">` used under the hood.\n * @part radio - The component's internal wrapper of the radio component.\n * @part label - The `<span>` element that holds the text content.\n */\n@Component({\n tag: 'bq-radio',\n styleUrl: './scss/bq-radio.scss',\n shadow: true,\n})\nexport class BqRadio {\n // Own Properties\n // ====================\n private inputElement: HTMLInputElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqRadioElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true radio input is checked */\n @Prop({ reflect: true, mutable: true }) checked?: boolean;\n\n /** If true radio input is disabled */\n @Prop({ reflect: true }) disabled? = false;\n\n /** If true radio displays background on hover */\n @Prop({ reflect: true }) backgroundOnHover? = false;\n\n /** The form ID that the radio input is associated with */\n @Prop({ reflect: true }) formId?: string;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, it will indicate that the user must specify a value for the radio before the owning form can be submitted */\n @Prop({ reflect: true }) required?: boolean;\n\n /** A string representing the value of the radio. */\n @Prop({ reflect: true }) value!: string;\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the radio state changes */\n @Event() bqClick: EventEmitter<HTMLBqRadioElement>;\n\n /** Handler to be called when the radio gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqRadioElement>;\n\n /** Handler to be called when the radio loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqRadioElement>;\n\n /** Handler to be called when the radio key is pressed */\n @Event() bqKeyDown: EventEmitter<KeyboardEvent>;\n\n // Component lifecycle events\n // Ordered by their natural call order\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 /**\n * Simulate a click event on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.inputElement?.click();\n }\n\n /**\n * Sets focus on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.inputElement?.focus();\n }\n\n /**\n * Remove focus from the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.inputElement?.blur();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleClick = () => {\n this.checked = true;\n this.bqClick.emit(this.el);\n };\n\n private handleOnFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private handleOnBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handleOnKeyDown = (event: KeyboardEvent) => {\n this.bqKeyDown.emit(event);\n };\n\n private get tabindex(): string {\n // NOTE: this.checked is undefined when is not part of bq-radio-group\n return `${-1 + +(this.checked ?? 1)}`;\n }\n\n /**\n * This method prevents label to steal the focus and trigger input blur\n * details https://stackoverflow.com/a/73364174\n */\n private onLabelMouseDown = (event: MouseEvent) => {\n event.preventDefault();\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <label\n class={{\n 'bq-radio group': true,\n 'is-disabled !cursor-not-allowed': this.disabled,\n 'is-checked': this.checked,\n 'has-background': this.backgroundOnHover,\n }}\n part=\"base\"\n onMouseDown={this.onLabelMouseDown}\n >\n <div class=\"bq-radio__control\">\n <input\n class=\"bq-radio__input\"\n ref={(element) => (this.inputElement = element)}\n type=\"radio\"\n form={this.formId}\n name={this.name}\n value={this.value}\n required={this.required}\n disabled={this.disabled}\n onBlur={this.handleOnBlur}\n onClick={this.handleClick}\n onFocus={this.handleOnFocus}\n onKeyDown={this.handleOnKeyDown}\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n tabindex={this.tabindex}\n part=\"input\"\n />\n <div class=\"bq-radio__circle\" part=\"radio\">\n <div class=\"bq-radio__checked\" />\n </div>\n </div>\n <span\n class=\"bq-radio__label group-hover:text-text-primary-hover group-[.is-disabled]:text-text-primary-disabled\"\n part=\"label\"\n >\n <slot></slot>\n </span>\n </label>\n );\n }\n}\n"],"version":3}
@@ -7,6 +7,7 @@ import './assetsPath.js';
7
7
  import { d as debounce } from './debounce.js';
8
8
  import { i as isDefined } from './isDefined.js';
9
9
  import { i as isHTMLElement } from './isHTMLElement.js';
10
+ import { i as isNil } from './isNil.js';
10
11
  import { i as isString } from './isString.js';
11
12
  import { b as hasSlotContent, a as getTextContent } from './slot.js';
12
13
  import { d as defineCustomElement$7 } from './bq-button2.js';
@@ -16,7 +17,7 @@ import { d as defineCustomElement$4 } from './bq-option-list2.js';
16
17
  import { d as defineCustomElement$3 } from './bq-panel2.js';
17
18
  import { d as defineCustomElement$2 } from './bq-tag2.js';
18
19
 
19
- const bqSelectCss = "::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}.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))}.pointer-events-none{pointer-events:none}.m-0{margin:0}.me-\\[--bq-select--gap\\]{margin-inline-end:var(--bq-select--gap)}.me-xs2{margin-inline-end:var(--bq-spacing-xs2)}.ms-\\[--bq-select--gap\\]{margin-inline-start:var(--bq-select--gap)}.block{display:block}.flex{display:flex}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.cursor-\\[inherit\\]{cursor:inherit}.cursor-not-allowed{cursor:not-allowed}.select-none{user-select:none}.appearance-none{appearance:none}.items-center{align-items:center}.text-nowrap{text-wrap:nowrap}.rounded-\\[--bq-select--border-radius\\]{border-radius:var(--bq-select--border-radius)}.rounded-xs{border-radius:var(--bq-radius--xs)}.border-\\[length\\:--bq-select--border-width\\]{border-width:var(--bq-select--border-width)}.border-none{border-style:none}.border-\\[color\\:--bq-select--border-color-focus\\]{border-color:var(--bq-select--border-color-focus)}.border-\\[color\\:--bq-select--border-color\\]{border-color:var(--bq-select--border-color)}.border-stroke-danger{border-color:var(--bq-stroke--danger)}.border-stroke-success{border-color:var(--bq-stroke--success)}.border-stroke-warning{border-color:var(--bq-stroke--warning)}.bg-\\[inherit\\]{background-color:inherit}.p-0{padding:0}.pe-\\[--bq-select--padding-end\\]{padding-inline-end:var(--bq-select--padding-end)}.ps-\\[--bq-select--padding-start\\]{padding-inline-start:var(--bq-select--padding-start)}.font-\\[inherit\\]{font-family:inherit}.text-\\[length\\:--bq-select--helper-text-size\\]{font-size:var(--bq-select--helper-text-size)}.text-\\[length\\:--bq-select--label-text-size\\]{font-size:var(--bq-select--label-text-size)}.text-\\[length\\:--bq-select--text-size\\]{font-size:var(--bq-select--text-size)}.text-\\[length\\:inherit\\]{font-size:inherit}.text-\\[color\\:--bq-select--helper-text-color\\]{color:var(--bq-select--helper-text-color)}.text-\\[color\\:--bq-select--label-text-color\\]{color:var(--bq-select--label-text-color)}.text-\\[color\\:--bq-select--text-color\\]{color:var(--bq-select--text-color)}.text-\\[color\\:inherit\\]{color:inherit}.text-\\[color\\:var\\(--bq-select--text-color\\)\\]{color:var(--bq-select--text-color)}.transition-\\[border-color\\2c box-shadow\\]{transition-duration:.15s;transition-property:border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.min-bs-\\[var\\(--bq-select--icon-size\\)\\]{min-block-size:var(--bq-select--icon-size)}.min-is-0{min-inline-size:0}.m-be-\\[--bq-select--label-margin-bottom\\]{margin-block-end:var(--bq-select--label-margin-bottom)}.m-bs-\\[--bq-select--helper-margin-top\\]{margin-block-start:var(--bq-select--helper-margin-top)}.p-b-\\[var\\(--bq-select--paddingY\\)\\]{padding-block:var(--bq-select--paddingY)}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-select--background-color:var(--bq-ui--primary);--bq-select--border-color:var(--bq-stroke--tertiary);--bq-select--border-color-focus:var(--bq-stroke--brand);--bq-select--border-radius:var(--bq-radius--s);--bq-select--border-width:var(--bq-stroke-s);--bq-select--border-style:solid;--bq-select--gap:var(--bq-spacing-xs);--bq-select--helper-margin-top:var(--bq-spacing-xs);--bq-select--helper-text-size:var(--bq-font-size--s);--bq-select--helper-text-color:var(--bq-text--primary);--bq-select--icon-size:24px;--bq-select--label-margin-bottom:var(--bq-spacing-xs);--bq-select--label-text-size:var(--bq-font-size--s);--bq-select--label-text-color:var(--bq-text--primary);--bq-select--padding-start:calc(var(--bq-spacing-m) - var(--bq-select--border-width));--bq-select--padding-end:calc(var(--bq-spacing-m) - var(--bq-select--border-width));--bq-select--paddingY:calc(var(--bq-spacing-s) - var(--bq-select--border-width));--bq-select--text-color:var(--bq-text--primary);--bq-select--text-size:var(--bq-font-size--m);--bq-select--text-placeholder-color:var(--bq-text--secondary);display:block;width:100%}.bq-select__label{align-items:center;color:var(--bq-select--label-text-color);display:flex;font-size:var(--bq-select--label-text-size);margin-block-end:var(--bq-select--label-margin-bottom)}.bq-select__helper-text{color:var(--bq-select--helper-text-color);font-size:var(--bq-select--helper-text-size);margin-block-start:var(--bq-select--helper-margin-top)}.bq-select__helper-text.validation-error{color:var(--bq-text--danger)}.bq-select__helper-text.validation-success{color:var(--bq-text--success)}.bq-select__helper-text.validation-warning{color:var(--bq-text--warning)}.bq-select__dropdown:has(:focus-within,:focus-visible) .bq-select__control{--bq-ring-width:1px;--bq-ring-offset-width:0;--bq-ring-color-focus:var(--bq-select--border-color-focus);border-color:var(--bq-select--border-color-focus);outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-select__control{align-items:center;border-color:var(--bq-select--border-color);border-radius:var(--bq-select--border-radius);border-style:var(--bq-select--border-style);border-width:var(--bq-select--border-width);color:var(--bq-select--text-color);display:flex;font-size:var(--bq-select--text-size);inline-size:100%;padding-block:var(--bq-select--paddingY);padding-inline-end:var(--bq-select--padding-end);padding-inline-start:var(--bq-select--padding-start);transition-duration:.15s;transition-property:border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);user-select:none}.bq-select__control::placeholder{color:var(--bq-select--text-placeholder-color)}.bq-select__control:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--brand),var(--bq-hover) 20%)}.bq-select__control:not(.disabled):focus-within .bq-select__control--clear,.bq-select__control:not(.disabled):hover .bq-select__control--clear{display:inline-block}.bq-select__control.disabled{cursor:not-allowed;opacity:.6}.bq-select__control.validation-error{border-color:var(--bq-stroke--danger)}.bq-select__control.validation-error:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-hover) 20%)}.bq-select__control.validation-error:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--danger);border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-active) 20%)}.bq-select__control.validation-success{border-color:var(--bq-stroke--success)}.bq-select__control.validation-success:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-hover) 20%)}.bq-select__control.validation-success:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--success);border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-active) 20%)}.bq-select__control.validation-warning{border-color:var(--bq-stroke--warning)}.bq-select__control.validation-warning:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-hover) 20%)}.bq-select__control.validation-warning:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--warning);border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-active) 20%)}.bq-select__control--input{appearance:none;background-color:inherit;border-style:none;-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:inherit;flex:1 1 auto;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;min-block-size:var(--bq-select--icon-size);min-inline-size:0;padding:0;user-select:none}.bq-select__control--input:focus{outline:2px solid transparent;outline-offset:2px}.bq-select__control--input:focus-visible{outline:2px solid transparent;outline-offset:2px}.bq-select__control--clear::part(button){--bq-ring-width:initial;--bq-ring-offset-width:initial;--bq-ring-color-focus:initial;block-size:auto;border-radius:var(--bq-radius--xs);border-style:none;padding:0}.bq-select__control--prefix,.bq-select__control--suffix{align-items:center;color:var(--bq-select--text-color);display:flex;pointer-events:none}.bq-select__control--prefix{margin-inline-end:var(--bq-select--gap)}.bq-select__control--suffix{margin-inline-start:var(--bq-select--gap);transition-duration:.3s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-select__tags{display:flex;flex:1 1 0%;gap:var(--bq-spacing-xs2);margin-inline-end:var(--bq-spacing-xs2)}.bq-select__tags ::slotted(bq-tag),.bq-select__tags bq-tag{display:inline-flex}.bq-select__tags bq-tag::part(text){text-wrap:nowrap;line-height:var(--bq-font-line-height--small)}::slotted(bq-icon),bq-icon{--bq-icon--size:var(--bq-select--icon-size)!important}.placeholder\\:text-\\[color\\:--bq-select--text-placeholder-color\\]::placeholder{color:var(--bq-select--text-placeholder-color)}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.rotate-0,.rotate-180{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.\\!hidden{display:none!important}.hidden{display:none}.w-full{width:100%}.flex-grow{flex-grow:1}.rotate-0{--tw-rotate:0deg}.rotate-180{--tw-rotate:180deg}.overflow-x-auto{overflow-x:auto}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.is-full{inline-size:100%}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.inline-flex{display:inline-flex}.text-m{font-size:var(--bq-font-size--m)}.text-s{font-size:var(--bq-font-size--s)}.text-xs{font-size:var(--bq-font-size--xs)}.text-\\[color\\:--bq-icon--color\\]{color:var(--bq-icon--color)}.bs-\\[--bq-icon--size\\]{block-size:var(--bq-icon--size)}.is-\\[--bq-icon--size\\]{inline-size:var(--bq-icon--size)}.flex-col{flex-direction:column}.gap-y-\\[--bq-option-group--gapY-list\\]{row-gap:var(--bq-option-group--gapY-list)}.relative{position:relative}";
20
+ const bqSelectCss = "::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}.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))}.pointer-events-none{pointer-events:none}.m-0{margin:0}.me-\\[--bq-select--gap\\]{margin-inline-end:var(--bq-select--gap)}.me-xs2{margin-inline-end:var(--bq-spacing-xs2)}.ms-\\[--bq-select--gap\\]{margin-inline-start:var(--bq-select--gap)}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.w-full{width:100%}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.cursor-\\[inherit\\]{cursor:inherit}.cursor-not-allowed{cursor:not-allowed}.select-none{user-select:none}.appearance-none{appearance:none}.items-center{align-items:center}.gap-xs2{gap:var(--bq-spacing-xs2)}.text-nowrap{text-wrap:nowrap}.rounded-\\[--bq-select--border-radius\\]{border-radius:var(--bq-select--border-radius)}.rounded-xs{border-radius:var(--bq-radius--xs)}.border-\\[length\\:--bq-select--border-width\\]{border-width:var(--bq-select--border-width)}.border-none{border-style:none}.border-\\[color\\:--bq-select--border-color-focus\\]{border-color:var(--bq-select--border-color-focus)}.border-\\[color\\:--bq-select--border-color\\]{border-color:var(--bq-select--border-color)}.border-stroke-danger{border-color:var(--bq-stroke--danger)}.border-stroke-success{border-color:var(--bq-stroke--success)}.border-stroke-warning{border-color:var(--bq-stroke--warning)}.bg-\\[inherit\\]{background-color:inherit}.p-0{padding:0}.pe-\\[--bq-select--padding-end\\]{padding-inline-end:var(--bq-select--padding-end)}.ps-\\[--bq-select--padding-start\\]{padding-inline-start:var(--bq-select--padding-start)}.font-\\[inherit\\]{font-family:inherit}.text-\\[length\\:--bq-select--helper-text-size\\]{font-size:var(--bq-select--helper-text-size)}.text-\\[length\\:--bq-select--label-text-size\\]{font-size:var(--bq-select--label-text-size)}.text-\\[length\\:--bq-select--text-size\\]{font-size:var(--bq-select--text-size)}.text-\\[length\\:inherit\\]{font-size:inherit}.leading-small{line-height:var(--bq-font-line-height--small)}.text-\\[color\\:--bq-select--helper-text-color\\]{color:var(--bq-select--helper-text-color)}.text-\\[color\\:--bq-select--label-text-color\\]{color:var(--bq-select--label-text-color)}.text-\\[color\\:--bq-select--text-color\\]{color:var(--bq-select--text-color)}.text-\\[color\\:inherit\\]{color:inherit}.text-\\[color\\:var\\(--bq-select--text-color\\)\\]{color:var(--bq-select--text-color)}.text-text-danger{color:var(--bq-text--danger)}.text-text-success{color:var(--bq-text--success)}.text-text-warning{color:var(--bq-text--warning)}.opacity-60{opacity:.6}.transition-\\[border-color\\2c box-shadow\\]{transition-duration:.15s;transition-property:border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.border-active-stroke-danger{border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-active) 20%)}.border-active-stroke-success{border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-active) 20%)}.border-active-stroke-warning{border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-active) 20%)}.bs-auto{block-size:auto}.min-bs-\\[var\\(--bq-select--icon-size\\)\\]{min-block-size:var(--bq-select--icon-size)}.min-is-0{min-inline-size:0}.p-b-\\[var\\(--bq-select--paddingY\\)\\]{padding-block:var(--bq-select--paddingY)}.m-be-\\[--bq-select--label-margin-bottom\\]{margin-block-end:var(--bq-select--label-margin-bottom)}.m-bs-\\[--bq-select--helper-margin-top\\]{margin-block-start:var(--bq-select--helper-margin-top)}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-select--background-color:var(--bq-ui--primary);--bq-select--border-color:var(--bq-stroke--tertiary);--bq-select--border-color-focus:var(--bq-stroke--brand);--bq-select--border-radius:var(--bq-radius--s);--bq-select--border-width:var(--bq-stroke-s);--bq-select--border-style:solid;--bq-select--gap:var(--bq-spacing-xs);--bq-select--helper-margin-top:var(--bq-spacing-xs);--bq-select--helper-text-size:var(--bq-font-size--s);--bq-select--helper-text-color:var(--bq-text--primary);--bq-select--icon-size:24px;--bq-select--label-margin-bottom:var(--bq-spacing-xs);--bq-select--label-text-size:var(--bq-font-size--s);--bq-select--label-text-color:var(--bq-text--primary);--bq-select--padding-start:calc(var(--bq-spacing-m) - var(--bq-select--border-width));--bq-select--padding-end:calc(var(--bq-spacing-m) - var(--bq-select--border-width));--bq-select--paddingY:calc(var(--bq-spacing-s) - var(--bq-select--border-width));--bq-select--text-color:var(--bq-text--primary);--bq-select--text-size:var(--bq-font-size--m);--bq-select--text-placeholder-color:var(--bq-text--secondary);display:block;width:100%}.bq-select__label{align-items:center;color:var(--bq-select--label-text-color);display:flex;font-size:var(--bq-select--label-text-size);margin-block-end:var(--bq-select--label-margin-bottom)}.bq-select__helper-text{color:var(--bq-select--helper-text-color);font-size:var(--bq-select--helper-text-size);margin-block-start:var(--bq-select--helper-margin-top)}.bq-select__helper-text.validation-error{color:var(--bq-text--danger)}.bq-select__helper-text.validation-success{color:var(--bq-text--success)}.bq-select__helper-text.validation-warning{color:var(--bq-text--warning)}.bq-select__dropdown:has(:focus-within,:focus-visible) .bq-select__control{--bq-ring-width:1px;--bq-ring-offset-width:0;--bq-ring-color-focus:var(--bq-select--border-color-focus);border-color:var(--bq-select--border-color-focus);outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-select__control{align-items:center;border-color:var(--bq-select--border-color);border-radius:var(--bq-select--border-radius);border-style:var(--bq-select--border-style);border-width:var(--bq-select--border-width);color:var(--bq-select--text-color);display:flex;font-size:var(--bq-select--text-size);inline-size:100%;padding-block:var(--bq-select--paddingY);padding-inline-end:var(--bq-select--padding-end);padding-inline-start:var(--bq-select--padding-start);transition-duration:.15s;transition-property:border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);user-select:none}.bq-select__control::placeholder{color:var(--bq-select--text-placeholder-color)}.bq-select__control:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--brand),var(--bq-hover) 20%)}.bq-select__control:not(.disabled):focus-within .bq-select__control--clear,.bq-select__control:not(.disabled):hover .bq-select__control--clear{display:inline-block}.bq-select__control.disabled{cursor:not-allowed;opacity:.6}.bq-select__control.validation-error{border-color:var(--bq-stroke--danger)}.bq-select__control.validation-error:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-hover) 20%)}.bq-select__control.validation-error:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--danger);border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-active) 20%)}.bq-select__control.validation-success{border-color:var(--bq-stroke--success)}.bq-select__control.validation-success:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-hover) 20%)}.bq-select__control.validation-success:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--success);border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-active) 20%)}.bq-select__control.validation-warning{border-color:var(--bq-stroke--warning)}.bq-select__control.validation-warning:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-hover) 20%)}.bq-select__control.validation-warning:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--warning);border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-active) 20%)}.bq-select__control--input{appearance:none;background-color:inherit;border-style:none;-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:inherit;flex:1 1 auto;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0;min-block-size:var(--bq-select--icon-size);min-inline-size:0;padding:0;user-select:none}.bq-select__control--input:focus{outline:2px solid transparent;outline-offset:2px}.bq-select__control--input:focus-visible{outline:2px solid transparent;outline-offset:2px}.bq-select__control--clear::part(button){--bq-ring-width:initial;--bq-ring-offset-width:initial;--bq-ring-color-focus:initial;block-size:auto;border-radius:var(--bq-radius--xs);border-style:none;padding:0}.bq-select__control--prefix,.bq-select__control--suffix{align-items:center;color:var(--bq-select--text-color);display:flex;pointer-events:none}.bq-select__control--prefix{margin-inline-end:var(--bq-select--gap)}.bq-select__control--suffix{margin-inline-start:var(--bq-select--gap);transition-duration:.3s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-select__tags{display:flex;flex:1 1 0%;gap:var(--bq-spacing-xs2);margin-inline-end:var(--bq-spacing-xs2)}.bq-select__tags ::slotted(bq-tag),.bq-select__tags bq-tag{display:inline-flex}.bq-select__tags bq-tag::part(text){text-wrap:nowrap;line-height:var(--bq-font-line-height--small)}::slotted(bq-icon),bq-icon{--bq-icon--size:var(--bq-select--icon-size)!important}.placeholder\\:text-\\[color\\:--bq-select--text-placeholder-color\\]::placeholder{color:var(--bq-select--text-placeholder-color)}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.rotate-0,.rotate-180{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.\\!hidden{display:none!important}.hidden{display:none}.flex-grow{flex-grow:1}.rotate-0{--tw-rotate:0deg}.rotate-180{--tw-rotate:180deg}.overflow-x-auto{overflow-x:auto}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.is-full{inline-size:100%}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.relative{position:relative}.text-m{font-size:var(--bq-font-size--m)}.text-s{font-size:var(--bq-font-size--s)}.text-xs{font-size:var(--bq-font-size--xs)}.flex-col{flex-direction:column}.gap-y-\\[--bq-option-group--gapY-list\\]{row-gap:var(--bq-option-group--gapY-list)}.text-\\[color\\:--bq-icon--color\\]{color:var(--bq-icon--color)}.bs-\\[--bq-icon--size\\]{block-size:var(--bq-icon--size)}.is-\\[--bq-icon--size\\]{inline-size:var(--bq-icon--size)}";
20
21
  const BqSelectStyle0 = bqSelectCss;
21
22
 
22
23
  const BqSelect$1 = /*@__PURE__*/ proxyCustomElement(class BqSelect extends HTMLElement {
@@ -28,6 +29,7 @@ const BqSelect$1 = /*@__PURE__*/ proxyCustomElement(class BqSelect extends HTMLE
28
29
  this.bqClear = createEvent(this, "bqClear", 7);
29
30
  this.bqFocus = createEvent(this, "bqFocus", 7);
30
31
  this.bqSelect = createEvent(this, "bqSelect", 7);
32
+ this.internals = this.attachInternals();
31
33
  this.fallbackInputId = 'select';
32
34
  // Local methods
33
35
  // Internal business logic.
@@ -127,28 +129,52 @@ const BqSelect$1 = /*@__PURE__*/ proxyCustomElement(class BqSelect extends HTMLE
127
129
  this.options.forEach((item) => (item.hidden = false));
128
130
  };
129
131
  this.syncItemsFromValue = () => {
130
- var _a;
131
- const items = this.options;
132
- if (!items.length)
132
+ const { internals, options, value } = this;
133
+ if (!options.length)
133
134
  return;
134
135
  // Sync selected state of the BqOption elements
135
- this.options.forEach((option) => {
136
- if (this.multiple && Array.isArray(this.value)) {
137
- option.selected = this.value.includes(option.value);
136
+ this.syncSelectedOptionsState();
137
+ if (this.multiple) {
138
+ // Sync selected options for multiple selection mode
139
+ this.selectedOptions = options.filter((option) => { var _a; return (_a = this.value) === null || _a === void 0 ? void 0 : _a.includes(option.value); });
140
+ }
141
+ else {
142
+ // Sync display label for single selection mode
143
+ this.updateDisplayLabel();
144
+ }
145
+ internals.setFormValue(!isNil(value) ? `${value}` : undefined);
146
+ };
147
+ /**
148
+ * Syncs the selected state of the BqOption elements which value is included in the `value` property.
149
+ * Notice that value can be a string or an array of strings.
150
+ *
151
+ * @private
152
+ * @memberof BqSelect
153
+ */
154
+ this.syncSelectedOptionsState = () => {
155
+ const { options, multiple, value } = this;
156
+ const lowerCaseValue = String(value).toLowerCase();
157
+ options.forEach((option) => {
158
+ if (multiple && Array.isArray(value)) {
159
+ option.selected = value.includes(option.value);
138
160
  }
139
161
  else {
140
- option.selected = option.value.toLowerCase() === String(this.value).toLowerCase();
162
+ option.selected = option.value.toLowerCase() === lowerCaseValue;
141
163
  }
142
164
  });
143
- if (!this.multiple) {
144
- // Sync display label
145
- const checkedItem = items.filter((item) => item.value === this.value)[0];
146
- this.displayValue = checkedItem ? this.getOptionLabel(checkedItem) : '';
147
- this.inputElem.value = (_a = this.displayValue) !== null && _a !== void 0 ? _a : '';
148
- }
149
- else {
150
- this.selectedOptions = this.options.filter((item) => { var _a; return (_a = this.value) === null || _a === void 0 ? void 0 : _a.includes(item.value); });
151
- }
165
+ };
166
+ /**
167
+ * Updates the display value of the input element based on the selected option.
168
+ *
169
+ * @private
170
+ * @memberof BqSelect
171
+ */
172
+ this.updateDisplayLabel = () => {
173
+ const { value, options, inputElem } = this;
174
+ const checkedItem = options.find((item) => item.value === value);
175
+ const displayValue = checkedItem ? this.getOptionLabel(checkedItem) : '';
176
+ inputElem.value = displayValue !== null && displayValue !== void 0 ? displayValue : '';
177
+ this.displayValue = displayValue;
152
178
  };
153
179
  this.getOptionLabel = (item) => {
154
180
  const slot = item.shadowRoot.querySelector('slot:not([name])');
@@ -192,6 +218,7 @@ const BqSelect$1 = /*@__PURE__*/ proxyCustomElement(class BqSelect extends HTMLE
192
218
  if (this.multiple && isString(this.value)) {
193
219
  // NOTE: we ensure that value is an array, changing the value will trigger Watch to execute thus the return
194
220
  this.value = Array.from(JSON.parse(String(this.value)));
221
+ this.internals.setFormValue(this.value.join(','));
195
222
  return;
196
223
  }
197
224
  this.syncItemsFromValue();
@@ -210,6 +237,16 @@ const BqSelect$1 = /*@__PURE__*/ proxyCustomElement(class BqSelect extends HTMLE
210
237
  }
211
238
  this.handleValueChange();
212
239
  }
240
+ formAssociatedCallback() {
241
+ this.internals.role = 'combobox';
242
+ this.internals.ariaExpanded = this.open ? 'true' : 'false';
243
+ }
244
+ async formResetCallback() {
245
+ if (isNil(this.value))
246
+ return;
247
+ this.internals.setValidity({});
248
+ this.clear();
249
+ }
213
250
  // Listeners
214
251
  // ==============
215
252
  handleOpenChange(ev) {
@@ -238,14 +275,19 @@ const BqSelect$1 = /*@__PURE__*/ proxyCustomElement(class BqSelect extends HTMLE
238
275
  async clear() {
239
276
  if (this.disabled)
240
277
  return;
278
+ const { multiple, inputElem, bqClear, el } = this;
279
+ // Clear value and selected options
241
280
  this.value = undefined;
242
281
  this.selectedOptions = [];
243
- if (!this.multiple) {
282
+ // Clear display value and input element if not multiple
283
+ if (!multiple) {
244
284
  this.displayValue = undefined;
245
- this.inputElem.value = undefined;
285
+ inputElem.value = undefined;
246
286
  }
287
+ // Update form value and reset options visibility
247
288
  this.resetOptionsVisibility();
248
- this.bqClear.emit(this.el);
289
+ // Emit clear event
290
+ bqClear.emit(el);
249
291
  }
250
292
  get options() {
251
293
  return Array.from(this.el.querySelectorAll('bq-option'));
@@ -285,27 +327,28 @@ const BqSelect$1 = /*@__PURE__*/ proxyCustomElement(class BqSelect extends HTMLE
285
327
  // ===================================
286
328
  render() {
287
329
  const labelId = `bq-select__label-${this.name || this.fallbackInputId}`;
288
- return (h("div", { key: '7fe45a350c812326e4c0d354a10428526acf3dab', class: "bq-select", part: "base" }, h("label", { key: '0fc5472d31a357442190386917746e57366576d3', id: labelId, class: { 'bq-select__label': true, '!hidden': !this.hasLabel }, htmlFor: this.name || this.fallbackInputId, ref: (labelElem) => (this.labelElem = labelElem), part: "label" }, h("slot", { key: 'e17c800558900192e3f5d2f278a70eeb94c31c42', name: "label", onSlotchange: this.handleLabelSlotChange })), h("bq-dropdown", { key: '29ac93789cbbed8fb381b576a247c78ce444b9bc', class: "bq-select__dropdown w-full", disabled: this.disabled, distance: this.distance, keepOpenOnSelect: this.keepOpenOnSelect, open: this.open, panelHeight: this.panelHeight, placement: this.placement, sameWidth: this.sameWidth, skidding: this.skidding, strategy: this.strategy, exportparts: "panel" }, h("div", { key: '5cebdda4786fbb0d47355f8a41b4b0a19d5974ad', class: {
330
+ return (h("div", { key: '3bf60089e54a444406835f651eb8781c18297e24', class: "bq-select", part: "base" }, h("label", { key: 'e1a6ce7adb95518bc85b326ce85ea7e23c644665', id: labelId, class: { 'bq-select__label': true, '!hidden': !this.hasLabel }, htmlFor: this.name || this.fallbackInputId, ref: (labelElem) => (this.labelElem = labelElem), part: "label" }, h("slot", { key: 'e1f897da716800aa56290282d1e0ff05f6bfc032', name: "label", onSlotchange: this.handleLabelSlotChange })), h("bq-dropdown", { key: '8c3ad42219d8de5fff3d0daf78464ecbf2d48f45', class: "bq-select__dropdown w-full", disabled: this.disabled, distance: this.distance, keepOpenOnSelect: this.keepOpenOnSelect, open: this.open, panelHeight: this.panelHeight, placement: this.placement, sameWidth: this.sameWidth, skidding: this.skidding, strategy: this.strategy, exportparts: "panel" }, h("div", { key: '96f723b8c5ee6af00e4c6520c64b7b905e4fcee1', class: {
289
331
  'bq-select__control': true,
290
332
  [`validation-${this.validationStatus}`]: true,
291
333
  disabled: this.disabled,
292
- }, part: "control", slot: "trigger" }, h("span", { key: '80b821225b8f498f34e918715e40633d3f442b18', class: { 'bq-select__control--prefix': true, '!hidden': !this.hasPrefix }, ref: (spanElem) => (this.prefixElem = spanElem), part: "prefix" }, h("slot", { key: '04f266b634aa2ae77892f3de9ceb648966795bbe', name: "prefix", onSlotchange: this.handlePrefixSlotChange })), h("div", { key: '62cad8517118b225d6c35b7620565262ea9f7355', class: "flex flex-1 overflow-x-auto", part: "input-outline" }, this.multiple && (h("span", { key: '22a2750d5fe67baa59a0ac007426ba84ae1b2454', class: "bq-select__tags", part: "tags" }, h("slot", { key: 'd05869bf1d4375acc7b70a26ebea3b13531dd3c9', name: "tags" }, this.displayTags))), h("input", { key: '04488420c90a56708717ae70628d484b99208ed6', id: this.name || this.fallbackInputId, class: "bq-select__control--input flex-grow is-full", autoComplete: "off", autoCapitalize: "off", autoFocus: this.autofocus, "aria-disabled": this.disabled ? 'true' : 'false', "aria-controls": `bq-options-${this.name}`, "aria-expanded": this.open ? 'true' : 'false', "aria-haspopup": "listbox", disabled: this.disabled, form: this.form, name: this.name, placeholder: this.displayPlaceholder, ref: (inputElem) => (this.inputElem = inputElem), readOnly: this.readonly, required: this.required, role: "combobox", spellcheck: false, type: "text", value: this.displayValue, part: "input",
334
+ }, part: "control", slot: "trigger" }, h("span", { key: '1126037e79c6f57ca5202e58925fd124b024558e', class: { 'bq-select__control--prefix': true, '!hidden': !this.hasPrefix }, ref: (spanElem) => (this.prefixElem = spanElem), part: "prefix" }, h("slot", { key: 'cf46d4e31fa99970eea7602eaa3fe46096fd59db', name: "prefix", onSlotchange: this.handlePrefixSlotChange })), h("div", { key: '122ac25b288008b179d427f55a4534d73c7e6759', class: "flex flex-1 overflow-x-auto", part: "input-outline" }, this.multiple && (h("span", { key: '61f119326780d34d94b6c2f4526441a39284782e', class: "bq-select__tags", part: "tags" }, h("slot", { key: '899688411bb28d471d8c3128540d5bd07b3070a7', name: "tags" }, this.displayTags))), h("input", { key: '2b87c4c3b5db18579405f0f93965f5348b7e9691', id: this.name || this.fallbackInputId, class: "bq-select__control--input flex-grow is-full", autoComplete: "off", autoCapitalize: "off", autoFocus: this.autofocus, "aria-disabled": this.disabled ? 'true' : 'false', "aria-controls": `bq-options-${this.name}`, "aria-expanded": this.open ? 'true' : 'false', "aria-haspopup": "listbox", disabled: this.disabled, form: this.form, name: this.name, placeholder: this.displayPlaceholder, ref: (inputElem) => (this.inputElem = inputElem), readOnly: this.readonly, required: this.required, role: "combobox", spellcheck: false, type: "text", value: this.displayValue, part: "input",
293
335
  // Events
294
336
  onBlur: this.handleBlur, onFocus: this.handleFocus, onInput: this.handleSearchFilter })), this.hasClearIcon && (
295
337
  // The clear button will be visible as long as the input has a value
296
338
  // and the parent group is hovered or has focus-within
297
- h("bq-button", { key: '64461843191cdf3935c464d28d93d3fff050c491', class: "bq-select__control--clear ms-[--bq-select--gap]", appearance: "text", "aria-label": this.clearButtonLabel, size: "small", onBqClick: this.handleClearClick, part: "clear-btn", exportparts: "button", tabIndex: -1 }, h("slot", { key: 'a0dfdde0bd4276bf42aae558fbd640ca652038ce', name: "clear-icon" }, h("bq-icon", { key: 'f147f74f440efe09bba58b20887f4b3a4b44d367', name: "x-circle", class: "flex" })))), h("span", { key: '6fcb1a3e3f3e91538acbe1b397d42403b0b3da79', class: { 'bq-select__control--suffix': true, 'rotate-180': this.open, 'rotate-0': !this.open }, ref: (spanElem) => (this.suffixElem = spanElem), part: "suffix" }, h("slot", { key: '2bfa95fd7b42673ae8926ff1cc32cb69a54aaf2e', name: "suffix", onSlotchange: this.handleSuffixSlotChange }, h("bq-icon", { key: '5cefb7d796850bdc69db617462eeebd1ef30ce0a', name: "caret-down", class: "flex" })))), h("bq-option-list", { key: 'dc4afacc19225ee195a92c5f79f6da798231cb7f', id: `bq-options-${this.name}`, onBqSelect: this.handleSelect, "aria-expanded": this.open ? 'true' : 'false', exportparts: "base:option-list", role: "listbox" }, h("slot", { key: '95a0fe75c20d2d6f43b795926a281c9c20b8eb29' }))), h("div", { key: '237548a08bdaef24d61c0e4b0d0d53b75cd8b71b', class: {
339
+ h("bq-button", { key: '67adc0777ab38eac9e07113c05ffae5fac62df0a', class: "bq-select__control--clear ms-[--bq-select--gap]", appearance: "text", "aria-label": this.clearButtonLabel, size: "small", onBqClick: this.handleClearClick, part: "clear-btn", exportparts: "button", tabIndex: -1 }, h("slot", { key: '84dfbc20d5cbec4a0b8b64c493c3f9b994470a91', name: "clear-icon" }, h("bq-icon", { key: '80e1f6053543c38e9771a3416318c4655a82bd6b', name: "x-circle", class: "flex" })))), h("span", { key: '1f3f17583fe1ffb9e93cf350edee48c0b8ea16cc', class: { 'bq-select__control--suffix': true, 'rotate-180': this.open, 'rotate-0': !this.open }, ref: (spanElem) => (this.suffixElem = spanElem), part: "suffix" }, h("slot", { key: 'a1b7952e849c06fe42cd87fa91241076b9e92210', name: "suffix", onSlotchange: this.handleSuffixSlotChange }, h("bq-icon", { key: '2d33bff112441e0e96e91a5a2402e92d2ba2723e', name: "caret-down", class: "flex" })))), h("bq-option-list", { key: '73b2b2ea7fda962ee231e75778e2ccdabcd7316d', id: `bq-options-${this.name}`, onBqSelect: this.handleSelect, "aria-expanded": this.open ? 'true' : 'false', exportparts: "base:option-list", role: "listbox" }, h("slot", { key: 'fa995c491dfbc5e5f502340e6ae1e72781aeaaee' }))), h("div", { key: '9c65e42475b8a87aa14f024ce30184a158800f36', class: {
298
340
  [`bq-select__helper-text validation-${this.validationStatus}`]: true,
299
341
  '!hidden': !this.hasHelperText,
300
- }, ref: (divElem) => (this.helperTextElem = divElem), part: "helper-text" }, h("slot", { key: 'a02b29c26ce956e1621a5fa6e411b01715ea7a9a', name: "helper-text", onSlotchange: this.handleHelperTextSlotChange }))));
342
+ }, ref: (divElem) => (this.helperTextElem = divElem), part: "helper-text" }, h("slot", { key: '079d5bd093666700b90571eb85ec9b243b8c7daf', name: "helper-text", onSlotchange: this.handleHelperTextSlotChange }))));
301
343
  }
302
344
  static get delegatesFocus() { return true; }
345
+ static get formAssociated() { return true; }
303
346
  get el() { return this; }
304
347
  static get watchers() { return {
305
348
  "value": ["handleValueChange"]
306
349
  }; }
307
350
  static get style() { return BqSelectStyle0; }
308
- }, [17, "bq-select", {
351
+ }, [81, "bq-select", {
309
352
  "autofocus": [516],
310
353
  "clearButtonLabel": [513, "clear-button-label"],
311
354
  "debounceTime": [1538, "debounce-time"],
@@ -1 +1 @@
1
- {"file":"bq-select.js","mappings":"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","names":["BqSelect"],"sources":["../../packages/beeq/src/components/select/scss/bq-select.scss?tag=bq-select&encapsulation=shadow","../../packages/beeq/src/components/select/bq-select.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Select styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-select.variables';\n\n:host {\n @apply block w-full;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Label and Helper text */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__label {\n @apply flex items-center m-be-[--bq-select--label-margin-bottom];\n @apply text-[length:--bq-select--label-text-size] text-[color:--bq-select--label-text-color];\n}\n\n.bq-select__helper-text {\n @apply text-[length:--bq-select--helper-text-size] text-[color:--bq-select--helper-text-color] m-bs-[--bq-select--helper-margin-top];\n}\n\n.bq-select__helper-text.validation-error {\n @apply text-text-danger;\n}\n\n.bq-select__helper-text.validation-success {\n @apply text-text-success;\n}\n\n.bq-select__helper-text.validation-warning {\n @apply text-text-warning;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Select input group control */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__dropdown:has(:focus-within, :focus-visible) {\n // The focus state will be controlled by the dropdown element\n // if any of its children has focus, the dropdown will set the focus state to the .bq-select__control\n .bq-select__control {\n --bq-ring-width: 1px;\n --bq-ring-offset-width: 0;\n --bq-ring-color-focus: var(--bq-select--border-color-focus);\n\n @apply focus border-[color:--bq-select--border-color-focus];\n }\n}\n\n.bq-select__control {\n @apply flex items-center transition-[border-color,box-shadow] is-full;\n // Border\n @apply rounded-[--bq-select--border-radius] border-[length:--bq-select--border-width] border-[color:--bq-select--border-color];\n // Padding\n @apply pe-[--bq-select--padding-end] ps-[--bq-select--padding-start] p-b-[var(--bq-select--paddingY)];\n // Text\n @apply select-none text-[length:--bq-select--text-size] text-[color:--bq-select--text-color] placeholder:text-[color:--bq-select--text-placeholder-color];\n // Hover\n @apply [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-brand;\n\n border-style: var(--bq-select--border-style);\n\n // Enable clear button whenever the input group control is hovered or has focus\n &:not(.disabled):hover,\n &:not(.disabled):focus-within {\n .bq-select__control--clear {\n @apply inline-block;\n }\n }\n}\n\n.bq-select__control.disabled {\n @apply cursor-not-allowed opacity-60;\n}\n\n/* ------------------------------- Validation ------------------------------- */\n\n.bq-select__control.validation-error {\n @apply border-stroke-danger [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-danger;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.danger);\n\n @apply border-active-stroke-danger;\n }\n}\n\n.bq-select__control.validation-success {\n @apply border-stroke-success [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-success;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.success);\n\n @apply border-active-stroke-success;\n }\n}\n\n.bq-select__control.validation-warning {\n @apply border-stroke-warning [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-warning;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.warning);\n\n @apply border-active-stroke-warning;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Native HTML Input */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--input {\n @apply flex-auto cursor-[inherit] select-none appearance-none bg-[inherit] font-[inherit] text-[length:inherit] text-[color:inherit];\n @apply m-0 border-none p-0 min-bs-[var(--bq-select--icon-size)] min-is-0 focus:outline-none focus-visible:outline-none;\n\n box-shadow: none;\n font-weight: inherit;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Clear button */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--clear::part(button) {\n // Since the clear button is inside the input group control,\n // we need to reset the focus ring styles\n --bq-ring-width: initial;\n --bq-ring-offset-width: initial;\n --bq-ring-color-focus: initial;\n\n @apply rounded-xs border-none p-0 bs-auto;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Prefix and suffix */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--prefix,\n.bq-select__control--suffix {\n @apply pointer-events-none flex items-center text-[color:var(--bq-select--text-color)];\n}\n\n.bq-select__control--prefix {\n @apply me-[--bq-select--gap];\n}\n\n.bq-select__control--suffix {\n @apply ms-[--bq-select--gap] transition-transform duration-300 ease-in-out;\n}\n\n.bq-select__tags {\n @apply me-xs2 flex flex-1 gap-xs2;\n\n bq-tag,\n ::slotted(bq-tag) {\n @apply inline-flex;\n }\n\n bq-tag::part(text) {\n @apply text-nowrap leading-small;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Slotted and internal icons */\n/* -------------------------------------------------------------------------- */\n\nbq-icon,\n::slotted(bq-icon) {\n --bq-icon--size: var(--bq-select--icon-size) !important;\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { Placement } from '../../services/interfaces';\nimport {\n debounce,\n getTextContent,\n hasSlotContent,\n isDefined,\n isHTMLElement,\n isString,\n TDebounce,\n} from '../../shared/utils';\nimport { TInputValidation } from '../input/bq-input.types';\n\nexport type TSelectValue = string | string[];\n\n/**\n * @part base - The component's base wrapper.\n * @part button - The native HTML button used under the hood in the clear button.\n * @part clear-btn - The clear button.\n * @part control - The input control wrapper.\n * @part input-outline - The input outline wrapper that holds the tags container and the native HTML input used under the hood.\n * @part helper-text - The helper text slot container.\n * @part input - The native HTML input element used under the hood.\n * @part label - The label slot container.\n * @part panel - The select panel container\n * @part prefix - The prefix slot container.\n * @part suffix - The suffix slot container.\n * @part tags - The tags container of the BqTags for multiple selection.\n * @part tag - The tag container of the BqTag for multiple selection.\n * @part tag__base - The base wrapper of the BqTag for multiple selection.\n * @part tag__prefix - The prefix slot container of the BqTag for multiple selection.\n * @part tag__text - The text slot container of the BqTag for multiple selection.\n * @part tag__btn-close - The close button of the BqTag for multiple selection.\n * @part option-list - The option list container.\n */\n@Component({\n tag: 'bq-select',\n styleUrl: './scss/bq-select.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqSelect {\n // Own Properties\n // ====================\n\n private helperTextElem?: HTMLElement;\n private inputElem?: HTMLInputElement;\n private labelElem?: HTMLElement;\n private prefixElem?: HTMLElement;\n private suffixElem?: HTMLElement;\n\n private debounceQuery: TDebounce<void>;\n\n private fallbackInputId = 'select';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqSelectElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() displayValue?: string;\n @State() hasHelperText = false;\n @State() selectedOptions: HTMLBqOptionElement[] = [];\n\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n @State() hasValue = false;\n\n // Public Property API\n // ========================\n\n /** If true, the Select input will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /** The clear button aria label */\n @Prop({ reflect: true }) clearButtonLabel? = 'Clear value';\n\n /**\n * The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * A value of 0 means no debouncing will occur.\n */\n @Prop({ reflect: true, mutable: true }) debounceTime? = 0;\n\n /**\n * Indicates whether the Select input is disabled or not.\n * If `true`, the Select is disabled and cannot be interacted with.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n\n /** If true, the clear button won't be displayed */\n @Prop({ reflect: true }) disableClear? = false;\n\n /** Represents the distance (gutter or margin) between the Select panel and the input element. */\n @Prop({ reflect: true }) distance?: number = 8;\n\n /** The ID of the form that the Select input belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /** If true, the Select panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** The Select input name. */\n @Prop({ reflect: true }) name!: string;\n\n /** The maximum number of tags to display when multiple selection is enabled */\n @Prop({ mutable: true }) maxTagsVisible: number = 2;\n\n /** If true, the Select input will allow multiple selections. */\n @Prop({ reflect: true }) multiple?: boolean = false;\n\n /** If true, the Select panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the Select panel. */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** The Select input placeholder text value */\n @Prop({ reflect: true }) placeholder?: string;\n\n /** Position of the Select panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom';\n\n /** If true, the list of options cannot be filtered (searching won't be available) */\n @Prop({ reflect: true }) readonly?: boolean;\n\n /** Indicates whether or not the Select input is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean;\n\n /** Whether the panel should have the Select same width as the input element */\n @Prop({ reflect: true }) sameWidth?: boolean = true;\n\n /** Represents the skidding between the Select panel and the input element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the Select panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n /**\n * The validation status of the Select input.\n *\n * @remarks\n * This property is used to indicate the validation status of the select input. It can be set to one of the following values:\n * - `'none'`: No validation status is set.\n * - `'error'`: The input has a validation error.\n * - `'warning'`: The input has a validation warning.\n * - `'success'`: The input has passed validation.\n */\n @Prop({ reflect: true }) validationStatus: TInputValidation = 'none';\n\n /** The select input value, it can be used to reset the field to a previous value */\n @Prop({ reflect: true, mutable: true }) value: TSelectValue;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n if (this.multiple && isString(this.value)) {\n // NOTE: we ensure that value is an array, changing the value will trigger Watch to execute thus the return\n this.value = Array.from(JSON.parse(String(this.value)));\n return;\n }\n\n this.syncItemsFromValue();\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the Select input loses focus */\n @Event() bqBlur!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the selected value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the Select input has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the selected value has changed */\n @Event() bqSelect!: EventEmitter<{ value: string | number | string[]; item: HTMLBqOptionElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n if (this.multiple) {\n this.value = Array.isArray(this.value) ? this.value : Array.from(JSON.parse(String(this.value)));\n }\n }\n\n componentDidLoad() {\n if (this.multiple && Array.isArray(this.value)) {\n this.selectedOptions = this.options.filter((item) => this.value.includes(item.value));\n }\n\n this.handleValueChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqOpen', { capture: true })\n handleOpenChange(ev: CustomEvent<{ open: boolean }>) {\n if (!ev.composedPath().includes(this.el)) return;\n\n this.open = ev.detail.open;\n }\n\n @Listen('bqFocus', { capture: true })\n @Listen('bqBlur', { capture: true })\n stopOptionFocusBlurPropagation(ev: CustomEvent) {\n // Stop propagation of focus and blur events coming from the `bq-option` elements\n if (isHTMLElement(ev.target, 'bq-select')) return;\n\n ev.stopPropagation();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /**\n * Clears the selected value.\n *\n * @return {Promise<void>}\n * @memberof BqSelect\n */\n @Method()\n async clear(): Promise<void> {\n if (this.disabled) return;\n\n this.value = undefined;\n this.selectedOptions = [];\n if (!this.multiple) {\n this.displayValue = undefined;\n this.inputElem.value = undefined;\n }\n\n this.resetOptionsVisibility();\n this.bqClear.emit(this.el);\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleBlur = () => {\n if (this.disabled) return;\n\n this.bqBlur.emit(this.el);\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleSelect = (ev: CustomEvent<{ value: TSelectValue; item: HTMLBqOptionElement }>) => {\n if (this.disabled) return;\n\n if (this.multiple) {\n ev.stopPropagation();\n }\n\n const { value, item } = ev.detail;\n\n if (this.multiple) {\n this.handleMultipleSelection(item);\n // Clear the input value after selecting an item\n this.inputElem.value = '';\n // If multiple selection is enabled, emit the selected items array instead of relying on\n // the option list to emit the value of the selected item\n this.bqSelect.emit({ value: this.value, item });\n } else {\n this.value = value;\n }\n\n this.resetOptionsVisibility();\n this.inputElem.focus();\n };\n\n private handleMultipleSelection = (item: HTMLBqOptionElement) => {\n // Set has O(1) complexity for insertion, deletion, and search operations, compared to an Array's O(n)\n const selectedOptionsSet = new Set(this.selectedOptions);\n\n if (selectedOptionsSet.has(item)) {\n selectedOptionsSet.delete(item);\n } else {\n selectedOptionsSet.add(item);\n }\n\n this.selectedOptions = Array.from(selectedOptionsSet);\n this.value = this.selectedOptions.map((item) => item.value);\n };\n\n private handleSearchFilter = (ev: Event) => {\n if (this.disabled) return;\n\n this.debounceQuery?.cancel();\n\n const query = (ev.target as HTMLInputElement).value?.toLowerCase().trim();\n\n if (!isDefined(query)) {\n this.clear();\n } else {\n this.debounceQuery = debounce(() => {\n this.options.forEach((item: HTMLBqOptionElement) => {\n const itemLabel = this.getOptionLabel(item).toLowerCase();\n item.hidden = !itemLabel.includes(query);\n });\n }, this.debounceTime);\n\n this.debounceQuery();\n }\n\n // The panel will close once a selection is made\n // so we need to make sure it's open when the user is typing and the query is not empty\n this.open = true;\n };\n\n private handleClearClick = (ev: CustomEvent) => {\n (async () => {\n await this.clear();\n })();\n this.inputElem.focus();\n\n ev.stopPropagation();\n };\n\n private handleTagRemove = (item: HTMLBqOptionElement) => {\n if (this.disabled) return;\n\n this.handleMultipleSelection(item);\n this.bqSelect.emit({ value: this.value, item });\n };\n\n private handleLabelSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n };\n\n private handlePrefixSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem);\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem);\n };\n\n private handleHelperTextSlotChange = () => {\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n private resetOptionsVisibility = () => {\n this.options.forEach((item: HTMLBqOptionElement) => (item.hidden = false));\n };\n\n private syncItemsFromValue = () => {\n const items = this.options;\n if (!items.length) return;\n\n // Sync selected state of the BqOption elements\n this.options.forEach((option: HTMLBqOptionElement) => {\n if (this.multiple && Array.isArray(this.value)) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = option.value.toLowerCase() === String(this.value).toLowerCase();\n }\n });\n\n if (!this.multiple) {\n // Sync display label\n const checkedItem = items.filter((item) => item.value === this.value)[0];\n this.displayValue = checkedItem ? this.getOptionLabel(checkedItem) : '';\n this.inputElem.value = this.displayValue ?? '';\n } else {\n this.selectedOptions = this.options.filter((item) => this.value?.includes(item.value));\n }\n };\n\n private getOptionLabel = (item: HTMLBqOptionElement) => {\n const slot = item.shadowRoot.querySelector('slot:not([name])');\n if (!slot) return;\n\n return getTextContent(slot as HTMLSlotElement);\n };\n\n private get options() {\n return Array.from(this.el.querySelectorAll('bq-option'));\n }\n\n private get displayPlaceholder() {\n // Hide the placeholder when multiple selection is enabled and there are selected items\n return this.multiple && this.selectedOptions.length !== 0 ? undefined : this.placeholder;\n }\n\n private get displayTags() {\n return this.selectedOptions.map((item, index) => {\n if (index < this.maxTagsVisible || this.maxTagsVisible < 0) {\n return (\n <bq-tag\n key={item.value}\n removable\n size=\"xsmall\"\n variant=\"filled\"\n onBqClose={(event) => {\n // NOTE: prevents triggering bqClose on parent\n event.stopPropagation();\n this.handleTagRemove(item);\n }}\n // Prevent the tag from closing the panel when clicked\n onClick={(ev: MouseEvent) => ev.stopPropagation()}\n exportparts=\"wrapper:tag__base,prefix:tag__prefix,text:tag__text,btn-close:tag__btn-close\"\n part=\"tag\"\n >\n {this.getOptionLabel(item)}\n </bq-tag>\n );\n } else if (index === this.maxTagsVisible) {\n return (\n <bq-tag\n key=\"more\"\n size=\"xsmall\"\n variant=\"filled\"\n exportparts=\"wrapper:tag__base,prefix:tag__prefix,text:tag__text,btn-close:tag__btn-close\"\n part=\"tag\"\n >\n +{this.selectedOptions.length - index}\n </bq-tag>\n );\n }\n\n return null;\n });\n }\n\n private get hasClearIcon() {\n if (this.disableClear || this.disabled) {\n return false;\n }\n\n if (this.multiple) {\n return this.selectedOptions.length > 0;\n }\n\n return isDefined(this.displayValue);\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const labelId = `bq-select__label-${this.name || this.fallbackInputId}`;\n\n return (\n <div class=\"bq-select\" part=\"base\">\n {/* Label */}\n <label\n id={labelId}\n class={{ 'bq-select__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name || this.fallbackInputId}\n ref={(labelElem: HTMLSpanElement) => (this.labelElem = labelElem)}\n part=\"label\"\n >\n <slot name=\"label\" onSlotchange={this.handleLabelSlotChange} />\n </label>\n {/* Select dropdown */}\n <bq-dropdown\n class=\"bq-select__dropdown w-full\"\n disabled={this.disabled}\n distance={this.distance}\n keepOpenOnSelect={this.keepOpenOnSelect}\n open={this.open}\n panelHeight={this.panelHeight}\n placement={this.placement}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n exportparts=\"panel\"\n >\n {/* Input control group */}\n <div\n class={{\n 'bq-select__control': true,\n [`validation-${this.validationStatus}`]: true,\n disabled: this.disabled,\n }}\n part=\"control\"\n slot=\"trigger\"\n >\n {/* Prefix */}\n <span\n class={{ 'bq-select__control--prefix': true, '!hidden': !this.hasPrefix }}\n ref={(spanElem: HTMLSpanElement) => (this.prefixElem = spanElem)}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.handlePrefixSlotChange} />\n </span>\n <div class=\"flex flex-1 overflow-x-auto\" part=\"input-outline\">\n {/* Display selected values using BqTags for multiple selection */}\n {this.multiple && (\n <span class=\"bq-select__tags\" part=\"tags\">\n <slot name=\"tags\">{this.displayTags}</slot>\n </span>\n )}\n {/* HTML Input */}\n <input\n id={this.name || this.fallbackInputId}\n class=\"bq-select__control--input flex-grow is-full\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoFocus={this.autofocus}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-controls={`bq-options-${this.name}`}\n aria-expanded={this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n disabled={this.disabled}\n form={this.form}\n name={this.name}\n placeholder={this.displayPlaceholder}\n ref={(inputElem: HTMLInputElement) => (this.inputElem = inputElem)}\n readOnly={this.readonly}\n required={this.required}\n role=\"combobox\"\n spellcheck={false}\n type=\"text\"\n value={this.displayValue}\n part=\"input\"\n // Events\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onInput={this.handleSearchFilter}\n />\n </div>\n {/* Clear Button */}\n {this.hasClearIcon && (\n // The clear button will be visible as long as the input has a value\n // and the parent group is hovered or has focus-within\n <bq-button\n class=\"bq-select__control--clear ms-[--bq-select--gap]\"\n appearance=\"text\"\n aria-label={this.clearButtonLabel}\n size=\"small\"\n onBqClick={this.handleClearClick}\n part=\"clear-btn\"\n exportparts=\"button\"\n tabIndex={-1}\n >\n <slot name=\"clear-icon\">\n <bq-icon name=\"x-circle\" class=\"flex\" />\n </slot>\n </bq-button>\n )}\n {/* Suffix */}\n <span\n class={{ 'bq-select__control--suffix': true, 'rotate-180': this.open, 'rotate-0': !this.open }}\n ref={(spanElem: HTMLSpanElement) => (this.suffixElem = spanElem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange}>\n <bq-icon name=\"caret-down\" class=\"flex\" />\n </slot>\n </span>\n </div>\n <bq-option-list\n id={`bq-options-${this.name}`}\n onBqSelect={this.handleSelect}\n aria-expanded={this.open ? 'true' : 'false'}\n exportparts=\"base:option-list\"\n role=\"listbox\"\n >\n <slot />\n </bq-option-list>\n </bq-dropdown>\n {/* Helper text */}\n <div\n class={{\n [`bq-select__helper-text validation-${this.validationStatus}`]: true,\n '!hidden': !this.hasHelperText,\n }}\n ref={(divElem: HTMLDivElement) => (this.helperTextElem = divElem)}\n part=\"helper-text\"\n >\n <slot name=\"helper-text\" onSlotchange={this.handleHelperTextSlotChange} />\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bq-select.js","mappings":"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","names":["BqSelect"],"sources":["../../packages/beeq/src/components/select/scss/bq-select.scss?tag=bq-select&encapsulation=shadow","../../packages/beeq/src/components/select/bq-select.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Select styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-select.variables';\n\n:host {\n @apply block w-full;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Label and Helper text */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__label {\n @apply flex items-center m-be-[--bq-select--label-margin-bottom];\n @apply text-[length:--bq-select--label-text-size] text-[color:--bq-select--label-text-color];\n}\n\n.bq-select__helper-text {\n @apply text-[length:--bq-select--helper-text-size] text-[color:--bq-select--helper-text-color] m-bs-[--bq-select--helper-margin-top];\n}\n\n.bq-select__helper-text.validation-error {\n @apply text-text-danger;\n}\n\n.bq-select__helper-text.validation-success {\n @apply text-text-success;\n}\n\n.bq-select__helper-text.validation-warning {\n @apply text-text-warning;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Select input group control */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__dropdown:has(:focus-within, :focus-visible) {\n // The focus state will be controlled by the dropdown element\n // if any of its children has focus, the dropdown will set the focus state to the .bq-select__control\n .bq-select__control {\n --bq-ring-width: 1px;\n --bq-ring-offset-width: 0;\n --bq-ring-color-focus: var(--bq-select--border-color-focus);\n\n @apply focus border-[color:--bq-select--border-color-focus];\n }\n}\n\n.bq-select__control {\n @apply flex items-center transition-[border-color,box-shadow] is-full;\n // Border\n @apply rounded-[--bq-select--border-radius] border-[length:--bq-select--border-width] border-[color:--bq-select--border-color];\n // Padding\n @apply pe-[--bq-select--padding-end] ps-[--bq-select--padding-start] p-b-[var(--bq-select--paddingY)];\n // Text\n @apply select-none text-[length:--bq-select--text-size] text-[color:--bq-select--text-color] placeholder:text-[color:--bq-select--text-placeholder-color];\n // Hover\n @apply [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-brand;\n\n border-style: var(--bq-select--border-style);\n\n // Enable clear button whenever the input group control is hovered or has focus\n &:not(.disabled):hover,\n &:not(.disabled):focus-within {\n .bq-select__control--clear {\n @apply inline-block;\n }\n }\n}\n\n.bq-select__control.disabled {\n @apply cursor-not-allowed opacity-60;\n}\n\n/* ------------------------------- Validation ------------------------------- */\n\n.bq-select__control.validation-error {\n @apply border-stroke-danger [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-danger;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.danger);\n\n @apply border-active-stroke-danger;\n }\n}\n\n.bq-select__control.validation-success {\n @apply border-stroke-success [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-success;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.success);\n\n @apply border-active-stroke-success;\n }\n}\n\n.bq-select__control.validation-warning {\n @apply border-stroke-warning [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-warning;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.warning);\n\n @apply border-active-stroke-warning;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Native HTML Input */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--input {\n @apply flex-auto cursor-[inherit] select-none appearance-none bg-[inherit] font-[inherit] text-[length:inherit] text-[color:inherit];\n @apply m-0 border-none p-0 min-bs-[var(--bq-select--icon-size)] min-is-0 focus:outline-none focus-visible:outline-none;\n\n box-shadow: none;\n font-weight: inherit;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Clear button */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--clear::part(button) {\n // Since the clear button is inside the input group control,\n // we need to reset the focus ring styles\n --bq-ring-width: initial;\n --bq-ring-offset-width: initial;\n --bq-ring-color-focus: initial;\n\n @apply rounded-xs border-none p-0 bs-auto;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Prefix and suffix */\n/* -------------------------------------------------------------------------- */\n\n.bq-select__control--prefix,\n.bq-select__control--suffix {\n @apply pointer-events-none flex items-center text-[color:var(--bq-select--text-color)];\n}\n\n.bq-select__control--prefix {\n @apply me-[--bq-select--gap];\n}\n\n.bq-select__control--suffix {\n @apply ms-[--bq-select--gap] transition-transform duration-300 ease-in-out;\n}\n\n.bq-select__tags {\n @apply me-xs2 flex flex-1 gap-xs2;\n\n bq-tag,\n ::slotted(bq-tag) {\n @apply inline-flex;\n }\n\n bq-tag::part(text) {\n @apply text-nowrap leading-small;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Slotted and internal icons */\n/* -------------------------------------------------------------------------- */\n\nbq-icon,\n::slotted(bq-icon) {\n --bq-icon--size: var(--bq-select--icon-size) !important;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\n\nimport { Placement } from '../../services/interfaces';\nimport {\n debounce,\n getTextContent,\n hasSlotContent,\n isDefined,\n isHTMLElement,\n isNil,\n isString,\n TDebounce,\n} from '../../shared/utils';\nimport { TInputValidation } from '../input/bq-input.types';\n\nexport type TSelectValue = string | string[];\n\n/**\n * @part base - The component's base wrapper.\n * @part button - The native HTML button used under the hood in the clear button.\n * @part clear-btn - The clear button.\n * @part control - The input control wrapper.\n * @part input-outline - The input outline wrapper that holds the tags container and the native HTML input used under the hood.\n * @part helper-text - The helper text slot container.\n * @part input - The native HTML input element used under the hood.\n * @part label - The label slot container.\n * @part panel - The select panel container\n * @part prefix - The prefix slot container.\n * @part suffix - The suffix slot container.\n * @part tags - The tags container of the BqTags for multiple selection.\n * @part tag - The tag container of the BqTag for multiple selection.\n * @part tag__base - The base wrapper of the BqTag for multiple selection.\n * @part tag__prefix - The prefix slot container of the BqTag for multiple selection.\n * @part tag__text - The text slot container of the BqTag for multiple selection.\n * @part tag__btn-close - The close button of the BqTag for multiple selection.\n * @part option-list - The option list container.\n */\n@Component({\n tag: 'bq-select',\n styleUrl: './scss/bq-select.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqSelect {\n // Own Properties\n // ====================\n\n private helperTextElem?: HTMLElement;\n private inputElem?: HTMLInputElement;\n private labelElem?: HTMLElement;\n private prefixElem?: HTMLElement;\n private suffixElem?: HTMLElement;\n\n private debounceQuery: TDebounce<void>;\n\n private fallbackInputId = 'select';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqSelectElement;\n @AttachInternals() internals!: ElementInternals;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() displayValue?: string;\n @State() hasHelperText = false;\n @State() selectedOptions: HTMLBqOptionElement[] = [];\n\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n @State() hasValue = false;\n\n // Public Property API\n // ========================\n\n /** If true, the Select input will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /** The clear button aria label */\n @Prop({ reflect: true }) clearButtonLabel? = 'Clear value';\n\n /**\n * The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * A value of 0 means no debouncing will occur.\n */\n @Prop({ reflect: true, mutable: true }) debounceTime? = 0;\n\n /**\n * Indicates whether the Select input is disabled or not.\n * If `true`, the Select is disabled and cannot be interacted with.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n\n /** If true, the clear button won't be displayed */\n @Prop({ reflect: true }) disableClear? = false;\n\n /** Represents the distance (gutter or margin) between the Select panel and the input element. */\n @Prop({ reflect: true }) distance?: number = 8;\n\n /** The ID of the form that the Select input belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /** If true, the Select panel will remain open after a selection is made. */\n @Prop({ reflect: true }) keepOpenOnSelect?: boolean = false;\n\n /** The Select input name. */\n @Prop({ reflect: true }) name!: string;\n\n /** The maximum number of tags to display when multiple selection is enabled */\n @Prop({ mutable: true }) maxTagsVisible: number = 2;\n\n /** If true, the Select input will allow multiple selections. */\n @Prop({ reflect: true }) multiple?: boolean = false;\n\n /** If true, the Select panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the Select panel. */\n @Prop({ reflect: true }) panelHeight?: string;\n\n /** The Select input placeholder text value */\n @Prop({ reflect: true }) placeholder?: string;\n\n /** Position of the Select panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom';\n\n /** If true, the list of options cannot be filtered (searching won't be available) */\n @Prop({ reflect: true }) readonly?: boolean;\n\n /** Indicates whether or not the Select input is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean;\n\n /** Whether the panel should have the Select same width as the input element */\n @Prop({ reflect: true }) sameWidth?: boolean = true;\n\n /** Represents the skidding between the Select panel and the input element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Defines the strategy to position the Select panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n /**\n * The validation status of the Select input.\n *\n * @remarks\n * This property is used to indicate the validation status of the select input. It can be set to one of the following values:\n * - `'none'`: No validation status is set.\n * - `'error'`: The input has a validation error.\n * - `'warning'`: The input has a validation warning.\n * - `'success'`: The input has passed validation.\n */\n @Prop({ reflect: true }) validationStatus: TInputValidation = 'none';\n\n /** The select input value, it can be used to reset the field to a previous value */\n @Prop({ reflect: true, mutable: true }) value: TSelectValue;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n if (this.multiple && isString(this.value)) {\n // NOTE: we ensure that value is an array, changing the value will trigger Watch to execute thus the return\n this.value = Array.from(JSON.parse(String(this.value)));\n this.internals.setFormValue(this.value.join(','));\n return;\n }\n\n this.syncItemsFromValue();\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the Select input loses focus */\n @Event() bqBlur!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the selected value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the Select input has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqSelectElement>;\n\n /** Callback handler emitted when the selected value has changed */\n @Event() bqSelect!: EventEmitter<{ value: string | number | string[]; item: HTMLBqOptionElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n if (this.multiple) {\n this.value = Array.isArray(this.value) ? this.value : Array.from(JSON.parse(String(this.value)));\n }\n }\n\n componentDidLoad() {\n if (this.multiple && Array.isArray(this.value)) {\n this.selectedOptions = this.options.filter((item) => this.value.includes(item.value));\n }\n\n this.handleValueChange();\n }\n\n formAssociatedCallback() {\n this.internals.role = 'combobox';\n this.internals.ariaExpanded = this.open ? 'true' : 'false';\n }\n\n async formResetCallback() {\n if (isNil(this.value)) return;\n\n this.internals.setValidity({});\n this.clear();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqOpen', { capture: true })\n handleOpenChange(ev: CustomEvent<{ open: boolean }>) {\n if (!ev.composedPath().includes(this.el)) return;\n\n this.open = ev.detail.open;\n }\n\n @Listen('bqFocus', { capture: true })\n @Listen('bqBlur', { capture: true })\n stopOptionFocusBlurPropagation(ev: CustomEvent) {\n // Stop propagation of focus and blur events coming from the `bq-option` elements\n if (isHTMLElement(ev.target, 'bq-select')) return;\n\n ev.stopPropagation();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /**\n * Clears the selected value.\n *\n * @return {Promise<void>}\n * @memberof BqSelect\n */\n @Method()\n async clear(): Promise<void> {\n if (this.disabled) return;\n\n const { multiple, inputElem, bqClear, el } = this;\n\n // Clear value and selected options\n this.value = undefined;\n this.selectedOptions = [];\n\n // Clear display value and input element if not multiple\n if (!multiple) {\n this.displayValue = undefined;\n inputElem.value = undefined;\n }\n\n // Update form value and reset options visibility\n this.resetOptionsVisibility();\n\n // Emit clear event\n bqClear.emit(el);\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleBlur = () => {\n if (this.disabled) return;\n\n this.bqBlur.emit(this.el);\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleSelect = (ev: CustomEvent<{ value: TSelectValue; item: HTMLBqOptionElement }>) => {\n if (this.disabled) return;\n\n if (this.multiple) {\n ev.stopPropagation();\n }\n\n const { value, item } = ev.detail;\n\n if (this.multiple) {\n this.handleMultipleSelection(item);\n // Clear the input value after selecting an item\n this.inputElem.value = '';\n // If multiple selection is enabled, emit the selected items array instead of relying on\n // the option list to emit the value of the selected item\n this.bqSelect.emit({ value: this.value, item });\n } else {\n this.value = value;\n }\n\n this.resetOptionsVisibility();\n this.inputElem.focus();\n };\n\n private handleMultipleSelection = (item: HTMLBqOptionElement) => {\n // Set has O(1) complexity for insertion, deletion, and search operations, compared to an Array's O(n)\n const selectedOptionsSet = new Set(this.selectedOptions);\n\n if (selectedOptionsSet.has(item)) {\n selectedOptionsSet.delete(item);\n } else {\n selectedOptionsSet.add(item);\n }\n\n this.selectedOptions = Array.from(selectedOptionsSet);\n this.value = this.selectedOptions.map((item) => item.value);\n };\n\n private handleSearchFilter = (ev: Event) => {\n if (this.disabled) return;\n\n this.debounceQuery?.cancel();\n\n const query = (ev.target as HTMLInputElement).value?.toLowerCase().trim();\n\n if (!isDefined(query)) {\n this.clear();\n } else {\n this.debounceQuery = debounce(() => {\n this.options.forEach((item: HTMLBqOptionElement) => {\n const itemLabel = this.getOptionLabel(item).toLowerCase();\n item.hidden = !itemLabel.includes(query);\n });\n }, this.debounceTime);\n\n this.debounceQuery();\n }\n\n // The panel will close once a selection is made\n // so we need to make sure it's open when the user is typing and the query is not empty\n this.open = true;\n };\n\n private handleClearClick = (ev: CustomEvent) => {\n (async () => {\n await this.clear();\n })();\n this.inputElem.focus();\n\n ev.stopPropagation();\n };\n\n private handleTagRemove = (item: HTMLBqOptionElement) => {\n if (this.disabled) return;\n\n this.handleMultipleSelection(item);\n this.bqSelect.emit({ value: this.value, item });\n };\n\n private handleLabelSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n };\n\n private handlePrefixSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem);\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem);\n };\n\n private handleHelperTextSlotChange = () => {\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n private resetOptionsVisibility = () => {\n this.options.forEach((item: HTMLBqOptionElement) => (item.hidden = false));\n };\n\n private syncItemsFromValue = () => {\n const { internals, options, value } = this;\n if (!options.length) return;\n\n // Sync selected state of the BqOption elements\n this.syncSelectedOptionsState();\n\n if (this.multiple) {\n // Sync selected options for multiple selection mode\n this.selectedOptions = options.filter((option) => this.value?.includes(option.value));\n } else {\n // Sync display label for single selection mode\n this.updateDisplayLabel();\n }\n\n internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n };\n\n /**\n * Syncs the selected state of the BqOption elements which value is included in the `value` property.\n * Notice that value can be a string or an array of strings.\n *\n * @private\n * @memberof BqSelect\n */\n private syncSelectedOptionsState = () => {\n const { options, multiple, value } = this;\n const lowerCaseValue = String(value).toLowerCase();\n\n options.forEach((option: HTMLBqOptionElement) => {\n if (multiple && Array.isArray(value)) {\n option.selected = value.includes(option.value);\n } else {\n option.selected = option.value.toLowerCase() === lowerCaseValue;\n }\n });\n };\n\n /**\n * Updates the display value of the input element based on the selected option.\n *\n * @private\n * @memberof BqSelect\n */\n private updateDisplayLabel = () => {\n const { value, options, inputElem } = this;\n\n const checkedItem = options.find((item) => item.value === value);\n const displayValue = checkedItem ? this.getOptionLabel(checkedItem) : '';\n\n inputElem.value = displayValue ?? '';\n this.displayValue = displayValue;\n };\n\n private getOptionLabel = (item: HTMLBqOptionElement) => {\n const slot = item.shadowRoot.querySelector('slot:not([name])');\n if (!slot) return;\n\n return getTextContent(slot as HTMLSlotElement);\n };\n\n private get options() {\n return Array.from(this.el.querySelectorAll('bq-option'));\n }\n\n private get displayPlaceholder() {\n // Hide the placeholder when multiple selection is enabled and there are selected items\n return this.multiple && this.selectedOptions.length !== 0 ? undefined : this.placeholder;\n }\n\n private get displayTags() {\n return this.selectedOptions.map((item, index) => {\n if (index < this.maxTagsVisible || this.maxTagsVisible < 0) {\n return (\n <bq-tag\n key={item.value}\n removable\n size=\"xsmall\"\n variant=\"filled\"\n onBqClose={(event) => {\n // NOTE: prevents triggering bqClose on parent\n event.stopPropagation();\n this.handleTagRemove(item);\n }}\n // Prevent the tag from closing the panel when clicked\n onClick={(ev: MouseEvent) => ev.stopPropagation()}\n exportparts=\"wrapper:tag__base,prefix:tag__prefix,text:tag__text,btn-close:tag__btn-close\"\n part=\"tag\"\n >\n {this.getOptionLabel(item)}\n </bq-tag>\n );\n } else if (index === this.maxTagsVisible) {\n return (\n <bq-tag\n key=\"more\"\n size=\"xsmall\"\n variant=\"filled\"\n exportparts=\"wrapper:tag__base,prefix:tag__prefix,text:tag__text,btn-close:tag__btn-close\"\n part=\"tag\"\n >\n +{this.selectedOptions.length - index}\n </bq-tag>\n );\n }\n\n return null;\n });\n }\n\n private get hasClearIcon() {\n if (this.disableClear || this.disabled) {\n return false;\n }\n\n if (this.multiple) {\n return this.selectedOptions.length > 0;\n }\n\n return isDefined(this.displayValue);\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const labelId = `bq-select__label-${this.name || this.fallbackInputId}`;\n\n return (\n <div class=\"bq-select\" part=\"base\">\n {/* Label */}\n <label\n id={labelId}\n class={{ 'bq-select__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name || this.fallbackInputId}\n ref={(labelElem: HTMLSpanElement) => (this.labelElem = labelElem)}\n part=\"label\"\n >\n <slot name=\"label\" onSlotchange={this.handleLabelSlotChange} />\n </label>\n {/* Select dropdown */}\n <bq-dropdown\n class=\"bq-select__dropdown w-full\"\n disabled={this.disabled}\n distance={this.distance}\n keepOpenOnSelect={this.keepOpenOnSelect}\n open={this.open}\n panelHeight={this.panelHeight}\n placement={this.placement}\n sameWidth={this.sameWidth}\n skidding={this.skidding}\n strategy={this.strategy}\n exportparts=\"panel\"\n >\n {/* Input control group */}\n <div\n class={{\n 'bq-select__control': true,\n [`validation-${this.validationStatus}`]: true,\n disabled: this.disabled,\n }}\n part=\"control\"\n slot=\"trigger\"\n >\n {/* Prefix */}\n <span\n class={{ 'bq-select__control--prefix': true, '!hidden': !this.hasPrefix }}\n ref={(spanElem: HTMLSpanElement) => (this.prefixElem = spanElem)}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.handlePrefixSlotChange} />\n </span>\n <div class=\"flex flex-1 overflow-x-auto\" part=\"input-outline\">\n {/* Display selected values using BqTags for multiple selection */}\n {this.multiple && (\n <span class=\"bq-select__tags\" part=\"tags\">\n <slot name=\"tags\">{this.displayTags}</slot>\n </span>\n )}\n {/* HTML Input */}\n <input\n id={this.name || this.fallbackInputId}\n class=\"bq-select__control--input flex-grow is-full\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoFocus={this.autofocus}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-controls={`bq-options-${this.name}`}\n aria-expanded={this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n disabled={this.disabled}\n form={this.form}\n name={this.name}\n placeholder={this.displayPlaceholder}\n ref={(inputElem: HTMLInputElement) => (this.inputElem = inputElem)}\n readOnly={this.readonly}\n required={this.required}\n role=\"combobox\"\n spellcheck={false}\n type=\"text\"\n value={this.displayValue}\n part=\"input\"\n // Events\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onInput={this.handleSearchFilter}\n />\n </div>\n {/* Clear Button */}\n {this.hasClearIcon && (\n // The clear button will be visible as long as the input has a value\n // and the parent group is hovered or has focus-within\n <bq-button\n class=\"bq-select__control--clear ms-[--bq-select--gap]\"\n appearance=\"text\"\n aria-label={this.clearButtonLabel}\n size=\"small\"\n onBqClick={this.handleClearClick}\n part=\"clear-btn\"\n exportparts=\"button\"\n tabIndex={-1}\n >\n <slot name=\"clear-icon\">\n <bq-icon name=\"x-circle\" class=\"flex\" />\n </slot>\n </bq-button>\n )}\n {/* Suffix */}\n <span\n class={{ 'bq-select__control--suffix': true, 'rotate-180': this.open, 'rotate-0': !this.open }}\n ref={(spanElem: HTMLSpanElement) => (this.suffixElem = spanElem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange}>\n <bq-icon name=\"caret-down\" class=\"flex\" />\n </slot>\n </span>\n </div>\n <bq-option-list\n id={`bq-options-${this.name}`}\n onBqSelect={this.handleSelect}\n aria-expanded={this.open ? 'true' : 'false'}\n exportparts=\"base:option-list\"\n role=\"listbox\"\n >\n <slot />\n </bq-option-list>\n </bq-dropdown>\n {/* Helper text */}\n <div\n class={{\n [`bq-select__helper-text validation-${this.validationStatus}`]: true,\n '!hidden': !this.hasHelperText,\n }}\n ref={(divElem: HTMLDivElement) => (this.helperTextElem = divElem)}\n part=\"helper-text\"\n >\n <slot name=\"helper-text\" onSlotchange={this.handleHelperTextSlotChange} />\n </div>\n </div>\n );\n }\n}\n"],"version":3}