@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
@@ -26,6 +26,7 @@ export const config = {
26
26
  enableCache: true,
27
27
  cacheDir: resolvePath('../../.stencil'),
28
28
  sourceMap: true,
29
+ tsconfig: resolvePath('./tsconfig.lib.json'),
29
30
  globalStyle: resolvePath('./src/global/styles/default.scss'),
30
31
  plugins: [
31
32
  sass({
@@ -1 +1 @@
1
- {"version":3,"file":"stencil.config.js","sourceRoot":"","sources":["../../../packages/beeq/stencil.config.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from 'node:path';\n\nimport { angularOutputTarget as angular } from '@stencil/angular-output-target';\nimport type { Config } from '@stencil/core';\nimport { reactOutputTarget as react } from '@stencil/react-output-target';\nimport { sass } from '@stencil/sass';\nimport { vueOutputTarget as vue } from '@stencil/vue-output-target';\nimport tailwind, { type PluginConfigOpts, tailwindHMR } from 'stencil-tailwind-plugin';\n\nimport tailwindConf from '../../tailwind.config';\nimport { angularValueAccessorBindings, generateCustomElementsJson, vueComponentModels } from './src/tools';\n\nconst namespace = 'beeq';\nconst componentCorePackage = `@${namespace}/core`;\nconst customElementsDir = 'dist/components';\nconst resolvePath = (path: string) => resolve(__dirname, path).replace(/\\\\/g, '/');\n\nconst tailwindOpts: PluginConfigOpts = {\n postcss: resolvePath('../../postcss.config.js'),\n tailwindConf: tailwindConf,\n stripComments: true,\n};\n\nexport const config: Config = {\n namespace,\n taskQueue: 'async',\n buildDist: true,\n enableCache: true,\n cacheDir: resolvePath('../../.stencil'),\n sourceMap: true,\n globalStyle: resolvePath('./src/global/styles/default.scss'),\n plugins: [\n sass({\n includePaths: [resolvePath('../../node_modules'), resolvePath('src/global/styles')],\n injectGlobalPaths: [resolvePath('src/global/styles/mixins/index.scss')],\n outputStyle: 'compressed',\n sourceMap: true,\n sourceMapEmbed: true,\n sourceMapContents: true,\n silenceDeprecations: ['import'],\n }),\n tailwind(tailwindOpts),\n tailwindHMR({ tailwindConf }),\n ],\n outputTargets: [\n { type: 'docs-readme' },\n /**\n * The output custom-elements.json file is used by Storybook to generate the documentation.\n * @see packages/beeq/.storybook/custom-elements.json\n */\n { type: 'docs-custom', generator: generateCustomElementsJson },\n // NOTE: enable the standard custom-elements.json output target once it's stable and supports the features we need (e.g. right path in a monorepo, CSS properties, etc.)\n // { type: 'docs-custom-elements-manifest', file: `beeq/cem/cem.json` },\n {\n type: 'dist',\n copy: [\n { src: 'global/scripts', dest: 'scripts', warn: true },\n { src: '../README.md', dest: '../../README.md', warn: true },\n { src: '../cem/*.*', dest: '../', warn: true },\n ],\n },\n { type: 'dist-hydrate-script', dir: 'dist/hydrate' },\n {\n type: 'dist-custom-elements',\n customElementsExportBehavior: 'single-export-module',\n externalRuntime: false,\n dir: customElementsDir,\n minify: true,\n },\n {\n type: 'www',\n copy: [\n { src: 'global/assets', dest: 'assets' },\n { src: 'global/scripts', dest: 'scripts' },\n ],\n serviceWorker: null, // disable service workers\n },\n angular({\n /* --------------------------- Angular output target -------------------------- */\n componentCorePackage,\n outputType: 'component', // Generate many component wrappers tied to a single Angular module (lazy/hydrated approach)\n directivesProxyFile: resolvePath('../beeq-angular/src/directives/components.ts'),\n directivesArrayFile: resolvePath('../beeq-angular/src/directives/index.ts'),\n valueAccessorConfigs: angularValueAccessorBindings,\n inlineProperties: true,\n customElementsDir,\n }),\n angular({\n /* -------------------- Angular Standalone output target -------------------- */\n componentCorePackage,\n outputType: 'standalone', // Generate a component with the standalone flag set to true.\n directivesProxyFile: resolvePath('../beeq-angular/standalone/src/directives/components.ts'),\n directivesArrayFile: resolvePath('../beeq-angular/standalone/src/directives/index.ts'),\n valueAccessorConfigs: angularValueAccessorBindings,\n customElementsDir,\n }),\n react({\n /* --------------------------- React output target -------------------------- */\n outDir: resolvePath('../beeq-react/src/'),\n customElementsDir,\n }),\n react({\n /* ------------------------- React SSR output target ------------------------ */\n outDir: resolvePath('../beeq-react/ssr'),\n clientModule: '@beeq/react',\n hydrateModule: '@beeq/core/dist/hydrate',\n customElementsDir,\n }),\n vue({\n /* ---------------------------- Vue output target --------------------------- */\n componentCorePackage,\n proxiesFile: resolvePath('../beeq-vue/src/components.ts'),\n includeImportCustomElements: true,\n includePolyfills: false,\n includeDefineCustomElements: false,\n componentModels: vueComponentModels,\n // hydrateModule: '@beeq/core/dist/hydrate',\n customElementsDir,\n }),\n ],\n extras: {\n /**\n * Details:\n * https://stenciljs.com/docs/config-extras\n */\n enableImportInjection: true,\n experimentalScopedSlotChanges: true,\n experimentalSlotFixes: true,\n },\n testing: {\n browserHeadless: 'shell',\n browserArgs: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'],\n },\n preamble: 'Built by Endavans\\n© https://beeq.design - Apache 2 License.',\n watchIgnoredRegex: /(custom-elements\\.)((d\\.ts)|(json))$/g,\n devServer: {\n openBrowser: false,\n port: 8001,\n reloadStrategy: 'pageReload',\n strictPort: true,\n },\n};\n"]}
1
+ {"version":3,"file":"stencil.config.js","sourceRoot":"","sources":["../../../packages/beeq/stencil.config.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from 'node:path';\n\nimport { angularOutputTarget as angular } from '@stencil/angular-output-target';\nimport type { Config } from '@stencil/core';\nimport { reactOutputTarget as react } from '@stencil/react-output-target';\nimport { sass } from '@stencil/sass';\nimport { vueOutputTarget as vue } from '@stencil/vue-output-target';\nimport tailwind, { type PluginConfigOpts, tailwindHMR } from 'stencil-tailwind-plugin';\n\nimport tailwindConf from '../../tailwind.config';\nimport { angularValueAccessorBindings, generateCustomElementsJson, vueComponentModels } from './src/tools';\n\nconst namespace = 'beeq';\nconst componentCorePackage = `@${namespace}/core`;\nconst customElementsDir = 'dist/components';\nconst resolvePath = (path: string) => resolve(__dirname, path).replace(/\\\\/g, '/');\n\nconst tailwindOpts: PluginConfigOpts = {\n postcss: resolvePath('../../postcss.config.js'),\n tailwindConf: tailwindConf,\n stripComments: true,\n};\n\nexport const config: Config = {\n namespace,\n taskQueue: 'async',\n buildDist: true,\n enableCache: true,\n cacheDir: resolvePath('../../.stencil'),\n sourceMap: true,\n tsconfig: resolvePath('./tsconfig.lib.json'),\n globalStyle: resolvePath('./src/global/styles/default.scss'),\n plugins: [\n sass({\n includePaths: [resolvePath('../../node_modules'), resolvePath('src/global/styles')],\n injectGlobalPaths: [resolvePath('src/global/styles/mixins/index.scss')],\n outputStyle: 'compressed',\n sourceMap: true,\n sourceMapEmbed: true,\n sourceMapContents: true,\n silenceDeprecations: ['import'],\n }),\n tailwind(tailwindOpts),\n tailwindHMR({ tailwindConf }),\n ],\n outputTargets: [\n { type: 'docs-readme' },\n /**\n * The output custom-elements.json file is used by Storybook to generate the documentation.\n * @see packages/beeq/.storybook/custom-elements.json\n */\n { type: 'docs-custom', generator: generateCustomElementsJson },\n // NOTE: enable the standard custom-elements.json output target once it's stable and supports the features we need (e.g. right path in a monorepo, CSS properties, etc.)\n // { type: 'docs-custom-elements-manifest', file: `beeq/cem/cem.json` },\n {\n type: 'dist',\n copy: [\n { src: 'global/scripts', dest: 'scripts', warn: true },\n { src: '../README.md', dest: '../../README.md', warn: true },\n { src: '../cem/*.*', dest: '../', warn: true },\n ],\n },\n { type: 'dist-hydrate-script', dir: 'dist/hydrate' },\n {\n type: 'dist-custom-elements',\n customElementsExportBehavior: 'single-export-module',\n externalRuntime: false,\n dir: customElementsDir,\n minify: true,\n },\n {\n type: 'www',\n copy: [\n { src: 'global/assets', dest: 'assets' },\n { src: 'global/scripts', dest: 'scripts' },\n ],\n serviceWorker: null, // disable service workers\n },\n angular({\n /* --------------------------- Angular output target -------------------------- */\n componentCorePackage,\n outputType: 'component', // Generate many component wrappers tied to a single Angular module (lazy/hydrated approach)\n directivesProxyFile: resolvePath('../beeq-angular/src/directives/components.ts'),\n directivesArrayFile: resolvePath('../beeq-angular/src/directives/index.ts'),\n valueAccessorConfigs: angularValueAccessorBindings,\n inlineProperties: true,\n customElementsDir,\n }),\n angular({\n /* -------------------- Angular Standalone output target -------------------- */\n componentCorePackage,\n outputType: 'standalone', // Generate a component with the standalone flag set to true.\n directivesProxyFile: resolvePath('../beeq-angular/standalone/src/directives/components.ts'),\n directivesArrayFile: resolvePath('../beeq-angular/standalone/src/directives/index.ts'),\n valueAccessorConfigs: angularValueAccessorBindings,\n customElementsDir,\n }),\n react({\n /* --------------------------- React output target -------------------------- */\n outDir: resolvePath('../beeq-react/src/'),\n customElementsDir,\n }),\n react({\n /* ------------------------- React SSR output target ------------------------ */\n outDir: resolvePath('../beeq-react/ssr'),\n clientModule: '@beeq/react',\n hydrateModule: '@beeq/core/dist/hydrate',\n customElementsDir,\n }),\n vue({\n /* ---------------------------- Vue output target --------------------------- */\n componentCorePackage,\n proxiesFile: resolvePath('../beeq-vue/src/components.ts'),\n includeImportCustomElements: true,\n includePolyfills: false,\n includeDefineCustomElements: false,\n componentModels: vueComponentModels,\n // hydrateModule: '@beeq/core/dist/hydrate',\n customElementsDir,\n }),\n ],\n extras: {\n /**\n * Details:\n * https://stenciljs.com/docs/config-extras\n */\n enableImportInjection: true,\n experimentalScopedSlotChanges: true,\n experimentalSlotFixes: true,\n },\n testing: {\n browserHeadless: 'shell',\n browserArgs: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'],\n },\n preamble: 'Built by Endavans\\n© https://beeq.design - Apache 2 License.',\n watchIgnoredRegex: /(custom-elements\\.)((d\\.ts)|(json))$/g,\n devServer: {\n openBrowser: false,\n port: 8001,\n reloadStrategy: 'pageReload',\n strictPort: true,\n },\n};\n"]}
@@ -45,7 +45,7 @@ import type { EventEmitter } from '../../stencil-public-runtime';
45
45
  */
46
46
  export declare class BqCheckbox {
47
47
  private inputElem;
48
- private prevCheckedValue;
48
+ private userTriggeredChange;
49
49
  el: HTMLBqCheckboxElement;
50
50
  internals: ElementInternals;
51
51
  /** If true checkbox displays background on hover */
@@ -66,6 +66,7 @@ export declare class BqCheckbox {
66
66
  required?: boolean;
67
67
  /** A string representing the value of the checkbox. Primarily used to differentiate a list of related checkboxes that have the same name. */
68
68
  value: string;
69
+ handleCheckedPropChange(): void;
69
70
  handleIndeterminatePropChange(): void;
70
71
  handleRequiredPropChange(): void;
71
72
  /** Handler to be called when the checkbox state changes */
@@ -76,7 +77,6 @@ export declare class BqCheckbox {
76
77
  bqFocus: EventEmitter<HTMLBqCheckboxElement>;
77
78
  /** Handler to be called when the checkbox loses focus */
78
79
  bqBlur: EventEmitter<HTMLBqCheckboxElement>;
79
- componentWillLoad(): void;
80
80
  componentDidUpdate(): void;
81
81
  formAssociatedCallback(): void;
82
82
  formResetCallback(): void;
@@ -192,6 +192,7 @@ export declare class BqInput {
192
192
  /** The input value, it can be used to reset the input to a previous value */
193
193
  value: TInputValue;
194
194
  handleValueChange(): void;
195
+ handleRequiredPropChange(): void;
195
196
  /** Callback handler emitted when the input loses focus */
196
197
  bqBlur: EventEmitter<HTMLBqInputElement>;
197
198
  /**
@@ -36,6 +36,7 @@ export type TSelectValue = string | string[];
36
36
  * @attr {boolean} disabled - Indicates whether the Select input is disabled and cannot be interacted with.
37
37
  * @attr {number} distance - Represents the distance (gutter or margin) between the Select panel and the input element.
38
38
  * @attr {string} form - The ID of the form that Select input field belongs to.
39
+ * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).
39
40
  * @attr {boolean} keep-open-on-select - If `true`, the Select panel will remain open after a selection is made.
40
41
  * @attr {number} max-tags-visible - The maximum number of tags to display when multiple selection is enabled.
41
42
  * @attr {boolean} multiple - If `true`, the Select input will allow multiple selections.
@@ -147,6 +148,8 @@ export declare class BqSelect {
147
148
  distance?: number;
148
149
  /** The ID of the form that the Select input belongs to. */
149
150
  form?: string;
151
+ /** The native form validation message (mandatory if `required` is set) */
152
+ formValidationMessage?: string;
150
153
  /** If true, the Select panel will remain open after a selection is made. */
151
154
  keepOpenOnSelect?: boolean;
152
155
  /** The Select input name. */
@@ -187,6 +190,7 @@ export declare class BqSelect {
187
190
  /** The select input value, it can be used to reset the field to a previous value */
188
191
  value: TSelectValue;
189
192
  handleValueChange(): void;
193
+ handleRequiredPropChange(): void;
190
194
  /** Callback handler emitted when the Select input loses focus */
191
195
  bqBlur: EventEmitter<HTMLBqSelectElement>;
192
196
  /** Callback handler emitted when the selected value has been cleared */
@@ -257,6 +261,7 @@ export declare class BqSelect {
257
261
  private updateDisplayLabel;
258
262
  private getOptionLabel;
259
263
  private getItemTextContent;
264
+ private updateFormValidity;
260
265
  private get options();
261
266
  private get displayPlaceholder();
262
267
  private get displayTags();
@@ -2050,6 +2050,7 @@ export namespace Components {
2050
2050
  * @attr {boolean} disabled - Indicates whether the Select input is disabled and cannot be interacted with.
2051
2051
  * @attr {number} distance - Represents the distance (gutter or margin) between the Select panel and the input element.
2052
2052
  * @attr {string} form - The ID of the form that Select input field belongs to.
2053
+ * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).
2053
2054
  * @attr {boolean} keep-open-on-select - If `true`, the Select panel will remain open after a selection is made.
2054
2055
  * @attr {number} max-tags-visible - The maximum number of tags to display when multiple selection is enabled.
2055
2056
  * @attr {boolean} multiple - If `true`, the Select input will allow multiple selections.
@@ -2137,6 +2138,10 @@ export namespace Components {
2137
2138
  * The ID of the form that the Select input belongs to.
2138
2139
  */
2139
2140
  "form"?: string;
2141
+ /**
2142
+ * The native form validation message (mandatory if `required` is set)
2143
+ */
2144
+ "formValidationMessage"?: string;
2140
2145
  /**
2141
2146
  * If true, the Select panel will remain open after a selection is made.
2142
2147
  * @default false
@@ -4664,6 +4669,7 @@ declare global {
4664
4669
  * @attr {boolean} disabled - Indicates whether the Select input is disabled and cannot be interacted with.
4665
4670
  * @attr {number} distance - Represents the distance (gutter or margin) between the Select panel and the input element.
4666
4671
  * @attr {string} form - The ID of the form that Select input field belongs to.
4672
+ * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).
4667
4673
  * @attr {boolean} keep-open-on-select - If `true`, the Select panel will remain open after a selection is made.
4668
4674
  * @attr {number} max-tags-visible - The maximum number of tags to display when multiple selection is enabled.
4669
4675
  * @attr {boolean} multiple - If `true`, the Select input will allow multiple selections.
@@ -7577,6 +7583,7 @@ declare namespace LocalJSX {
7577
7583
  * @attr {boolean} disabled - Indicates whether the Select input is disabled and cannot be interacted with.
7578
7584
  * @attr {number} distance - Represents the distance (gutter or margin) between the Select panel and the input element.
7579
7585
  * @attr {string} form - The ID of the form that Select input field belongs to.
7586
+ * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).
7580
7587
  * @attr {boolean} keep-open-on-select - If `true`, the Select panel will remain open after a selection is made.
7581
7588
  * @attr {number} max-tags-visible - The maximum number of tags to display when multiple selection is enabled.
7582
7589
  * @attr {boolean} multiple - If `true`, the Select input will allow multiple selections.
@@ -7658,6 +7665,10 @@ declare namespace LocalJSX {
7658
7665
  * The ID of the form that the Select input belongs to.
7659
7666
  */
7660
7667
  "form"?: string;
7668
+ /**
7669
+ * The native form validation message (mandatory if `required` is set)
7670
+ */
7671
+ "formValidationMessage"?: string;
7661
7672
  /**
7662
7673
  * If true, the Select panel will remain open after a selection is made.
7663
7674
  * @default false
@@ -9073,6 +9084,7 @@ declare namespace LocalJSX {
9073
9084
  "disableClear": boolean;
9074
9085
  "distance": number;
9075
9086
  "form": string;
9087
+ "formValidationMessage": string;
9076
9088
  "keepOpenOnSelect": boolean;
9077
9089
  "name": string;
9078
9090
  "maxTagsVisible": number;
@@ -10252,6 +10264,7 @@ declare module "@stencil/core" {
10252
10264
  * @attr {boolean} disabled - Indicates whether the Select input is disabled and cannot be interacted with.
10253
10265
  * @attr {number} distance - Represents the distance (gutter or margin) between the Select panel and the input element.
10254
10266
  * @attr {string} form - The ID of the form that Select input field belongs to.
10267
+ * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).
10255
10268
  * @attr {boolean} keep-open-on-select - If `true`, the Select panel will remain open after a selection is made.
10256
10269
  * @attr {number} max-tags-visible - The maximum number of tags to display when multiple selection is enabled.
10257
10270
  * @attr {boolean} multiple - If `true`, the Select input will allow multiple selections.
@@ -0,0 +1,2 @@
1
+ declare const _default: Promise<import("vite").UserConfig>;
2
+ export default _default;
@@ -1,8 +1,9 @@
1
- import type { E2EPage } from '@stencil/core/testing';
2
1
  /**
3
- * Enhances page to retrieve element style by a given selector
4
- * @param {E2EPage} page - stencil instance of puppeteer page
5
- * @param {String} selector - selector to be passed to querySelector, it supports stencil `>>>` selector
6
- * @returns {Object} style declaration
2
+ * Retrieves computed CSS styles for an element, with support for shadow DOM piercing via `>>>` selector.
3
+ * Works directly with the DOM (designed for browser-mode e2e tests).
4
+ *
5
+ * @param {string} selector - CSS selector, supports `>>>` to pierce into shadow DOM
6
+ * @param {ReadonlyArray<T>} [filter] - Optional list of CSS property names to return
7
+ * @returns {Pick<CSSStyleDeclaration, T>} The computed style (filtered if specified)
7
8
  */
8
- export declare const computedStyle: <T extends keyof CSSStyleDeclaration>(page: E2EPage, selector: string, filter?: ReadonlyArray<T>) => Promise<Pick<CSSStyleDeclaration, T>>;
9
+ export declare const computedStyle: <T extends keyof CSSStyleDeclaration>(selector: string, filter?: ReadonlyArray<T>) => Pick<CSSStyleDeclaration, T>;
@@ -9,4 +9,4 @@ export type BqHTMLTagNameMap = keyof {
9
9
  * @param {Object} attributes - attributes that will be set on element instance
10
10
  * @returns {Object} attributes that were set on element instance
11
11
  */
12
- export declare const setProperties: <T extends keyof HTMLElementTagNameMap = BqHTMLTagNameMap>(page: E2EPage, element: T, attributes: Partial<HTMLElementTagNameMap[T]>) => Promise<Record<string, unknown>>;
12
+ export declare const setProperties: <T extends keyof HTMLElementTagNameMap = BqHTMLTagNameMap>(page: E2EPage, element: T, attributes: Partial<HTMLElementTagNameMap[T]>) => Promise<any>;
@@ -1 +1,5 @@
1
- export { setTimeout as sleep } from 'node:timers/promises';
1
+ /**
2
+ * Returns a promise that resolves after the given number of milliseconds.
3
+ * Compatible with both Node.js (unit tests) and browser environments (e2e tests).
4
+ */
5
+ export declare const sleep: (ms: number) => Promise<void>;
@@ -1070,6 +1070,7 @@ export declare namespace JSXBase {
1070
1070
  importance?: 'low' | 'auto' | 'high';
1071
1071
  height?: number | string;
1072
1072
  loading?: 'lazy' | 'auto' | 'eager';
1073
+ referrerPolicy?: ReferrerPolicy;
1073
1074
  sizes?: string;
1074
1075
  src?: string;
1075
1076
  srcSet?: string;
@@ -0,0 +1,81 @@
1
+ /*!
2
+ * Built by Endavans
3
+ * © https://beeq.design - Apache 2 License.
4
+ */
5
+ import { readFile } from "node:fs/promises";
6
+ import { resolve } from "node:path";
7
+ import { defineVitestConfig } from "@stencil/vitest/config";
8
+ import { playwright } from "@vitest/browser-playwright";
9
+ const resolvePath = (path) => resolve(__dirname, path).replace(/\\/g, '/');
10
+ const SVG_DIR = resolvePath('../../dist/beeq/dist/beeq/svg');
11
+ /**
12
+ * Vite plugin to serve BEEQ SVG icons from the local dist directory.
13
+ * Maps `/svg/*` requests to `dist/beeq/dist/beeq/svg/*` files.
14
+ */
15
+ function serveBeeqSvg() {
16
+ return {
17
+ name: 'serve-beeq-svg',
18
+ configureServer(server) {
19
+ server.middlewares.use((req, res, next) => {
20
+ if (!req.url?.startsWith('/svg/') || !req.url.endsWith('.svg'))
21
+ return next();
22
+ const filePath = resolve(SVG_DIR, req.url.slice(5)).replace(/\\/g, '/');
23
+ // Prevent path traversal
24
+ if (!filePath.startsWith(SVG_DIR))
25
+ return next();
26
+ readFile(filePath)
27
+ .then((content) => {
28
+ res.setHeader('Content-Type', 'image/svg+xml');
29
+ res.setHeader('Cache-Control', 'public, max-age=31536000');
30
+ res.end(content);
31
+ })
32
+ .catch(() => next());
33
+ });
34
+ },
35
+ };
36
+ }
37
+ export default defineVitestConfig({
38
+ stencilConfig: resolvePath('./stencil.config.ts'),
39
+ test: {
40
+ projects: [
41
+ {
42
+ test: {
43
+ name: 'spec',
44
+ include: ['src/**/*.spec.{ts,tsx}'],
45
+ environment: 'stencil',
46
+ setupFiles: [resolvePath('./vitest-spec-setup.ts')],
47
+ },
48
+ },
49
+ {
50
+ // The browser project needs its own plugins array — top-level plugins
51
+ // aren't forwarded to the browser's Vite dev server.
52
+ plugins: [serveBeeqSvg()],
53
+ test: {
54
+ name: 'e2e',
55
+ include: ['src/**/*.e2e.tsx'],
56
+ setupFiles: [resolvePath('./vitest-e2e-setup.ts')],
57
+ browser: {
58
+ enabled: true,
59
+ provider: playwright(),
60
+ headless: true,
61
+ instances: [{ browser: 'chromium' }],
62
+ },
63
+ },
64
+ },
65
+ ],
66
+ coverage: {
67
+ provider: 'istanbul',
68
+ reportsDirectory: resolvePath('coverage'),
69
+ reporter: ['text', 'html', 'lcov'],
70
+ include: ['src/shared/test-utils/**/*.{ts,tsx}', 'src/shared/utils/**/*.{ts,tsx}'],
71
+ exclude: [
72
+ 'src/**/*.{spec,e2e}.{ts,tsx}',
73
+ 'src/**/*.stories.tsx',
74
+ 'src/components.d.ts',
75
+ 'src/global.d.ts',
76
+ 'src/index.ts',
77
+ ],
78
+ },
79
+ },
80
+ });
81
+ //# sourceMappingURL=vitest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../../../packages/beeq/vitest.config.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\nimport { defineVitestConfig } from '@stencil/vitest/config';\nimport { playwright } from '@vitest/browser-playwright';\nimport type { Plugin } from 'vite';\n\nconst resolvePath = (path: string) => resolve(__dirname, path).replace(/\\\\/g, '/');\nconst SVG_DIR = resolvePath('../../dist/beeq/dist/beeq/svg');\n\n/**\n * Vite plugin to serve BEEQ SVG icons from the local dist directory.\n * Maps `/svg/*` requests to `dist/beeq/dist/beeq/svg/*` files.\n */\nfunction serveBeeqSvg(): Plugin {\n return {\n name: 'serve-beeq-svg',\n configureServer(server) {\n server.middlewares.use((req, res, next) => {\n if (!req.url?.startsWith('/svg/') || !req.url.endsWith('.svg')) return next();\n\n const filePath = resolve(SVG_DIR, req.url.slice(5)).replace(/\\\\/g, '/');\n // Prevent path traversal\n if (!filePath.startsWith(SVG_DIR)) return next();\n\n readFile(filePath)\n .then((content) => {\n res.setHeader('Content-Type', 'image/svg+xml');\n res.setHeader('Cache-Control', 'public, max-age=31536000');\n res.end(content);\n })\n .catch(() => next());\n });\n },\n };\n}\n\nexport default defineVitestConfig({\n stencilConfig: resolvePath('./stencil.config.ts'),\n test: {\n projects: [\n {\n test: {\n name: 'spec',\n include: ['src/**/*.spec.{ts,tsx}'],\n environment: 'stencil',\n setupFiles: [resolvePath('./vitest-spec-setup.ts')],\n },\n },\n {\n // The browser project needs its own plugins array — top-level plugins\n // aren't forwarded to the browser's Vite dev server.\n plugins: [serveBeeqSvg()],\n test: {\n name: 'e2e',\n include: ['src/**/*.e2e.tsx'],\n setupFiles: [resolvePath('./vitest-e2e-setup.ts')],\n browser: {\n enabled: true,\n provider: playwright(),\n headless: true,\n instances: [{ browser: 'chromium' }],\n },\n },\n },\n ],\n coverage: {\n provider: 'istanbul',\n reportsDirectory: resolvePath('coverage'),\n reporter: ['text', 'html', 'lcov'],\n include: ['src/shared/test-utils/**/*.{ts,tsx}', 'src/shared/utils/**/*.{ts,tsx}'],\n exclude: [\n 'src/**/*.{spec,e2e}.{ts,tsx}',\n 'src/**/*.stories.tsx',\n 'src/components.d.ts',\n 'src/global.d.ts',\n 'src/index.ts',\n ],\n },\n },\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beeq/core",
3
- "version": "1.12.4-beta.2",
3
+ "version": "1.12.4",
4
4
  "license": "Apache-2.0",
5
5
  "description": "BEEQ, a Design System components ruled by Endavan developers :)",
6
6
  "main": "./dist/index.cjs.js",
@@ -1 +0,0 @@
1
- {"version":3,"names":["bqInputCss","BqInput","helperTextElem","inputElem","labelElem","prefixElem","suffixElem","debounceBqInput","fallbackInputId","internals","hasHelperText","hasLabel","hasPrefix","hasSuffix","hasValue","autocapitalize","autocomplete","autofocus","clearButtonLabel","debounceTime","disabled","disableClear","form","formValidationMessage","inputmode","max","maxlength","min","minlength","name","pattern","placeholder","readonly","required","step","type","validationStatus","value","handleValueChange","this","Array","isArray","some","val","length","setFormValue","join","isDefined","isNil","undefined","bqBlur","bqChange","bqClear","bqFocus","bqInput","componentWillLoad","componentDidLoad","handleSlotChange","formAssociatedCallback","toString","updateFormValidity","formResetCallback","handleClear","handleBlur","emit","el","handleFocus","handleInput","ev","cancel","isHTMLElement","target","Number","debounce","handleChange","handleClearClick","stopPropagation","focus","states","clear","trim","add","setValidity","valueMissing","hasSlotContent","render","h","key","class","part","htmlFor","ref","onSlotchange","spanElem","id","inputMode","maxLength","minLength","onBlur","onChange","onFocus","onInput","readOnly","appearance","border","exportparts","label","onBqClick","onlyIcon","size","divElem"],"sources":["../../packages/beeq/src/components/input/scss/bq-input.scss?tag=bq-input&encapsulation=shadow","../../packages/beeq/src/components/input/bq-input.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Input styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-input.variables';\n\n:host {\n @apply block is-full;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Label and Helper text */\n/* -------------------------------------------------------------------------- */\n\n.bq-input--label {\n @apply flex flex-grow items-center m-be-[--bq-input--label-margin-bottom];\n @apply text-[length:--bq-input--label-text-size] text-[color:--bq-input--label-text-color];\n}\n\n.bq-input--helper-text {\n @apply text-[length:--bq-input--helper-text-size] text-[color:--bq-input--helper-text-color] m-bs-[--bq-input--helper-margin-top];\n}\n\n.bq-input--helper-text.validation-error {\n @apply text-danger;\n}\n\n.bq-input--helper-text.validation-success {\n @apply text-success;\n}\n\n.bq-input--helper-text.validation-warning {\n @apply text-warning;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Input group control */\n/* -------------------------------------------------------------------------- */\n\n.bq-input--control {\n @apply flex items-center transition-[border-color,box-shadow] is-full;\n // Border\n @apply rounded-[--bq-input--border-radius] border-[length:--bq-input--border-width] border-[color:--bq-input--border-color];\n // Padding\n @apply pe-[--bq-input--padding-end] ps-[--bq-input--padding-start] p-b-[--bq-input--paddingY];\n // Text\n @apply text-[length:--bq-input--text-size] text-[color:--bq-input--text-color] placeholder:text-[color:--bq-input--text-placeholder-color];\n // Hover\n @apply [&:not(.disabled):not(:focus-within)]:hover:border-hover-brand;\n\n border-style: var(--bq-input--border-style);\n\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-input--border-color-focus);\n\n @apply focus border-[color:--bq-input--border-color-focus];\n }\n\n // Enable clear button whenever the input group control is hovered or has focus\n &:not(.disabled):hover,\n &:not(.disabled):focus-within {\n .bq-input--control__clear {\n @apply inline-block;\n }\n }\n}\n\n.bq-input--control.disabled {\n @apply cursor-not-allowed opacity-60;\n}\n\n/* ------------------------------- Validation ------------------------------- */\n\n.bq-input--control.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-input--control.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-input--control.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/* Native HTML Input */\n/* -------------------------------------------------------------------------- */\n\n.bq-input--control__input {\n @apply flex-auto cursor-inherit appearance-none bg-inherit font-inherit text-[length:inherit] text-inherit;\n @apply border-none min-bs-[--bq-input--icon-size] min-is-0 p-b-0 p-i-0 m-b-0 m-i-0 focus:outline-none focus-visible:outline-none;\n\n box-shadow: none;\n font-weight: inherit;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Clear button */\n/* -------------------------------------------------------------------------- */\n\n.bq-input--control__clear::part(button) {\n // Since the clear button is inside the input group control,\n // we need to reset the focus ring styles\n --bq-ring-width: initial;\n --bq-ring-offset-width: initial;\n --bq-ring-color-focus: initial;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Prefix and suffix */\n/* -------------------------------------------------------------------------- */\n\n.bq-input--control__prefix,\n.bq-input--control__suffix {\n @apply pointer-events-none flex items-center text-[color:--bq-input--text-color];\n}\n\n.bq-input--control__prefix {\n @apply me-[--bq-input--gap];\n}\n\n.bq-input--control__suffix {\n @apply ms-[--bq-input--gap];\n}\n\n/* -------------------------------------------------------------------------- */\n/* Slotted and internal icons */\n/* -------------------------------------------------------------------------- */\n\nbq-icon,\n::slotted(bq-icon) {\n --bq-icon--size: var(--bq-input--icon-size) !important;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Hide webkit clear button */\n/* -------------------------------------------------------------------------- */\n\n/* Remove clear controls from search input */\n\n.bq-input--control__input::-moz-search-cancel {\n @apply hidden appearance-none;\n}\n\n.bq-input--control__input::-webkit-search-decoration,\n.bq-input--control__input::-webkit-search-cancel-button,\n.bq-input--control__input::-webkit-search-results-button,\n.bq-input--control__input::-webkit-search-results-decoration {\n @apply hidden appearance-none;\n}\n\n/* Remove native control extra padding from input date and datetime */\n\n.bq-input--control__input::-webkit-datetime-edit-fields-wrapper,\n.bq-input--control__input::-webkit-datetime-edit,\n.bq-input--control__input::-webkit-datetime-edit-year-field,\n.bq-input--control__input::-webkit-datetime-edit-month-field,\n.bq-input--control__input::-webkit-datetime-edit-day-field,\n.bq-input--control__input::-webkit-datetime-edit-hour-field,\n.bq-input--control__input::-webkit-datetime-edit-minute-field,\n.bq-input--control__input::-webkit-datetime-edit-second-field,\n.bq-input--control__input::-webkit-datetime-edit-millisecond-field,\n.bq-input--control__input::-webkit-datetime-edit-meridiem-field {\n @apply p-b-0 p-i-0;\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { AttachInternals, Component, Element, Event, h, Prop, State, Watch } from '@stencil/core';\n\nimport { debounce, hasSlotContent, isDefined, isHTMLElement, isNil, type TDebounce } from '../../shared/utils';\nimport type { TInputType, TInputValidation, TInputValue } from './bq-input.types';\n\n/**\n * The Input component is a fundamental user interface element that allows users to input data by typing it into a text field.\n * It is commonly used in web and mobile applications for various purposes, such as collecting user information, search inputs, and login forms.\n *\n * @example How to use it\n * ```html\n * <bq-input name=\"username\" label=\"Username\" placeholder=\"Enter your username\"></bq-input>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/980362-input\n * @status stable\n *\n * @dependency bq-button\n * @dependency bq-icon\n *\n * @attr {string} autocapitalize - Controls whether or not the input field should be capitalized and how.\n * @attr {string} autocomplete - Specifies whether or not the input field should have autocomplete enabled.\n * @attr {boolean} autofocus - If true, the input will be focused on component render.\n * @attr {string} clear-button-label - The clear button aria label.\n * @attr {number} debounce-time - The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * @attr {boolean} disabled - Indicates whether the input is disabled or not.\n * @attr {boolean} disable-clear - If true, the clear button won't be displayed.\n * @attr {string} form - The ID of the form that the input field belongs to.\n * @attr {string} form-validation-message - The native form validation message (mandatory if `required` is set).\n * @attr {string} inputmode - The inputmode attribute specifies what kind of input mechanism would be most helpful for users entering content into the input field.\n * @attr {number | string} max - The maximum value that the input field can accept.\n * @attr {number} maxlength - The maximum number of characters that the input field can accept.\n * @attr {number | string} min - The minimum value that the input field can accept.\n * @attr {number} minlength - The minimum number of characters that the input field can accept.\n * @attr {string} name - The input field name.\n * @attr {string} pattern - Specifies a regular expression the form control's value should match.\n * @attr {string} placeholder - The input placeholder text value.\n * @attr {boolean} readonly - If true, the input field cannot be modified.\n * @attr {boolean} required - Indicates whether or not the input field is required to be filled out before submitting the form.\n * @attr {number | 'any'} step - A number that specifies the granularity that the value must adhere to.\n * @attr {string} type - The type attribute specifies the type of input field to display.\n * @attr {'none' | 'error' | 'warning' | 'success'} validation-status - The validation status of the input.\n * @attr {string | number | string[]} value - The input value, it can be used to reset the input to a previous value.\n *\n * @event bqBlur - Callback handler emitted when the input loses focus.\n * @event bqChange - Callback handler emitted when the input value has changed and the input loses focus.\n * @event bqClear - Callback handler emitted when the input value has been cleared.\n * @event bqFocus - Callback handler emitted when the input has received focus.\n * @event bqInput - Callback handler emitted when the input value changes.\n *\n * @slot label - The label slot container.\n * @slot prefix - The prefix slot container.\n * @slot suffix - The suffix slot container.\n * @slot helper-text - The helper text slot container.\n * @slot clear-icon - The clear icon slot container.\n *\n * @part base - The component's base wrapper.\n * @part button - The native HTML button used under the hood in the clear button.\n * @part clear-btn - The clear button.\n * @part control - The input control wrapper.\n * @part helper-text - The helper text slot container.\n * @part label - The label slot container.\n * @part input - The native HTML input element used under the hood.\n * @part prefix - The prefix slot container.\n * @part suffix - The suffix slot container.\n *\n * @cssprop --bq-input--background-color - Input background color\n * @cssprop --bq-input--border-color - Input border color\n * @cssprop --bq-input--border-color-focus - Input border color on focus\n * @cssprop --bq-input--border-radius - Input border radius\n * @cssprop --bq-input--border-width - Input border width\n * @cssprop --bq-input--border-style - Input border style\n * @cssprop --bq-input--gap - Gap between input content and prefix/suffix\n * @cssprop --bq-input--helper-margin-top - Helper text margin top\n * @cssprop --bq-input--helper-text-color - Helper text color\n * @cssprop --bq-input--helper-text-size - Helper text size\n * @cssprop --bq-input--icon-size - Icon size to use in prefix/suffix and clear button\n * @cssprop --bq-input--label-margin-bottom - Input label margin bottom\n * @cssprop --bq-input--label-text-color - Input label text color\n * @cssprop --bq-input--label-text-size - Input label text size\n * @cssprop --bq-input--padding-start - Input padding start\n * @cssprop --bq-input--padding-end - Input padding end\n * @cssprop --bq-input--paddingY - Input padding top and bottom\n * @cssprop --bq-input--text-color - Input text color\n * @cssprop --bq-input--text-size - Input text size\n * @cssprop --bq-input--text-placeholder-color - Input placeholder text color\n */\n@Component({\n tag: 'bq-input',\n styleUrl: './scss/bq-input.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqInput {\n // Own Properties\n // ====================\n\n private helperTextElem?: HTMLElement;\n private inputElem?: HTMLInputElement;\n private labelElem?: HTMLElement;\n private prefixElem?: HTMLElement;\n private suffixElem?: HTMLElement;\n\n private debounceBqInput: TDebounce<void>;\n private fallbackInputId = 'input';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqInputElement;\n @AttachInternals() internals!: ElementInternals;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasHelperText = false;\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n @State() hasValue = false;\n\n // Public Property API\n // ========================\n\n /**\n * Controls whether or not the input 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: string = 'off';\n\n /**\n * Specifies whether or not the input 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 input will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean = false;\n\n /** The clear button aria label */\n @Prop({ reflect: true }) clearButtonLabel? = 'Clear value';\n\n /**\n * The amount of time, in milliseconds, to wait before emitting the `bqInput` event after the input value changes.\n * A value of 0 means no debouncing will occur.\n */\n @Prop({ reflect: true, mutable: true }) debounceTime? = 0;\n\n /**\n * Indicates whether the input is disabled or not.\n * If `true`, the input is disabled and cannot be interacted with.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n\n /** If true, the clear button won't be displayed */\n @Prop({ reflect: true }) disableClear? = false;\n\n /** The ID of the form that the input field belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /** The native form validation message (mandatory if `required` is set) */\n @Prop({ mutable: true }) formValidationMessage?: string;\n\n /**\n * The inputmode attribute specifies what kind of input mechanism would be most helpful for users entering content into the input field.\n * This allows a browser to display an appropriate virtual keyboard while editing.\n * Possible values are 'none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url', and 'date'.\n */\n @Prop() inputmode?: string;\n\n /**\n * The maximum value that the input field can accept.\n * Only applies to date and number input types.\n */\n @Prop({ reflect: true }) max?: number | string;\n\n /** The maximum number of characters that the input field can accept. */\n @Prop({ reflect: true }) maxlength: number;\n\n /**\n * The minimum value that the input field can accept.\n * Only applies to date and number input types.\n */\n @Prop({ reflect: true }) min?: number | string;\n\n /** The minimum number of characters that the input field can accept. */\n @Prop({ reflect: true }) minlength: number;\n\n /** The input field name. */\n @Prop({ reflect: true }) name!: string;\n\n /**\n * Specifies a regular expression the form control's value should match.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern\n */\n @Prop({ reflect: true }) pattern?: string;\n\n /** The input placeholder text value */\n @Prop({ reflect: true }) placeholder?: string;\n\n /** If true, the input field cannot be modified. */\n @Prop({ reflect: true }) readonly?: boolean;\n\n /** Indicates whether or not the input field is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean;\n\n /**\n * A number that specifies the granularity that the value must adhere to.\n * Valid for date, month, week, time, datetime-local, number, and range.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#step\n */\n @Prop({ reflect: true }) step: number | 'any';\n\n /**\n * The type attribute specifies the type of input field to display.\n * Possible values are 'text', 'password', 'email', 'number', 'tel', 'search', 'url', and more.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types\n */\n @Prop({ reflect: true }) type: TInputType = 'text';\n\n /**\n * The validation status of the input.\n *\n * @remarks\n * This property is used to indicate the validation status of the input. It can be set to one of the following values:\n * - `'none'`: No validation status is set.\n * - `'error'`: The input has a validation error.\n * - `'warning'`: The input has a validation warning.\n * - `'success'`: The input has passed validation.\n */\n @Prop({ reflect: true }) validationStatus: TInputValidation = 'none';\n\n /** The input value, it can be used to reset the input to a previous value */\n @Prop({ reflect: true, mutable: true }) value: TInputValue;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n const { internals, value } = this;\n if (Array.isArray(value)) {\n this.hasValue = value.some((val) => val.length > 0);\n this.internals.setFormValue(value.join(','));\n return;\n }\n\n this.hasValue = isDefined(value);\n internals.setFormValue(!isNil(value) ? `${value}` : undefined);\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Callback handler emitted when the input loses focus */\n @Event() bqBlur!: EventEmitter<HTMLBqInputElement>;\n\n /**\n * Callback handler emitted when the input value has changed and the input loses focus.\n * This handler is called whenever the user finishes typing or pasting text into the input field and then clicks outside of the input field.\n */\n @Event() bqChange!: EventEmitter<{ value: string | number | string[]; el: HTMLBqInputElement }>;\n\n /** Callback handler emitted when the input value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqInputElement>;\n\n /** Callback handler emitted when the input has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqInputElement>;\n\n /**\n * Callback handler emitted when the input value changes.\n * This handler is called whenever the user types or pastes text into the input field.\n */\n @Event() bqInput!: EventEmitter<{ value: string | number | string[]; el: HTMLBqInputElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.handleValueChange();\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n formAssociatedCallback() {\n this.setFormValue(this.value?.toString());\n this.updateFormValidity();\n }\n\n formResetCallback() {\n if (isNil(this.value)) return;\n\n this.handleClear();\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 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 handleInput = (ev: Event) => {\n if (this.disabled) return;\n\n this.debounceBqInput?.cancel();\n\n if (!isHTMLElement(ev.target, 'input')) return;\n this.value = this.type === 'number' ? Number(ev.target.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\n private handleChange = (ev: Event) => {\n if (this.disabled) return;\n\n if (!isHTMLElement(ev.target, 'input')) return;\n this.value = this.type === 'number' ? Number(ev.target.value) : ev.target.value;\n // Update form value and validity\n this.setFormValue(`${this.value}`);\n this.updateFormValidity();\n\n this.bqChange.emit({ value: this.value, el: this.el });\n };\n\n private handleClear = () => {\n if (this.disabled) return;\n\n const { inputElem, setFormValue, updateFormValidity } = this;\n // Clear input element value\n inputElem.value = '';\n this.value = inputElem.value;\n // Set form value to empty string abd update validity\n setFormValue(this.value);\n updateFormValidity();\n };\n\n private handleClearClick = (ev: CustomEvent) => {\n ev.stopPropagation();\n this.handleClear();\n\n const { bqClear, bqChange, bqInput, el, inputElem } = this;\n // Emit events\n bqClear.emit(el);\n bqInput.emit({ value: this.value, el });\n bqChange.emit({ value: this.value, el });\n // Refocus input element\n inputElem.focus();\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, inputElem } = this;\n\n // Clear the validity state\n internals?.states.clear();\n\n if (required && (!value || value.toString().trim() === '')) {\n // Set validity state to invalid\n internals?.states.add('invalid');\n internals?.setValidity({ valueMissing: true }, formValidationMessage, inputElem);\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 handleSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n this.hasPrefix = hasSlotContent(this.prefixElem);\n this.hasSuffix = hasSlotContent(this.suffixElem);\n this.hasHelperText = hasSlotContent(this.helperTextElem);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <div class=\"bq-input\" part=\"base\">\n {/* Label */}\n <label\n aria-label={this.name || this.fallbackInputId}\n class={{ 'bq-input--label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name || this.fallbackInputId}\n part=\"label\"\n ref={(labelElem) => {\n this.labelElem = labelElem;\n }}\n >\n <slot name=\"label\" onSlotchange={this.handleSlotChange} />\n </label>\n {/* Input control group */}\n <div\n class={{\n 'bq-input--control': true,\n [`validation-${this.validationStatus}`]: true,\n disabled: this.disabled,\n }}\n part=\"control\"\n >\n {/* Prefix */}\n <span\n class={{ 'bq-input--control__prefix': true, '!hidden': !this.hasPrefix }}\n part=\"prefix\"\n ref={(spanElem) => {\n this.prefixElem = spanElem;\n }}\n >\n <slot name=\"prefix\" onSlotchange={this.handleSlotChange} />\n </span>\n {/* HTML Input */}\n <input\n aria-disabled={this.disabled ? 'true' : 'false'}\n autocapitalize={this.autocapitalize}\n autocomplete={this.autocomplete}\n autofocus={this.autofocus}\n class=\"bq-input--control__input\"\n disabled={this.disabled}\n form={this.form}\n id={this.name || this.fallbackInputId}\n inputMode={this.inputmode}\n max={this.max}\n maxLength={this.maxlength}\n min={this.min}\n minLength={this.minlength}\n name={this.name}\n onBlur={this.handleBlur}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onInput={this.handleInput}\n part=\"input\"\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n ref={(inputElem) => {\n this.inputElem = inputElem;\n }}\n required={this.required}\n step={this.step}\n type={this.type}\n value={this.value}\n />\n {/* Clear Button */}\n {this.hasValue && !this.disabled && !this.disableClear && (\n // The clear button will be visible as long as the input has a value\n // and the parent group is hovered or has focus-within\n <bq-button\n appearance=\"text\"\n border=\"s\"\n class=\"bq-input--control__clear ms-[--bq-date-picker--gap] hidden [&::part(button)]:border-none [&::part(button)]:p-0\"\n exportparts=\"button\"\n label={this.clearButtonLabel}\n onBqClick={this.handleClearClick}\n onlyIcon\n part=\"clear-btn\"\n size=\"small\"\n >\n <slot name=\"clear-icon\">\n <bq-icon aria-hidden=\"true\" class=\"flex\" name=\"x-circle\" />\n </slot>\n </bq-button>\n )}\n {/* Suffix */}\n <span\n class={{ 'bq-input--control__suffix': true, '!hidden': !this.hasSuffix }}\n part=\"suffix\"\n ref={(spanElem) => {\n this.suffixElem = spanElem;\n }}\n >\n <slot name=\"suffix\" onSlotchange={this.handleSlotChange} />\n </span>\n </div>\n {/* Helper text */}\n <div\n class={{\n [`bq-input--helper-text validation-${this.validationStatus}`]: true,\n '!hidden': !this.hasHelperText,\n }}\n part=\"helper-text\"\n ref={(divElem) => {\n this.helperTextElem = divElem;\n }}\n >\n <slot name=\"helper-text\" onSlotchange={this.handleSlotChange} />\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["bqCheckboxCss","BqCheckbox","inputElem","prevCheckedValue","internals","backgroundOnHover","formId","formValidationMessage","checked","disabled","indeterminate","name","required","value","handleIndeterminatePropChange","this","handleRequiredPropChange","updateFormValidity","bqChange","bqFocus","bqBlur","componentWillLoad","componentDidUpdate","emit","formAssociatedCallback","setFormValue","formResetCallback","removeAttribute","undefined","vClick","click","vFocus","focus","vBlur","blur","states","clear","add","setValidity","valueMissing","handleChange","handleOnFocus","el","handleOnBlur","render","h","key","class","part","form","isNil","onBlur","onChange","onFocus","ref","input","tabindex","type","viewBox","xmlns","d","fill","stroke"],"sources":["../../packages/beeq/src/components/checkbox/scss/bq-checkbox.scss?tag=bq-checkbox&encapsulation=shadow","../../packages/beeq/src/components/checkbox/bq-checkbox.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Checkbox styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-checkbox.variables';\n\n:host {\n @apply inline-block;\n}\n\n.bq-checkbox {\n @apply box-border inline-flex cursor-pointer select-none rounded-s transition-colors duration-300 ease-in-out p-b-xs p-i-xs;\n\n // Default hover state\n &:not(.is-checked),\n &:not(.is-indeterminate) {\n &:not(.is-disabled):hover .bq-checkbox__checkbox {\n @apply border-hover-brand;\n }\n }\n\n // Display background on hover (if enabled)\n &.has-background:not(.is-disabled):hover {\n @apply bg-hover-ui-primary;\n }\n\n // Checked/Indeterminate hover state\n &.is-checked,\n &.is-indeterminate {\n &:not(.is-disabled):hover .bq-checkbox__checkbox {\n @apply bg-hover-ui-brand border-hover-brand;\n }\n }\n}\n\n.bq-checkbox__input {\n // Checkbox square icon has `FOCUS`\n &:focus,\n &:focus-visible {\n ~ .bq-checkbox__checkbox {\n @apply focus border-brand;\n }\n }\n\n // Checkbox square icon is `CHECKED/INDETERMINATE`\n &:checked,\n &:indeterminate {\n ~ .bq-checkbox__checkbox {\n @apply border-brand bg-ui-brand;\n }\n }\n\n // Checkbox square icon is `CHECKED/INDETERMINATE` and `DISABLED`\n &:checked:disabled,\n &:indeterminate:disabled {\n ~ .bq-checkbox__checkbox {\n @apply opacity-60;\n }\n }\n\n &:disabled {\n ~ .bq-checkbox__checkbox {\n @apply opacity-60;\n }\n }\n}\n\n// Checkbox square icon `DEFAULT` state (not checked/indeterminate, not hover, not disabled)\n.bq-checkbox__checkbox {\n @apply rounded-[--bq-checkbox--border-radius] border-[length:--bq-checkbox--border-width] border-solid border-[color:--bq-icon--primary];\n}\n\n.bq-checkbox__checkbox,\n.bq-checkbox__label {\n @apply transition-[color,background-color,border-color,box-shadow] duration-300;\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { AttachInternals, Component, Element, Event, h, Method, Prop, Watch } from '@stencil/core';\n\nimport { isNil } from '../../shared/utils';\n\n/**\n * The checkbox is a UI component that allows users to select one or more options from a list of choices.\n * It is commonly used in forms, surveys, and settings pages.\n *\n * @example How to use it\n * ```html\n * <bq-checkbox name=\"bq-checkbox\" value=\"checkbox-value\" background-on-hover>\n * Checkbox label\n * </bq-checkbox>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/431f17-checkbox\n * @status stable\n *\n * @attr {boolean} background-on-hover - If true checkbox displays background on hover\n * @attr {string} form-id - The form ID that the checkbox is associated with\n * @attr {string} form-validation-message - The native form validation message\n * @attr {boolean} checked - If true checkbox is checked\n * @attr {boolean} disabled - If true checkbox is disabled\n * @attr {boolean} indeterminate - A state that is neither checked nor unchecked\n * @attr {string} name - Name of the HTML input form control. Submitted with the form as part of a name/value pair\n * @attr {boolean} required - If `true`, it will indicate that the user must specify a value for the checkbox before the owning form can be submitted\n * @attr {string} value - A string representing the value of the checkbox. Primarily used to differentiate a list of related checkboxes that have the same name\n *\n * @method vClick - Simulate a click event on the native `<input>` HTML element used under the hood\n * @method vFocus - Sets focus on the native `<input>` HTML element used under the hood\n * @method vBlur - Remove focus from the native `<input>` HTML element used under the hood\n *\n * @event bqChange - Handler to be called when the checkbox state changes\n * @event bqFocus - Handler to be called when the checkbox gets focus\n * @event bqBlur - Handler to be called when the checkbox loses focus\n *\n * @slot - The content of the checkbox component\n *\n * @part base - The component's internal wrapper of the checkbox component.\n * @part control - The container `<div>` element that holds the custom checkbox.\n * @part input - The native HTML `<input type=\"checkbox\">` used under the hood.\n * @part checkbox - The `<span>` element that renders the custom checked/indeterminate state.\n * @part label - The `<span>` element that holds the text content.\n *\n * @cssprop --bq-checkbox--size - Checkbox size\n * @cssprop --bq-checkbox--border-radius - Checkbox border radius\n * @cssprop --bq-checkbox--border-width - Checkbox border width\n */\n@Component({\n tag: 'bq-checkbox',\n styleUrl: './scss/bq-checkbox.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqCheckbox {\n // Own Properties\n // ====================\n\n private inputElem: HTMLInputElement;\n private prevCheckedValue: boolean;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqCheckboxElement;\n @AttachInternals() internals!: ElementInternals;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true checkbox displays background on hover */\n @Prop({ reflect: true }) backgroundOnHover? = false;\n\n /** The form ID that the checkbox is associated with */\n @Prop({ reflect: true }) formId?: string;\n\n /** The native form validation message */\n @Prop({ mutable: true }) formValidationMessage?: string;\n\n /** If true checkbox is checked */\n @Prop({ reflect: true, mutable: true }) checked?: boolean;\n\n /** If true checkbox is disabled */\n @Prop({ reflect: true }) disabled? = false;\n\n /** A state that is neither checked nor unchecked */\n @Prop({ reflect: true, mutable: true }) indeterminate? = false;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, it will indicate that the user must specify a value for the checkbox before the owning form can be submitted */\n @Prop({ reflect: true }) required?: boolean;\n\n /** A string representing the value of the checkbox. Primarily used to differentiate a list of related checkboxes that have the same name. */\n @Prop({ reflect: true }) value!: string;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('indeterminate')\n handleIndeterminatePropChange() {\n if (!this.inputElem) return;\n\n this.inputElem.indeterminate = this.indeterminate;\n if (this.indeterminate) {\n this.checked = false;\n }\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 /** Handler to be called when the checkbox state changes */\n @Event() bqChange: EventEmitter<{ checked: boolean }>;\n\n /** Handler to be called when the checkbox gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqCheckboxElement>;\n\n /** Handler to be called when the checkbox loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqCheckboxElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.prevCheckedValue = this.checked;\n }\n\n componentDidUpdate() {\n /**\n * We need to trigger the `bqChange` immediately after the first update happens\n * so the checked attribute get applied, otherwise, a delay will happen\n * between the event emits and when the checked attribute value gets reflected in the element host.\n */\n if (this.checked !== this.prevCheckedValue) {\n if (!this.indeterminate) {\n this.bqChange.emit({ checked: this.checked });\n }\n this.prevCheckedValue = this.checked;\n }\n }\n\n formAssociatedCallback() {\n this.setFormValue(this.checked);\n this.updateFormValidity();\n }\n\n formResetCallback() {\n // Reset the form value and validity state\n this.checked = false;\n this.indeterminate = false;\n this.inputElem.removeAttribute('checked');\n this.internals?.setFormValue(undefined);\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 /**\n * Simulate a click event on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.inputElem?.click();\n }\n\n /**\n * Sets focus on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.inputElem?.focus();\n }\n\n /**\n * Remove focus from the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.inputElem?.blur();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private setFormValue = (checked: boolean) => {\n const value = checked ? 'on' : undefined;\n // Set form value based on the checked state\n // Here we also pass the state of the checkbox (2nd argument) as the state of the form control\n // Details: https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/setFormValue\n this.internals?.setFormValue(value, `${this.checked}`);\n };\n\n private updateFormValidity = () => {\n const { formValidationMessage, internals, required, checked, inputElem } = this;\n // Clear the validity state\n internals?.states.clear();\n\n if (!(required && !checked)) {\n // If the checkbox is not required or is checked, set the validity state to valid\n internals?.states.add('valid');\n internals?.setValidity({});\n return;\n }\n\n // Set validity state based on the required property and checked state\n internals?.states.add('invalid');\n internals?.setValidity({ valueMissing: true }, formValidationMessage, inputElem);\n };\n\n private handleChange = () => {\n this.checked = !this.checked;\n this.indeterminate = false;\n\n this.setFormValue(this.checked);\n this.updateFormValidity();\n };\n\n private handleOnFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private handleOnBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <label\n aria-label={this.name || 'checkbox'}\n class={{\n 'bq-checkbox group': true,\n 'is-checked': this.checked,\n 'is-indeterminate': this.indeterminate,\n 'is-disabled !cursor-not-allowed': this.disabled,\n 'has-background': this.backgroundOnHover,\n }}\n part=\"base\"\n >\n <div\n class=\"bq-checkbox__control bs-[--bq-checkbox--size] is-[--bq-checkbox--size] relative box-border flex items-center justify-center p-b-xs3 p-i-xs3\"\n part=\"control\"\n >\n <input\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n checked={this.checked}\n class=\"bq-checkbox__input pointer-events-none absolute m-b-0 m-i-0 p-b-0 p-i-0 opacity-0\"\n disabled={this.disabled}\n form={this.formId}\n indeterminate={this.indeterminate}\n name={!isNil(this.name) ? this.name : undefined}\n onBlur={this.handleOnBlur}\n onChange={this.handleChange}\n onFocus={this.handleOnFocus}\n part=\"input\"\n ref={(input: HTMLInputElement) => {\n this.inputElem = input;\n }}\n required={this.required}\n tabindex=\"0\"\n type=\"checkbox\"\n value={this.value}\n />\n <span\n class=\"bq-checkbox__checkbox bs-full is-[--bq-checkbox--size] relative box-border flex items-center justify-center\"\n part=\"checkbox\"\n >\n {/*\n We could move these SVGs to separated functional components, but it seems there's a weird issue with\n Stencil and pure SVG components: https://stencil-worldwide.slack.com/archives/C79EANFL7/p1663779385026389\n */}\n {this.checked && (\n <svg\n aria-hidden=\"true\"\n class=\"bs-full is-full absolute text-neutral-white\"\n viewBox=\"0 0 256 256\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M0 0h256v256H0z\" fill=\"none\" />\n <path\n d=\"M216 72 104 184l-56-56\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"32\"\n />\n </svg>\n )}\n {!this.checked && this.indeterminate && (\n <svg\n aria-hidden=\"true\"\n class=\"bs-full is-full absolute text-neutral-white\"\n fill=\"currentColor\"\n viewBox=\"0 0 256 256\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M0 0h256v256H0z\" fill=\"none\" />\n <path\n d=\"M40 128h176\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"32\"\n />\n </svg>\n )}\n </span>\n </div>\n <span\n class=\"bq-checkbox__label ps-xs text-start font-medium text-primary leading-regular group-hover-[&:not(.is-disabled)]:text-hover-primary group-[.is-disabled]:opacity-60\"\n part=\"label\"\n >\n <slot />\n </span>\n </label>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}