@beeq/core 1.12.14-beta.0 → 1.13.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 (545) hide show
  1. package/dist/beeq/beeq.esm.js +1 -1
  2. package/dist/beeq/beeq.esm.js.map +1 -1
  3. package/dist/beeq/index.esm.js +1 -1
  4. package/dist/beeq/{p-9d1503bd.entry.js → p-0d078519.entry.js} +2 -2
  5. package/dist/beeq/{p-9d1503bd.entry.js.map → p-0d078519.entry.js.map} +1 -1
  6. package/dist/beeq/{p-7f9d895b.entry.js → p-1a2c4878.entry.js} +2 -2
  7. package/dist/beeq/{p-7f9d895b.entry.js.map → p-1a2c4878.entry.js.map} +1 -1
  8. package/dist/beeq/p-21db4f39.entry.js +6 -0
  9. package/dist/beeq/p-21db4f39.entry.js.map +1 -0
  10. package/dist/beeq/{p-f47905ae.entry.js → p-24bb2588.entry.js} +2 -2
  11. package/dist/beeq/{p-f47905ae.entry.js.map → p-24bb2588.entry.js.map} +1 -1
  12. package/dist/beeq/{p-41910dc5.entry.js → p-2a081a54.entry.js} +2 -2
  13. package/dist/beeq/{p-41910dc5.entry.js.map → p-2a081a54.entry.js.map} +1 -1
  14. package/dist/beeq/{p-515a1162.entry.js → p-2e1fffcd.entry.js} +2 -2
  15. package/dist/beeq/{p-515a1162.entry.js.map → p-2e1fffcd.entry.js.map} +1 -1
  16. package/dist/beeq/p-2fd6ea70.entry.js +6 -0
  17. package/dist/beeq/{p-2283258e.entry.js.map → p-2fd6ea70.entry.js.map} +1 -1
  18. package/dist/beeq/{p-7d356cce.entry.js → p-30d1bd84.entry.js} +2 -2
  19. package/dist/beeq/p-30d1bd84.entry.js.map +1 -0
  20. package/dist/beeq/{p-882966dd.entry.js → p-38006c8e.entry.js} +2 -2
  21. package/dist/beeq/p-3d754d97.entry.js +6 -0
  22. package/dist/beeq/p-3d754d97.entry.js.map +1 -0
  23. package/dist/beeq/{p-e9535627.entry.js → p-45ae19aa.entry.js} +2 -2
  24. package/dist/beeq/p-45ae19aa.entry.js.map +1 -0
  25. package/dist/beeq/{p-54bfb042.entry.js → p-56b49d4e.entry.js} +2 -2
  26. package/dist/beeq/{p-54bfb042.entry.js.map → p-56b49d4e.entry.js.map} +1 -1
  27. package/dist/beeq/{p-0d8618d2.entry.js → p-58813f83.entry.js} +2 -2
  28. package/dist/beeq/{p-0d8618d2.entry.js.map → p-58813f83.entry.js.map} +1 -1
  29. package/dist/beeq/{p-050c757b.entry.js → p-5eba392c.entry.js} +2 -2
  30. package/dist/beeq/{p-050c757b.entry.js.map → p-5eba392c.entry.js.map} +1 -1
  31. package/dist/beeq/{p-debcabde.entry.js → p-6a38fcaf.entry.js} +2 -2
  32. package/dist/beeq/{p-debcabde.entry.js.map → p-6a38fcaf.entry.js.map} +1 -1
  33. package/dist/beeq/{p-8dfd0329.entry.js → p-6b0f896f.entry.js} +2 -2
  34. package/dist/beeq/{p-a0ef4135.entry.js → p-6be3f23a.entry.js} +2 -2
  35. package/dist/beeq/{p-a0ef4135.entry.js.map → p-6be3f23a.entry.js.map} +1 -1
  36. package/dist/beeq/{p-ea473f56.entry.js → p-72ff2fe2.entry.js} +2 -2
  37. package/dist/beeq/{p-7527b08d.entry.js → p-79fd999a.entry.js} +2 -2
  38. package/dist/beeq/{p-7527b08d.entry.js.map → p-79fd999a.entry.js.map} +1 -1
  39. package/dist/beeq/{p-0323869d.entry.js → p-7ebe6b9d.entry.js} +2 -2
  40. package/dist/beeq/p-7ebe6b9d.entry.js.map +1 -0
  41. package/dist/beeq/{p-250ee94e.entry.js → p-817f7a5e.entry.js} +2 -2
  42. package/dist/beeq/{p-250ee94e.entry.js.map → p-817f7a5e.entry.js.map} +1 -1
  43. package/dist/beeq/{p-ad419446.entry.js → p-8bd7f4c2.entry.js} +2 -2
  44. package/dist/beeq/{p-e63d6c4f.entry.js → p-8be7ceb5.entry.js} +2 -2
  45. package/dist/beeq/{p-e63d6c4f.entry.js.map → p-8be7ceb5.entry.js.map} +1 -1
  46. package/dist/beeq/{p-42e388d0.entry.js → p-9413a4d3.entry.js} +2 -2
  47. package/dist/beeq/{p-42e388d0.entry.js.map → p-9413a4d3.entry.js.map} +1 -1
  48. package/dist/beeq/{p-c25c20bf.entry.js → p-96f72671.entry.js} +2 -2
  49. package/dist/beeq/p-96f72671.entry.js.map +1 -0
  50. package/dist/beeq/{p-CO2T68hs.js → p-BSSRzVAz.js} +2 -2
  51. package/dist/beeq/p-BSSRzVAz.js.map +1 -0
  52. package/dist/beeq/p-DbxZ8FhA.js +6 -0
  53. package/dist/beeq/p-DbxZ8FhA.js.map +1 -0
  54. package/dist/beeq/p-DdvbF5yL.js.map +1 -1
  55. package/dist/beeq/p-Dx-CEPSQ.js.map +1 -1
  56. package/dist/beeq/p-a0a8ea5b.entry.js +6 -0
  57. package/dist/beeq/p-a0a8ea5b.entry.js.map +1 -0
  58. package/dist/beeq/{p-2e9bc398.entry.js → p-a55354ee.entry.js} +2 -2
  59. package/dist/beeq/{p-2e9bc398.entry.js.map → p-a55354ee.entry.js.map} +1 -1
  60. package/dist/beeq/{p-7adb6e2e.entry.js → p-a72671f9.entry.js} +2 -2
  61. package/dist/beeq/p-a72671f9.entry.js.map +1 -0
  62. package/dist/beeq/{p-40bb4e2c.entry.js → p-bb99b400.entry.js} +2 -2
  63. package/dist/beeq/{p-40bb4e2c.entry.js.map → p-bb99b400.entry.js.map} +1 -1
  64. package/dist/beeq/p-bdb983f9.entry.js +6 -0
  65. package/dist/beeq/{p-bb46524f.entry.js.map → p-bdb983f9.entry.js.map} +1 -1
  66. package/dist/beeq/{p-cfe07fad.entry.js → p-cf2e4d57.entry.js} +2 -2
  67. package/dist/beeq/{p-cfe07fad.entry.js.map → p-cf2e4d57.entry.js.map} +1 -1
  68. package/dist/beeq/{p-6cd90918.entry.js → p-d6c35472.entry.js} +2 -2
  69. package/dist/beeq/{p-6cd90918.entry.js.map → p-d6c35472.entry.js.map} +1 -1
  70. package/dist/beeq/p-d792e3d3.entry.js +6 -0
  71. package/dist/beeq/{p-edc81a31.entry.js.map → p-d792e3d3.entry.js.map} +1 -1
  72. package/dist/beeq/{p-bae91da4.entry.js → p-e91ee0da.entry.js} +2 -2
  73. package/dist/beeq/{p-bae91da4.entry.js.map → p-e91ee0da.entry.js.map} +1 -1
  74. package/dist/beeq/{p-1fb43de2.entry.js → p-e9a1b183.entry.js} +2 -2
  75. package/dist/beeq/{p-580f0a77.entry.js → p-f3184477.entry.js} +2 -2
  76. package/dist/beeq/{p-580f0a77.entry.js.map → p-f3184477.entry.js.map} +1 -1
  77. package/dist/beeq/p-f688d230.entry.js +6 -0
  78. package/dist/beeq/{p-1e675bdc.entry.js.map → p-f688d230.entry.js.map} +1 -1
  79. package/dist/beeq/{p-3c77308c.entry.js → p-f891fb4b.entry.js} +2 -2
  80. package/dist/beeq/{p-40163197.entry.js → p-fa123a10.entry.js} +2 -2
  81. package/dist/beeq/{p-40163197.entry.js.map → p-fa123a10.entry.js.map} +1 -1
  82. package/dist/beeq/p-kY6d9Evy.js +6 -0
  83. package/dist/beeq/p-kY6d9Evy.js.map +1 -0
  84. package/dist/beeq/p-uqkxeAeG.js.map +1 -1
  85. package/dist/beeq/svg/.icons-meta.json +13 -0
  86. package/dist/beeq.html-custom-data.json +2214 -106
  87. package/dist/cjs/beeq.cjs.js +3 -3
  88. package/dist/cjs/beeq.cjs.js.map +1 -1
  89. package/dist/cjs/bq-accordion-group.cjs.entry.js +2 -2
  90. package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
  91. package/dist/cjs/bq-accordion.cjs.entry.js +3 -3
  92. package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
  93. package/dist/cjs/bq-alert.cjs.entry.js +3 -3
  94. package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
  95. package/dist/cjs/bq-avatar.cjs.entry.js +3 -3
  96. package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
  97. package/dist/cjs/bq-badge.cjs.entry.js +3 -3
  98. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +3 -3
  99. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
  100. package/dist/cjs/bq-breadcrumb.cjs.entry.js +2 -2
  101. package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
  102. package/dist/cjs/bq-button_2.cjs.entry.js +6 -6
  103. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  104. package/dist/cjs/bq-card.cjs.entry.js +3 -3
  105. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  106. package/dist/cjs/bq-checkbox.cjs.entry.js +35 -22
  107. package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
  108. package/dist/cjs/bq-date-picker.cjs.entry.js +1743 -366
  109. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  110. package/dist/cjs/bq-dialog.cjs.entry.js +7 -7
  111. package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
  112. package/dist/cjs/bq-divider.cjs.entry.js +7 -7
  113. package/dist/cjs/bq-drawer.cjs.entry.js +7 -7
  114. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  115. package/dist/cjs/bq-dropdown_2.cjs.entry.js +6 -6
  116. package/dist/cjs/bq-dropdown_2.cjs.entry.js.map +1 -1
  117. package/dist/cjs/bq-empty-state.cjs.entry.js +8 -8
  118. package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
  119. package/dist/cjs/bq-input.cjs.entry.js +17 -10
  120. package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
  121. package/dist/cjs/bq-notification.cjs.entry.js +8 -8
  122. package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
  123. package/dist/cjs/bq-option-group.cjs.entry.js +3 -3
  124. package/dist/cjs/bq-option-group.cjs.entry.js.map +1 -1
  125. package/dist/cjs/bq-option-list_2.cjs.entry.js +10 -10
  126. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  127. package/dist/cjs/bq-option.cjs.entry.js +5 -5
  128. package/dist/cjs/bq-page-title.cjs.entry.js +6 -6
  129. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
  130. package/dist/cjs/bq-progress.cjs.entry.js +7 -7
  131. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  132. package/dist/cjs/bq-radio-group.cjs.entry.js +8 -12
  133. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  134. package/dist/cjs/bq-radio.cjs.entry.js +5 -5
  135. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  136. package/dist/cjs/bq-select.cjs.entry.js +39 -10
  137. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  138. package/dist/cjs/bq-side-menu-item.cjs.entry.js +2 -2
  139. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  140. package/dist/cjs/bq-side-menu.cjs.entry.js +3 -3
  141. package/dist/cjs/bq-slider.cjs.entry.js +4 -4
  142. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  143. package/dist/cjs/bq-spinner.cjs.entry.js +8 -8
  144. package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
  145. package/dist/cjs/bq-status.cjs.entry.js +4 -4
  146. package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
  147. package/dist/cjs/bq-step-item.cjs.entry.js +7 -7
  148. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  149. package/dist/cjs/bq-steps.cjs.entry.js +4 -4
  150. package/dist/cjs/bq-switch.cjs.entry.js +9 -20
  151. package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
  152. package/dist/cjs/bq-tab-group.cjs.entry.js +5 -5
  153. package/dist/cjs/bq-tab.cjs.entry.js +6 -6
  154. package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
  155. package/dist/cjs/bq-textarea.cjs.entry.js +17 -15
  156. package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
  157. package/dist/cjs/bq-toast.cjs.entry.js +5 -7
  158. package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
  159. package/dist/cjs/bq-tooltip.cjs.entry.js +6 -6
  160. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  161. package/dist/cjs/{cssVariables-exM7Oz37.js → cssVariables-DuVz7KcV.js} +3 -3
  162. package/dist/cjs/cssVariables-DuVz7KcV.js.map +1 -0
  163. package/dist/cjs/event-BhuEFC-I.js.map +1 -1
  164. package/dist/cjs/{index-BSrsKFVG.js → index-J9jJ-fFQ.js} +47 -12
  165. package/dist/cjs/index-J9jJ-fFQ.js.map +1 -0
  166. package/dist/cjs/index.cjs.js +2 -2
  167. package/dist/cjs/loader.cjs.js +2 -2
  168. package/dist/cjs/{props-DzFXZXSF.js → props-BXpv3G-e.js} +6 -5
  169. package/dist/cjs/props-BXpv3G-e.js.map +1 -0
  170. package/dist/cjs/slot-DKWrtk4b.js.map +1 -1
  171. package/dist/cjs/transition-C0S-pYqN.js.map +1 -1
  172. package/dist/collection/collection-manifest.json +1 -1
  173. package/dist/collection/components/accordion-group/scss/bq-accordion-group.css +1 -1
  174. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  175. package/dist/collection/components/avatar/scss/bq-avatar.css +1 -1
  176. package/dist/collection/components/breadcrumb/scss/bq-breadcrumb.css +1 -1
  177. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js +1 -1
  178. package/dist/collection/components/breadcrumb-item/bq-breadcrumb-item.js.map +1 -1
  179. package/dist/collection/components/breadcrumb-item/scss/bq-breadcrumb-item.css +1 -1
  180. package/dist/collection/components/button/scss/bq-button.css +1 -1
  181. package/dist/collection/components/card/scss/bq-card.css +1 -1
  182. package/dist/collection/components/checkbox/bq-checkbox.js +35 -21
  183. package/dist/collection/components/checkbox/bq-checkbox.js.map +1 -1
  184. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  185. package/dist/collection/components/date-picker/bq-date-picker.js +1141 -457
  186. package/dist/collection/components/date-picker/bq-date-picker.js.map +1 -1
  187. package/dist/collection/components/date-picker/bq-date-picker.types.js +29 -0
  188. package/dist/collection/components/date-picker/bq-date-picker.types.js.map +1 -1
  189. package/dist/collection/components/date-picker/components/CalendarDayView.js +96 -0
  190. package/dist/collection/components/date-picker/components/CalendarDayView.js.map +1 -0
  191. package/dist/collection/components/date-picker/components/CalendarHeader.js +18 -0
  192. package/dist/collection/components/date-picker/components/CalendarHeader.js.map +1 -0
  193. package/dist/collection/components/date-picker/components/CalendarMonthView.js +70 -0
  194. package/dist/collection/components/date-picker/components/CalendarMonthView.js.map +1 -0
  195. package/dist/collection/components/date-picker/components/CalendarYearView.js +68 -0
  196. package/dist/collection/components/date-picker/components/CalendarYearView.js.map +1 -0
  197. package/dist/collection/components/date-picker/helper/bounds.js +114 -0
  198. package/dist/collection/components/date-picker/helper/bounds.js.map +1 -0
  199. package/dist/collection/components/date-picker/helper/calendar.js +156 -0
  200. package/dist/collection/components/date-picker/helper/calendar.js.map +1 -0
  201. package/dist/collection/components/date-picker/helper/constants.js +62 -16
  202. package/dist/collection/components/date-picker/helper/constants.js.map +1 -1
  203. package/dist/collection/components/date-picker/helper/input.js +37 -0
  204. package/dist/collection/components/date-picker/helper/input.js.map +1 -0
  205. package/dist/collection/components/date-picker/helper/intl.js +78 -0
  206. package/dist/collection/components/date-picker/helper/intl.js.map +1 -0
  207. package/dist/collection/components/date-picker/helper/labels.js +61 -0
  208. package/dist/collection/components/date-picker/helper/labels.js.map +1 -0
  209. package/dist/collection/components/date-picker/helper/navigation.js +45 -0
  210. package/dist/collection/components/date-picker/helper/navigation.js.map +1 -0
  211. package/dist/collection/components/date-picker/helper/selection.js +167 -0
  212. package/dist/collection/components/date-picker/helper/selection.js.map +1 -0
  213. package/dist/collection/components/date-picker/helper/value.js +49 -0
  214. package/dist/collection/components/date-picker/helper/value.js.map +1 -0
  215. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  216. package/dist/collection/components/dialog/bq-dialog.js +4 -4
  217. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  218. package/dist/collection/components/divider/bq-divider.js +4 -4
  219. package/dist/collection/components/drawer/bq-drawer.js +4 -4
  220. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  221. package/dist/collection/components/dropdown/bq-dropdown.js +1 -1
  222. package/dist/collection/components/dropdown/scss/bq-dropdown.css +1 -1
  223. package/dist/collection/components/empty-state/bq-empty-state.js +5 -5
  224. package/dist/collection/components/empty-state/scss/bq-empty-state.css +1 -1
  225. package/dist/collection/components/icon/bq-icon.js +1 -1
  226. package/dist/collection/components/icon/helper/request.js +1 -1
  227. package/dist/collection/components/icon/helper/request.js.map +1 -1
  228. package/dist/collection/components/icon/svg/.icons-meta.json +13 -0
  229. package/dist/collection/components/input/bq-input.js +15 -8
  230. package/dist/collection/components/input/bq-input.js.map +1 -1
  231. package/dist/collection/components/input/scss/bq-input.css +1 -1
  232. package/dist/collection/components/notification/bq-notification.js +5 -5
  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-group/bq-option-group.js +1 -1
  237. package/dist/collection/components/option-group/scss/bq-option-group.css +1 -1
  238. package/dist/collection/components/option-list/bq-option-list.js +1 -1
  239. package/dist/collection/components/option-list/scss/bq-option-list.css +1 -1
  240. package/dist/collection/components/page-title/bq-page-title.js +4 -4
  241. package/dist/collection/components/page-title/scss/bq-page-title.css +1 -1
  242. package/dist/collection/components/panel/bq-panel.js +2 -2
  243. package/dist/collection/components/panel/scss/bq-panel.css +1 -1
  244. package/dist/collection/components/progress/bq-progress.js +4 -4
  245. package/dist/collection/components/progress/scss/bq-progress.css +1 -1
  246. package/dist/collection/components/radio/bq-radio.js +5 -4
  247. package/dist/collection/components/radio/bq-radio.js.map +1 -1
  248. package/dist/collection/components/radio/scss/bq-radio.css +1 -1
  249. package/dist/collection/components/radio-group/bq-radio-group.js +6 -10
  250. package/dist/collection/components/radio-group/bq-radio-group.js.map +1 -1
  251. package/dist/collection/components/select/bq-select.js +59 -10
  252. package/dist/collection/components/select/bq-select.js.map +1 -1
  253. package/dist/collection/components/select/scss/bq-select.css +1 -1
  254. package/dist/collection/components/side-menu/bq-side-menu.js +2 -2
  255. package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
  256. package/dist/collection/components/slider/bq-slider.js +2 -2
  257. package/dist/collection/components/spinner/bq-spinner.js +4 -4
  258. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  259. package/dist/collection/components/status/bq-status.js +1 -1
  260. package/dist/collection/components/status/scss/bq-status.css +1 -1
  261. package/dist/collection/components/step-item/bq-step-item.js +4 -4
  262. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  263. package/dist/collection/components/steps/bq-steps.js +2 -2
  264. package/dist/collection/components/switch/bq-switch.js +9 -18
  265. package/dist/collection/components/switch/bq-switch.js.map +1 -1
  266. package/dist/collection/components/switch/scss/bq-switch.css +1 -1
  267. package/dist/collection/components/tab/bq-tab.js +3 -3
  268. package/dist/collection/components/tab/scss/bq-tab.css +1 -1
  269. package/dist/collection/components/tab-group/bq-tab-group.js +3 -3
  270. package/dist/collection/components/tag/bq-tag.js +4 -4
  271. package/dist/collection/components/tag/scss/bq-tag.css +1 -1
  272. package/dist/collection/components/textarea/bq-textarea.js +15 -13
  273. package/dist/collection/components/textarea/bq-textarea.js.map +1 -1
  274. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  275. package/dist/collection/components/toast/bq-toast.js +2 -4
  276. package/dist/collection/components/toast/bq-toast.js.map +1 -1
  277. package/dist/collection/components/toast/scss/bq-toast.css +1 -1
  278. package/dist/collection/components/tooltip/bq-tooltip.js +4 -4
  279. package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
  280. package/dist/collection/shared/test-utils/computedStyle.js +24 -24
  281. package/dist/collection/shared/test-utils/computedStyle.js.map +1 -1
  282. package/dist/collection/shared/test-utils/sleep.js +5 -1
  283. package/dist/collection/shared/test-utils/sleep.js.map +1 -1
  284. package/dist/collection/shared/utils/cssVariables.js +1 -1
  285. package/dist/collection/shared/utils/cssVariables.js.map +1 -1
  286. package/dist/collection/shared/utils/event.js.map +1 -1
  287. package/dist/collection/shared/utils/props.js +4 -3
  288. package/dist/collection/shared/utils/props.js.map +1 -1
  289. package/dist/collection/shared/utils/slot.js.map +1 -1
  290. package/dist/collection/shared/utils/transition.js.map +1 -1
  291. package/dist/components/bq-accordion-group.js +1 -1
  292. package/dist/components/bq-accordion.js +1 -1
  293. package/dist/components/bq-alert.js +1 -1
  294. package/dist/components/bq-avatar.js +1 -1
  295. package/dist/components/bq-badge.js +1 -1
  296. package/dist/components/bq-breadcrumb-item.js +1 -1
  297. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  298. package/dist/components/bq-breadcrumb.js +1 -1
  299. package/dist/components/bq-button.js +1 -1
  300. package/dist/components/bq-card.js +1 -1
  301. package/dist/components/bq-checkbox.js +1 -1
  302. package/dist/components/bq-checkbox.js.map +1 -1
  303. package/dist/components/bq-date-picker.js +1 -1
  304. package/dist/components/bq-date-picker.js.map +1 -1
  305. package/dist/components/bq-dialog.js +1 -1
  306. package/dist/components/bq-dialog.js.map +1 -1
  307. package/dist/components/bq-divider.js +1 -1
  308. package/dist/components/bq-drawer.js +1 -1
  309. package/dist/components/bq-drawer.js.map +1 -1
  310. package/dist/components/bq-dropdown.js +1 -1
  311. package/dist/components/bq-empty-state.js +1 -1
  312. package/dist/components/bq-icon.js +1 -1
  313. package/dist/components/bq-input.js +1 -1
  314. package/dist/components/bq-input.js.map +1 -1
  315. package/dist/components/bq-notification.js +1 -1
  316. package/dist/components/bq-notification.js.map +1 -1
  317. package/dist/components/bq-option-group.js +1 -1
  318. package/dist/components/bq-option-group.js.map +1 -1
  319. package/dist/components/bq-option-list.js +1 -1
  320. package/dist/components/bq-option.js +1 -1
  321. package/dist/components/bq-page-title.js +1 -1
  322. package/dist/components/bq-page-title.js.map +1 -1
  323. package/dist/components/bq-panel.js +1 -1
  324. package/dist/components/bq-progress.js +1 -1
  325. package/dist/components/bq-radio-group.js +1 -1
  326. package/dist/components/bq-radio-group.js.map +1 -1
  327. package/dist/components/bq-radio.js +1 -1
  328. package/dist/components/bq-radio.js.map +1 -1
  329. package/dist/components/bq-select.js +1 -1
  330. package/dist/components/bq-select.js.map +1 -1
  331. package/dist/components/bq-side-menu-item.js +1 -1
  332. package/dist/components/bq-side-menu.js +1 -1
  333. package/dist/components/bq-slider.js +1 -1
  334. package/dist/components/bq-spinner.js +1 -1
  335. package/dist/components/bq-status.js +1 -1
  336. package/dist/components/bq-status.js.map +1 -1
  337. package/dist/components/bq-step-item.js +1 -1
  338. package/dist/components/bq-step-item.js.map +1 -1
  339. package/dist/components/bq-steps.js +1 -1
  340. package/dist/components/bq-switch.js +1 -1
  341. package/dist/components/bq-switch.js.map +1 -1
  342. package/dist/components/bq-tab-group.js +1 -1
  343. package/dist/components/bq-tab.js +1 -1
  344. package/dist/components/bq-tag.js +1 -1
  345. package/dist/components/bq-textarea.js +1 -1
  346. package/dist/components/bq-textarea.js.map +1 -1
  347. package/dist/components/bq-toast.js +1 -1
  348. package/dist/components/bq-toast.js.map +1 -1
  349. package/dist/components/bq-tooltip.js +1 -1
  350. package/dist/components/index.js +1 -1
  351. package/dist/components/{p-YjPwN7vu.js → p-2eUC8A3N.js} +2 -2
  352. package/dist/components/p-2eUC8A3N.js.map +1 -0
  353. package/dist/components/{p-D3RCJ1ti.js → p-BBCVL6R0.js} +2 -2
  354. package/dist/components/{p-BY4GkNoQ.js → p-BMHXMsVR.js} +2 -2
  355. package/dist/components/{p-4ksDMBf6.js → p-BS8hIETL.js} +2 -2
  356. package/dist/components/{p-DTsYGX5p.js → p-CWawcXxA.js} +2 -2
  357. package/dist/components/{p-DTsYGX5p.js.map → p-CWawcXxA.js.map} +1 -1
  358. package/dist/components/{p-fdkSHq2G.js → p-D6ngGq0Y.js} +2 -2
  359. package/dist/components/p-D6ngGq0Y.js.map +1 -0
  360. package/dist/components/{p-B99eLANt.js → p-DMKBBBUE.js} +2 -2
  361. package/dist/components/p-DbxZ8FhA.js +6 -0
  362. package/dist/components/p-DbxZ8FhA.js.map +1 -0
  363. package/dist/components/{p-CvvcRGDG.js → p-Dd3v3b2E.js} +2 -2
  364. package/dist/components/p-DdvbF5yL.js.map +1 -1
  365. package/dist/components/p-Dx-CEPSQ.js.map +1 -1
  366. package/dist/components/{p-Dj-mQvqv.js → p-iyX-PhkX.js} +2 -2
  367. package/dist/components/p-kY6d9Evy.js +6 -0
  368. package/dist/components/p-kY6d9Evy.js.map +1 -0
  369. package/dist/components/p-uqkxeAeG.js.map +1 -1
  370. package/dist/{beeq/p-edc81a31.entry.js → components/p-v3c5-Hhf.js} +2 -2
  371. package/dist/components/p-v3c5-Hhf.js.map +1 -0
  372. package/dist/custom-elements.json +25954 -1583
  373. package/dist/esm/beeq.js +4 -4
  374. package/dist/esm/beeq.js.map +1 -1
  375. package/dist/esm/bq-accordion-group.entry.js +2 -2
  376. package/dist/esm/bq-accordion-group.entry.js.map +1 -1
  377. package/dist/esm/bq-accordion.entry.js +3 -3
  378. package/dist/esm/bq-accordion.entry.js.map +1 -1
  379. package/dist/esm/bq-alert.entry.js +3 -3
  380. package/dist/esm/bq-alert.entry.js.map +1 -1
  381. package/dist/esm/bq-avatar.entry.js +3 -3
  382. package/dist/esm/bq-avatar.entry.js.map +1 -1
  383. package/dist/esm/bq-badge.entry.js +3 -3
  384. package/dist/esm/bq-breadcrumb-item.entry.js +3 -3
  385. package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
  386. package/dist/esm/bq-breadcrumb.entry.js +2 -2
  387. package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
  388. package/dist/esm/bq-button_2.entry.js +6 -6
  389. package/dist/esm/bq-button_2.entry.js.map +1 -1
  390. package/dist/esm/bq-card.entry.js +3 -3
  391. package/dist/esm/bq-card.entry.js.map +1 -1
  392. package/dist/esm/bq-checkbox.entry.js +35 -22
  393. package/dist/esm/bq-checkbox.entry.js.map +1 -1
  394. package/dist/esm/bq-date-picker.entry.js +1744 -367
  395. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  396. package/dist/esm/bq-dialog.entry.js +7 -7
  397. package/dist/esm/bq-dialog.entry.js.map +1 -1
  398. package/dist/esm/bq-divider.entry.js +7 -7
  399. package/dist/esm/bq-drawer.entry.js +7 -7
  400. package/dist/esm/bq-drawer.entry.js.map +1 -1
  401. package/dist/esm/bq-dropdown_2.entry.js +6 -6
  402. package/dist/esm/bq-dropdown_2.entry.js.map +1 -1
  403. package/dist/esm/bq-empty-state.entry.js +8 -8
  404. package/dist/esm/bq-empty-state.entry.js.map +1 -1
  405. package/dist/esm/bq-input.entry.js +17 -10
  406. package/dist/esm/bq-input.entry.js.map +1 -1
  407. package/dist/esm/bq-notification.entry.js +8 -8
  408. package/dist/esm/bq-notification.entry.js.map +1 -1
  409. package/dist/esm/bq-option-group.entry.js +3 -3
  410. package/dist/esm/bq-option-group.entry.js.map +1 -1
  411. package/dist/esm/bq-option-list_2.entry.js +10 -10
  412. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  413. package/dist/esm/bq-option.entry.js +5 -5
  414. package/dist/esm/bq-page-title.entry.js +6 -6
  415. package/dist/esm/bq-page-title.entry.js.map +1 -1
  416. package/dist/esm/bq-progress.entry.js +7 -7
  417. package/dist/esm/bq-progress.entry.js.map +1 -1
  418. package/dist/esm/bq-radio-group.entry.js +8 -12
  419. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  420. package/dist/esm/bq-radio.entry.js +5 -5
  421. package/dist/esm/bq-radio.entry.js.map +1 -1
  422. package/dist/esm/bq-select.entry.js +39 -10
  423. package/dist/esm/bq-select.entry.js.map +1 -1
  424. package/dist/esm/bq-side-menu-item.entry.js +2 -2
  425. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  426. package/dist/esm/bq-side-menu.entry.js +3 -3
  427. package/dist/esm/bq-slider.entry.js +4 -4
  428. package/dist/esm/bq-slider.entry.js.map +1 -1
  429. package/dist/esm/bq-spinner.entry.js +8 -8
  430. package/dist/esm/bq-spinner.entry.js.map +1 -1
  431. package/dist/esm/bq-status.entry.js +4 -4
  432. package/dist/esm/bq-status.entry.js.map +1 -1
  433. package/dist/esm/bq-step-item.entry.js +7 -7
  434. package/dist/esm/bq-step-item.entry.js.map +1 -1
  435. package/dist/esm/bq-steps.entry.js +4 -4
  436. package/dist/esm/bq-switch.entry.js +9 -20
  437. package/dist/esm/bq-switch.entry.js.map +1 -1
  438. package/dist/esm/bq-tab-group.entry.js +5 -5
  439. package/dist/esm/bq-tab.entry.js +6 -6
  440. package/dist/esm/bq-tab.entry.js.map +1 -1
  441. package/dist/esm/bq-textarea.entry.js +17 -15
  442. package/dist/esm/bq-textarea.entry.js.map +1 -1
  443. package/dist/esm/bq-toast.entry.js +5 -7
  444. package/dist/esm/bq-toast.entry.js.map +1 -1
  445. package/dist/esm/bq-tooltip.entry.js +6 -6
  446. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  447. package/dist/esm/{cssVariables-CyiWA5Ok.js → cssVariables-DhGXeOL_.js} +3 -3
  448. package/dist/esm/cssVariables-DhGXeOL_.js.map +1 -0
  449. package/dist/esm/event-Dx-CEPSQ.js.map +1 -1
  450. package/dist/esm/{index-CO2T68hs.js → index-BSSRzVAz.js} +47 -12
  451. package/dist/esm/index-BSSRzVAz.js.map +1 -0
  452. package/dist/esm/index.js +2 -2
  453. package/dist/esm/loader.js +3 -3
  454. package/dist/esm/{props-zh4P02Kn.js → props-DbxZ8FhA.js} +6 -5
  455. package/dist/esm/props-DbxZ8FhA.js.map +1 -0
  456. package/dist/esm/slot-uqkxeAeG.js.map +1 -1
  457. package/dist/esm/transition-DdvbF5yL.js.map +1 -1
  458. package/dist/hydrate/index.js +2142 -675
  459. package/dist/hydrate/index.mjs +2142 -675
  460. package/dist/stencil.config.js +7 -0
  461. package/dist/stencil.config.js.map +1 -1
  462. package/dist/types/components/checkbox/bq-checkbox.d.ts +4 -3
  463. package/dist/types/components/date-picker/bq-date-picker.d.ts +330 -238
  464. package/dist/types/components/date-picker/bq-date-picker.types.d.ts +30 -39
  465. package/dist/types/components/date-picker/components/CalendarDayView.d.ts +42 -0
  466. package/dist/types/components/date-picker/components/CalendarHeader.d.ts +34 -0
  467. package/dist/types/components/date-picker/components/CalendarMonthView.d.ts +34 -0
  468. package/dist/types/components/date-picker/components/CalendarYearView.d.ts +32 -0
  469. package/dist/types/components/date-picker/helper/bounds.d.ts +49 -0
  470. package/dist/types/components/date-picker/helper/calendar.d.ts +78 -0
  471. package/dist/types/components/date-picker/helper/constants.d.ts +62 -16
  472. package/dist/types/components/date-picker/helper/input.d.ts +23 -0
  473. package/dist/types/components/date-picker/helper/intl.d.ts +38 -0
  474. package/dist/types/components/date-picker/helper/labels.d.ts +29 -0
  475. package/dist/types/components/date-picker/helper/navigation.d.ts +23 -0
  476. package/dist/types/components/date-picker/helper/selection.d.ts +44 -0
  477. package/dist/types/components/date-picker/helper/value.d.ts +31 -0
  478. package/dist/types/components/input/bq-input.d.ts +1 -0
  479. package/dist/types/components/radio/bq-radio.d.ts +2 -1
  480. package/dist/types/components/select/bq-select.d.ts +5 -0
  481. package/dist/types/components/switch/bq-switch.d.ts +2 -3
  482. package/dist/types/components.d.ts +450 -350
  483. package/dist/types/home/runner/work/BEEQ/BEEQ/.stencil/packages/beeq/vitest.config.d.ts +2 -0
  484. package/dist/types/shared/test-utils/computedStyle.d.ts +7 -6
  485. package/dist/types/shared/test-utils/setProperties.d.ts +1 -1
  486. package/dist/types/shared/test-utils/sleep.d.ts +5 -1
  487. package/dist/types/shared/utils/event.d.ts +1 -1
  488. package/dist/types/shared/utils/slot.d.ts +1 -1
  489. package/dist/types/stencil-public-runtime.d.ts +1 -0
  490. package/dist/vitest.config.js +81 -0
  491. package/dist/vitest.config.js.map +1 -0
  492. package/package.json +1 -1
  493. package/dist/beeq/p-0323869d.entry.js.map +0 -1
  494. package/dist/beeq/p-1e675bdc.entry.js +0 -6
  495. package/dist/beeq/p-2283258e.entry.js +0 -6
  496. package/dist/beeq/p-654c7701.entry.js +0 -6
  497. package/dist/beeq/p-654c7701.entry.js.map +0 -1
  498. package/dist/beeq/p-7a6a89f1.entry.js +0 -6
  499. package/dist/beeq/p-7a6a89f1.entry.js.map +0 -1
  500. package/dist/beeq/p-7adb6e2e.entry.js.map +0 -1
  501. package/dist/beeq/p-7d356cce.entry.js.map +0 -1
  502. package/dist/beeq/p-CO2T68hs.js.map +0 -1
  503. package/dist/beeq/p-_RvVpeh2.js +0 -6
  504. package/dist/beeq/p-_RvVpeh2.js.map +0 -1
  505. package/dist/beeq/p-a83ce5aa.entry.js +0 -6
  506. package/dist/beeq/p-a83ce5aa.entry.js.map +0 -1
  507. package/dist/beeq/p-bb46524f.entry.js +0 -6
  508. package/dist/beeq/p-c25c20bf.entry.js.map +0 -1
  509. package/dist/beeq/p-e9535627.entry.js.map +0 -1
  510. package/dist/beeq/p-zh4P02Kn.js +0 -6
  511. package/dist/beeq/p-zh4P02Kn.js.map +0 -1
  512. package/dist/cjs/cssVariables-exM7Oz37.js.map +0 -1
  513. package/dist/cjs/index-BSrsKFVG.js.map +0 -1
  514. package/dist/cjs/props-DzFXZXSF.js.map +0 -1
  515. package/dist/collection/components/date-picker/libs/callyLibrary.js +0 -92
  516. package/dist/collection/components/date-picker/libs/callyLibrary.js.map +0 -1
  517. package/dist/components/p-DnqmdkvK.js +0 -6
  518. package/dist/components/p-DnqmdkvK.js.map +0 -1
  519. package/dist/components/p-YjPwN7vu.js.map +0 -1
  520. package/dist/components/p-_RvVpeh2.js +0 -6
  521. package/dist/components/p-_RvVpeh2.js.map +0 -1
  522. package/dist/components/p-fdkSHq2G.js.map +0 -1
  523. package/dist/components/p-zh4P02Kn.js +0 -6
  524. package/dist/components/p-zh4P02Kn.js.map +0 -1
  525. package/dist/esm/cssVariables-CyiWA5Ok.js.map +0 -1
  526. package/dist/esm/index-CO2T68hs.js.map +0 -1
  527. package/dist/esm/props-zh4P02Kn.js.map +0 -1
  528. package/dist/jest.config.js +0 -23
  529. package/dist/jest.config.js.map +0 -1
  530. package/dist/types/Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System/.stencil/packages/beeq/jest.config.d.ts +0 -19
  531. package/dist/types/components/date-picker/libs/callyLibrary.d.ts +0 -15
  532. /package/dist/beeq/{p-882966dd.entry.js.map → p-38006c8e.entry.js.map} +0 -0
  533. /package/dist/beeq/{p-8dfd0329.entry.js.map → p-6b0f896f.entry.js.map} +0 -0
  534. /package/dist/beeq/{p-ea473f56.entry.js.map → p-72ff2fe2.entry.js.map} +0 -0
  535. /package/dist/beeq/{p-ad419446.entry.js.map → p-8bd7f4c2.entry.js.map} +0 -0
  536. /package/dist/beeq/{p-1fb43de2.entry.js.map → p-e9a1b183.entry.js.map} +0 -0
  537. /package/dist/beeq/{p-3c77308c.entry.js.map → p-f891fb4b.entry.js.map} +0 -0
  538. /package/dist/components/{p-D3RCJ1ti.js.map → p-BBCVL6R0.js.map} +0 -0
  539. /package/dist/components/{p-BY4GkNoQ.js.map → p-BMHXMsVR.js.map} +0 -0
  540. /package/dist/components/{p-4ksDMBf6.js.map → p-BS8hIETL.js.map} +0 -0
  541. /package/dist/components/{p-B99eLANt.js.map → p-DMKBBBUE.js.map} +0 -0
  542. /package/dist/components/{p-CvvcRGDG.js.map → p-Dd3v3b2E.js.map} +0 -0
  543. /package/dist/components/{p-Dj-mQvqv.js.map → p-iyX-PhkX.js.map} +0 -0
  544. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/runner/work/BEEQ/BEEQ}/.stencil/packages/beeq/stencil.config.d.ts +0 -0
  545. /package/dist/types/{Users/dramos/PROJECTs/ENDAVA/BEEQ-Design-System → home/runner/work/BEEQ/BEEQ}/.stencil/tailwind.config.d.ts +0 -0
