@beeq/core 1.8.0-beta.0 → 1.8.0-beta.1

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 (289) hide show
  1. package/dist/beeq/beeq.esm.js +43 -1
  2. package/dist/beeq/beeq.esm.js.map +1 -1
  3. package/dist/beeq/index.esm.js +64 -1
  4. package/dist/beeq/index.esm.js.map +1 -1
  5. package/dist/beeq/p-063a3968.entry.js +388 -0
  6. package/dist/beeq/{p-9acfedb8.entry.js.map → p-063a3968.entry.js.map} +1 -1
  7. package/dist/beeq/p-0979fdfd.entry.js +297 -0
  8. package/dist/beeq/{p-7f23cde7.entry.js.map → p-0979fdfd.entry.js.map} +1 -1
  9. package/dist/beeq/p-0ab0b58d.js +25 -1
  10. package/dist/beeq/p-0ab0b58d.js.map +1 -1
  11. package/dist/beeq/p-0c42c08a.js +1811 -0
  12. package/dist/beeq/p-0c42c08a.js.map +1 -0
  13. package/dist/beeq/p-0f48adcc.entry.js +117 -0
  14. package/dist/beeq/{p-9f40249f.entry.js.map → p-0f48adcc.entry.js.map} +1 -1
  15. package/dist/beeq/p-115ed5b2.js +25 -1
  16. package/dist/beeq/p-115ed5b2.js.map +1 -1
  17. package/dist/beeq/p-14b44a4b.entry.js +205 -0
  18. package/dist/beeq/{p-8059836c.entry.js.map → p-14b44a4b.entry.js.map} +1 -1
  19. package/dist/beeq/p-1715ac80.entry.js +274 -0
  20. package/dist/beeq/{p-eab59153.entry.js.map → p-1715ac80.entry.js.map} +1 -1
  21. package/dist/beeq/p-1c8b6eb4.js +12 -1
  22. package/dist/beeq/p-1c8b6eb4.js.map +1 -1
  23. package/dist/beeq/p-1f3a4359.js +11 -1
  24. package/dist/beeq/p-1f3a4359.js.map +1 -1
  25. package/dist/beeq/p-242ac28a.entry.js +145 -0
  26. package/dist/beeq/{p-90c5851d.entry.js.map → p-242ac28a.entry.js.map} +1 -1
  27. package/dist/beeq/p-297fb76b.entry.js +220 -0
  28. package/dist/beeq/{p-79b7547b.entry.js.map → p-297fb76b.entry.js.map} +1 -1
  29. package/dist/beeq/p-2bb65f53.entry.js +204 -0
  30. package/dist/beeq/{p-a8cb8989.entry.js.map → p-2bb65f53.entry.js.map} +1 -1
  31. package/dist/beeq/p-2e66fc4f.entry.js +434 -0
  32. package/dist/beeq/{p-ddb23180.entry.js.map → p-2e66fc4f.entry.js.map} +1 -1
  33. package/dist/beeq/p-36652891.entry.js +102 -0
  34. package/dist/beeq/{p-633319f3.entry.js.map → p-36652891.entry.js.map} +1 -1
  35. package/dist/beeq/p-38d4bd8a.js +1934 -1
  36. package/dist/beeq/p-38d4bd8a.js.map +1 -1
  37. package/dist/beeq/p-39b7c578.entry.js +84 -0
  38. package/dist/beeq/{p-94d62f1b.entry.js.map → p-39b7c578.entry.js.map} +1 -1
  39. package/dist/beeq/p-39d77ba6.entry.js +90 -0
  40. package/dist/beeq/{p-be664fb0.entry.js.map → p-39d77ba6.entry.js.map} +1 -1
  41. package/dist/beeq/p-3fd0d92d.js +1228 -1
  42. package/dist/beeq/p-3fd0d92d.js.map +1 -1
  43. package/dist/beeq/p-4688e046.js +16 -0
  44. package/dist/beeq/{p-aee056e5.js.map → p-4688e046.js.map} +1 -1
  45. package/dist/beeq/p-49249dda.entry.js +156 -0
  46. package/dist/beeq/{p-235328ee.entry.js.map → p-49249dda.entry.js.map} +1 -1
  47. package/dist/beeq/p-548b45b7.entry.js +104 -0
  48. package/dist/beeq/{p-ae8ffb81.entry.js.map → p-548b45b7.entry.js.map} +1 -1
  49. package/dist/beeq/p-57621be1.js +9 -1
  50. package/dist/beeq/p-57621be1.js.map +1 -1
  51. package/dist/beeq/p-57a55ac5.entry.js +261 -0
  52. package/dist/beeq/{p-52577f3a.entry.js.map → p-57a55ac5.entry.js.map} +1 -1
  53. package/dist/beeq/p-5e11b866.entry.js +102 -0
  54. package/dist/beeq/{p-b7281046.entry.js.map → p-5e11b866.entry.js.map} +1 -1
  55. package/dist/beeq/p-687da041.js +20 -1
  56. package/dist/beeq/p-687da041.js.map +1 -1
  57. package/dist/beeq/p-6a4e104b.entry.js +263 -0
  58. package/dist/beeq/{p-3aa41d80.entry.js.map → p-6a4e104b.entry.js.map} +1 -1
  59. package/dist/beeq/p-6a5a79a3.entry.js +184 -0
  60. package/dist/beeq/{p-606c080c.entry.js.map → p-6a5a79a3.entry.js.map} +1 -1
  61. package/dist/beeq/p-7f301da8.entry.js +508 -0
  62. package/dist/beeq/p-7f301da8.entry.js.map +1 -0
  63. package/dist/beeq/p-81f1c3ba.entry.js +121 -0
  64. package/dist/beeq/{p-c9c942e6.entry.js.map → p-81f1c3ba.entry.js.map} +1 -1
  65. package/dist/beeq/p-822773ae.entry.js +195 -0
  66. package/dist/beeq/{p-a7b0fd0b.entry.js.map → p-822773ae.entry.js.map} +1 -1
  67. package/dist/beeq/p-951ba558.js +64 -1
  68. package/dist/beeq/p-951ba558.js.map +1 -1
  69. package/dist/beeq/p-99829fc7.js +8 -1
  70. package/dist/beeq/p-99829fc7.js.map +1 -1
  71. package/dist/beeq/p-9990889d.entry.js +222 -0
  72. package/dist/beeq/{p-9cd26e8d.entry.js.map → p-9990889d.entry.js.map} +1 -1
  73. package/dist/beeq/p-a1b43de6.entry.js +248 -0
  74. package/dist/beeq/{p-4ba2bec7.entry.js.map → p-a1b43de6.entry.js.map} +1 -1
  75. package/dist/beeq/p-a5dc1c94.js +118 -1
  76. package/dist/beeq/p-a5dc1c94.js.map +1 -1
  77. package/dist/beeq/p-a6489187.entry.js +103 -0
  78. package/dist/beeq/{p-b90c6de9.entry.js.map → p-a6489187.entry.js.map} +1 -1
  79. package/dist/beeq/p-a8cad5ab.js +5 -1
  80. package/dist/beeq/p-a8cad5ab.js.map +1 -1
  81. package/dist/beeq/p-ac969486.entry.js +330 -0
  82. package/dist/beeq/{p-4739f5c3.entry.js.map → p-ac969486.entry.js.map} +1 -1
  83. package/dist/beeq/p-af062402.js +7 -1
  84. package/dist/beeq/p-af062402.js.map +1 -1
  85. package/dist/beeq/p-afc9fd80.entry.js +144 -0
  86. package/dist/beeq/{p-6e026fad.entry.js.map → p-afc9fd80.entry.js.map} +1 -1
  87. package/dist/beeq/p-bef53750.js +79 -0
  88. package/dist/beeq/p-bef53750.js.map +1 -0
  89. package/dist/beeq/p-bf2320dd.entry.js +329 -0
  90. package/dist/beeq/{p-e6382462.entry.js.map → p-bf2320dd.entry.js.map} +1 -1
  91. package/dist/beeq/p-c34e292e.entry.js +127 -0
  92. package/dist/beeq/{p-268dc1e3.entry.js.map → p-c34e292e.entry.js.map} +1 -1
  93. package/dist/beeq/p-d7a88b16.js +87 -1
  94. package/dist/beeq/p-d7a88b16.js.map +1 -1
  95. package/dist/beeq/p-db18eba1.entry.js +173 -0
  96. package/dist/beeq/{p-eddb77c7.entry.js.map → p-db18eba1.entry.js.map} +1 -1
  97. package/dist/beeq/p-dd950c12.entry.js +309 -0
  98. package/dist/beeq/{p-63ad9702.entry.js.map → p-dd950c12.entry.js.map} +1 -1
  99. package/dist/beeq/p-e301647a.entry.js +87 -0
  100. package/dist/beeq/{p-3b2ce34b.entry.js.map → p-e301647a.entry.js.map} +1 -1
  101. package/dist/beeq/p-e3aa2886.entry.js +203 -0
  102. package/dist/beeq/{p-a006be9e.entry.js.map → p-e3aa2886.entry.js.map} +1 -1
  103. package/dist/beeq/p-e41f07ae.entry.js +173 -0
  104. package/dist/beeq/{p-9c6c6646.entry.js.map → p-e41f07ae.entry.js.map} +1 -1
  105. package/dist/beeq/p-e88257a8.entry.js +259 -0
  106. package/dist/beeq/{p-d2bbae3b.entry.js.map → p-e88257a8.entry.js.map} +1 -1
  107. package/dist/beeq/p-e9a54b49.entry.js +145 -0
  108. package/dist/beeq/{p-96d7f361.entry.js.map → p-e9a54b49.entry.js.map} +1 -1
  109. package/dist/beeq/p-ecd27cf2.js +11 -1
  110. package/dist/beeq/p-ecd27cf2.js.map +1 -1
  111. package/dist/beeq/p-f77d9b8b.entry.js +144 -0
  112. package/dist/beeq/{p-41bac721.entry.js.map → p-f77d9b8b.entry.js.map} +1 -1
  113. package/dist/beeq/p-fd658de1.entry.js +135 -0
  114. package/dist/beeq/{p-255fcbe4.entry.js.map → p-fd658de1.entry.js.map} +1 -1
  115. package/dist/beeq/p-ffb48c40.entry.js +258 -0
  116. package/dist/beeq/{p-b9544567.entry.js.map → p-ffb48c40.entry.js.map} +1 -1
  117. package/dist/beeq/p-ffddc425.entry.js +149 -0
  118. package/dist/beeq/{p-571b40ff.entry.js.map → p-ffddc425.entry.js.map} +1 -1
  119. package/dist/cjs/app-globals-b11284b9.js.map +1 -1
  120. package/dist/cjs/assetsPath-3938a05d.js +78 -0
  121. package/dist/cjs/assetsPath-3938a05d.js.map +1 -0
  122. package/dist/cjs/beeq.cjs.js +1 -1
  123. package/dist/cjs/bq-accordion-group.cjs.entry.js +2 -2
  124. package/dist/cjs/bq-accordion.cjs.entry.js +2 -2
  125. package/dist/cjs/bq-alert.cjs.entry.js +2 -2
  126. package/dist/cjs/bq-avatar.cjs.entry.js +2 -2
  127. package/dist/cjs/bq-badge.cjs.entry.js +2 -2
  128. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +3 -3
  129. package/dist/cjs/bq-breadcrumb.cjs.entry.js +2 -2
  130. package/dist/cjs/bq-button_2.cjs.entry.js +3 -3
  131. package/dist/cjs/bq-card.cjs.entry.js +2 -2
  132. package/dist/cjs/bq-checkbox.cjs.entry.js +2 -2
  133. package/dist/cjs/bq-date-picker.cjs.entry.js +3 -3
  134. package/dist/cjs/bq-dialog.cjs.entry.js +2 -2
  135. package/dist/cjs/bq-divider.cjs.entry.js +2 -2
  136. package/dist/cjs/bq-drawer.cjs.entry.js +3 -3
  137. package/dist/cjs/bq-dropdown_2.cjs.entry.js +1 -1
  138. package/dist/cjs/bq-empty-state.cjs.entry.js +2 -2
  139. package/dist/cjs/bq-input.cjs.entry.js +3 -3
  140. package/dist/cjs/bq-notification.cjs.entry.js +2 -2
  141. package/dist/cjs/bq-option-group.cjs.entry.js +1 -1
  142. package/dist/cjs/bq-option-list_2.cjs.entry.js +2 -2
  143. package/dist/cjs/bq-option.cjs.entry.js +2 -2
  144. package/dist/cjs/bq-page-title.cjs.entry.js +2 -2
  145. package/dist/cjs/bq-progress.cjs.entry.js +2 -2
  146. package/dist/cjs/bq-radio-group.cjs.entry.js +2 -2
  147. package/dist/cjs/bq-radio.cjs.entry.js +1 -1
  148. package/dist/cjs/bq-select.cjs.entry.js +12 -12
  149. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  150. package/dist/cjs/bq-side-menu-item.cjs.entry.js +2 -2
  151. package/dist/cjs/bq-side-menu.cjs.entry.js +2 -2
  152. package/dist/cjs/bq-slider.cjs.entry.js +2 -2
  153. package/dist/cjs/bq-spinner.cjs.entry.js +2 -2
  154. package/dist/cjs/bq-status.cjs.entry.js +2 -2
  155. package/dist/cjs/bq-step-item.cjs.entry.js +2 -2
  156. package/dist/cjs/bq-steps.cjs.entry.js +2 -2
  157. package/dist/cjs/bq-switch.cjs.entry.js +2 -2
  158. package/dist/cjs/bq-tab-group.cjs.entry.js +2 -2
  159. package/dist/cjs/bq-tab.cjs.entry.js +2 -2
  160. package/dist/cjs/bq-textarea.cjs.entry.js +2 -2
  161. package/dist/cjs/bq-toast.cjs.entry.js +2 -2
  162. package/dist/cjs/bq-tooltip.cjs.entry.js +1 -1
  163. package/dist/cjs/{index-e6d59dbb.js → index-1d3aac65.js} +20 -2
  164. package/dist/cjs/index-1d3aac65.js.map +1 -0
  165. package/dist/cjs/index.cjs.js +2 -2
  166. package/dist/cjs/{isDefined-4f4a320b.js → isDefined-750bffc4.js} +2 -2
  167. package/dist/cjs/{isDefined-4f4a320b.js.map → isDefined-750bffc4.js.map} +1 -1
  168. package/dist/cjs/loader.cjs.js +1 -1
  169. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  170. package/dist/collection/components/select/bq-select.js +10 -10
  171. package/dist/collection/components/select/bq-select.js.map +1 -1
  172. package/dist/collection/components/select/scss/bq-select.css +1 -1
  173. package/dist/collection/shared/utils/assetsPath.js +52 -26
  174. package/dist/collection/shared/utils/assetsPath.js.map +1 -1
  175. package/dist/components/assetsPath.js +52 -26
  176. package/dist/components/assetsPath.js.map +1 -1
  177. package/dist/components/bq-drawer.js +1 -1
  178. package/dist/components/bq-select.js +10 -10
  179. package/dist/components/bq-select.js.map +1 -1
  180. package/dist/esm/app-globals-de5a646b.js.map +1 -1
  181. package/dist/esm/assetsPath-a1b58980.js +75 -0
  182. package/dist/esm/assetsPath-a1b58980.js.map +1 -0
  183. package/dist/esm/beeq.js +2 -2
  184. package/dist/esm/bq-accordion-group.entry.js +2 -2
  185. package/dist/esm/bq-accordion.entry.js +2 -2
  186. package/dist/esm/bq-alert.entry.js +2 -2
  187. package/dist/esm/bq-avatar.entry.js +2 -2
  188. package/dist/esm/bq-badge.entry.js +2 -2
  189. package/dist/esm/bq-breadcrumb-item.entry.js +3 -3
  190. package/dist/esm/bq-breadcrumb.entry.js +2 -2
  191. package/dist/esm/bq-button_2.entry.js +3 -3
  192. package/dist/esm/bq-card.entry.js +2 -2
  193. package/dist/esm/bq-checkbox.entry.js +2 -2
  194. package/dist/esm/bq-date-picker.entry.js +3 -3
  195. package/dist/esm/bq-dialog.entry.js +2 -2
  196. package/dist/esm/bq-divider.entry.js +2 -2
  197. package/dist/esm/bq-drawer.entry.js +3 -3
  198. package/dist/esm/bq-dropdown_2.entry.js +1 -1
  199. package/dist/esm/bq-empty-state.entry.js +2 -2
  200. package/dist/esm/bq-input.entry.js +3 -3
  201. package/dist/esm/bq-notification.entry.js +2 -2
  202. package/dist/esm/bq-option-group.entry.js +1 -1
  203. package/dist/esm/bq-option-list_2.entry.js +2 -2
  204. package/dist/esm/bq-option.entry.js +2 -2
  205. package/dist/esm/bq-page-title.entry.js +2 -2
  206. package/dist/esm/bq-progress.entry.js +2 -2
  207. package/dist/esm/bq-radio-group.entry.js +2 -2
  208. package/dist/esm/bq-radio.entry.js +1 -1
  209. package/dist/esm/bq-select.entry.js +13 -13
  210. package/dist/esm/bq-select.entry.js.map +1 -1
  211. package/dist/esm/bq-side-menu-item.entry.js +2 -2
  212. package/dist/esm/bq-side-menu.entry.js +2 -2
  213. package/dist/esm/bq-slider.entry.js +2 -2
  214. package/dist/esm/bq-spinner.entry.js +2 -2
  215. package/dist/esm/bq-status.entry.js +2 -2
  216. package/dist/esm/bq-step-item.entry.js +2 -2
  217. package/dist/esm/bq-steps.entry.js +2 -2
  218. package/dist/esm/bq-switch.entry.js +2 -2
  219. package/dist/esm/bq-tab-group.entry.js +2 -2
  220. package/dist/esm/bq-tab.entry.js +2 -2
  221. package/dist/esm/bq-textarea.entry.js +2 -2
  222. package/dist/esm/bq-toast.entry.js +2 -2
  223. package/dist/esm/bq-tooltip.entry.js +1 -1
  224. package/dist/esm/{index-efc1c2ef.js → index-f69556fe.js} +20 -2
  225. package/dist/esm/index-f69556fe.js.map +1 -0
  226. package/dist/esm/index.js +3 -3
  227. package/dist/esm/{isDefined-91ae4cd3.js → isDefined-170f3095.js} +2 -2
  228. package/dist/esm/{isDefined-91ae4cd3.js.map → isDefined-170f3095.js.map} +1 -1
  229. package/dist/esm/loader.js +2 -2
  230. package/dist/hydrate/index.js +62 -36
  231. package/dist/hydrate/index.mjs +62 -36
  232. package/dist/stencil.config.js +4 -1
  233. package/dist/stencil.config.js.map +1 -1
  234. package/dist/types/home/workflows/workspace/packages/beeq/.stencil/packages/beeq/stencil.config.d.ts +2 -0
  235. package/dist/types/shared/utils/assetsPath.d.ts +18 -11
  236. package/package.json +1 -1
  237. package/dist/beeq/p-235328ee.entry.js +0 -6
  238. package/dist/beeq/p-255fcbe4.entry.js +0 -6
  239. package/dist/beeq/p-268dc1e3.entry.js +0 -6
  240. package/dist/beeq/p-3aa41d80.entry.js +0 -6
  241. package/dist/beeq/p-3b2ce34b.entry.js +0 -6
  242. package/dist/beeq/p-41bac721.entry.js +0 -6
  243. package/dist/beeq/p-4739f5c3.entry.js +0 -6
  244. package/dist/beeq/p-4ba2bec7.entry.js +0 -6
  245. package/dist/beeq/p-52577f3a.entry.js +0 -6
  246. package/dist/beeq/p-571b40ff.entry.js +0 -6
  247. package/dist/beeq/p-606c080c.entry.js +0 -6
  248. package/dist/beeq/p-633319f3.entry.js +0 -6
  249. package/dist/beeq/p-63ad9702.entry.js +0 -6
  250. package/dist/beeq/p-6e026fad.entry.js +0 -6
  251. package/dist/beeq/p-6edc8a33.js +0 -6
  252. package/dist/beeq/p-6edc8a33.js.map +0 -1
  253. package/dist/beeq/p-76e714c6.js +0 -7
  254. package/dist/beeq/p-76e714c6.js.map +0 -1
  255. package/dist/beeq/p-79b7547b.entry.js +0 -6
  256. package/dist/beeq/p-7f23cde7.entry.js +0 -6
  257. package/dist/beeq/p-8059836c.entry.js +0 -6
  258. package/dist/beeq/p-8b7c7049.entry.js +0 -6
  259. package/dist/beeq/p-8b7c7049.entry.js.map +0 -1
  260. package/dist/beeq/p-90c5851d.entry.js +0 -6
  261. package/dist/beeq/p-94d62f1b.entry.js +0 -6
  262. package/dist/beeq/p-96d7f361.entry.js +0 -6
  263. package/dist/beeq/p-9acfedb8.entry.js +0 -6
  264. package/dist/beeq/p-9c6c6646.entry.js +0 -6
  265. package/dist/beeq/p-9cd26e8d.entry.js +0 -6
  266. package/dist/beeq/p-9f40249f.entry.js +0 -6
  267. package/dist/beeq/p-a006be9e.entry.js +0 -6
  268. package/dist/beeq/p-a7b0fd0b.entry.js +0 -6
  269. package/dist/beeq/p-a8cb8989.entry.js +0 -6
  270. package/dist/beeq/p-ae8ffb81.entry.js +0 -6
  271. package/dist/beeq/p-aee056e5.js +0 -6
  272. package/dist/beeq/p-b7281046.entry.js +0 -6
  273. package/dist/beeq/p-b90c6de9.entry.js +0 -6
  274. package/dist/beeq/p-b9544567.entry.js +0 -6
  275. package/dist/beeq/p-be664fb0.entry.js +0 -6
  276. package/dist/beeq/p-c9c942e6.entry.js +0 -6
  277. package/dist/beeq/p-d2bbae3b.entry.js +0 -6
  278. package/dist/beeq/p-ddb23180.entry.js +0 -6
  279. package/dist/beeq/p-e6382462.entry.js +0 -6
  280. package/dist/beeq/p-eab59153.entry.js +0 -6
  281. package/dist/beeq/p-eddb77c7.entry.js +0 -6
  282. package/dist/cjs/assetsPath-eac0a3bf.js +0 -52
  283. package/dist/cjs/assetsPath-eac0a3bf.js.map +0 -1
  284. package/dist/cjs/index-e6d59dbb.js.map +0 -1
  285. package/dist/esm/assetsPath-ae18c25e.js +0 -49
  286. package/dist/esm/assetsPath-ae18c25e.js.map +0 -1
  287. package/dist/esm/index-efc1c2ef.js.map +0 -1
  288. package/dist/types/Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System/packages/beeq/.stencil/packages/beeq/stencil.config.d.ts +0 -2
  289. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/workflows/workspace}/packages/beeq/.stencil/tailwind.config.d.ts +0 -0
