@beeq/core 1.12.4-beta.2 → 1.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/dist/beeq/beeq.esm.js +1 -1
  2. package/dist/beeq/beeq.esm.js.map +1 -1
  3. package/dist/beeq/index.esm.js +1 -1
  4. package/dist/beeq/{p-050c757b.entry.js → p-0a3c5b97.entry.js} +2 -2
  5. package/dist/beeq/{p-050c757b.entry.js.map → p-0a3c5b97.entry.js.map} +1 -1
  6. package/dist/beeq/{p-d0ccd4ae.entry.js → p-0cfa8d0b.entry.js} +2 -2
  7. package/dist/beeq/{p-a71efa95.entry.js → p-1764899f.entry.js} +2 -2
  8. package/dist/beeq/p-1764899f.entry.js.map +1 -0
  9. package/dist/beeq/{p-f47905ae.entry.js → p-21db2c4e.entry.js} +2 -2
  10. package/dist/beeq/{p-e9535627.entry.js → p-25772ebd.entry.js} +2 -2
  11. package/dist/beeq/{p-3bee1dda.entry.js → p-2a7c5b1e.entry.js} +2 -2
  12. package/dist/beeq/{p-c67109c1.entry.js → p-327cb74b.entry.js} +2 -2
  13. package/dist/beeq/{p-4d863871.entry.js → p-365f0372.entry.js} +2 -2
  14. package/dist/beeq/p-365f0372.entry.js.map +1 -0
  15. package/dist/beeq/{p-1a7d1d85.entry.js → p-49a999b4.entry.js} +2 -2
  16. package/dist/beeq/{p-94468a51.entry.js → p-53ea5999.entry.js} +2 -2
  17. package/dist/beeq/p-53ea5999.entry.js.map +1 -0
  18. package/dist/beeq/{p-1fb43de2.entry.js → p-5645238d.entry.js} +2 -2
  19. package/dist/beeq/{p-f0819693.entry.js → p-56810dba.entry.js} +2 -2
  20. package/dist/beeq/{p-7c4e8101.entry.js → p-644013aa.entry.js} +2 -2
  21. package/dist/beeq/{p-45a56399.entry.js → p-69cf0536.entry.js} +2 -2
  22. package/dist/beeq/{p-45a56399.entry.js.map → p-69cf0536.entry.js.map} +1 -1
  23. package/dist/beeq/{p-8dfd0329.entry.js → p-6b0f896f.entry.js} +2 -2
  24. package/dist/beeq/{p-b0a15420.entry.js → p-7972ba08.entry.js} +2 -2
  25. package/dist/beeq/{p-1ad4561f.entry.js → p-79aab4dd.entry.js} +2 -2
  26. package/dist/beeq/{p-8035caf4.entry.js → p-79fd999a.entry.js} +2 -2
  27. package/dist/beeq/p-84e96891.entry.js +6 -0
  28. package/dist/beeq/{p-e794846c.entry.js.map → p-84e96891.entry.js.map} +1 -1
  29. package/dist/beeq/{p-c33f1043.entry.js → p-8974f66f.entry.js} +2 -2
  30. package/dist/beeq/{p-9843a419.entry.js → p-8d9bef7a.entry.js} +2 -2
  31. package/dist/beeq/{p-CO2T68hs.js → p-BSSRzVAz.js} +2 -2
  32. package/dist/beeq/p-BSSRzVAz.js.map +1 -0
  33. package/dist/beeq/p-DbxZ8FhA.js +6 -0
  34. package/dist/beeq/p-DbxZ8FhA.js.map +1 -0
  35. package/dist/beeq/p-DdvbF5yL.js.map +1 -1
  36. package/dist/beeq/{p-40163197.entry.js → p-b26ee039.entry.js} +2 -2
  37. package/dist/beeq/{p-e366fc1b.entry.js → p-b31d249b.entry.js} +2 -2
  38. package/dist/beeq/{p-1a4af63c.entry.js → p-b4b02b99.entry.js} +2 -2
  39. package/dist/beeq/{p-3c77308c.entry.js → p-b6f5430a.entry.js} +2 -2
  40. package/dist/beeq/{p-07172ac5.entry.js → p-b7c6fdbd.entry.js} +2 -2
  41. package/dist/beeq/p-b7c6fdbd.entry.js.map +1 -0
  42. package/dist/beeq/p-b8bac7c7.entry.js +6 -0
  43. package/dist/beeq/p-b8bac7c7.entry.js.map +1 -0
  44. package/dist/beeq/{p-97d8f052.entry.js → p-bb99b400.entry.js} +2 -2
  45. package/dist/beeq/{p-2c823175.entry.js → p-cf2e4d57.entry.js} +2 -2
  46. package/dist/beeq/{p-804c22d6.entry.js → p-d4df64ae.entry.js} +2 -2
  47. package/dist/beeq/{p-71001d9a.entry.js → p-d7c20c6f.entry.js} +2 -2
  48. package/dist/beeq/{p-71001d9a.entry.js.map → p-d7c20c6f.entry.js.map} +1 -1
  49. package/dist/beeq/{p-dc1f9be2.entry.js → p-e91ee0da.entry.js} +2 -2
  50. package/dist/beeq/{p-dc1f9be2.entry.js.map → p-e91ee0da.entry.js.map} +1 -1
  51. package/dist/beeq/{p-ea473f56.entry.js → p-ef783b95.entry.js} +2 -2
  52. package/dist/beeq/{p-e1319c86.entry.js → p-f07f4d99.entry.js} +2 -2
  53. package/dist/beeq/{p-5240a62a.entry.js → p-f0a2c87e.entry.js} +2 -2
  54. package/dist/beeq/{p-1f16f97f.entry.js → p-f3184477.entry.js} +2 -2
  55. package/dist/beeq/{p-000d575f.entry.js → p-f4c66e83.entry.js} +2 -2
  56. package/dist/beeq/{p-ad419446.entry.js → p-fb763ec5.entry.js} +2 -2
  57. package/dist/beeq/{p-7e70e39b.entry.js → p-fe22de00.entry.js} +2 -2
  58. package/dist/beeq/p-kY6d9Evy.js +6 -0
  59. package/dist/beeq/p-kY6d9Evy.js.map +1 -0
  60. package/dist/beeq.html-custom-data.json +70 -65
  61. package/dist/cjs/beeq.cjs.js +3 -3
  62. package/dist/cjs/beeq.cjs.js.map +1 -1
  63. package/dist/cjs/bq-accordion-group.cjs.entry.js +1 -1
  64. package/dist/cjs/bq-accordion.cjs.entry.js +2 -2
  65. package/dist/cjs/bq-alert.cjs.entry.js +2 -2
  66. package/dist/cjs/bq-avatar.cjs.entry.js +2 -2
  67. package/dist/cjs/bq-badge.cjs.entry.js +3 -3
  68. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +2 -2
  69. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  70. package/dist/cjs/bq-breadcrumb.cjs.entry.js +1 -1
  71. package/dist/cjs/bq-button_2.cjs.entry.js +5 -5
  72. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  73. package/dist/cjs/bq-card.cjs.entry.js +2 -2
  74. package/dist/cjs/bq-checkbox.cjs.entry.js +35 -22
  75. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  76. package/dist/cjs/bq-date-picker.cjs.entry.js +3 -3
  77. package/dist/cjs/bq-dialog.cjs.entry.js +2 -2
  78. package/dist/cjs/bq-divider.cjs.entry.js +3 -3
  79. package/dist/cjs/bq-drawer.cjs.entry.js +2 -2
  80. package/dist/cjs/bq-dropdown_2.cjs.entry.js +1 -1
  81. package/dist/cjs/bq-empty-state.cjs.entry.js +2 -2
  82. package/dist/cjs/bq-input.cjs.entry.js +16 -9
  83. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  84. package/dist/cjs/bq-notification.cjs.entry.js +6 -6
  85. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  86. package/dist/cjs/bq-option-group.cjs.entry.js +1 -1
  87. package/dist/cjs/bq-option-list_2.cjs.entry.js +3 -3
  88. package/dist/cjs/bq-option.cjs.entry.js +1 -1
  89. package/dist/cjs/bq-page-title.cjs.entry.js +1 -1
  90. package/dist/cjs/bq-progress.cjs.entry.js +2 -2
  91. package/dist/cjs/bq-radio-group.cjs.entry.js +8 -12
  92. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  93. package/dist/cjs/bq-radio.cjs.entry.js +1 -1
  94. package/dist/cjs/bq-select.cjs.entry.js +39 -10
  95. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  96. package/dist/cjs/bq-side-menu-item.cjs.entry.js +1 -1
  97. package/dist/cjs/bq-side-menu.cjs.entry.js +1 -1
  98. package/dist/cjs/bq-slider.cjs.entry.js +1 -1
  99. package/dist/cjs/bq-spinner.cjs.entry.js +3 -3
  100. package/dist/cjs/bq-status.cjs.entry.js +2 -2
  101. package/dist/cjs/bq-step-item.cjs.entry.js +3 -3
  102. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  103. package/dist/cjs/bq-steps.cjs.entry.js +2 -2
  104. package/dist/cjs/bq-switch.cjs.entry.js +1 -1
  105. package/dist/cjs/bq-tab-group.cjs.entry.js +2 -2
  106. package/dist/cjs/bq-tab.cjs.entry.js +2 -2
  107. package/dist/cjs/bq-textarea.cjs.entry.js +16 -14
  108. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  109. package/dist/cjs/bq-toast.cjs.entry.js +4 -6
  110. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  111. package/dist/cjs/bq-tooltip.cjs.entry.js +1 -1
  112. package/dist/cjs/{cssVariables-exM7Oz37.js → cssVariables-DuVz7KcV.js} +3 -3
  113. package/dist/cjs/cssVariables-DuVz7KcV.js.map +1 -0
  114. package/dist/cjs/{index-BSrsKFVG.js → index-J9jJ-fFQ.js} +47 -12
  115. package/dist/cjs/index-J9jJ-fFQ.js.map +1 -0
  116. package/dist/cjs/index.cjs.js +2 -2
  117. package/dist/cjs/loader.cjs.js +2 -2
  118. package/dist/cjs/{props-DzFXZXSF.js → props-BXpv3G-e.js} +6 -5
  119. package/dist/cjs/props-BXpv3G-e.js.map +1 -0
  120. package/dist/cjs/transition-C0S-pYqN.js.map +1 -1
  121. package/dist/collection/collection-manifest.json +1 -1
  122. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js +1 -1
  123. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js.map +1 -1
  124. package/dist/collection/components/button/scss/bq-button.css +1 -1
  125. package/dist/collection/components/checkbox/bq-checkbox.js +33 -20
  126. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  127. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  128. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  129. package/dist/collection/components/icon/helper/request.js +1 -1
  130. package/dist/collection/components/icon/helper/request.js.map +1 -1
  131. package/dist/collection/components/input/bq-input.js +15 -8
  132. package/dist/collection/components/input/bq-input.js.map +1 -1
  133. package/dist/collection/components/notification/bq-notification.js +4 -4
  134. package/dist/collection/components/notification/bq-notification.js.map +1 -1
  135. package/dist/collection/components/radio-group/bq-radio-group.js +6 -10
  136. package/dist/collection/components/radio-group/bq-radio-group.js.map +1 -1
  137. package/dist/collection/components/select/bq-select.js +59 -10
  138. package/dist/collection/components/select/bq-select.js.map +1 -1
  139. package/dist/collection/components/select/scss/bq-select.css +1 -1
  140. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  141. package/dist/collection/components/textarea/bq-textarea.js +15 -13
  142. package/dist/collection/components/textarea/bq-textarea.js.map +1 -1
  143. package/dist/collection/components/toast/bq-toast.js +2 -4
  144. package/dist/collection/components/toast/bq-toast.js.map +1 -1
  145. package/dist/collection/shared/test-utils/computedStyle.js +24 -24
  146. package/dist/collection/shared/test-utils/computedStyle.js.map +1 -1
  147. package/dist/collection/shared/test-utils/sleep.js +5 -1
  148. package/dist/collection/shared/test-utils/sleep.js.map +1 -1
  149. package/dist/collection/shared/utils/cssVariables.js +1 -1
  150. package/dist/collection/shared/utils/cssVariables.js.map +1 -1
  151. package/dist/collection/shared/utils/props.js +4 -3
  152. package/dist/collection/shared/utils/props.js.map +1 -1
  153. package/dist/collection/shared/utils/transition.js.map +1 -1
  154. package/dist/components/bq-accordion-group.js +1 -1
  155. package/dist/components/bq-accordion.js +1 -1
  156. package/dist/components/bq-alert.js +1 -1
  157. package/dist/components/bq-avatar.js +1 -1
  158. package/dist/components/bq-badge.js +1 -1
  159. package/dist/components/bq-breadcrumb-item.js +1 -1
  160. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  161. package/dist/components/bq-breadcrumb.js +1 -1
  162. package/dist/components/bq-button.js +1 -1
  163. package/dist/components/bq-card.js +1 -1
  164. package/dist/components/bq-checkbox.js +1 -1
  165. package/dist/components/bq-checkbox.js.map +1 -1
  166. package/dist/components/bq-date-picker.js +1 -1
  167. package/dist/components/bq-dialog.js +1 -1
  168. package/dist/components/bq-divider.js +1 -1
  169. package/dist/components/bq-drawer.js +1 -1
  170. package/dist/components/bq-dropdown.js +1 -1
  171. package/dist/components/bq-empty-state.js +1 -1
  172. package/dist/components/bq-icon.js +1 -1
  173. package/dist/components/bq-input.js +1 -1
  174. package/dist/components/bq-input.js.map +1 -1
  175. package/dist/components/bq-notification.js +1 -1
  176. package/dist/components/bq-notification.js.map +1 -1
  177. package/dist/components/bq-option-group.js +1 -1
  178. package/dist/components/bq-option-list.js +1 -1
  179. package/dist/components/bq-option.js +1 -1
  180. package/dist/components/bq-page-title.js +1 -1
  181. package/dist/components/bq-panel.js +1 -1
  182. package/dist/components/bq-progress.js +1 -1
  183. package/dist/components/bq-radio-group.js +1 -1
  184. package/dist/components/bq-radio-group.js.map +1 -1
  185. package/dist/components/bq-radio.js +1 -1
  186. package/dist/components/bq-select.js +1 -1
  187. package/dist/components/bq-select.js.map +1 -1
  188. package/dist/components/bq-side-menu-item.js +1 -1
  189. package/dist/components/bq-side-menu.js +1 -1
  190. package/dist/components/bq-slider.js +1 -1
  191. package/dist/components/bq-spinner.js +1 -1
  192. package/dist/components/bq-status.js +1 -1
  193. package/dist/components/bq-step-item.js +1 -1
  194. package/dist/components/bq-step-item.js.map +1 -1
  195. package/dist/components/bq-steps.js +1 -1
  196. package/dist/components/bq-switch.js +1 -1
  197. package/dist/components/bq-tab-group.js +1 -1
  198. package/dist/components/bq-tab.js +1 -1
  199. package/dist/components/bq-tag.js +1 -1
  200. package/dist/components/bq-textarea.js +1 -1
  201. package/dist/components/bq-textarea.js.map +1 -1
  202. package/dist/components/bq-toast.js +1 -1
  203. package/dist/components/bq-toast.js.map +1 -1
  204. package/dist/components/bq-tooltip.js +1 -1
  205. package/dist/components/index.js +1 -1
  206. package/dist/{beeq/p-e794846c.entry.js → components/p-2bpX-u8x.js} +2 -2
  207. package/dist/components/p-2bpX-u8x.js.map +1 -0
  208. package/dist/components/{p-YjPwN7vu.js → p-2eUC8A3N.js} +2 -2
  209. package/dist/components/p-2eUC8A3N.js.map +1 -0
  210. package/dist/components/{p-BY4GkNoQ.js → p-BMHXMsVR.js} +2 -2
  211. package/dist/components/{p-DRfB-NVC.js → p-BOuMP_Rm.js} +2 -2
  212. package/dist/components/{p-D3RCJ1ti.js → p-CK3SnGa2.js} +2 -2
  213. package/dist/components/{p-fdkSHq2G.js → p-CNITfoR_.js} +2 -2
  214. package/dist/components/p-CNITfoR_.js.map +1 -0
  215. package/dist/components/{p-P-In5Xk5.js → p-CfP6le1E.js} +2 -2
  216. package/dist/components/p-DbxZ8FhA.js +6 -0
  217. package/dist/components/p-DbxZ8FhA.js.map +1 -0
  218. package/dist/components/p-DdvbF5yL.js.map +1 -1
  219. package/dist/components/{p-L_rr8STP.js → p-MSqM1CAF.js} +2 -2
  220. package/dist/components/{p-Al4yCjHm.js → p-jrBUnEFW.js} +2 -2
  221. package/dist/components/p-kY6d9Evy.js +6 -0
  222. package/dist/components/p-kY6d9Evy.js.map +1 -0
  223. package/dist/components/{p-C2aEwRoD.js → p-wi7vUIoV.js} +2 -2
  224. package/dist/custom-elements.json +966 -667
  225. package/dist/esm/beeq.js +4 -4
  226. package/dist/esm/beeq.js.map +1 -1
  227. package/dist/esm/bq-accordion-group.entry.js +1 -1
  228. package/dist/esm/bq-accordion.entry.js +2 -2
  229. package/dist/esm/bq-alert.entry.js +2 -2
  230. package/dist/esm/bq-avatar.entry.js +2 -2
  231. package/dist/esm/bq-badge.entry.js +3 -3
  232. package/dist/esm/bq-breadcrumb-item.entry.js +2 -2
  233. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  234. package/dist/esm/bq-breadcrumb.entry.js +1 -1
  235. package/dist/esm/bq-button_2.entry.js +5 -5
  236. package/dist/esm/bq-button_2.entry.js.map +1 -1
  237. package/dist/esm/bq-card.entry.js +2 -2
  238. package/dist/esm/bq-checkbox.entry.js +35 -22
  239. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  240. package/dist/esm/bq-date-picker.entry.js +3 -3
  241. package/dist/esm/bq-dialog.entry.js +2 -2
  242. package/dist/esm/bq-divider.entry.js +3 -3
  243. package/dist/esm/bq-drawer.entry.js +2 -2
  244. package/dist/esm/bq-dropdown_2.entry.js +1 -1
  245. package/dist/esm/bq-empty-state.entry.js +2 -2
  246. package/dist/esm/bq-input.entry.js +16 -9
  247. package/dist/esm/bq-input.entry.js.map +1 -1
  248. package/dist/esm/bq-notification.entry.js +6 -6
  249. package/dist/esm/bq-notification.entry.js.map +1 -1
  250. package/dist/esm/bq-option-group.entry.js +1 -1
  251. package/dist/esm/bq-option-list_2.entry.js +3 -3
  252. package/dist/esm/bq-option.entry.js +1 -1
  253. package/dist/esm/bq-page-title.entry.js +1 -1
  254. package/dist/esm/bq-progress.entry.js +2 -2
  255. package/dist/esm/bq-radio-group.entry.js +8 -12
  256. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  257. package/dist/esm/bq-radio.entry.js +1 -1
  258. package/dist/esm/bq-select.entry.js +39 -10
  259. package/dist/esm/bq-select.entry.js.map +1 -1
  260. package/dist/esm/bq-side-menu-item.entry.js +1 -1
  261. package/dist/esm/bq-side-menu.entry.js +1 -1
  262. package/dist/esm/bq-slider.entry.js +1 -1
  263. package/dist/esm/bq-spinner.entry.js +3 -3
  264. package/dist/esm/bq-status.entry.js +2 -2
  265. package/dist/esm/bq-step-item.entry.js +3 -3
  266. package/dist/esm/bq-step-item.entry.js.map +1 -1
  267. package/dist/esm/bq-steps.entry.js +2 -2
  268. package/dist/esm/bq-switch.entry.js +1 -1
  269. package/dist/esm/bq-tab-group.entry.js +2 -2
  270. package/dist/esm/bq-tab.entry.js +2 -2
  271. package/dist/esm/bq-textarea.entry.js +16 -14
  272. package/dist/esm/bq-textarea.entry.js.map +1 -1
  273. package/dist/esm/bq-toast.entry.js +4 -6
  274. package/dist/esm/bq-toast.entry.js.map +1 -1
  275. package/dist/esm/bq-tooltip.entry.js +1 -1
  276. package/dist/esm/{cssVariables-CyiWA5Ok.js → cssVariables-DhGXeOL_.js} +3 -3
  277. package/dist/esm/cssVariables-DhGXeOL_.js.map +1 -0
  278. package/dist/esm/{index-CO2T68hs.js → index-BSSRzVAz.js} +47 -12
  279. package/dist/esm/index-BSSRzVAz.js.map +1 -0
  280. package/dist/esm/index.js +2 -2
  281. package/dist/esm/loader.js +3 -3
  282. package/dist/esm/{props-zh4P02Kn.js → props-DbxZ8FhA.js} +6 -5
  283. package/dist/esm/props-DbxZ8FhA.js.map +1 -0
  284. package/dist/esm/transition-DdvbF5yL.js.map +1 -1
  285. package/dist/hydrate/index.js +182 -85
  286. package/dist/hydrate/index.mjs +182 -85
  287. package/dist/stencil.config.js +1 -0
  288. package/dist/stencil.config.js.map +1 -1
  289. package/dist/types/components/checkbox/bq-checkbox.d.ts +2 -2
  290. package/dist/types/components/input/bq-input.d.ts +1 -0
  291. package/dist/types/components/select/bq-select.d.ts +5 -0
  292. package/dist/types/components.d.ts +13 -0
  293. package/dist/types/home/runner/work/BEEQ/BEEQ/.stencil/packages/beeq/vitest.config.d.ts +2 -0
  294. package/dist/types/shared/test-utils/computedStyle.d.ts +7 -6
  295. package/dist/types/shared/test-utils/setProperties.d.ts +1 -1
  296. package/dist/types/shared/test-utils/sleep.d.ts +5 -1
  297. package/dist/types/stencil-public-runtime.d.ts +1 -0
  298. package/dist/vitest.config.js +81 -0
  299. package/dist/vitest.config.js.map +1 -0
  300. package/package.json +1 -1
  301. package/dist/beeq/p-07172ac5.entry.js.map +0 -1
  302. package/dist/beeq/p-4d863871.entry.js.map +0 -1
  303. package/dist/beeq/p-654c7701.entry.js +0 -6
  304. package/dist/beeq/p-654c7701.entry.js.map +0 -1
  305. package/dist/beeq/p-94468a51.entry.js.map +0 -1
  306. package/dist/beeq/p-CO2T68hs.js.map +0 -1
  307. package/dist/beeq/p-_RvVpeh2.js +0 -6
  308. package/dist/beeq/p-_RvVpeh2.js.map +0 -1
  309. package/dist/beeq/p-a71efa95.entry.js.map +0 -1
  310. package/dist/beeq/p-zh4P02Kn.js +0 -6
  311. package/dist/beeq/p-zh4P02Kn.js.map +0 -1
  312. package/dist/cjs/cssVariables-exM7Oz37.js.map +0 -1
  313. package/dist/cjs/index-BSrsKFVG.js.map +0 -1
  314. package/dist/cjs/props-DzFXZXSF.js.map +0 -1
  315. package/dist/components/p-DnqmdkvK.js +0 -6
  316. package/dist/components/p-DnqmdkvK.js.map +0 -1
  317. package/dist/components/p-YjPwN7vu.js.map +0 -1
  318. package/dist/components/p-_RvVpeh2.js +0 -6
  319. package/dist/components/p-_RvVpeh2.js.map +0 -1
  320. package/dist/components/p-fdkSHq2G.js.map +0 -1
  321. package/dist/components/p-zh4P02Kn.js +0 -6
  322. package/dist/components/p-zh4P02Kn.js.map +0 -1
  323. package/dist/esm/cssVariables-CyiWA5Ok.js.map +0 -1
  324. package/dist/esm/index-CO2T68hs.js.map +0 -1
  325. package/dist/esm/props-zh4P02Kn.js.map +0 -1
  326. package/dist/jest.config.js +0 -23
  327. package/dist/jest.config.js.map +0 -1
  328. package/dist/types/Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System/.stencil/packages/beeq/jest.config.d.ts +0 -19
  329. /package/dist/beeq/{p-d0ccd4ae.entry.js.map → p-0cfa8d0b.entry.js.map} +0 -0
  330. /package/dist/beeq/{p-f47905ae.entry.js.map → p-21db2c4e.entry.js.map} +0 -0
  331. /package/dist/beeq/{p-e9535627.entry.js.map → p-25772ebd.entry.js.map} +0 -0
  332. /package/dist/beeq/{p-3bee1dda.entry.js.map → p-2a7c5b1e.entry.js.map} +0 -0
  333. /package/dist/beeq/{p-c67109c1.entry.js.map → p-327cb74b.entry.js.map} +0 -0
  334. /package/dist/beeq/{p-1a7d1d85.entry.js.map → p-49a999b4.entry.js.map} +0 -0
  335. /package/dist/beeq/{p-1fb43de2.entry.js.map → p-5645238d.entry.js.map} +0 -0
  336. /package/dist/beeq/{p-f0819693.entry.js.map → p-56810dba.entry.js.map} +0 -0
  337. /package/dist/beeq/{p-7c4e8101.entry.js.map → p-644013aa.entry.js.map} +0 -0
  338. /package/dist/beeq/{p-8dfd0329.entry.js.map → p-6b0f896f.entry.js.map} +0 -0
  339. /package/dist/beeq/{p-b0a15420.entry.js.map → p-7972ba08.entry.js.map} +0 -0
  340. /package/dist/beeq/{p-1ad4561f.entry.js.map → p-79aab4dd.entry.js.map} +0 -0
  341. /package/dist/beeq/{p-8035caf4.entry.js.map → p-79fd999a.entry.js.map} +0 -0
  342. /package/dist/beeq/{p-c33f1043.entry.js.map → p-8974f66f.entry.js.map} +0 -0
  343. /package/dist/beeq/{p-9843a419.entry.js.map → p-8d9bef7a.entry.js.map} +0 -0
  344. /package/dist/beeq/{p-40163197.entry.js.map → p-b26ee039.entry.js.map} +0 -0
  345. /package/dist/beeq/{p-e366fc1b.entry.js.map → p-b31d249b.entry.js.map} +0 -0
  346. /package/dist/beeq/{p-1a4af63c.entry.js.map → p-b4b02b99.entry.js.map} +0 -0
  347. /package/dist/beeq/{p-3c77308c.entry.js.map → p-b6f5430a.entry.js.map} +0 -0
  348. /package/dist/beeq/{p-97d8f052.entry.js.map → p-bb99b400.entry.js.map} +0 -0
  349. /package/dist/beeq/{p-2c823175.entry.js.map → p-cf2e4d57.entry.js.map} +0 -0
  350. /package/dist/beeq/{p-804c22d6.entry.js.map → p-d4df64ae.entry.js.map} +0 -0
  351. /package/dist/beeq/{p-ea473f56.entry.js.map → p-ef783b95.entry.js.map} +0 -0
  352. /package/dist/beeq/{p-e1319c86.entry.js.map → p-f07f4d99.entry.js.map} +0 -0
  353. /package/dist/beeq/{p-5240a62a.entry.js.map → p-f0a2c87e.entry.js.map} +0 -0
  354. /package/dist/beeq/{p-1f16f97f.entry.js.map → p-f3184477.entry.js.map} +0 -0
  355. /package/dist/beeq/{p-000d575f.entry.js.map → p-f4c66e83.entry.js.map} +0 -0
  356. /package/dist/beeq/{p-ad419446.entry.js.map → p-fb763ec5.entry.js.map} +0 -0
  357. /package/dist/beeq/{p-7e70e39b.entry.js.map → p-fe22de00.entry.js.map} +0 -0
  358. /package/dist/components/{p-BY4GkNoQ.js.map → p-BMHXMsVR.js.map} +0 -0
  359. /package/dist/components/{p-DRfB-NVC.js.map → p-BOuMP_Rm.js.map} +0 -0
  360. /package/dist/components/{p-D3RCJ1ti.js.map → p-CK3SnGa2.js.map} +0 -0
  361. /package/dist/components/{p-P-In5Xk5.js.map → p-CfP6le1E.js.map} +0 -0
  362. /package/dist/components/{p-L_rr8STP.js.map → p-MSqM1CAF.js.map} +0 -0
  363. /package/dist/components/{p-Al4yCjHm.js.map → p-jrBUnEFW.js.map} +0 -0
  364. /package/dist/components/{p-C2aEwRoD.js.map → p-wi7vUIoV.js.map} +0 -0
  365. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/runner/work/BEEQ/BEEQ}/.stencil/packages/beeq/stencil.config.d.ts +0 -0
  366. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/runner/work/BEEQ/BEEQ}/.stencil/tailwind.config.d.ts +0 -0