@@ -1,45 +1,36 @@
1
1
  /** The first day of the week, where Sunday is 0, Monday is 1, etc. */
2
2
  export type DaysOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6;
3
+ export declare const DAYS_OF_WEEK: readonly DaysOfWeek[];
3
4
  /** The type of the date picker */
4
5
  export declare const DATE_PICKER_TYPE: readonly ["single", "multi", "range"];
5
6
  /** The type of the date picker */
6
7
  export type TDatePickerType = (typeof DATE_PICKER_TYPE)[number];
7
- export type TCalendarDate = {
8
- /** The first day of the week */
9
- firstDayOfWeek?: number;
10
- /** The focused date */
11
- focusedDate: string;
12
- /** The locale */
13
- locale?: string;
14
- /** The maximum date */
15
- max?: string;
16
- /** The minimum date */
17
- min?: string;
18
- /** The number of months to show */
19
- months?: number;
20
- /** How to navigate through the calendar, by single month or by the number of months */
21
- pageBy?: 'single' | 'months';
22
- /** Whether to show days outside the current month */
23
- showOutsideDays?: boolean;
24
- /** The tentative selected date, e.g. the start of a date range */
25
- tentative?: string;
26
- /** The selected date, in ISO-8601 format (YYYY-MM-DD) */
27
- value: string;
28
- /**
29
- * Focuses the <calendar-month> containing the currently focused date.
30
- * `option.target` controls which part of the component gets focused.
31
- */
32
- focus: ({ target }: {
33
- target: 'previous' | 'next' | 'day';
34
- }) => void;
35
- /** Checks if the date is not allowed to be selected */
36
- isDateDisallowed?: (date: Date) => boolean;
37
- /** Handles the change event, when the user selects a date or a date range */
38
- onChange?: (ev: Event) => void;
39
- /** Handles the focus date event. E.g. when the user navigates back/forward in the calendar */
40
- onFocusDate?: (ev: CustomEvent) => void;
41
- /** Handles the date range start event. E.g. when the user starts selecting a date range */
42
- onRangestart?: (ev: CustomEvent) => void;
43
- /** Handles the date range end event. E.g. when the user finishes selecting a date range */
44
- onRangeend?: (ev: CustomEvent) => void;
45
- };
8
+ /** The calendar view */
9
+ export declare const CALENDAR_VIEW: readonly ["days", "months", "years"];
10
+ /** The calendar view */
11
+ export type TCalendarView = (typeof CALENDAR_VIEW)[number];
12
+ /** Positioning strategy for the panel. */
13
+ export declare const FLOATING_STRATEGY: readonly ["fixed", "absolute"];
14
+ export type TFloatingStrategy = (typeof FLOATING_STRATEGY)[number];
15
+ /** Placement of the panel — mirrors `@floating-ui/dom` placements. */
16
+ export declare const FLOATING_PLACEMENT: readonly ["top", "top-start", "top-end", "right", "right-start", "right-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end"];
17
+ export type TFloatingPlacement = (typeof FLOATING_PLACEMENT)[number];
18
+ /** How the next/previous buttons should step through months. */
19
+ export declare const MONTHS_PER_VIEW: readonly ["single", "months"];
20
+ export type TMonthsPerView = (typeof MONTHS_PER_VIEW)[number];
21
+ /**
22
+ * The precision of the value produced by the date picker.
23
+ * - `day` → `YYYY-MM-DD` (default; drill-down to days)
24
+ * - `month` → `YYYY-MM` (selection commits on the months view)
25
+ * - `year` → `YYYY` (selection commits on the years view)
26
+ */
27
+ export declare const DATE_PRECISION: readonly ["day", "month", "year"];
28
+ export type TDatePrecision = (typeof DATE_PRECISION)[number];
29
+ /**
30
+ * Internal representation of a selection.
31
+ * Always an array of ISO 8601 date strings (YYYY-MM-DD).
32
+ * - single → 0 or 1 entry
33
+ * - multi → N entries
34
+ * - range → 0 or 2 entries [startISO, endISO]
35
+ */
36
+ export type TSelection = string[];
@@ -0,0 +1,42 @@
1
+ import { type FunctionalComponent } from '../../../stencil-public-runtime';
2
+ import type { TDatePickerType, TSelection } from '../bq-date-picker.types';
3
+ export type TCalendarDayViewProps = {
4
+ /** Anchor date for the month grid (any date within the month). */
5
+ viewDate: Date;
6
+ /** Current selection (parsed). */
7
+ selection: TSelection;
8
+ /** In-progress range selection (start pending or hovered end). */
9
+ tentativeRange: TSelection;
10
+ /** Focused date ISO (roving tabindex target). */
11
+ focusedISO: string;
12
+ /** Selection type. */
13
+ type: TDatePickerType;
14
+ /** Locale. */
15
+ locale: Intl.LocalesArgument;
16
+ /** First day of the week. */
17
+ firstDayOfWeek: number;
18
+ /** Whether to render outside-month days. */
19
+ showOutsideDays: boolean;
20
+ /** Optional min ISO. */
21
+ minISO?: string;
22
+ /** Optional max ISO. */
23
+ maxISO?: string;
24
+ /** Optional guard for disallowed days. */
25
+ isDateDisallowed?: (date: Date) => boolean;
26
+ /** Callback fired when a day is picked. */
27
+ onDaySelect: (iso: string, ev: MouseEvent | KeyboardEvent) => void;
28
+ /** Callback fired when the pointer hovers a day (used for range preview). */
29
+ onDayHover: (iso: string | undefined) => void;
30
+ /** Callback fired when a day receives focus. */
31
+ onDayFocus: (iso: string) => void;
32
+ /** Optional handler for keyboard nav bubbling up (Arrow, Home, End...). */
33
+ onGridKeyDown: (ev: KeyboardEvent) => void;
34
+ };
35
+ /**
36
+ * Day-level calendar view — weekday row + 6x7 grid.
37
+ *
38
+ * The grid is a `<table role="grid">` so it is announced correctly by screen
39
+ * readers, and it uses a roving tabindex so only the "focused" day is in the
40
+ * tab order. Keyboard nav is delegated to the host via `onGridKeyDown`.
41
+ */
42
+ export declare const CalendarDayView: FunctionalComponent<TCalendarDayViewProps>;
@@ -0,0 +1,34 @@
1
+ import { type FunctionalComponent } from '../../../stencil-public-runtime';
2
+ import type { TCalendarView } from '../bq-date-picker.types';
3
+ export type TCalendarHeaderProps = {
4
+ /** Current view. Used to pick the correct aria label and title. */
5
+ view: TCalendarView;
6
+ /** Label rendered inside the title button (e.g. "January 2026", "2026", "2016 – 2027"). */
7
+ label: string;
8
+ /** Aria label for the previous button. */
9
+ previousLabel: string;
10
+ /** Aria label for the next button. */
11
+ nextLabel: string;
12
+ /** Aria label for the title button. */
13
+ titleLabel: string;
14
+ /** Whether the previous button is disabled. */
15
+ previousDisabled?: boolean;
16
+ /** Whether the next button is disabled. */
17
+ nextDisabled?: boolean;
18
+ /** Whether the title button is interactive. `false` when already on the years view. */
19
+ titleInteractive?: boolean;
20
+ /** Callback fired when the previous button is activated. */
21
+ onPrevious: (ev: Event) => void;
22
+ /** Callback fired when the next button is activated. */
23
+ onNext: (ev: Event) => void;
24
+ /** Callback fired when the title button is activated. */
25
+ onTitleClick: (ev: Event) => void;
26
+ };
27
+ /**
28
+ * Calendar header — previous / title / next.
29
+ *
30
+ * The header is rendered once per calendar panel. It exposes the standard
31
+ * `calendar__header`, `calendar__previous`, `calendar__heading`, and
32
+ * `calendar__next` shadow parts so consumers can theme any button.
33
+ */
34
+ export declare const CalendarHeader: FunctionalComponent<TCalendarHeaderProps>;
@@ -0,0 +1,34 @@
1
+ import { type FunctionalComponent } from '../../../stencil-public-runtime';
2
+ import type { TDatePickerType, TSelection } from '../bq-date-picker.types';
3
+ export type TCalendarMonthViewProps = {
4
+ /** Year currently shown in the header. */
5
+ year: number;
6
+ /** Focused month (0-based), used for the roving tabindex. */
7
+ focusedMonth: number;
8
+ /** Locale used for localized month names. */
9
+ locale: Intl.LocalesArgument;
10
+ /** Min year/month to keep enabled. */
11
+ minISO?: string;
12
+ /** Max year/month to keep enabled. */
13
+ maxISO?: string;
14
+ /** Current selection (as stored internally: array of YYYY-MM-DD). */
15
+ selection: TSelection;
16
+ /** In-progress range preview while hovering a second endpoint. */
17
+ tentativeRange: TSelection;
18
+ /** Selection type — drives multi / range highlighting. */
19
+ type: TDatePickerType;
20
+ /** Callback fired when the user picks a month. */
21
+ onMonthSelect: (month: number, ev: MouseEvent | KeyboardEvent) => void;
22
+ /** Callback fired when a month button receives focus. */
23
+ onMonthFocus: (month: number) => void;
24
+ /** Callback fired when hovering a month cell (range preview). */
25
+ onMonthHover: (iso: string | undefined) => void;
26
+ /** Optional keydown handler for the grid (roving tabindex management). */
27
+ onGridKeyDown: (ev: KeyboardEvent) => void;
28
+ /** Number of columns rendered by the month grid. */
29
+ gridColumns: number;
30
+ };
31
+ /**
32
+ * Month picker — 12 buttons in a 3×4 grid.
33
+ */
34
+ export declare const CalendarMonthView: FunctionalComponent<TCalendarMonthViewProps>;
@@ -0,0 +1,32 @@
1
+ import { type FunctionalComponent } from '../../../stencil-public-runtime';
2
+ import type { TDatePickerType, TSelection } from '../bq-date-picker.types';
3
+ export type TCalendarYearViewProps = {
4
+ /** Years to render (typically 12). */
5
+ years: number[];
6
+ /** Focused year (roving tabindex target). */
7
+ focusedYear: number;
8
+ /** Optional min bound (any precision — `YYYY`, `YYYY-MM`, `YYYY-MM-DD`). */
9
+ minISO?: string;
10
+ /** Optional max bound (any precision). */
11
+ maxISO?: string;
12
+ /** Current selection (as stored internally: array of YYYY-MM-DD). */
13
+ selection: TSelection;
14
+ /** In-progress range preview while hovering a second endpoint. */
15
+ tentativeRange: TSelection;
16
+ /** Selection type — drives multi / range highlighting. */
17
+ type: TDatePickerType;
18
+ /** Callback fired when the user picks a year. */
19
+ onYearSelect: (year: number, ev: MouseEvent | KeyboardEvent) => void;
20
+ /** Callback fired when a year button receives focus. */
21
+ onYearFocus: (year: number) => void;
22
+ /** Callback fired when hovering a year cell (range preview). */
23
+ onYearHover: (iso: string | undefined) => void;
24
+ /** Optional keydown handler for the grid (roving tabindex management). */
25
+ onGridKeyDown: (ev: KeyboardEvent) => void;
26
+ /** Number of columns rendered by the year grid. */
27
+ gridColumns: number;
28
+ };
29
+ /**
30
+ * Year picker — 12 buttons for a decade grid.
31
+ */
32
+ export declare const CalendarYearView: FunctionalComponent<TCalendarYearViewProps>;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Bounds predicates for the calendar.
3
+ *
4
+ * `min` and `max` may be at any wire precision (`YYYY`, `YYYY-MM`, or
5
+ * `YYYY-MM-DD`); internal cell values are always full `YYYY-MM-DD` strings.
6
+ * All predicates are pure and rely on lexicographic comparison, which is
7
+ * safe for ISO 8601 dates.
8
+ */
9
+ /**
10
+ * Extract the `YYYY` prefix (as a number) from a bound string.
11
+ * Returns `null` if the string does not begin with a 4-digit year.
12
+ */
13
+ export declare const boundYear: (iso: string | undefined | null) => number | null;
14
+ /**
15
+ * Extract `{ year, month }` (month is 0-based) from a bound string. Falls
16
+ * back to `null` when the string doesn't contain a `YYYY-MM` prefix.
17
+ */
18
+ export declare const boundYearMonth: (iso: string | undefined | null) => {
19
+ year: number;
20
+ month: number;
21
+ } | null;
22
+ /**
23
+ * Whether a given year is within the (inclusive) `min`/`max` range.
24
+ * A year cell is considered in-range when any day inside that year is
25
+ * still selectable — i.e. we compare on the year prefix only, ignoring
26
+ * the month/day components of `min` / `max`.
27
+ */
28
+ export declare const isYearWithinBounds: (year: number, min?: string | null, max?: string | null) => boolean;
29
+ /**
30
+ * Whether a given `(year, month)` pair is within the (inclusive) `min`/`max`
31
+ * range. A month cell is considered in-range when any day inside that month
32
+ * would still satisfy the bounds — we compare on the year-month prefix and
33
+ * ignore the day component of `min` / `max`.
34
+ */
35
+ export declare const isMonthWithinBounds: (year: number, month: number, min?: string | null, max?: string | null) => boolean;
36
+ /**
37
+ * Whether a full `YYYY-MM-DD` iso date is within the (inclusive) `min`/`max`
38
+ * range. Bounds may be at any precision — we pad `min` to the earliest day
39
+ * (`YYYY-01-01`) and `max` to the latest day (`YYYY-12-31`) before doing a
40
+ * lexical compare (safe because ISO 8601 sorts by calendar order).
41
+ */
42
+ export declare const isDateWithinBounds: (iso: string, min?: string | null, max?: string | null) => boolean;
43
+ /**
44
+ * Pad a bound string up to full `YYYY-MM-DD` length so it can be lexically
45
+ * compared with a full ISO date. `min` widens down (missing pieces become
46
+ * `-01`), `max` widens up (missing month → `-12`, missing day → last day of
47
+ * that month, honoring leap years).
48
+ */
49
+ export declare const padBound: (iso: string | undefined | null, kind: "min" | "max") => string | null;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Parse an ISO 8601 date string (`YYYY-MM-DD`) into a local-time `Date`.
3
+ * Returns `null` when the string is missing or invalid.
4
+ */
5
+ export declare const parseISO: (iso: string | undefined | null) => Date | null;
6
+ /**
7
+ * Convert a `Date` to `YYYY-MM-DD` in local time.
8
+ */
9
+ export declare const toISO: (date: Date) => string;
10
+ /**
11
+ * Extract the calendar year and 0-based month from an ISO date string.
12
+ * Returns `null` for missing or malformed input — safer than `Number(iso.slice(...))`
13
+ * which silently produces `NaN` for invalid bounds.
14
+ */
15
+ export declare const getISOYearMonth: (iso: string | undefined | null) => {
16
+ year: number;
17
+ month: number;
18
+ } | null;
19
+ /**
20
+ * Whether the ISO string is a valid `YYYY-MM-DD` date (round-trips through
21
+ * `parseISO`). Convenience predicate for input filtering.
22
+ */
23
+ export declare const isValidISO: (iso: string | undefined | null) => boolean;
24
+ export declare const startOfDay: (date: Date) => Date;
25
+ export declare const startOfMonth: (date: Date) => Date;
26
+ export declare const endOfMonth: (date: Date) => Date;
27
+ export declare const addDays: (date: Date, amount: number) => Date;
28
+ export declare const addMonths: (date: Date, amount: number) => Date;
29
+ export declare const addYears: (date: Date, amount: number) => Date;
30
+ export declare const isSameDay: (a: Date | null, b: Date | null) => boolean;
31
+ export declare const isSameMonth: (a: Date | null, b: Date | null) => boolean;
32
+ export declare const isSameYear: (a: Date | null, b: Date | null) => boolean;
33
+ /** ISO-string based comparison; safe for `YYYY-MM-DD`. */
34
+ export declare const compareISO: (a: string, b: string) => number;
35
+ export type TCalendarCell = {
36
+ /** The day's `Date`. */
37
+ date: Date;
38
+ /** `YYYY-MM-DD` representation. */
39
+ iso: string;
40
+ /** `true` when the cell belongs to a month other than the current view. */
41
+ outside: boolean;
42
+ };
43
+ /**
44
+ * Build a 6x7 matrix for the given month starting on `firstDayOfWeek`.
45
+ * The matrix always has 42 cells so the calendar keeps a stable height.
46
+ *
47
+ * @param anchor Any date within the target month.
48
+ * @param firstDayOfWeek 0 = Sunday, 1 = Monday, ...
49
+ */
50
+ export declare const buildMonthMatrix: (anchor: Date, firstDayOfWeek: number) => TCalendarCell[][];
51
+ /**
52
+ * Given any year, return the anchor year of the decade grid.
53
+ *
54
+ * The reference image shows a grid like `2016 – 2027` containing the current
55
+ * year (`2026`). We anchor the grid so the "round" decade start (e.g. 2020,
56
+ * 2010, ...) appears at index 1 - i.e. one extra year before the decade and
57
+ * one extra year after, filling the 3x4 grid cleanly.
58
+ */
59
+ export declare const getDecadeStart: (year: number) => number;
60
+ /**
61
+ * Build the 12-year decade grid for the year that contains `anchor`.
62
+ * Returns `{ start, end, years }` where `years.length === DECADE_GRID_SIZE`.
63
+ */
64
+ export declare const buildDecade: (anchor: Date) => {
65
+ start: number;
66
+ end: number;
67
+ years: number[];
68
+ };
69
+ /**
70
+ * Clamp a `Date` between an optional min and max. Bounds may be at any
71
+ * ISO precision (`YYYY`, `YYYY-MM`, `YYYY-MM-DD`) and are padded to the
72
+ * widest matching day before comparing (`min` → first day, `max` → last day).
73
+ */
74
+ export declare const clampDate: (date: Date, minISO?: string, maxISO?: string) => Date;
75
+ /** Whether the given `Date` is within `[min, max]` ISO bounds (inclusive). */
76
+ export declare const isWithinBounds: (date: Date, minISO?: string, maxISO?: string) => boolean;
77
+ /** Sort two ISO strings and return `[start, end]`. */
78
+ export declare const sortRange: (a: string, b: string) => [string, string];
@@ -1,18 +1,64 @@
1
- import { ISO_DATE_LOCALE } from '../../../shared/utils/date';
2
1
  /** Default fallback input ID */
