@beeq/core 1.5.1 → 1.6.0

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 (631) hide show
  1. package/dist/beeq/beeq.css +1 -1
  2. package/dist/beeq/beeq.esm.js +1 -1
  3. package/dist/beeq/beeq.esm.js.map +1 -1
  4. package/dist/beeq/{p-99569b08.entry.js → p-13be15a8.entry.js} +2 -2
  5. package/dist/beeq/p-13be15a8.entry.js.map +1 -0
  6. package/dist/beeq/{p-32a540a3.entry.js → p-1d0c1bea.entry.js} +2 -2
  7. package/dist/beeq/p-1d0c1bea.entry.js.map +1 -0
  8. package/dist/beeq/{p-a2788d92.entry.js → p-200dfdc6.entry.js} +2 -2
  9. package/dist/beeq/p-200dfdc6.entry.js.map +1 -0
  10. package/dist/beeq/p-23b51f25.entry.js +6 -0
  11. package/dist/beeq/p-23b51f25.entry.js.map +1 -0
  12. package/dist/beeq/p-282cde35.entry.js +6 -0
  13. package/dist/beeq/p-282cde35.entry.js.map +1 -0
  14. package/dist/beeq/{p-310c7537.entry.js → p-29e54a2f.entry.js} +2 -2
  15. package/dist/beeq/{p-310c7537.entry.js.map → p-29e54a2f.entry.js.map} +1 -1
  16. package/dist/beeq/{p-1cec06b2.entry.js → p-30e5d01e.entry.js} +2 -2
  17. package/dist/beeq/p-30e5d01e.entry.js.map +1 -0
  18. package/dist/beeq/{p-672a3ebd.entry.js → p-31432ada.entry.js} +2 -2
  19. package/dist/beeq/{p-672a3ebd.entry.js.map → p-31432ada.entry.js.map} +1 -1
  20. package/dist/beeq/{p-59406ccb.entry.js → p-3a4ec8c2.entry.js} +2 -2
  21. package/dist/beeq/p-3a4ec8c2.entry.js.map +1 -0
  22. package/dist/beeq/{p-7c0139af.js → p-3fd0d92d.js} +2 -2
  23. package/dist/beeq/p-3fd0d92d.js.map +1 -0
  24. package/dist/beeq/p-44982543.js +7 -0
  25. package/dist/beeq/p-44982543.js.map +1 -0
  26. package/dist/beeq/{p-91fe8d9d.entry.js → p-483de184.entry.js} +2 -2
  27. package/dist/beeq/p-483de184.entry.js.map +1 -0
  28. package/dist/beeq/{p-3b21c503.entry.js → p-50dd8873.entry.js} +2 -2
  29. package/dist/beeq/{p-3b21c503.entry.js.map → p-50dd8873.entry.js.map} +1 -1
  30. package/dist/beeq/{p-1d3a8563.entry.js → p-51087b73.entry.js} +2 -2
  31. package/dist/beeq/p-51087b73.entry.js.map +1 -0
  32. package/dist/beeq/p-5cbdfc4c.entry.js +6 -0
  33. package/dist/beeq/p-5cbdfc4c.entry.js.map +1 -0
  34. package/dist/beeq/{p-2ae112f2.entry.js → p-60446fb6.entry.js} +2 -2
  35. package/dist/beeq/p-60446fb6.entry.js.map +1 -0
  36. package/dist/beeq/{p-b687639a.entry.js → p-68fd8637.entry.js} +2 -2
  37. package/dist/beeq/p-68fd8637.entry.js.map +1 -0
  38. package/dist/beeq/p-68fdea6a.js +6 -0
  39. package/dist/beeq/p-68fdea6a.js.map +1 -0
  40. package/dist/beeq/{p-e6b0af67.entry.js → p-6bdb3bc8.entry.js} +2 -2
  41. package/dist/beeq/p-6bdb3bc8.entry.js.map +1 -0
  42. package/dist/beeq/{p-d1bec6cf.entry.js → p-6decf071.entry.js} +2 -2
  43. package/dist/beeq/p-6decf071.entry.js.map +1 -0
  44. package/dist/beeq/p-76e1659f.entry.js +6 -0
  45. package/dist/beeq/p-76e1659f.entry.js.map +1 -0
  46. package/dist/beeq/p-8450556c.entry.js +6 -0
  47. package/dist/beeq/p-8450556c.entry.js.map +1 -0
  48. package/dist/beeq/{p-f62a3301.entry.js → p-85ec14c6.entry.js} +2 -2
  49. package/dist/beeq/{p-f62a3301.entry.js.map → p-85ec14c6.entry.js.map} +1 -1
  50. package/dist/beeq/{p-9bc568c2.entry.js → p-90838ab1.entry.js} +2 -2
  51. package/dist/beeq/p-90838ab1.entry.js.map +1 -0
  52. package/dist/beeq/p-91db6d29.entry.js +6 -0
  53. package/dist/beeq/p-91db6d29.entry.js.map +1 -0
  54. package/dist/beeq/{p-c334917a.entry.js → p-95baffb3.entry.js} +2 -2
  55. package/dist/beeq/p-95baffb3.entry.js.map +1 -0
  56. package/dist/beeq/p-964825fa.entry.js +6 -0
  57. package/dist/beeq/p-964825fa.entry.js.map +1 -0
  58. package/dist/beeq/{p-b8534cc7.entry.js → p-9704f9ca.entry.js} +2 -2
  59. package/dist/beeq/p-9704f9ca.entry.js.map +1 -0
  60. package/dist/beeq/{p-38872207.entry.js → p-99267927.entry.js} +2 -2
  61. package/dist/beeq/{p-38872207.entry.js.map → p-99267927.entry.js.map} +1 -1
  62. package/dist/beeq/{p-4161e228.entry.js → p-a4ad6be7.entry.js} +2 -2
  63. package/dist/beeq/p-a4ad6be7.entry.js.map +1 -0
  64. package/dist/beeq/{p-f6215382.entry.js → p-a7e1fec8.entry.js} +2 -2
  65. package/dist/beeq/p-a7e1fec8.entry.js.map +1 -0
  66. package/dist/beeq/p-a8937946.entry.js +6 -0
  67. package/dist/beeq/p-a8937946.entry.js.map +1 -0
  68. package/dist/beeq/{p-011648c1.entry.js → p-aed662aa.entry.js} +2 -2
  69. package/dist/beeq/p-aed662aa.entry.js.map +1 -0
  70. package/dist/beeq/{p-09713e1b.entry.js → p-b40f3cd6.entry.js} +2 -2
  71. package/dist/beeq/{p-09713e1b.entry.js.map → p-b40f3cd6.entry.js.map} +1 -1
  72. package/dist/beeq/{p-44e85cc7.entry.js → p-b53be9dd.entry.js} +2 -2
  73. package/dist/beeq/p-b53be9dd.entry.js.map +1 -0
  74. package/dist/beeq/{p-4d9f03d7.entry.js → p-c4273f70.entry.js} +2 -2
  75. package/dist/beeq/p-c4273f70.entry.js.map +1 -0
  76. package/dist/beeq/{p-46efe162.entry.js → p-c51f0165.entry.js} +2 -2
  77. package/dist/beeq/p-c51f0165.entry.js.map +1 -0
  78. package/dist/beeq/{p-b02fe5d0.entry.js → p-cd244c61.entry.js} +2 -2
  79. package/dist/beeq/{p-b02fe5d0.entry.js.map → p-cd244c61.entry.js.map} +1 -1
  80. package/dist/beeq/{p-ca3eee1b.entry.js → p-d5523943.entry.js} +2 -2
  81. package/dist/beeq/p-d5523943.entry.js.map +1 -0
  82. package/dist/beeq/{p-f8324eef.entry.js → p-d66a1b57.entry.js} +2 -2
  83. package/dist/beeq/p-d66a1b57.entry.js.map +1 -0
  84. package/dist/beeq/p-da31e531.js.map +1 -1
  85. package/dist/beeq/{p-b38f3575.entry.js → p-e116f3e7.entry.js} +2 -2
  86. package/dist/beeq/p-e116f3e7.entry.js.map +1 -0
  87. package/dist/beeq/{p-c70d895b.entry.js → p-ec0e428a.entry.js} +2 -2
  88. package/dist/beeq/p-ec0e428a.entry.js.map +1 -0
  89. package/dist/cjs/{app-globals-53e231d9.js → app-globals-b11284b9.js} +397 -357
  90. package/dist/cjs/{app-globals-53e231d9.js.map → app-globals-b11284b9.js.map} +1 -1
  91. package/dist/cjs/assetsPath-11934549.js.map +1 -1
  92. package/dist/cjs/beeq.cjs.js +4 -4
  93. package/dist/cjs/beeq.cjs.js.map +1 -1
  94. package/dist/cjs/bq-accordion-group.cjs.entry.js +7 -4
  95. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
  96. package/dist/cjs/bq-accordion.cjs.entry.js +35 -11
  97. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  98. package/dist/cjs/bq-alert.cjs.entry.js +7 -7
  99. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  100. package/dist/cjs/bq-avatar.cjs.entry.js +14 -14
  101. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  102. package/dist/cjs/bq-badge.cjs.entry.js +5 -5
  103. package/dist/cjs/bq-badge.cjs.entry.js.map +1 -1
  104. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +5 -5
  105. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  106. package/dist/cjs/bq-breadcrumb.cjs.entry.js +3 -3
  107. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
  108. package/dist/cjs/bq-button_2.cjs.entry.js +6 -6
  109. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  110. package/dist/cjs/bq-card.cjs.entry.js +6 -6
  111. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  112. package/dist/cjs/bq-checkbox.cjs.entry.js +4 -4
  113. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  114. package/dist/cjs/bq-date-picker.cjs.entry.js +52 -16
  115. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  116. package/dist/cjs/bq-dialog.cjs.entry.js +19 -9
  117. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  118. package/dist/cjs/bq-divider.cjs.entry.js +36 -37
  119. package/dist/cjs/bq-divider.cjs.entry.js.map +1 -1
  120. package/dist/cjs/bq-drawer.cjs.entry.js +68 -36
  121. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  122. package/dist/cjs/bq-dropdown_2.cjs.entry.js +6 -6
  123. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
  124. package/dist/cjs/bq-empty-state.cjs.entry.js +15 -15
  125. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  126. package/dist/cjs/bq-input.cjs.entry.js +6 -6
  127. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  128. package/dist/cjs/bq-notification.cjs.entry.js +5 -5
  129. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  130. package/dist/cjs/bq-option-group.cjs.entry.js +3 -3
  131. package/dist/cjs/bq-option-group.cjs.entry.js.map +1 -1
  132. package/dist/cjs/bq-option-list_2.cjs.entry.js +6 -6
  133. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  134. package/dist/cjs/bq-option.cjs.entry.js +6 -6
  135. package/dist/cjs/bq-option.cjs.entry.js.map +1 -1
  136. package/dist/cjs/bq-page-title.cjs.entry.js +65 -0
  137. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -0
  138. package/dist/cjs/bq-progress.cjs.entry.js +8 -8
  139. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  140. package/dist/cjs/bq-radio-group.cjs.entry.js +3 -3
  141. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  142. package/dist/cjs/bq-radio.cjs.entry.js +4 -4
  143. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  144. package/dist/cjs/bq-select.cjs.entry.js +6 -6
  145. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  146. package/dist/cjs/bq-side-menu-item.cjs.entry.js +2 -2
  147. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  148. package/dist/cjs/bq-side-menu.cjs.entry.js +3 -3
  149. package/dist/cjs/bq-side-menu.cjs.entry.js.map +1 -1
  150. package/dist/cjs/bq-slider.cjs.entry.js +8 -8
  151. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  152. package/dist/cjs/bq-spinner.cjs.entry.js +6 -6
  153. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  154. package/dist/cjs/bq-status.cjs.entry.js +3 -3
  155. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  156. package/dist/cjs/bq-step-item.cjs.entry.js +9 -9
  157. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  158. package/dist/cjs/bq-steps.cjs.entry.js +5 -5
  159. package/dist/cjs/bq-steps.cjs.entry.js.map +1 -1
  160. package/dist/cjs/bq-switch.cjs.entry.js +5 -5
  161. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  162. package/dist/cjs/bq-tab-group.cjs.entry.js +3 -3
  163. package/dist/cjs/bq-tab-group.cjs.entry.js.map +1 -1
  164. package/dist/cjs/bq-tab.cjs.entry.js +4 -4
  165. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  166. package/dist/cjs/bq-textarea.cjs.entry.js +5 -5
  167. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  168. package/dist/cjs/bq-toast.cjs.entry.js +3 -3
  169. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  170. package/dist/cjs/bq-tooltip.cjs.entry.js +4 -4
  171. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  172. package/dist/cjs/{index-a08b6938.js → index-a09d1c08.js} +29 -17
  173. package/dist/cjs/index-a09d1c08.js.map +1 -0
  174. package/dist/cjs/{index-57a40a5c.js → index-ec84f14a.js} +785 -767
  175. package/dist/cjs/index-ec84f14a.js.map +1 -0
  176. package/dist/cjs/loader.cjs.js +3 -3
  177. package/dist/collection/collection-manifest.json +2 -1
  178. package/dist/collection/components/accordion/bq-accordion.js +51 -7
  179. package/dist/collection/components/accordion/bq-accordion.js.map +1 -1
  180. package/dist/collection/components/accordion/helper/index.js +1 -1
  181. package/dist/collection/components/accordion/helper/index.js.map +1 -1
  182. package/dist/collection/components/accordion/scss/bq-accordion.css +1 -1
  183. package/dist/collection/components/accordion-group/bq-accordion-group.js +44 -21
  184. package/dist/collection/components/accordion-group/bq-accordion-group.js.map +1 -1
  185. package/dist/collection/components/alert/bq-alert.js +5 -5
  186. package/dist/collection/components/alert/bq-alert.js.map +1 -1
  187. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  188. package/dist/collection/components/avatar/bq-avatar.js +12 -12
  189. package/dist/collection/components/avatar/bq-avatar.js.map +1 -1
  190. package/dist/collection/components/avatar/scss/bq-avatar.css +1 -1
  191. package/dist/collection/components/badge/bq-badge.js +3 -3
  192. package/dist/collection/components/badge/bq-badge.js.map +1 -1
  193. package/dist/collection/components/badge/scss/bq-badge.css +1 -1
  194. package/dist/collection/components/breadcrumb/bq-breadcrumb.js +1 -1
  195. package/dist/collection/components/breadcrumb/bq-breadcrumb.js.map +1 -1
  196. package/dist/collection/components/breadcrumb/scss/bq-breadcrumb.css +1 -1
  197. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js +3 -3
  198. package/dist/collection/components/breadcrumb-item/scss/bq-breadcrumb-item.css +1 -1
  199. package/dist/collection/components/button/bq-button.js +2 -2
  200. package/dist/collection/components/button/scss/bq-button.css +1 -1
  201. package/dist/collection/components/card/bq-card.js +4 -4
  202. package/dist/collection/components/card/bq-card.js.map +1 -1
  203. package/dist/collection/components/card/scss/bq-card.css +1 -1
  204. package/dist/collection/components/checkbox/bq-checkbox.js +3 -3
  205. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  206. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  207. package/dist/collection/components/date-picker/bq-date-picker.js +106 -46
  208. package/dist/collection/components/date-picker/bq-date-picker.js.map +1 -1
  209. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  210. package/dist/collection/components/dialog/bq-dialog.js +17 -7
  211. package/dist/collection/components/dialog/bq-dialog.js.map +1 -1
  212. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  213. package/dist/collection/components/divider/bq-divider.js +37 -41
  214. package/dist/collection/components/divider/bq-divider.js.map +1 -1
  215. package/dist/collection/components/divider/scss/bq-divider.css +1 -1
  216. package/dist/collection/components/drawer/bq-drawer.js +130 -72
  217. package/dist/collection/components/drawer/bq-drawer.js.map +1 -1
  218. package/dist/collection/components/drawer/bq-drawer.types.js +2 -0
  219. package/dist/collection/components/drawer/bq-drawer.types.js.map +1 -1
  220. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  221. package/dist/collection/components/dropdown/bq-dropdown.js +3 -3
  222. package/dist/collection/components/dropdown/bq-dropdown.js.map +1 -1
  223. package/dist/collection/components/dropdown/scss/bq-dropdown.css +1 -1
  224. package/dist/collection/components/empty-state/bq-empty-state.js +13 -13
  225. package/dist/collection/components/empty-state/bq-empty-state.js.map +1 -1
  226. package/dist/collection/components/empty-state/scss/bq-empty-state.css +1 -1
  227. package/dist/collection/components/icon/bq-icon.js +1 -1
  228. package/dist/collection/components/icon/bq-icon.js.map +1 -1
  229. package/dist/collection/components/icon/scss/bq-icon.css +1 -1
  230. package/dist/collection/components/input/bq-input.js +4 -4
  231. package/dist/collection/components/input/scss/bq-input.css +1 -1
  232. package/dist/collection/components/notification/bq-notification.js +3 -3
  233. package/dist/collection/components/notification/bq-notification.js.map +1 -1
  234. package/dist/collection/components/notification/scss/bq-notification.css +1 -1
  235. package/dist/collection/components/option/bq-option.js +4 -4
  236. package/dist/collection/components/option/scss/bq-option.css +1 -1
  237. package/dist/collection/components/option-group/bq-option-group.js +1 -1
  238. package/dist/collection/components/option-group/bq-option-group.js.map +1 -1
  239. package/dist/collection/components/option-group/scss/bq-option-group.css +1 -1
  240. package/dist/collection/components/option-list/bq-option-list.js +1 -1
  241. package/dist/collection/components/page-title/bq-page-title.js +79 -0
  242. package/dist/collection/components/page-title/bq-page-title.js.map +1 -0
  243. package/dist/collection/components/page-title/scss/bq-page-title.css +1 -0
  244. package/dist/collection/components/panel/bq-panel.js +3 -3
  245. package/dist/collection/components/panel/bq-panel.js.map +1 -1
  246. package/dist/collection/components/panel/scss/bq-panel.css +1 -1
  247. package/dist/collection/components/progress/bq-progress.js +6 -6
  248. package/dist/collection/components/progress/bq-progress.js.map +1 -1
  249. package/dist/collection/components/progress/scss/bq-progress.css +1 -1
  250. package/dist/collection/components/radio/bq-radio.js +2 -2
  251. package/dist/collection/components/radio/scss/bq-radio.css +1 -1
  252. package/dist/collection/components/radio-group/bq-radio-group.js +1 -1
  253. package/dist/collection/components/radio-group/scss/bq-radio-group.css +1 -1
  254. package/dist/collection/components/select/bq-select.js +6 -6
  255. package/dist/collection/components/select/bq-select.js.map +1 -1
  256. package/dist/collection/components/select/scss/bq-select.css +1 -1
  257. package/dist/collection/components/side-menu/bq-side-menu.js +1 -1
  258. package/dist/collection/components/side-menu/bq-side-menu.js.map +1 -1
  259. package/dist/collection/components/side-menu/scss/bq-side-menu.css +1 -1
  260. package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
  261. package/dist/collection/components/slider/bq-slider.js +6 -6
  262. package/dist/collection/components/slider/bq-slider.js.map +1 -1
  263. package/dist/collection/components/slider/scss/bq-slider.css +1 -1
  264. package/dist/collection/components/spinner/bq-spinner.js +4 -4
  265. package/dist/collection/components/spinner/bq-spinner.js.map +1 -1
  266. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  267. package/dist/collection/components/status/bq-status.js +1 -1
  268. package/dist/collection/components/status/bq-status.js.map +1 -1
  269. package/dist/collection/components/status/scss/bq-status.css +1 -1
  270. package/dist/collection/components/step-item/bq-step-item.js +8 -8
  271. package/dist/collection/components/step-item/bq-step-item.js.map +1 -1
  272. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  273. package/dist/collection/components/steps/bq-steps.js +4 -4
  274. package/dist/collection/components/steps/bq-steps.js.map +1 -1
  275. package/dist/collection/components/steps/scss/bq-steps.css +1 -1
  276. package/dist/collection/components/switch/bq-switch.js +3 -3
  277. package/dist/collection/components/switch/bq-switch.js.map +1 -1
  278. package/dist/collection/components/switch/scss/bq-switch.css +1 -1
  279. package/dist/collection/components/tab/bq-tab.js +2 -2
  280. package/dist/collection/components/tab/scss/bq-tab.css +1 -1
  281. package/dist/collection/components/tab-group/bq-tab-group.js +1 -1
  282. package/dist/collection/components/tab-group/scss/bq-tab-group.css +1 -1
  283. package/dist/collection/components/tag/bq-tag.js +3 -3
  284. package/dist/collection/components/tag/scss/bq-tag.css +1 -1
  285. package/dist/collection/components/textarea/bq-textarea.js +3 -3
  286. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  287. package/dist/collection/components/toast/bq-toast.js +1 -1
  288. package/dist/collection/components/toast/scss/bq-toast.css +1 -1
  289. package/dist/collection/components/tooltip/bq-tooltip.js +3 -3
  290. package/dist/collection/components/tooltip/bq-tooltip.js.map +1 -1
  291. package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
  292. package/dist/collection/global/scripts/global.js.map +1 -1
  293. package/dist/collection/services/interfaces/floating-ui.js.map +1 -1
  294. package/dist/collection/shared/utils/assetsPath.js.map +1 -1
  295. package/dist/components/assetsPath.js.map +1 -1
  296. package/dist/components/bq-accordion-group.js +10 -5
  297. package/dist/components/bq-accordion-group.js.map +1 -1
  298. package/dist/components/bq-accordion.js +37 -11
  299. package/dist/components/bq-accordion.js.map +1 -1
  300. package/dist/components/bq-alert.js +6 -6
  301. package/dist/components/bq-alert.js.map +1 -1
  302. package/dist/components/bq-avatar.js +15 -15
  303. package/dist/components/bq-avatar.js.map +1 -1
  304. package/dist/components/bq-badge2.js +4 -4
  305. package/dist/components/bq-badge2.js.map +1 -1
  306. package/dist/components/bq-breadcrumb-item.js +4 -4
  307. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  308. package/dist/components/bq-breadcrumb.js +2 -2
  309. package/dist/components/bq-breadcrumb.js.map +1 -1
  310. package/dist/components/bq-button2.js +3 -3
  311. package/dist/components/bq-button2.js.map +1 -1
  312. package/dist/components/bq-card.js +5 -5
  313. package/dist/components/bq-card.js.map +1 -1
  314. package/dist/components/bq-checkbox.js +3 -3
  315. package/dist/components/bq-checkbox.js.map +1 -1
  316. package/dist/components/bq-date-picker.js +57 -18
  317. package/dist/components/bq-date-picker.js.map +1 -1
  318. package/dist/components/bq-dialog.js +18 -8
  319. package/dist/components/bq-dialog.js.map +1 -1
  320. package/dist/components/bq-divider2.js +35 -36
  321. package/dist/components/bq-divider2.js.map +1 -1
  322. package/dist/components/bq-drawer.js +73 -39
  323. package/dist/components/bq-drawer.js.map +1 -1
  324. package/dist/components/bq-dropdown2.js +2 -2
  325. package/dist/components/bq-dropdown2.js.map +1 -1
  326. package/dist/components/bq-empty-state.js +14 -14
  327. package/dist/components/bq-empty-state.js.map +1 -1
  328. package/dist/components/bq-icon2.js +2 -2
  329. package/dist/components/bq-icon2.js.map +1 -1
  330. package/dist/components/bq-input.js +5 -5
  331. package/dist/components/bq-input.js.map +1 -1
  332. package/dist/components/bq-notification.js +4 -4
  333. package/dist/components/bq-notification.js.map +1 -1
  334. package/dist/components/bq-option-group.js +2 -2
  335. package/dist/components/bq-option-group.js.map +1 -1
  336. package/dist/components/bq-option-list2.js +3 -13
  337. package/dist/components/bq-option-list2.js.map +1 -1
  338. package/dist/components/bq-option.js +5 -5
  339. package/dist/components/bq-option.js.map +1 -1
  340. package/dist/components/bq-page-title.d.ts +11 -0
  341. package/dist/components/bq-page-title.js +83 -0
  342. package/dist/components/bq-page-title.js.map +1 -0
  343. package/dist/components/bq-panel2.js +2 -2
  344. package/dist/components/bq-panel2.js.map +1 -1
  345. package/dist/components/bq-progress.js +7 -7
  346. package/dist/components/bq-progress.js.map +1 -1
  347. package/dist/components/bq-radio-group.js +2 -2
  348. package/dist/components/bq-radio-group.js.map +1 -1
  349. package/dist/components/bq-radio.js +3 -3
  350. package/dist/components/bq-radio.js.map +1 -1
  351. package/dist/components/bq-select.js +5 -5
  352. package/dist/components/bq-select.js.map +1 -1
  353. package/dist/components/bq-side-menu-item.js +1 -1
  354. package/dist/components/bq-side-menu-item.js.map +1 -1
  355. package/dist/components/bq-side-menu.js +2 -2
  356. package/dist/components/bq-side-menu.js.map +1 -1
  357. package/dist/components/bq-slider.js +7 -7
  358. package/dist/components/bq-slider.js.map +1 -1
  359. package/dist/components/bq-spinner.js +5 -5
  360. package/dist/components/bq-spinner.js.map +1 -1
  361. package/dist/components/bq-status.js +2 -2
  362. package/dist/components/bq-status.js.map +1 -1
  363. package/dist/components/bq-step-item.js +8 -8
  364. package/dist/components/bq-step-item.js.map +1 -1
  365. package/dist/components/bq-steps.js +4 -4
  366. package/dist/components/bq-steps.js.map +1 -1
  367. package/dist/components/bq-switch.js +4 -4
  368. package/dist/components/bq-switch.js.map +1 -1
  369. package/dist/components/bq-tab-group.js +2 -2
  370. package/dist/components/bq-tab-group.js.map +1 -1
  371. package/dist/components/bq-tab.js +3 -3
  372. package/dist/components/bq-tab.js.map +1 -1
  373. package/dist/components/bq-tag2.js +4 -4
  374. package/dist/components/bq-tag2.js.map +1 -1
  375. package/dist/components/bq-textarea.js +4 -4
  376. package/dist/components/bq-textarea.js.map +1 -1
  377. package/dist/components/bq-toast.js +2 -2
  378. package/dist/components/bq-toast.js.map +1 -1
  379. package/dist/components/bq-tooltip2.js +2 -2
  380. package/dist/components/bq-tooltip2.js.map +1 -1
  381. package/dist/components/event.js +18 -0
  382. package/dist/components/event.js.map +1 -0
  383. package/dist/components/index.d.ts +2 -0
  384. package/dist/components/index.js +398 -357
  385. package/dist/components/index.js.map +1 -1
  386. package/dist/components/index2.js +28 -16
  387. package/dist/components/index2.js.map +1 -1
  388. package/dist/esm/{app-globals-fe9e74f7.js → app-globals-de5a646b.js} +397 -357
  389. package/dist/esm/{app-globals-fe9e74f7.js.map → app-globals-de5a646b.js.map} +1 -1
  390. package/dist/esm/assetsPath-4b5ef75f.js.map +1 -1
  391. package/dist/esm/beeq.js +5 -5
  392. package/dist/esm/beeq.js.map +1 -1
  393. package/dist/esm/bq-accordion-group.entry.js +7 -4
  394. package/dist/esm/bq-accordion-group.entry.js.map +1 -1
  395. package/dist/esm/bq-accordion.entry.js +35 -11
  396. package/dist/esm/bq-accordion.entry.js.map +1 -1
  397. package/dist/esm/bq-alert.entry.js +7 -7
  398. package/dist/esm/bq-alert.entry.js.map +1 -1
  399. package/dist/esm/bq-avatar.entry.js +14 -14
  400. package/dist/esm/bq-avatar.entry.js.map +1 -1
  401. package/dist/esm/bq-badge.entry.js +5 -5
  402. package/dist/esm/bq-badge.entry.js.map +1 -1
  403. package/dist/esm/bq-breadcrumb-item.entry.js +5 -5
  404. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  405. package/dist/esm/bq-breadcrumb.entry.js +3 -3
  406. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  407. package/dist/esm/bq-button_2.entry.js +6 -6
  408. package/dist/esm/bq-button_2.entry.js.map +1 -1
  409. package/dist/esm/bq-card.entry.js +6 -6
  410. package/dist/esm/bq-card.entry.js.map +1 -1
  411. package/dist/esm/bq-checkbox.entry.js +4 -4
  412. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  413. package/dist/esm/bq-date-picker.entry.js +52 -16
  414. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  415. package/dist/esm/bq-dialog.entry.js +19 -9
  416. package/dist/esm/bq-dialog.entry.js.map +1 -1
  417. package/dist/esm/bq-divider.entry.js +36 -37
  418. package/dist/esm/bq-divider.entry.js.map +1 -1
  419. package/dist/esm/bq-drawer.entry.js +68 -36
  420. package/dist/esm/bq-drawer.entry.js.map +1 -1
  421. package/dist/esm/bq-dropdown_2.entry.js +6 -6
  422. package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
  423. package/dist/esm/bq-empty-state.entry.js +15 -15
  424. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  425. package/dist/esm/bq-input.entry.js +6 -6
  426. package/dist/esm/bq-input.entry.js.map +1 -1
  427. package/dist/esm/bq-notification.entry.js +5 -5
  428. package/dist/esm/bq-notification.entry.js.map +1 -1
  429. package/dist/esm/bq-option-group.entry.js +3 -3
  430. package/dist/esm/bq-option-group.entry.js.map +1 -1
  431. package/dist/esm/bq-option-list_2.entry.js +6 -6
  432. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  433. package/dist/esm/bq-option.entry.js +6 -6
  434. package/dist/esm/bq-option.entry.js.map +1 -1
  435. package/dist/esm/bq-page-title.entry.js +61 -0
  436. package/dist/esm/bq-page-title.entry.js.map +1 -0
  437. package/dist/esm/bq-progress.entry.js +8 -8
  438. package/dist/esm/bq-progress.entry.js.map +1 -1
  439. package/dist/esm/bq-radio-group.entry.js +3 -3
  440. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  441. package/dist/esm/bq-radio.entry.js +4 -4
  442. package/dist/esm/bq-radio.entry.js.map +1 -1
  443. package/dist/esm/bq-select.entry.js +6 -6
  444. package/dist/esm/bq-select.entry.js.map +1 -1
  445. package/dist/esm/bq-side-menu-item.entry.js +2 -2
  446. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  447. package/dist/esm/bq-side-menu.entry.js +3 -3
  448. package/dist/esm/bq-side-menu.entry.js.map +1 -1
  449. package/dist/esm/bq-slider.entry.js +8 -8
  450. package/dist/esm/bq-slider.entry.js.map +1 -1
  451. package/dist/esm/bq-spinner.entry.js +6 -6
  452. package/dist/esm/bq-spinner.entry.js.map +1 -1
  453. package/dist/esm/bq-status.entry.js +3 -3
  454. package/dist/esm/bq-status.entry.js.map +1 -1
  455. package/dist/esm/bq-step-item.entry.js +9 -9
  456. package/dist/esm/bq-step-item.entry.js.map +1 -1
  457. package/dist/esm/bq-steps.entry.js +5 -5
  458. package/dist/esm/bq-steps.entry.js.map +1 -1
  459. package/dist/esm/bq-switch.entry.js +5 -5
  460. package/dist/esm/bq-switch.entry.js.map +1 -1
  461. package/dist/esm/bq-tab-group.entry.js +3 -3
  462. package/dist/esm/bq-tab-group.entry.js.map +1 -1
  463. package/dist/esm/bq-tab.entry.js +4 -4
  464. package/dist/esm/bq-tab.entry.js.map +1 -1
  465. package/dist/esm/bq-textarea.entry.js +5 -5
  466. package/dist/esm/bq-textarea.entry.js.map +1 -1
  467. package/dist/esm/bq-toast.entry.js +3 -3
  468. package/dist/esm/bq-toast.entry.js.map +1 -1
  469. package/dist/esm/bq-tooltip.entry.js +4 -4
  470. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  471. package/dist/esm/{index-359de4ba.js → index-138f308e.js} +29 -17
  472. package/dist/esm/index-138f308e.js.map +1 -0
  473. package/dist/esm/{index-81f7322c.js → index-93763e96.js} +785 -767
  474. package/dist/esm/index-93763e96.js.map +1 -0
  475. package/dist/esm/loader.js +4 -4
  476. package/dist/hydrate/index.d.ts +29 -11
  477. package/dist/hydrate/index.js +789 -591
  478. package/dist/hydrate/index.mjs +26516 -0
  479. package/dist/hydrate/package.json +7 -1
  480. package/dist/loader/index.d.ts +3 -0
  481. package/dist/types/components/accordion/bq-accordion.d.ts +7 -0
  482. package/dist/types/components/accordion-group/bq-accordion-group.d.ts +7 -2
  483. package/dist/types/components/avatar/bq-avatar.d.ts +1 -1
  484. package/dist/types/components/checkbox/bq-checkbox.d.ts +1 -1
  485. package/dist/types/components/date-picker/bq-date-picker.d.ts +44 -31
  486. package/dist/types/components/dialog/bq-dialog.d.ts +2 -0
  487. package/dist/types/components/divider/bq-divider.d.ts +4 -4
  488. package/dist/types/components/drawer/bq-drawer.d.ts +19 -12
  489. package/dist/types/components/drawer/bq-drawer.types.d.ts +2 -0
  490. package/dist/types/components/dropdown/bq-dropdown.d.ts +2 -2
  491. package/dist/types/components/page-title/bq-page-title.d.ts +20 -0
  492. package/dist/types/components/panel/bq-panel.d.ts +2 -2
  493. package/dist/types/components/select/bq-select.d.ts +2 -2
  494. package/dist/types/components/step-item/bq-step-item.d.ts +2 -1
  495. package/dist/types/components/tooltip/bq-tooltip.d.ts +2 -2
  496. package/dist/types/components.d.ts +69 -21
  497. package/dist/types/global/scripts/global.d.ts +6 -1
  498. package/dist/types/services/interfaces/floating-ui.d.ts +1 -1
  499. package/dist/types/shared/test-utils/setProperties.d.ts +1 -1
  500. package/dist/types/stencil-public-runtime.d.ts +0 -2
  501. package/package.json +4 -5
  502. package/dist/beeq/p-011648c1.entry.js.map +0 -1
  503. package/dist/beeq/p-1cec06b2.entry.js.map +0 -1
  504. package/dist/beeq/p-1d3a8563.entry.js.map +0 -1
  505. package/dist/beeq/p-1e0341c2.entry.js +0 -6
  506. package/dist/beeq/p-1e0341c2.entry.js.map +0 -1
  507. package/dist/beeq/p-2ae112f2.entry.js.map +0 -1
  508. package/dist/beeq/p-32a540a3.entry.js.map +0 -1
  509. package/dist/beeq/p-40a04899.entry.js +0 -6
  510. package/dist/beeq/p-40a04899.entry.js.map +0 -1
  511. package/dist/beeq/p-4161e228.entry.js.map +0 -1
  512. package/dist/beeq/p-44e85cc7.entry.js.map +0 -1
  513. package/dist/beeq/p-4569a7eb.entry.js +0 -6
  514. package/dist/beeq/p-4569a7eb.entry.js.map +0 -1
  515. package/dist/beeq/p-46efe162.entry.js.map +0 -1
  516. package/dist/beeq/p-4d9f03d7.entry.js.map +0 -1
  517. package/dist/beeq/p-59406ccb.entry.js.map +0 -1
  518. package/dist/beeq/p-60cfdd95.js +0 -6
  519. package/dist/beeq/p-60cfdd95.js.map +0 -1
  520. package/dist/beeq/p-7c0139af.js.map +0 -1
  521. package/dist/beeq/p-91fe8d9d.entry.js.map +0 -1
  522. package/dist/beeq/p-99569b08.entry.js.map +0 -1
  523. package/dist/beeq/p-9bc568c2.entry.js.map +0 -1
  524. package/dist/beeq/p-a2788d92.entry.js.map +0 -1
  525. package/dist/beeq/p-b38f3575.entry.js.map +0 -1
  526. package/dist/beeq/p-b687639a.entry.js.map +0 -1
  527. package/dist/beeq/p-b7fb06dd.entry.js +0 -6
  528. package/dist/beeq/p-b7fb06dd.entry.js.map +0 -1
  529. package/dist/beeq/p-b8534cc7.entry.js.map +0 -1
  530. package/dist/beeq/p-b9455ea4.js +0 -7
  531. package/dist/beeq/p-b9455ea4.js.map +0 -1
  532. package/dist/beeq/p-bfcc83f2.entry.js +0 -6
  533. package/dist/beeq/p-bfcc83f2.entry.js.map +0 -1
  534. package/dist/beeq/p-c334917a.entry.js.map +0 -1
  535. package/dist/beeq/p-c70d895b.entry.js.map +0 -1
  536. package/dist/beeq/p-ca3eee1b.entry.js.map +0 -1
  537. package/dist/beeq/p-d1bec6cf.entry.js.map +0 -1
  538. package/dist/beeq/p-e1bf8339.entry.js +0 -6
  539. package/dist/beeq/p-e1bf8339.entry.js.map +0 -1
  540. package/dist/beeq/p-e6b0af67.entry.js.map +0 -1
  541. package/dist/beeq/p-eb910b4f.entry.js +0 -6
  542. package/dist/beeq/p-eb910b4f.entry.js.map +0 -1
  543. package/dist/beeq/p-f6215382.entry.js.map +0 -1
  544. package/dist/beeq/p-f8324eef.entry.js.map +0 -1
  545. package/dist/cjs/index-57a40a5c.js.map +0 -1
  546. package/dist/cjs/index-a08b6938.js.map +0 -1
  547. package/dist/collection/components/accordion/__tests__/bq-accordion.e2e.js +0 -101
  548. package/dist/collection/components/accordion/__tests__/bq-accordion.e2e.js.map +0 -1
  549. package/dist/collection/components/accordion-group/__tests__/bq-accordion-group.e2e.js +0 -156
  550. package/dist/collection/components/accordion-group/__tests__/bq-accordion-group.e2e.js.map +0 -1
  551. package/dist/collection/components/alert/__tests__/bq-alert.e2e.js +0 -119
  552. package/dist/collection/components/alert/__tests__/bq-alert.e2e.js.map +0 -1
  553. package/dist/collection/components/avatar/__tests__/bq-avatar.e2e.js +0 -75
  554. package/dist/collection/components/avatar/__tests__/bq-avatar.e2e.js.map +0 -1
  555. package/dist/collection/components/badge/__tests__/bq-badge.e2e.js +0 -52
  556. package/dist/collection/components/badge/__tests__/bq-badge.e2e.js.map +0 -1
  557. package/dist/collection/components/breadcrumb/__tests__/bq-breadcrumb.e2e.js +0 -88
  558. package/dist/collection/components/breadcrumb/__tests__/bq-breadcrumb.e2e.js.map +0 -1
  559. package/dist/collection/components/breadcrumb-item/__tests__/bq-breadcrumb-item.e2e.js +0 -38
  560. package/dist/collection/components/breadcrumb-item/__tests__/bq-breadcrumb-item.e2e.js.map +0 -1
  561. package/dist/collection/components/button/__tests__/bq-button.e2e.js +0 -162
  562. package/dist/collection/components/button/__tests__/bq-button.e2e.js.map +0 -1
  563. package/dist/collection/components/card/__tests__/bq-card.e2e.js +0 -43
  564. package/dist/collection/components/card/__tests__/bq-card.e2e.js.map +0 -1
  565. package/dist/collection/components/checkbox/__tests__/bq-checkbox.e2e.js +0 -89
  566. package/dist/collection/components/checkbox/__tests__/bq-checkbox.e2e.js.map +0 -1
  567. package/dist/collection/components/date-picker/__tests__/bq-date-picker.e2e.js +0 -67
  568. package/dist/collection/components/date-picker/__tests__/bq-date-picker.e2e.js.map +0 -1
  569. package/dist/collection/components/dialog/__tests__/bq-dialog.e2e.js +0 -32
  570. package/dist/collection/components/dialog/__tests__/bq-dialog.e2e.js.map +0 -1
  571. package/dist/collection/components/divider/__tests__/bq-divider.e2e.js +0 -59
  572. package/dist/collection/components/divider/__tests__/bq-divider.e2e.js.map +0 -1
  573. package/dist/collection/components/drawer/__tests__/bq-drawer.e2e.js +0 -123
  574. package/dist/collection/components/drawer/__tests__/bq-drawer.e2e.js.map +0 -1
  575. package/dist/collection/components/dropdown/__tests__/bq-dropdown.e2e.js +0 -78
  576. package/dist/collection/components/dropdown/__tests__/bq-dropdown.e2e.js.map +0 -1
  577. package/dist/collection/components/empty-state/__tests__/bq-empty-state.e2e.js +0 -34
  578. package/dist/collection/components/empty-state/__tests__/bq-empty-state.e2e.js.map +0 -1
  579. package/dist/collection/components/icon/__tests__/bq-icon.e2e.js +0 -68
  580. package/dist/collection/components/icon/__tests__/bq-icon.e2e.js.map +0 -1
  581. package/dist/collection/components/icon/helper/icons-set.js +0 -1262
  582. package/dist/collection/components/icon/helper/icons-set.js.map +0 -1
  583. package/dist/collection/components/input/__tests__/bq-input.e2e.js +0 -113
  584. package/dist/collection/components/input/__tests__/bq-input.e2e.js.map +0 -1
  585. package/dist/collection/components/notification/__tests__/bq-notification.e2e.js +0 -119
  586. package/dist/collection/components/notification/__tests__/bq-notification.e2e.js.map +0 -1
  587. package/dist/collection/components/option/__tests__/bq-option.e2e.js +0 -125
  588. package/dist/collection/components/option/__tests__/bq-option.e2e.js.map +0 -1
  589. package/dist/collection/components/option-group/__tests__/bq-option-group.e2e.js +0 -77
  590. package/dist/collection/components/option-group/__tests__/bq-option-group.e2e.js.map +0 -1
  591. package/dist/collection/components/option-list/__tests__/bq-option-list.e2e.js +0 -55
  592. package/dist/collection/components/option-list/__tests__/bq-option-list.e2e.js.map +0 -1
  593. package/dist/collection/components/panel/__tests__/bq-panel.e2e.js +0 -43
  594. package/dist/collection/components/panel/__tests__/bq-panel.e2e.js.map +0 -1
  595. package/dist/collection/components/progress/__tests__/bq-progress.e2e.js +0 -97
  596. package/dist/collection/components/progress/__tests__/bq-progress.e2e.js.map +0 -1
  597. package/dist/collection/components/radio/__tests__/bq-radio.e2e.js +0 -94
  598. package/dist/collection/components/radio/__tests__/bq-radio.e2e.js.map +0 -1
  599. package/dist/collection/components/select/__tests__/bq-select.e2e.js +0 -167
  600. package/dist/collection/components/select/__tests__/bq-select.e2e.js.map +0 -1
  601. package/dist/collection/components/side-menu/__tests__/bq-side-menu.e2e.js +0 -76
  602. package/dist/collection/components/side-menu/__tests__/bq-side-menu.e2e.js.map +0 -1
  603. package/dist/collection/components/side-menu-item/__tests__/bq-side-menu-item.e2e.js +0 -127
  604. package/dist/collection/components/side-menu-item/__tests__/bq-side-menu-item.e2e.js.map +0 -1
  605. package/dist/collection/components/slider/__tests__/bq-slider.e2e.js +0 -113
  606. package/dist/collection/components/slider/__tests__/bq-slider.e2e.js.map +0 -1
  607. package/dist/collection/components/spinner/__tests__/bq-spinner.e2e.js +0 -117
  608. package/dist/collection/components/spinner/__tests__/bq-spinner.e2e.js.map +0 -1
  609. package/dist/collection/components/status/__tests__/bq-status.e2e.js +0 -63
  610. package/dist/collection/components/status/__tests__/bq-status.e2e.js.map +0 -1
  611. package/dist/collection/components/step-item/__tests__/bq-step-item.e2e.js +0 -75
  612. package/dist/collection/components/step-item/__tests__/bq-step-item.e2e.js.map +0 -1
  613. package/dist/collection/components/steps/__tests__/bq-steps.e2e.js +0 -48
  614. package/dist/collection/components/steps/__tests__/bq-steps.e2e.js.map +0 -1
  615. package/dist/collection/components/switch/__tests__/bq-switch.e2e.js +0 -72
  616. package/dist/collection/components/switch/__tests__/bq-switch.e2e.js.map +0 -1
  617. package/dist/collection/components/tab/__tests__/bq-tab.e2e.js +0 -97
  618. package/dist/collection/components/tab/__tests__/bq-tab.e2e.js.map +0 -1
  619. package/dist/collection/components/tab-group/__tests__/bq-tab-group.e2e.js +0 -102
  620. package/dist/collection/components/tab-group/__tests__/bq-tab-group.e2e.js.map +0 -1
  621. package/dist/collection/components/tag/__tests__/bq-tag.e2e.js +0 -102
  622. package/dist/collection/components/tag/__tests__/bq-tag.e2e.js.map +0 -1
  623. package/dist/collection/components/textarea/__tests__/bq-textarea.e2e.js +0 -120
  624. package/dist/collection/components/textarea/__tests__/bq-textarea.e2e.js.map +0 -1
  625. package/dist/collection/components/toast/__tests__/bq-toast.e2e.js +0 -108
  626. package/dist/collection/components/toast/__tests__/bq-toast.e2e.js.map +0 -1
  627. package/dist/collection/components/tooltip/__tests__/bq-tooltip.e2e.js +0 -80
  628. package/dist/collection/components/tooltip/__tests__/bq-tooltip.e2e.js.map +0 -1
  629. package/dist/esm/index-359de4ba.js.map +0 -1
  630. package/dist/esm/index-81f7322c.js.map +0 -1
  631. package/dist/types/components/icon/helper/icons-set.d.ts +0 -8
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { h } from "@stencil/core";
6
6
  import { DATE_PICKER_TYPE } from "./bq-date-picker.types";
