@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
@@ -42,59 +42,6 @@ const BqTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class BqTabGroup extends H
42
42
  this.__registerHost();
43
43
  this.__attachShadow();
44
44
  this.bqChange = createEvent(this, "bqChange", 7);
45
- // Public methods API
46
- // These methods are exposed on the host element.
47
- // Always use two lines.
48
- // Public Methods must be async.
49
- // Requires JSDocs for public API documentation.
50
- // ===============================================
51
- // Local methods
52
- // Internal business logic.
53
- // These methods cannot be called from the host element.
54
- // =======================================================
55
- this.focusTabSibling = async (currentTarget, direction) => {
56
- let target = null;
57
- this.bqTabElements.forEach((bqTabElement, index, elements) => {
58
- bqTabElement.active = false;
59
- if (bqTabElement === currentTarget) {
60
- target = getNextElement(elements, index, direction);
61
- }
62
- });
63
- if (target) {
64
- await target.vFocus();
65
- this.selectTab(target);
66
- }
67
- };
68
- this.makeTabsFocusable = () => {
69
- this.bqTabElements.forEach((bqTabElement) => {
70
- if (bqTabElement.disabled)
71
- return;
72
- /**
73
- * This is a "fire and forget" operation. The callback itself doesn't do anything special
74
- * with the asynchronous code (doesn't await it or do anything with the result)
75
- * Details: https://stackoverflow.com/a/63488201
76
- */
77
- (async () => {
78
- await bqTabElement.enableFocus(true);
79
- })();
80
- });
81
- };
82
- this.restoreTabsFocus = () => {
83
- this.bqTabElements.forEach((bqTabElement) => {
84
- if (bqTabElement.disabled || bqTabElement.active)
85
- return;
86
- /** @See line #173 */
87
- (async () => {
88
- await bqTabElement.enableFocus(false);
89
- })();
90
- });
91
- };
92
- this.selectTab = (target) => {
93
- const { tabId } = target;
94
- target.active = true;
95
- this.value = tabId;
96
- this.debouncedBqChange({ value: tabId, target });
97
- };
98
45
  this.value = undefined;
99
46
  this.size = 'medium';
100
47
  this.orientation = 'horizontal';
@@ -102,6 +49,10 @@ const BqTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class BqTabGroup extends H
102
49
  this.debounceTime = 0;
103
50
  this.disableDivider = false;
104
51
  }
52
+ // Own Properties
53
+ // ====================
54
+ debouncedBqChange;
55
+ get el() { return this; }
105
56
  // Prop lifecycle events
106
57
  // =======================
107
58
  checkDebounceChange() {
@@ -126,6 +77,11 @@ const BqTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class BqTabGroup extends H
126
77
  bqTabElement.active = !isNil(this.value) ? bqTabElement.tabId === this.value : false;
127
78
  });
128
79
  }
80
+ // Events section
81
+ // Requires JSDocs for public API documentation
82
+ // ==============================================
83
+ /** Handler to be called when the tab value changes */
84
+ bqChange;
129
85
  // Component lifecycle events
130
86
  // Ordered by their natural call order
131
87
  // =====================================
@@ -170,9 +126,62 @@ const BqTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class BqTabGroup extends H
170
126
  onBqBlur() {
171
127
  this.restoreTabsFocus();
172
128
  }