@@ -0,0 +1,145 @@
1
+ /*!
2
+ * Built by Endavans
3
+ * © https://beeq.design - Apache 2 License.
4
+ */
5
+ import { r as a, h as r, a as e, g as b } from "./p-0c42c08a.js";
6
+
7
+ import "./p-bef53750.js";
8
+
9
+ import { v as q } from "./p-687da041.js";
10
+
11
+ const t = [ "xsmall", "small", "medium", "large" ];
12
+
13
+ const n = [ "circle", "square" ];
14
+
15
+ const i = '::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))}.relative{position:relative}.inline-block{display:inline-block}.overflow-hidden{overflow:hidden}.border-\\[length\\:var\\(--bq-avatar--border-width\\)\\]{border-width:var(--bq-avatar--border-width)}.border-\\[color\\:var\\(--bq-avatar--border-color\\)\\]{border-color:var(--bq-avatar--border-color)}.bg-\\[var\\(--bq-avatar-background\\)\\]{background-color:var(--bq-avatar-background)}.text-\\[length\\:var\\(--bq-avatar--font-size-large\\)\\]{font-size:var(--bq-avatar--font-size-large)}.text-\\[length\\:var\\(--bq-avatar--font-size-medium\\)\\]{font-size:var(--bq-avatar--font-size-medium)}.text-\\[length\\:var\\(--bq-avatar--font-size-small\\)\\]{font-size:var(--bq-avatar--font-size-small)}.text-\\[length\\:var\\(--bq-avatar--font-size-xsmall\\)\\]{font-size:var(--bq-avatar--font-size-xsmall)}.bs-\\[--bq-avatar--size-large\\]{block-size:var(--bq-avatar--size-large)}.bs-\\[--bq-avatar--size-medium\\]{block-size:var(--bq-avatar--size-medium)}.bs-\\[--bq-avatar--size-small\\]{block-size:var(--bq-avatar--size-small)}.bs-\\[--bq-avatar--size-xsmall\\]{block-size:var(--bq-avatar--size-xsmall)}.is-\\[--bq-avatar--size-large\\]{inline-size:var(--bq-avatar--size-large)}.is-\\[--bq-avatar--size-medium\\]{inline-size:var(--bq-avatar--size-medium)}.is-\\[--bq-avatar--size-small\\]{inline-size:var(--bq-avatar--size-small)}.is-\\[--bq-avatar--size-xsmall\\]{inline-size:var(--bq-avatar--size-xsmall)}@-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-avatar-background:var(--bq-ui--alt);--bq-avatar--border-color:var(--bq-stroke--tertiary);--bq-avatar--border-style:solid;--bq-avatar--border-width:var(--bq-stroke-m);--bq-avatar--border-radius-circle:var(--bq-radius--full);--bq-avatar--border-radius-squareXs:var(--bq-radius--xs);--bq-avatar--border-radius-squareS:var(--bq-radius--s);--bq-avatar--border-radius-squareM:var(--bq-radius--m);--bq-avatar--size-xsmall:24px;--bq-avatar--size-small:32px;--bq-avatar--size-medium:48px;--bq-avatar--size-large:64px;--bq-avatar--font-size-xsmall:var(--bq-font-size--xs);--bq-avatar--font-size-small:var(--bq-font-size--xs);--bq-avatar--font-size-medium:var(--bq-font-size--m);--bq-avatar--font-size-large:var(--bq-font-size--m);--bq-avatar--badge-top-square:-5px;--bq-avatar--badge-left-square:80%;--bq-avatar--badge-top-circle:0;--bq-avatar--badge-left-circle:75%;display:inline-block;position:relative}.bq-avatar{background-color:var(--bq-avatar-background);border-color:var(--bq-avatar--border-color);border-style:var(--bq-avatar--border-style);border-width:var(--bq-avatar--border-width);overflow:hidden;position:relative}.size--xsmall{block-size:var(--bq-avatar--size-xsmall);font-size:var(--bq-avatar--font-size-xsmall);inline-size:var(--bq-avatar--size-xsmall)}.size--small{block-size:var(--bq-avatar--size-small);font-size:var(--bq-avatar--font-size-small);inline-size:var(--bq-avatar--size-small)}.size--medium{block-size:var(--bq-avatar--size-medium);font-size:var(--bq-avatar--font-size-medium);inline-size:var(--bq-avatar--size-medium)}.size--large{block-size:var(--bq-avatar--size-large);font-size:var(--bq-avatar--font-size-large);inline-size:var(--bq-avatar--size-large)}.static{position:static}.absolute{position:absolute}.start-0{inset-inline-start:0}.start-\\[--bq-avatar--badge-left-circle\\]{inset-inline-start:var(--bq-avatar--badge-left-circle)}.start-\\[--bq-avatar--badge-left-square\\]{inset-inline-start:var(--bq-avatar--badge-left-square)}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-\\[--bq-avatar--border-radius-circle\\]{border-radius:var(--bq-avatar--border-radius-circle)}.rounded-\\[--bq-avatar--border-radius-squareM\\]{border-radius:var(--bq-avatar--border-radius-squareM)}.rounded-\\[--bq-avatar--border-radius-squareS\\]{border-radius:var(--bq-avatar--border-radius-squareS)}.rounded-\\[--bq-avatar--border-radius-squareXs\\]{border-radius:var(--bq-avatar--border-radius-squareXs)}.object-cover{object-fit:cover}.font-bold{font-weight:var(--bq-font-weight--bold)}.bs-full{block-size:100%}.is-full{inline-size:100%}.inset-bs-0{inset-block-start:0}.inset-bs-\\[--bq-avatar--badge-top-circle\\]{inset-block-start:var(--bq-avatar--badge-top-circle)}.inset-bs-\\[--bq-avatar--badge-top-square\\]{inset-block-start:var(--bq-avatar--badge-top-square)}';
16
+
17
+ const s = i;
18
+
19
+ const o = class {
20
+ constructor(r) {
21
+ a(this, r);
22
+ // Listeners
23
+ // ==============
24
+ // Public methods API
25
+ // These methods are exposed on the host element.
26
+ // Always use two lines.
27
+ // Public Methods must be async.
28
+ // Requires JSDocs for public API documentation.
29
+ // ===============================================
30
+ // Local methods
31
+ // Internal business logic.
32
+ // These methods cannot be called from the host element.
33
+ // =======================================================
34
+ this.onImageError = () => {
35
+ this.hasError = true;
36
+ };
37
+ this.trimInitialsBasedOnSize = () => {
38
+ if (!this.initials) return;
39
+ t.forEach((a => {
40
+ if (this.size === a) {
41
+ this.trimmedInitials = this.initials.substring(0, this.getIndex(a));
42
+ }
43
+ }));
44
+ };
45
+ this.getIndex = a => {
46
+ var r;
47
+ const e = {
48
+ xsmall: 1,
49
+ small: 2,
50
+ medium: 3,
51
+ large: 4
52
+ };
53
+ return (r = e[a]) !== null && r !== void 0 ? r : e.xsmall;
54
+ };
55
+ this.hasError = undefined;
56
+ this.altText = undefined;
57
+ this.image = undefined;
58
+ this.label = undefined;
59
+ this.initials = undefined;
60
+ this.shape = "circle";
61
+ this.size = "medium";
62
+ }
63
+ // Prop lifecycle events
64
+ // =======================
65
+ handleImagePropChange() {
66
+ // Reset the error when a new image source is provided
67
+ this.hasError = false;
68
+ }
69
+ checkPropValues() {
70
+ q(n, "circle", this.el, "shape");
71
+ q(t, "medium", this.el, "size");
72
+ }
73
+ onInitialsChange() {
74
+ this.trimInitialsBasedOnSize();
75
+ }
76
+ // Events section
77
+ // Requires JSDocs for public API documentation
78
+ // ==============================================
79
+ // Component lifecycle events
80
+ // Ordered by their natural call order
81
+ // =====================================
82
+ componentWillLoad() {
83
+ this.trimInitialsBasedOnSize();
84
+ this.checkPropValues();
85
+ }
86
+ // render() function
87
+ // Always the last one in the class.
88
+ // ===================================
89
+ render() {
90
+ var a;
91
+ return r(e, {
92
+ key: "321740369263438a96a9a8ef00c8382992c3585d"
93
+ }, r("div", {
94
+ key: "e057d84866f72d0dbb435cfa784bd09240fcae0b",
95
+ class: {
96
+ "bq-avatar": true,
97
+ [`size--${this.size}`]: true,
98
+ "rounded-[--bq-avatar--border-radius-circle]": this.shape === "circle",
99
+ "rounded-[--bq-avatar--border-radius-squareXs]": this.shape === "square" && this.size === "xsmall",
100
+ "rounded-[--bq-avatar--border-radius-squareS]": this.shape === "square" && this.size === "small",
101
+ "rounded-[--bq-avatar--border-radius-squareM]": this.shape === "square" && (this.size === "medium" || this.size === "large")
102
+ },
103
+ "aria-label": this.label,
104
+ role: "img",
105
+ part: "base"
106
+ }, this.initials && r("span", {
107
+ key: "356c33ca05215720992e86b67ee4249d00dbe194",
108
+ class: "absolute start-0 inline-flex items-center justify-center font-bold bs-full is-full inset-bs-0",
109
+ part: "text"
110
+ }, this.trimmedInitials), this.image && !this.hasError && r("img", {
111
+ key: "13e84f266f1745d002167d090f10128e249c366e",
112
+ class: "absolute start-0 object-cover bs-full is-full inset-bs-0",
113
+ alt: (a = this.altText) !== null && a !== void 0 ? a : undefined,
114
+ src: this.image,
115
+ onError: this.onImageError,
116
+ part: "img"
117
+ })), r("div", {
118
+ key: "9f9f96b2a4fd72d8609267f72f5afe13c7496cb5",
119
+ class: {
120
+ "absolute flex items-center justify-center": true,
121
+ "start-[--bq-avatar--badge-left-square] inset-bs-[--bq-avatar--badge-top-square]": this.shape === "square",
122
+ "start-[--bq-avatar--badge-left-circle] inset-bs-[--bq-avatar--badge-top-circle]": this.shape === "circle"
123
+ }
124
+ }, r("slot", {
125
+ key: "2371f7e464ac39860d989ca944c01d4bfab9ba64",
126
+ name: "badge"
127
+ })));
128
+ }
129
+ get el() {
130
+ return b(this);
131
+ }
132
+ static get watchers() {
133
+ return {
134
+ image: [ "handleImagePropChange" ],
135
+ shape: [ "checkPropValues" ],
136
+ size: [ "checkPropValues", "onInitialsChange" ],
137
+ initials: [ "onInitialsChange" ]
138
+ };
139
+ }
140
+ };
141
+
142
+ o.style = s;
143
+
144
+ export { o as bq_avatar };
145
+ //# sourceMappingURL=p-242ac28a.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AVATAR_SIZE","AVATAR_SHAPE","bqAvatarCss","BqAvatarStyle0","BqAvatar","this","onImageError","hasError","trimInitialsBasedOnSize","initials","forEach","size","trimmedInitials","substring","getIndex","sizeIndexMap","xsmall","small","medium","large","_a","handleImagePropChange","checkPropValues","validatePropValue","el","onInitialsChange","componentWillLoad","render","h","Host","key","class","shape","label","role","part","image","alt","altText","undefined","src","onError","name"],"sources":["../../packages/beeq/src/components/avatar/bq-avatar.types.ts","../../packages/beeq/src/components/avatar/scss/bq-avatar.scss?tag=bq-avatar&encapsulation=shadow","../../packages/beeq/src/components/avatar/bq-avatar.tsx"],"sourcesContent":["export const AVATAR_SIZE = ['xsmall', 'small', 'medium', 'large'] as const;\nexport type TAvatarSize = (typeof AVATAR_SIZE)[number];\n\nexport const AVATAR_SHAPE = ['circle', 'square'] as const;\nexport type TAvatarShape = (typeof AVATAR_SHAPE)[number];\n","/* -------------------------------------------------------------------------- */\n/* Avatar styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-avatar.variables';\n\n:host {\n @apply relative inline-block;\n}\n\n.bq-avatar {\n @apply relative overflow-hidden bg-[var(--bq-avatar-background)];\n @apply border-[length:var(--bq-avatar--border-width)] border-[color:var(--bq-avatar--border-color)];\n\n border-style: var(--bq-avatar--border-style);\n}\n\n.size {\n &--xsmall {\n @apply text-[length:var(--bq-avatar--font-size-xsmall)] bs-[--bq-avatar--size-xsmall] is-[--bq-avatar--size-xsmall];\n }\n\n &--small {\n @apply text-[length:var(--bq-avatar--font-size-small)] bs-[--bq-avatar--size-small] is-[--bq-avatar--size-small];\n }\n\n &--medium {\n @apply text-[length:var(--bq-avatar--font-size-medium)] bs-[--bq-avatar--size-medium] is-[--bq-avatar--size-medium];\n }\n\n &--large {\n @apply text-[length:var(--bq-avatar--font-size-large)] bs-[--bq-avatar--size-large] is-[--bq-avatar--size-large];\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { AVATAR_SHAPE, AVATAR_SIZE, TAvatarShape, TAvatarSize } from './bq-avatar.types';\nimport { validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The component's internal wrapper.\n * @part img - The `<image>` tag element that load the image source.\n * @part text - The `<span>` tag element that renderd the `Initials` text string.\n */\n@Component({\n tag: 'bq-avatar',\n styleUrl: './scss/bq-avatar.scss',\n shadow: true,\n})\nexport class BqAvatar {\n // Own Properties\n // ====================\n\n trimmedInitials: string;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqAvatarElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasError: boolean;\n\n // Public Property API\n // ========================\n\n /** Alternate text for the avatar image if the image cannot be displayed */\n @Prop({ reflect: true }) altText: string;\n\n /** The image source to load on the avatar (this can be also a base64 encoded image) */\n @Prop({ reflect: true }) image: string;\n\n /** A text to use for describing the avatar on assistive devices */\n @Prop({ reflect: true }) label: string;\n\n /** The text to display on avatar */\n @Prop({ reflect: true }) initials: string;\n\n /** The shape of the avatar */\n @Prop({ reflect: true }) shape: TAvatarShape = 'circle';\n\n /** The size of the avatar */\n @Prop({ reflect: true, mutable: true }) size: TAvatarSize = 'medium';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('image')\n handleImagePropChange() {\n // Reset the error when a new image source is provided\n this.hasError = false;\n }\n\n @Watch('shape')\n @Watch('size')\n checkPropValues() {\n validatePropValue(AVATAR_SHAPE, 'circle', this.el, 'shape');\n validatePropValue(AVATAR_SIZE, 'medium', this.el, 'size');\n }\n\n @Watch('initials')\n @Watch('size')\n onInitialsChange() {\n this.trimInitialsBasedOnSize();\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.trimInitialsBasedOnSize();\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private onImageError = () => {\n this.hasError = true;\n };\n\n private trimInitialsBasedOnSize = (): void => {\n if (!this.initials) return;\n\n AVATAR_SIZE.forEach((size: TAvatarSize) => {\n if (this.size === size) {\n this.trimmedInitials = this.initials.substring(0, this.getIndex(size));\n }\n });\n };\n\n private getIndex = (size: TAvatarSize): number => {\n const sizeIndexMap = {\n xsmall: 1,\n small: 2,\n medium: 3,\n large: 4,\n };\n return sizeIndexMap[size] ?? sizeIndexMap.xsmall;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host>\n <div\n class={{\n 'bq-avatar': true,\n [`size--${this.size}`]: true,\n 'rounded-[--bq-avatar--border-radius-circle]': this.shape === 'circle',\n 'rounded-[--bq-avatar--border-radius-squareXs]': this.shape === 'square' && this.size === 'xsmall',\n 'rounded-[--bq-avatar--border-radius-squareS]': this.shape === 'square' && this.size === 'small',\n 'rounded-[--bq-avatar--border-radius-squareM]':\n this.shape === 'square' && (this.size === 'medium' || this.size === 'large'),\n }}\n aria-label={this.label}\n role=\"img\"\n part=\"base\"\n >\n {this.initials && (\n <span\n class=\"absolute start-0 inline-flex items-center justify-center font-bold bs-full is-full inset-bs-0\"\n part=\"text\"\n >\n {this.trimmedInitials}\n </span>\n )}\n {this.image && !this.hasError && (\n <img\n class=\"absolute start-0 object-cover bs-full is-full inset-bs-0\"\n alt={this.altText ?? undefined}\n src={this.image}\n onError={this.onImageError}\n part=\"img\"\n />\n )}\n </div>\n <div\n class={{\n 'absolute flex items-center justify-center': true,\n 'start-[--bq-avatar--badge-left-square] inset-bs-[--bq-avatar--badge-top-square]': this.shape === 'square',\n 'start-[--bq-avatar--badge-left-circle] inset-bs-[--bq-avatar--badge-top-circle]': this.shape === 'circle',\n }}\n >\n <slot name=\"badge\"></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":";;;;qHAAO,MAAMA,EAAc,CAAC,SAAU,QAAS,SAAU,SAGlD,MAAMC,EAAe,CAAC,SAAU,UCHvC,MAAMC,EAAc,8ztBACpB,MAAAC,EAAeD,E,MCcFE,EAAQ,M,yBAwFXC,KAAAC,aAAe,KACrBD,KAAKE,SAAW,IAAI,EAGdF,KAAAG,wBAA0B,KAChC,IAAKH,KAAKI,SAAU,OAEpBT,EAAYU,SAASC,IACnB,GAAIN,KAAKM,OAASA,EAAM,CACtBN,KAAKO,gBAAkBP,KAAKI,SAASI,UAAU,EAAGR,KAAKS,SAASH,G,IAElE,EAGIN,KAAAS,SAAYH,I,MAClB,MAAMI,EAAe,CACnBC,OAAQ,EACRC,MAAO,EACPC,OAAQ,EACRC,MAAO,GAET,OAAOC,EAAAL,EAAaJ,MAAK,MAAAS,SAAA,EAAAA,EAAIL,EAAaC,MAAM,E,4HA5EH,S,UAGa,Q,CAM5D,qBAAAK,GAEEhB,KAAKE,SAAW,K,CAKlB,eAAAe,GACEC,EAAkBtB,EAAc,SAAUI,KAAKmB,GAAI,SACnDD,EAAkBvB,EAAa,SAAUK,KAAKmB,GAAI,O,CAKpD,gBAAAC,GACEpB,KAAKG,yB,CAWP,iBAAAkB,GACErB,KAAKG,0BACLH,KAAKiB,iB,CA8CP,MAAAK,G,MACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CACEC,MAAO,CACL,YAAa,KACb,CAAC,SAAS1B,KAAKM,QAAS,KACxB,8CAA+CN,KAAK2B,QAAU,SAC9D,gDAAiD3B,KAAK2B,QAAU,UAAY3B,KAAKM,OAAS,SAC1F,+CAAgDN,KAAK2B,QAAU,UAAY3B,KAAKM,OAAS,QACzF,+CACEN,KAAK2B,QAAU,WAAa3B,KAAKM,OAAS,UAAYN,KAAKM,OAAS,UACvE,aACWN,KAAK4B,MACjBC,KAAK,MACLC,KAAK,QAEJ9B,KAAKI,UACJmB,EAAA,QAAAE,IAAA,2CACEC,MAAM,gGACNI,KAAK,QAEJ9B,KAAKO,iBAGTP,KAAK+B,QAAU/B,KAAKE,UACnBqB,EAAA,OAAAE,IAAA,2CACEC,MAAM,2DACNM,KAAKjB,EAAAf,KAAKiC,WAAO,MAAAlB,SAAA,EAAAA,EAAImB,UACrBC,IAAKnC,KAAK+B,MACVK,QAASpC,KAAKC,aACd6B,KAAK,SAIXP,EAAA,OAAAE,IAAA,2CACEC,MAAO,CACL,4CAA6C,KAC7C,kFAAmF1B,KAAK2B,QAAU,SAClG,kFAAmF3B,KAAK2B,QAAU,WAGpGJ,EAAA,QAAAE,IAAA,2CAAMY,KAAK,W","ignoreList":[]}
1
+ {"version":3,"names":["AVATAR_SIZE","AVATAR_SHAPE","bqAvatarCss","BqAvatarStyle0","BqAvatar","this","onImageError","hasError","trimInitialsBasedOnSize","initials","forEach","size","trimmedInitials","substring","getIndex","sizeIndexMap","xsmall","small","medium","large","_a","handleImagePropChange","checkPropValues","validatePropValue","el","onInitialsChange","componentWillLoad","render","h","Host","key","class","shape","label","role","part","image","alt","altText","undefined","src","onError","name"],"sources":["../../packages/beeq/src/components/avatar/bq-avatar.types.ts","../../packages/beeq/src/components/avatar/scss/bq-avatar.scss?tag=bq-avatar&encapsulation=shadow","../../packages/beeq/src/components/avatar/bq-avatar.tsx"],"sourcesContent":["export const AVATAR_SIZE = ['xsmall', 'small', 'medium', 'large'] as const;\nexport type TAvatarSize = (typeof AVATAR_SIZE)[number];\n\nexport const AVATAR_SHAPE = ['circle', 'square'] as const;\nexport type TAvatarShape = (typeof AVATAR_SHAPE)[number];\n","/* -------------------------------------------------------------------------- */\n/* Avatar styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-avatar.variables';\n\n:host {\n @apply relative inline-block;\n}\n\n.bq-avatar {\n @apply relative overflow-hidden bg-[var(--bq-avatar-background)];\n @apply border-[length:var(--bq-avatar--border-width)] border-[color:var(--bq-avatar--border-color)];\n\n border-style: var(--bq-avatar--border-style);\n}\n\n.size {\n &--xsmall {\n @apply text-[length:var(--bq-avatar--font-size-xsmall)] bs-[--bq-avatar--size-xsmall] is-[--bq-avatar--size-xsmall];\n }\n\n &--small {\n @apply text-[length:var(--bq-avatar--font-size-small)] bs-[--bq-avatar--size-small] is-[--bq-avatar--size-small];\n }\n\n &--medium {\n @apply text-[length:var(--bq-avatar--font-size-medium)] bs-[--bq-avatar--size-medium] is-[--bq-avatar--size-medium];\n }\n\n &--large {\n @apply text-[length:var(--bq-avatar--font-size-large)] bs-[--bq-avatar--size-large] is-[--bq-avatar--size-large];\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { AVATAR_SHAPE, AVATAR_SIZE, TAvatarShape, TAvatarSize } from './bq-avatar.types';\nimport { validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The component's internal wrapper.\n * @part img - The `<image>` tag element that load the image source.\n * @part text - The `<span>` tag element that renderd the `Initials` text string.\n */\n@Component({\n tag: 'bq-avatar',\n styleUrl: './scss/bq-avatar.scss',\n shadow: true,\n})\nexport class BqAvatar {\n // Own Properties\n // ====================\n\n trimmedInitials: string;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqAvatarElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasError: boolean;\n\n // Public Property API\n // ========================\n\n /** Alternate text for the avatar image if the image cannot be displayed */\n @Prop({ reflect: true }) altText: string;\n\n /** The image source to load on the avatar (this can be also a base64 encoded image) */\n @Prop({ reflect: true }) image: string;\n\n /** A text to use for describing the avatar on assistive devices */\n @Prop({ reflect: true }) label: string;\n\n /** The text to display on avatar */\n @Prop({ reflect: true }) initials: string;\n\n /** The shape of the avatar */\n @Prop({ reflect: true }) shape: TAvatarShape = 'circle';\n\n /** The size of the avatar */\n @Prop({ reflect: true, mutable: true }) size: TAvatarSize = 'medium';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('image')\n handleImagePropChange() {\n // Reset the error when a new image source is provided\n this.hasError = false;\n }\n\n @Watch('shape')\n @Watch('size')\n checkPropValues() {\n validatePropValue(AVATAR_SHAPE, 'circle', this.el, 'shape');\n validatePropValue(AVATAR_SIZE, 'medium', this.el, 'size');\n }\n\n @Watch('initials')\n @Watch('size')\n onInitialsChange() {\n this.trimInitialsBasedOnSize();\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.trimInitialsBasedOnSize();\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 // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private onImageError = () => {\n this.hasError = true;\n };\n\n private trimInitialsBasedOnSize = (): void => {\n if (!this.initials) return;\n\n AVATAR_SIZE.forEach((size: TAvatarSize) => {\n if (this.size === size) {\n this.trimmedInitials = this.initials.substring(0, this.getIndex(size));\n }\n });\n };\n\n private getIndex = (size: TAvatarSize): number => {\n const sizeIndexMap = {\n xsmall: 1,\n small: 2,\n medium: 3,\n large: 4,\n };\n return sizeIndexMap[size] ?? sizeIndexMap.xsmall;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host>\n <div\n class={{\n 'bq-avatar': true,\n [`size--${this.size}`]: true,\n 'rounded-[--bq-avatar--border-radius-circle]': this.shape === 'circle',\n 'rounded-[--bq-avatar--border-radius-squareXs]': this.shape === 'square' && this.size === 'xsmall',\n 'rounded-[--bq-avatar--border-radius-squareS]': this.shape === 'square' && this.size === 'small',\n 'rounded-[--bq-avatar--border-radius-squareM]':\n this.shape === 'square' && (this.size === 'medium' || this.size === 'large'),\n }}\n aria-label={this.label}\n role=\"img\"\n part=\"base\"\n >\n {this.initials && (\n <span\n class=\"absolute start-0 inline-flex items-center justify-center font-bold bs-full is-full inset-bs-0\"\n part=\"text\"\n >\n {this.trimmedInitials}\n </span>\n )}\n {this.image && !this.hasError && (\n <img\n class=\"absolute start-0 object-cover bs-full is-full inset-bs-0\"\n alt={this.altText ?? undefined}\n src={this.image}\n onError={this.onImageError}\n part=\"img\"\n />\n )}\n </div>\n <div\n class={{\n 'absolute flex items-center justify-center': true,\n 'start-[--bq-avatar--badge-left-square] inset-bs-[--bq-avatar--badge-top-square]': this.shape === 'square',\n 'start-[--bq-avatar--badge-left-circle] inset-bs-[--bq-avatar--badge-top-circle]': this.shape === 'circle',\n }}\n >\n <slot name=\"badge\"></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAAO,MAAMA,IAAc,EAAC,UAAU,SAAS,UAAU;;AAGlD,MAAMC,IAAe,EAAC,UAAU;;ACHvC,MAAMC,IAAc;;AACpB,MAAAC,IAAeD;;MCcFE,IAAQ;;;;;;;;;;;;;;;QAwFXC,KAAAC,eAAe;MACrBD,KAAKE,WAAW;AAAI;IAGdF,KAAAG,0BAA0B;MAChC,KAAKH,KAAKI,UAAU;MAEpBT,EAAYU,SAASC;QACnB,IAAIN,KAAKM,SAASA,GAAM;UACtBN,KAAKO,kBAAkBP,KAAKI,SAASI,UAAU,GAAGR,KAAKS,SAASH;;;AAElE;IAGIN,KAAAS,WAAYH;;MAClB,MAAMI,IAAe;QACnBC,QAAQ;QACRC,OAAO;QACPC,QAAQ;QACRC,OAAO;;MAET,QAAOC,IAAAL,EAAaJ,QAAK,QAAAS,WAAA,IAAAA,IAAIL,EAAaC;AAAM;;;;;;iBA5EH;gBAGa;;;;EAM5D,qBAAAK;;IAEEhB,KAAKE,WAAW;;EAKlB,eAAAe;IACEC,EAAkBtB,GAAc,UAAUI,KAAKmB,IAAI;IACnDD,EAAkBvB,GAAa,UAAUK,KAAKmB,IAAI;;EAKpD,gBAAAC;IACEpB,KAAKG;;;;;;;;EAWP,iBAAAkB;IACErB,KAAKG;IACLH,KAAKiB;;;;;EA8CP,MAAAK;;IACE,OACEC,EAACC,GAAI;MAAAC,KAAA;OACHF,EAAA;MAAAE,KAAA;MACEC,OAAO;QACL,aAAa;QACb,CAAC,SAAS1B,KAAKM,SAAS;QACxB,+CAA+CN,KAAK2B,UAAU;QAC9D,iDAAiD3B,KAAK2B,UAAU,YAAY3B,KAAKM,SAAS;QAC1F,gDAAgDN,KAAK2B,UAAU,YAAY3B,KAAKM,SAAS;QACzF,gDACEN,KAAK2B,UAAU,aAAa3B,KAAKM,SAAS,YAAYN,KAAKM,SAAS;;MACvE,cACWN,KAAK4B;MACjBC,MAAK;MACLC,MAAK;OAEJ9B,KAAKI,YACJmB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNI,MAAK;OAEJ9B,KAAKO,kBAGTP,KAAK+B,UAAU/B,KAAKE,YACnBqB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAKjB,IAAAf,KAAKiC,aAAO,QAAAlB,WAAA,IAAAA,IAAImB;MACrBC,KAAKnC,KAAK+B;MACVK,SAASpC,KAAKC;MACd6B,MAAK;SAIXP,EAAA;MAAAE,KAAA;MACEC,OAAO;QACL,6CAA6C;QAC7C,mFAAmF1B,KAAK2B,UAAU;QAClG,mFAAmF3B,KAAK2B,UAAU;;OAGpGJ,EAAA;MAAAE,KAAA;MAAMY,MAAK","ignoreList":[]}
@@ -0,0 +1,220 @@
1
+ /*!
2
+ * Built by Endavans
3
+ * © https://beeq.design - Apache 2 License.
4
+ */
5
+ import { r, c as a, h as e, g as b } from "./p-0c42c08a.js";
6
+
7
+ import "./p-bef53750.js";
8
+
9
+ import { d as t } from "./p-951ba558.js";
10
+
11
+ import { i as n } from "./p-57621be1.js";
12
+
13
+ import { b as q } from "./p-d7a88b16.js";
14
+
15
+ import "./p-99829fc7.js";
16
+
17
+ const i = '::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))}.block{display:block}.flex-auto{flex:1 1 auto}.resize-y{resize:vertical}.rounded-\\[--bq-textarea--border-radius\\]{border-radius:var(--bq-textarea--border-radius)}.border-\\[length\\:--bq-textarea--border-width\\]{border-width:var(--bq-textarea--border-width)}.border-\\[color\\:--bq-ring-color-focus\\]{border-color:var(--bq-ring-color-focus)}.border-\\[color\\:--bq-textarea--border-color\\]{border-color:var(--bq-textarea--border-color)}.border-stroke-danger{border-color:var(--bq-stroke--danger)}.border-stroke-success{border-color:var(--bq-stroke--success)}.border-stroke-warning{border-color:var(--bq-stroke--warning)}.bg-\\[--bq-textarea--background-color\\]{background-color:var(--bq-textarea--background-color)}.pe-\\[--bq-textarea--padding-end\\]{padding-inline-end:var(--bq-textarea--padding-end)}.ps-\\[--bq-textarea--padding-start\\]{padding-inline-start:var(--bq-textarea--padding-start)}.text-\\[length\\:--bq-textarea--helper-text-size\\]{font-size:var(--bq-textarea--helper-text-size)}.text-\\[length\\:--bq-textarea--label-text-size\\]{font-size:var(--bq-textarea--label-text-size)}.text-\\[length\\:--bq-textarea--text-size\\]{font-size:var(--bq-textarea--text-size)}.text-\\[color\\:--bq-textarea--helper-text-color\\]{color:var(--bq-textarea--helper-text-color)}.text-\\[color\\:--bq-textarea--label-text-color\\]{color:var(--bq-textarea--label-text-color)}.text-\\[color\\:--bq-textarea--text-color\\]{color:var(--bq-textarea--text-color)}.text-text-danger{color:var(--bq-text--danger)}.text-text-success{color:var(--bq-text--success)}.text-text-warning{color:var(--bq-text--warning)}.opacity-60{opacity:.6}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.border-active-stroke-danger{border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-active) 20%)}.border-active-stroke-success{border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-active) 20%)}.border-active-stroke-warning{border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-active) 20%)}.bs-\\[inherit\\]{block-size:inherit}.is-full{inline-size:100%}.p-b-\\[--bq-textarea--paddingY\\]{padding-block:var(--bq-textarea--paddingY)}.m-be-\\[--bq-textarea--label-margin-bottom\\]{margin-block-end:var(--bq-textarea--label-margin-bottom)}.m-bs-\\[--bq-textarea--helper-margin-top\\]{margin-block-start:var(--bq-textarea--helper-margin-top)}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{--bq-textarea--background-color:var(--bq-ui--primary);--bq-textarea--border-color:var(--bq-stroke--tertiary);--bq-textarea--border-color-focus:var(--bq-stroke--brand);--bq-textarea--border-radius:var(--bq-radius--s);--bq-textarea--border-width:var(--bq-stroke-s);--bq-textarea--border-style:solid;--bq-textarea--helper-margin-top:var(--bq-spacing-xs);--bq-textarea--helper-text-size:var(--bq-font-size--s);--bq-textarea--helper-text-color:var(--bq-text--primary);--bq-textarea--label-margin-bottom:var(--bq-spacing-xs);--bq-textarea--label-text-size:var(--bq-font-size--s);--bq-textarea--label-text-color:var(--bq-text--primary);--bq-textarea--paddingY:var(--bq-spacing-s);--bq-textarea--padding-start:var(--bq-spacing-m);--bq-textarea--padding-end:var(--bq-spacing-m);--bq-textarea--text-color:var(--bq-text--primary);--bq-textarea--text-size:var(--bq-font-size--m);--bq-textarea--text-placeholder-color:var(--bq-text--secondary);display:block;inline-size:100%}.bq-textarea__label{color:var(--bq-textarea--label-text-color);font-size:var(--bq-textarea--label-text-size);margin-block-end:var(--bq-textarea--label-margin-bottom)}.bq-textarea__input{background-color:var(--bq-textarea--background-color);block-size:inherit;border-color:var(--bq-textarea--border-color);border-radius:var(--bq-textarea--border-radius);border-width:var(--bq-textarea--border-width);color:var(--bq-textarea--text-color);flex:1 1 auto;font-size:var(--bq-textarea--text-size);padding-block:var(--bq-textarea--paddingY);padding-inline-end:var(--bq-textarea--padding-end);padding-inline-start:var(--bq-textarea--padding-start);resize:vertical;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-textarea__input::placeholder{color:var(--bq-textarea--text-placeholder-color)}.bq-textarea__input:hover:not([disabled]):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--brand),var(--bq-hover) 20%)}.bq-textarea__input:disabled{cursor:not-allowed;opacity:.6}.bq-textarea__input:not([disabled]):focus-within{--bq-ring-width:1px;--bq-ring-offset-width:0;--bq-ring-color-focus:var(--bq-textarea--border-color-focus);border-color:var(--bq-ring-color-focus);outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-textarea__input.validation-error{border-color:var(--bq-stroke--danger)}.bq-textarea__input.validation-error:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-hover) 20%)}.bq-textarea__input.validation-error:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--danger);border-color:color-mix(in srgb,var(--bq-stroke--danger),var(--bq-active) 20%)}.bq-textarea__input.validation-success{border-color:var(--bq-stroke--success)}.bq-textarea__input.validation-success:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-hover) 20%)}.bq-textarea__input.validation-success:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--success);border-color:color-mix(in srgb,var(--bq-stroke--success),var(--bq-active) 20%)}.bq-textarea__input.validation-warning{border-color:var(--bq-stroke--warning)}.bq-textarea__input.validation-warning:hover:not(.disabled):not(:focus-within){border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-hover) 20%)}.bq-textarea__input.validation-warning:not(.disabled):focus-within{--bq-ring-color-focus:var(--bq-stroke--warning);border-color:color-mix(in srgb,var(--bq-stroke--warning),var(--bq-active) 20%)}.bq-textarea__helper{color:var(--bq-textarea--helper-text-color);font-size:var(--bq-textarea--helper-text-size);margin-block-start:var(--bq-textarea--helper-margin-top)}.bq-textarea__helper.validation-error{color:var(--bq-text--danger)}.bq-textarea__helper.validation-success{color:var(--bq-text--success)}.bq-textarea__helper.validation-warning{color:var(--bq-text--warning)}.bq-textarea__helper[class~=validation-none] .bq-textarea__helper--counter{opacity:.6}.placeholder\\:text-\\[color\\:--bq-textarea--text-placeholder-color\\]::placeholder{color:var(--bq-textarea--text-placeholder-color)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-60:disabled{opacity:.6}.static{position:static}.flex{display:flex}.\\!hidden{display:none!important}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}';
18
+
19
+ const o = i;
20
+
21
+ const s = class {
22
+ constructor(e) {
23
+ r(this, e);
24
+ this.bqBlur = a(this, "bqBlur", 7);
25
+ this.bqChange = a(this, "bqChange", 7);
26
+ this.bqClear = a(this, "bqClear", 7);
27
+ this.bqFocus = a(this, "bqFocus", 7);
28
+ this.bqInput = a(this, "bqInput", 7);
29
+ this.fallbackId = "textarea";
30
+ this.handleBlur = () => {
31
+ if (this.disabled) return;
32
+ this.bqBlur.emit(this.el);
33
+ };
34
+ this.handleFocus = () => {
35
+ if (this.disabled) return;
36
+ this.bqFocus.emit(this.el);
37
+ };
38
+ this.handleChange = r => {
39
+ if (this.disabled) return;
40
+ if (!n(r.target, "textarea")) return;
41
+ this.value = r.target.value;
42
+ this.bqChange.emit({
43
+ value: this.value,
44
+ el: this.el
45
+ });
46
+ };
47
+ this.handleInput = r => {
48
+ var a;
49
+ if (this.disabled) return;
50
+ (a = this.debounceBqInput) === null || a === void 0 ? void 0 : a.cancel();
51
+ if (!n(r.target, "textarea")) return;
52
+ this.value = r.target.value;
53
+ this.debounceBqInput = t((() => {
54
+ this.bqInput.emit({
55
+ value: this.value,
56
+ el: this.el
57
+ });
58
+ }), this.debounceTime);
59
+ this.debounceBqInput();
60
+ this.autoResize();
61
+ };
62
+ this.autoResize = () => {
63
+ if (!this.autoGrow) return;
64
+ const r = this.textarea;
65
+ if (!r) return;
66
+ r.style.height = "auto";
67
+ r.style.height = `${r.scrollHeight}px`;
68
+ };
69
+ this.handleLabelSlotChange = () => {
70
+ this.hasLabel = q(this.labelElem);
71
+ };
72
+ this.handleHelperTextSlotChange = () => {
73
+ this.hasHelperText = q(this.helperTextElem);
74
+ };
75
+ this.hasHelperText = false;
76
+ this.hasLabel = false;
77
+ this.autocapitalize = "off";
78
+ this.autocomplete = "off";
79
+ this.autocorrect = "off";
80
+ this.autofocus = undefined;
81
+ this.autoGrow = false;
82
+ this.debounceTime = 0;
83
+ this.disabled = false;
84
+ this.disableResize = false;
85
+ this.form = undefined;
86
+ this.maxlength = undefined;
87
+ this.name = undefined;
88
+ this.placeholder = undefined;
89
+ this.readonly = false;
90
+ this.required = false;
91
+ this.rows = 5;
92
+ this.spellcheck = false;
93
+ this.validationStatus = "none";
94
+ this.value = undefined;
95
+ this.wrap = "soft";
96
+ }
97
+ // Prop lifecycle events
98
+ // =======================
99
+ handleValueChange() {
100
+ if (!this.textarea) return;
101
+ if (!this.maxlength || this.value.length < this.maxlength) return;
102
+ // If the value is longer than the maxlength, we need to truncate it
103
+ this.value = this.value.substring(0, this.maxlength);
104
+ this.textarea.value = this.value;
105
+ }
106
+ // Component lifecycle events
107
+ // Ordered by their natural call order
108
+ // =====================================
109
+ // Listeners
110
+ // ==============
111
+ componentDidLoad() {
112
+ this.handleValueChange();
113
+ }
114
+ // Public methods API
115
+ // These methods are exposed on the host element.
116
+ // Always use two lines.
117
+ // Public Methods must be async.
118
+ // Requires JSDocs for public API documentation.
119
+ // ===============================================
120
+ // Local methods
121
+ // Internal business logic.
122
+ // These methods cannot be called from the host element.
123
+ // =======================================================
124
+ get numberOfCharacters() {
125
+ if (!this.maxlength || !this.textarea) return 0;
126
+ return this.value.length;
127
+ }
128
+ // render() function
129
+ // Always the last one in the class.
130
+ // ===================================
131
+ render() {
132
+ var r, a;
133
+ return e("div", {
134
+ key: "06b0757fa073ff0bdfdf22e14b80df437f135706",
135
+ class: "bq-textarea flex flex-auto flex-col",
136
+ part: "base"
137
+ }, e("label", {
138
+ key: "b9817a35ac4e7175a1d59f63c328d063ffb88299",
139
+ class: {
140
+ "bq-textarea__label": true,
141
+ "!hidden": !this.hasLabel
142
+ },
143
+ htmlFor: (r = this.name) !== null && r !== void 0 ? r : this.fallbackId,
144
+ ref: r => this.labelElem = r,
145
+ part: "label"
146
+ }, e("slot", {
147
+ key: "52c27fdeb929ae046ce1beb29fc2b4c6566dc243",
148
+ name: "label",
149
+ onSlotchange: this.handleLabelSlotChange
150
+ })), e("textarea", {
151
+ key: "1467a427f5e1c3e015ddaf74ec11043c02ed036b",
152
+ id: (a = this.name) !== null && a !== void 0 ? a : this.fallbackId,
153
+ class: {
154
+ "bq-textarea__input": true,
155
+ "resize-none": this.disableResize,
156
+ [`validation-${this.validationStatus}`]: true
157
+ },
158
+ autocapitalize: this.autocapitalize,
159
+ autocomplete: this.autocomplete,
160
+ autocorrect: this.autocorrect,
161
+ autofocus: this.autofocus,
162
+ disabled: this.disabled,
163
+ form: this.form,
164
+ maxLength: this.maxlength > 0 ? this.maxlength : undefined,
165
+ name: this.name,
166
+ placeholder: this.placeholder,
167
+ readOnly: this.readonly,
168
+ required: this.required,
169
+ rows: this.rows,
170
+ spellcheck: this.spellcheck,
171
+ wrap: this.wrap,
172
+ ref: r => this.textarea = r,
173
+ onBlur: this.handleBlur,
174
+ onChange: this.handleChange,
175
+ onFocus: this.handleFocus,
176
+ onInput: this.handleInput,
177
+ part: "input"
178
+ }, this.value), e("div", {
179
+ key: "087c1bcd722ee2cac449ed04e9600fb117df01e3",
180
+ class: {
181
+ "bq-textarea__helper flex items-center justify-between": true,
182
+ [`validation-${this.validationStatus}`]: true,
183
+ "!hidden": !this.hasHelperText && !this.maxlength
184
+ },
185
+ part: "helper-info"
186
+ }, e("span", {
187
+ key: "dc19136581b13d936f27f0db98a8541a07dee914",
188
+ class: "bq-textarea__helper--text",
189
+ ref: r => this.helperTextElem = r,
190
+ part: "helper-text"
191
+ }, e("slot", {
192
+ key: "858cef9cf17f3d586297cd0d5795dbb4285f9730",
193
+ name: "helper-text",
194
+ onSlotchange: this.handleHelperTextSlotChange
195
+ })), e("span", {
196
+ key: "df68252ed8bf25438fc1e442b749fc3a87ac41b5",
197
+ class: {
198
+ "bq-textarea__helper--counter": true,
199
+ "!hidden": !this.maxlength
200
+ },
201
+ part: "helper-counter"
202
+ }, this.numberOfCharacters, "/", this.maxlength)));
203
+ }
204
+ static get delegatesFocus() {
205
+ return true;
206
+ }
207
+ get el() {
208
+ return b(this);
209
+ }
210
+ static get watchers() {
211
+ return {
212
+ value: [ "handleValueChange" ]
213
+ };
214
+ }
215
+ };
216
+
217
+ s.style = o;
218
+
219
+ export { s as bq_textarea };
220
+ //# sourceMappingURL=p-297fb76b.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["bqTextareaCss","BqTextareaStyle0","BqTextarea","this","fallbackId","handleBlur","disabled","bqBlur","emit","el","handleFocus","bqFocus","handleChange","ev","isHTMLElement","target","value","bqChange","handleInput","_a","debounceBqInput","cancel","debounce","bqInput","debounceTime","autoResize","autoGrow","inputElem","textarea","style","height","scrollHeight","handleLabelSlotChange","hasLabel","hasSlotContent","labelElem","handleHelperTextSlotChange","hasHelperText","helperTextElem","handleValueChange","maxlength","length","substring","componentDidLoad","numberOfCharacters","render","h","key","class","part","htmlFor","name","ref","label","onSlotchange","id","_b","disableResize","validationStatus","autocapitalize","autocomplete","autocorrect","autofocus","form","maxLength","undefined","placeholder","readOnly","readonly","required","rows","spellcheck","wrap","elem","onBlur","onChange","onFocus","onInput","span"],"sources":["../../packages/beeq/src/components/textarea/scss/bq-textarea.scss?tag=bq-textarea&encapsulation=shadow","../../packages/beeq/src/components/textarea/bq-textarea.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Textarea styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-textarea.variables';\n\n:host {\n @apply block is-full;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Label */\n/* -------------------------------------------------------------------------- */\n\n.bq-textarea__label {\n @apply text-[length:--bq-textarea--label-text-size] text-[color:--bq-textarea--label-text-color] m-be-[--bq-textarea--label-margin-bottom];\n}\n\n/* -------------------------------------------------------------------------- */\n/* Native HTML Textarea control */\n/* -------------------------------------------------------------------------- */\n\n.bq-textarea__input {\n @apply flex-auto resize-y bg-[--bq-textarea--background-color] bs-[inherit];\n // Border\n @apply rounded-[--bq-textarea--border-radius] border-[length:--bq-textarea--border-width] border-[color:--bq-textarea--border-color];\n // Padding\n @apply pe-[--bq-textarea--padding-end] ps-[--bq-textarea--padding-start] p-b-[--bq-textarea--paddingY];\n // Text\n @apply text-[length:--bq-textarea--text-size] text-[color:--bq-textarea--text-color] placeholder:text-[color:--bq-textarea--text-placeholder-color];\n // Transition\n @apply transition-colors ease-in-out;\n // Hover\n @apply [&:not([disabled]):not(:focus-within)]:hover:border-hover-stroke-brand;\n // Disabled\n @apply disabled:cursor-not-allowed disabled:opacity-60;\n // Focus\n &:not([disabled]):focus-within {\n --bq-ring-width: 1px;\n --bq-ring-offset-width: 0;\n --bq-ring-color-focus: var(--bq-textarea--border-color-focus);\n\n @apply focus border-[color:--bq-ring-color-focus];\n }\n}\n\n/* ------------------------------- Validations ------------------------------- */\n\n.bq-textarea__input.validation-error {\n @apply border-stroke-danger [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-danger;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.danger);\n\n @apply border-active-stroke-danger;\n }\n}\n\n.bq-textarea__input.validation-success {\n @apply border-stroke-success [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-success;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.success);\n\n @apply border-active-stroke-success;\n }\n}\n\n.bq-textarea__input.validation-warning {\n @apply border-stroke-warning [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-warning;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.warning);\n\n @apply border-active-stroke-warning;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Helper text */\n/* -------------------------------------------------------------------------- */\n\n.bq-textarea__helper {\n @apply text-[length:--bq-textarea--helper-text-size] text-[color:--bq-textarea--helper-text-color] m-bs-[--bq-textarea--helper-margin-top];\n}\n\n/* ------------------------------- Validations ------------------------------ */\n\n.bq-textarea__helper.validation-error {\n @apply text-text-danger;\n}\n\n.bq-textarea__helper.validation-success {\n @apply text-text-success;\n}\n\n.bq-textarea__helper.validation-warning {\n @apply text-text-warning;\n}\n\n/* ----------------------------- Helper counter ----------------------------- */\n\n/** Apply a disabled text color style to the textarea counter when the validation is none. */\n.bq-textarea__helper[class~='validation-none'] {\n .bq-textarea__helper--counter {\n @apply opacity-60;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\n\nimport { TTextareaAutoCapitalize, TTextareaWrap } from './bq-textarea.types';\nimport { debounce, hasSlotContent, isHTMLElement, TDebounce } from '../../shared/utils';\nimport { TInputValidation } from '../input/bq-input.types';\n\n/**\n * @part base - The component's base wrapper.\n * @part input - The textarea element.\n * @part label - The textarea label.\n * @part helper-info - The helper info container.\n * @part helper-text - The helper text.\n * @part helper-counter - The helper counter.\n */\n@Component({\n tag: 'bq-textarea',\n styleUrl: './scss/bq-textarea.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqTextarea {\n // Own Properties\n // ====================\n\n private debounceBqInput: TDebounce<void>;\n private fallbackId = 'textarea';\n\n private helperTextElem?: HTMLElement;\n private labelElem?: HTMLLabelElement;\n private textarea: HTMLTextAreaElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqTextareaElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasHelperText = false;\n @State() private hasLabel = false;\n\n // Public Property API\n // ========================\n\n /**\n * Controls whether or not the textarea field should be capitalized and how.\n * Possible values are 'off', 'none', 'on', 'sentences', 'words', and 'characters'.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autocapitalize\n */\n @Prop({ reflect: true }) autocapitalize: TTextareaAutoCapitalize = 'off';\n\n /**\n * Specifies whether or not the textarea field should have autocomplete enabled.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n */\n @Prop({ reflect: true }) autocomplete: string = 'off';\n\n /**\n * Controls whether or not the textarea field should have autocorrect enabled.\n * Possible values are 'on' and 'off'.\n */\n @Prop({ reflect: true }) autocorrect: 'on' | 'off' = 'off';\n\n /** If true, the textarea will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /**\n * If `true`, the textarea will automatically grow and shrink to fit its contents.\n * If `false`, the textarea will have a fixed height specified by the `rows` property.\n */\n @Prop({ reflect: true }) autoGrow: boolean = false;\n\n /**\n * The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the textarea value changes.\n * A value of 0 means no debouncing will occur.\n */\n @Prop({ reflect: true, mutable: true }) debounceTime? = 0;\n\n /** If `true`, the user cannot interact with the textarea. */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** If `true`, it will block the user's ability to resize the textarea. */\n @Prop({ reflect: true }) disableResize?: boolean = false;\n\n /** The ID of the form that the textarea field belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /**\n * The maximum number of characters that can be entered into the textarea (`0`: no limit).\n * When enabled, a character counter will be shown underneath the textarea.\n */\n @Prop({ reflect: true }) maxlength: number;\n\n /** The name of the textarea element. */\n @Prop({ reflect: true }) name!: string;\n\n /** The placeholder text to show when there is no value. */\n @Prop({ reflect: true }) placeholder!: string;\n\n /** If true, the textarea field cannot be modified. */\n @Prop({ reflect: true }) readonly?: boolean = false;\n\n /** Indicates whether or not the textarea field is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean = false;\n\n /** The number of visible text lines for the control. It must be a positive integer. */\n @Prop({ reflect: true }) rows: number = 5;\n\n /** If true, the textarea content may be checked for spelling errors. */\n @Prop({ reflect: true }) spellcheck: boolean = false;\n /**\n * The validation status of the textarea.\n *\n * @remarks\n * This property is used to indicate the validation status of the textarea. It can be set to one of the following values:\n * - `'none'`: No validation status is set.\n * - `'error'`: The textarea has a validation error.\n * - `'warning'`: The textarea has a validation warning.\n * - `'success'`: The textarea has passed validation.\n */\n @Prop({ reflect: true }) validationStatus: TInputValidation = 'none';\n\n /** The value of the textarea. It can be used to reset the textarea to a previous value. */\n @Prop({ mutable: true }) value: string;\n\n /** Specifies how the text in a text area is to be wrapped when submitted in a form */\n @Prop({ reflect: true }) wrap: TTextareaWrap = 'soft';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n if (!this.textarea) return;\n if (!this.maxlength || this.value.length < this.maxlength) return;\n // If the value is longer than the maxlength, we need to truncate it\n this.value = this.value.substring(0, this.maxlength);\n this.textarea.value = this.value;\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the textarea loses focus */\n @Event() bqBlur!: EventEmitter<HTMLBqTextareaElement>;\n\n /**\n * Callback handler emitted when the textarea value has changed and the textarea loses focus.\n * This handler is called whenever the user finishes typing or pasting text into the textarea field and then clicks outside of the textarea field.\n */\n @Event() bqChange!: EventEmitter<{ value: string; el: HTMLBqTextareaElement }>;\n\n /** Callback handler emitted when the textarea value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqTextareaElement>;\n\n /** Callback handler emitted when the textarea has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqTextareaElement>;\n\n /**\n * Callback handler emitted when the textarea value changes.\n * This handler is called whenever the user types or pastes text into the textarea field.\n */\n @Event() bqInput!: EventEmitter<{ value: string; el: HTMLBqTextareaElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n componentDidLoad() {\n this.handleValueChange();\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 get numberOfCharacters() {\n if (!this.maxlength || !this.textarea) return 0;\n\n return this.value.length;\n }\n\n private handleBlur = () => {\n if (this.disabled) return;\n\n this.bqBlur.emit(this.el);\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleChange = (ev: Event) => {\n if (this.disabled) return;\n\n if (!isHTMLElement(ev.target, 'textarea')) return;\n this.value = ev.target.value;\n\n this.bqChange.emit({ value: this.value, el: this.el });\n };\n\n private handleInput = (ev: Event) => {\n if (this.disabled) return;\n\n this.debounceBqInput?.cancel();\n\n if (!isHTMLElement(ev.target, 'textarea')) return;\n this.value = ev.target.value;\n\n this.debounceBqInput = debounce(() => {\n this.bqInput.emit({ value: this.value, el: this.el });\n }, this.debounceTime);\n this.debounceBqInput();\n\n this.autoResize();\n };\n\n private autoResize = () => {\n if (!this.autoGrow) return;\n\n const inputElem = this.textarea;\n if (!inputElem) return;\n\n inputElem.style.height = 'auto';\n inputElem.style.height = `${inputElem.scrollHeight}px`;\n };\n\n private handleLabelSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n };\n\n private handleHelperTextSlotChange = () => {\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-textarea flex flex-auto flex-col\" part=\"base\">\n <label\n class={{ 'bq-textarea__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name ?? this.fallbackId}\n ref={(label: HTMLLabelElement) => (this.labelElem = label)}\n part=\"label\"\n >\n <slot name=\"label\" onSlotchange={this.handleLabelSlotChange} />\n </label>\n <textarea\n id={this.name ?? this.fallbackId}\n class={{\n 'bq-textarea__input': true,\n 'resize-none': this.disableResize,\n [`validation-${this.validationStatus}`]: true,\n }}\n autocapitalize={this.autocapitalize}\n autocomplete={this.autocomplete}\n autocorrect={this.autocorrect}\n autofocus={this.autofocus}\n disabled={this.disabled}\n form={this.form}\n maxLength={this.maxlength > 0 ? this.maxlength : undefined}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n rows={this.rows}\n spellcheck={this.spellcheck}\n wrap={this.wrap}\n ref={(elem: HTMLTextAreaElement) => (this.textarea = elem)}\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onInput={this.handleInput}\n part=\"input\"\n >\n {this.value}\n </textarea>\n <div\n class={{\n 'bq-textarea__helper flex items-center justify-between': true,\n [`validation-${this.validationStatus}`]: true,\n '!hidden': !this.hasHelperText && !this.maxlength,\n }}\n part=\"helper-info\"\n >\n <span\n class=\"bq-textarea__helper--text\"\n ref={(span: HTMLElement) => (this.helperTextElem = span)}\n part=\"helper-text\"\n >\n <slot name=\"helper-text\" onSlotchange={this.handleHelperTextSlotChange} />\n </span>\n <span class={{ 'bq-textarea__helper--counter': true, '!hidden': !this.maxlength }} part=\"helper-counter\">\n {this.numberOfCharacters}/{this.maxlength}\n </span>\n </div>\n </div>\n );\n }\n}\n"],"mappings":";;;;gNAAA,MAAMA,EAAgB,oh0BACtB,MAAAC,EAAeD,E,MCoBFE,EAAU,M,8LAKbC,KAAAC,WAAa,WA2KbD,KAAAE,WAAa,KACnB,GAAIF,KAAKG,SAAU,OAEnBH,KAAKI,OAAOC,KAAKL,KAAKM,GAAG,EAGnBN,KAAAO,YAAc,KACpB,GAAIP,KAAKG,SAAU,OAEnBH,KAAKQ,QAAQH,KAAKL,KAAKM,GAAG,EAGpBN,KAAAS,aAAgBC,IACtB,GAAIV,KAAKG,SAAU,OAEnB,IAAKQ,EAAcD,EAAGE,OAAQ,YAAa,OAC3CZ,KAAKa,MAAQH,EAAGE,OAAOC,MAEvBb,KAAKc,SAAST,KAAK,CAAEQ,MAAOb,KAAKa,MAAOP,GAAIN,KAAKM,IAAK,EAGhDN,KAAAe,YAAeL,I,MACrB,GAAIV,KAAKG,SAAU,QAEnBa,EAAAhB,KAAKiB,mBAAe,MAAAD,SAAA,SAAAA,EAAEE,SAEtB,IAAKP,EAAcD,EAAGE,OAAQ,YAAa,OAC3CZ,KAAKa,MAAQH,EAAGE,OAAOC,MAEvBb,KAAKiB,gBAAkBE,GAAS,KAC9BnB,KAAKoB,QAAQf,KAAK,CAAEQ,MAAOb,KAAKa,MAAOP,GAAIN,KAAKM,IAAK,GACpDN,KAAKqB,cACRrB,KAAKiB,kBAELjB,KAAKsB,YAAY,EAGXtB,KAAAsB,WAAa,KACnB,IAAKtB,KAAKuB,SAAU,OAEpB,MAAMC,EAAYxB,KAAKyB,SACvB,IAAKD,EAAW,OAEhBA,EAAUE,MAAMC,OAAS,OACzBH,EAAUE,MAAMC,OAAS,GAAGH,EAAUI,gBAAgB,EAGhD5B,KAAA6B,sBAAwB,KAC9B7B,KAAK8B,SAAWC,EAAe/B,KAAKgC,UAAU,EAGxChC,KAAAiC,2BAA6B,KACnCjC,KAAKkC,cAAgBH,EAAe/B,KAAKmC,eAAe,E,mBAhNzB,M,cACL,M,oBAUuC,M,kBAMnB,M,iBAMK,M,uCASR,M,kBAMW,E,cAGX,M,mBAGM,M,0GAkBL,M,cAGA,M,UAGN,E,gBAGO,M,sBAWe,O,+BAMf,M,CAM/C,iBAAAC,GACE,IAAKpC,KAAKyB,SAAU,OACpB,IAAKzB,KAAKqC,WAAarC,KAAKa,MAAMyB,OAAStC,KAAKqC,UAAW,OAE3DrC,KAAKa,MAAQb,KAAKa,MAAM0B,UAAU,EAAGvC,KAAKqC,WAC1CrC,KAAKyB,SAASZ,MAAQb,KAAKa,K,CAmC7B,gBAAA2B,GACExC,KAAKoC,mB,CAeP,sBAAYK,GACV,IAAKzC,KAAKqC,YAAcrC,KAAKyB,SAAU,OAAO,EAE9C,OAAOzB,KAAKa,MAAMyB,M,CA8DpB,MAAAI,G,QACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,sCAAsCC,KAAK,QACpDH,EAAA,SAAAC,IAAA,2CACEC,MAAO,CAAE,qBAAsB,KAAM,WAAY7C,KAAK8B,UACtDiB,SAAS/B,EAAAhB,KAAKgD,QAAI,MAAAhC,SAAA,EAAAA,EAAIhB,KAAKC,WAC3BgD,IAAMC,GAA6BlD,KAAKgC,UAAYkB,EACpDJ,KAAK,SAELH,EAAA,QAAAC,IAAA,2CAAMI,KAAK,QAAQG,aAAcnD,KAAK6B,yBAExCc,EAAA,YAAAC,IAAA,2CACEQ,IAAIC,EAAArD,KAAKgD,QAAI,MAAAK,SAAA,EAAAA,EAAIrD,KAAKC,WACtB4C,MAAO,CACL,qBAAsB,KACtB,cAAe7C,KAAKsD,cACpB,CAAC,cAActD,KAAKuD,oBAAqB,MAE3CC,eAAgBxD,KAAKwD,eACrBC,aAAczD,KAAKyD,aACnBC,YAAa1D,KAAK0D,YAClBC,UAAW3D,KAAK2D,UAChBxD,SAAUH,KAAKG,SACfyD,KAAM5D,KAAK4D,KACXC,UAAW7D,KAAKqC,UAAY,EAAIrC,KAAKqC,UAAYyB,UACjDd,KAAMhD,KAAKgD,KACXe,YAAa/D,KAAK+D,YAClBC,SAAUhE,KAAKiE,SACfC,SAAUlE,KAAKkE,SACfC,KAAMnE,KAAKmE,KACXC,WAAYpE,KAAKoE,WACjBC,KAAMrE,KAAKqE,KACXpB,IAAMqB,GAA+BtE,KAAKyB,SAAW6C,EACrDC,OAAQvE,KAAKE,WACbsE,SAAUxE,KAAKS,aACfgE,QAASzE,KAAKO,YACdmE,QAAS1E,KAAKe,YACd+B,KAAK,SAEJ9C,KAAKa,OAER8B,EAAA,OAAAC,IAAA,2CACEC,MAAO,CACL,wDAAyD,KACzD,CAAC,cAAc7C,KAAKuD,oBAAqB,KACzC,WAAYvD,KAAKkC,gBAAkBlC,KAAKqC,WAE1CS,KAAK,eAELH,EAAA,QAAAC,IAAA,2CACEC,MAAM,4BACNI,IAAM0B,GAAuB3E,KAAKmC,eAAiBwC,EACnD7B,KAAK,eAELH,EAAA,QAAAC,IAAA,2CAAMI,KAAK,cAAcG,aAAcnD,KAAKiC,8BAE9CU,EAAA,QAAAC,IAAA,2CAAMC,MAAO,CAAE,+BAAgC,KAAM,WAAY7C,KAAKqC,WAAaS,KAAK,kBACrF9C,KAAKyC,mBAAkB,IAAGzC,KAAKqC,Y","ignoreList":[]}
1
+ {"version":3,"names":["bqTextareaCss","BqTextareaStyle0","BqTextarea","this","fallbackId","handleBlur","disabled","bqBlur","emit","el","handleFocus","bqFocus","handleChange","ev","isHTMLElement","target","value","bqChange","handleInput","_a","debounceBqInput","cancel","debounce","bqInput","debounceTime","autoResize","autoGrow","inputElem","textarea","style","height","scrollHeight","handleLabelSlotChange","hasLabel","hasSlotContent","labelElem","handleHelperTextSlotChange","hasHelperText","helperTextElem","handleValueChange","maxlength","length","substring","componentDidLoad","numberOfCharacters","render","h","key","class","part","htmlFor","name","ref","label","onSlotchange","id","_b","disableResize","validationStatus","autocapitalize","autocomplete","autocorrect","autofocus","form","maxLength","undefined","placeholder","readOnly","readonly","required","rows","spellcheck","wrap","elem","onBlur","onChange","onFocus","onInput","span"],"sources":["../../packages/beeq/src/components/textarea/scss/bq-textarea.scss?tag=bq-textarea&encapsulation=shadow","../../packages/beeq/src/components/textarea/bq-textarea.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Textarea styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-textarea.variables';\n\n:host {\n @apply block is-full;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Label */\n/* -------------------------------------------------------------------------- */\n\n.bq-textarea__label {\n @apply text-[length:--bq-textarea--label-text-size] text-[color:--bq-textarea--label-text-color] m-be-[--bq-textarea--label-margin-bottom];\n}\n\n/* -------------------------------------------------------------------------- */\n/* Native HTML Textarea control */\n/* -------------------------------------------------------------------------- */\n\n.bq-textarea__input {\n @apply flex-auto resize-y bg-[--bq-textarea--background-color] bs-[inherit];\n // Border\n @apply rounded-[--bq-textarea--border-radius] border-[length:--bq-textarea--border-width] border-[color:--bq-textarea--border-color];\n // Padding\n @apply pe-[--bq-textarea--padding-end] ps-[--bq-textarea--padding-start] p-b-[--bq-textarea--paddingY];\n // Text\n @apply text-[length:--bq-textarea--text-size] text-[color:--bq-textarea--text-color] placeholder:text-[color:--bq-textarea--text-placeholder-color];\n // Transition\n @apply transition-colors ease-in-out;\n // Hover\n @apply [&:not([disabled]):not(:focus-within)]:hover:border-hover-stroke-brand;\n // Disabled\n @apply disabled:cursor-not-allowed disabled:opacity-60;\n // Focus\n &:not([disabled]):focus-within {\n --bq-ring-width: 1px;\n --bq-ring-offset-width: 0;\n --bq-ring-color-focus: var(--bq-textarea--border-color-focus);\n\n @apply focus border-[color:--bq-ring-color-focus];\n }\n}\n\n/* ------------------------------- Validations ------------------------------- */\n\n.bq-textarea__input.validation-error {\n @apply border-stroke-danger [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-danger;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.danger);\n\n @apply border-active-stroke-danger;\n }\n}\n\n.bq-textarea__input.validation-success {\n @apply border-stroke-success [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-success;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.success);\n\n @apply border-active-stroke-success;\n }\n}\n\n.bq-textarea__input.validation-warning {\n @apply border-stroke-warning [&:not(.disabled):not(:focus-within)]:hover:border-hover-stroke-warning;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(colors.stroke.warning);\n\n @apply border-active-stroke-warning;\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Helper text */\n/* -------------------------------------------------------------------------- */\n\n.bq-textarea__helper {\n @apply text-[length:--bq-textarea--helper-text-size] text-[color:--bq-textarea--helper-text-color] m-bs-[--bq-textarea--helper-margin-top];\n}\n\n/* ------------------------------- Validations ------------------------------ */\n\n.bq-textarea__helper.validation-error {\n @apply text-text-danger;\n}\n\n.bq-textarea__helper.validation-success {\n @apply text-text-success;\n}\n\n.bq-textarea__helper.validation-warning {\n @apply text-text-warning;\n}\n\n/* ----------------------------- Helper counter ----------------------------- */\n\n/** Apply a disabled text color style to the textarea counter when the validation is none. */\n.bq-textarea__helper[class~='validation-none'] {\n .bq-textarea__helper--counter {\n @apply opacity-60;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\n\nimport { TTextareaAutoCapitalize, TTextareaWrap } from './bq-textarea.types';\nimport { debounce, hasSlotContent, isHTMLElement, TDebounce } from '../../shared/utils';\nimport { TInputValidation } from '../input/bq-input.types';\n\n/**\n * @part base - The component's base wrapper.\n * @part input - The textarea element.\n * @part label - The textarea label.\n * @part helper-info - The helper info container.\n * @part helper-text - The helper text.\n * @part helper-counter - The helper counter.\n */\n@Component({\n tag: 'bq-textarea',\n styleUrl: './scss/bq-textarea.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqTextarea {\n // Own Properties\n // ====================\n\n private debounceBqInput: TDebounce<void>;\n private fallbackId = 'textarea';\n\n private helperTextElem?: HTMLElement;\n private labelElem?: HTMLLabelElement;\n private textarea: HTMLTextAreaElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqTextareaElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasHelperText = false;\n @State() private hasLabel = false;\n\n // Public Property API\n // ========================\n\n /**\n * Controls whether or not the textarea field should be capitalized and how.\n * Possible values are 'off', 'none', 'on', 'sentences', 'words', and 'characters'.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autocapitalize\n */\n @Prop({ reflect: true }) autocapitalize: TTextareaAutoCapitalize = 'off';\n\n /**\n * Specifies whether or not the textarea field should have autocomplete enabled.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n */\n @Prop({ reflect: true }) autocomplete: string = 'off';\n\n /**\n * Controls whether or not the textarea field should have autocorrect enabled.\n * Possible values are 'on' and 'off'.\n */\n @Prop({ reflect: true }) autocorrect: 'on' | 'off' = 'off';\n\n /** If true, the textarea will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /**\n * If `true`, the textarea will automatically grow and shrink to fit its contents.\n * If `false`, the textarea will have a fixed height specified by the `rows` property.\n */\n @Prop({ reflect: true }) autoGrow: boolean = false;\n\n /**\n * The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the textarea value changes.\n * A value of 0 means no debouncing will occur.\n */\n @Prop({ reflect: true, mutable: true }) debounceTime? = 0;\n\n /** If `true`, the user cannot interact with the textarea. */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** If `true`, it will block the user's ability to resize the textarea. */\n @Prop({ reflect: true }) disableResize?: boolean = false;\n\n /** The ID of the form that the textarea field belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /**\n * The maximum number of characters that can be entered into the textarea (`0`: no limit).\n * When enabled, a character counter will be shown underneath the textarea.\n */\n @Prop({ reflect: true }) maxlength: number;\n\n /** The name of the textarea element. */\n @Prop({ reflect: true }) name!: string;\n\n /** The placeholder text to show when there is no value. */\n @Prop({ reflect: true }) placeholder!: string;\n\n /** If true, the textarea field cannot be modified. */\n @Prop({ reflect: true }) readonly?: boolean = false;\n\n /** Indicates whether or not the textarea field is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean = false;\n\n /** The number of visible text lines for the control. It must be a positive integer. */\n @Prop({ reflect: true }) rows: number = 5;\n\n /** If true, the textarea content may be checked for spelling errors. */\n @Prop({ reflect: true }) spellcheck: boolean = false;\n /**\n * The validation status of the textarea.\n *\n * @remarks\n * This property is used to indicate the validation status of the textarea. It can be set to one of the following values:\n * - `'none'`: No validation status is set.\n * - `'error'`: The textarea has a validation error.\n * - `'warning'`: The textarea has a validation warning.\n * - `'success'`: The textarea has passed validation.\n */\n @Prop({ reflect: true }) validationStatus: TInputValidation = 'none';\n\n /** The value of the textarea. It can be used to reset the textarea to a previous value. */\n @Prop({ mutable: true }) value: string;\n\n /** Specifies how the text in a text area is to be wrapped when submitted in a form */\n @Prop({ reflect: true }) wrap: TTextareaWrap = 'soft';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n if (!this.textarea) return;\n if (!this.maxlength || this.value.length < this.maxlength) return;\n // If the value is longer than the maxlength, we need to truncate it\n this.value = this.value.substring(0, this.maxlength);\n this.textarea.value = this.value;\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the textarea loses focus */\n @Event() bqBlur!: EventEmitter<HTMLBqTextareaElement>;\n\n /**\n * Callback handler emitted when the textarea value has changed and the textarea loses focus.\n * This handler is called whenever the user finishes typing or pasting text into the textarea field and then clicks outside of the textarea field.\n */\n @Event() bqChange!: EventEmitter<{ value: string; el: HTMLBqTextareaElement }>;\n\n /** Callback handler emitted when the textarea value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqTextareaElement>;\n\n /** Callback handler emitted when the textarea has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqTextareaElement>;\n\n /**\n * Callback handler emitted when the textarea value changes.\n * This handler is called whenever the user types or pastes text into the textarea field.\n */\n @Event() bqInput!: EventEmitter<{ value: string; el: HTMLBqTextareaElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n componentDidLoad() {\n this.handleValueChange();\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 get numberOfCharacters() {\n if (!this.maxlength || !this.textarea) return 0;\n\n return this.value.length;\n }\n\n private handleBlur = () => {\n if (this.disabled) return;\n\n this.bqBlur.emit(this.el);\n };\n\n private handleFocus = () => {\n if (this.disabled) return;\n\n this.bqFocus.emit(this.el);\n };\n\n private handleChange = (ev: Event) => {\n if (this.disabled) return;\n\n if (!isHTMLElement(ev.target, 'textarea')) return;\n this.value = ev.target.value;\n\n this.bqChange.emit({ value: this.value, el: this.el });\n };\n\n private handleInput = (ev: Event) => {\n if (this.disabled) return;\n\n this.debounceBqInput?.cancel();\n\n if (!isHTMLElement(ev.target, 'textarea')) return;\n this.value = ev.target.value;\n\n this.debounceBqInput = debounce(() => {\n this.bqInput.emit({ value: this.value, el: this.el });\n }, this.debounceTime);\n this.debounceBqInput();\n\n this.autoResize();\n };\n\n private autoResize = () => {\n if (!this.autoGrow) return;\n\n const inputElem = this.textarea;\n if (!inputElem) return;\n\n inputElem.style.height = 'auto';\n inputElem.style.height = `${inputElem.scrollHeight}px`;\n };\n\n private handleLabelSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n };\n\n private handleHelperTextSlotChange = () => {\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-textarea flex flex-auto flex-col\" part=\"base\">\n <label\n class={{ 'bq-textarea__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name ?? this.fallbackId}\n ref={(label: HTMLLabelElement) => (this.labelElem = label)}\n part=\"label\"\n >\n <slot name=\"label\" onSlotchange={this.handleLabelSlotChange} />\n </label>\n <textarea\n id={this.name ?? this.fallbackId}\n class={{\n 'bq-textarea__input': true,\n 'resize-none': this.disableResize,\n [`validation-${this.validationStatus}`]: true,\n }}\n autocapitalize={this.autocapitalize}\n autocomplete={this.autocomplete}\n autocorrect={this.autocorrect}\n autofocus={this.autofocus}\n disabled={this.disabled}\n form={this.form}\n maxLength={this.maxlength > 0 ? this.maxlength : undefined}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n rows={this.rows}\n spellcheck={this.spellcheck}\n wrap={this.wrap}\n ref={(elem: HTMLTextAreaElement) => (this.textarea = elem)}\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onInput={this.handleInput}\n part=\"input\"\n >\n {this.value}\n </textarea>\n <div\n class={{\n 'bq-textarea__helper flex items-center justify-between': true,\n [`validation-${this.validationStatus}`]: true,\n '!hidden': !this.hasHelperText && !this.maxlength,\n }}\n part=\"helper-info\"\n >\n <span\n class=\"bq-textarea__helper--text\"\n ref={(span: HTMLElement) => (this.helperTextElem = span)}\n part=\"helper-text\"\n >\n <slot name=\"helper-text\" onSlotchange={this.handleHelperTextSlotChange} />\n </span>\n <span class={{ 'bq-textarea__helper--counter': true, '!hidden': !this.maxlength }} part=\"helper-counter\">\n {this.numberOfCharacters}/{this.maxlength}\n </span>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}