3
- declare const DEFAULT_INPUT_ID = "date-picker";
4
- /** Calendar month shadow DOM parts for common elements */
5
- declare const CALENDAR_COMMON_EXPORT_PARTS = "calendar__heading,calendar__table,calendar__tr,calendar__head,calendar__week,calendar__th,calendar__td";
6
- /** Calendar month shadow DOM parts for button elements */
7
- declare const CALENDAR_BUTTON_EXPORT_PARTS = "calendar__button,calendar__day,calendar__selected,calendar__today,calendar__disallowed,calendar__outside,calendar__range-start,calendar__range-end,calendar__range-inner";
8
- /** Combined export parts for calendar-month component */
9
- declare const CALENDAR_MONTH_EXPORT_PARTS = "calendar__heading,calendar__table,calendar__tr,calendar__head,calendar__week,calendar__th,calendar__td,calendar__button,calendar__day,calendar__selected,calendar__today,calendar__disallowed,calendar__outside,calendar__range-start,calendar__range-end,calendar__range-inner";
10
- /** Export parts for the calendar container component (calendar-date, calendar-range, calendar-multi) */
11
- declare const CALENDAR_CONTAINER_EXPORT_PARTS = "container:calendar__container,header:calendar__header,button:calendar__button,previous:calendar__previous,next:calendar__next,disabled:calendar__disabled,heading:calendar__heading";
12
- /** Maps picker type to Cally component tag name */
13
- declare const CALENDAR_TYPE_MAP: {
14
- readonly single: "calendar-date";
15
- readonly multi: "calendar-multi";
16
- readonly range: "calendar-range";
2
+ export declare const DEFAULT_INPUT_ID = "date-picker";
3
+ /** Default aria labels used by the calendar navigation */
4
+ export declare const DEFAULT_ARIA_LABELS: {
5
+ readonly previousMonth: "Previous month";
6
+ readonly nextMonth: "Next month";
7
+ readonly previousYear: "Previous year";
8
+ readonly nextYear: "Next year";
9
+ readonly previousDecade: "Previous decade";
10
+ readonly nextDecade: "Next decade";
11
+ readonly chooseMonth: "Choose month";
12
+ readonly chooseYear: "Choose year";
13
+ readonly chooseDate: "Choose date";
17
14
  };
18
- export { CALENDAR_BUTTON_EXPORT_PARTS, CALENDAR_COMMON_EXPORT_PARTS, CALENDAR_CONTAINER_EXPORT_PARTS, CALENDAR_MONTH_EXPORT_PARTS, CALENDAR_TYPE_MAP, DEFAULT_INPUT_ID, ISO_DATE_LOCALE, };
15
+ /**
16
+ * Shadow DOM parts exposed by the component.
17
+ * Kept as a single list so it is easy to audit against the JSDoc @part list.
18
+ */
19
+ export declare const CALENDAR_PARTS: {
20
+ readonly base: "base";
21
+ readonly label: "label";
22
+ readonly control: "control";
23
+ readonly prefix: "prefix";
24
+ readonly suffix: "suffix";
25
+ readonly input: "input";
26
+ readonly clearBtn: "clear-btn";
27
+ readonly button: "button";
28
+ readonly panel: "panel";
29
+ readonly container: "calendar__container";
30
+ readonly header: "calendar__header";
31
+ readonly heading: "calendar__heading";
32
+ readonly previous: "calendar__previous";
33
+ readonly next: "calendar__next";
34
+ readonly table: "calendar__table";
35
+ readonly head: "calendar__head";
36
+ readonly tr: "calendar__tr";
37
+ readonly th: "calendar__th";
38
+ readonly week: "calendar__week";
39
+ readonly td: "calendar__td";
40
+ readonly day: "calendar__day";
41
+ readonly today: "calendar__today";
42
+ readonly selected: "calendar__selected";
43
+ readonly outside: "calendar__outside";
44
+ readonly disallowed: "calendar__disallowed";
45
+ readonly disabled: "calendar__disabled";
46
+ readonly rangeStart: "calendar__range-start";
47
+ readonly rangeEnd: "calendar__range-end";
48
+ readonly rangeInner: "calendar__range-inner";
49
+ readonly months: "calendar__months";
50
+ readonly month: "calendar__month";
51
+ readonly monthSelected: "calendar__month-selected";
52
+ readonly years: "calendar__years";
53
+ readonly year: "calendar__year";
54
+ readonly yearSelected: "calendar__year-selected";
55
+ readonly calendarTrigger: "calendar-trigger";
56
+ };
57
+ /** Number of years shown in the decade view grid. Uses 12 to fill a 3x4 grid. */
58
+ export declare const DECADE_GRID_SIZE = 12;
59
+ /**
60
+ * Maximum number of month panels rendered side-by-side. Range pickers only
61
+ * benefit from up to 2 panels — beyond that the popover overflows most
62
+ * viewports and roving keyboard navigation becomes confusing.
63
+ */
64
+ export declare const MAX_MONTHS_PER_VIEW = 2;
@@ -0,0 +1,23 @@
1
+ import type { TDatePrecision } from '../bq-date-picker.types';
2
+ /**
3
+ * Result of parsing user-typed input.
4
+ * - `value` is set when parsing succeeded — always at the configured precision.
5
+ * - `invalid: true` when the string could not be parsed or `isDateDisallowed`
6
+ * rejected the result.
7
+ */
8
+ export type TParsedInput = {
9
+ value?: string;
10
+ invalid?: boolean;
11
+ };
12
+ /**
13
+ * Precision-aware, bounds-aware parser for the trigger input field.
14
+ * Returns the parsed date as a wire-format string at the configured
15
+ * precision, clamped against `min`/`max`, or `{ invalid: true }` on failure.
16
+ */
17
+ export declare const parseTypedInput: (text: string, locale: Intl.LocalesArgument, precision: TDatePrecision, min?: string, max?: string, isDateDisallowed?: (date: Date) => boolean) => TParsedInput;
18
+ /**
19
+ * Lexically clamp a full `YYYY-MM-DD` ISO date to precision-padded bounds.
20
+ * Coarser bounds (`YYYY`, `YYYY-MM`) are padded to the widest matching day
21
+ * before comparing.
22
+ */
23
+ export declare const clampISO: (iso: string, min?: string, max?: string) => string;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Cached `Intl.DateTimeFormat` factories.
3
+ *
4
+ * The Intl API is powerful but relatively expensive to instantiate. Since the
5
+ * calendar re-renders on every user interaction we keep a small LRU-ish cache
6
+ * keyed by locale + option shape.
7
+ */
8
+ /**
9
+ * Format a full date, e.g. "1 January 2026".
10
+ */
11
+ export declare const formatDate: (date: Date, locale: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions) => string;
12
+ /**
13
+ * Format a month, e.g. "January 2026" or "Jan".
14
+ */
15
+ export declare const formatMonth: (date: Date, locale: Intl.LocalesArgument, monthStyle?: "long" | "short" | "narrow", includeYear?: boolean) => string;
16
+ /**
17
+ * Format a year, e.g. "2026".
18
+ */
19
+ export declare const formatYear: (date: Date, locale: Intl.LocalesArgument) => string;
20
+ /**
21
+ * Returns the weekday names for the given locale ordered from `firstDayOfWeek`.
22
+ *
23
+ * @param locale The locale used for formatting.
24
+ * @param firstDayOfWeek The first day of the week (0 = Sunday, 1 = Monday, ...).
25
+ * @param style Weekday style (long, short, narrow).
26
+ * @returns An array of `{short, long}` names in display order.
27
+ */
28
+ export declare const getWeekdayNames: (locale: Intl.LocalesArgument, firstDayOfWeek: number, style?: "long" | "short" | "narrow") => Array<{
29
+ short: string;
30
+ long: string;
31
+ }>;
32
+ /**
33
+ * Returns the localized month names.
34
+ *
35
+ * @param locale The locale used for formatting.
36
+ * @param style Month style (long, short, narrow).
37
+ */
38
+ export declare const getMonthNames: (locale: Intl.LocalesArgument, style?: "long" | "short" | "narrow") => string[];
@@ -0,0 +1,29 @@
1
+ import type { TCalendarView, TDatePrecision } from '../bq-date-picker.types';
2
+ interface HeaderLabelArgs {
3
+ view: TCalendarView;
4
+ viewDate: Date;
5
+ focusedYear: number;
6
+ decadeStart: number;
7
+ monthCount: number;
8
+ locale: Intl.LocalesArgument;
9
+ }
10
+ /**
11
+ * Builds the label shown in the calendar header title button.
12
+ *
13
+ * - `days`: localized "Month Year" for a single panel, or "StartYear – EndYear"
14
+ * when several months are visible at once.
15
+ * - `months`: the localized year currently in focus.
16
+ * - `years`: the closed range spanning the visible decade.
17
+ */
18
+ export declare const getHeaderLabel: ({ view, viewDate, focusedYear, decadeStart, monthCount, locale, }: HeaderLabelArgs) => string;
19
+ /**
20
+ * Aria label announcing what clicking the title switches to.
21
+ * Views cycle days → months → years → back to the base view (days for
22
+ * `precision="day"`, months for `precision="month"`).
23
+ */
24
+ export declare const getHeaderTitleLabel: (view: TCalendarView, precision?: TDatePrecision) => string;
25
+ /** Aria label for the "previous" navigation button, per view. */
26
+ export declare const getPreviousLabel: (view: TCalendarView) => string;
27
+ /** Aria label for the "next" navigation button, per view. */
28
+ export declare const getNextLabel: (view: TCalendarView) => string;
29
+ export {};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Advances a focused month cursor by `delta` months, carrying over to the
3
+ * previous or next year as needed. Pure — accepts and returns primitives so
4
+ * it can be unit-tested and reused by keyboard handlers.
5
+ */
6
+ export declare const advanceFocusedMonth: (focusedMonth: number, focusedYear: number, delta: number) => {
7
+ month: number;
8
+ year: number;
9
+ };
10
+ /**
11
+ * Advances a focused year cursor by `delta` years, sliding the visible
12
+ * decade grid so the focused year always stays in view.
13
+ */
14
+ export declare const advanceFocusedYear: (focusedYear: number, decadeStart: number, delta: number) => {
15
+ year: number;
16
+ decadeStart: number;
17
+ };
18
+ /**
19
+ * Number of columns used to render the months/years grids. The grids widen
20
+ * from 3 → 4 columns when multiple months are visible, so vertical arrow
21
+ * navigation stride must match.
22
+ */
23
+ export declare const getGridColumns: (monthCount: number) => number;
@@ -0,0 +1,44 @@
1
+ import type { TDatePickerType, TDatePrecision, TSelection } from '../bq-date-picker.types';
2
+ /**
3
+ * Parse a raw `value` string into an internal `TSelection` array.
4
+ *
5
+ * Wire format:
6
+ * - single: `YYYY-MM-DD` (or `YYYY-MM` / `YYYY` at coarser precision)
7
+ * - multi: space-separated tokens
8
+ * - range: `<start>/<end>`
9
+ *
10
+ * Internally the selection is always stored as full `YYYY-MM-DD` — month
11
+ * precision expands to the first day of the month; year precision to Jan 1st.
12
+ *
13
+ * Invalid tokens (malformed strings, impossible dates like `2026-99-99`,
14
+ * non-ISO input) are silently discarded — the returned selection is
15
+ * guaranteed to contain only valid ISO-8601 dates.
16
+ */
17
+ export declare const parseValue: (value: string | undefined | null, type: TDatePickerType, precision?: TDatePrecision) => TSelection;
18
+ /**
19
+ * Serialize an internal `TSelection` array back to the wire format.
20
+ * Truncates each entry to the precision's ISO shape.
21
+ */
22
+ export declare const serializeValue: (selection: TSelection, type: TDatePickerType, precision?: TDatePrecision) => string;
23
+ /** Whether the given ISO day is included in the selection. */
24
+ export declare const isSelected: (iso: string, selection: TSelection, type: TDatePickerType) => boolean;
25
+ /** Whether the ISO day is the start of a range selection. */
26
+ export declare const isRangeStart: (iso: string, selection: TSelection, type: TDatePickerType) => boolean;
27
+ /** Whether the ISO day is the end of a range selection. */
28
+ export declare const isRangeEnd: (iso: string, selection: TSelection, type: TDatePickerType) => boolean;
29
+ /** Whether the ISO day sits strictly inside the range (not start/end). */
30
+ export declare const isRangeInner: (iso: string, selection: TSelection, type: TDatePickerType) => boolean;
31
+ /**
32
+ * Apply a click on `iso` and return the next selection.
33
+ *
34
+ * - single: always replace.
35
+ * - multi: toggle (add if missing, remove if present).
36
+ * - range: if there is no start OR a full range exists, start a new range;
37
+ * otherwise complete the range (auto-sorted).
38
+ */
39
+ export declare const applySelection: (iso: string, selection: TSelection, type: TDatePickerType) => TSelection;
40
+ /**
41
+ * Build the highlighted range while the user is hovering with an in-progress
42
+ * range selection (`tentative` = the pending start).
43
+ */
44
+ export declare const buildTentativeRange: (tentative: string | undefined, hovered: string | undefined) => TSelection;
@@ -0,0 +1,31 @@
1
+ import type { TDatePickerType, TDatePrecision } from '../bq-date-picker.types';
2
+ /**
3
+ * Normalizes a raw public `value` string against the current picker `type`
4
+ * and `precision`.
5
+ *
6
+ * Runs the value through `parseValue`/`serializeValue` so any invalid ISO
7
+ * tokens are dropped before the value ever reaches the form, the display
8
+ * input, or the visible selection. Returns `undefined` when normalization
9
+ * leaves an empty string, so callers can distinguish "no value" from "empty
10
+ * string value".
11
+ */
12
+ export declare const normalizeValue: (raw: string | undefined, type: TDatePickerType, precision?: TDatePrecision) => string | undefined;
13
+ /** Whether a value string is present and non-empty — used to drive UI affordances. */
14
+ export declare const computeHasValue: (value: string | undefined) => boolean;
15
+ /**
16
+ * Formats the current value for display in the trigger input. Thin wrapper
17
+ * around `formatDisplayValue` that accepts `undefined` and coerces to an
18
+ * empty string, so callers don't have to repeat the null check.
19
+ *
20
+ * Precision-agnostic: internally the selection is stored as full ISO dates
21
+ * (the first day of the month / January 1st for coarser precisions), so
22
+ * `Intl.DateTimeFormat(locale, formatOptions)` produces the right label
23
+ * whether the user asked for `{ year: 'numeric' }` or `{ dateStyle: 'full' }`.
24
+ */
25
+ export declare const computeDisplayDate: (value: string | undefined, type: TDatePickerType, locale: Intl.LocalesArgument, formatOptions: Intl.DateTimeFormatOptions, precision?: TDatePrecision) => string | undefined;
26
+ /**
27
+ * Default `Intl.DateTimeFormat` options per precision.
28
+ * Applied when the consumer hasn't explicitly overridden `formatOptions`, so
29
+ * a `precision="month"` picker doesn't show "1 May 2026".
30
+ */
31
+ export declare const DEFAULT_FORMAT_OPTIONS_BY_PRECISION: Record<TDatePrecision, Intl.DateTimeFormatOptions>;
@@ -192,6 +192,7 @@ export declare class BqInput {
192
192
  /** The input value, it can be used to reset the input to a previous value */
193
193
  value: TInputValue;
194
194
  handleValueChange(): void;
195
+ handleRequiredPropChange(): void;
195
196
  /** Callback handler emitted when the input loses focus */
196
197
  bqBlur: EventEmitter<HTMLBqInputElement>;
197
198
  /**