129
+ // Public methods API
130
+ // These methods are exposed on the host element.
131
+ // Always use two lines.
132
+ // Public Methods must be async.
133
+ // Requires JSDocs for public API documentation.
134
+ // ===============================================
135
+ // Local methods
136
+ // Internal business logic.
137
+ // These methods cannot be called from the host element.
138
+ // =======================================================
139
+ focusTabSibling = async (currentTarget, direction) => {
140
+ let target = null;
141
+ this.bqTabElements.forEach((bqTabElement, index, elements) => {
142
+ bqTabElement.active = false;
143
+ if (bqTabElement === currentTarget) {
144
+ target = getNextElement(elements, index, direction);
145
+ }
146
+ });
147
+ if (target) {
148
+ await target.vFocus();
149
+ this.selectTab(target);
150
+ }
151
+ };
152
+ makeTabsFocusable = () => {
153
+ this.bqTabElements.forEach((bqTabElement) => {
154
+ if (bqTabElement.disabled)
155
+ return;
156
+ /**
157
+ * This is a "fire and forget" operation. The callback itself doesn't do anything special
158
+ * with the asynchronous code (doesn't await it or do anything with the result)
159
+ * Details: https://stackoverflow.com/a/63488201
160
+ */
161
+ (async () => {
162
+ await bqTabElement.enableFocus(true);
163
+ })();
164
+ });
165
+ };
166
+ restoreTabsFocus = () => {
167
+ this.bqTabElements.forEach((bqTabElement) => {
168
+ if (bqTabElement.disabled || bqTabElement.active)
169
+ return;
170
+ /** @See line #173 */
171
+ (async () => {
172
+ await bqTabElement.enableFocus(false);
173
+ })();
174
+ });
175
+ };
173
176
  get bqTabElements() {
174
177
  return Array.from(this.el.querySelectorAll('bq-tab'));
175
178
  }
179
+ selectTab = (target) => {
180
+ const { tabId } = target;
181
+ target.active = true;
182
+ this.value = tabId;
183
+ this.debouncedBqChange({ value: tabId, target });
184
+ };
176
185
  // render() function
177
186
  // Always the last one in the class.
178
187
  // ===================================
@@ -185,7 +194,6 @@ const BqTabGroup$1 = /*@__PURE__*/ proxyCustomElement(class BqTabGroup extends H
185
194
  'flex-col': this.orientation !== 'horizontal',
186
195
  }, role: "tablist", part: "tabs" }, h("slot", { key: '0cd8984a6f7993adc39ed2145ead854e1b53dc49' })))));
187
196
  }