7
- import { hasSlotContent, isDefined, isHTMLElement, validatePropValue } from "../../shared/utils";
7
+ import { hasSlotContent, isDefined, isEventTargetChildOfElement, isHTMLElement, validatePropValue, } from "../../shared/utils";
8
8
  /**
9
9
  * @part base - The component's base wrapper.
10
10
  * @part button - The native HTML button used under the hood in the clear button.
@@ -17,38 +17,38 @@ import { hasSlotContent, isDefined, isHTMLElement, validatePropValue } from "../
17
17
  * @part suffix - The suffix slot container.
18
18
 
19
19
  // Parts from the Cally library for calendar-date and calendar-range components:
20
- * @part container - The container for the entire component.
21
- * @part header - The container for heading and button's.
22
- * @part button - Any button within the component.
23
- * @part previous - The previous page button.
24
- * @part next - The next page button.
25
- * @part disabled - A button that is disabled due to min/max.
26
- * @part heading - The heading containing the month and year.
20
+ * @part calendar__container - The container for the entire component.
21
+ * @part calendar__header - The container for heading and button's.
22
+ * @part calendar__button - Any button within the component.
23
+ * @part calendar__previous - The previous page button.
24
+ * @part calendar__next - The next page button.
25
+ * @part calendar__disabled - A button that is disabled due to min/max.
26
+ * @part calendar__heading - The heading containing the month and year.
27
27
 
28
28
  // Parts specific to the calendar-month component:
29
- * @part heading - The heading that labels the month.
30
- * @part table - The <table> element.
31
- * @part tr - Any row within the table.
32
- * @part head - The table's header row.
33
- * @part week - The table's body rows.
34
- * @part th - The table's header cells.
35
- * @part td - The table's body cells.
36
- * @part button - Any button used in the component.
37
- * @part day - The buttons corresponding to each day in the grid.
38
- * @part selected - Any days which are selected.
39
- * @part today - Today's day.
40
- * @part disallowed - Any day that has been disallowed via isDateDisallowed.
41
- * @part outside - Any days which are outside the current month.
42
- * @part range-start - The day at the start of a date range.
43
- * @part range-end - The day at the end of a date range.
44
- * @part range-inner - Any days between the start and end of a date range.
29
+ * @part calendar__heading - The heading that labels the month.
30
+ * @part calendar__table - The <table> element.
31
+ * @part calendar__tr - Any row within the table.
32
+ * @part calendar__head - The table's header row.
33
+ * @part calendar__week - The table's body rows.
34
+ * @part calendar__th - The table's header cells.
35
+ * @part calendar__td - The table's body cells.
36
+ * @part calendar__button - Any button used in the component.
37
+ * @part calendar__day - The buttons corresponding to each day in the grid.
38
+ * @part calendar__selected - Any days which are selected.
39
+ * @part calendar__today - Today's day.
40
+ * @part calendar__disallowed - Any day that has been disallowed via isDateDisallowed.
41
+ * @part calendar__outside - Any days which are outside the current month.
42
+ * @part calendar__range-start - The day at the start of a date range.
43
+ * @part calendar__range-end - The day at the end of a date range.
44
+ * @part calendar__range-inner - Any days between the start and end of a date range.
45
45
  */