@@ -1 +1 @@
1
- {"file":"bq-textarea.cjs.entry.js","mappings":"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","names":["isHTMLElement","debounce","hasSlotContent","isNil","h"],"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-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-danger [&:not(.disabled):not(:focus-within)]:hover:border-hover-danger;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.danger);\n\n @apply border-active-danger;\n }\n}\n\n.bq-textarea__input.validation-success {\n @apply border-success [&:not(.disabled):not(:focus-within)]:hover:border-hover-success;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.success);\n\n @apply border-active-success;\n }\n}\n\n.bq-textarea__input.validation-warning {\n @apply border-warning [&:not(.disabled):not(:focus-within)]:hover:border-hover-warning;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.warning);\n\n @apply border-active-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-danger;\n}\n\n.bq-textarea__helper.validation-success {\n @apply text-success;\n}\n\n.bq-textarea__helper.validation-warning {\n @apply 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 type { EventEmitter } from '@stencil/core';\nimport { AttachInternals, Component, Element, Event, h, Prop, State, Watch } from '@stencil/core';\n\nimport { debounce, hasSlotContent, isHTMLElement, isNil, type TDebounce } from '../../shared/utils';\nimport type { TInputValidation } from '../input/bq-input.types';\nimport type { TTextareaAutoCapitalize, TTextareaWrap } from './bq-textarea.types';\n\n/**\n * The Textarea component is a multi-line text input control that is often used in a form to collect user inputs like comments or reviews.\n *\n * @example How to use it\n * ```html\n * <bq-textarea maxlength=\"0\" name=\"textarea\" placeholder=\"Placeholder...\" rows=\"5\">\n * <label slot=\"label\">Label</label>\n * <span class=\"flex items-center gap-xs\" slot=\"helper-text\">\n * <bq-icon name=\"star\"></bq-icon>\n * Helper text\n * </span>\n * </bq-textarea>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/16792c-textarea\n * @status stable\n *\n * @attr {string} autocapitalize - Controls whether or not the textarea field should be capitalized and how.\n * @attr {string} autocomplete - Specifies whether or not the textarea field should have autocomplete enabled.\n * @attr {boolean} autofocus - If `true`, the textarea will be focused on component render.\n * @attr {boolean} auto-grow - If `true`, the textarea will automatically grow and shrink to fit its contents.\n * @attr {number} debounce-time - The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the textarea value changes.\n * @attr {boolean} disabled - If `true`, the user cannot interact with the textarea.\n * @attr {boolean} disable-resize - If `true`, it will block the user's ability to resize the textarea.\n * @attr {string} form - The ID of the form that the textarea field belongs to.\n * @attr {string} form-validation-message - The native form validation message.\n * @attr {number} maxlength - The maximum number of characters that can be entered into the textarea (`0`: no limit).\n * @attr {string} name - The name of the textarea element.\n * @attr {string} placeholder - The placeholder text to show when there is no value.\n * @attr {boolean} readonly - If `true`, the textarea field cannot be modified.\n * @attr {boolean} required - Indicates whether or not the textarea field is required to be filled out before submitting the form.\n * @attr {number} rows - The number of visible text lines for the control. It must be a positive integer.\n * @attr {boolean} spellcheck - If `true`, the textarea content may be checked for spelling errors.\n * @attr {\"error\" | \"none\" | \"success\" | \"warning\"} validation-status - The validation status of the textarea.\n * @attr {string} value - The value of the textarea. It can be used to reset the textarea to a previous value.\n * @attr {\"soft\" | \"hard\"} wrap - Specifies how the text in a text area is to be wrapped when submitted in a form.\n *\n * @event bqBlur - Handler to be called when the textarea loses focus.\n * @event bqChange - Handler to be called when the textarea value has changed and the textarea loses focus.\n * @event bqClear - Handler to be called when the textarea value has been cleared.\n * @event bqFocus - Handler to be called when the textarea has received focus.\n * @event bqInput - Handler to be called when the textarea value changes.\n *\n * @slot label - The textarea label.\n * @slot helper-text - The helper text.\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 * @cssprop --bq-textarea--background-color - Textarea background color\n * @cssprop --bq-textarea--border-color - Textarea border color\n * @cssprop --bq-textarea--border-color-focus - Textarea border color on focus\n * @cssprop --bq-textarea--border-radius - Textarea border radius\n * @cssprop --bq-textarea--border-width - Textarea border width\n * @cssprop --bq-textarea--border-style - Textarea border style\n * @cssprop --bq-textarea--helper-margin-top - Textarea helper text margin top\n * @cssprop --bq-textarea--helper-text-color - Textarea helper text color\n * @cssprop --bq-textarea--helper-text-size - Textarea helper text size\n * @cssprop --bq-textarea--label-margin-bottom - Textarea label margin bottom\n * @cssprop --bq-textarea--label-text-color - Textarea label text color\n * @cssprop --bq-textarea--label-text-size - Textarea label text size\n * @cssprop --bq-textarea--paddingY - Textarea padding top and bottom\n * @cssprop --bq-textarea--padding-start - Textarea padding start\n * @cssprop --bq-textarea--padding-end - Textarea padding end\n * @cssprop --bq-textarea--text-color - Textarea text color\n * @cssprop --bq-textarea--text-size - Textarea text size\n * @cssprop --bq-textarea--text-placeholder-color - Textarea placeholder text color\n */\n@Component({\n tag: 'bq-textarea',\n styleUrl: './scss/bq-textarea.scss',\n formAssociated: true,\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 @AttachInternals() internals!: ElementInternals;\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 *\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 *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n */\n @Prop({ reflect: true }) autocomplete: string = 'off';\n\n /** If true, the textarea will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean = false;\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 /** The native form validation message */\n @Prop({ mutable: true }) formValidationMessage?: 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 /**\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, mutable: 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 @Watch('required')\n handleRequiredPropChange() {\n this.updateFormValidity();\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 componentDidLoad() {\n this.handleSlotChange();\n this.handleValueChange();\n }\n\n formAssociatedCallback() {\n this.setFormValue(this.value);\n this.updateFormValidity();\n }\n\n formResetCallback() {\n this.clearSelection();\n // Reset the form validity state\n this.setFormValue();\n this.updateFormValidity();\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 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 this.setFormValue(this.value);\n this.updateFormValidity();\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 handleSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n private setFormValue = (value?: string) => {\n this.internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n };\n\n private updateFormValidity = () => {\n const { formValidationMessage, internals, required, value, textarea } = this;\n\n // Clear the validity state\n internals?.states.clear();\n\n if (required && (!value || value.trim() === '')) {\n // Set validity state to invalid\n internals?.states.add('invalid');\n internals?.setValidity({ valueMissing: true }, formValidationMessage, textarea);\n return;\n }\n\n // Set validity state to valid if textarea has value or is not required\n internals?.states.add('valid');\n internals?.setValidity({});\n };\n\n private clearSelection = () => {\n this.value = '';\n this.textarea.value = this.value;\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 aria-label={this.name ?? this.fallbackId}\n class={{ 'bq-textarea__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name ?? this.fallbackId}\n part=\"label\"\n ref={(label: HTMLLabelElement) => {\n this.labelElem = label;\n }}\n >\n <slot name=\"label\" onSlotchange={this.handleSlotChange} />\n </label>\n <textarea\n autocapitalize={this.autocapitalize}\n autocomplete={this.autocomplete}\n autofocus={this.autofocus}\n class={{\n 'bq-textarea__input': true,\n 'resize-none': this.disableResize,\n [`validation-${this.validationStatus}`]: true,\n }}\n disabled={this.disabled}\n form={this.form}\n id={this.name ?? this.fallbackId}\n maxLength={this.maxlength > 0 ? this.maxlength : undefined}\n name={this.name}\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onInput={this.handleInput}\n part=\"input\"\n placeholder={this.placeholder}\n readOnly={this.readonly}\n ref={(elem: HTMLTextAreaElement) => {\n this.textarea = elem;\n }}\n required={this.required}\n rows={this.rows}\n spellcheck={this.spellcheck}\n wrap={this.wrap}\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 part=\"helper-text\"\n ref={(span: HTMLElement) => {\n this.helperTextElem = span;\n }}\n >\n <slot name=\"helper-text\" onSlotchange={this.handleSlotChange} />\n </span>\n <span\n class={{ 'bq-textarea__helper--counter [fontVariant:tabular-nums]': true, '!hidden': !this.maxlength }}\n part=\"helper-counter\"\n >\n {this.numberOfCharacters ?? 0}/{this.maxlength}\n </span>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bq-textarea.cjs.entry.js","mappings":"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","names":["isHTMLElement","debounce","hasSlotContent","isNil","h"],"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-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-danger [&:not(.disabled):not(:focus-within)]:hover:border-hover-danger;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.danger);\n\n @apply border-active-danger;\n }\n}\n\n.bq-textarea__input.validation-success {\n @apply border-success [&:not(.disabled):not(:focus-within)]:hover:border-hover-success;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.success);\n\n @apply border-active-success;\n }\n}\n\n.bq-textarea__input.validation-warning {\n @apply border-warning [&:not(.disabled):not(:focus-within)]:hover:border-hover-warning;\n\n &:not(.disabled):focus-within {\n --bq-ring-color-focus: theme(stroke.warning);\n\n @apply border-active-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-danger;\n}\n\n.bq-textarea__helper.validation-success {\n @apply text-success;\n}\n\n.bq-textarea__helper.validation-warning {\n @apply 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 type { EventEmitter } from '@stencil/core';\nimport { AttachInternals, Component, Element, Event, h, Prop, State, Watch } from '@stencil/core';\n\nimport { debounce, hasSlotContent, isHTMLElement, isNil, type TDebounce } from '../../shared/utils';\nimport type { TInputValidation } from '../input/bq-input.types';\nimport type { TTextareaAutoCapitalize, TTextareaWrap } from './bq-textarea.types';\n\n/**\n * The Textarea component is a multi-line text input control that is often used in a form to collect user inputs like comments or reviews.\n *\n * @example How to use it\n * ```html\n * <bq-textarea maxlength=\"0\" name=\"textarea\" placeholder=\"Placeholder...\" rows=\"5\">\n * <label slot=\"label\">Label</label>\n * <span class=\"flex items-center gap-xs\" slot=\"helper-text\">\n * <bq-icon name=\"star\"></bq-icon>\n * Helper text\n * </span>\n * </bq-textarea>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/16792c-textarea\n * @status stable\n *\n * @attr {string} autocapitalize - Controls whether or not the textarea field should be capitalized and how.\n * @attr {string} autocomplete - Specifies whether or not the textarea field should have autocomplete enabled.\n * @attr {boolean} autofocus - If `true`, the textarea will be focused on component render.\n * @attr {boolean} auto-grow - If `true`, the textarea will automatically grow and shrink to fit its contents.\n * @attr {number} debounce-time - The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the textarea value changes.\n * @attr {boolean} disabled - If `true`, the user cannot interact with the textarea.\n * @attr {boolean} disable-resize - If `true`, it will block the user's ability to resize the textarea.\n * @attr {string} form - The ID of the form that the textarea field belongs to.\n * @attr {string} form-validation-message - The native form validation message.\n * @attr {number} maxlength - The maximum number of characters that can be entered into the textarea (`0`: no limit).\n * @attr {string} name - The name of the textarea element.\n * @attr {string} placeholder - The placeholder text to show when there is no value.\n * @attr {boolean} readonly - If `true`, the textarea field cannot be modified.\n * @attr {boolean} required - Indicates whether or not the textarea field is required to be filled out before submitting the form.\n * @attr {number} rows - The number of visible text lines for the control. It must be a positive integer.\n * @attr {boolean} spellcheck - If `true`, the textarea content may be checked for spelling errors.\n * @attr {\"error\" | \"none\" | \"success\" | \"warning\"} validation-status - The validation status of the textarea.\n * @attr {string} value - The value of the textarea. It can be used to reset the textarea to a previous value.\n * @attr {\"soft\" | \"hard\"} wrap - Specifies how the text in a text area is to be wrapped when submitted in a form.\n *\n * @event bqBlur - Handler to be called when the textarea loses focus.\n * @event bqChange - Handler to be called when the textarea value has changed and the textarea loses focus.\n * @event bqClear - Handler to be called when the textarea value has been cleared.\n * @event bqFocus - Handler to be called when the textarea has received focus.\n * @event bqInput - Handler to be called when the textarea value changes.\n *\n * @slot label - The textarea label.\n * @slot helper-text - The helper text.\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 * @cssprop --bq-textarea--background-color - Textarea background color\n * @cssprop --bq-textarea--border-color - Textarea border color\n * @cssprop --bq-textarea--border-color-focus - Textarea border color on focus\n * @cssprop --bq-textarea--border-radius - Textarea border radius\n * @cssprop --bq-textarea--border-width - Textarea border width\n * @cssprop --bq-textarea--border-style - Textarea border style\n * @cssprop --bq-textarea--helper-margin-top - Textarea helper text margin top\n * @cssprop --bq-textarea--helper-text-color - Textarea helper text color\n * @cssprop --bq-textarea--helper-text-size - Textarea helper text size\n * @cssprop --bq-textarea--label-margin-bottom - Textarea label margin bottom\n * @cssprop --bq-textarea--label-text-color - Textarea label text color\n * @cssprop --bq-textarea--label-text-size - Textarea label text size\n * @cssprop --bq-textarea--paddingY - Textarea padding top and bottom\n * @cssprop --bq-textarea--padding-start - Textarea padding start\n * @cssprop --bq-textarea--padding-end - Textarea padding end\n * @cssprop --bq-textarea--text-color - Textarea text color\n * @cssprop --bq-textarea--text-size - Textarea text size\n * @cssprop --bq-textarea--text-placeholder-color - Textarea placeholder text color\n */\n@Component({\n tag: 'bq-textarea',\n styleUrl: './scss/bq-textarea.scss',\n formAssociated: true,\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 @AttachInternals() internals!: ElementInternals;\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 *\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 *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n */\n @Prop({ reflect: true }) autocomplete: string = 'off';\n\n /** If true, the textarea will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean = false;\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 /** The native form validation message */\n @Prop({ mutable: true }) formValidationMessage?: 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 /**\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, mutable: 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\n if (this.maxlength && this.value?.length >= this.maxlength) {\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 this.setFormValue(this.value);\n this.updateFormValidity();\n }\n\n @Watch('required')\n handleRequiredPropChange() {\n this.updateFormValidity();\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 componentDidLoad() {\n this.handleSlotChange();\n this.handleValueChange();\n }\n\n formAssociatedCallback() {\n this.setFormValue(this.value);\n this.updateFormValidity();\n }\n\n formResetCallback() {\n this.clearSelection();\n // Reset the form validity state\n this.setFormValue();\n this.updateFormValidity();\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 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 || this.readonly) return;\n\n if (!isHTMLElement(ev.target, 'textarea')) return;\n this.value = ev.target.value;\n this.setFormValue(this.value);\n this.updateFormValidity();\n\n this.bqChange.emit({ value: this.value, el: this.el });\n };\n\n private handleInput = (ev: Event) => {\n if (this.disabled || this.readonly) 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 handleSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n private setFormValue = (value?: string) => {\n this.internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n };\n\n private updateFormValidity = () => {\n const { formValidationMessage, internals, required, value, textarea } = this;\n\n // Clear the validity state\n internals?.states.clear();\n\n if (required && (!value || value.trim() === '')) {\n // Set validity state to invalid\n internals?.states.add('invalid');\n internals?.setValidity({ valueMissing: true }, formValidationMessage || 'This field is required', textarea);\n return;\n }\n\n // Set validity state to valid if textarea has value or is not required\n internals?.states.add('valid');\n internals?.setValidity({});\n };\n\n private clearSelection = () => {\n this.value = '';\n this.textarea.value = this.value;\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 aria-label={this.name ?? this.fallbackId}\n class={{ 'bq-textarea__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name ?? this.fallbackId}\n part=\"label\"\n ref={(label: HTMLLabelElement) => {\n this.labelElem = label;\n }}\n >\n <slot name=\"label\" onSlotchange={this.handleSlotChange} />\n </label>\n <textarea\n autocapitalize={this.autocapitalize}\n autocomplete={this.autocomplete}\n autofocus={this.autofocus}\n class={{\n 'bq-textarea__input': true,\n 'resize-none': this.disableResize,\n [`validation-${this.validationStatus}`]: true,\n }}\n disabled={this.disabled}\n form={this.form}\n id={this.name ?? this.fallbackId}\n maxLength={this.maxlength > 0 ? this.maxlength : undefined}\n name={this.name}\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onInput={this.handleInput}\n part=\"input\"\n placeholder={this.placeholder}\n readOnly={this.readonly}\n ref={(elem: HTMLTextAreaElement) => {\n this.textarea = elem;\n }}\n required={this.required}\n rows={this.rows}\n spellcheck={this.spellcheck}\n wrap={this.wrap}\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 part=\"helper-text\"\n ref={(span: HTMLElement) => {\n this.helperTextElem = span;\n }}\n >\n <slot name=\"helper-text\" onSlotchange={this.handleSlotChange} />\n </span>\n <span\n class={{ 'bq-textarea__helper--counter [fontVariant:tabular-nums]': true, '!hidden': !this.maxlength }}\n part=\"helper-counter\"\n >\n {this.numberOfCharacters ?? 0}/{this.maxlength}\n </span>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -4,10 +4,10 @@
4
4
  */
5
5
  'use strict';
6
6
 
7
- var index = require('./index-BSrsKFVG.js');
7
+ var index = require('./index-J9jJ-fFQ.js');
8
8
  var isClient = require('./isClient-CrXhXxbA.js');
9
9
  var debounce = require('./debounce-D0tIpUuS.js');
10
- var props = require('./props-DzFXZXSF.js');
10
+ var props = require('./props-BXpv3G-e.js');
11
11
  require('./isNil-CFhdj92S.js');
12
12
 
13
13
  const TOAST_TYPE = ['info', 'success', 'alert', 'error', 'loading', 'custom'];
@@ -86,9 +86,7 @@ const BqToast = class {
86
86
  connectedCallback() {
87
87
  if (!isClient.isClient())
88
88
  return;
89
- if (this.toastPortal) {
90
- this.toastPortal = Object.assign(document.createElement('div'), { className: TOAST_PORTAL_SELECTOR });
91
- }
89
+ this.toastPortal ??= Object.assign(document.createElement('div'), { className: TOAST_PORTAL_SELECTOR });
92
90
  }
93
91
  componentWillLoad() {
94
92
  this.checkPropValues();
@@ -179,7 +177,7 @@ const BqToast = class {
179
177
  const style = {
180
178
  ...(this.border && { '--bq-toast--border-radius': `var(--bq-radius--${this.border})` }),
181
179
  };
182
- return (index.h(index.Host, { key: '1bc681e9721181df9b6051302495ee549f25ce61', "aria-hidden": !this.open ? 'true' : 'false', class: { 'is-hidden': !this.open }, hidden: !this.open ? 'true' : 'false', role: "status", style: style }, index.h("output", { key: 'e73aad38351bc20e7d81fca7ef136effdd2f730d', class: "bq-toast", part: "wrapper" }, index.h("div", { key: '2a8bf31a431c7b23c750c070ff1a19d0aca31ef5', class: { [`bq-toast--icon ${this.type}`]: true, '!hidden': this.hideIcon }, part: "icon" }, index.h("slot", { key: '1d2257957f07b4ca66ed724897dd17790cd6ccde', name: "icon" }, index.h("bq-icon", { key: '303b81e8939deaccc58477df3549673eb88ded21', exportparts: "base,svg", name: this.iconName, size: "24", slot: "icon" }))), index.h("slot", { key: 'a744c04d06407a9dad9846dcb0ddae114da2a8c1' }))));
180
+ return (index.h(index.Host, { key: '1d25044a7d5a83d5abe2a2447628d419ff1d9eb8', "aria-hidden": !this.open ? 'true' : 'false', class: { 'is-hidden': !this.open }, hidden: !this.open ? 'true' : 'false', role: "status", style: style }, index.h("output", { key: 'cd19890019ffe0cecad5491ba5bb72466cb887b1', class: "bq-toast", part: "wrapper" }, index.h("div", { key: 'c5f792a3b0b53644a16858aee5ecc4f5aa586d08', class: { [`bq-toast--icon ${this.type}`]: true, '!hidden': this.hideIcon }, part: "icon" }, index.h("slot", { key: 'e43d52c902750578dcb88767a7424de3a8c33b73', name: "icon" }, index.h("bq-icon", { key: 'edb0f5a9ac4ac81a97b9d9b1bc893591fc9fb9e3', exportparts: "base,svg", name: this.iconName, size: "24", slot: "icon" }))), index.h("slot", { key: '265c9994aa060449d613bd49d374e73d058d4bc9' }))));
183
181
  }
184
182
  static get watchers() { return {
185
183
  "type": [{
@@ -1 +1 @@
1
- {"file":"bq-toast.cjs.entry.js","mappings":"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","names":["isClient","validatePropValue","debounce","h","Host"],"sources":["../../packages/beeq/src/components/toast/bq-toast.types.ts","../../packages/beeq/src/components/toast/scss/bq-toast.scss?tag=bq-toast&encapsulation=shadow","../../packages/beeq/src/components/toast/bq-toast.tsx"],"sourcesContent":["export const TOAST_TYPE = ['info', 'success', 'alert', 'error', 'loading', 'custom'] as const;\nexport type TToastType = (typeof TOAST_TYPE)[number];\n\nexport const TOAST_PLACEMENT = [\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left',\n 'top-left',\n] as const;\nexport type TToastPlacement = (typeof TOAST_PLACEMENT)[number];\n\nexport const TOAST_BORDER_RADIUS = ['none', 'xs2', 'xs', 's', 'm', 'l', 'full'] as const;\nexport type TToastBorderRadius = (typeof TOAST_BORDER_RADIUS)[number];\n","/* -------------------------------------------------------------------------- */\n/* Toast styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-toast.variables';\n\n:host {\n @apply inline-block;\n}\n\n:host(.is-hidden) {\n @apply hidden;\n}\n\n.bq-toast {\n @include animation-slide-in;\n @apply flex items-center gap-[--bq-toast--gap] p-b-[--bq-toast--padding-y] p-i-[--bq-toast--padding-x];\n @apply rounded-[--bq-toast--border-radius] bg-[--bq-toast--background] shadow-[shadow:--bq-toast--box-shadow];\n @apply border-[length:--bq-toast--border-width] border-[color:--bq-toast--border-color];\n\n border-style: var(--bq-toast--border-style);\n}\n\n.bq-toast--icon {\n @apply flex;\n\n &.info {\n @apply text-[--bq-toast--icon-color-info];\n }\n\n &.success {\n @apply text-[--bq-toast--icon-color-success];\n }\n\n &.alert {\n @apply text-[--bq-toast--icon-color-alert];\n }\n\n &.error {\n @apply text-[--bq-toast--icon-color-error];\n }\n\n &.loading {\n @include animation-spin;\n @apply text-[--bq-toast--icon-color-loading];\n }\n\n &.custom {\n @apply text-[--bq-toast--icon-color-custom];\n }\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Element, Event, Host, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { debounce, isClient, type TDebounce, validatePropValue } from '../../shared/utils';\nimport type { TToastBorderRadius, TToastPlacement, TToastType } from './bq-toast.types';\nimport { TOAST_PLACEMENT, TOAST_TYPE } from './bq-toast.types';\n\nconst TOAST_PORTAL_SELECTOR = 'bq-toast-portal';\n\n/**\n * Toasts are time-based components used to display short messages.\n * Commonly used for errors, confirmations, or progress updates.\n *\n * @example How to use it\n * ```html\n * <bq-toast type=\"info\">\n * This is a message\n * </bq-toast>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/83da51-toast\n * @status stable\n *\n * @dependency bq-icon\n *\n * @attr {\"s\" | \"none\" | \"xs2\" | \"xs\" | \"m\" | \"l\" | \"full\"} border - The corder radius of the toast component\n * @attr {\"success\" | \"error\" | \"loading\" | \"alert\" | \"info\"} type - Type of toast\n * @attr {\"top-left\" | \"top-center\" | \"top-right\" | \"bottom-left\" | \"bottom-center\" | \"bottom-right\"} placement - Placement of toast\n * @attr {boolean} hide-icon - If true will hide toast icon\n * @attr {boolean} open - If true, the toast will be shown\n * @attr {number} time - The length of time, in milliseconds, after which the toast will close itself\n *\n * @method show - Method to be called to show the toast component\n * @method hide - Method to be called to hide the toast component\n * @method toast - This method can be used to display toasts in a fixed-position element that allows for stacking multiple toasts vertically\n *\n * @event bqHide - Callback handler to be called when the notification is hidden\n * @event bqShow - Callback handler to be called when the notification is shown\n *\n * @slot - The content to be displayed in the toast component.\n * @slot icon - The icon to be displayed in the toast component.\n *\n * @part wrapper - The component's internal wrapper inside the shadow DOM.\n * @part icon-info - The `<div>` container that holds the icon component.\n * @part base - The `<div>` container of the internal bq-icon component.\n * @part svg - The `<svg>` element of the internal bq-icon component.\n *\n * @cssprop --bq-toast--background - Toast background color\n * @cssprop --bq-toast--box-shadow - Toast box shadow\n * @cssprop --bq-toast--padding-y - Toast vertical padding\n * @cssprop --bq-toast--padding-x - Toast horizontal padding\n * @cssprop --bq-toast--gap - Toast distance between icon and text\n * @cssprop --bq-toast--border-radius - Toast border radius\n * @cssprop --bq-toast--border-color - Toast border color\n * @cssprop --bq-toast--border-style - Toast border style\n * @cssprop --bq-toast--border-width - Toast border width\n * @cssprop --bq-toast--icon-color-info - Toast icon color when type is 'info'\n * @cssprop --bq-toast--icon-color-success - Toast icon color when type is 'success'\n * @cssprop --bq-toast--icon-color-alert - Toast icon color when type is 'alert'\n * @cssprop --bq-toast--icon-color-error - Toast icon color when type is 'error'\n * @cssprop --bq-toast--icon-color-loading - Toast icon color when type is 'loading'\n * @cssprop --bq-toast--icon-color-custom - Toast icon color when type is 'custom'\n */\n@Component({\n tag: 'bq-toast',\n styleUrl: './scss/bq-toast.scss',\n shadow: true,\n})\nexport class BqToast {\n // Own Properties\n // ====================\n\n private autoDismissDebounce: TDebounce<void>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqToastElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private toastPortal = isClient() ? document.querySelector(`.${TOAST_PORTAL_SELECTOR}`) : null;\n\n // Public Property API\n // ========================\n\n /** The corder radius of the toast component */\n @Prop({ reflect: true }) border: TToastBorderRadius = 's';\n\n /** Type of toast */\n @Prop({ reflect: true, mutable: true }) type: TToastType = 'info';\n\n /** Placement of toast */\n @Prop({ reflect: true, mutable: true }) placement: TToastPlacement = 'bottom-center';\n\n /** If true will hide toast icon */\n @Prop({ reflect: true, mutable: true }) hideIcon = false;\n\n /** If true, the toast will be shown */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** The length of time, in milliseconds, after which the toast will close itself */\n @Prop({ reflect: true }) time: number = 3000;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('type')\n @Watch('placement')\n checkPropValues() {\n validatePropValue(TOAST_TYPE, 'default', this.el, 'type');\n validatePropValue(TOAST_PLACEMENT, 'bottom-center', this.el, 'placement');\n\n const { toastPortal } = this;\n toastPortal?.classList.remove(...TOAST_PLACEMENT);\n toastPortal?.classList.add(this.placement);\n }\n\n @Watch('time')\n handleTimeChange() {\n this.autoDismissDebounce?.cancel();\n\n this.time = Math.max(0, this.time);\n\n this.autoDismissDebounce = debounce(() => {\n this.hide();\n }, this.time);\n }\n\n @Watch('open')\n handleOpenChange() {\n this.autoDismissDebounce?.cancel();\n\n if (this.open) {\n this.autoDismissDebounce?.();\n }\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the notification is hidden */\n @Event() bqHide: EventEmitter<HTMLBqToastElement>;\n\n /** Callback handler to be called when the notification is shown */\n @Event() bqShow: EventEmitter<HTMLBqToastElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n if (!isClient()) return;\n\n if (this.toastPortal) {\n this.toastPortal = Object.assign(document.createElement('div'), { className: TOAST_PORTAL_SELECTOR });\n }\n }\n\n componentWillLoad() {\n this.checkPropValues();\n this.handleTimeChange();\n this.handleOpenChange();\n }\n\n disconnectedCallback() {\n this.autoDismissDebounce?.cancel();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqHide')\n onNotificationHide() {\n try {\n const { toastPortal } = this;\n toastPortal?.removeChild(this.el);\n // Remove the toast portal from the DOM when there are no more toasts\n if (toastPortal?.querySelector(this.el.tagName.toLowerCase()) === null) {\n toastPortal?.remove();\n }\n } catch (error) {\n /**\n * Skip DOMException error since it could be possible that\n * in some situations the notification portal is missing\n */\n if (error instanceof DOMException) return;\n throw error;\n }\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 /** Method to be called to show the toast component */\n @Method()\n async show(): Promise<void> {\n this.handleShow();\n }\n\n /** Method to be called to hide the toast component */\n @Method()\n async hide(): Promise<void> {\n this.handleHide();\n }\n\n /** This method can be used to display toasts in a fixed-position element that allows for stacking multiple toasts vertically */\n @Method()\n async toast() {\n if (!isClient()) return;\n\n const { toastPortal } = this;\n if (toastPortal?.parentElement === null) {\n document.body.append(toastPortal);\n }\n\n toastPortal?.appendChild(this.el);\n\n requestAnimationFrame(() => {\n this.show();\n });\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleShow = () => {\n const ev = this.bqShow.emit(this.el);\n if (!ev.defaultPrevented) {\n this.open = true;\n }\n };\n\n private handleHide = () => {\n const ev = this.bqHide.emit(this.el);\n if (!ev.defaultPrevented) {\n this.open = false;\n }\n };\n\n private get iconName() {\n const typeMap = {\n success: 'check-circle-bold',\n error: 'x-circle-bold',\n loading: 'spinner-gap-bold',\n alert: 'warning-bold',\n info: 'info-bold',\n };\n\n return typeMap[this.type] || 'info-bold';\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.border && { '--bq-toast--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <Host\n aria-hidden={!this.open ? 'true' : 'false'}\n class={{ 'is-hidden': !this.open }}\n hidden={!this.open ? 'true' : 'false'}\n role=\"status\"\n style={style}\n >\n <output class=\"bq-toast\" part=\"wrapper\">\n <div class={{ [`bq-toast--icon ${this.type}`]: true, '!hidden': this.hideIcon }} part=\"icon\">\n <slot name=\"icon\">\n <bq-icon exportparts=\"base,svg\" name={this.iconName} size=\"24\" slot=\"icon\" />\n </slot>\n </div>\n <slot />\n </output>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bq-toast.cjs.entry.js","mappings":"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","names":["isClient","validatePropValue","debounce","h","Host"],"sources":["../../packages/beeq/src/components/toast/bq-toast.types.ts","../../packages/beeq/src/components/toast/scss/bq-toast.scss?tag=bq-toast&encapsulation=shadow","../../packages/beeq/src/components/toast/bq-toast.tsx"],"sourcesContent":["export const TOAST_TYPE = ['info', 'success', 'alert', 'error', 'loading', 'custom'] as const;\nexport type TToastType = (typeof TOAST_TYPE)[number];\n\nexport const TOAST_PLACEMENT = [\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left',\n 'top-left',\n] as const;\nexport type TToastPlacement = (typeof TOAST_PLACEMENT)[number];\n\nexport const TOAST_BORDER_RADIUS = ['none', 'xs2', 'xs', 's', 'm', 'l', 'full'] as const;\nexport type TToastBorderRadius = (typeof TOAST_BORDER_RADIUS)[number];\n","/* -------------------------------------------------------------------------- */\n/* Toast styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-toast.variables';\n\n:host {\n @apply inline-block;\n}\n\n:host(.is-hidden) {\n @apply hidden;\n}\n\n.bq-toast {\n @include animation-slide-in;\n @apply flex items-center gap-[--bq-toast--gap] p-b-[--bq-toast--padding-y] p-i-[--bq-toast--padding-x];\n @apply rounded-[--bq-toast--border-radius] bg-[--bq-toast--background] shadow-[shadow:--bq-toast--box-shadow];\n @apply border-[length:--bq-toast--border-width] border-[color:--bq-toast--border-color];\n\n border-style: var(--bq-toast--border-style);\n}\n\n.bq-toast--icon {\n @apply flex;\n\n &.info {\n @apply text-[--bq-toast--icon-color-info];\n }\n\n &.success {\n @apply text-[--bq-toast--icon-color-success];\n }\n\n &.alert {\n @apply text-[--bq-toast--icon-color-alert];\n }\n\n &.error {\n @apply text-[--bq-toast--icon-color-error];\n }\n\n &.loading {\n @include animation-spin;\n @apply text-[--bq-toast--icon-color-loading];\n }\n\n &.custom {\n @apply text-[--bq-toast--icon-color-custom];\n }\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Element, Event, Host, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { debounce, isClient, type TDebounce, validatePropValue } from '../../shared/utils';\nimport type { TToastBorderRadius, TToastPlacement, TToastType } from './bq-toast.types';\nimport { TOAST_PLACEMENT, TOAST_TYPE } from './bq-toast.types';\n\nconst TOAST_PORTAL_SELECTOR = 'bq-toast-portal';\n\n/**\n * Toasts are time-based components used to display short messages.\n * Commonly used for errors, confirmations, or progress updates.\n *\n * @example How to use it\n * ```html\n * <bq-toast type=\"info\">\n * This is a message\n * </bq-toast>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/83da51-toast\n * @status stable\n *\n * @dependency bq-icon\n *\n * @attr {\"s\" | \"none\" | \"xs2\" | \"xs\" | \"m\" | \"l\" | \"full\"} border - The corder radius of the toast component\n * @attr {\"success\" | \"error\" | \"loading\" | \"alert\" | \"info\"} type - Type of toast\n * @attr {\"top-left\" | \"top-center\" | \"top-right\" | \"bottom-left\" | \"bottom-center\" | \"bottom-right\"} placement - Placement of toast\n * @attr {boolean} hide-icon - If true will hide toast icon\n * @attr {boolean} open - If true, the toast will be shown\n * @attr {number} time - The length of time, in milliseconds, after which the toast will close itself\n *\n * @method show - Method to be called to show the toast component\n * @method hide - Method to be called to hide the toast component\n * @method toast - This method can be used to display toasts in a fixed-position element that allows for stacking multiple toasts vertically\n *\n * @event bqHide - Callback handler to be called when the notification is hidden\n * @event bqShow - Callback handler to be called when the notification is shown\n *\n * @slot - The content to be displayed in the toast component.\n * @slot icon - The icon to be displayed in the toast component.\n *\n * @part wrapper - The component's internal wrapper inside the shadow DOM.\n * @part icon-info - The `<div>` container that holds the icon component.\n * @part base - The `<div>` container of the internal bq-icon component.\n * @part svg - The `<svg>` element of the internal bq-icon component.\n *\n * @cssprop --bq-toast--background - Toast background color\n * @cssprop --bq-toast--box-shadow - Toast box shadow\n * @cssprop --bq-toast--padding-y - Toast vertical padding\n * @cssprop --bq-toast--padding-x - Toast horizontal padding\n * @cssprop --bq-toast--gap - Toast distance between icon and text\n * @cssprop --bq-toast--border-radius - Toast border radius\n * @cssprop --bq-toast--border-color - Toast border color\n * @cssprop --bq-toast--border-style - Toast border style\n * @cssprop --bq-toast--border-width - Toast border width\n * @cssprop --bq-toast--icon-color-info - Toast icon color when type is 'info'\n * @cssprop --bq-toast--icon-color-success - Toast icon color when type is 'success'\n * @cssprop --bq-toast--icon-color-alert - Toast icon color when type is 'alert'\n * @cssprop --bq-toast--icon-color-error - Toast icon color when type is 'error'\n * @cssprop --bq-toast--icon-color-loading - Toast icon color when type is 'loading'\n * @cssprop --bq-toast--icon-color-custom - Toast icon color when type is 'custom'\n */\n@Component({\n tag: 'bq-toast',\n styleUrl: './scss/bq-toast.scss',\n shadow: true,\n})\nexport class BqToast {\n // Own Properties\n // ====================\n\n private autoDismissDebounce: TDebounce<void>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqToastElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private toastPortal = isClient() ? document.querySelector(`.${TOAST_PORTAL_SELECTOR}`) : null;\n\n // Public Property API\n // ========================\n\n /** The corder radius of the toast component */\n @Prop({ reflect: true }) border: TToastBorderRadius = 's';\n\n /** Type of toast */\n @Prop({ reflect: true, mutable: true }) type: TToastType = 'info';\n\n /** Placement of toast */\n @Prop({ reflect: true, mutable: true }) placement: TToastPlacement = 'bottom-center';\n\n /** If true will hide toast icon */\n @Prop({ reflect: true, mutable: true }) hideIcon = false;\n\n /** If true, the toast will be shown */\n @Prop({ reflect: true, mutable: true }) open: boolean;\n\n /** The length of time, in milliseconds, after which the toast will close itself */\n @Prop({ reflect: true }) time: number = 3000;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('type')\n @Watch('placement')\n checkPropValues() {\n validatePropValue(TOAST_TYPE, 'default', this.el, 'type');\n validatePropValue(TOAST_PLACEMENT, 'bottom-center', this.el, 'placement');\n\n const { toastPortal } = this;\n toastPortal?.classList.remove(...TOAST_PLACEMENT);\n toastPortal?.classList.add(this.placement);\n }\n\n @Watch('time')\n handleTimeChange() {\n this.autoDismissDebounce?.cancel();\n\n this.time = Math.max(0, this.time);\n\n this.autoDismissDebounce = debounce(() => {\n this.hide();\n }, this.time);\n }\n\n @Watch('open')\n handleOpenChange() {\n this.autoDismissDebounce?.cancel();\n\n if (this.open) {\n this.autoDismissDebounce?.();\n }\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler to be called when the notification is hidden */\n @Event() bqHide: EventEmitter<HTMLBqToastElement>;\n\n /** Callback handler to be called when the notification is shown */\n @Event() bqShow: EventEmitter<HTMLBqToastElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n if (!isClient()) return;\n\n this.toastPortal ??= Object.assign(document.createElement('div'), { className: TOAST_PORTAL_SELECTOR });\n }\n\n componentWillLoad() {\n this.checkPropValues();\n this.handleTimeChange();\n this.handleOpenChange();\n }\n\n disconnectedCallback() {\n this.autoDismissDebounce?.cancel();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqHide')\n onNotificationHide() {\n try {\n const { toastPortal } = this;\n toastPortal?.removeChild(this.el);\n // Remove the toast portal from the DOM when there are no more toasts\n if (toastPortal?.querySelector(this.el.tagName.toLowerCase()) === null) {\n toastPortal?.remove();\n }\n } catch (error) {\n /**\n * Skip DOMException error since it could be possible that\n * in some situations the notification portal is missing\n */\n if (error instanceof DOMException) return;\n throw error;\n }\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 /** Method to be called to show the toast component */\n @Method()\n async show(): Promise<void> {\n this.handleShow();\n }\n\n /** Method to be called to hide the toast component */\n @Method()\n async hide(): Promise<void> {\n this.handleHide();\n }\n\n /** This method can be used to display toasts in a fixed-position element that allows for stacking multiple toasts vertically */\n @Method()\n async toast() {\n if (!isClient()) return;\n\n const { toastPortal } = this;\n if (toastPortal?.parentElement === null) {\n document.body.append(toastPortal);\n }\n\n toastPortal?.appendChild(this.el);\n\n requestAnimationFrame(() => {\n this.show();\n });\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleShow = () => {\n const ev = this.bqShow.emit(this.el);\n if (!ev.defaultPrevented) {\n this.open = true;\n }\n };\n\n private handleHide = () => {\n const ev = this.bqHide.emit(this.el);\n if (!ev.defaultPrevented) {\n this.open = false;\n }\n };\n\n private get iconName() {\n const typeMap = {\n success: 'check-circle-bold',\n error: 'x-circle-bold',\n loading: 'spinner-gap-bold',\n alert: 'warning-bold',\n info: 'info-bold',\n };\n\n return typeMap[this.type] || 'info-bold';\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const style = {\n ...(this.border && { '--bq-toast--border-radius': `var(--bq-radius--${this.border})` }),\n };\n\n return (\n <Host\n aria-hidden={!this.open ? 'true' : 'false'}\n class={{ 'is-hidden': !this.open }}\n hidden={!this.open ? 'true' : 'false'}\n role=\"status\"\n style={style}\n >\n <output class=\"bq-toast\" part=\"wrapper\">\n <div class={{ [`bq-toast--icon ${this.type}`]: true, '!hidden': this.hideIcon }} part=\"icon\">\n <slot name=\"icon\">\n <bq-icon exportparts=\"base,svg\" name={this.iconName} size=\"24\" slot=\"icon\" />\n </slot>\n </div>\n <slot />\n </output>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  'use strict';
6
6
 
7
- var index = require('./index-BSrsKFVG.js');
7
+ var index = require('./index-J9jJ-fFQ.js');
8
8
  var index$1 = require('./index-CfLTYjba.js');
9
9
  var event = require('./event-BhuEFC-I.js');
10
10
 
@@ -14,7 +14,7 @@ const CSSVALUEPREFIX = '--bq-';
14
14
  * @return {string} The corresponding CSS custom property variable
15
15
  */
16
16
  function getColorCSSVariable(colorName) {
17
- if (!isClient.isClient)
17
+ if (!isClient.isClient())
18
18
  return undefined;
19
19
  const token = `${CSSVALUEPREFIX}${colorName}`;
20
20
  const value = getComputedStyle(document.documentElement).getPropertyValue(token);
@@ -35,6 +35,6 @@ function getCSSVariableValue(variable, component) {
35
35
 
36
36
  exports.getCSSVariableValue = getCSSVariableValue;
37
37
  exports.getColorCSSVariable = getColorCSSVariable;
38
- //# sourceMappingURL=cssVariables-exM7Oz37.js.map
38
+ //# sourceMappingURL=cssVariables-DuVz7KcV.js.map
39
39
 
40
- //# sourceMappingURL=cssVariables-exM7Oz37.js.map
40
+ //# sourceMappingURL=cssVariables-DuVz7KcV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssVariables-DuVz7KcV.js","sources":["../../packages/beeq/src/shared/utils/cssVariables.ts"],"sourcesContent":["import { isClient } from './isClient';\n\nconst CSSVALUEPREFIX = '--bq-';\n\n/**\n * Get CSS custom property variable of a given color string value\n *\n * @param {string} colorName - Valid string value.\n * @return {string} The corresponding CSS custom property variable\n */\nexport function getColorCSSVariable(colorName: string): string | undefined {\n if (!isClient()) return undefined;\n\n const token = `${CSSVALUEPREFIX}${colorName}`;\n const value = getComputedStyle(document.documentElement).getPropertyValue(token);\n if (!value) return undefined;\n\n return `var(${token})`;\n}\n\n/**\n * Get compiled CSS custom property value\n *\n * @param {string} variable - The variable name for which to get its value\n * @return {string} The corresponding value for the given CSS custom property\n */\nexport function getCSSVariableValue(variable: string, component: Element): string {\n const styles = getComputedStyle(component);\n return String(styles.getPropertyValue(`--${variable}`)).trim();\n}\n"],"names":["isClient"],"mappings":";;;;;;;;AAEA,MAAM,cAAc,GAAG,OAAO;AAE9B;;;;;AAKG;AACG,SAAU,mBAAmB,CAAC,SAAiB,EAAA;IACnD,IAAI,CAACA,iBAAQ,EAAE;AAAE,QAAA,OAAO,SAAS;AAEjC,IAAA,MAAM,KAAK,GAAG,CAAA,EAAG,cAAc,CAAA,EAAG,SAAS,EAAE;AAC7C,IAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAChF,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,SAAS;IAE5B,OAAO,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,CAAG;AACxB;AAEA;;;;;AAKG;AACG,SAAU,mBAAmB,CAAC,QAAgB,EAAE,SAAkB,EAAA;AACtE,IAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC;AAC1C,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAK,QAAQ,CAAA,CAAE,CAAC,CAAC,CAAC,IAAI,EAAE;AAChE;;;;;"}
@@ -29,7 +29,7 @@ const globalScripts = () => {};
29
29
  const globalStyles = "@tailwind base;@tailwind utilities;@tailwind components;@-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)}}.border-spacing-0,.bordered{--tw-border-spacing-x:0;--tw-border-spacing-y:0}.after\\:scale-x-0:after,.bottom-center,.bq-link:after,.hover\\:after\\:scale-x-100:after,.sm\\:-translate-x-1\\/2,.top-center{--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}::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:\"Outfit\",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq:not([bq-mode]),.light,:root:not([bq-theme]):not([bq-mode]),:root[bq-theme=beeq]:not([bq-mode]),[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-100);--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}.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-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:\"Poppins\",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,.endava:not([bq-mode]),[bq-theme=endava]:not([bq-mode]),[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-100);--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-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-xxl2{bottom:var(--bq-spacing-xxl2)}.end-0{inset-inline-end:0}.left-0{left:0}.top-0{top:0}.top-xxl2{top:var(--bq-spacing-xxl2)}.z-50{z-index:50}.m-4{margin:1rem}.inline-block{display:inline-block}.flex{display:flex}.h-\\[--bq-table--header-height\\]{height:var(--bq-table--header-height)}.max-h-full{max-height:100%}.w-full{width:100%}.max-w-full{max-width:100%}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.flex-col{flex-direction:column}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overscroll-none{overscroll-behavior:none}.rounded-\\[--bq-table--border-radius\\]{border-radius:var(--bq-table--border-radius)}.rounded-xs{border-radius:var(--bq-radius--xs)}.rounded-ee-\\[--bq-table--border-radius\\]{border-end-end-radius:var(--bq-table--border-radius)}.rounded-es-\\[--bq-table--border-radius\\]{border-end-start-radius:var(--bq-table--border-radius)}.rounded-se-\\[--bq-table--border-radius\\]{border-start-end-radius:var(--bq-table--border-radius)}.rounded-ss-\\[--bq-table--border-radius\\]{border-start-start-radius:var(--bq-table--border-radius)}.border-0{border-width:0}.border-s{border-width:var(--bq-stroke-s)}.border-solid{border-style:solid}.border-\\[--bq-table--border-color\\]{border-color:var(--bq-table--border-color)}.border-primary{border-color:var(--bq-stroke--primary)}.bg-\\[--bq-table--border-color\\]{background-color:var(--bq-table--border-color)}.bg-\\[--bq-table--row-selected-bg\\]{background-color:var(--bq-table--row-selected-bg)}.px-m{padding-left:var(--bq-spacing-m);padding-right:var(--bq-spacing-m)}.ps-\\[var\\(--bq-side-menu--width\\)\\]{padding-inline-start:var(--bq-side-menu--width)}.ps-\\[var\\(--bq-side-menu--width-collapse\\)\\]{padding-inline-start:var(--bq-side-menu--width-collapse)}.text-start{text-align:start}.font-\\[inherit\\]{font-family:inherit}.text-l{font-size:var(--bq-font-size--l)}.text-s{font-size:var(--bq-font-size--s)}.text-xl{font-size:var(--bq-font-size--xl)}.text-xs{font-size:var(--bq-font-size--xs)}.text-xxl{font-size:var(--bq-font-size--xxl)}.text-xxl2{font-size:var(--bq-font-size--xxl2)}.text-xxl3{font-size:var(--bq-font-size--xxl3)}.text-xxl4{font-size:var(--bq-font-size--xxl4)}.text-xxl5{font-size:var(--bq-font-size--xxl5)}.font-bold{font-weight:var(--bq-font-weight--bold)}.font-regular{font-weight:var(--bq-font-weight--regular)}.font-semibold{font-weight:var(--bq-font-weight--semibold)}.leading-regular{line-height:var(--bq-font-line-height--regular)}.leading-small{line-height:var(--bq-font-line-height--small)}.text-brand{color:var(--bq-text--brand)}.text-primary{color:var(--bq-text--primary)}.overline{text-decoration-line:overline}.no-underline{text-decoration-line:none}.outline{outline-style:solid}.outline-\\[length\\:--bq-table--border-width\\]{outline-width:var(--bq-table--border-width)}.outline-offset-\\[-1px\\]{outline-offset:-1px}.outline-offset-\\[-2px\\]{outline-offset:-2px}.outline-\\[--bq-table--row-selected-border\\]{outline-color:var(--bq-table--row-selected-border)}.transition-\\[padding-inline-start\\]{transition-duration:.15s;transition-property:padding-inline-start;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.content-empty{--tw-content:\"\";content:var(--tw-content)}.bs-1\\/2{block-size:50%}.bs-full{block-size:100%}.is-\\[--bq-table--border-width\\]{inline-size:var(--bq-table--border-width)}.is-full{inline-size:100%}.p-b-\\[--bq-table--cell-padding-block\\]{padding-block:var(--bq-table--cell-padding-block)}.p-b-\\[--bq-table--header-padding-block\\]{padding-block:var(--bq-table--header-padding-block)}.p-i-\\[--bq-table--cell-padding-inline\\]{padding-inline:var(--bq-table--cell-padding-inline)}.p-i-\\[--bq-table--header-padding-inline\\]{padding-inline:var(--bq-table--header-padding-inline)}.inset-bs-\\[--bq-table--header-divider-inset\\]{inset-block-start:var(--bq-table--header-divider-inset)}.inset-ie-0{inset-inline-end:0}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:100;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJuktqUYLkn8BJ.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:100;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJtEtqUYLknw.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJuktqUYLkn8BJ.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJtEtqUYLknw.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJuktqUYLkn8BJ.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJtEtqUYLknw.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJuktqUYLkn8BJ.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJtEtqUYLknw.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJuktqUYLkn8BJ.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJtEtqUYLknw.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJuktqUYLkn8BJ.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Outfit;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/outfit/v11/QGYvz_MVcBeNP4NJtEtqUYLknw.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:100;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiGyp8kv8JHgFVrLPTucXtAOvWDSHFF.woff2) format(\"woff2\");unicode-range:U+0900-097f,U+1cd0-1cf9,U+200c-200d,U+20a8,U+20b9,U+20f0,U+25cc,U+a830-a839,U+a8e0-a8ff,U+11b00-11b09}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:100;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiGyp8kv8JHgFVrLPTufntAOvWDSHFF.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:100;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiGyp8kv8JHgFVrLPTucHtAOvWDSA.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLDz8Z11lFd2JQEl8qw.woff2) format(\"woff2\");unicode-range:U+0900-097f,U+1cd0-1cf9,U+200c-200d,U+20a8,U+20b9,U+20f0,U+25cc,U+a830-a839,U+a8e0-a8ff,U+11b00-11b09}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLDz8Z1JlFd2JQEl8qw.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLDz8Z1xlFd2JQEk.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJbecnFHGPezSQ.woff2) format(\"woff2\");unicode-range:U+0900-097f,U+1cd0-1cf9,U+200c-200d,U+20a8,U+20b9,U+20f0,U+25cc,U+a830-a839,U+a8e0-a8ff,U+11b00-11b09}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJnecnFHGPezSQ.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLGT9Z11lFd2JQEl8qw.woff2) format(\"woff2\");unicode-range:U+0900-097f,U+1cd0-1cf9,U+200c-200d,U+20a8,U+20b9,U+20f0,U+25cc,U+a830-a839,U+a8e0-a8ff,U+11b00-11b09}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLGT9Z1JlFd2JQEl8qw.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLGT9Z1xlFd2JQEk.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6Z11lFd2JQEl8qw.woff2) format(\"woff2\");unicode-range:U+0900-097f,U+1cd0-1cf9,U+200c-200d,U+20a8,U+20b9,U+20f0,U+25cc,U+a830-a839,U+a8e0-a8ff,U+11b00-11b09}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6Z1JlFd2JQEl8qw.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLEj6Z1xlFd2JQEk.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z11lFd2JQEl8qw.woff2) format(\"woff2\");unicode-range:U+0900-097f,U+1cd0-1cf9,U+200c-200d,U+20a8,U+20b9,U+20f0,U+25cc,U+a830-a839,U+a8e0-a8ff,U+11b00-11b09}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1JlFd2JQEl8qw.woff2) format(\"woff2\");unicode-range:U+0100-02af,U+0304,U+0308,U+0329,U+1e00-1e9f,U+1ef2-1eff,U+2020,U+20a0-20ab,U+20ad-20c0,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-display:swap;font-family:Poppins;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1xlFd2JQEk.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+0304,U+0308,U+0329,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}.display{font-size:var(--bq-font-size--xxl5)}.display,.h1,h1{font-family:inherit;font-weight:var(--bq-font-weight--regular);line-height:var(--bq-font-line-height--small)}.h1,h1{font-size:var(--bq-font-size--xxl4)}.h2,h2{font-size:var(--bq-font-size--xxl3)}.h2,.h3,h2,h3{font-family:inherit;font-weight:var(--bq-font-weight--regular);line-height:var(--bq-font-line-height--small)}.h3,h3{font-size:var(--bq-font-size--xxl2)}.h4,h4{font-family:inherit;font-size:var(--bq-font-size--xxl);font-weight:var(--bq-font-weight--regular);line-height:var(--bq-font-line-height--small)}.h5,h5{font-size:var(--bq-font-size--xl)}.h5,.h6,h5,h6{font-family:inherit;font-weight:var(--bq-font-weight--regular);line-height:var(--bq-font-line-height--regular)}.h6,h6{font-size:var(--bq-font-size--l)}.caption,figcaption{font-size:var(--bq-font-size--s)}.caption,.overline,figcaption{font-family:inherit;font-weight:var(--bq-font-weight--regular);line-height:var(--bq-font-line-height--regular)}.overline{font-size:var(--bq-font-size--xs)}.caption.semibold,.display.semibold,.h1.semibold,.h2.semibold,.h3.semibold,.h4.semibold,.h5.semibold,.h6.semibold,.overline.semibold,caption.semibold,h1.semibold,h2.semibold,h3.semibold,h4.semibold,h5.semibold,h6.semibold{font-weight:var(--bq-font-weight--semibold)}.caption.bold,.display.bold,.h1.bold,.h2.bold,.h3.bold,.h4.bold,.h5.bold,.h6.bold,.overline.bold,caption.bold,h1.bold,h2.bold,h3.bold,h4.bold,h5.bold,h6.bold{font-weight:var(--bq-font-weight--bold)}.bq-link{border-radius:var(--bq-radius--xs);color:var(--bq-text--brand);display:inline-block;position:relative;text-decoration-line:none}.bq-link:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.bq-link:hover{color:color-mix(in srgb,var(--bq-text--brand),var(--bq-hover) 20%)}.bq-link:active{color:color-mix(in srgb,var(--bq-text--brand),var(--bq-active) 20%)}.bq-link:after{--tw-scale-x:0;--tw-content:\"\";border-radius:var(--bq-radius--full);bottom:0;display:block;height:2px;position:absolute;transition-duration:.3s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.bq-link:after,.bq-link:hover:after{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.bq-link:hover:after{--tw-scale-x:1;background-color:color-mix(in srgb,var(--bq-background--brand),var(--bq-hover) 20%)}.bq-link:active:after{background-color:color-mix(in srgb,var(--bq-background--brand),var(--bq-active) 20%);content:var(--tw-content)}.bq-body--side-menu{position:relative;transition-duration:.3s;transition-property:padding-inline-start;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bq-body--side-menu__collapse{padding-inline-start:var(--bq-side-menu--width-collapse)!important}.bq-body--side-menu__expand{padding-inline-start:var(--bq-side-menu--width)!important}.bq-notification-portal{inset-inline-end:0;max-height:100%;max-width:100%;position:fixed;top:0;z-index:50}.bq-notification-portal bq-notification{margin:1rem}.bq-toast-portal{display:flex;flex-direction:column;gap:var(--bq-spacing-s);left:0;max-height:100%;padding-left:var(--bq-spacing-m);padding-right:var(--bq-spacing-m);position:fixed;width:100%;z-index:50}@media (min-width:640px){.bq-toast-portal{left:auto;padding-left:0;padding-right:0;width:fit-content}}.bq-toast-portal.top-left{top:var(--bq-spacing-xxl2)}@media (min-width:640px){.bq-toast-portal.top-left{left:var(--bq-spacing-xxl2)}}.bq-toast-portal.top-center{top:var(--bq-spacing-xxl2)}@media (min-width:640px){.bq-toast-portal.top-center{--tw-translate-x:-50%;left:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}.bq-toast-portal.top-right{top:var(--bq-spacing-xxl2)}@media (min-width:640px){.bq-toast-portal.top-right{right:var(--bq-spacing-xxl2)}}.bq-toast-portal.bottom-left{bottom:var(--bq-spacing-xxl2)}@media (min-width:640px){.bq-toast-portal.bottom-left{left:var(--bq-spacing-xxl2)}}.bq-toast-portal.bottom-center{bottom:var(--bq-spacing-xxl2)}@media (min-width:640px){.bq-toast-portal.bottom-center{--tw-translate-x:-50%;left:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}.bq-toast-portal.bottom-right{bottom:var(--bq-spacing-xxl2)}@media (min-width:640px){.bq-toast-portal.bottom-right{right:var(--bq-spacing-xxl2)}}.bq-body--scroll-lock{overflow:hidden;overscroll-behavior:none}@supports(-webkit-touch-callout:none){.bq-body--scroll-lock{-webkit-overflow-scrolling:auto;overscroll-behavior:none}}:root{--bq-icon--direction:1;--bq-side-menu--width:16rem;--bq-side-menu--width-collapse:4.5rem}[dir=rtl]{--bq-icon--direction:-1}.bq-table{--bq-table--border-color:var(--bq-stroke--primary);--bq-table--border-style:solid;--bq-table--border-width:var(--bq-stroke-s);--bq-table--border-radius:var(--bq-radius--m);--bq-table--cell-padding-block:var(--bq-spacing-m);--bq-table--cell-padding-inline:var(--bq-spacing-m);--bq-table--header-divider-inset:25%;--bq-table--header-height:3.25rem;--bq-table--header-padding-block:var(--bq-spacing-xs);--bq-table--header-padding-inline:var(--bq-spacing-m);--bq-table--row-selected-bg:var(--bq-ui--brand-alt);--bq-table--row-selected-border:var(--bq-stroke--brand);font-size:var(--bq-font-size--s);inline-size:100%;overflow:hidden}.bq-table:not(.bordered){border-collapse:collapse}.bq-table:not(.bordered) th:after{--tw-content:\"\";background-color:var(--bq-table--border-color);block-size:50%;content:var(--tw-content);inline-size:var(--bq-table--border-width);inset-block-start:var(--bq-table--header-divider-inset);inset-inline-end:0;position:absolute}.bq-table:not(.bordered) tr.selected{border-radius:var(--bq-table--border-radius);outline-offset:-1px}.bq-table:not(.bordered) tr.selected td:first-child{border-end-start-radius:var(--bq-table--border-radius);border-start-start-radius:var(--bq-table--border-radius)}.bq-table:not(.bordered) tr.selected td:last-child{border-end-end-radius:var(--bq-table--border-radius);border-start-end-radius:var(--bq-table--border-radius)}.bq-table thead{border-color:var(--bq-table--border-color);border-style:solid;border-width:0;border-block-end-width:var(--bq-table--border-width);height:var(--bq-table--header-height)}.bq-table th{color:var(--bq-text--primary);font-weight:var(--bq-font-weight--semibold);padding-block:var(--bq-table--header-padding-block);padding-inline:var(--bq-table--header-padding-inline);position:relative;text-align:start}.bq-table tbody tr{border-color:var(--bq-table--border-color);border-style:solid;border-width:0;border-block-end-width:var(--bq-table--border-width);position:relative}.bq-table td{color:var(--bq-text--primary);padding-block:var(--bq-table--cell-padding-block);padding-inline:var(--bq-table--cell-padding-inline);position:relative;text-align:start}.bq-table tr.selected{background-color:var(--bq-table--row-selected-bg);border-block-end-width:0;outline-color:var(--bq-table--row-selected-border);outline-offset:-2px;outline-style:solid;outline-width:var(--bq-table--border-width)}.bq-table.compact{--bq-table--cell-padding-block:var(--bq-spacing-xs2);--bq-table--cell-padding-inline:var(--bq-spacing-xs2);--bq-table--header-height:2rem;--bq-table--header-padding-block:var(--bq-spacing-xs2);--bq-table--header-padding-inline:var(--bq-spacing-xs2)}.bq-table.bordered{--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-collapse:separate;border-color:var(--bq-stroke--primary);border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-width:var(--bq-stroke-s)}.bq-table.bordered td,.bq-table.bordered th{border-color:var(--bq-stroke--primary);border-style:solid;border-width:var(--bq-stroke-s)}.bq-table.bordered thead th:first-child{border-start-start-radius:var(--bq-table--border-radius)}.bq-table.bordered thead th:last-child{border-start-end-radius:var(--bq-table--border-radius)}.bq-table.bordered tbody tr:last-child td:first-child{border-end-start-radius:var(--bq-table--border-radius)}.bq-table.bordered tbody tr:last-child td:last-child{border-end-end-radius:var(--bq-table--border-radius)}.bq-table--container{block-size:100%;overflow-x:auto}.focus-visible\\:focus:focus-visible{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:bottom-0:after{bottom:0;content:var(--tw-content)}.after\\:block:after{content:var(--tw-content);display:block}.after\\:h-\\[2px\\]:after{content:var(--tw-content);height:2px}.after\\:w-full:after{content:var(--tw-content);width:100%}.after\\:scale-x-0:after{--tw-scale-x:0;content:var(--tw-content);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))}.after\\:rounded-full:after{border-radius:var(--bq-radius--full);content:var(--tw-content)}.after\\:transition-transform:after{content:var(--tw-content);transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:duration-300:after{content:var(--tw-content);transition-duration:.3s}.hover\\:text-hover-brand:hover{color:color-mix(in srgb,var(--bq-text--brand),var(--bq-hover) 20%)}.hover\\:after\\:scale-x-100:hover:after{--tw-scale-x:1;content:var(--tw-content);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))}.hover\\:after\\:bg-hover-brand:hover:after{background-color:color-mix(in srgb,var(--bq-background--brand),var(--bq-hover) 20%);content:var(--tw-content)}.active\\:after\\:bg-active-brand:active:after{background-color:color-mix(in srgb,var(--bq-background--brand),var(--bq-active) 20%);content:var(--tw-content)}@media (min-width:640px){.sm\\:left-1\\/2{left:50%}.sm\\:left-auto{left:auto}.sm\\:left-xxl2{left:var(--bq-spacing-xxl2)}.sm\\:right-xxl2{right:var(--bq-spacing-xxl2)}.sm\\:w-fit{width:fit-content}.sm\\:-translate-x-1\\/2{--tw-translate-x:-50%;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))}.sm\\:px-0{padding-left:0;padding-right:0}}";
30
30
 
31
31
  /*
32
- Stencil Client Platform v4.43.3 | MIT Licensed | https://stenciljs.com
32
+ Stencil Client Platform v4.43.5 | MIT Licensed | https://stenciljs.com
33
33
  */
34
34
 
35
35
 
@@ -1644,6 +1644,31 @@ var findCorrespondingNode = (node, type) => {
1644
1644
  return sibling;
1645
1645
  };
1646
1646
 
1647
+ // src/runtime/normalize-watchers.ts
1648
+ var normalizeWatchers = (raw) => {
1649
+ if (!raw) return void 0;
1650
+ const keys = Object.keys(raw);
1651
+ if (keys.length === 0) return void 0;
1652
+ let hasLegacy = false;
1653
+ for (const propName of keys) {
1654
+ if (hasLegacy) break;
1655
+ for (const h2 of raw[propName]) {
1656
+ if (typeof h2 === "string") {
1657
+ hasLegacy = true;
1658
+ break;
1659
+ }
1660
+ }
1661
+ }
1662
+ if (!hasLegacy) return raw;
1663
+ const out = {};
1664
+ for (const propName of keys) {
1665
+ out[propName] = raw[propName].map(
1666
+ (h2) => typeof h2 === "string" ? { [h2]: 0 } : h2
1667
+ );
1668
+ }
1669
+ return out;
1670
+ };
1671
+
1647
1672
  // src/utils/remote-value.ts
1648
1673
  var RemoteValue = class _RemoteValue {
1649
1674
  /**
@@ -1740,11 +1765,19 @@ var RemoteValue = class _RemoteValue {
1740
1765
  };
1741
1766
 
1742
1767
  // src/utils/serialize.ts
1768
+ function decodeBase64Unicode(base64) {
1769
+ const binary = atob(base64);
1770
+ const bytes = new Uint8Array(binary.length);
1771
+ for (let i2 = 0; i2 < binary.length; i2++) {
1772
+ bytes[i2] = binary.charCodeAt(i2);
1773
+ }
1774
+ return new TextDecoder().decode(bytes);
1775
+ }
1743
1776
  function deserializeProperty(value) {
1744
1777
  if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
1745
1778
  return value;
1746
1779
  }
1747
- return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
1780
+ return RemoteValue.fromLocalValue(JSON.parse(decodeBase64Unicode(value.slice(SERIALIZED_PREFIX.length))));
1748
1781
  }
1749
1782
 
1750
1783
  // src/runtime/parse-property-value.ts
@@ -2553,7 +2586,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
2553
2586
  if (cmpMeta.$members$ || BUILD.propChangeCallback) {
2554
2587
  {
2555
2588
  if (Cstr.watchers && !cmpMeta.$watchers$) {
2556
- cmpMeta.$watchers$ = Cstr.watchers;
2589
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
2557
2590
  }
2558
2591
  if (Cstr.deserializers && !cmpMeta.$deserializers$) {
2559
2592
  cmpMeta.$deserializers$ = Cstr.deserializers;
@@ -2683,11 +2716,13 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
2683
2716
  return;
2684
2717
  }
2685
2718
  const propFlags = members.find(([m]) => m === propName);
2686
- if (propFlags && propFlags[1][0] & 4 /* Boolean */) {
2719
+ const isBooleanTarget = propFlags && propFlags[1][0] & 4 /* Boolean */;
2720
+ const isSpuriousBooleanRemoval = isBooleanTarget && newValue === null && this[propName] === void 0;
2721
+ if (isBooleanTarget) {
2687
2722
  newValue = newValue === null || newValue === "false" ? false : true;
2688
2723
  }
2689
2724
  const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
2690
- if (newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
2725
+ if (!isSpuriousBooleanRemoval && newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
2691
2726
  this[propName] = newValue;
2692
2727
  }
2693
2728
  });
@@ -2732,7 +2767,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
2732
2767
  }
2733
2768
  if (!Cstr.isProxied) {
2734
2769
  {
2735
- cmpMeta.$watchers$ = Cstr.watchers;
2770
+ cmpMeta.$watchers$ = normalizeWatchers(Cstr.watchers);
2736
2771
  cmpMeta.$serializers$ = Cstr.serializers;
2737
2772
  cmpMeta.$deserializers$ = Cstr.deserializers;
2738
2773
  }
@@ -2909,7 +2944,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
2909
2944
  }
2910
2945
  lazyBundles.map((lazyBundle) => {
2911
2946
  lazyBundle[1].map((compactMeta) => {
2912
- var _a2, _b, _c;
2947
+ var _a2, _b;
2913
2948
  const cmpMeta = {
2914
2949
  $flags$: compactMeta[0],
2915
2950
  $tagName$: compactMeta[1],
@@ -2926,9 +2961,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
2926
2961
  cmpMeta.$attrsToReflect$ = [];
2927
2962
  }
2928
2963
  {
2929
- cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
2930
- cmpMeta.$serializers$ = (_b = compactMeta[5]) != null ? _b : {};
2931
- cmpMeta.$deserializers$ = (_c = compactMeta[6]) != null ? _c : {};
2964
+ cmpMeta.$watchers$ = normalizeWatchers(compactMeta[4]);
2965
+ cmpMeta.$serializers$ = (_a2 = compactMeta[5]) != null ? _a2 : {};
2966
+ cmpMeta.$deserializers$ = (_b = compactMeta[6]) != null ? _b : {};
2932
2967
  }
2933
2968
  const tagName = transformTag(cmpMeta.$tagName$);
2934
2969
  const HostElement = class extends HTMLElement {
@@ -3096,6 +3131,6 @@ exports.h = h;
3096
3131
  exports.promiseResolve = promiseResolve;
3097
3132
  exports.registerInstance = registerInstance;
3098
3133
  exports.setNonce = setNonce;
3099
- //# sourceMappingURL=index-BSrsKFVG.js.map
3134
+ //# sourceMappingURL=index-J9jJ-fFQ.js.map
3100
3135
 
3101
- //# sourceMappingURL=index-BSrsKFVG.js.map
3136
+ //# sourceMappingURL=index-J9jJ-fFQ.js.map