188
- get el() { return this; }
189
197
  static get watchers() { return {
190
198
  "debounceTime": ["checkDebounceChange"],
191
199
  "size": ["checkPropValues"],
@@ -1 +1 @@
1
- {"file":"bq-tab-group.js","mappings":"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","names":["BqTabGroup"],"sources":["../../packages/beeq/src/shared/utils/getNextElement.ts","../../packages/beeq/src/components/tab-group/scss/bq-tab-group.scss?tag=bq-tab-group&encapsulation=shadow","../../packages/beeq/src/components/tab-group/bq-tab-group.tsx"],"sourcesContent":["/**\n * Gets the next element that is not disabled\n *\n * @param {Array} elements - The array to search in\n * @param {Numebr} startAt - Position to start at\n * @param {String} direction - The direction to look on\n * @returns {Element} Next available element\n */\n\nexport const getNextElement = <T extends { disabled: boolean }>(\n elements: T[],\n startAt = 0,\n direction: 'forward' | 'backward' = 'forward',\n): T => {\n let elementIndex = startAt;\n\n do {\n elementIndex = getNextIndex(elementIndex, elements.length, direction);\n if (elementIndex === startAt) {\n break;\n }\n } while (elements[elementIndex].disabled);\n\n return elements[elementIndex];\n};\n\nconst getNextIndex = (currentIndex: number, length: number, direction: 'forward' | 'backward'): number => {\n const nextIndex = currentIndex + (direction === 'forward' ? 1 : -1);\n return (length + nextIndex) % length;\n};\n","/* -------------------------------------------------------------------------- */\n/* Tab styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply block;\n}\n\n.bq-tab-group {\n @apply relative;\n\n &::after {\n @apply absolute flex border-0 border-solid border-bg-tertiary content-empty;\n }\n\n &--horizontal-start,\n &--horizontal-end {\n &::after {\n @apply is-full inset-be-0 [border-block-end-width:--bq-stroke-s];\n }\n }\n\n &--horizontal-start {\n @apply justify-start;\n }\n\n &--horizontal-end {\n @apply justify-end;\n }\n\n &--vertical-start::after {\n @apply end-0 bs-full is-0 [border-block-end-width:0px] [border-inline-end-width:--bq-stroke-s];\n }\n\n &--vertical-end::after {\n @apply start-0 bs-full is-0 [border-block-end-width:0px] [border-inline-start-width:--bq-stroke-s];\n }\n}\n\n.bq-tab-group.no-divider {\n &::after {\n @apply content-none;\n }\n}\n\n.bq-tab-group--container {\n @include hide-scrollbar;\n @apply gap-xs2 p-xs2; // This will avoid cutting the outline focus style\n}\n","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"],"version":3}
1
+ {"file":"bq-tab-group.js","mappings":"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","names":["BqTabGroup"],"sources":["../../packages/beeq/src/shared/utils/getNextElement.ts","../../packages/beeq/src/components/tab-group/scss/bq-tab-group.scss?tag=bq-tab-group&encapsulation=shadow","../../packages/beeq/src/components/tab-group/bq-tab-group.tsx"],"sourcesContent":["/**\n * Gets the next element that is not disabled\n *\n * @param {Array} elements - The array to search in\n * @param {Numebr} startAt - Position to start at\n * @param {String} direction - The direction to look on\n * @returns {Element} Next available element\n */\n\nexport const getNextElement = <T extends { disabled: boolean }>(\n elements: T[],\n startAt = 0,\n direction: 'forward' | 'backward' = 'forward',\n): T => {\n let elementIndex = startAt;\n\n do {\n elementIndex = getNextIndex(elementIndex, elements.length, direction);\n if (elementIndex === startAt) {\n break;\n }\n } while (elements[elementIndex].disabled);\n\n return elements[elementIndex];\n};\n\nconst getNextIndex = (currentIndex: number, length: number, direction: 'forward' | 'backward'): number => {\n const nextIndex = currentIndex + (direction === 'forward' ? 1 : -1);\n return (length + nextIndex) % length;\n};\n","/* -------------------------------------------------------------------------- */\n/* Tab styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply block;\n}\n\n.bq-tab-group {\n @apply relative;\n\n &::after {\n @apply absolute flex border-0 border-solid border-bg-tertiary content-empty;\n }\n\n &--horizontal-start,\n &--horizontal-end {\n &::after {\n @apply is-full inset-be-0 [border-block-end-width:--bq-stroke-s];\n }\n }\n\n &--horizontal-start {\n @apply justify-start;\n }\n\n &--horizontal-end {\n @apply justify-end;\n }\n\n &--vertical-start::after {\n @apply end-0 bs-full is-0 [border-block-end-width:0px] [border-inline-end-width:--bq-stroke-s];\n }\n\n &--vertical-end::after {\n @apply start-0 bs-full is-0 [border-block-end-width:0px] [border-inline-start-width:--bq-stroke-s];\n }\n}\n\n.bq-tab-group.no-divider {\n &::after {\n @apply content-none;\n }\n}\n\n.bq-tab-group--container {\n @include hide-scrollbar;\n @apply gap-xs2 p-xs2; // This will avoid cutting the outline focus style\n}\n","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"],"version":3}
@@ -8,7 +8,7 @@ import './assetsPath.js';
8
8
  import { v as validatePropValue } from './props.js';
9
9
  import { b as hasSlotContent } from './slot.js';
10
10
 
11
- const bqTabCss = "::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: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
+ const bqTabCss = ".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: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)}";
12
12
  const BqTabStyle0 = bqTabCss;
13
13
 
14
14
  const BqTab$1 = /*@__PURE__*/ proxyCustomElement(class BqTab extends HTMLElement {
@@ -20,26 +20,6 @@ const BqTab$1 = /*@__PURE__*/ proxyCustomElement(class BqTab extends HTMLElement
20
20
  this.bqFocus = createEvent(this, "bqFocus", 7);
21
21
  this.bqBlur = createEvent(this, "bqBlur", 7);
22
22
  this.bqKeyDown = createEvent(this, "bqKeyDown", 7);
23
- // Local methods
24
- // Internal business logic.
25
- // These methods cannot be called from the host element.
26
- // =======================================================
27
- this.handleClick = () => {
28
- this.active = true;
29
- this.bqClick.emit(this.el);
30
- };
31
- this.handleOnFocus = () => {
32
- this.bqFocus.emit(this.el);
33
- };
34
- this.handleOnBlur = () => {
35
- this.bqBlur.emit(this.el);
36
- };
37
- this.handleOnKeyDown = (event) => {
38
- this.bqKeyDown.emit(event);
39
- };
40
- this.handleIconSlotChange = () => {
41
- this.hasIcon = hasSlotContent(this.iconElement, 'icon');
42
- };
43
23
  this.tabIndex = null;
44
24
  this.hasIcon = false;
45
25
  this.active = undefined;
@@ -50,6 +30,11 @@ const BqTab$1 = /*@__PURE__*/ proxyCustomElement(class BqTab extends HTMLElement
50
30
  this.tabId = undefined;
51
31
  this.controls = undefined;
52
32
  }
33
+ // Own Properties
34
+ // ====================
35
+ buttonElement;
36
+ iconElement;
37
+ get el() { return this; }
53
38
  // Prop lifecycle events
54
39
  // =======================
55
40
  checkPropValues() {
@@ -57,6 +42,17 @@ const BqTab$1 = /*@__PURE__*/ proxyCustomElement(class BqTab extends HTMLElement
57
42
  validatePropValue(TAB_ORIENTATION, 'horizontal', this.el, 'orientation');
58
43
  validatePropValue(TAB_PLACEMENT, 'start', this.el, 'placement');
59
44
  }
45
+ // Events section
46
+ // Requires JSDocs for public API documentation
47
+ // ==============================================
48
+ /** Handler to be called when the tab state changes */
49
+ bqClick;
50
+ /** Handler to be called when the tab gets focus */
51
+ bqFocus;
52
+ /** Handler to be called when the tab loses focus */
53
+ bqBlur;
54
+ /** Handler to be called when the tab key is pressed */
55
+ bqKeyDown;
60
56
  // Component lifecycle events
61
57
  // Ordered by their natural call order
62
58
  // =====================================
@@ -76,24 +72,21 @@ const BqTab$1 = /*@__PURE__*/ proxyCustomElement(class BqTab extends HTMLElement
76
72
  * Use this method instead of the global `element.click()`.
77
73
  */
78
74
  async vClick() {
79
- var _a;
80
- (_a = this.buttonElement) === null || _a === void 0 ? void 0 : _a.click();
75
+ this.buttonElement?.click();
81
76
  }
82
77
  /**
83
78
  * Sets focus on the native `<button>` HTML element used under the hood.
84
79
  * Use this method instead of the global `element.focus()`.
85
80
  */
86
81
  async vFocus() {
87
- var _a;
88
- (_a = this.buttonElement) === null || _a === void 0 ? void 0 : _a.focus();
82
+ this.buttonElement?.focus();
89
83
  }
90
84
  /**
91
85
  * Remove focus from the native `<button>` HTML element used under the hood.
92
86
  * Use this method instead of the global `element.blur()`.
93
87
  */
94
88
  async vBlur() {
95
- var _a;
96
- (_a = this.buttonElement) === null || _a === void 0 ? void 0 : _a.blur();
89
+ this.buttonElement?.blur();
97
90
  }
98
91
  /**
99
92
  * Sets tabindex on the native `<button>` HTML element used under the hood.
@@ -102,10 +95,29 @@ const BqTab$1 = /*@__PURE__*/ proxyCustomElement(class BqTab extends HTMLElement
102
95
  async enableFocus(value) {
103
96
  this.tabIndex = value ? 0 : null;
104
97
  }
98
+ // Local methods
99
+ // Internal business logic.
100
+ // These methods cannot be called from the host element.
101
+ // =======================================================
102
+ handleClick = () => {
103
+ this.active = true;
104
+ this.bqClick.emit(this.el);
105
+ };
106
+ handleOnFocus = () => {
107
+ this.bqFocus.emit(this.el);
108
+ };
109
+ handleOnBlur = () => {
110
+ this.bqBlur.emit(this.el);
111
+ };
112
+ handleOnKeyDown = (event) => {
113
+ this.bqKeyDown.emit(event);
114
+ };
115
+ handleIconSlotChange = () => {
116
+ this.hasIcon = hasSlotContent(this.iconElement, 'icon');
117
+ };
105
118
  get tabindex() {
106
- var _a, _b;
107
119
  // NOTE: this.active is undefined when is not part of bq-tab-group
108
- return `${(_a = this.tabIndex) !== null && _a !== void 0 ? _a : -1 + +((_b = this.active) !== null && _b !== void 0 ? _b : 1)}`;
120
+ return `${this.tabIndex ?? -1 + +(this.active ?? 1)}`;
109
121
  }
110
122
  // render() function
111
123
  // Always the last one in the class.
@@ -117,7 +129,6 @@ const BqTab$1 = /*@__PURE__*/ proxyCustomElement(class BqTab extends HTMLElement
117
129
  'text-text-primary': !this.active,
118
130
  }, id: this.tabId, onBlur: this.handleOnBlur, onClick: this.handleClick, onFocus: this.handleOnFocus, onKeyDown: this.handleOnKeyDown, disabled: this.disabled, role: "tab", "aria-controls": this.controls, "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.active ? 'true' : 'false', tabindex: this.tabindex, part: "base" }, h("div", { key: '864eaa616150500fe2f0da5e6debf478a5b6999a', class: "flex items-center justify-center", part: "content" }, h("div", { key: '39d18bbe2732b0d80481c8ab40fef5fda1cd6bc2', class: "flex", ref: (span) => (this.iconElement = span), part: "icon" }, h("slot", { key: 'c8fa386b8c2d8aec1b18844b878ba99f191fa626', name: "icon", onSlotchange: this.handleIconSlotChange })), h("div", { key: '1579dbd951a409144bb9f81df35bf28ff63fa4f7', class: { 'line-clamp-1': true, 'ms-[--bq-tab--label-icon-gap]': this.hasIcon }, part: "text" }, h("slot", { key: '145f6616ac64e6f25f6c77ad1dc9fa01cb23062f' })))));
119
131
  }
120
- get el() { return this; }
121
132
  static get watchers() { return {
122
133
  "size": ["checkPropValues"],
123
134
  "orientation": ["checkPropValues"],
@@ -1 +1 @@
1
- {"file":"bq-tab.js","mappings":"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","names":["BqTab"],"sources":["../../packages/beeq/src/components/tab/scss/bq-tab.scss?tag=bq-tab&encapsulation=shadow","../../packages/beeq/src/components/tab/bq-tab.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Tab styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-tab.variables';\n\n:host {\n @apply inline-block;\n}\n\n.bq-tab {\n @apply relative flex cursor-pointer items-center justify-center rounded-s disabled:cursor-not-allowed disabled:opacity-60;\n @apply text-[length:--bq-tab--font-size] font-[--bq-tab--font-weight] leading-[--bq-tab--line-height] [&:not([disabled])]:hover:bg-hover-ui-primary [&:not([disabled])]:hover:text-hover-text-brand;\n @apply border-0 bg-transparent focus-visible:focus;\n @apply transition-[color,background-color,border-color,box-shadow] duration-300;\n\n &::after {\n @apply absolute z-[1] block bg-stroke-brand opacity-0 content-empty -inset-be-1;\n @apply transition-opacity duration-300 ease-linear;\n }\n\n &--horizontal-start,\n &--horizontal-end {\n &::after {\n /**\n * This hack will make the underline larger so it fits till the tab bar edges for the first and last tab button,\n * because the parent container applies some padding to not cut the focus outline style.\n */\n @apply -start-xs3 bs-[2px] is-[calc(100%_+_var(--bq-spacing-xs2))];\n }\n }\n\n &--vertical-start {\n @apply justify-end is-full;\n\n &::after {\n @apply -end-xs2 bs-[calc(100%_+_var(--bq-spacing-xs2))] is-[2px];\n }\n }\n\n &--vertical-end {\n @apply justify-start is-full;\n\n &::after {\n @apply -start-xs2 bs-[calc(100%_+_var(--bq-spacing-xs2))] is-[2px];\n }\n }\n\n &[aria-selected='true']::after {\n @apply opacity-100;\n }\n\n &--small {\n @apply p-b-[--bq-tab--padding-vertical-small] p-i-[--bq-tab--padding-horizontal-small];\n\n ::slotted(bq-icon) {\n --bq-icon--size: var(--bq-tab--icon-size-small) #{!important};\n }\n }\n\n &--medium {\n @apply p-b-[--bq-tab--padding-vertical-medium] p-i-[--bq-tab--padding-horizontal-medium];\n\n ::slotted(bq-icon) {\n --bq-icon--size: var(--bq-tab--icon-size-medium) #{!important};\n }\n }\n\n &--large {\n @apply text-l p-b-[--bq-tab--padding-vertical-large] p-i-[--bq-tab--padding-horizontal-large];\n\n ::slotted(bq-icon) {\n --bq-icon--size: var(--bq-tab--icon-size-large) #{!important};\n }\n }\n}\n","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"],"version":3}
1
+ {"file":"bq-tab.js","mappings":"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","names":["BqTab"],"sources":["../../packages/beeq/src/components/tab/scss/bq-tab.scss?tag=bq-tab&encapsulation=shadow","../../packages/beeq/src/components/tab/bq-tab.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Tab styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-tab.variables';\n\n:host {\n @apply inline-block;\n}\n\n.bq-tab {\n @apply relative flex cursor-pointer items-center justify-center rounded-s disabled:cursor-not-allowed disabled:opacity-60;\n @apply text-[length:--bq-tab--font-size] font-[--bq-tab--font-weight] leading-[--bq-tab--line-height] [&:not([disabled])]:hover:bg-hover-ui-primary [&:not([disabled])]:hover:text-hover-text-brand;\n @apply border-0 bg-transparent focus-visible:focus;\n @apply transition-[color,background-color,border-color,box-shadow] duration-300;\n\n &::after {\n @apply absolute z-[1] block bg-stroke-brand opacity-0 content-empty -inset-be-1;\n @apply transition-opacity duration-300 ease-linear;\n }\n\n &--horizontal-start,\n &--horizontal-end {\n &::after {\n /**\n * This hack will make the underline larger so it fits till the tab bar edges for the first and last tab button,\n * because the parent container applies some padding to not cut the focus outline style.\n */\n @apply -start-xs3 bs-[2px] is-[calc(100%_+_var(--bq-spacing-xs2))];\n }\n }\n\n &--vertical-start {\n @apply justify-end is-full;\n\n &::after {\n @apply -end-xs2 bs-[calc(100%_+_var(--bq-spacing-xs2))] is-[2px];\n }\n }\n\n &--vertical-end {\n @apply justify-start is-full;\n\n &::after {\n @apply -start-xs2 bs-[calc(100%_+_var(--bq-spacing-xs2))] is-[2px];\n }\n }\n\n &[aria-selected='true']::after {\n @apply opacity-100;\n }\n\n &--small {\n @apply p-b-[--bq-tab--padding-vertical-small] p-i-[--bq-tab--padding-horizontal-small];\n\n ::slotted(bq-icon) {\n --bq-icon--size: var(--bq-tab--icon-size-small) #{!important};\n }\n }\n\n &--medium {\n @apply p-b-[--bq-tab--padding-vertical-medium] p-i-[--bq-tab--padding-horizontal-medium];\n\n ::slotted(bq-icon) {\n --bq-icon--size: var(--bq-tab--icon-size-medium) #{!important};\n }\n }\n\n &--large {\n @apply text-l p-b-[--bq-tab--padding-vertical-large] p-i-[--bq-tab--padding-horizontal-large];\n\n ::slotted(bq-icon) {\n --bq-icon--size: var(--bq-tab--icon-size-large) #{!important};\n }\n }\n}\n","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"],"version":3}