@beeq/core 1.8.0-beta.3 → 1.8.0-beta.4

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 (621) hide show
  1. package/dist/beeq/beeq.css +1 -1
  2. package/dist/beeq/beeq.esm.js +43 -1
  3. package/dist/beeq/beeq.esm.js.map +1 -1
  4. package/dist/beeq/index.esm.js +64 -1
  5. package/dist/beeq/index.esm.js.map +1 -1
  6. package/dist/beeq/p-01df4baa.js +1826 -0
  7. package/dist/beeq/p-01df4baa.js.map +1 -0
  8. package/dist/beeq/p-03749fbf.entry.js +212 -0
  9. package/dist/beeq/{p-010fb578.entry.js.map → p-03749fbf.entry.js.map} +1 -1
  10. package/dist/beeq/{p-010fb578.entry.js → p-03e23dca.entry.js} +101 -2
  11. package/dist/beeq/{p-45b7b5cf.entry.js.map → p-03e23dca.entry.js.map} +1 -1
  12. package/dist/beeq/p-0fce4de9.js +16 -0
  13. package/dist/beeq/{p-513bab02.js.map → p-0fce4de9.js.map} +1 -1
  14. package/dist/beeq/p-115ed5b2.js +25 -1
  15. package/dist/beeq/p-115ed5b2.js.map +1 -1
  16. package/dist/beeq/p-1c8b6eb4.js +12 -1
  17. package/dist/beeq/p-1c8b6eb4.js.map +1 -1
  18. package/dist/beeq/p-1defeea3.js +69 -0
  19. package/dist/beeq/{p-951ba558.js.map → p-1defeea3.js.map} +1 -1
  20. package/dist/beeq/p-1f3a4359.js +11 -1
  21. package/dist/beeq/p-1f3a4359.js.map +1 -1
  22. package/dist/beeq/p-27974392.entry.js +197 -0
  23. package/dist/beeq/p-27974392.entry.js.map +1 -0
  24. package/dist/beeq/p-2b2d8b0c.entry.js +114 -0
  25. package/dist/beeq/{p-9da0e8d7.entry.js.map → p-2b2d8b0c.entry.js.map} +1 -1
  26. package/dist/beeq/p-3e3fd7b5.entry.js +87 -0
  27. package/dist/beeq/{p-95d0abdc.entry.js.map → p-3e3fd7b5.entry.js.map} +1 -1
  28. package/dist/beeq/p-3ed73068.entry.js +153 -0
  29. package/dist/beeq/{p-1202161d.entry.js.map → p-3ed73068.entry.js.map} +1 -1
  30. package/dist/beeq/p-3fd0d92d.js +1228 -1
  31. package/dist/beeq/p-3fd0d92d.js.map +1 -1
  32. package/dist/beeq/p-57621be1.js +9 -1
  33. package/dist/beeq/p-57621be1.js.map +1 -1
  34. package/dist/beeq/{p-d5992d3d.entry.js → p-5a12011a.entry.js} +157 -2
  35. package/dist/beeq/{p-e7ede06e.entry.js.map → p-5a12011a.entry.js.map} +1 -1
  36. package/dist/beeq/p-5a9a73a0.js +26 -1
  37. package/dist/beeq/p-5a9a73a0.js.map +1 -1
  38. package/dist/beeq/p-5d51cadd.entry.js +121 -0
  39. package/dist/beeq/{p-f7a0a316.entry.js.map → p-5d51cadd.entry.js.map} +1 -1
  40. package/dist/beeq/p-5d8d6717.entry.js +190 -0
  41. package/dist/beeq/{p-0cbec77b.entry.js.map → p-5d8d6717.entry.js.map} +1 -1
  42. package/dist/beeq/p-5fcbf15f.entry.js +158 -0
  43. package/dist/beeq/{p-be4941d0.entry.js.map → p-5fcbf15f.entry.js.map} +1 -1
  44. package/dist/beeq/p-60ab652b.entry.js +102 -0
  45. package/dist/beeq/{p-b2acd8f3.entry.js.map → p-60ab652b.entry.js.map} +1 -1
  46. package/dist/beeq/p-687da041.js +20 -1
  47. package/dist/beeq/p-687da041.js.map +1 -1
  48. package/dist/beeq/p-7695fc8d.entry.js +215 -0
  49. package/dist/beeq/p-7695fc8d.entry.js.map +1 -0
  50. package/dist/beeq/p-7aa47927.entry.js +215 -0
  51. package/dist/beeq/p-7aa47927.entry.js.map +1 -0
  52. package/dist/beeq/p-7ea146b8.entry.js +184 -0
  53. package/dist/beeq/p-7ea146b8.entry.js.map +1 -0
  54. package/dist/beeq/p-818cd6d7.entry.js +244 -0
  55. package/dist/beeq/{p-7871f3f0.entry.js.map → p-818cd6d7.entry.js.map} +1 -1
  56. package/dist/beeq/p-89665044.entry.js +349 -0
  57. package/dist/beeq/p-89665044.entry.js.map +1 -0
  58. package/dist/beeq/p-8b6fc3ef.entry.js +135 -0
  59. package/dist/beeq/p-8b6fc3ef.entry.js.map +1 -0
  60. package/dist/beeq/p-908c57e9.entry.js +84 -0
  61. package/dist/beeq/{p-d5992d3d.entry.js.map → p-908c57e9.entry.js.map} +1 -1
  62. package/dist/beeq/p-98de0101.entry.js +146 -0
  63. package/dist/beeq/p-98de0101.entry.js.map +1 -0
  64. package/dist/beeq/p-99829fc7.js +8 -1
  65. package/dist/beeq/p-99829fc7.js.map +1 -1
  66. package/dist/beeq/p-a5dc1c94.js +118 -1
  67. package/dist/beeq/p-a5dc1c94.js.map +1 -1
  68. package/dist/beeq/p-a84d4562.js +64 -0
  69. package/dist/beeq/p-a84d4562.js.map +1 -0
  70. package/dist/beeq/p-a8cad5ab.js +5 -1
  71. package/dist/beeq/p-a8cad5ab.js.map +1 -1
  72. package/dist/beeq/{p-b994054a.entry.js → p-a94d15f9.entry.js} +152 -2
  73. package/dist/beeq/{p-6823479d.entry.js.map → p-a94d15f9.entry.js.map} +1 -1
  74. package/dist/beeq/p-ac0d84a6.entry.js +122 -0
  75. package/dist/beeq/{p-83207939.entry.js.map → p-ac0d84a6.entry.js.map} +1 -1
  76. package/dist/beeq/p-af062402.js +7 -1
  77. package/dist/beeq/p-af062402.js.map +1 -1
  78. package/dist/beeq/p-b877d662.entry.js +412 -0
  79. package/dist/beeq/p-b877d662.entry.js.map +1 -0
  80. package/dist/beeq/p-bb14b231.entry.js +460 -0
  81. package/dist/beeq/p-bb14b231.entry.js.map +1 -0
  82. package/dist/beeq/p-bc60faa1.entry.js +211 -0
  83. package/dist/beeq/{p-ded1aed2.entry.js.map → p-bc60faa1.entry.js.map} +1 -1
  84. package/dist/beeq/p-be746e37.entry.js +269 -0
  85. package/dist/beeq/p-be746e37.entry.js.map +1 -0
  86. package/dist/beeq/p-c78ae3c2.js +1983 -0
  87. package/dist/beeq/p-c78ae3c2.js.map +1 -0
  88. package/dist/beeq/p-cb917e68.entry.js +177 -0
  89. package/dist/beeq/p-cb917e68.entry.js.map +1 -0
  90. package/dist/beeq/p-cdd5b425.entry.js +274 -0
  91. package/dist/beeq/{p-2e61db84.entry.js.map → p-cdd5b425.entry.js.map} +1 -1
  92. package/dist/beeq/p-d2f682a9.entry.js +530 -0
  93. package/dist/beeq/p-d2f682a9.entry.js.map +1 -0
  94. package/dist/beeq/p-d7ce7165.js +91 -0
  95. package/dist/beeq/p-d7ce7165.js.map +1 -0
  96. package/dist/beeq/p-d8f7bf11.entry.js +272 -0
  97. package/dist/beeq/p-d8f7bf11.entry.js.map +1 -0
  98. package/dist/beeq/p-d9bcaeed.entry.js +320 -0
  99. package/dist/beeq/p-d9bcaeed.entry.js.map +1 -0
  100. package/dist/beeq/{p-b7f02fb6.entry.js → p-e06c8398.entry.js} +290 -2
  101. package/dist/beeq/p-e06c8398.entry.js.map +1 -0
  102. package/dist/beeq/p-e6911710.entry.js +365 -0
  103. package/dist/beeq/p-e6911710.entry.js.map +1 -0
  104. package/dist/beeq/p-ecd27cf2.js +11 -1
  105. package/dist/beeq/p-ecd27cf2.js.map +1 -1
  106. package/dist/beeq/p-f11a3beb.entry.js +90 -0
  107. package/dist/beeq/{p-fbf6b04b.entry.js.map → p-f11a3beb.entry.js.map} +1 -1
  108. package/dist/beeq/p-f1d6a960.entry.js +271 -0
  109. package/dist/beeq/p-f1d6a960.entry.js.map +1 -0
  110. package/dist/beeq/p-f350516b.entry.js +154 -0
  111. package/dist/beeq/p-f350516b.entry.js.map +1 -0
  112. package/dist/beeq/p-f5d59aba.entry.js +136 -0
  113. package/dist/beeq/p-f5d59aba.entry.js.map +1 -0
  114. package/dist/beeq/p-f5eb8fff.entry.js +336 -0
  115. package/dist/beeq/p-f5eb8fff.entry.js.map +1 -0
  116. package/dist/beeq/p-f69d2900.entry.js +269 -0
  117. package/dist/beeq/p-f69d2900.entry.js.map +1 -0
  118. package/dist/beeq/p-fe57aa48.entry.js +135 -0
  119. package/dist/beeq/p-fe57aa48.entry.js.map +1 -0
  120. package/dist/cjs/{assetsPath-7ead23b7.js → assetsPath-6ac8935a.js} +9 -33
  121. package/dist/cjs/assetsPath-6ac8935a.js.map +1 -0
  122. package/dist/cjs/beeq.cjs.js +3 -3
  123. package/dist/cjs/beeq.cjs.js.map +1 -1
  124. package/dist/cjs/bq-accordion-group.cjs.entry.js +4 -4
  125. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
  126. package/dist/cjs/bq-accordion.cjs.entry.js +84 -48
  127. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  128. package/dist/cjs/bq-alert.cjs.entry.js +58 -43
  129. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  130. package/dist/cjs/bq-avatar.cjs.entry.js +41 -40
  131. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  132. package/dist/cjs/bq-badge.cjs.entry.js +42 -41
  133. package/dist/cjs/bq-badge.cjs.entry.js.map +1 -1
  134. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +40 -29
  135. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  136. package/dist/cjs/bq-breadcrumb.cjs.entry.js +46 -30
  137. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
  138. package/dist/cjs/bq-button_2.cjs.entry.js +102 -85
  139. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  140. package/dist/cjs/bq-card.cjs.entry.js +4 -4
  141. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  142. package/dist/cjs/bq-checkbox.cjs.entry.js +64 -54
  143. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  144. package/dist/cjs/bq-date-picker.cjs.entry.js +161 -140
  145. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  146. package/dist/cjs/bq-dialog.cjs.entry.js +72 -50
  147. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  148. package/dist/cjs/bq-divider.cjs.entry.js +23 -20
  149. package/dist/cjs/bq-divider.cjs.entry.js.map +1 -1
  150. package/dist/cjs/bq-drawer.cjs.entry.js +49 -34
  151. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  152. package/dist/cjs/bq-dropdown_2.cjs.entry.js +44 -34
  153. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
  154. package/dist/cjs/bq-empty-state.cjs.entry.js +26 -22
  155. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  156. package/dist/cjs/bq-input.cjs.entry.js +117 -90
  157. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  158. package/dist/cjs/bq-notification.cjs.entry.js +60 -45
  159. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  160. package/dist/cjs/bq-option-group.cjs.entry.js +3 -3
  161. package/dist/cjs/bq-option-group.cjs.entry.js.map +1 -1
  162. package/dist/cjs/bq-option-list_2.cjs.entry.js +73 -53
  163. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  164. package/dist/cjs/bq-option.cjs.entry.js +62 -45
  165. package/dist/cjs/bq-option.cjs.entry.js.map +1 -1
  166. package/dist/cjs/bq-page-title.cjs.entry.js +37 -32
  167. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
  168. package/dist/cjs/bq-progress.cjs.entry.js +4 -4
  169. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  170. package/dist/cjs/bq-radio-group.cjs.entry.js +13 -7
  171. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  172. package/dist/cjs/bq-radio.cjs.entry.js +43 -37
  173. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  174. package/dist/cjs/bq-select.cjs.entry.js +186 -168
  175. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  176. package/dist/cjs/bq-side-menu-item.cjs.entry.js +69 -55
  177. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  178. package/dist/cjs/bq-side-menu.cjs.entry.js +47 -32
  179. package/dist/cjs/bq-side-menu.cjs.entry.js.map +1 -1
  180. package/dist/cjs/bq-slider.cjs.entry.js +161 -145
  181. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  182. package/dist/cjs/bq-spinner.cjs.entry.js +52 -50
  183. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  184. package/dist/cjs/bq-status.cjs.entry.js +4 -4
  185. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  186. package/dist/cjs/bq-step-item.cjs.entry.js +16 -11
  187. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  188. package/dist/cjs/bq-steps.cjs.entry.js +13 -10
  189. package/dist/cjs/bq-steps.cjs.entry.js.map +1 -1
  190. package/dist/cjs/bq-switch.cjs.entry.js +44 -32
  191. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  192. package/dist/cjs/bq-tab-group.cjs.entry.js +65 -57
  193. package/dist/cjs/bq-tab-group.cjs.entry.js.map +1 -1
  194. package/dist/cjs/bq-tab.cjs.entry.js +44 -33
  195. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  196. package/dist/cjs/bq-textarea.cjs.entry.js +81 -58
  197. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  198. package/dist/cjs/bq-toast.cjs.entry.js +42 -35
  199. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  200. package/dist/cjs/bq-tooltip.cjs.entry.js +46 -42
  201. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  202. package/dist/cjs/{debounce-f94a239b.js → debounce-1f7e1176.js} +3 -3
  203. package/dist/cjs/debounce-1f7e1176.js.map +1 -0
  204. package/dist/cjs/{index-e6d59dbb.js → index-34edf639.js} +48 -15
  205. package/dist/cjs/index-34edf639.js.map +1 -0
  206. package/dist/cjs/{index-e4c116b6.js → index-fc7876d6.js} +63 -19
  207. package/dist/cjs/index-fc7876d6.js.map +1 -0
  208. package/dist/cjs/index.cjs.js +4 -4
  209. package/dist/cjs/{isDefined-a9dd6d5b.js → isDefined-ee0026ed.js} +2 -2
  210. package/dist/cjs/{isDefined-a9dd6d5b.js.map → isDefined-ee0026ed.js.map} +1 -1
  211. package/dist/cjs/loader.cjs.js +2 -2
  212. package/dist/cjs/{slot-dd6f7db9.js → slot-2fee189a.js} +3 -4
  213. package/dist/{beeq/p-d7a88b16.js.map → cjs/slot-2fee189a.js.map} +1 -1
  214. package/dist/collection/_storybook/foundation/helper/index.js +3 -3
  215. package/dist/collection/_storybook/foundation/helper/index.js.map +1 -1
  216. package/dist/collection/collection-manifest.json +2 -2
  217. package/dist/collection/components/accordion/bq-accordion.js +72 -39
  218. package/dist/collection/components/accordion/bq-accordion.js.map +1 -1
  219. package/dist/collection/components/accordion/helper/index.js +10 -4
  220. package/dist/collection/components/accordion/helper/index.js.map +1 -1
  221. package/dist/collection/components/accordion/scss/bq-accordion.css +1 -1
  222. package/dist/collection/components/accordion-group/bq-accordion-group.js +5 -0
  223. package/dist/collection/components/accordion-group/bq-accordion-group.js.map +1 -1
  224. package/dist/collection/components/accordion-group/scss/bq-accordion-group.css +1 -1
  225. package/dist/collection/components/alert/bq-alert.js +55 -37
  226. package/dist/collection/components/alert/bq-alert.js.map +1 -1
  227. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  228. package/dist/collection/components/avatar/bq-avatar.js +40 -36
  229. package/dist/collection/components/avatar/bq-avatar.js.map +1 -1
  230. package/dist/collection/components/avatar/scss/bq-avatar.css +1 -1
  231. package/dist/collection/components/badge/bq-badge.js +40 -36
  232. package/dist/collection/components/badge/bq-badge.js.map +1 -1
  233. package/dist/collection/components/badge/scss/bq-badge.css +1 -1
  234. package/dist/collection/components/breadcrumb/bq-breadcrumb.js +45 -26
  235. package/dist/collection/components/breadcrumb/bq-breadcrumb.js.map +1 -1
  236. package/dist/collection/components/breadcrumb/scss/bq-breadcrumb.css +1 -1
  237. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js +40 -24
  238. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js.map +1 -1
  239. package/dist/collection/components/breadcrumb-item/scss/bq-breadcrumb-item.css +1 -1
  240. package/dist/collection/components/button/bq-button.js +57 -41
  241. package/dist/collection/components/button/bq-button.js.map +1 -1
  242. package/dist/collection/components/button/scss/bq-button.css +1 -1
  243. package/dist/collection/components/card/bq-card.js +5 -0
  244. package/dist/collection/components/card/bq-card.js.map +1 -1
  245. package/dist/collection/components/card/scss/bq-card.css +1 -1
  246. package/dist/collection/components/checkbox/bq-checkbox.js +63 -50
  247. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  248. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  249. package/dist/collection/components/date-picker/bq-date-picker.js +158 -134
  250. package/dist/collection/components/date-picker/bq-date-picker.js.map +1 -1
  251. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  252. package/dist/collection/components/dialog/bq-dialog.js +70 -45
  253. package/dist/collection/components/dialog/bq-dialog.js.map +1 -1
  254. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  255. package/dist/collection/components/divider/bq-divider.js +21 -15
  256. package/dist/collection/components/divider/bq-divider.js.map +1 -1
  257. package/dist/collection/components/divider/scss/bq-divider.css +1 -1
  258. package/dist/collection/components/drawer/bq-drawer.js +47 -29
  259. package/dist/collection/components/drawer/bq-drawer.js.map +1 -1
  260. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  261. package/dist/collection/components/dropdown/bq-dropdown.js +34 -23
  262. package/dist/collection/components/dropdown/bq-dropdown.js.map +1 -1
  263. package/dist/collection/components/empty-state/bq-empty-state.js +25 -18
  264. package/dist/collection/components/empty-state/bq-empty-state.js.map +1 -1
  265. package/dist/collection/components/icon/bq-icon.js +41 -37
  266. package/dist/collection/components/icon/bq-icon.js.map +1 -1
  267. package/dist/collection/components/icon/scss/bq-icon.css +1 -1
  268. package/dist/collection/components/input/bq-input.js +113 -83
  269. package/dist/collection/components/input/bq-input.js.map +1 -1
  270. package/dist/collection/components/input/scss/bq-input.css +1 -1
  271. package/dist/collection/components/notification/bq-notification.js +57 -39
  272. package/dist/collection/components/notification/bq-notification.js.map +1 -1
  273. package/dist/collection/components/notification/scss/bq-notification.css +1 -1
  274. package/dist/collection/components/option/bq-option.js +60 -40
  275. package/dist/collection/components/option/bq-option.js.map +1 -1
  276. package/dist/collection/components/option/scss/bq-option.css +1 -1
  277. package/dist/collection/components/option-group/bq-option-group.js +5 -0
  278. package/dist/collection/components/option-group/bq-option-group.js.map +1 -1
  279. package/dist/collection/components/option-group/scss/bq-option-group.css +1 -1
  280. package/dist/collection/components/option-list/bq-option-list.js +10 -0
  281. package/dist/collection/components/option-list/bq-option-list.js.map +1 -1
  282. package/dist/collection/components/option-list/scss/bq-option-list.css +1 -1
  283. package/dist/collection/components/page-title/bq-page-title.js +35 -27
  284. package/dist/collection/components/page-title/bq-page-title.js.map +1 -1
  285. package/dist/collection/components/page-title/scss/bq-page-title.css +1 -1
  286. package/dist/collection/components/panel/bq-panel.js +11 -6
  287. package/dist/collection/components/panel/bq-panel.js.map +1 -1
  288. package/dist/collection/components/panel/scss/bq-panel.css +1 -1
  289. package/dist/collection/components/progress/bq-progress.js +5 -0
  290. package/dist/collection/components/progress/bq-progress.js.map +1 -1
  291. package/dist/collection/components/progress/scss/bq-progress.css +1 -1
  292. package/dist/collection/components/radio/bq-radio.js +43 -34
  293. package/dist/collection/components/radio/bq-radio.js.map +1 -1
  294. package/dist/collection/components/radio/scss/bq-radio.css +1 -1
  295. package/dist/collection/components/radio-group/bq-radio-group.js +12 -3
  296. package/dist/collection/components/radio-group/bq-radio-group.js.map +1 -1
  297. package/dist/collection/components/select/bq-select.js +182 -161
  298. package/dist/collection/components/select/bq-select.js.map +1 -1
  299. package/dist/collection/components/select/scss/bq-select.css +1 -1
  300. package/dist/collection/components/side-menu/bq-side-menu.js +44 -29
  301. package/dist/collection/components/side-menu/bq-side-menu.js.map +1 -1
  302. package/dist/collection/components/side-menu/scss/bq-side-menu.css +1 -1
  303. package/dist/collection/components/side-menu-item/bq-side-menu-item.js +68 -51
  304. package/dist/collection/components/side-menu-item/bq-side-menu-item.js.map +1 -1
  305. package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
  306. package/dist/collection/components/slider/bq-slider.js +159 -140
  307. package/dist/collection/components/slider/bq-slider.js.map +1 -1
  308. package/dist/collection/components/slider/scss/bq-slider.css +1 -1
  309. package/dist/collection/components/spinner/bq-spinner.js +51 -46
  310. package/dist/collection/components/spinner/bq-spinner.js.map +1 -1
  311. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  312. package/dist/collection/components/status/bq-status.js +5 -0
  313. package/dist/collection/components/status/bq-status.js.map +1 -1
  314. package/dist/collection/components/status/scss/bq-status.css +1 -1
  315. package/dist/collection/components/step-item/bq-step-item.js +17 -7
  316. package/dist/collection/components/step-item/bq-step-item.js.map +1 -1
  317. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  318. package/dist/collection/components/steps/bq-steps.js +12 -6
  319. package/dist/collection/components/steps/bq-steps.js.map +1 -1
  320. package/dist/collection/components/steps/scss/bq-steps.css +1 -1
  321. package/dist/collection/components/switch/bq-switch.js +42 -27
  322. package/dist/collection/components/switch/bq-switch.js.map +1 -1
  323. package/dist/collection/components/switch/scss/bq-switch.css +1 -1
  324. package/dist/collection/components/tab/bq-tab.js +42 -28
  325. package/dist/collection/components/tab/bq-tab.js.map +1 -1
  326. package/dist/collection/components/tab/scss/bq-tab.css +1 -1
  327. package/dist/collection/components/tab-group/bq-tab-group.js +64 -53
  328. package/dist/collection/components/tab-group/bq-tab-group.js.map +1 -1
  329. package/dist/collection/components/tag/bq-tag.js +64 -46
  330. package/dist/collection/components/tag/bq-tag.js.map +1 -1
  331. package/dist/collection/components/tag/scss/bq-tag.css +1 -1
  332. package/dist/collection/components/textarea/bq-textarea.js +78 -52
  333. package/dist/collection/components/textarea/bq-textarea.js.map +1 -1
  334. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  335. package/dist/collection/components/toast/bq-toast.js +40 -30
  336. package/dist/collection/components/toast/bq-toast.js.map +1 -1
  337. package/dist/collection/components/toast/scss/bq-toast.css +1 -1
  338. package/dist/collection/components/tooltip/bq-tooltip.js +45 -38
  339. package/dist/collection/components/tooltip/bq-tooltip.js.map +1 -1
  340. package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
  341. package/dist/collection/index.js +0 -1
  342. package/dist/collection/index.js.map +1 -1
  343. package/dist/collection/services/libraries/floating-ui/index.js +4 -0
  344. package/dist/collection/services/libraries/floating-ui/index.js.map +1 -1
  345. package/dist/collection/shared/utils/assetsPath.js +8 -32
  346. package/dist/collection/shared/utils/assetsPath.js.map +1 -1
  347. package/dist/collection/shared/utils/debounce.js +2 -2
  348. package/dist/collection/shared/utils/debounce.js.map +1 -1
  349. package/dist/collection/shared/utils/slot.js +2 -3
  350. package/dist/collection/shared/utils/slot.js.map +1 -1
  351. package/dist/components/assetsPath.js +8 -32
  352. package/dist/components/assetsPath.js.map +1 -1
  353. package/dist/components/bq-accordion-group.js +2 -2
  354. package/dist/components/bq-accordion-group.js.map +1 -1
  355. package/dist/components/bq-accordion.js +81 -45
  356. package/dist/components/bq-accordion.js.map +1 -1
  357. package/dist/components/bq-alert.js +54 -39
  358. package/dist/components/bq-alert.js.map +1 -1
  359. package/dist/components/bq-avatar.js +39 -38
  360. package/dist/components/bq-avatar.js.map +1 -1
  361. package/dist/components/bq-badge2.js +39 -38
  362. package/dist/components/bq-badge2.js.map +1 -1
  363. package/dist/components/bq-breadcrumb-item.js +37 -26
  364. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  365. package/dist/components/bq-breadcrumb.js +44 -28
  366. package/dist/components/bq-breadcrumb.js.map +1 -1
  367. package/dist/components/bq-button2.js +56 -43
  368. package/dist/components/bq-button2.js.map +1 -1
  369. package/dist/components/bq-card.js +2 -2
  370. package/dist/components/bq-card.js.map +1 -1
  371. package/dist/components/bq-checkbox.js +62 -52
  372. package/dist/components/bq-checkbox.js.map +1 -1
  373. package/dist/components/bq-date-picker.js +157 -136
  374. package/dist/components/bq-date-picker.js.map +1 -1
  375. package/dist/components/bq-dialog.js +69 -47
  376. package/dist/components/bq-dialog.js.map +1 -1
  377. package/dist/components/bq-divider2.js +20 -17
  378. package/dist/components/bq-divider2.js.map +1 -1
  379. package/dist/components/bq-drawer.js +46 -31
  380. package/dist/components/bq-drawer.js.map +1 -1
  381. package/dist/components/bq-dropdown2.js +32 -24
  382. package/dist/components/bq-dropdown2.js.map +1 -1
  383. package/dist/components/bq-empty-state.js +23 -19
  384. package/dist/components/bq-empty-state.js.map +1 -1
  385. package/dist/components/bq-icon2.js +42 -38
  386. package/dist/components/bq-icon2.js.map +1 -1
  387. package/dist/components/bq-input.js +112 -85
  388. package/dist/components/bq-input.js.map +1 -1
  389. package/dist/components/bq-notification.js +56 -41
  390. package/dist/components/bq-notification.js.map +1 -1
  391. package/dist/components/bq-option-group.js +2 -2
  392. package/dist/components/bq-option-group.js.map +1 -1
  393. package/dist/components/bq-option-list2.js +7 -2
  394. package/dist/components/bq-option-list2.js.map +1 -1
  395. package/dist/components/bq-option.js +59 -42
  396. package/dist/components/bq-option.js.map +1 -1
  397. package/dist/components/bq-page-title.js +34 -29
  398. package/dist/components/bq-page-title.js.map +1 -1
  399. package/dist/components/bq-panel2.js +10 -8
  400. package/dist/components/bq-panel2.js.map +1 -1
  401. package/dist/components/bq-progress.js +2 -2
  402. package/dist/components/bq-progress.js.map +1 -1
  403. package/dist/components/bq-radio-group.js +10 -4
  404. package/dist/components/bq-radio-group.js.map +1 -1
  405. package/dist/components/bq-radio.js +43 -37
  406. package/dist/components/bq-radio.js.map +1 -1
  407. package/dist/components/bq-select.js +181 -163
  408. package/dist/components/bq-select.js.map +1 -1
  409. package/dist/components/bq-side-menu-item.js +67 -53
  410. package/dist/components/bq-side-menu-item.js.map +1 -1
  411. package/dist/components/bq-side-menu.js +45 -30
  412. package/dist/components/bq-side-menu.js.map +1 -1
  413. package/dist/components/bq-slider.js +158 -142
  414. package/dist/components/bq-slider.js.map +1 -1
  415. package/dist/components/bq-spinner.js +49 -47
  416. package/dist/components/bq-spinner.js.map +1 -1
  417. package/dist/components/bq-status.js +2 -2
  418. package/dist/components/bq-status.js.map +1 -1
  419. package/dist/components/bq-step-item.js +14 -9
  420. package/dist/components/bq-step-item.js.map +1 -1
  421. package/dist/components/bq-steps.js +11 -8
  422. package/dist/components/bq-steps.js.map +1 -1
  423. package/dist/components/bq-switch.js +41 -29
  424. package/dist/components/bq-switch.js.map +1 -1
  425. package/dist/components/bq-tab-group.js +62 -54
  426. package/dist/components/bq-tab-group.js.map +1 -1
  427. package/dist/components/bq-tab.js +41 -30
  428. package/dist/components/bq-tab.js.map +1 -1
  429. package/dist/components/bq-tag2.js +63 -48
  430. package/dist/components/bq-tag2.js.map +1 -1
  431. package/dist/components/bq-textarea.js +77 -54
  432. package/dist/components/bq-textarea.js.map +1 -1
  433. package/dist/components/bq-toast.js +39 -32
  434. package/dist/components/bq-toast.js.map +1 -1
  435. package/dist/components/bq-tooltip2.js +44 -40
  436. package/dist/components/bq-tooltip2.js.map +1 -1
  437. package/dist/components/debounce.js +2 -2
  438. package/dist/components/debounce.js.map +1 -1
  439. package/dist/components/index2.js +62 -18
  440. package/dist/components/index2.js.map +1 -1
  441. package/dist/components/slot.js +2 -3
  442. package/dist/components/slot.js.map +1 -1
  443. package/dist/esm/{assetsPath-c02b0e16.js → assetsPath-e2f1ceb9.js} +9 -33
  444. package/dist/esm/assetsPath-e2f1ceb9.js.map +1 -0
  445. package/dist/esm/beeq.js +4 -4
  446. package/dist/esm/beeq.js.map +1 -1
  447. package/dist/esm/bq-accordion-group.entry.js +4 -4
  448. package/dist/esm/bq-accordion-group.entry.js.map +1 -1
  449. package/dist/esm/bq-accordion.entry.js +84 -48
  450. package/dist/esm/bq-accordion.entry.js.map +1 -1
  451. package/dist/esm/bq-alert.entry.js +58 -43
  452. package/dist/esm/bq-alert.entry.js.map +1 -1
  453. package/dist/esm/bq-avatar.entry.js +41 -40
  454. package/dist/esm/bq-avatar.entry.js.map +1 -1
  455. package/dist/esm/bq-badge.entry.js +42 -41
  456. package/dist/esm/bq-badge.entry.js.map +1 -1
  457. package/dist/esm/bq-breadcrumb-item.entry.js +40 -29
  458. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  459. package/dist/esm/bq-breadcrumb.entry.js +46 -30
  460. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  461. package/dist/esm/bq-button_2.entry.js +102 -85
  462. package/dist/esm/bq-button_2.entry.js.map +1 -1
  463. package/dist/esm/bq-card.entry.js +4 -4
  464. package/dist/esm/bq-card.entry.js.map +1 -1
  465. package/dist/esm/bq-checkbox.entry.js +64 -54
  466. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  467. package/dist/esm/bq-date-picker.entry.js +161 -140
  468. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  469. package/dist/esm/bq-dialog.entry.js +72 -50
  470. package/dist/esm/bq-dialog.entry.js.map +1 -1
  471. package/dist/esm/bq-divider.entry.js +23 -20
  472. package/dist/esm/bq-divider.entry.js.map +1 -1
  473. package/dist/esm/bq-drawer.entry.js +49 -34
  474. package/dist/esm/bq-drawer.entry.js.map +1 -1
  475. package/dist/esm/bq-dropdown_2.entry.js +44 -34
  476. package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
  477. package/dist/esm/bq-empty-state.entry.js +26 -22
  478. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  479. package/dist/esm/bq-input.entry.js +117 -90
  480. package/dist/esm/bq-input.entry.js.map +1 -1
  481. package/dist/esm/bq-notification.entry.js +60 -45
  482. package/dist/esm/bq-notification.entry.js.map +1 -1
  483. package/dist/esm/bq-option-group.entry.js +3 -3
  484. package/dist/esm/bq-option-group.entry.js.map +1 -1
  485. package/dist/esm/bq-option-list_2.entry.js +73 -53
  486. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  487. package/dist/esm/bq-option.entry.js +62 -45
  488. package/dist/esm/bq-option.entry.js.map +1 -1
  489. package/dist/esm/bq-page-title.entry.js +37 -32
  490. package/dist/esm/bq-page-title.entry.js.map +1 -1
  491. package/dist/esm/bq-progress.entry.js +4 -4
  492. package/dist/esm/bq-progress.entry.js.map +1 -1
  493. package/dist/esm/bq-radio-group.entry.js +13 -7
  494. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  495. package/dist/esm/bq-radio.entry.js +43 -37
  496. package/dist/esm/bq-radio.entry.js.map +1 -1
  497. package/dist/esm/bq-select.entry.js +186 -168
  498. package/dist/esm/bq-select.entry.js.map +1 -1
  499. package/dist/esm/bq-side-menu-item.entry.js +69 -55
  500. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  501. package/dist/esm/bq-side-menu.entry.js +47 -32
  502. package/dist/esm/bq-side-menu.entry.js.map +1 -1
  503. package/dist/esm/bq-slider.entry.js +161 -145
  504. package/dist/esm/bq-slider.entry.js.map +1 -1
  505. package/dist/esm/bq-spinner.entry.js +52 -50
  506. package/dist/esm/bq-spinner.entry.js.map +1 -1
  507. package/dist/esm/bq-status.entry.js +4 -4
  508. package/dist/esm/bq-status.entry.js.map +1 -1
  509. package/dist/esm/bq-step-item.entry.js +16 -11
  510. package/dist/esm/bq-step-item.entry.js.map +1 -1
  511. package/dist/esm/bq-steps.entry.js +13 -10
  512. package/dist/esm/bq-steps.entry.js.map +1 -1
  513. package/dist/esm/bq-switch.entry.js +44 -32
  514. package/dist/esm/bq-switch.entry.js.map +1 -1
  515. package/dist/esm/bq-tab-group.entry.js +65 -57
  516. package/dist/esm/bq-tab-group.entry.js.map +1 -1
  517. package/dist/esm/bq-tab.entry.js +44 -33
  518. package/dist/esm/bq-tab.entry.js.map +1 -1
  519. package/dist/esm/bq-textarea.entry.js +81 -58
  520. package/dist/esm/bq-textarea.entry.js.map +1 -1
  521. package/dist/esm/bq-toast.entry.js +42 -35
  522. package/dist/esm/bq-toast.entry.js.map +1 -1
  523. package/dist/esm/bq-tooltip.entry.js +46 -42
  524. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  525. package/dist/esm/{debounce-c82e3da1.js → debounce-3e72f418.js} +3 -3
  526. package/dist/esm/debounce-3e72f418.js.map +1 -0
  527. package/dist/esm/{index-efc1c2ef.js → index-033f1efb.js} +48 -16
  528. package/dist/esm/index-033f1efb.js.map +1 -0
  529. package/dist/esm/{index-136429a6.js → index-1618c78b.js} +63 -19
  530. package/dist/esm/index-1618c78b.js.map +1 -0
  531. package/dist/esm/index.js +5 -5
  532. package/dist/esm/{isDefined-1e676215.js → isDefined-650befc3.js} +2 -2
  533. package/dist/esm/{isDefined-1e676215.js.map → isDefined-650befc3.js.map} +1 -1
  534. package/dist/esm/loader.js +3 -3
  535. package/dist/esm/{slot-179d109d.js → slot-58bfedb5.js} +3 -4
  536. package/dist/esm/slot-58bfedb5.js.map +1 -0
  537. package/dist/hydrate/index.d.ts +10 -4
  538. package/dist/hydrate/index.js +3769 -1941
  539. package/dist/hydrate/index.mjs +3769 -1941
  540. package/dist/types/_storybook/foundation/helper/index.d.ts +1 -3
  541. package/dist/types/components/radio/bq-radio.d.ts +0 -5
  542. package/dist/types/index.d.ts +1 -1
  543. package/dist/types/shared/utils/assetsPath.d.ts +1 -10
  544. package/dist/types/stencil-public-runtime.d.ts +4 -0
  545. package/package.json +4 -4
  546. package/dist/beeq/p-05b44bb7.entry.js +0 -6
  547. package/dist/beeq/p-05b44bb7.entry.js.map +0 -1
  548. package/dist/beeq/p-0cbec77b.entry.js +0 -6
  549. package/dist/beeq/p-1202161d.entry.js +0 -6
  550. package/dist/beeq/p-17b341dd.entry.js +0 -6
  551. package/dist/beeq/p-17b341dd.entry.js.map +0 -1
  552. package/dist/beeq/p-1d81f9e5.entry.js +0 -6
  553. package/dist/beeq/p-1d81f9e5.entry.js.map +0 -1
  554. package/dist/beeq/p-2714ce21.entry.js +0 -6
  555. package/dist/beeq/p-2714ce21.entry.js.map +0 -1
  556. package/dist/beeq/p-2e61db84.entry.js +0 -6
  557. package/dist/beeq/p-32f74048.entry.js +0 -6
  558. package/dist/beeq/p-32f74048.entry.js.map +0 -1
  559. package/dist/beeq/p-339d14c8.entry.js +0 -6
  560. package/dist/beeq/p-339d14c8.entry.js.map +0 -1
  561. package/dist/beeq/p-35ec6cac.entry.js +0 -6
  562. package/dist/beeq/p-35ec6cac.entry.js.map +0 -1
  563. package/dist/beeq/p-38d4bd8a.js +0 -6
  564. package/dist/beeq/p-38d4bd8a.js.map +0 -1
  565. package/dist/beeq/p-3ea228d3.entry.js +0 -6
  566. package/dist/beeq/p-3ea228d3.entry.js.map +0 -1
  567. package/dist/beeq/p-45b7b5cf.entry.js +0 -6
  568. package/dist/beeq/p-45e674b4.entry.js +0 -6
  569. package/dist/beeq/p-45e674b4.entry.js.map +0 -1
  570. package/dist/beeq/p-4954154f.entry.js +0 -6
  571. package/dist/beeq/p-4954154f.entry.js.map +0 -1
  572. package/dist/beeq/p-513bab02.js +0 -6
  573. package/dist/beeq/p-5f3ce05a.entry.js +0 -6
  574. package/dist/beeq/p-5f3ce05a.entry.js.map +0 -1
  575. package/dist/beeq/p-6823479d.entry.js +0 -6
  576. package/dist/beeq/p-76e714c6.js +0 -7
  577. package/dist/beeq/p-76e714c6.js.map +0 -1
  578. package/dist/beeq/p-7871f3f0.entry.js +0 -6
  579. package/dist/beeq/p-7a049750.entry.js +0 -6
  580. package/dist/beeq/p-7a049750.entry.js.map +0 -1
  581. package/dist/beeq/p-83207939.entry.js +0 -6
  582. package/dist/beeq/p-8d8993ba.entry.js +0 -6
  583. package/dist/beeq/p-8d8993ba.entry.js.map +0 -1
  584. package/dist/beeq/p-9406afc0.entry.js +0 -6
  585. package/dist/beeq/p-9406afc0.entry.js.map +0 -1
  586. package/dist/beeq/p-94899104.entry.js +0 -6
  587. package/dist/beeq/p-94899104.entry.js.map +0 -1
  588. package/dist/beeq/p-951ba558.js +0 -6
  589. package/dist/beeq/p-95d0abdc.entry.js +0 -6
  590. package/dist/beeq/p-9da0e8d7.entry.js +0 -6
  591. package/dist/beeq/p-a535a72f.entry.js +0 -6
  592. package/dist/beeq/p-a535a72f.entry.js.map +0 -1
  593. package/dist/beeq/p-a5a17e6e.entry.js +0 -6
  594. package/dist/beeq/p-a5a17e6e.entry.js.map +0 -1
  595. package/dist/beeq/p-b2acd8f3.entry.js +0 -6
  596. package/dist/beeq/p-b7f02fb6.entry.js.map +0 -1
  597. package/dist/beeq/p-b994054a.entry.js.map +0 -1
  598. package/dist/beeq/p-be4941d0.entry.js +0 -6
  599. package/dist/beeq/p-d7a88b16.js +0 -6
  600. package/dist/beeq/p-dd206dba.entry.js +0 -6
  601. package/dist/beeq/p-dd206dba.entry.js.map +0 -1
  602. package/dist/beeq/p-ded1aed2.entry.js +0 -6
  603. package/dist/beeq/p-e08d9b52.entry.js +0 -6
  604. package/dist/beeq/p-e08d9b52.entry.js.map +0 -1
  605. package/dist/beeq/p-e572b038.entry.js +0 -6
  606. package/dist/beeq/p-e572b038.entry.js.map +0 -1
  607. package/dist/beeq/p-e5afdf8c.js +0 -6
  608. package/dist/beeq/p-e5afdf8c.js.map +0 -1
  609. package/dist/beeq/p-e7ede06e.entry.js +0 -6
  610. package/dist/beeq/p-f7a0a316.entry.js +0 -6
  611. package/dist/beeq/p-fbf6b04b.entry.js +0 -6
  612. package/dist/cjs/assetsPath-7ead23b7.js.map +0 -1
  613. package/dist/cjs/debounce-f94a239b.js.map +0 -1
  614. package/dist/cjs/index-e4c116b6.js.map +0 -1
  615. package/dist/cjs/index-e6d59dbb.js.map +0 -1
  616. package/dist/cjs/slot-dd6f7db9.js.map +0 -1
  617. package/dist/esm/assetsPath-c02b0e16.js.map +0 -1
  618. package/dist/esm/debounce-c82e3da1.js.map +0 -1
  619. package/dist/esm/index-136429a6.js.map +0 -1
  620. package/dist/esm/index-efc1c2ef.js.map +0 -1
  621. package/dist/esm/slot-179d109d.js.map +0 -1