46
46
  export class BqDatePicker {
47
47
  constructor() {
48
48
  this.fallbackInputId = 'date-picker';
49
49
  // Export parts of the calendar-month component
50
- this.COMMON_EXPORT_PARTS = 'heading,table,tr,head,week,th,td';
51
- this.BUTTON_EXPORT_PARTS = 'button,day,selected,today,disallowed,outside,range-start,range-end,range-inner';
50
+ this.COMMON_EXPORT_PARTS = 'calendar__heading,calendar__table,calendar__tr,calendar__head,calendar__week,calendar__th,calendar__td';
51
+ this.BUTTON_EXPORT_PARTS = 'calendar__button,calendar__day,calendar__selected,calendar__today,calendar__disallowed,calendar__outside,calendar__range-start,calendar__range-end,calendar__range-inner';
52
52
  // Local methods
53
53
  // Internal business logic.
54
54
  // These methods cannot be called from the host element.
@@ -63,6 +63,15 @@ export class BqDatePicker {
63
63
  return;
64
64
  this.bqFocus.emit(this.el);
65
65
  };
66
+ this.setFocusedDate = () => {
67
+ if (!this.callyElem)
68
+ return;
69
+ // We need to set the focused date in the calendar component via a ref
70
+ // because it doesn't work when passed as a prop (the Cally element does not re-render)
71
+ this.callyElem.focusedDate = this.value
72
+ ? this.formatFocusedDate(this.value)
73
+ : new Date().toLocaleDateString('fr-CA');
74
+ };
66
75
  this.handleChange = (ev) => {
67
76
  if (this.disabled)
68
77
  return;
@@ -72,24 +81,32 @@ export class BqDatePicker {
72
81
  if (!isNaN(dateValue.getTime())) {
73
82
  // We need to force the value to respect the format: yyyy-mm-dd, hence the hardcoded locale
74
83
  this.value = dateValue.toLocaleDateString('fr-CA');
75
- this.formattedDate = this.formatDate(this.value);
84
+ this.displayDate = this.formatDisplayValue(this.value);
76
85
  this.bqChange.emit({ value: this.value, el: this.el });
77
86
  }
78
87
  };
79
88
  this.handleCalendarChange = (ev) => {
80
89
  const { value } = ev.target;
81
90
  this.value = value;
82
- this.formattedDate = this.formatDate(this.value);
83
- this.inputElem.value = this.formattedDate;
91
+ this.displayDate = this.formatDisplayValue(this.value);
92
+ this.inputElem.value = this.displayDate;
84
93
  this.inputElem.focus();
85
94
  this.bqChange.emit({ value: this.value, el: this.el });
86
95
  this.open = this.type === 'multi';
87
96
  };
97
+ this.handleCalendarRangeStart = (ev) => {
98
+ this.hasRangeEnd = false;
99
+ this.tentative = new Date(ev.detail).toLocaleDateString('fr-CA');
100
+ };
101
+ this.handleCalendarRangeEnd = () => {
102
+ this.hasRangeEnd = true;
103
+ };
88
104
  this.handleClearClick = (ev) => {
89
105
  if (this.disabled)
90
106
  return;
91
107
  this.inputElem.value = '';
92
108
  this.value = this.inputElem.value;
109
+ this.hasRangeEnd = false;
93
110
  this.bqClear.emit(this.el);
94
111
  this.bqChange.emit({ value: this.value, el: this.el });
95
112
  this.inputElem.focus();
@@ -138,14 +155,14 @@ export class BqDatePicker {
138
155
  * @param value - The value to be processed, can be a string.
139
156
  * @returns The extracted last date portion of the value.
140
157
  */
141
- this.focusedDate = (value) => {
158
+ this.formatFocusedDate = (value) => {
142
159
  if (!value)
143
160
  return;
144
161
  const dateRegex = /\b\d{4}-\d{2}-\d{2}\b/;
145
162
  const match = dateRegex.exec(value);
146
163
  return match ? match[0] : null;
147
164
  };
148
- this.formatDate = (value) => {
165
+ this.formatDisplayValue = (value) => {
149
166
  if (!value)
150
167
  return;
151
168
  const dateFormatter = new Intl.DateTimeFormat(this.locale, this.formatOptions);
@@ -159,9 +176,11 @@ export class BqDatePicker {
159
176
  }
160
177
  return dateFormatter.format(new Date(value));
161
178
  };
162
- this.formattedDate = undefined;
179
+ this.focusedDate = undefined;
180
+ this.displayDate = undefined;
163
181
  this.hasLabel = false;
164
182
  this.hasPrefix = false;
183
+ this.hasRangeEnd = false;
165
184
  this.hasSuffix = false;
166
185
  this.hasValue = false;
167
186
  this.autofocus = undefined;
@@ -181,7 +200,7 @@ export class BqDatePicker {
181
200
  this.max = undefined;
182
201
  this.min = undefined;
183
202
  this.months = undefined;
184
- this.monthsPerView = 1;
203
+ this.monthsPerView = 'single';
185
204
  this.name = undefined;
186
205
  this.open = false;
187
206
  this.panelHeight = 'auto';
@@ -191,6 +210,7 @@ export class BqDatePicker {
191
210
  this.skidding = 0;
192
211
  this.showOutsideDays = false;
193
212
  this.strategy = 'fixed';
213
+ this.tentative = undefined;
194
214
  this.type = 'single';
195
215
  this.validationStatus = 'none';
196
216
  this.value = undefined;
@@ -202,8 +222,9 @@ export class BqDatePicker {
202
222
  this.hasValue = this.value.some((val) => val.length > 0);
203
223
  return;
204
224
  }
205
- this.formattedDate = this.formatDate(this.value);
206
225
  this.hasValue = isDefined(this.value);
226
+ this.displayDate = this.formatDisplayValue(this.value);
227
+ this.setFocusedDate();
207
228
  }
208
229
  checkPropValues() {
209
230
  validatePropValue(DATE_PICKER_TYPE, 'single', this.el, 'type');
@@ -211,7 +232,7 @@ export class BqDatePicker {
211
232
  // Component lifecycle events
212
233
  // Ordered by their natural call order
213
234
  // =====================================
214
- componentDidLoad() {
235
+ connectedCallback() {
215
236
  this.handleValueChange();
216
237
  }
217
238
  // Listeners
@@ -220,6 +241,20 @@ export class BqDatePicker {
220
241
  if (!ev.composedPath().includes(this.el))
221
242
  return;
222
243
  this.open = ev.detail.open;
244
+ this.setFocusedDate();
245
+ }
246
+ handleClickOutside(ev) {
247
+ const { open, type, hasRangeEnd } = this;
248
+ if (!open || type !== 'range' || ev.button !== 0)
249
+ return;
250
+ if (isEventTargetChildOfElement(ev, this.el) || hasRangeEnd)
251
+ return;
252
+ if (isEventTargetChildOfElement(ev, this.el))
253
+ return;
254
+ if (!hasRangeEnd) {
255
+ this.tentative = undefined;
256
+ this.hasRangeEnd = false;
257
+ }
223
258
  }
224
259
  // Public methods API
225
260
  // These methods are exposed on the host element.
@@ -254,16 +289,16 @@ export class BqDatePicker {
254
289
  render() {
255
290
  const CallyCalendar = this.CalendarType;
256
291
  const labelId = `bq-date-picker__label-${this.name || this.fallbackInputId}`;
257
- return (h("div", { key: 'df35ce5297fda3dc59c88f2e3c6a06e81d7dfb85', class: "bq-date-picker", part: "base" }, h("label", { key: '0ceb3db82238ef54d193d7e1a62e14af837d8e8c', id: labelId, class: { 'bq-date-picker__label': true, '!hidden': !this.hasLabel }, htmlFor: this.name || this.fallbackInputId, ref: (labelElem) => (this.labelElem = labelElem), part: "label" }, h("slot", { key: '05a62c89da28bfc958d606931af4a02c558e1a60', name: "label", onSlotchange: this.handleLabelSlotChange })), h("bq-dropdown", { key: 'c031406764fcb7d053fba4cd94bc86dc133fc05f', class: "bq-date-picker__dropdown w-full [&::part(panel)]:w-auto [&::part(panel)]:p-m", disabled: this.disabled, distance: this.distance, open: this.open, panelHeight: this.panelHeight, placement: this.placement, skidding: this.skidding, strategy: this.strategy, exportparts: "panel" }, h("div", { key: 'bc5f93af9af5314ce6e6f7a74c929be12b974d5b', class: {
292
+ return (h("div", { key: '23970186f37c0585f0b50de1fc9d264c5f577a03', class: "bq-date-picker", part: "base" }, h("label", { key: 'c407e552cc0dce36d9a05bb392546dedd4e6e82b', id: labelId, class: { 'bq-date-picker__label': true, '!hidden': !this.hasLabel }, htmlFor: this.name || this.fallbackInputId, ref: (labelElem) => (this.labelElem = labelElem), part: "label" }, h("slot", { key: '246b3098f625b721ef043cd8933a57572351ad48', name: "label", onSlotchange: this.handleLabelSlotChange })), h("bq-dropdown", { key: '19d6b446c8e555e3c3ff7e38dbb3d480d3cbbcea', class: "bq-date-picker__dropdown is-full [&::part(panel)]:p-m [&::part(panel)]:is-auto", disabled: this.disabled, distance: this.distance, open: this.open, panelHeight: this.panelHeight, placement: this.placement, skidding: this.skidding, strategy: this.strategy, exportparts: "panel" }, h("div", { key: '3800a2557e86062aa95a054259822da0e510cbd4', class: {
258
293
  'bq-date-picker__control': true,
259
294
  [`validation-${this.validationStatus}`]: true,
260
295
  disabled: this.disabled,
261
- }, part: "control", slot: "trigger" }, h("span", { key: '8b74505e49ba28441c53dfdc259d6e6836a0337e', class: { 'bq-date-picker__control--prefix': true, '!hidden': !this.hasPrefix }, ref: (spanElem) => (this.prefixElem = spanElem), part: "prefix" }, h("slot", { key: '1d088c73628b00f492765e6f712d817c7e6218dc', name: "prefix", onSlotchange: this.handlePrefixSlotChange })), h("input", { key: 'aa4c4adcb892a6378664739d583cde9d395fcd9c', id: this.name || this.fallbackInputId, class: "bq-date-picker__control--input", autoComplete: "off", autoCapitalize: "off", autoFocus: this.autofocus, "aria-disabled": this.disabled ? 'true' : 'false', "aria-controls": `${this.name}`, "aria-haspopup": "dialog", disabled: this.disabled, form: this.form, name: this.name, placeholder: this.placeholder, readonly: this.type !== 'single', ref: (inputElem) => (this.inputElem = inputElem), required: this.required, spellcheck: false, type: "text", value: this.formattedDate, part: "input",
296
+ }, part: "control", slot: "trigger" }, h("span", { key: 'ab94e4a578a2a2dd071897e0bd66f939d660deea', class: { 'bq-date-picker__control--prefix': true, '!hidden': !this.hasPrefix }, ref: (spanElem) => (this.prefixElem = spanElem), part: "prefix" }, h("slot", { key: 'e316dd969cdac1c183a6947f30fea8931fa42a4a', name: "prefix", onSlotchange: this.handlePrefixSlotChange })), h("input", { key: '306b1b13598a86dae70af8a11e06a706867f2fd7', id: this.name || this.fallbackInputId, class: "bq-date-picker__control--input", autoComplete: "off", autoCapitalize: "off", autoFocus: this.autofocus, "aria-disabled": this.disabled ? 'true' : 'false', "aria-controls": `${this.name}`, "aria-haspopup": "dialog", disabled: this.disabled, form: this.form, name: this.name, placeholder: this.placeholder, readonly: this.type !== 'single', ref: (inputElem) => (this.inputElem = inputElem), required: this.required, spellcheck: false, type: "text", value: this.displayDate, part: "input",
262
297
  // Events
263
298
  onBlur: this.handleBlur, onFocus: this.handleFocus, onChange: this.handleChange }), this.hasValue && !this.disabled && !this.disableClear && (
264
299
  // The clear button will be visible as long as the input has a value
265
300
  // and the parent group is hovered or has focus-within
266
- h("bq-button", { key: 'ba2b203dac9f3cdbbbf3261de22f9dd200774532', class: "bq-date-picker__control--clear ms-[--bq-date-picker--gap] hidden", appearance: "text", "aria-label": this.clearButtonLabel, size: "small", onBqClick: this.handleClearClick, part: "clear-btn", exportparts: "button" }, h("slot", { key: '6fa6b03d2ef5c9d047d8fae4dffec6c5936471a6', name: "clear-icon" }, h("bq-icon", { key: 'be4d9fcddcdf44dcc12b6dc877ca550a2d6d1ac1', weight: "bold", name: "x-circle", class: "flex" })))), h("span", { key: 'e39ea85dd0552d8bf2ef5e09c1ca739b71a08574', class: "bq-date-picker__control--suffix", ref: (spanElem) => (this.suffixElem = spanElem), part: "suffix" }, h("slot", { key: '2df089de0d33a4792de1e5747601cc68ca54bbd1', name: "suffix", onSlotchange: this.handleSuffixSlotChange }, h("bq-icon", { key: 'e5f8639ef10ab86af5489e9bc7596d4094362bf5', name: "calendar-blank", weight: "bold", class: "flex" })))), h("div", { key: '0b1d96b7b24a684367b520a6c27d97cbf420449c', class: "flex items-center justify-center" }, h(CallyCalendar, { key: 'c8f9c078979af83eca9c000feead81f93bc9f9df', isDateDisallowed: this.isDateDisallowed, locale: this.locale, value: this.value, min: this.min, max: this.max, months: this.monthsPerView, focusedDate: this.focusedDate(this.value), firstDayOfWeek: this.firstDayOfWeek, showOutsideDays: this.showOutsideDays, onChange: this.handleCalendarChange, exportparts: "container,header,button,previous,next,disabled,heading" }, h("bq-icon", { key: '71b97efbf26c6a9fa9da15c6f953c6eb53dd11aa', color: "text--primary", slot: "previous", name: "caret-left", label: "Previous" }), h("bq-icon", { key: '8b5864fd18af8b6fda8be4422257903dfc34d978', color: "text--primary", slot: "next", name: "caret-right", label: "Next" }), h("div", { key: '7b3ec9daef1d3efce65ed73aa4274637c44df062', class: "flex flex-wrap justify-center gap-[--bq-spacing-m]" }, this.generateCalendarMonths()))))));
301
+ h("bq-button", { key: 'af6bef4b88093d1532eeae6f837175556c947832', class: "bq-date-picker__control--clear ms-[--bq-date-picker--gap] hidden", appearance: "text", "aria-label": this.clearButtonLabel, size: "small", onBqClick: this.handleClearClick, part: "clear-btn", exportparts: "button" }, h("slot", { key: '44739e6e7e6dc5905d84bceef36340f81eb4877c', name: "clear-icon" }, h("bq-icon", { key: '776a2cfb07fc752dcb8b97bb98f520e56cba9bab', weight: "bold", name: "x-circle", class: "flex" })))), h("span", { key: '41aad634a57f3dd76f11e325d7fecf924ee3d4cf', class: "bq-date-picker__control--suffix", ref: (spanElem) => (this.suffixElem = spanElem), part: "suffix" }, h("slot", { key: '6e5eb0386e703f527f440176e05eb1af8800f6c3', name: "suffix", onSlotchange: this.handleSuffixSlotChange }, h("bq-icon", { key: '5430b1a8ad360064e1efc01ef0277e1330f36681', name: "calendar-blank", weight: "bold", class: "flex" })))), h(CallyCalendar, { key: 'c34cfe5853c9ae50c711aa965783648ad3939628', isDateDisallowed: this.isDateDisallowed, locale: this.locale, value: this.value, min: this.min, max: this.max, months: this.months, tentative: this.tentative, pageBy: this.monthsPerView, firstDayOfWeek: this.firstDayOfWeek, showOutsideDays: this.showOutsideDays, onChange: this.handleCalendarChange, onRangestart: this.handleCalendarRangeStart, onRangeend: this.handleCalendarRangeEnd, exportparts: "container:calendar__container,header:calendar__header,button:calendar__button,previous:calendar__previous,next:calendar__next,disabled:calendar__disabled,heading:calendar__heading", ref: (elem) => (this.callyElem = elem) }, h("bq-icon", { key: '1d6e0ffe468effca24a6fa9171aa9dd89aab7b6e', color: "text--primary", slot: "previous", name: "caret-left", label: "Previous" }), h("bq-icon", { key: '40caab0eecb2402ecc49a3867fe7b867b8331027', color: "text--primary", slot: "next", name: "caret-right", label: "Next" }), h("div", { key: 'f66a39313fd481ba2d8d2754d644749fd2e7d91a', class: "flex flex-wrap justify-center gap-[--bq-spacing-m]" }, this.generateCalendarMonths())))));
267
302
  }
268
303
  static get is() { return "bq-date-picker"; }
269
304
  static get encapsulation() { return "shadow"; }
@@ -526,22 +561,22 @@ export class BqDatePicker {
526
561
  "reflect": true
527
562
  },
528
563
  "monthsPerView": {
529
- "type": "number",
564
+ "type": "string",
530
565
  "mutable": false,
531
566
  "complexType": {
532
- "original": "number",
533
- "resolved": "number",
567
+ "original": "'single' | 'months'",
568
+ "resolved": "\"months\" | \"single\"",
534
569
  "references": {}
535
570
  },
536
571
  "required": false,
537
572
  "optional": false,
538
573
  "docs": {
539
574
  "tags": [],
540
- "text": "The number of months to display per page when using next/previous buttons."
575
+ "text": "Specifies how the next/previous buttons should navigate the calendar.\n- single: The buttons will navigate by a single month at a time.\n- months: The buttons will navigate by the number of months displayed per view."
541
576
  },
542
577
  "attribute": "months-per-view",
543
578
  "reflect": true,
544
- "defaultValue": "1"
579
+ "defaultValue": "'single'"
545
580
  },
546
581
  "name": {
547
582
  "type": "string",
@@ -617,10 +652,10 @@ export class BqDatePicker {
617
652
  "type": "string",
618
653
  "mutable": false,
619
654
  "complexType": {
620
- "original": "FloatingUIPlacement",
655
+ "original": "Placement",
621
656
  "resolved": "\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"",
622
657
  "references": {
623
- "FloatingUIPlacement": {
658
+ "Placement": {
624
659
  "location": "import",
625
660
  "path": "../../services/interfaces",
626
661
  "id": "../../packages/beeq/src/services/interfaces/index.ts::Placement"
@@ -708,6 +743,23 @@ export class BqDatePicker {
708
743
  "reflect": true,
709
744
  "defaultValue": "'fixed'"
710
745
  },
746
+ "tentative": {
747
+ "type": "string",
748
+ "mutable": true,
749
+ "complexType": {
750
+ "original": "string",
751
+ "resolved": "string",
752
+ "references": {}
753
+ },
754
+ "required": false,
755
+ "optional": true,
756
+ "docs": {
757
+ "tags": [],
758
+ "text": "The date that is tentatively selected e.g. the start of a range selection"
759
+ },
760
+ "attribute": "tentative",
761
+ "reflect": true
762
+ },
711
763
  "type": {
712
764
  "type": "string",
713
765
  "mutable": false,
@@ -780,9 +832,11 @@ export class BqDatePicker {
780
832
  }
781
833
  static get states() {
782
834
  return {
783
- "formattedDate": {},
835
+ "focusedDate": {},
836
+ "displayDate": {},
784
837
  "hasLabel": {},
785
838
  "hasPrefix": {},
839
+ "hasRangeEnd": {},
786
840
  "hasSuffix": {},
787
841
  "hasValue": {}
788
842
  };
@@ -914,6 +968,12 @@ export class BqDatePicker {
914
968
  "target": undefined,
915
969
  "capture": true,
916
970
  "passive": false
971
+ }, {
972
+ "name": "click",
973
+ "method": "handleClickOutside",
974
+ "target": "body",
975
+ "capture": true,
976
+ "passive": false
917
977
  }];
918
978
  }
919
979
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bq-date-picker.js","sourceRoot":"","sources":["../../../../../../src/components/date-picker/bq-date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { DATE_PICKER_TYPE, DaysOfWeek, TDatePickerType } from './bq-date-picker.types';\nimport { FloatingUIPlacement } from '../../services/interfaces';\nimport { hasSlotContent, isDefined, isHTMLElement, validatePropValue } from '../../shared/utils';\nimport { TInputValidation } from '../input/bq-input.types';\n\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 input - The native HTML input element used under the hood.\n * @part label - The label slot container.\n * @part panel - The date picker panel container\n * @part prefix - The prefix slot container.\n * @part suffix - The suffix slot container.\n\n// Parts from the Cally library for calendar-date and calendar-range components:\n * @part container - The container for the entire component.\n * @part header - The container for heading and button's.\n * @part button - Any button within the component.\n * @part previous - The previous page button.\n * @part next - The next page button.\n * @part disabled - A button that is disabled due to min/max.\n * @part heading - The heading containing the month and year.\n\n// Parts specific to the calendar-month component:\n * @part heading - The heading that labels the month.\n * @part table - The <table> element.\n * @part tr - Any row within the table.\n * @part head - The table's header row.\n * @part week - The table's body rows.\n * @part th - The table's header cells.\n * @part td - The table's body cells.\n * @part button - Any button used in the component.\n * @part day - The buttons corresponding to each day in the grid.\n * @part selected - Any days which are selected.\n * @part today - Today's day.\n * @part disallowed - Any day that has been disallowed via isDateDisallowed.\n * @part outside - Any days which are outside the current month.\n * @part range-start - The day at the start of a date range.\n * @part range-end - The day at the end of a date range.\n * @part range-inner - Any days between the start and end of a date range.\n */\n@Component({\n tag: 'bq-date-picker',\n styleUrl: './scss/bq-date-picker.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqDatePicker {\n // Own Properties\n // ====================\n\n private inputElem?: HTMLInputElement;\n private labelElem?: HTMLElement;\n private prefixElem?: HTMLElement;\n private suffixElem?: HTMLElement;\n\n private fallbackInputId = 'date-picker';\n\n // Export parts of the calendar-month component\n private readonly COMMON_EXPORT_PARTS = 'heading,table,tr,head,week,th,td';\n private readonly BUTTON_EXPORT_PARTS =\n 'button,day,selected,today,disallowed,outside,range-start,range-end,range-inner';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDatePickerElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() formattedDate: string;\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasSuffix = false;\n @State() hasValue = false;\n\n // Public Property API\n // ========================\n\n /** If `true`, the Date picker input will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /** The clear button aria label */\n @Prop({ reflect: true }) clearButtonLabel? = 'Clear value';\n\n /** If `true`, the clear button won't be displayed */\n @Prop({ reflect: true }) disableClear? = false;\n\n /**\n * Indicates whether the Date picker input is disabled or not.\n * If `true`, the Date picker is disabled and cannot be interacted with.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the Date picker panel and the input element. */\n @Prop({ reflect: true }) distance?: number = 8;\n\n /** The first day of the week, where Sunday is 0, Monday is 1, etc */\n @Prop({ reflect: true }) firstDayOfWeek?: DaysOfWeek = 1;\n\n /** The options to use when formatting the displayed value.\n * Details: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options\n */\n @Prop() formatOptions: Intl.DateTimeFormatOptions = {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n };\n\n /** The ID of the form that the Date picker input belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /** A function that takes a date and returns true if the date should not be selectable */\n @Prop({ reflect: true }) isDateDisallowed?: (date: Date) => boolean;\n\n /** The locale for formatting dates. If not set, will use the browser's locale.\n * Details: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument\n */\n @Prop({ reflect: true }) locale: Intl.LocalesArgument = 'en-GB';\n\n /** The latest date that can be selected */\n @Prop({ reflect: true }) max?: string;\n\n /** The earliest date that can be selected */\n @Prop({ reflect: true }) min?: string;\n\n /** Number of months to show when range is `true` */\n @Prop({ reflect: true }) months: number;\n\n /** The number of months to display per page when using next/previous buttons. */\n @Prop({ reflect: true }) monthsPerView: number = 1;\n\n /** The Date picker input name. */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, the Date picker panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the Date picker panel. */\n @Prop({ reflect: true, mutable: true }) panelHeight?: string = 'auto';\n\n /** The Date picker input placeholder text value */\n @Prop({ reflect: true }) placeholder?: string;\n\n /** Position of the Date picker panel */\n @Prop({ reflect: true }) placement?: FloatingUIPlacement = 'bottom-end';\n\n /** Indicates whether or not the Date picker input is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean;\n\n /** Represents the skidding between the Date picker panel and the input element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Whether to show days outside the month */\n @Prop({ reflect: true }) showOutsideDays: boolean = false;\n\n /** Defines the strategy to position the Date picker panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n /** It defines how the calendar will behave, allowing single date selection, range selection, or multiple date selection */\n @Prop({ reflect: true }) type: TDatePickerType = 'single';\n\n /**\n * The validation status of the Select input.\n *\n * @remarks\n * This property is used to indicate the validation status of the select 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 select input value represents the currently selected date or range and can be used to reset the field to a previous value.\n * All dates are expected in ISO-8601 format (YYYY-MM-DD). */\n @Prop({ reflect: true, mutable: true }) value: string;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n if (Array.isArray(this.value)) {\n this.hasValue = this.value.some((val) => val.length > 0);\n return;\n }\n\n this.formattedDate = this.formatDate(this.value);\n this.hasValue = isDefined(this.value);\n }\n\n @Watch('type')\n checkPropValues() {\n validatePropValue(DATE_PICKER_TYPE, 'single', this.el, 'type');\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<HTMLBqDatePickerElement>;\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; el: HTMLBqDatePickerElement }>;\n\n /** Callback handler emitted when the input value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqDatePickerElement>;\n\n /** Callback handler emitted when the input has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqDatePickerElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentDidLoad() {\n this.handleValueChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqOpen', { capture: true })\n handleOpenChange(ev: CustomEvent<{ open: boolean }>) {\n if (!ev.composedPath().includes(this.el)) return;\n\n this.open = ev.detail.open;\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 * Clears the selected value.\n *\n * @return {Promise<void>}\n * @memberof BqInput\n */\n @Method()\n async clear(): Promise<void> {\n if (this.disabled) return;\n\n this.value = undefined;\n\n this.bqClear.emit(this.el);\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 handleChange = (ev: Event) => {\n if (this.disabled) return;\n\n if (!isHTMLElement(ev.target, 'input')) return;\n\n const dateValue = new Date(ev.target.value);\n if (!isNaN(dateValue.getTime())) {\n // We need to force the value to respect the format: yyyy-mm-dd, hence the hardcoded locale\n this.value = dateValue.toLocaleDateString('fr-CA');\n this.formattedDate = this.formatDate(this.value);\n this.bqChange.emit({ value: this.value, el: this.el });\n }\n };\n\n private handleCalendarChange = (ev: Event) => {\n const { value } = ev.target as unknown as { value: string };\n\n this.value = value;\n this.formattedDate = this.formatDate(this.value);\n this.inputElem.value = this.formattedDate;\n this.inputElem.focus();\n\n this.bqChange.emit({ value: this.value, el: this.el });\n\n this.open = this.type === 'multi';\n };\n\n private handleClearClick = (ev: CustomEvent) => {\n if (this.disabled) return;\n\n this.inputElem.value = '';\n this.value = this.inputElem.value;\n\n this.bqClear.emit(this.el);\n this.bqChange.emit({ value: this.value, el: this.el });\n this.inputElem.focus();\n\n ev.stopPropagation();\n };\n\n private handleLabelSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n };\n\n private handlePrefixSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem);\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem);\n };\n\n private generateCalendarMonth = (offset?: number, className = ''): JSX.Element => {\n return (\n <calendar-month\n offset={offset}\n class={className}\n exportparts={`${this.COMMON_EXPORT_PARTS},${this.BUTTON_EXPORT_PARTS}`}\n />\n );\n };\n\n /**\n * Generates an array of JSX.Element representing calendar months.\n *\n * If the type of the date picker is 'range' or 'multi' and the number of months is specified,\n * it generates an array of calendar months with the specified length. Each month will have an offset\n * and a class name based on its position in the array. The offset is used to determine the month to display,\n * and the class name is used for responsive design.\n *\n * If the type of the date picker is not 'range' or 'multi', or if the number of months is not specified,\n * it generates an array with a single calendar month.\n *\n * @returns {JSX.Element[]} An array of JSX.Element representing calendar months.\n */\n private generateCalendarMonths = (): JSX.Element[] => {\n if (this.type === 'range' || (this.type === 'multi' && this.months)) {\n return Array.from({ length: this.months }, (_, i) => {\n const offset = i > 0 ? i : undefined;\n const className = offset ? 'hidden sm:block' : '';\n return this.generateCalendarMonth(offset, className);\n });\n }\n\n return [this.generateCalendarMonth()];\n };\n\n /**\n * Extracts and returns the first date part from a given string.\n * When the type of the date picker is 'range' or 'multi', the first or initial date part of the value\n * should be the focused date in the calendar.\n *\n * @param value - The value to be processed, can be a string.\n * @returns The extracted last date portion of the value.\n */\n private focusedDate = (value: string) => {\n if (!value) return;\n\n const dateRegex = /\\b\\d{4}-\\d{2}-\\d{2}\\b/;\n const match = dateRegex.exec(value);\n return match ? match[0] : null;\n };\n\n private formatDate = (value: string): string | undefined => {\n if (!value) return;\n\n const dateFormatter = new Intl.DateTimeFormat(this.locale, this.formatOptions);\n\n if (this.type === 'range') {\n const [start, end] = value.split('/').map((dateStr) => new Date(dateStr));\n return dateFormatter.formatRange(start, end);\n }\n\n if (this.type === 'multi') {\n const dates = value.split(' ').map((dateStr) => new Date(dateStr));\n return dates.map((date) => dateFormatter.format(date)).join(', ');\n }\n\n return dateFormatter.format(new Date(value));\n };\n\n private get CalendarType() {\n const componentTypes = {\n single: 'calendar-date',\n multi: 'calendar-multi',\n range: 'calendar-range',\n } as const;\n\n // Return the corresponding component type, based on the type prop value\n return componentTypes[this.type] || componentTypes.single;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const CallyCalendar = this.CalendarType;\n const labelId = `bq-date-picker__label-${this.name || this.fallbackInputId}`;\n\n return (\n <div class=\"bq-date-picker\" part=\"base\">\n {/* Label */}\n <label\n id={labelId}\n class={{ 'bq-date-picker__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name || this.fallbackInputId}\n ref={(labelElem: HTMLSpanElement) => (this.labelElem = labelElem)}\n part=\"label\"\n >\n <slot name=\"label\" onSlotchange={this.handleLabelSlotChange} />\n </label>\n {/* Select date picker dropdown */}\n <bq-dropdown\n class=\"bq-date-picker__dropdown w-full [&::part(panel)]:w-auto [&::part(panel)]:p-m\"\n disabled={this.disabled}\n distance={this.distance}\n open={this.open}\n panelHeight={this.panelHeight}\n placement={this.placement}\n skidding={this.skidding}\n strategy={this.strategy}\n exportparts=\"panel\"\n >\n {/* Input control group */}\n <div\n class={{\n 'bq-date-picker__control': true,\n [`validation-${this.validationStatus}`]: true,\n disabled: this.disabled,\n }}\n part=\"control\"\n slot=\"trigger\"\n >\n {/* Prefix */}\n <span\n class={{ 'bq-date-picker__control--prefix': true, '!hidden': !this.hasPrefix }}\n ref={(spanElem: HTMLSpanElement) => (this.prefixElem = spanElem)}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.handlePrefixSlotChange} />\n </span>\n {/* HTML Input */}\n <input\n id={this.name || this.fallbackInputId}\n class=\"bq-date-picker__control--input\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoFocus={this.autofocus}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-controls={`${this.name}`}\n aria-haspopup=\"dialog\"\n disabled={this.disabled}\n form={this.form}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.type !== 'single'}\n ref={(inputElem: HTMLInputElement) => (this.inputElem = inputElem)}\n required={this.required}\n spellcheck={false}\n type=\"text\"\n value={this.formattedDate}\n part=\"input\"\n // Events\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onChange={this.handleChange}\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 class=\"bq-date-picker__control--clear ms-[--bq-date-picker--gap] hidden\"\n appearance=\"text\"\n aria-label={this.clearButtonLabel}\n size=\"small\"\n onBqClick={this.handleClearClick}\n part=\"clear-btn\"\n exportparts=\"button\"\n >\n <slot name=\"clear-icon\">\n <bq-icon weight=\"bold\" name=\"x-circle\" class=\"flex\" />\n </slot>\n </bq-button>\n )}\n {/* Suffix */}\n <span\n class=\"bq-date-picker__control--suffix\"\n ref={(spanElem: HTMLSpanElement) => (this.suffixElem = spanElem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange}>\n <bq-icon name=\"calendar-blank\" weight=\"bold\" class=\"flex\" />\n </slot>\n </span>\n </div>\n <div class=\"flex items-center justify-center\">\n <CallyCalendar\n isDateDisallowed={this.isDateDisallowed}\n locale={this.locale as string}\n value={this.value}\n min={this.min}\n max={this.max}\n months={this.monthsPerView}\n focusedDate={this.focusedDate(this.value)}\n firstDayOfWeek={this.firstDayOfWeek}\n showOutsideDays={this.showOutsideDays}\n onChange={this.handleCalendarChange}\n exportparts=\"container,header,button,previous,next,disabled,heading\"\n >\n <bq-icon color=\"text--primary\" slot=\"previous\" name=\"caret-left\" label=\"Previous\" />\n <bq-icon color=\"text--primary\" slot=\"next\" name=\"caret-right\" label=\"Next\" />\n\n <div class=\"flex flex-wrap justify-center gap-[--bq-spacing-m]\">{this.generateCalendarMonths()}</div>\n </CallyCalendar>\n </div>\n </bq-dropdown>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"bq-date-picker.js","sourceRoot":"","sources":["../../../../../../src/components/date-picker/bq-date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport { CalendarDate } from 'cally';\n\nimport { DATE_PICKER_TYPE, DaysOfWeek, TDatePickerType } from './bq-date-picker.types';\nimport { Placement } from '../../services/interfaces';\nimport {\n hasSlotContent,\n isDefined,\n isEventTargetChildOfElement,\n isHTMLElement,\n validatePropValue,\n} from '../../shared/utils';\nimport { TInputValidation } from '../input/bq-input.types';\n\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 input - The native HTML input element used under the hood.\n * @part label - The label slot container.\n * @part panel - The date picker panel container\n * @part prefix - The prefix slot container.\n * @part suffix - The suffix slot container.\n\n// Parts from the Cally library for calendar-date and calendar-range components:\n * @part calendar__container - The container for the entire component.\n * @part calendar__header - The container for heading and button's.\n * @part calendar__button - Any button within the component.\n * @part calendar__previous - The previous page button.\n * @part calendar__next - The next page button.\n * @part calendar__disabled - A button that is disabled due to min/max.\n * @part calendar__heading - The heading containing the month and year.\n\n// Parts specific to the calendar-month component:\n * @part calendar__heading - The heading that labels the month.\n * @part calendar__table - The <table> element.\n * @part calendar__tr - Any row within the table.\n * @part calendar__head - The table's header row.\n * @part calendar__week - The table's body rows.\n * @part calendar__th - The table's header cells.\n * @part calendar__td - The table's body cells.\n * @part calendar__button - Any button used in the component.\n * @part calendar__day - The buttons corresponding to each day in the grid.\n * @part calendar__selected - Any days which are selected.\n * @part calendar__today - Today's day.\n * @part calendar__disallowed - Any day that has been disallowed via isDateDisallowed.\n * @part calendar__outside - Any days which are outside the current month.\n * @part calendar__range-start - The day at the start of a date range.\n * @part calendar__range-end - The day at the end of a date range.\n * @part calendar__range-inner - Any days between the start and end of a date range.\n */\n@Component({\n tag: 'bq-date-picker',\n styleUrl: './scss/bq-date-picker.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqDatePicker {\n // Own Properties\n // ====================\n\n private callyElem?: InstanceType<typeof CalendarDate>;\n private inputElem?: HTMLInputElement;\n private labelElem?: HTMLElement;\n private prefixElem?: HTMLElement;\n private suffixElem?: HTMLElement;\n\n private fallbackInputId = 'date-picker';\n\n // Export parts of the calendar-month component\n private readonly COMMON_EXPORT_PARTS =\n 'calendar__heading,calendar__table,calendar__tr,calendar__head,calendar__week,calendar__th,calendar__td';\n private readonly BUTTON_EXPORT_PARTS =\n 'calendar__button,calendar__day,calendar__selected,calendar__today,calendar__disallowed,calendar__outside,calendar__range-start,calendar__range-end,calendar__range-inner';\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDatePickerElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() focusedDate: string;\n @State() displayDate: string;\n @State() hasLabel = false;\n @State() hasPrefix = false;\n @State() hasRangeEnd = false;\n @State() hasSuffix = false;\n @State() hasValue = false;\n\n // Public Property API\n // ========================\n\n /** If `true`, the Date picker input will be focused on component render */\n @Prop({ reflect: true }) autofocus: boolean;\n\n /** The clear button aria label */\n @Prop({ reflect: true }) clearButtonLabel? = 'Clear value';\n\n /** If `true`, the clear button won't be displayed */\n @Prop({ reflect: true }) disableClear? = false;\n\n /**\n * Indicates whether the Date picker input is disabled or not.\n * If `true`, the Date picker is disabled and cannot be interacted with.\n */\n @Prop({ mutable: true }) disabled?: boolean = false;\n\n /** Represents the distance (gutter or margin) between the Date picker panel and the input element. */\n @Prop({ reflect: true }) distance?: number = 8;\n\n /** The first day of the week, where Sunday is 0, Monday is 1, etc */\n @Prop({ reflect: true }) firstDayOfWeek?: DaysOfWeek = 1;\n\n /** The options to use when formatting the displayed value.\n * Details: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options\n */\n @Prop() formatOptions: Intl.DateTimeFormatOptions = {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n };\n\n /** The ID of the form that the Date picker input belongs to. */\n @Prop({ reflect: true }) form?: string;\n\n /** A function that takes a date and returns true if the date should not be selectable */\n @Prop({ reflect: true }) isDateDisallowed?: (date: Date) => boolean;\n\n /** The locale for formatting dates. If not set, will use the browser's locale.\n * Details: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument\n */\n @Prop({ reflect: true }) locale: Intl.LocalesArgument = 'en-GB';\n\n /** The latest date that can be selected */\n @Prop({ reflect: true }) max?: string;\n\n /** The earliest date that can be selected */\n @Prop({ reflect: true }) min?: string;\n\n /** Number of months to show when range is `true` */\n @Prop({ reflect: true }) months: number;\n\n /**\n * Specifies how the next/previous buttons should navigate the calendar.\n * - single: The buttons will navigate by a single month at a time.\n * - months: The buttons will navigate by the number of months displayed per view.\n */\n @Prop({ reflect: true }) monthsPerView: 'single' | 'months' = 'single';\n\n /** The Date picker input name. */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, the Date picker panel will be visible. */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n /** When set, it will override the height of the Date picker panel. */\n @Prop({ reflect: true, mutable: true }) panelHeight?: string = 'auto';\n\n /** The Date picker input placeholder text value */\n @Prop({ reflect: true }) placeholder?: string;\n\n /** Position of the Date picker panel */\n @Prop({ reflect: true }) placement?: Placement = 'bottom-end';\n\n /** Indicates whether or not the Date picker input is required to be filled out before submitting the form. */\n @Prop({ reflect: true }) required?: boolean;\n\n /** Represents the skidding between the Date picker panel and the input element. */\n @Prop({ reflect: true }) skidding?: number = 0;\n\n /** Whether to show days outside the month */\n @Prop({ reflect: true }) showOutsideDays: boolean = false;\n\n /** Defines the strategy to position the Date picker panel */\n @Prop({ reflect: true }) strategy?: 'fixed' | 'absolute' = 'fixed';\n\n /** The date that is tentatively selected e.g. the start of a range selection */\n @Prop({ reflect: true, mutable: true }) tentative?: string;\n\n /** It defines how the calendar will behave, allowing single date selection, range selection, or multiple date selection */\n @Prop({ reflect: true }) type: TDatePickerType = 'single';\n\n /**\n * The validation status of the Select input.\n *\n * @remarks\n * This property is used to indicate the validation status of the select 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 select input value represents the currently selected date or range and can be used to reset the field to a previous value.\n * All dates are expected in ISO-8601 format (YYYY-MM-DD). */\n @Prop({ reflect: true, mutable: true }) value: string;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('value')\n handleValueChange() {\n if (Array.isArray(this.value)) {\n this.hasValue = this.value.some((val) => val.length > 0);\n return;\n }\n\n this.hasValue = isDefined(this.value);\n this.displayDate = this.formatDisplayValue(this.value);\n\n this.setFocusedDate();\n }\n\n @Watch('type')\n checkPropValues() {\n validatePropValue(DATE_PICKER_TYPE, 'single', this.el, 'type');\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<HTMLBqDatePickerElement>;\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; el: HTMLBqDatePickerElement }>;\n\n /** Callback handler emitted when the input value has been cleared */\n @Event() bqClear!: EventEmitter<HTMLBqDatePickerElement>;\n\n /** Callback handler emitted when the input has received focus */\n @Event() bqFocus!: EventEmitter<HTMLBqDatePickerElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n this.handleValueChange();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqOpen', { capture: true })\n handleOpenChange(ev: CustomEvent<{ open: boolean }>) {\n if (!ev.composedPath().includes(this.el)) return;\n\n this.open = ev.detail.open;\n this.setFocusedDate();\n }\n\n @Listen('click', { target: 'body', capture: true })\n handleClickOutside(ev: MouseEvent) {\n const { open, type, hasRangeEnd } = this;\n if (!open || type !== 'range' || ev.button !== 0) return;\n if (isEventTargetChildOfElement(ev, this.el) || hasRangeEnd) return;\n if (isEventTargetChildOfElement(ev, this.el)) return;\n\n if (!hasRangeEnd) {\n this.tentative = undefined;\n this.hasRangeEnd = false;\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 /**\n * Clears the selected value.\n *\n * @return {Promise<void>}\n * @memberof BqInput\n */\n @Method()\n async clear(): Promise<void> {\n if (this.disabled) return;\n\n this.value = undefined;\n\n this.bqClear.emit(this.el);\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 setFocusedDate = () => {\n if (!this.callyElem) return;\n // We need to set the focused date in the calendar component via a ref\n // because it doesn't work when passed as a prop (the Cally element does not re-render)\n this.callyElem.focusedDate = this.value\n ? this.formatFocusedDate(this.value)\n : new Date().toLocaleDateString('fr-CA');\n };\n\n private handleChange = (ev: Event) => {\n if (this.disabled) return;\n\n if (!isHTMLElement(ev.target, 'input')) return;\n\n const dateValue = new Date(ev.target.value);\n if (!isNaN(dateValue.getTime())) {\n // We need to force the value to respect the format: yyyy-mm-dd, hence the hardcoded locale\n this.value = dateValue.toLocaleDateString('fr-CA');\n this.displayDate = this.formatDisplayValue(this.value);\n this.bqChange.emit({ value: this.value, el: this.el });\n }\n };\n\n private handleCalendarChange = (ev: Event) => {\n const { value } = ev.target as unknown as { value: string };\n\n this.value = value;\n this.displayDate = this.formatDisplayValue(this.value);\n this.inputElem.value = this.displayDate;\n this.inputElem.focus();\n\n this.bqChange.emit({ value: this.value, el: this.el });\n\n this.open = this.type === 'multi';\n };\n\n private handleCalendarRangeStart = (ev: CustomEvent) => {\n this.hasRangeEnd = false;\n this.tentative = new Date(ev.detail).toLocaleDateString('fr-CA');\n };\n\n private handleCalendarRangeEnd = () => {\n this.hasRangeEnd = true;\n };\n\n private handleClearClick = (ev: CustomEvent) => {\n if (this.disabled) return;\n\n this.inputElem.value = '';\n this.value = this.inputElem.value;\n this.hasRangeEnd = false;\n\n this.bqClear.emit(this.el);\n this.bqChange.emit({ value: this.value, el: this.el });\n this.inputElem.focus();\n\n ev.stopPropagation();\n };\n\n private handleLabelSlotChange = () => {\n this.hasLabel = hasSlotContent(this.labelElem);\n };\n\n private handlePrefixSlotChange = () => {\n this.hasPrefix = hasSlotContent(this.prefixElem);\n };\n\n private handleSuffixSlotChange = () => {\n this.hasSuffix = hasSlotContent(this.suffixElem);\n };\n\n private generateCalendarMonth = (offset?: number, className = ''): JSX.Element => {\n return (\n <calendar-month\n offset={offset}\n class={className}\n exportparts={`${this.COMMON_EXPORT_PARTS},${this.BUTTON_EXPORT_PARTS}`}\n />\n );\n };\n\n /**\n * Generates an array of JSX.Element representing calendar months.\n *\n * If the type of the date picker is 'range' or 'multi' and the number of months is specified,\n * it generates an array of calendar months with the specified length. Each month will have an offset\n * and a class name based on its position in the array. The offset is used to determine the month to display,\n * and the class name is used for responsive design.\n *\n * If the type of the date picker is not 'range' or 'multi', or if the number of months is not specified,\n * it generates an array with a single calendar month.\n *\n * @returns {JSX.Element[]} An array of JSX.Element representing calendar months.\n */\n private generateCalendarMonths = (): JSX.Element[] => {\n if (this.type === 'range' || (this.type === 'multi' && this.months)) {\n return Array.from({ length: this.months }, (_, i) => {\n const offset = i > 0 ? i : undefined;\n const className = offset ? 'hidden sm:block' : '';\n return this.generateCalendarMonth(offset, className);\n });\n }\n\n return [this.generateCalendarMonth()];\n };\n\n /**\n * Extracts and returns the first date part from a given string.\n * When the type of the date picker is 'range' or 'multi', the first or initial date part of the value\n * should be the focused date in the calendar.\n *\n * @param value - The value to be processed, can be a string.\n * @returns The extracted last date portion of the value.\n */\n private formatFocusedDate = (value: string): string | null => {\n if (!value) return;\n\n const dateRegex = /\\b\\d{4}-\\d{2}-\\d{2}\\b/;\n const match = dateRegex.exec(value);\n return match ? match[0] : null;\n };\n\n private formatDisplayValue = (value: string): string | undefined => {\n if (!value) return;\n\n const dateFormatter = new Intl.DateTimeFormat(this.locale, this.formatOptions);\n\n if (this.type === 'range') {\n const [start, end] = value.split('/').map((dateStr) => new Date(dateStr));\n return dateFormatter.formatRange(start, end);\n }\n\n if (this.type === 'multi') {\n const dates = value.split(' ').map((dateStr) => new Date(dateStr));\n return dates.map((date) => dateFormatter.format(date)).join(', ');\n }\n\n return dateFormatter.format(new Date(value));\n };\n\n private get CalendarType() {\n const componentTypes = {\n single: 'calendar-date',\n multi: 'calendar-multi',\n range: 'calendar-range',\n } as const;\n\n // Return the corresponding component type, based on the type prop value\n return componentTypes[this.type] || componentTypes.single;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const CallyCalendar = this.CalendarType;\n const labelId = `bq-date-picker__label-${this.name || this.fallbackInputId}`;\n\n return (\n <div class=\"bq-date-picker\" part=\"base\">\n {/* Label */}\n <label\n id={labelId}\n class={{ 'bq-date-picker__label': true, '!hidden': !this.hasLabel }}\n htmlFor={this.name || this.fallbackInputId}\n ref={(labelElem: HTMLSpanElement) => (this.labelElem = labelElem)}\n part=\"label\"\n >\n <slot name=\"label\" onSlotchange={this.handleLabelSlotChange} />\n </label>\n {/* Select date picker dropdown */}\n <bq-dropdown\n class=\"bq-date-picker__dropdown is-full [&::part(panel)]:p-m [&::part(panel)]:is-auto\"\n disabled={this.disabled}\n distance={this.distance}\n open={this.open}\n panelHeight={this.panelHeight}\n placement={this.placement}\n skidding={this.skidding}\n strategy={this.strategy}\n exportparts=\"panel\"\n >\n {/* Input control group */}\n <div\n class={{\n 'bq-date-picker__control': true,\n [`validation-${this.validationStatus}`]: true,\n disabled: this.disabled,\n }}\n part=\"control\"\n slot=\"trigger\"\n >\n {/* Prefix */}\n <span\n class={{ 'bq-date-picker__control--prefix': true, '!hidden': !this.hasPrefix }}\n ref={(spanElem: HTMLSpanElement) => (this.prefixElem = spanElem)}\n part=\"prefix\"\n >\n <slot name=\"prefix\" onSlotchange={this.handlePrefixSlotChange} />\n </span>\n {/* HTML Input */}\n <input\n id={this.name || this.fallbackInputId}\n class=\"bq-date-picker__control--input\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoFocus={this.autofocus}\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-controls={`${this.name}`}\n aria-haspopup=\"dialog\"\n disabled={this.disabled}\n form={this.form}\n name={this.name}\n placeholder={this.placeholder}\n readonly={this.type !== 'single'}\n ref={(inputElem: HTMLInputElement) => (this.inputElem = inputElem)}\n required={this.required}\n spellcheck={false}\n type=\"text\"\n value={this.displayDate}\n part=\"input\"\n // Events\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onChange={this.handleChange}\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 class=\"bq-date-picker__control--clear ms-[--bq-date-picker--gap] hidden\"\n appearance=\"text\"\n aria-label={this.clearButtonLabel}\n size=\"small\"\n onBqClick={this.handleClearClick}\n part=\"clear-btn\"\n exportparts=\"button\"\n >\n <slot name=\"clear-icon\">\n <bq-icon weight=\"bold\" name=\"x-circle\" class=\"flex\" />\n </slot>\n </bq-button>\n )}\n {/* Suffix */}\n <span\n class=\"bq-date-picker__control--suffix\"\n ref={(spanElem: HTMLSpanElement) => (this.suffixElem = spanElem)}\n part=\"suffix\"\n >\n <slot name=\"suffix\" onSlotchange={this.handleSuffixSlotChange}>\n <bq-icon name=\"calendar-blank\" weight=\"bold\" class=\"flex\" />\n </slot>\n </span>\n </div>\n <CallyCalendar\n isDateDisallowed={this.isDateDisallowed}\n locale={this.locale as string}\n value={this.value}\n min={this.min}\n max={this.max}\n months={this.months}\n tentative={this.tentative}\n pageBy={this.monthsPerView}\n firstDayOfWeek={this.firstDayOfWeek}\n showOutsideDays={this.showOutsideDays}\n onChange={this.handleCalendarChange}\n onRangestart={this.handleCalendarRangeStart}\n onRangeend={this.handleCalendarRangeEnd}\n exportparts=\"container:calendar__container,header:calendar__header,button:calendar__button,previous:calendar__previous,next:calendar__next,disabled:calendar__disabled,heading:calendar__heading\"\n ref={(elem) => (this.callyElem = elem as InstanceType<typeof CalendarDate>)}\n >\n <bq-icon color=\"text--primary\" slot=\"previous\" name=\"caret-left\" label=\"Previous\" />\n <bq-icon color=\"text--primary\" slot=\"next\" name=\"caret-right\" label=\"Next\" />\n\n <div class=\"flex flex-wrap justify-center gap-[--bq-spacing-m]\">{this.generateCalendarMonths()}</div>\n </CallyCalendar>\n </bq-dropdown>\n </div>\n );\n }\n}\n"]}