@@ -14,26 +14,6 @@ import { hasSlotContent, validatePropValue } from "../../shared/utils";
14
14
  */
15
15
  export class BqTab {
16
16
  constructor() {
17
- // Local methods
18
- // Internal business logic.
19
- // These methods cannot be called from the host element.
20
- // =======================================================
21
- this.handleClick = () => {
22
- this.active = true;
23
- this.bqClick.emit(this.el);
24
- };
25
- this.handleOnFocus = () => {
26
- this.bqFocus.emit(this.el);
27
- };
28
- this.handleOnBlur = () => {
29
- this.bqBlur.emit(this.el);
30
- };
31
- this.handleOnKeyDown = (event) => {
32
- this.bqKeyDown.emit(event);
33
- };
34
- this.handleIconSlotChange = () => {
35
- this.hasIcon = hasSlotContent(this.iconElement, 'icon');
36
- };
37
17
  this.tabIndex = null;
38
18
  this.hasIcon = false;
39
19
  this.active = undefined;
@@ -44,6 +24,13 @@ export class BqTab {
44
24
  this.tabId = undefined;
45
25
  this.controls = undefined;
46
26
  }
27
+ // Own Properties
28
+ // ====================
29
+ buttonElement;
30
+ iconElement;
31
+ // Reference to host HTML element
32
+ // ===================================
33
+ el;
47
34
  // Prop lifecycle events
48
35
  // =======================
49
36
  checkPropValues() {
@@ -51,6 +38,17 @@ export class BqTab {
51
38
  validatePropValue(TAB_ORIENTATION, 'horizontal', this.el, 'orientation');
52
39
  validatePropValue(TAB_PLACEMENT, 'start', this.el, 'placement');
53
40
  }
41
+ // Events section
42
+ // Requires JSDocs for public API documentation
43
+ // ==============================================
44
+ /** Handler to be called when the tab state changes */
45
+ bqClick;
46
+ /** Handler to be called when the tab gets focus */
47
+ bqFocus;
48
+ /** Handler to be called when the tab loses focus */
49
+ bqBlur;
50
+ /** Handler to be called when the tab key is pressed */
51
+ bqKeyDown;
54
52
  // Component lifecycle events
55
53
  // Ordered by their natural call order
56
54
  // =====================================
@@ -70,24 +68,21 @@ export class BqTab {
70
68
  * Use this method instead of the global `element.click()`.
71
69
  */
72
70
  async vClick() {
73
- var _a;
74
- (_a = this.buttonElement) === null || _a === void 0 ? void 0 : _a.click();
71
+ this.buttonElement?.click();
75
72
  }
76
73
  /**
77
74
  * Sets focus on the native `<button>` HTML element used under the hood.
78
75
  * Use this method instead of the global `element.focus()`.
79
76
  */
80
77
  async vFocus() {
81
- var _a;
82
- (_a = this.buttonElement) === null || _a === void 0 ? void 0 : _a.focus();
78
+ this.buttonElement?.focus();
83
79
  }
84
80
  /**
85
81
  * Remove focus from the native `<button>` HTML element used under the hood.
86
82
  * Use this method instead of the global `element.blur()`.
87
83
  */
88
84
  async vBlur() {
89
- var _a;
90
- (_a = this.buttonElement) === null || _a === void 0 ? void 0 : _a.blur();
85
+ this.buttonElement?.blur();
91
86
  }
92
87
  /**
93
88
  * Sets tabindex on the native `<button>` HTML element used under the hood.
@@ -96,10 +91,29 @@ export class BqTab {
96
91
  async enableFocus(value) {
97
92
  this.tabIndex = value ? 0 : null;
98
93
  }
94
+ // Local methods
95
+ // Internal business logic.
96
+ // These methods cannot be called from the host element.
97
+ // =======================================================
98
+ handleClick = () => {
99
+ this.active = true;
100
+ this.bqClick.emit(this.el);
101
+ };
102
+ handleOnFocus = () => {
103
+ this.bqFocus.emit(this.el);
104
+ };
105
+ handleOnBlur = () => {
106
+ this.bqBlur.emit(this.el);
107
+ };
108
+ handleOnKeyDown = (event) => {
109
+ this.bqKeyDown.emit(event);
110
+ };
111
+ handleIconSlotChange = () => {
112
+ this.hasIcon = hasSlotContent(this.iconElement, 'icon');
113
+ };
99
114
  get tabindex() {
100
- var _a, _b;
101
115
  // NOTE: this.active is undefined when is not part of bq-tab-group
102
- return `${(_a = this.tabIndex) !== null && _a !== void 0 ? _a : -1 + +((_b = this.active) !== null && _b !== void 0 ? _b : 1)}`;
116
+ return `${this.tabIndex ?? -1 + +(this.active ?? 1)}`;
103
117
  }
104
118
  // render() function
105
119
  // Always the last one in the class.
@@ -1 +1 @@
1
- {"version":3,"file":"bq-tab.js","sourceRoot":"","sources":["../../../../../../src/components/tab/bq-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { TAB_ORIENTATION, TAB_PLACEMENT, TAB_SIZE, TTabOrientation, TTabPlacement, TTabSize } from './bq-tab.types';\nimport { hasSlotContent, validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The HTML button used under the hood.\n * @part content - The HTML `<div>` element that holds the content.\n * @part icon - The HTML `<div>` element that holds the icon content.\n * @part text - The HTML `<div>` element that holds the text content.\n * @part underline - The HTML `<div>` element that display active state.\n */\n@Component({\n tag: 'bq-tab',\n styleUrl: './scss/bq-tab.scss',\n shadow: true,\n})\nexport class BqTab {\n // Own Properties\n // ====================\n\n private buttonElement: HTMLButtonElement;\n private iconElement: HTMLSpanElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqTabElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() tabIndex: number | null = null;\n @State() hasIcon: boolean = false;\n\n // Public Property API\n // ========================\n\n /** If true tab is active */\n @Prop({ reflect: true, mutable: true }) active?: boolean;\n\n /** If true tab is disabled */\n @Prop({ reflect: true }) disabled = false;\n\n /** The size of the tab */\n @Prop({ reflect: true }) size: TTabSize = 'medium';\n\n /** The direction that tab should be render */\n @Prop({ reflect: true }) orientation?: TTabOrientation = 'horizontal';\n\n /** The placement that tab should be render */\n @Prop({ reflect: true }) placement?: TTabPlacement = 'start';\n\n /** The id of the tab */\n @Prop({ reflect: true }) tabId!: string;\n\n /** The tab panel id that the tab controls */\n @Prop({ reflect: true }) controls!: string;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('size')\n @Watch('orientation')\n @Watch('placement')\n checkPropValues() {\n validatePropValue(TAB_SIZE, 'medium', this.el, 'size');\n validatePropValue(TAB_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(TAB_PLACEMENT, 'start', this.el, 'placement');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the tab state changes */\n @Event() bqClick: EventEmitter<HTMLBqTabElement>;\n\n /** Handler to be called when the tab gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqTabElement>;\n\n /** Handler to be called when the tab loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqTabElement>;\n\n /** Handler to be called when the tab key is pressed */\n @Event() bqKeyDown: EventEmitter<KeyboardEvent>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\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 * Simulate a click event on the native `<button>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.buttonElement?.click();\n }\n\n /**\n * Sets focus on the native `<button>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.buttonElement?.focus();\n }\n\n /**\n * Remove focus from the native `<button>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.buttonElement?.blur();\n }\n\n /**\n * Sets tabindex on the native `<button>` HTML element used under the hood.\n * This method is used inside `<bq-tab-group>` to make tab focusable after the active one is focused\n */\n @Method()\n async enableFocus(value: boolean) {\n this.tabIndex = value ? 0 : null;\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.active = 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 handleIconSlotChange = () => {\n this.hasIcon = hasSlotContent(this.iconElement, 'icon');\n };\n\n private get tabindex(): string {\n // NOTE: this.active is undefined when is not part of bq-tab-group\n return `${this.tabIndex ?? -1 + +(this.active ?? 1)}`;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <button\n ref={(el) => (this.buttonElement = el)}\n class={{\n [`bq-tab bq-tab--${this.size} bq-tab--${this.orientation}-${this.placement}`]: true,\n 'text-text-brand': this.active,\n 'text-text-primary': !this.active,\n }}\n id={this.tabId}\n onBlur={this.handleOnBlur}\n onClick={this.handleClick}\n onFocus={this.handleOnFocus}\n onKeyDown={this.handleOnKeyDown}\n disabled={this.disabled}\n role=\"tab\"\n aria-controls={this.controls}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-selected={this.active ? 'true' : 'false'}\n tabindex={this.tabindex}\n part=\"base\"\n >\n <div class=\"flex items-center justify-center\" part=\"content\">\n <div class=\"flex\" ref={(span: HTMLSpanElement) => (this.iconElement = span)} part=\"icon\">\n <slot name=\"icon\" onSlotchange={this.handleIconSlotChange} />\n </div>\n <div class={{ 'line-clamp-1': true, 'ms-[--bq-tab--label-icon-gap]': this.hasIcon }} part=\"text\">\n <slot />\n </div>\n </div>\n </button>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"bq-tab.js","sourceRoot":"","sources":["../../../../../../src/components/tab/bq-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { TAB_ORIENTATION, TAB_PLACEMENT, TAB_SIZE, TTabOrientation, TTabPlacement, TTabSize } from './bq-tab.types';\nimport { hasSlotContent, validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The HTML button used under the hood.\n * @part content - The HTML `<div>` element that holds the content.\n * @part icon - The HTML `<div>` element that holds the icon content.\n * @part text - The HTML `<div>` element that holds the text content.\n * @part underline - The HTML `<div>` element that display active state.\n */\n@Component({\n tag: 'bq-tab',\n styleUrl: './scss/bq-tab.scss',\n shadow: true,\n})\nexport class BqTab {\n // Own Properties\n // ====================\n\n private buttonElement: HTMLButtonElement;\n private iconElement: HTMLSpanElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqTabElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() tabIndex: number | null = null;\n @State() hasIcon: boolean = false;\n\n // Public Property API\n // ========================\n\n /** If true tab is active */\n @Prop({ reflect: true, mutable: true }) active?: boolean;\n\n /** If true tab is disabled */\n @Prop({ reflect: true }) disabled = false;\n\n /** The size of the tab */\n @Prop({ reflect: true }) size: TTabSize = 'medium';\n\n /** The direction that tab should be render */\n @Prop({ reflect: true }) orientation?: TTabOrientation = 'horizontal';\n\n /** The placement that tab should be render */\n @Prop({ reflect: true }) placement?: TTabPlacement = 'start';\n\n /** The id of the tab */\n @Prop({ reflect: true }) tabId!: string;\n\n /** The tab panel id that the tab controls */\n @Prop({ reflect: true }) controls!: string;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('size')\n @Watch('orientation')\n @Watch('placement')\n checkPropValues() {\n validatePropValue(TAB_SIZE, 'medium', this.el, 'size');\n validatePropValue(TAB_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(TAB_PLACEMENT, 'start', this.el, 'placement');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the tab state changes */\n @Event() bqClick: EventEmitter<HTMLBqTabElement>;\n\n /** Handler to be called when the tab gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqTabElement>;\n\n /** Handler to be called when the tab loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqTabElement>;\n\n /** Handler to be called when the tab key is pressed */\n @Event() bqKeyDown: EventEmitter<KeyboardEvent>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\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 * Simulate a click event on the native `<button>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.buttonElement?.click();\n }\n\n /**\n * Sets focus on the native `<button>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.buttonElement?.focus();\n }\n\n /**\n * Remove focus from the native `<button>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.buttonElement?.blur();\n }\n\n /**\n * Sets tabindex on the native `<button>` HTML element used under the hood.\n * This method is used inside `<bq-tab-group>` to make tab focusable after the active one is focused\n */\n @Method()\n async enableFocus(value: boolean) {\n this.tabIndex = value ? 0 : null;\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.active = 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 handleIconSlotChange = () => {\n this.hasIcon = hasSlotContent(this.iconElement, 'icon');\n };\n\n private get tabindex(): string {\n // NOTE: this.active is undefined when is not part of bq-tab-group\n return `${this.tabIndex ?? -1 + +(this.active ?? 1)}`;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <button\n ref={(el) => (this.buttonElement = el)}\n class={{\n [`bq-tab bq-tab--${this.size} bq-tab--${this.orientation}-${this.placement}`]: true,\n 'text-text-brand': this.active,\n 'text-text-primary': !this.active,\n }}\n id={this.tabId}\n onBlur={this.handleOnBlur}\n onClick={this.handleClick}\n onFocus={this.handleOnFocus}\n onKeyDown={this.handleOnKeyDown}\n disabled={this.disabled}\n role=\"tab\"\n aria-controls={this.controls}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-selected={this.active ? 'true' : 'false'}\n tabindex={this.tabindex}\n part=\"base\"\n >\n <div class=\"flex items-center justify-center\" part=\"content\">\n <div class=\"flex\" ref={(span: HTMLSpanElement) => (this.iconElement = span)} part=\"icon\">\n <slot name=\"icon\" onSlotchange={this.handleIconSlotChange} />\n </div>\n <div class={{ 'line-clamp-1': true, 'ms-[--bq-tab--label-icon-gap]': this.hasIcon }} part=\"text\">\n <slot />\n </div>\n </div>\n </button>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- ::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))}.absolute{position:absolute}.relative{position:relative}.-end-xs2{inset-inline-end:calc(var(--bq-spacing-xs2)*-1)}.-start-xs2{inset-inline-start:calc(var(--bq-spacing-xs2)*-1)}.-start-xs3{inset-inline-start:calc(var(--bq-spacing-xs3)*-1)}.z-\[1\]{z-index:1}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.rounded-s{border-radius:var(--bq-radius--s)}.border-0{border-width:0}.bg-stroke-brand{background-color:var(--bq-stroke--brand)}.bg-transparent{background-color:transparent}.text-\[length\:--bq-tab--font-size\]{font-size:var(--bq-tab--font-size)}.text-l{font-size:var(--bq-font-size--l)}.font-\[--bq-tab--font-weight\]{font-weight:var(--bq-tab--font-weight)}.leading-\[--bq-tab--line-height\]{line-height:var(--bq-tab--line-height)}.opacity-0{opacity:0}.opacity-100{opacity:1}.transition-\[color\2c background-color\2c border-color\2c box-shadow\]{transition-duration:.15s;transition-property:color,background-color,border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-linear{transition-timing-function:linear}.content-empty{--tw-content:"";content:var(--tw-content)}.bs-\[2px\]{block-size:2px}.bs-\[calc\(100\%_\+_var\(--bq-spacing-xs2\)\)\]{block-size:calc(100% + var(--bq-spacing-xs2))}.is-\[2px\]{inline-size:2px}.is-\[calc\(100\%_\+_var\(--bq-spacing-xs2\)\)\]{inline-size:calc(100% + var(--bq-spacing-xs2))}.is-full{inline-size:100%}.p-b-\[--bq-tab--padding-vertical-large\]{padding-block:var(--bq-tab--padding-vertical-large)}.p-b-\[--bq-tab--padding-vertical-medium\]{padding-block:var(--bq-tab--padding-vertical-medium)}.p-b-\[--bq-tab--padding-vertical-small\]{padding-block:var(--bq-tab--padding-vertical-small)}.p-i-\[--bq-tab--padding-horizontal-large\]{padding-inline:var(--bq-tab--padding-horizontal-large)}.p-i-\[--bq-tab--padding-horizontal-medium\]{padding-inline:var(--bq-tab--padding-horizontal-medium)}.p-i-\[--bq-tab--padding-horizontal-small\]{padding-inline:var(--bq-tab--padding-horizontal-small)}@-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-tab--font-size:var(--bq-font-size--m);--bq-tab--font-weight:var(--bq-font-weight--medium);--bq-tab--line-height:var(--bq-font-line-height--regular);--bq-tab--label-icon-gap:var(--bq-spacing-xs);--bq-tab--padding-vertical-small:var(--bq-spacing-xs2);--bq-tab--padding-horizontal-small:var(--bq-spacing-m);--bq-tab--padding-vertical-medium:var(--bq-spacing-xs);--bq-tab--padding-horizontal-medium:var(--bq-spacing-l);--bq-tab--padding-vertical-large:var(--bq-spacing-s);--bq-tab--padding-horizontal-large:var(--bq-spacing-l);--bq-tab--icon-size-small:20px;--bq-tab--icon-size-medium:24px;--bq-tab--icon-size-large:24px;display:inline-block}.bq-tab{align-items:center;background-color:transparent;border-radius:var(--bq-radius--s);border-width:0;cursor:pointer;display:flex;font-size:var(--bq-tab--font-size);font-weight:var(--bq-tab--font-weight);justify-content:center;line-height:var(--bq-tab--line-height);position:relative;transition-duration:.3s;transition-property:color,background-color,border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-tab:disabled{cursor:not-allowed;opacity:.6}.bq-tab:hover:not([disabled]){background-color:color-mix(in srgb,var(--bq-ui--primary),var(--bq-hover) 20%);color:color-mix(in srgb,var(--bq-text--brand),var(--bq-hover) 20%)}.bq-tab:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-tab:after{--tw-content:"";background-color:var(--bq-stroke--brand);content:var(--tw-content);display:block;inset-block-end:-.25rem;opacity:0;position:absolute;transition-duration:.3s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:linear;z-index:1}.bq-tab--horizontal-end:after,.bq-tab--horizontal-start:after{block-size:2px;inline-size:calc(100% + var(--bq-spacing-xs2));inset-inline-start:calc(var(--bq-spacing-xs3)*-1)}.bq-tab--vertical-start{inline-size:100%;justify-content:flex-end}.bq-tab--vertical-start:after{block-size:calc(100% + var(--bq-spacing-xs2));inline-size:2px;inset-inline-end:calc(var(--bq-spacing-xs2)*-1)}.bq-tab--vertical-end{inline-size:100%;justify-content:flex-start}.bq-tab--vertical-end:after{block-size:calc(100% + var(--bq-spacing-xs2));inline-size:2px;inset-inline-start:calc(var(--bq-spacing-xs2)*-1)}.bq-tab[aria-selected=true]:after{opacity:1}.bq-tab--small{padding-block:var(--bq-tab--padding-vertical-small);padding-inline:var(--bq-tab--padding-horizontal-small)}.bq-tab--small ::slotted(bq-icon){--bq-icon--size:var(--bq-tab--icon-size-small)!important}.bq-tab--medium{padding-block:var(--bq-tab--padding-vertical-medium);padding-inline:var(--bq-tab--padding-horizontal-medium)}.bq-tab--medium ::slotted(bq-icon){--bq-icon--size:var(--bq-tab--icon-size-medium)!important}.bq-tab--large{font-size:var(--bq-font-size--l);padding-block:var(--bq-tab--padding-vertical-large);padding-inline:var(--bq-tab--padding-horizontal-large)}.bq-tab--large ::slotted(bq-icon){--bq-icon--size:var(--bq-tab--icon-size-large)!important}.focus-visible\:focus:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.\[\&\:not\(\[disabled\]\)\]\:hover\:bg-hover-ui-primary:hover:not([disabled]){background-color:color-mix(in srgb,var(--bq-ui--primary),var(--bq-hover) 20%)}.blur{--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-blur:blur(8px);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)}.static{position:static}.ms-\[--bq-tab--label-icon-gap\]{margin-inline-start:var(--bq-tab--label-icon-gap)}.line-clamp-1{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.text-text-brand{color:var(--bq-text--brand)}.text-text-primary{color:var(--bq-text--primary)}.underline{text-decoration-line:underline}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}
1
+ .transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{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}.absolute{position:absolute}.relative{position:relative}.-end-xs2{inset-inline-end:calc(var(--bq-spacing-xs2)*-1)}.-start-xs2{inset-inline-start:calc(var(--bq-spacing-xs2)*-1)}.-start-xs3{inset-inline-start:calc(var(--bq-spacing-xs3)*-1)}.z-\[1\]{z-index:1}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.rounded-s{border-radius:var(--bq-radius--s)}.border-0{border-width:0}.bg-stroke-brand{background-color:var(--bq-stroke--brand)}.bg-transparent{background-color:transparent}.text-\[length\:--bq-tab--font-size\]{font-size:var(--bq-tab--font-size)}.text-l{font-size:var(--bq-font-size--l)}.font-\[--bq-tab--font-weight\]{font-weight:var(--bq-tab--font-weight)}.leading-\[--bq-tab--line-height\]{line-height:var(--bq-tab--line-height)}.opacity-0{opacity:0}.opacity-100{opacity:1}.transition-\[color\2c background-color\2c border-color\2c box-shadow\]{transition-duration:.15s;transition-property:color,background-color,border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-linear{transition-timing-function:linear}.content-empty{--tw-content:"";content:var(--tw-content)}.bs-\[2px\]{block-size:2px}.bs-\[calc\(100\%_\+_var\(--bq-spacing-xs2\)\)\]{block-size:calc(100% + var(--bq-spacing-xs2))}.is-\[2px\]{inline-size:2px}.is-\[calc\(100\%_\+_var\(--bq-spacing-xs2\)\)\]{inline-size:calc(100% + var(--bq-spacing-xs2))}.is-full{inline-size:100%}.p-b-\[--bq-tab--padding-vertical-large\]{padding-block:var(--bq-tab--padding-vertical-large)}.p-b-\[--bq-tab--padding-vertical-medium\]{padding-block:var(--bq-tab--padding-vertical-medium)}.p-b-\[--bq-tab--padding-vertical-small\]{padding-block:var(--bq-tab--padding-vertical-small)}.p-i-\[--bq-tab--padding-horizontal-large\]{padding-inline:var(--bq-tab--padding-horizontal-large)}.p-i-\[--bq-tab--padding-horizontal-medium\]{padding-inline:var(--bq-tab--padding-horizontal-medium)}.p-i-\[--bq-tab--padding-horizontal-small\]{padding-inline:var(--bq-tab--padding-horizontal-small)}@-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-tab--font-size:var(--bq-font-size--m);--bq-tab--font-weight:var(--bq-font-weight--medium);--bq-tab--line-height:var(--bq-font-line-height--regular);--bq-tab--label-icon-gap:var(--bq-spacing-xs);--bq-tab--padding-vertical-small:var(--bq-spacing-xs2);--bq-tab--padding-horizontal-small:var(--bq-spacing-m);--bq-tab--padding-vertical-medium:var(--bq-spacing-xs);--bq-tab--padding-horizontal-medium:var(--bq-spacing-l);--bq-tab--padding-vertical-large:var(--bq-spacing-s);--bq-tab--padding-horizontal-large:var(--bq-spacing-l);--bq-tab--icon-size-small:20px;--bq-tab--icon-size-medium:24px;--bq-tab--icon-size-large:24px;display:inline-block}.bq-tab{align-items:center;background-color:transparent;border-radius:var(--bq-radius--s);border-width:0;cursor:pointer;display:flex;font-size:var(--bq-tab--font-size);font-weight:var(--bq-tab--font-weight);justify-content:center;line-height:var(--bq-tab--line-height);position:relative;transition-duration:.3s;transition-property:color,background-color,border-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-tab:disabled{cursor:not-allowed;opacity:.6}.bq-tab:hover:not([disabled]){background-color:color-mix(in srgb,var(--bq-ui--primary),var(--bq-hover) 20%);color:color-mix(in srgb,var(--bq-text--brand),var(--bq-hover) 20%)}.bq-tab:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-tab:after{--tw-content:"";background-color:var(--bq-stroke--brand);content:var(--tw-content);display:block;inset-block-end:-.25rem;opacity:0;position:absolute;transition-duration:.3s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:linear;z-index:1}.bq-tab--horizontal-end:after,.bq-tab--horizontal-start:after{block-size:2px;inline-size:calc(100% + var(--bq-spacing-xs2));inset-inline-start:calc(var(--bq-spacing-xs3)*-1)}.bq-tab--vertical-start{inline-size:100%;justify-content:flex-end}.bq-tab--vertical-start:after{block-size:calc(100% + var(--bq-spacing-xs2));inline-size:2px;inset-inline-end:calc(var(--bq-spacing-xs2)*-1)}.bq-tab--vertical-end{inline-size:100%;justify-content:flex-start}.bq-tab--vertical-end:after{block-size:calc(100% + var(--bq-spacing-xs2));inline-size:2px;inset-inline-start:calc(var(--bq-spacing-xs2)*-1)}.bq-tab[aria-selected=true]:after{opacity:1}.bq-tab--small{padding-block:var(--bq-tab--padding-vertical-small);padding-inline:var(--bq-tab--padding-horizontal-small)}.bq-tab--small ::slotted(bq-icon){--bq-icon--size:var(--bq-tab--icon-size-small)!important}.bq-tab--medium{padding-block:var(--bq-tab--padding-vertical-medium);padding-inline:var(--bq-tab--padding-horizontal-medium)}.bq-tab--medium ::slotted(bq-icon){--bq-icon--size:var(--bq-tab--icon-size-medium)!important}.bq-tab--large{font-size:var(--bq-font-size--l);padding-block:var(--bq-tab--padding-vertical-large);padding-inline:var(--bq-tab--padding-horizontal-large)}.bq-tab--large ::slotted(bq-icon){--bq-icon--size:var(--bq-tab--icon-size-large)!important}.focus-visible\:focus:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.\[\&\:not\(\[disabled\]\)\]\:hover\:bg-hover-ui-primary:hover:not([disabled]){background-color:color-mix(in srgb,var(--bq-ui--primary),var(--bq-hover) 20%)}.blur{--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-blur:blur(8px);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)}.static{position:static}.ms-\[--bq-tab--label-icon-gap\]{margin-inline-start:var(--bq-tab--label-icon-gap)}.line-clamp-1{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.text-text-brand{color:var(--bq-text--brand)}.text-text-primary{color:var(--bq-text--primary)}.underline{text-decoration-line:underline}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}
@@ -11,59 +11,6 @@ import { TAB_ORIENTATION, TAB_PLACEMENT, TAB_SIZE, } from "../tab/bq-tab.types";
11
11
  */
12
12
  export class BqTabGroup {
13
13
  constructor() {
14
- // Public methods API
15
- // These methods are exposed on the host element.
16
- // Always use two lines.
17
- // Public Methods must be async.
18
- // Requires JSDocs for public API documentation.
19
- // ===============================================
20
- // Local methods
21
- // Internal business logic.
22
- // These methods cannot be called from the host element.
23
- // =======================================================
24
- this.focusTabSibling = async (currentTarget, direction) => {
25
- let target = null;
26
- this.bqTabElements.forEach((bqTabElement, index, elements) => {
27
- bqTabElement.active = false;
28
- if (bqTabElement === currentTarget) {
29
- target = getNextElement(elements, index, direction);
30
- }
31
- });
32
- if (target) {
33
- await target.vFocus();
34
- this.selectTab(target);
35
- }
36
- };
37
- this.makeTabsFocusable = () => {
38
- this.bqTabElements.forEach((bqTabElement) => {
39
- if (bqTabElement.disabled)
40
- return;
41
- /**
42
- * This is a "fire and forget" operation. The callback itself doesn't do anything special
43
- * with the asynchronous code (doesn't await it or do anything with the result)
44
- * Details: https://stackoverflow.com/a/63488201
45
- */
46
- (async () => {
47
- await bqTabElement.enableFocus(true);
48
- })();
49
- });
50
- };
51
- this.restoreTabsFocus = () => {
52
- this.bqTabElements.forEach((bqTabElement) => {
53
- if (bqTabElement.disabled || bqTabElement.active)
54
- return;
55
- /** @See line #173 */
56
- (async () => {
57
- await bqTabElement.enableFocus(false);
58
- })();
59
- });
60
- };
61
- this.selectTab = (target) => {
62
- const { tabId } = target;
63
- target.active = true;
64
- this.value = tabId;
65
- this.debouncedBqChange({ value: tabId, target });
66
- };
67
14
  this.value = undefined;
68
15
  this.size = 'medium';
69
16
  this.orientation = 'horizontal';
@@ -71,6 +18,12 @@ export class BqTabGroup {
71
18
  this.debounceTime = 0;
72
19
  this.disableDivider = false;
73
20
  }
21
+ // Own Properties
22
+ // ====================
23
+ debouncedBqChange;
24
+ // Reference to host HTML element
25
+ // ===================================
26
+ el;
74
27
  // Prop lifecycle events
75
28
  // =======================
76
29
  checkDebounceChange() {
@@ -95,6 +48,11 @@ export class BqTabGroup {
95
48
  bqTabElement.active = !isNil(this.value) ? bqTabElement.tabId === this.value : false;
96
49
  });
97
50
  }
51
+ // Events section
52
+ // Requires JSDocs for public API documentation
53
+ // ==============================================
54
+ /** Handler to be called when the tab value changes */
55
+ bqChange;
98
56
  // Component lifecycle events
99
57
  // Ordered by their natural call order
100
58
  // =====================================
@@ -139,9 +97,62 @@ export class BqTabGroup {
139
97
  onBqBlur() {
140
98
  this.restoreTabsFocus();
141
99
  }
100
+ // Public methods API
101
+ // These methods are exposed on the host element.
102
+ // Always use two lines.
103
+ // Public Methods must be async.
104
+ // Requires JSDocs for public API documentation.
105
+ // ===============================================
106
+ // Local methods
107
+ // Internal business logic.
108
+ // These methods cannot be called from the host element.
109
+ // =======================================================
110
+ focusTabSibling = async (currentTarget, direction) => {
111
+ let target = null;
112
+ this.bqTabElements.forEach((bqTabElement, index, elements) => {
113
+ bqTabElement.active = false;
114
+ if (bqTabElement === currentTarget) {
115
+ target = getNextElement(elements, index, direction);
116
+ }
117
+ });
118
+ if (target) {
119
+ await target.vFocus();
120
+ this.selectTab(target);
121
+ }
122
+ };
123
+ makeTabsFocusable = () => {
124
+ this.bqTabElements.forEach((bqTabElement) => {
125
+ if (bqTabElement.disabled)
126
+ return;
127
+ /**
128
+ * This is a "fire and forget" operation. The callback itself doesn't do anything special
129
+ * with the asynchronous code (doesn't await it or do anything with the result)
130
+ * Details: https://stackoverflow.com/a/63488201
131
+ */
132
+ (async () => {
133
+ await bqTabElement.enableFocus(true);
134
+ })();
135
+ });
136
+ };
137
+ restoreTabsFocus = () => {
138
+ this.bqTabElements.forEach((bqTabElement) => {
139
+ if (bqTabElement.disabled || bqTabElement.active)
140
+ return;
141
+ /** @See line #173 */
142
+ (async () => {
143
+ await bqTabElement.enableFocus(false);
144
+ })();
145
+ });
146
+ };
142
147
  get bqTabElements() {
143
148
  return Array.from(this.el.querySelectorAll('bq-tab'));
144
149
  }
150
+ selectTab = (target) => {
151
+ const { tabId } = target;
152
+ target.active = true;
153
+ this.value = tabId;
154
+ this.debouncedBqChange({ value: tabId, target });
155
+ };
145
156
  // render() function
146
157
  // Always the last one in the class.
147
158
  // ===================================
@@ -1 +1 @@
1
- {"version":3,"file":"bq-tab-group.js","sourceRoot":"","sources":["../../../../../../src/components/tab-group/bq-tab-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\nimport { debounce, getNextElement, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\nimport {\n TAB_ORIENTATION,\n TAB_PLACEMENT,\n TAB_SIZE,\n TTabOrientation,\n TTabPlacement,\n TTabSize,\n} from '../tab/bq-tab.types';\n\n/**\n * @part base - The HTML div wrapper inside the shadow DOM.\n * @part tabs - The HTML div used to hold the tab buttons.\n */\n@Component({\n tag: 'bq-tab-group',\n styleUrl: './scss/bq-tab-group.scss',\n shadow: true,\n})\nexport class BqTabGroup {\n // Own Properties\n // ====================\n\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqTabElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqTabGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** A string representing the id of the selected tab. */\n @Prop({ reflect: true, mutable: true }) value: string;\n\n /** The size of the tab */\n @Prop({ reflect: true }) size: TTabSize = 'medium';\n\n /** The direction that tab should be render */\n @Prop({ reflect: true }) orientation?: TTabOrientation = 'horizontal';\n\n /** The placement that tab should be render */\n @Prop({ reflect: true }) placement?: TTabPlacement = 'start';\n\n /** A number representing the delay value applied to bqChange event handler */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n /** If true, the underline divider below the tabs won't be shown */\n @Prop({ reflect: true }) disableDivider = false;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n @Watch('size')\n @Watch('value')\n @Watch('orientation')\n @Watch('placement')\n checkPropValues() {\n validatePropValue(TAB_SIZE, 'medium', this.el, 'size');\n validatePropValue(TAB_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(TAB_PLACEMENT, 'start', this.el, 'placement');\n\n this.bqTabElements.forEach((bqTabElement) => {\n bqTabElement.size = this.size;\n bqTabElement.orientation = this.orientation;\n bqTabElement.placement = this.placement;\n bqTabElement.active = !isNil(this.value) ? bqTabElement.tabId === this.value : false;\n });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the tab value changes */\n @Event() bqChange: EventEmitter<{ target: HTMLBqTabElement; value: string }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkDebounceChange();\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.checkPropValues();\n }\n\n // Listeners\n // ==============\n\n @Listen('keyup', { target: 'body', passive: true, capture: true })\n onKeyUp(event: KeyboardEvent) {\n const { target } = event;\n if (!isHTMLElement(target, 'bq-tab')) return;\n\n this.makeTabsFocusable();\n }\n\n @Listen('bqClick', { passive: true })\n onBqClick(event: CustomEvent<HTMLBqTabElement>) {\n const { detail: target } = event;\n this.bqTabElements.forEach((bqTabElement) => (bqTabElement.active = bqTabElement === target));\n this.debouncedBqChange({ value: target.tabId, target });\n this.selectTab(target);\n }\n\n @Listen('bqKeyDown', { passive: true })\n async onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n // NOTE: ensures the target is an HTML element with the tag name 'bq-tab'\n if (!isHTMLElement(target, 'bq-tab')) return;\n\n const keyActions: { [key: string]: 'forward' | 'backward' } = {\n ArrowDown: 'forward',\n ArrowRight: 'forward',\n ArrowUp: 'backward',\n ArrowLeft: 'backward',\n };\n\n // NOTE: gets the direction based on key pressed\n const direction = keyActions[event.detail.key];\n\n if (!direction) return;\n\n await this.focusTabSibling(target, direction);\n }\n\n @Listen('bqBlur', { capture: true, passive: true })\n onBqBlur() {\n this.restoreTabsFocus();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private focusTabSibling = async (\n currentTarget: HTMLBqTabElement,\n direction: 'forward' | 'backward',\n ): Promise<void> => {\n let target: HTMLBqTabElement | null = null;\n\n this.bqTabElements.forEach((bqTabElement, index, elements) => {\n bqTabElement.active = false;\n\n if (bqTabElement === currentTarget) {\n target = getNextElement(elements, index, direction);\n }\n });\n\n if (target) {\n await target.vFocus();\n this.selectTab(target);\n }\n };\n\n private makeTabsFocusable = (): void => {\n this.bqTabElements.forEach((bqTabElement) => {\n if (bqTabElement.disabled) return;\n\n /**\n * This is a \"fire and forget\" operation. The callback itself doesn't do anything special\n * with the asynchronous code (doesn't await it or do anything with the result)\n * Details: https://stackoverflow.com/a/63488201\n */\n (async () => {\n await bqTabElement.enableFocus(true);\n })();\n });\n };\n\n private restoreTabsFocus = (): void => {\n this.bqTabElements.forEach((bqTabElement) => {\n if (bqTabElement.disabled || bqTabElement.active) return;\n\n /** @See line #173 */\n (async () => {\n await bqTabElement.enableFocus(false);\n })();\n });\n };\n\n private get bqTabElements(): HTMLBqTabElement[] {\n return Array.from(this.el.querySelectorAll('bq-tab'));\n }\n\n private selectTab = (target: HTMLBqTabElement): void => {\n const { tabId } = target;\n target.active = true;\n this.value = tabId;\n this.debouncedBqChange({ value: tabId, target });\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host class={{ 'inline-block': this.orientation === 'vertical' }}>\n <div\n class={{\n [`bq-tab-group bq-tab-group--${this.orientation}-${this.placement} flex is-full`]: true,\n 'no-divider': this.disableDivider,\n }}\n part=\"base\"\n >\n <div\n class={{\n 'bq-tab-group--container flex overflow-x-auto': true,\n 'flex-col': this.orientation !== 'horizontal',\n }}\n role=\"tablist\"\n part=\"tabs\"\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"bq-tab-group.js","sourceRoot":"","sources":["../../../../../../src/components/tab-group/bq-tab-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\nimport { debounce, getNextElement, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\nimport {\n TAB_ORIENTATION,\n TAB_PLACEMENT,\n TAB_SIZE,\n TTabOrientation,\n TTabPlacement,\n TTabSize,\n} from '../tab/bq-tab.types';\n\n/**\n * @part base - The HTML div wrapper inside the shadow DOM.\n * @part tabs - The HTML div used to hold the tab buttons.\n */\n@Component({\n tag: 'bq-tab-group',\n styleUrl: './scss/bq-tab-group.scss',\n shadow: true,\n})\nexport class BqTabGroup {\n // Own Properties\n // ====================\n\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqTabElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqTabGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** A string representing the id of the selected tab. */\n @Prop({ reflect: true, mutable: true }) value: string;\n\n /** The size of the tab */\n @Prop({ reflect: true }) size: TTabSize = 'medium';\n\n /** The direction that tab should be render */\n @Prop({ reflect: true }) orientation?: TTabOrientation = 'horizontal';\n\n /** The placement that tab should be render */\n @Prop({ reflect: true }) placement?: TTabPlacement = 'start';\n\n /** A number representing the delay value applied to bqChange event handler */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n /** If true, the underline divider below the tabs won't be shown */\n @Prop({ reflect: true }) disableDivider = false;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n @Watch('size')\n @Watch('value')\n @Watch('orientation')\n @Watch('placement')\n checkPropValues() {\n validatePropValue(TAB_SIZE, 'medium', this.el, 'size');\n validatePropValue(TAB_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(TAB_PLACEMENT, 'start', this.el, 'placement');\n\n this.bqTabElements.forEach((bqTabElement) => {\n bqTabElement.size = this.size;\n bqTabElement.orientation = this.orientation;\n bqTabElement.placement = this.placement;\n bqTabElement.active = !isNil(this.value) ? bqTabElement.tabId === this.value : false;\n });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the tab value changes */\n @Event() bqChange: EventEmitter<{ target: HTMLBqTabElement; value: string }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkDebounceChange();\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.checkPropValues();\n }\n\n // Listeners\n // ==============\n\n @Listen('keyup', { target: 'body', passive: true, capture: true })\n onKeyUp(event: KeyboardEvent) {\n const { target } = event;\n if (!isHTMLElement(target, 'bq-tab')) return;\n\n this.makeTabsFocusable();\n }\n\n @Listen('bqClick', { passive: true })\n onBqClick(event: CustomEvent<HTMLBqTabElement>) {\n const { detail: target } = event;\n this.bqTabElements.forEach((bqTabElement) => (bqTabElement.active = bqTabElement === target));\n this.debouncedBqChange({ value: target.tabId, target });\n this.selectTab(target);\n }\n\n @Listen('bqKeyDown', { passive: true })\n async onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n // NOTE: ensures the target is an HTML element with the tag name 'bq-tab'\n if (!isHTMLElement(target, 'bq-tab')) return;\n\n const keyActions: { [key: string]: 'forward' | 'backward' } = {\n ArrowDown: 'forward',\n ArrowRight: 'forward',\n ArrowUp: 'backward',\n ArrowLeft: 'backward',\n };\n\n // NOTE: gets the direction based on key pressed\n const direction = keyActions[event.detail.key];\n\n if (!direction) return;\n\n await this.focusTabSibling(target, direction);\n }\n\n @Listen('bqBlur', { capture: true, passive: true })\n onBqBlur() {\n this.restoreTabsFocus();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private focusTabSibling = async (\n currentTarget: HTMLBqTabElement,\n direction: 'forward' | 'backward',\n ): Promise<void> => {\n let target: HTMLBqTabElement | null = null;\n\n this.bqTabElements.forEach((bqTabElement, index, elements) => {\n bqTabElement.active = false;\n\n if (bqTabElement === currentTarget) {\n target = getNextElement(elements, index, direction);\n }\n });\n\n if (target) {\n await target.vFocus();\n this.selectTab(target);\n }\n };\n\n private makeTabsFocusable = (): void => {\n this.bqTabElements.forEach((bqTabElement) => {\n if (bqTabElement.disabled) return;\n\n /**\n * This is a \"fire and forget\" operation. The callback itself doesn't do anything special\n * with the asynchronous code (doesn't await it or do anything with the result)\n * Details: https://stackoverflow.com/a/63488201\n */\n (async () => {\n await bqTabElement.enableFocus(true);\n })();\n });\n };\n\n private restoreTabsFocus = (): void => {\n this.bqTabElements.forEach((bqTabElement) => {\n if (bqTabElement.disabled || bqTabElement.active) return;\n\n /** @See line #173 */\n (async () => {\n await bqTabElement.enableFocus(false);\n })();\n });\n };\n\n private get bqTabElements(): HTMLBqTabElement[] {\n return Array.from(this.el.querySelectorAll('bq-tab'));\n }\n\n private selectTab = (target: HTMLBqTabElement): void => {\n const { tabId } = target;\n target.active = true;\n this.value = tabId;\n this.debouncedBqChange({ value: tabId, target });\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host class={{ 'inline-block': this.orientation === 'vertical' }}>\n <div\n class={{\n [`bq-tab-group bq-tab-group--${this.orientation}-${this.placement} flex is-full`]: true,\n 'no-divider': this.disableDivider,\n }}\n part=\"base\"\n >\n <div\n class={{\n 'bq-tab-group--container flex overflow-x-auto': true,\n 'flex-col': this.orientation !== 'horizontal',\n }}\n role=\"tablist\"\n part=\"tabs\"\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -14,50 +14,6 @@ import { getColorCSSVariable, hasSlotContent, validatePropValue } from "../../sh
14
14
  */
15
15
  export class BqTag {
16
16
  constructor() {
17
- // Local methods
18
- // Internal business logic.
19
- // These methods cannot be called from the host element.
20
- // =======================================================
21
- this.handleHide = () => {
22
- if (!this.isRemovable)
23
- return;
24
- const ev = this.bqClose.emit(this.el);
25
- if (!ev.defaultPrevented) {
26
- this.hidden = true;
27
- }
28
- };
29
- this.handleShow = () => {
30
- if (!this.isRemovable)
31
- return;
32
- const ev = this.bqOpen.emit(this.el);
33
- if (!ev.defaultPrevented) {
34
- this.hidden = false;
35
- }
36
- };
37
- this.handleClick = () => {
38
- // If the tag is not clickable or the tag is disabled, we don't want to handle the click
39
- if (!this.isClickable || this.disabled)
40
- return;
41
- // Emit a click event on the element
42
- const ev = this.bqClick.emit(this.el);
43
- // If the event was not prevented, toggle the clickable state
44
- if (!ev.defaultPrevented) {
45
- this.selected = !this.selected;
46
- }
47
- };
48
- this.handleBlur = () => {
49
- if (!this.isClickable)
50
- return;
51
- this.bqBlur.emit(this.el);
52
- };
53
- this.handleFocus = () => {
54
- if (!this.isClickable)
55
- return;
56
- this.bqFocus.emit(this.el);
57
- };
58
- this.handleSlotChange = () => {
59
- this.hasPrefix = hasSlotContent(this.prefixElem, 'prefix');
60
- };
61
17
  this.hasPrefix = false;
62
18
  this.border = undefined;
63
19
  this.clickable = false;
@@ -69,12 +25,31 @@ export class BqTag {
69
25
  this.size = 'medium';
70
26
  this.variant = 'filled';
71
27
  }
28
+ // Own Properties
29
+ // ====================
30
+ prefixElem;
31
+ // Reference to host HTML element
32
+ // ===================================
33
+ el;
72
34
  // Prop lifecycle events
73
35
  // =======================
74
36
  checkPropValues() {
75
37
  validatePropValue(TAG_SIZE, 'medium', this.el, 'size');
76
38
  validatePropValue(TAG_VARIANT, 'filled', this.el, 'variant');
77
39
  }
40
+ // Events section
41
+ // Requires JSDocs for public API documentation
42
+ // ==============================================
43
+ /** Callback handler to be called when the tag is close/hidden */
44
+ bqClose;
45
+ /** Callback handler to be called when the tag is not open/shown */
46
+ bqOpen;
47
+ /** Handler to be called when tag loses focus */
48
+ bqBlur;
49
+ /** Handler to be called when tag is clicked */
50
+ bqClick;
51
+ /** Handler to be called when tag is focused */
52
+ bqFocus;
78
53
  // Component lifecycle events
79
54
  // Ordered by their natural call order
80
55
  // =====================================
@@ -97,6 +72,50 @@ export class BqTag {
97
72
  async show() {
98
73
  this.handleShow();
99
74
  }
75
+ // Local methods
76
+ // Internal business logic.
77
+ // These methods cannot be called from the host element.
78
+ // =======================================================
79
+ handleHide = () => {
80
+ if (!this.isRemovable)
81
+ return;
82
+ const ev = this.bqClose.emit(this.el);
83
+ if (!ev.defaultPrevented) {
84
+ this.hidden = true;
85
+ }
86
+ };
87
+ handleShow = () => {
88
+ if (!this.isRemovable)
89
+ return;
90
+ const ev = this.bqOpen.emit(this.el);
91
+ if (!ev.defaultPrevented) {
92
+ this.hidden = false;
93
+ }
94
+ };
95
+ handleClick = () => {
96
+ // If the tag is not clickable or the tag is disabled, we don't want to handle the click
97
+ if (!this.isClickable || this.disabled)
98
+ return;
99
+ // Emit a click event on the element
100
+ const ev = this.bqClick.emit(this.el);
101
+ // If the event was not prevented, toggle the clickable state
102
+ if (!ev.defaultPrevented) {
103
+ this.selected = !this.selected;
104
+ }
105
+ };
106
+ handleBlur = () => {
107
+ if (!this.isClickable)
108
+ return;
109
+ this.bqBlur.emit(this.el);
110
+ };
111
+ handleFocus = () => {
112
+ if (!this.isClickable)
113
+ return;
114
+ this.bqFocus.emit(this.el);
115
+ };
116
+ handleSlotChange = () => {
117
+ this.hasPrefix = hasSlotContent(this.prefixElem, 'prefix');
118
+ };
100
119
  get isClickable() {
101
120
  return this.clickable && !this.color && !this.hasCustomColor && !this.removable;
102
121
  }
@@ -113,11 +132,10 @@ export class BqTag {
113
132
  // Always the last one in the class.
114
133
  // ===================================
115
134
  render() {
116
- var _a;
117
135
  const style = {
118
136
  '--bq-tag--icon-prefix-size': `${iconSize(this.size)}px`,
119
137
  ...(this.border && { '--bq-tag--border-radius': `var(--bq-radius--${this.border})` }),
120
- ...(this.color && { '--bq-tag--background-color': (_a = getColorCSSVariable(this.color)) !== null && _a !== void 0 ? _a : this.color }),
138
+ ...(this.color && { '--bq-tag--background-color': getColorCSSVariable(this.color) ?? this.color }),
121
139
  ...(this.hasCustomColor && { '--bq-text--primary': `var(--bq-text--alt)` }),
122
140
  };
123
141
  return (h(Host, { key: '619d3459f957ac90748b10409bdb3000cf620335', style: style, "aria-hidden": this.isHidden ? 'true' : 'false', hidden: this.isHidden ? 'true' : 'false' }, h("button", { key: '12c3d796fc9b7abf429a1aeb4f30ec5efde9007f', class: {