@govbr-ds/webcomponents 2.2.0 → 2.4.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 (658) hide show
  1. package/README.md +75 -24
  2. package/cem/custom-elements.json +1858 -1712
  3. package/cem/webcomponents.html-custom-data.json +73 -67
  4. package/dist/cjs/br-avatar.cjs.entry.js +2 -2
  5. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +1 -1
  6. package/dist/cjs/br-breadcrumb.cjs.entry.js +2 -2
  7. package/dist/cjs/br-button_2.cjs.entry.js +10 -5
  8. package/dist/cjs/br-card.cjs.entry.js +2 -2
  9. package/dist/cjs/br-carousel-page.cjs.entry.js +2 -2
  10. package/dist/cjs/br-carousel.cjs.entry.js +2 -2
  11. package/dist/cjs/br-checkbox-group.cjs.entry.js +2 -2
  12. package/dist/cjs/br-checkbox.cjs.entry.js +3 -3
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +1 -1
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +11 -7
  15. package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +2 -2
  16. package/dist/cjs/br-cookiebar-group.cjs.entry.js +2 -2
  17. package/dist/cjs/br-cookiebar-header.cjs.entry.js +2 -2
  18. package/dist/cjs/br-cookiebar-link.cjs.entry.js +2 -2
  19. package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +2 -2
  20. package/dist/cjs/br-cookiebar-note.cjs.entry.js +2 -2
  21. package/dist/cjs/br-cookiebar.cjs.entry.js +2 -2
  22. package/dist/cjs/br-crumb.cjs.entry.js +1 -1
  23. package/dist/cjs/br-date-picker_3.cjs.entry.js +869 -517
  24. package/dist/cjs/br-datetime-picker.cjs.entry.js +1347 -311
  25. package/dist/cjs/br-divider.cjs.entry.js +2 -2
  26. package/dist/cjs/br-dropdown_2.cjs.entry.js +282 -165
  27. package/dist/cjs/br-footer-category.cjs.entry.js +2 -2
  28. package/dist/cjs/br-footer-item.cjs.entry.js +2 -2
  29. package/dist/cjs/br-footer-legal.cjs.entry.js +2 -2
  30. package/dist/cjs/br-footer-logo.cjs.entry.js +2 -2
  31. package/dist/cjs/br-footer-social.cjs.entry.js +2 -2
  32. package/dist/cjs/br-footer.cjs.entry.js +2 -2
  33. package/dist/cjs/br-header-function.cjs.entry.js +2 -2
  34. package/dist/cjs/br-header-link.cjs.entry.js +2 -2
  35. package/dist/cjs/br-header-list.cjs.entry.js +2 -2
  36. package/dist/cjs/br-header-logo.cjs.entry.js +2 -2
  37. package/dist/cjs/br-header.cjs.entry.js +27 -23
  38. package/dist/cjs/br-icon.cjs.entry.js +4 -33
  39. package/dist/cjs/br-input.cjs.entry.js +31 -6
  40. package/dist/cjs/br-item.cjs.entry.js +5 -4
  41. package/dist/cjs/br-link.cjs.entry.js +2 -2
  42. package/dist/cjs/br-loading.cjs.entry.js +2 -2
  43. package/dist/cjs/br-magic-button.cjs.entry.js +21 -8
  44. package/dist/cjs/br-menu-group.cjs.entry.js +2 -2
  45. package/dist/cjs/br-menu-header.cjs.entry.js +2 -2
  46. package/dist/cjs/br-menu-info.cjs.entry.js +2 -2
  47. package/dist/cjs/br-menu-item.cjs.entry.js +2 -2
  48. package/dist/cjs/br-menu-link.cjs.entry.js +2 -2
  49. package/dist/cjs/br-menu-list.cjs.entry.js +2 -2
  50. package/dist/cjs/br-menu-logo.cjs.entry.js +2 -2
  51. package/dist/cjs/br-menu-social.cjs.entry.js +2 -2
  52. package/dist/cjs/br-menu.cjs.entry.js +2 -2
  53. package/dist/cjs/br-modal.cjs.entry.js +20 -4
  54. package/dist/cjs/br-notification-body.cjs.entry.js +2 -2
  55. package/dist/cjs/br-notification-header.cjs.entry.js +2 -2
  56. package/dist/cjs/br-notification-item.cjs.entry.js +2 -2
  57. package/dist/cjs/br-notification.cjs.entry.js +2 -2
  58. package/dist/cjs/br-pagination.cjs.entry.js +4 -4
  59. package/dist/cjs/br-radio-group.cjs.entry.js +3 -3
  60. package/dist/cjs/br-radio.cjs.entry.js +3 -3
  61. package/dist/cjs/br-scrim.cjs.entry.js +2 -2
  62. package/dist/cjs/br-select-input_3.cjs.entry.js +286 -100
  63. package/dist/cjs/br-sign-in.cjs.entry.js +8 -4
  64. package/dist/cjs/br-skip-link-item.cjs.entry.js +1 -1
  65. package/dist/cjs/br-skip-link.cjs.entry.js +2 -2
  66. package/dist/cjs/br-skiplink-item.cjs.entry.js +2 -2
  67. package/dist/cjs/br-slider.cjs.entry.js +3 -3
  68. package/dist/cjs/br-step_2.cjs.entry.js +3 -3
  69. package/dist/cjs/br-switch.cjs.entry.js +3 -3
  70. package/dist/cjs/br-tab-item.cjs.entry.js +3 -3
  71. package/dist/cjs/br-tab.cjs.entry.js +38 -13
  72. package/dist/cjs/br-table-body.cjs.entry.js +2 -2
  73. package/dist/cjs/br-table-cell.cjs.entry.js +2 -2
  74. package/dist/cjs/br-table-header-cell.cjs.entry.js +2 -2
  75. package/dist/cjs/br-table-header.cjs.entry.js +2 -2
  76. package/dist/cjs/br-table-row.cjs.entry.js +2 -2
  77. package/dist/cjs/br-table.cjs.entry.js +2 -2
  78. package/dist/cjs/br-tag.cjs.entry.js +3 -3
  79. package/dist/cjs/br-textarea.cjs.entry.js +3 -3
  80. package/dist/cjs/br-tooltip.cjs.entry.js +2 -2
  81. package/dist/cjs/br-upload.cjs.entry.js +7 -23
  82. package/dist/cjs/br-wizard-panel.cjs.entry.js +2 -2
  83. package/dist/cjs/br-wizard.cjs.entry.js +2 -2
  84. package/dist/cjs/{datetime-picker-constants-B5pWeOn1.js → datetime-picker-constants-CCeI5iW7.js} +20 -5
  85. package/dist/cjs/format-bytes-Cs8SH2w0.js +24 -0
  86. package/dist/cjs/icon.utils-DF6kMskA.js +46 -0
  87. package/dist/cjs/{index-CGgZBuyy.js → index-Bc30P_6z.js} +33 -27
  88. package/dist/cjs/{index-C92n55ch.js → index-C-IpVFDH.js} +13 -13
  89. package/dist/cjs/index.cjs.js +2 -2
  90. package/dist/cjs/{datetime-picker-props-validation-DmNKSXsy.js → isValid-CduHZTFc.js} +1 -483
  91. package/dist/cjs/loader.cjs.js +2 -2
  92. package/dist/cjs/select.utils-C38f5Kea.js +62 -0
  93. package/dist/cjs/{validator-CTCajtT9.js → validator-GkkueMOx.js} +18 -0
  94. package/dist/cjs/webcomponents.cjs.js +3 -3
  95. package/dist/collection/collection-manifest.json +1 -1
  96. package/dist/collection/components/avatar/avatar.css +1 -1
  97. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  98. package/dist/collection/components/button/button.css +1 -1
  99. package/dist/collection/components/button/button.js +8 -3
  100. package/dist/collection/components/card/card.css +1 -1
  101. package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
  102. package/dist/collection/components/carousel/carousel.css +1 -1
  103. package/dist/collection/components/checkbox/checkbox.css +1 -1
  104. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  105. package/dist/collection/components/collapse/collapse.css +1 -1
  106. package/dist/collection/components/collapse/collapse.js +12 -6
  107. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
  108. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
  109. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
  110. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
  111. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
  112. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
  113. package/dist/collection/components/cookiebar/cookiebar.css +1 -1
  114. package/dist/collection/components/datetime-picker/date-picker/date-picker-locale.js +12 -12
  115. package/dist/collection/components/datetime-picker/date-picker/date-picker-props-validation.js +14 -13
  116. package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
  117. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +384 -280
  118. package/dist/collection/components/datetime-picker/datetime-input/datetime-input-constants.js +59 -0
  119. package/dist/collection/components/datetime-picker/datetime-input/datetime-input-props-validation.js +19 -15
  120. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
  121. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +373 -211
  122. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.types.js +1 -0
  123. package/dist/collection/components/datetime-picker/datetime-picker-constants.js +19 -5
  124. package/dist/collection/components/datetime-picker/datetime-picker-form-associated.js +92 -11
  125. package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +52 -33
  126. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  127. package/dist/collection/components/datetime-picker/datetime-picker.js +915 -362
  128. package/dist/collection/components/datetime-picker/datetime-picker.utils.js +62 -49
  129. package/dist/collection/components/datetime-picker/time-picker/time-picker-constants.js +3 -2
  130. package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
  131. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +148 -85
  132. package/dist/collection/components/divider/divider.css +1 -1
  133. package/dist/collection/components/dropdown/dropdown.css +1 -1
  134. package/dist/collection/components/dropdown/dropdown.js +32 -36
  135. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  136. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  137. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  138. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  139. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  140. package/dist/collection/components/footer/footer.css +1 -1
  141. package/dist/collection/components/header/header-function/header-function.css +1 -1
  142. package/dist/collection/components/header/header-link/header-link.css +1 -1
  143. package/dist/collection/components/header/header-list/header-list.css +1 -1
  144. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  145. package/dist/collection/components/header/header.css +1 -1
  146. package/dist/collection/components/header/header.js +25 -21
  147. package/dist/collection/components/icon/icon.css +1 -1
  148. package/dist/collection/components/icon/icon.utils.js +8 -0
  149. package/dist/collection/components/input/input.css +1 -1
  150. package/dist/collection/components/input/input.js +50 -4
  151. package/dist/collection/components/item/item.css +1 -1
  152. package/dist/collection/components/item/item.js +4 -3
  153. package/dist/collection/components/link/link.css +1 -1
  154. package/dist/collection/components/list/list.css +1 -1
  155. package/dist/collection/components/loading/loading.css +1 -1
  156. package/dist/collection/components/magic-button/magic-button.css +1 -1
  157. package/dist/collection/components/magic-button/magic-button.js +20 -6
  158. package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
  159. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  160. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  161. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  162. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  163. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  164. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  165. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  166. package/dist/collection/components/menu/menu.css +1 -1
  167. package/dist/collection/components/message/message.css +1 -1
  168. package/dist/collection/components/modal/modal.css +1 -1
  169. package/dist/collection/components/modal/modal.js +19 -3
  170. package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
  171. package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
  172. package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
  173. package/dist/collection/components/notification/notification.css +1 -1
  174. package/dist/collection/components/pagination/pagination.css +1 -1
  175. package/dist/collection/components/pagination/pagination.js +4 -2
  176. package/dist/collection/components/radio/radio.css +1 -1
  177. package/dist/collection/components/radio-group/radio-group.css +1 -1
  178. package/dist/collection/components/scrim/scrim.css +1 -1
  179. package/dist/collection/components/select/select-input/select-input.css +1 -1
  180. package/dist/collection/components/select/select-input/select-input.js +126 -18
  181. package/dist/collection/components/select/select-list/select-list.css +1 -1
  182. package/dist/collection/components/select/select-list/select-list.js +218 -66
  183. package/dist/collection/components/select/select-option/select-option.css +1 -1
  184. package/dist/collection/components/select/select-option/select-option.js +14 -5
  185. package/dist/collection/components/select/select.css +1 -1
  186. package/dist/collection/components/select/select.js +303 -94
  187. package/dist/collection/components/select/select.utils.js +29 -8
  188. package/dist/collection/components/sign-in/sign-in.css +1 -1
  189. package/dist/collection/components/sign-in/sign-in.js +8 -4
  190. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  191. package/dist/collection/components/skip-link/skip-link.css +1 -1
  192. package/dist/collection/components/slider/slider.css +1 -1
  193. package/dist/collection/components/step/step-item/step-item.css +1 -1
  194. package/dist/collection/components/step/step.css +1 -1
  195. package/dist/collection/components/switch/switch.css +1 -1
  196. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  197. package/dist/collection/components/tab/tab-item/tab-item.js +2 -2
  198. package/dist/collection/components/tab/tab.css +1 -1
  199. package/dist/collection/components/tab/tab.js +37 -10
  200. package/dist/collection/components/table/table-body/table-body.css +1 -1
  201. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  202. package/dist/collection/components/table/table-header/table-header.css +1 -1
  203. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  204. package/dist/collection/components/table/table-row/table-row.css +1 -1
  205. package/dist/collection/components/table/table.css +1 -1
  206. package/dist/collection/components/tag/tag.css +1 -1
  207. package/dist/collection/components/textarea/textarea.css +1 -1
  208. package/dist/collection/components/tooltip/tooltip.css +1 -1
  209. package/dist/collection/components/upload/upload.css +1 -1
  210. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  211. package/dist/collection/components/wizard/wizard.css +1 -1
  212. package/dist/collection/pages/components/select/remote.js +33 -0
  213. package/dist/collection/pages/components/select/virtualized.js +13 -0
  214. package/dist/collection/pages/components/upload/handler.js +25 -0
  215. package/dist/collection/pages/scripts/component-controls.js +15 -16
  216. package/dist/collection/pages/scripts/menu.js +0 -1
  217. package/dist/collection/pages/scripts/pageLoader.js +168 -91
  218. package/dist/collection/pages/scripts/pageloader-preview.js +37 -28
  219. package/dist/collection/shared/utils/form.js +17 -0
  220. package/dist/components/br-avatar.js +1 -1
  221. package/dist/components/br-breadcrumb-item.js +1 -1
  222. package/dist/components/br-breadcrumb.js +1 -1
  223. package/dist/components/br-button.js +1 -1
  224. package/dist/components/br-card.js +1 -1
  225. package/dist/components/br-carousel-page.js +1 -1
  226. package/dist/components/br-carousel.js +1 -1
  227. package/dist/components/br-checkbox-group.js +1 -1
  228. package/dist/components/br-checkbox.js +1 -1
  229. package/dist/components/br-checkgroup.js +1 -1
  230. package/dist/components/br-collapse.js +1 -1
  231. package/dist/components/br-cookiebar-cookie.js +1 -1
  232. package/dist/components/br-cookiebar-group.js +1 -1
  233. package/dist/components/br-cookiebar-header.js +1 -1
  234. package/dist/components/br-cookiebar-link.js +1 -1
  235. package/dist/components/br-cookiebar-note-group.js +1 -1
  236. package/dist/components/br-cookiebar-note.js +1 -1
  237. package/dist/components/br-cookiebar.js +1 -1
  238. package/dist/components/br-crumb.js +1 -1
  239. package/dist/components/br-date-picker.js +1 -1
  240. package/dist/components/br-datetime-input.js +1 -1
  241. package/dist/components/br-datetime-picker.js +1 -1
  242. package/dist/components/br-divider.js +1 -1
  243. package/dist/components/br-dropdown.js +1 -1
  244. package/dist/components/br-footer-category.js +1 -1
  245. package/dist/components/br-footer-item.js +1 -1
  246. package/dist/components/br-footer-legal.js +1 -1
  247. package/dist/components/br-footer-logo.js +1 -1
  248. package/dist/components/br-footer-social.js +1 -1
  249. package/dist/components/br-footer.js +1 -1
  250. package/dist/components/br-header-function.js +1 -1
  251. package/dist/components/br-header-link.js +1 -1
  252. package/dist/components/br-header-list.js +1 -1
  253. package/dist/components/br-header-logo.js +1 -1
  254. package/dist/components/br-header.js +1 -1
  255. package/dist/components/br-icon.js +1 -1
  256. package/dist/components/br-input.js +1 -1
  257. package/dist/components/br-item.js +1 -1
  258. package/dist/components/br-link.js +1 -1
  259. package/dist/components/br-list.js +1 -1
  260. package/dist/components/br-loading.js +1 -1
  261. package/dist/components/br-magic-button.js +1 -1
  262. package/dist/components/br-menu-group.js +1 -1
  263. package/dist/components/br-menu-header.js +1 -1
  264. package/dist/components/br-menu-info.js +1 -1
  265. package/dist/components/br-menu-item.js +1 -1
  266. package/dist/components/br-menu-link.js +1 -1
  267. package/dist/components/br-menu-list.js +1 -1
  268. package/dist/components/br-menu-logo.js +1 -1
  269. package/dist/components/br-menu-social.js +1 -1
  270. package/dist/components/br-menu.js +1 -1
  271. package/dist/components/br-message.js +1 -1
  272. package/dist/components/br-modal.js +1 -1
  273. package/dist/components/br-notification-body.js +1 -1
  274. package/dist/components/br-notification-header.js +1 -1
  275. package/dist/components/br-notification-item.js +1 -1
  276. package/dist/components/br-notification.js +1 -1
  277. package/dist/components/br-pagination.js +1 -1
  278. package/dist/components/br-radio-group.js +1 -1
  279. package/dist/components/br-radio.js +1 -1
  280. package/dist/components/br-scrim.js +1 -1
  281. package/dist/components/br-select-input.js +1 -1
  282. package/dist/components/br-select-list.js +1 -1
  283. package/dist/components/br-select-option.js +1 -1
  284. package/dist/components/br-select.js +1 -1
  285. package/dist/components/br-sign-in.js +1 -1
  286. package/dist/components/br-skip-link-item.js +1 -1
  287. package/dist/components/br-skip-link.js +1 -1
  288. package/dist/components/br-skiplink-item.js +1 -1
  289. package/dist/components/br-slider.js +1 -1
  290. package/dist/components/br-step-item.js +1 -1
  291. package/dist/components/br-step.js +1 -1
  292. package/dist/components/br-switch.js +1 -1
  293. package/dist/components/br-tab-item.js +1 -1
  294. package/dist/components/br-tab.js +1 -1
  295. package/dist/components/br-table-body.js +1 -1
  296. package/dist/components/br-table-cell.js +1 -1
  297. package/dist/components/br-table-header-cell.js +1 -1
  298. package/dist/components/br-table-header.js +1 -1
  299. package/dist/components/br-table-row.js +1 -1
  300. package/dist/components/br-table.js +1 -1
  301. package/dist/components/br-tag.js +1 -1
  302. package/dist/components/br-textarea.js +1 -1
  303. package/dist/components/br-time-picker.js +1 -1
  304. package/dist/components/br-tooltip.js +1 -1
  305. package/dist/components/br-upload.js +1 -1
  306. package/dist/components/br-wizard-panel.js +1 -1
  307. package/dist/components/br-wizard.js +1 -1
  308. package/dist/components/index.js +1 -1
  309. package/dist/components/p-5h-W9_JR.js +5 -0
  310. package/dist/components/p-848QkYoM.js +5 -0
  311. package/dist/components/p-B7bNfmgh.js +5 -0
  312. package/dist/components/p-BFHvuEnN.js +5 -0
  313. package/dist/components/p-BH6QYnAr.js +5 -0
  314. package/dist/{webcomponents/p-6c2fe5e4.entry.js → components/p-BcW8O6h2.js} +1 -1
  315. package/dist/components/p-BicHMcSS.js +5 -0
  316. package/dist/components/p-Bs7iRQTG.js +5 -0
  317. package/dist/components/{p-DSHbttu9.js → p-Bvrw9yWR.js} +1 -1
  318. package/dist/components/p-BzQFMh9j.js +5 -0
  319. package/dist/components/p-CBHd0-fF.js +5 -0
  320. package/dist/components/p-CCPHCJjw.js +5 -0
  321. package/dist/components/p-CDTENPaP.js +5 -0
  322. package/dist/components/{p-BcqVlof7.js → p-CbgKdASU.js} +1 -1
  323. package/dist/components/p-CeNELttN.js +5 -0
  324. package/dist/components/p-CjtmJTLO.js +5 -0
  325. package/dist/components/{p-DTGNra9m.js → p-D-3G3Ioq.js} +1 -1
  326. package/dist/components/p-DDu3JV_r.js +5 -0
  327. package/dist/components/p-DFWqyfUe.js +5 -0
  328. package/dist/components/p-DL6xuxGG.js +5 -0
  329. package/dist/components/p-DOX9Uwk1.js +5 -0
  330. package/dist/components/p-DUq7uT2-.js +5 -0
  331. package/dist/components/p-Devw08cc.js +5 -0
  332. package/dist/components/p-Di96UxvH.js +5 -0
  333. package/dist/components/p-Dp3MsSXu.js +5 -0
  334. package/dist/components/p-DsO4F0Cz.js +5 -0
  335. package/dist/components/p-DuLHFTpa.js +5 -0
  336. package/dist/components/p-DusornQ0.js +5 -0
  337. package/dist/components/{p-Dma14GVa.js → p-Jk_KQE5V.js} +1 -1
  338. package/dist/components/p-OQpiDEK9.js +5 -0
  339. package/dist/components/p-PV731d8s.js +5 -0
  340. package/dist/components/p-XW6Hp_Jk.js +5 -0
  341. package/dist/components/p-jOb1hCPi.js +5 -0
  342. package/dist/components/p-rMnkh3Cy.js +5 -0
  343. package/dist/components/p-ta-24T1Z.js +5 -0
  344. package/dist/esm/br-avatar.entry.js +2 -2
  345. package/dist/esm/br-breadcrumb-item.entry.js +1 -1
  346. package/dist/esm/br-breadcrumb.entry.js +2 -2
  347. package/dist/esm/br-button_2.entry.js +10 -5
  348. package/dist/esm/br-card.entry.js +2 -2
  349. package/dist/esm/br-carousel-page.entry.js +2 -2
  350. package/dist/esm/br-carousel.entry.js +3 -3
  351. package/dist/esm/br-checkbox-group.entry.js +2 -2
  352. package/dist/esm/br-checkbox.entry.js +4 -4
  353. package/dist/esm/br-checkgroup.entry.js +1 -1
  354. package/dist/esm/br-collapse_2.entry.js +12 -8
  355. package/dist/esm/br-cookiebar-cookie.entry.js +2 -2
  356. package/dist/esm/br-cookiebar-group.entry.js +2 -2
  357. package/dist/esm/br-cookiebar-header.entry.js +2 -2
  358. package/dist/esm/br-cookiebar-link.entry.js +2 -2
  359. package/dist/esm/br-cookiebar-note-group.entry.js +2 -2
  360. package/dist/esm/br-cookiebar-note.entry.js +2 -2
  361. package/dist/esm/br-cookiebar.entry.js +3 -3
  362. package/dist/esm/br-crumb.entry.js +1 -1
  363. package/dist/esm/br-date-picker_3.entry.js +844 -492
  364. package/dist/esm/br-datetime-picker.entry.js +1316 -280
  365. package/dist/esm/br-divider.entry.js +2 -2
  366. package/dist/esm/br-dropdown_2.entry.js +281 -164
  367. package/dist/esm/br-footer-category.entry.js +2 -2
  368. package/dist/esm/br-footer-item.entry.js +2 -2
  369. package/dist/esm/br-footer-legal.entry.js +2 -2
  370. package/dist/esm/br-footer-logo.entry.js +2 -2
  371. package/dist/esm/br-footer-social.entry.js +2 -2
  372. package/dist/esm/br-footer.entry.js +2 -2
  373. package/dist/esm/br-header-function.entry.js +2 -2
  374. package/dist/esm/br-header-link.entry.js +2 -2
  375. package/dist/esm/br-header-list.entry.js +3 -3
  376. package/dist/esm/br-header-logo.entry.js +2 -2
  377. package/dist/esm/br-header.entry.js +27 -23
  378. package/dist/esm/br-icon.entry.js +3 -32
  379. package/dist/esm/br-input.entry.js +32 -7
  380. package/dist/esm/br-item.entry.js +5 -4
  381. package/dist/esm/br-link.entry.js +2 -2
  382. package/dist/esm/br-loading.entry.js +2 -2
  383. package/dist/esm/br-magic-button.entry.js +21 -8
  384. package/dist/esm/br-menu-group.entry.js +2 -2
  385. package/dist/esm/br-menu-header.entry.js +2 -2
  386. package/dist/esm/br-menu-info.entry.js +2 -2
  387. package/dist/esm/br-menu-item.entry.js +2 -2
  388. package/dist/esm/br-menu-link.entry.js +2 -2
  389. package/dist/esm/br-menu-list.entry.js +2 -2
  390. package/dist/esm/br-menu-logo.entry.js +2 -2
  391. package/dist/esm/br-menu-social.entry.js +2 -2
  392. package/dist/esm/br-menu.entry.js +3 -3
  393. package/dist/esm/br-modal.entry.js +21 -5
  394. package/dist/esm/br-notification-body.entry.js +2 -2
  395. package/dist/esm/br-notification-header.entry.js +2 -2
  396. package/dist/esm/br-notification-item.entry.js +2 -2
  397. package/dist/esm/br-notification.entry.js +3 -3
  398. package/dist/esm/br-pagination.entry.js +4 -4
  399. package/dist/esm/br-radio-group.entry.js +4 -4
  400. package/dist/esm/br-radio.entry.js +4 -4
  401. package/dist/esm/br-scrim.entry.js +2 -2
  402. package/dist/esm/br-select-input_3.entry.js +286 -100
  403. package/dist/esm/br-sign-in.entry.js +8 -4
  404. package/dist/esm/br-skip-link-item.entry.js +1 -1
  405. package/dist/esm/br-skip-link.entry.js +2 -2
  406. package/dist/esm/br-skiplink-item.entry.js +2 -2
  407. package/dist/esm/br-slider.entry.js +4 -4
  408. package/dist/esm/br-step_2.entry.js +3 -3
  409. package/dist/esm/br-switch.entry.js +4 -4
  410. package/dist/esm/br-tab-item.entry.js +3 -3
  411. package/dist/esm/br-tab.entry.js +38 -13
  412. package/dist/esm/br-table-body.entry.js +2 -2
  413. package/dist/esm/br-table-cell.entry.js +2 -2
  414. package/dist/esm/br-table-header-cell.entry.js +2 -2
  415. package/dist/esm/br-table-header.entry.js +2 -2
  416. package/dist/esm/br-table-row.entry.js +2 -2
  417. package/dist/esm/br-table.entry.js +2 -2
  418. package/dist/esm/br-tag.entry.js +4 -4
  419. package/dist/esm/br-textarea.entry.js +4 -4
  420. package/dist/esm/br-tooltip.entry.js +3 -3
  421. package/dist/esm/br-upload.entry.js +5 -21
  422. package/dist/esm/br-wizard-panel.entry.js +2 -2
  423. package/dist/esm/br-wizard.entry.js +2 -2
  424. package/dist/esm/{datetime-picker-constants-BtRPYRvA.js → datetime-picker-constants-DDc4sADe.js} +20 -6
  425. package/dist/esm/{event-CfuJQ1DY.js → event-6Da1SZ3J.js} +1 -1
  426. package/dist/esm/format-bytes-B7bNfmgh.js +22 -0
  427. package/dist/esm/icon.utils-zlORkiHQ.js +43 -0
  428. package/dist/esm/{index-Dcn7tRST.js → index-ConyRdJe.js} +33 -27
  429. package/dist/esm/{index-BQPOWxe5.js → index-CytVKoHT.js} +13 -13
  430. package/dist/esm/index.js +2 -2
  431. package/dist/esm/{datetime-picker-props-validation-BeTcUTnE.js → isValid-Bee0Uvqc.js} +2 -477
  432. package/dist/esm/loader.js +3 -3
  433. package/dist/esm/select.utils-BYsh2ZdE.js +57 -0
  434. package/dist/esm/{validator-D3tVP32U.js → validator-BkWWrDEr.js} +18 -1
  435. package/dist/esm/webcomponents.js +4 -4
  436. package/dist/hydrate/index.js +3314 -1806
  437. package/dist/hydrate/index.mjs +3314 -1806
  438. package/dist/types/components/button/button.d.ts +2 -1
  439. package/dist/types/components/collapse/collapse.d.ts +6 -2
  440. package/dist/types/components/datetime-picker/date-picker/date-picker-locale.d.ts +9 -9
  441. package/dist/types/components/datetime-picker/date-picker/date-picker-props-validation.d.ts +14 -13
  442. package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +264 -161
  443. package/dist/types/components/datetime-picker/datetime-input/datetime-input-constants.d.ts +14 -0
  444. package/dist/types/components/datetime-picker/datetime-input/datetime-input-props-validation.d.ts +19 -15
  445. package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +229 -98
  446. package/dist/types/components/datetime-picker/datetime-input/datetime-input.types.d.ts +36 -0
  447. package/dist/types/components/datetime-picker/datetime-picker-constants.d.ts +19 -5
  448. package/dist/types/components/datetime-picker/datetime-picker-form-associated.d.ts +32 -5
  449. package/dist/types/components/datetime-picker/datetime-picker-props-validation.d.ts +22 -24
  450. package/dist/types/components/datetime-picker/datetime-picker.d.ts +508 -235
  451. package/dist/types/components/datetime-picker/datetime-picker.types.d.ts +75 -21
  452. package/dist/types/components/datetime-picker/datetime-picker.utils.d.ts +53 -47
  453. package/dist/types/components/datetime-picker/time-picker/time-picker-constants.d.ts +3 -2
  454. package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +126 -55
  455. package/dist/types/components/dropdown/dropdown.d.ts +12 -4
  456. package/dist/types/components/header/header.d.ts +2 -0
  457. package/dist/types/components/icon/icon.utils.d.ts +6 -0
  458. package/dist/types/components/input/input.d.ts +18 -1
  459. package/dist/types/components/input/input.types.d.ts +4 -0
  460. package/dist/types/components/item/item.d.ts +6 -1
  461. package/dist/types/components/magic-button/magic-button.d.ts +7 -3
  462. package/dist/types/components/modal/modal.d.ts +6 -0
  463. package/dist/types/components/pagination/pagination.d.ts +2 -0
  464. package/dist/types/components/select/select-input/select-input.d.ts +9 -2
  465. package/dist/types/components/select/select-list/select-list.d.ts +14 -2
  466. package/dist/types/components/select/select-option/select-option.d.ts +1 -0
  467. package/dist/types/components/select/select.d.ts +47 -7
  468. package/dist/types/components/select/select.types.d.ts +12 -0
  469. package/dist/types/components/select/select.utils.d.ts +3 -0
  470. package/dist/types/components/sign-in/sign-in.d.ts +3 -2
  471. package/dist/types/components/tab/tab-item/tab-item.d.ts +6 -2
  472. package/dist/types/components/tab/tab.d.ts +7 -0
  473. package/dist/types/components.d.ts +405 -318
  474. package/dist/types/shared/utils/form.d.ts +8 -0
  475. package/dist/types/stencil-public-runtime.d.ts +61 -55
  476. package/dist/webcomponents/index.esm.js +1 -1
  477. package/dist/webcomponents/p-01801ac1.entry.js +5 -0
  478. package/dist/webcomponents/p-05b459f2.entry.js +5 -0
  479. package/dist/webcomponents/p-08ac6f09.entry.js +5 -0
  480. package/dist/webcomponents/{p-cff24492.entry.js → p-09817344.entry.js} +1 -1
  481. package/dist/webcomponents/p-09c79c1d.entry.js +5 -0
  482. package/dist/webcomponents/p-0fc112fc.entry.js +5 -0
  483. package/dist/webcomponents/p-13babfc4.entry.js +5 -0
  484. package/dist/webcomponents/p-15022ab7.entry.js +5 -0
  485. package/dist/webcomponents/p-172d42c2.entry.js +5 -0
  486. package/dist/webcomponents/p-18cf093a.entry.js +5 -0
  487. package/dist/webcomponents/p-198aa844.entry.js +5 -0
  488. package/dist/webcomponents/p-1ba60d13.entry.js +5 -0
  489. package/dist/webcomponents/p-1bb96641.entry.js +5 -0
  490. package/dist/webcomponents/{p-7acf20d3.entry.js → p-20477061.entry.js} +1 -1
  491. package/dist/webcomponents/p-21feda62.entry.js +5 -0
  492. package/dist/webcomponents/p-23a5cfd7.entry.js +5 -0
  493. package/dist/webcomponents/{p-030c02f8.entry.js → p-2c8595d3.entry.js} +1 -1
  494. package/dist/webcomponents/{p-09770c98.entry.js → p-31a4694a.entry.js} +1 -1
  495. package/dist/webcomponents/p-32ea6342.entry.js +5 -0
  496. package/dist/webcomponents/p-3658adcf.entry.js +5 -0
  497. package/dist/webcomponents/p-37914e63.entry.js +5 -0
  498. package/dist/webcomponents/p-3b0dd0ff.entry.js +5 -0
  499. package/dist/webcomponents/p-42b60169.entry.js +5 -0
  500. package/dist/webcomponents/p-42c9c6c5.entry.js +5 -0
  501. package/dist/{components/p-SvVnvJdC.js → webcomponents/p-473561f2.entry.js} +1 -1
  502. package/dist/webcomponents/p-47c490ef.entry.js +5 -0
  503. package/dist/webcomponents/p-4b01c60f.entry.js +5 -0
  504. package/dist/webcomponents/p-5a5ed7d8.entry.js +5 -0
  505. package/dist/webcomponents/{p-c8b7bbab.entry.js → p-5a7c2031.entry.js} +1 -1
  506. package/dist/webcomponents/p-609cf652.entry.js +5 -0
  507. package/dist/webcomponents/p-614683d9.entry.js +5 -0
  508. package/dist/webcomponents/p-67605757.entry.js +5 -0
  509. package/dist/{components/p-CppRJiyC.js → webcomponents/p-67774920.entry.js} +1 -1
  510. package/dist/webcomponents/p-67d62559.entry.js +5 -0
  511. package/dist/webcomponents/p-695dbeb0.entry.js +5 -0
  512. package/dist/webcomponents/{p-CfuJQ1DY.js → p-6Da1SZ3J.js} +1 -1
  513. package/dist/webcomponents/p-6a293be8.entry.js +5 -0
  514. package/dist/webcomponents/{p-03359c92.entry.js → p-6f1a4fbe.entry.js} +1 -1
  515. package/dist/webcomponents/p-7352d459.entry.js +5 -0
  516. package/dist/webcomponents/p-745213f7.entry.js +5 -0
  517. package/dist/webcomponents/p-794b701b.entry.js +5 -0
  518. package/dist/webcomponents/{p-d826c052.entry.js → p-7ee564a1.entry.js} +1 -1
  519. package/dist/webcomponents/{p-e20188c0.entry.js → p-7fda8b89.entry.js} +1 -1
  520. package/dist/webcomponents/p-8116ee93.entry.js +5 -0
  521. package/dist/webcomponents/p-821341dc.entry.js +5 -0
  522. package/dist/webcomponents/p-8aa6f07c.entry.js +5 -0
  523. package/dist/webcomponents/p-8ddf3ce3.entry.js +5 -0
  524. package/dist/webcomponents/p-95f3c44a.entry.js +5 -0
  525. package/dist/webcomponents/p-96dbb585.entry.js +5 -0
  526. package/dist/webcomponents/p-9815ab95.entry.js +5 -0
  527. package/dist/webcomponents/{p-327f034f.entry.js → p-9e0324a7.entry.js} +1 -1
  528. package/dist/webcomponents/p-B7bNfmgh.js +5 -0
  529. package/dist/webcomponents/p-BYsh2ZdE.js +5 -0
  530. package/dist/webcomponents/p-BkWWrDEr.js +5 -0
  531. package/dist/webcomponents/p-CJipT0in.js +5 -0
  532. package/dist/webcomponents/{p-Dcn7tRST.js → p-ConyRdJe.js} +1 -1
  533. package/dist/webcomponents/{p-BtRPYRvA.js → p-DDc4sADe.js} +1 -1
  534. package/dist/webcomponents/p-a038be16.entry.js +5 -0
  535. package/dist/webcomponents/p-a32d17cb.entry.js +5 -0
  536. package/dist/webcomponents/p-a46f068e.entry.js +5 -0
  537. package/dist/webcomponents/p-a89b684d.entry.js +5 -0
  538. package/dist/webcomponents/{p-abaf2365.entry.js → p-ac68355e.entry.js} +1 -1
  539. package/dist/webcomponents/{p-ed5af0e4.entry.js → p-af888d13.entry.js} +1 -1
  540. package/dist/webcomponents/p-b0124459.entry.js +5 -0
  541. package/dist/webcomponents/p-b063c12f.entry.js +5 -0
  542. package/dist/webcomponents/p-b07bfdc5.entry.js +5 -0
  543. package/dist/webcomponents/{p-f558d7b9.entry.js → p-b55425b7.entry.js} +1 -1
  544. package/dist/webcomponents/{p-a0931550.entry.js → p-b5d25332.entry.js} +1 -1
  545. package/dist/webcomponents/p-b609b464.entry.js +5 -0
  546. package/dist/webcomponents/p-b66ab52d.entry.js +5 -0
  547. package/dist/webcomponents/p-b8d4ace3.entry.js +5 -0
  548. package/dist/webcomponents/p-c717c745.entry.js +5 -0
  549. package/dist/webcomponents/p-ce3d689c.entry.js +5 -0
  550. package/dist/webcomponents/p-d08b6266.entry.js +5 -0
  551. package/dist/webcomponents/p-d6165aa0.entry.js +5 -0
  552. package/dist/webcomponents/{p-01fb0754.entry.js → p-dacb7e2c.entry.js} +1 -1
  553. package/dist/webcomponents/p-db309a11.entry.js +5 -0
  554. package/dist/webcomponents/{p-edc6da0e.entry.js → p-dc23cb2e.entry.js} +1 -1
  555. package/dist/webcomponents/p-e241caf3.entry.js +5 -0
  556. package/dist/webcomponents/p-e661c024.entry.js +5 -0
  557. package/dist/webcomponents/p-e7107869.entry.js +5 -0
  558. package/dist/webcomponents/p-eb94199d.entry.js +5 -0
  559. package/dist/webcomponents/p-f8993ae4.entry.js +5 -0
  560. package/dist/webcomponents/{p-670e8fec.entry.js → p-f99d8c9c.entry.js} +1 -1
  561. package/dist/webcomponents/{p-DV-iW9Aj.js → p-fOJu6uZR.js} +1 -1
  562. package/dist/webcomponents/{p-a212fd85.entry.js → p-fb76b1e0.entry.js} +1 -1
  563. package/dist/webcomponents/p-fdcb54a3.entry.js +5 -0
  564. package/dist/webcomponents/{p-e3de5bb3.entry.js → p-fed02286.entry.js} +1 -1
  565. package/dist/webcomponents/p-zlORkiHQ.js +5 -0
  566. package/dist/webcomponents/webcomponents.esm.js +1 -1
  567. package/package.json +2 -2
  568. package/dist/components/p-B0o70fWP.js +0 -5
  569. package/dist/components/p-B96LROz9.js +0 -5
  570. package/dist/components/p-BDqef5-y.js +0 -5
  571. package/dist/components/p-BP5zMCxG.js +0 -5
  572. package/dist/components/p-BRaphxoP.js +0 -5
  573. package/dist/components/p-BUzBa9L1.js +0 -5
  574. package/dist/components/p-BblZlUp2.js +0 -5
  575. package/dist/components/p-Bc4nAk5i.js +0 -5
  576. package/dist/components/p-Bezou5CQ.js +0 -5
  577. package/dist/components/p-BrNh9KdF.js +0 -5
  578. package/dist/components/p-C5th2dxu.js +0 -5
  579. package/dist/components/p-CEdUp183.js +0 -5
  580. package/dist/components/p-CF7t0uxQ.js +0 -5
  581. package/dist/components/p-CFzHx6zV.js +0 -5
  582. package/dist/components/p-CG4em0S6.js +0 -5
  583. package/dist/components/p-CI4D3-pf.js +0 -5
  584. package/dist/components/p-CIrVPkVg.js +0 -5
  585. package/dist/components/p-CdDwqbBv.js +0 -5
  586. package/dist/components/p-Cvk1Ggs5.js +0 -5
  587. package/dist/components/p-D12US39c.js +0 -5
  588. package/dist/components/p-DGPJkJsj.js +0 -5
  589. package/dist/components/p-DX1wAFn4.js +0 -5
  590. package/dist/components/p-DpRZ4B0d.js +0 -5
  591. package/dist/components/p-G35qEQZd.js +0 -5
  592. package/dist/components/p-Ho_IybzR.js +0 -5
  593. package/dist/components/p-emAWunES.js +0 -5
  594. package/dist/components/p-fB79wKCm.js +0 -5
  595. package/dist/components/p-k7p4QJ8a.js +0 -5
  596. package/dist/webcomponents/p-01baafce.entry.js +0 -5
  597. package/dist/webcomponents/p-0b9714f1.entry.js +0 -5
  598. package/dist/webcomponents/p-12aa36a8.entry.js +0 -5
  599. package/dist/webcomponents/p-130b6e06.entry.js +0 -5
  600. package/dist/webcomponents/p-144f8c8d.entry.js +0 -5
  601. package/dist/webcomponents/p-14fe22e2.entry.js +0 -5
  602. package/dist/webcomponents/p-1ff9210a.entry.js +0 -5
  603. package/dist/webcomponents/p-2605cdc3.entry.js +0 -5
  604. package/dist/webcomponents/p-27afaec9.entry.js +0 -5
  605. package/dist/webcomponents/p-2a50e42d.entry.js +0 -5
  606. package/dist/webcomponents/p-342650b8.entry.js +0 -5
  607. package/dist/webcomponents/p-38f6a78b.entry.js +0 -5
  608. package/dist/webcomponents/p-3920fe3a.entry.js +0 -5
  609. package/dist/webcomponents/p-3ae97345.entry.js +0 -5
  610. package/dist/webcomponents/p-3cce767c.entry.js +0 -5
  611. package/dist/webcomponents/p-3df6c5d2.entry.js +0 -5
  612. package/dist/webcomponents/p-3e287899.entry.js +0 -5
  613. package/dist/webcomponents/p-3e5580ba.entry.js +0 -5
  614. package/dist/webcomponents/p-403637dd.entry.js +0 -5
  615. package/dist/webcomponents/p-435c8ef2.entry.js +0 -5
  616. package/dist/webcomponents/p-59da5b55.entry.js +0 -5
  617. package/dist/webcomponents/p-5dd4314c.entry.js +0 -5
  618. package/dist/webcomponents/p-646af6a5.entry.js +0 -5
  619. package/dist/webcomponents/p-68046544.entry.js +0 -5
  620. package/dist/webcomponents/p-68ec76b8.entry.js +0 -5
  621. package/dist/webcomponents/p-6c0ea20c.entry.js +0 -5
  622. package/dist/webcomponents/p-707df9b9.entry.js +0 -5
  623. package/dist/webcomponents/p-72b839fe.entry.js +0 -5
  624. package/dist/webcomponents/p-73dcc05b.entry.js +0 -5
  625. package/dist/webcomponents/p-7b01bddb.entry.js +0 -5
  626. package/dist/webcomponents/p-7cd38850.entry.js +0 -5
  627. package/dist/webcomponents/p-82454383.entry.js +0 -5
  628. package/dist/webcomponents/p-91e959a8.entry.js +0 -5
  629. package/dist/webcomponents/p-964c01e6.entry.js +0 -5
  630. package/dist/webcomponents/p-9858e42a.entry.js +0 -5
  631. package/dist/webcomponents/p-9c4200b0.entry.js +0 -5
  632. package/dist/webcomponents/p-9d9c87b1.entry.js +0 -5
  633. package/dist/webcomponents/p-B0PbhaxL.js +0 -5
  634. package/dist/webcomponents/p-D3tVP32U.js +0 -5
  635. package/dist/webcomponents/p-a2e75143.entry.js +0 -5
  636. package/dist/webcomponents/p-a3bb98c9.entry.js +0 -5
  637. package/dist/webcomponents/p-a8b5dba0.entry.js +0 -5
  638. package/dist/webcomponents/p-aa909443.entry.js +0 -5
  639. package/dist/webcomponents/p-aeb16645.entry.js +0 -5
  640. package/dist/webcomponents/p-b287c384.entry.js +0 -5
  641. package/dist/webcomponents/p-b506b0a1.entry.js +0 -5
  642. package/dist/webcomponents/p-b520c08c.entry.js +0 -5
  643. package/dist/webcomponents/p-b94c3f84.entry.js +0 -5
  644. package/dist/webcomponents/p-bda62f90.entry.js +0 -5
  645. package/dist/webcomponents/p-c201ae16.entry.js +0 -5
  646. package/dist/webcomponents/p-c7e899a1.entry.js +0 -5
  647. package/dist/webcomponents/p-cbf3e251.entry.js +0 -5
  648. package/dist/webcomponents/p-d35cf5b4.entry.js +0 -5
  649. package/dist/webcomponents/p-d45ffe9c.entry.js +0 -5
  650. package/dist/webcomponents/p-d719a4af.entry.js +0 -5
  651. package/dist/webcomponents/p-da21a60d.entry.js +0 -5
  652. package/dist/webcomponents/p-de0c7f26.entry.js +0 -5
  653. package/dist/webcomponents/p-e27882e1.entry.js +0 -5
  654. package/dist/webcomponents/p-e624ff04.entry.js +0 -5
  655. package/dist/webcomponents/p-f24fcf3d.entry.js +0 -5
  656. package/dist/webcomponents/p-f52ef0dc.entry.js +0 -5
  657. package/dist/webcomponents/p-fcab1428.entry.js +0 -5
  658. package/dist/webcomponents/p-fe1729a7.entry.js +0 -5
@@ -1,41 +1,46 @@
1
1
  import { type EventEmitter } from '../../stencil-public-runtime';
2
2
  import { type FormValidationState } from '../../shared/utils/form';
3
3
  import { type FormValidationChangeDetail } from '../../shared/utils/validator';
4
- import type { DatetimePickerDateRange, DatetimePickerDateState, DatetimePickerDisabledDate, DatetimePickerDisabledDates, DatetimePickerInitialMoment, DatetimePickerLocale, DatetimePickerMode, DatetimePickerSelectionMode, DatetimePickerValidator, DatetimePickerWeekDayIndex } from './datetime-picker.types';
4
+ import type { DatetimePickerChangeDetail, DatetimePickerDateRange, DatetimePickerDateState, DatetimePickerDisabledDate, DatetimePickerDisabledDates, DatetimePickerInitialMoment, DatetimePickerLocale, DatetimePickerMode, DatetimePickerSelectionMode, DatetimePickerValidator, DatetimePickerWeekDayIndex } from './datetime-picker.types';
5
5
  /**
6
- * O componente `br-datetime-picker` é o orquestrador completo do GovBR-DS para seleção e digitação de datas, horários ou intervalos combinados. Ele integra-se nativamente a formulários HTML via `formAssociated` e oferece suporte WAI-ARIA para diálogos e calendários.
6
+ * O `br-datetime-picker` é o controle completo do GovBR-DS para digitação e seleção visual de datas e horários. Orquestra o campo textual e os seletores internos, consolidando valor, validação e integração com formulários HTML.
7
7
  *
8
8
  * ### Para que serve
9
9
  *
10
- * - **Seleção completa de data e horário:** Reúne em um único controle o campo de entrada com máscara formatada (`br-datetime-input`), o calendário de seleção de datas (`br-date-picker`) e o seletor de horários (`br-time-picker`).
11
- * - **Múltiplos modos operacionais:** Suporta data simples, intervalo de datas (`range`), apenas hora (`time`), data e hora combinadas (`datetime`) e datas múltiplas.
12
- * - **Validação e formulários nativos:** Valida datas mínimas (`min`), máximas (`max`), formatos permitidos e comunica valores estruturados diretamente ao formulário pai.
10
+ * - Oferece os modos `date`, `time` e `datetime`, com seleção única (`single`) ou de intervalo (`range`).
11
+ * - Combina edição textual com máscara, calendário e ajuste de horas e minutos conforme o modo escolhido.
12
+ * - Centraliza restrições de seleção, validação e submissão do valor por meio de `formAssociated`.
13
13
  *
14
14
  * ### Quando utilizar
15
15
  *
16
- * - **Utilize quando:**
17
- * - O formulário exigir preenchimento de datas ou horários onde tanto a digitação manual rápida quanto a exploração visual no calendário agreguem valor à experiência.
18
- * - For necessário selecionar um período com data de início e fim.
19
- * - **Evite e prefira outro componente quando:**
20
- * - A data for estritamente de nascimento ou emissão de documento onde a pessoa usuária sabe os dígitos de cor e prefere digitar apenas números (prefira `br-input` com máscara numérica).
16
+ * - Utilize quando o formulário precisar de um controle completo de data ou horário com digitação e seleção visual.
17
+ * - Utilize para períodos com início e fim, inclusive com horários nos modos `time` e `datetime`.
18
+ * - Evite quando precisar apenas apresentar uma data: prefira texto formatado.
19
+ * - Para um calendário permanentemente visível sem o campo textual, considere `br-date-picker`; a aplicação assume a integração com o restante do formulário.
20
+ * - A seleção não oferece uma coleção de datas independentes: use `single` para um valor ou `range` para um intervalo.
21
21
  *
22
22
  * ### Composição e Subcomponentes
23
23
  *
24
- * | Subcomponente | Papel | Regra de uso |
24
+ * | Componente | Papel | Regra de uso |
25
25
  * | --- | --- | --- |
26
- * | `br-datetime-picker` | **Orquestrador principal.** Gerencia valor consolidado, validação, abertura do popup e sincronização entre input e calendário. | Deve ser o único controle declarado no template da aplicação na quase totalidade dos casos. |
27
- * | `br-datetime-input` | **Campo com máscara.** Exibe o valor formatado e permite digitação manual. | Coordenado automaticamente pelo pai; use avulso apenas em composições customizadas. |
28
- * | `br-date-picker` | **Calendário de datas.** Painel visual com grade de dias, meses e anos. | Coordenado pelo pai; use avulso se precisar de calendário estático embutido. |
29
- * | `br-time-picker` | **Seletor de horário.** Controle de escolha de horas e minutos. | Coordenado pelo pai; use avulso se precisar apenas de seletor de hora sem data. |
26
+ * | `br-datetime-picker` | Orquestrador do valor consolidado, validação, formulário e abertura do painel. | Declare este controle no template para obter a composição completa. |
27
+ * | `br-datetime-input` | Campo textual com máscara, interpretação da entrada e ação de abertura do painel. | Instanciado internamente pelo pai; não deve ser fornecido em slot. |
28
+ * | `br-date-picker` | Calendário para navegação e seleção de data única ou intervalo. | Criado pelo pai nos modos `date` e `datetime`; pode ser usado isoladamente como calendário embutido. |
29
+ * | `br-time-picker` | Controles de hora e minuto. | Criado pelo pai nos modos `time` e `datetime`, com uma instância por limite quando a seleção é `range`. |
30
+ *
31
+ * O slot `feedback` recebe conteúdo declarativo de validação, normalmente um `br-message`; não substitui os seletores internos.
30
32
  *
31
33
  * ### Como os subcomponentes se relacionam
32
34
  *
33
- * O `br-datetime-picker` funciona como o modelo pronto: ele instancia e sincroniza internamente o campo textual (`br-datetime-input`) e os seletores visuais suspensos (`br-date-picker` e/ou `br-time-picker`). A aplicação consome os eventos unificados emitidos diretamente pelo orquestrador pai (`change`, `input`).
35
+ * O pai fornece valores e configurações aos filhos por propriedades e consolida suas alterações por eventos DOM. O campo textual solicita a abertura do painel; o calendário e os controles de horário atualizam a seleção compartilhada, sem coordenar diretamente uns aos outros.
36
+ *
37
+ * `referenceDate` representa a referência de navegação visual, distinta da seleção efetiva. O orquestrador mantém o campo textual, os seletores e o valor de formulário sincronizados. A aplicação consome o valor e os eventos do pai, incluindo `brDatetimePickerChange` para a seleção completa e tipada.
38
+ *
39
+ * O uso isolado dos filhos exige que a aplicação assuma a coordenação de estado, validação e formulário; eles não herdam a associação nativa ao formulário do `br-datetime-picker`.
34
40
  *
35
- * Para a documentação completa de design, incluindo diretrizes de acessibilidade e especificações visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/datetime-picker?tab=designer).
41
+ * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/datetimepicker?tab=designer).
36
42
  *
37
-
38
- * @category Formulários, Seleção
43
+ * @category Formulários
39
44
  * @status stable
40
45
  * @slot feedback - Mensagem de validação, normalmente um `br-message`.
41
46
  * @part container - Parte para o container base do seletor.
@@ -48,220 +53,313 @@ import type { DatetimePickerDateRange, DatetimePickerDateState, DatetimePickerDi
48
53
  export declare class DatetimePicker {
49
54
  /** Fornece acesso à API de formulários nativos via ElementInternals. */
50
55
  elementInternals: ElementInternals;
51
- formDisabledCallback(disabled: boolean): void;
52
- /** API nativa de reset de form-associated custom elements. */
53
- formResetCallback(): void;
54
- /** API nativa de restauração de estado (histórico/autofill) do formulário. */
55
- formStateRestoreCallback(state: string | File | FormData | null): void;
56
56
  /** Referência ao elemento host do componente no DOM. */
57
57
  el: HTMLBrDatetimePickerElement;
58
58
  /**
59
- * Controla se o conteúdo do picker está visível.
60
- */
61
- private isPickerOpen;
62
- private formDisabled;
63
- private hasFeedbackSlot;
64
- private customValidationMessage;
65
- private validatorMessage;
66
- private isValidating;
67
- private readonly feedbackId;
68
- /** Lista normalizada de datas indisponíveis para seleção. */
69
- private normalizedDisabledDates;
70
- /** Data final selecionada no modo de intervalo. */
71
- private rangeEnd;
72
- /** Data inicial selecionada no modo de intervalo. */
73
- private rangeStart;
74
- /**
75
- * Mantém a data de referência que orienta a navegação visual do calendário.
76
- */
77
- private referenceDate;
78
- /**
79
- * Define o modo de seleção exibido pelo componente: data, horário ou ambos.
59
+ * Modo exibido pelo componente.
80
60
  *
81
- * Valores aceitos: `date`, `time` ou `datetime`.
82
- * Valores inválidos são corrigidos automaticamente para o valor padrão,
83
- * mantendo o atributo refletido sempre consistente com o modo exibido.
61
+ * Valores: `date` | `time` | `datetime`.
62
+ * Valores inválidos são normalizados para o padrão.
84
63
  *
85
64
  * @default 'datetime'
86
65
  */
87
66
  mode: DatetimePickerMode;
88
67
  /**
89
- * Define o locale usado pelos subcomponentes para formatar datas e rótulos.
68
+ * Locale usado para formatação e rótulos.
90
69
  *
91
70
  * @default 'pt-BR'
92
71
  */
93
72
  locale: DatetimePickerLocale;
94
73
  /**
95
- * Define o placeholder exibido no campo de entrada do datetime picker.
74
+ * Texto placeholder exibido no input.
96
75
  *
97
76
  * @default ''
98
77
  */
99
78
  placeholder: string;
100
- /** Nome do campo para submissão em formulários nativos. */
79
+ /**
80
+ * Nome do campo para submissão em formulários nativos.
81
+ *
82
+ * @default ''
83
+ */
101
84
  name: string;
102
- /** Indica se o campo deve ter valor antes do envio do formulário. */
85
+ /**
86
+ * Indica se o campo é requerido para submissão do formulário.
87
+ *
88
+ * @default false
89
+ */
103
90
  required: boolean;
104
91
  /**
105
- * Menor data/horário aceito, interpretado conforme `mode`. Valores inválidos são ignorados.
106
- * Aceita texto no atributo HTML ou uma instância de `Date` por property binding.
92
+ * Menor data/hora aceito (Date | string | null).
107
93
  *
108
- * @example
109
- * ```html
110
- * <br-datetime-picker mode="date" min="2026-01-01"></br-datetime-picker>
111
- * ```
94
+ * @default null
112
95
  */
113
96
  min: Date | string | null;
114
97
  /**
115
- * Maior data/horário aceito, interpretado conforme `mode`. Valores inválidos são ignorados.
116
- * Aceita texto no atributo HTML ou uma instância de `Date` por property binding.
98
+ * Maior data/hora aceito (Date | string | null).
117
99
  *
118
- * @example
119
- * ```html
120
- * <br-datetime-picker mode="date" max="2026-12-31"></br-datetime-picker>
121
- * ```
100
+ * @default null
122
101
  */
123
102
  max: Date | string | null;
124
103
  /**
125
- * Regra síncrona ou assíncrona aplicada à data ou intervalo selecionado.
126
- * Retorne uma mensagem para invalidar ou `null` para aceitar o valor.
104
+ * Validador customizado (síncrono ou assíncrono) para a seleção.
105
+ *
106
+ * Recebe `Date | DatetimePickerDateRange | null` como valor.
127
107
  *
128
- * @example
129
- * ```js
130
- * const picker = document.querySelector('br-datetime-picker');
131
- * picker.validator = (value) => value === null ? 'Escolha uma data' : null;
132
- * ```
108
+ * @default undefined
133
109
  */
134
110
  readonly validator?: DatetimePickerValidator;
135
111
  /**
136
- * Define o tipo de seleção de datas para o calendário: única ou intervalo.
112
+ * Tipo de seleção: `single` ou `range`.
137
113
  *
138
- * `range` só funciona em conjunto com `mode="date"`.
139
- * Se `selectionMode="range"` for informado, o componente ajusta automaticamente
140
- * `mode` para `date`. Se `mode` mudar para `time` ou `datetime`, o componente
141
- * normaliza `selectionMode` para `single` quando necessário.
142
- * Valores inválidos usam `single`.
114
+ * @default 'single'
143
115
  */
144
116
  selectionMode: DatetimePickerSelectionMode;
145
117
  /**
146
- * Define o dia inicial da semana exibida no calendário.
147
- *
148
- * Valores suportados: 0 (domingo) a 6 (sábado).
118
+ * Dia inicial da semana exibido no calendário (0 = Dom, 6 = Sáb).
149
119
  *
150
120
  * @default 0
151
121
  */
152
122
  weekStartsOn: DatetimePickerWeekDayIndex;
153
123
  /**
154
- * Define a seleção inicial do componente.
155
- *
156
- * Aceita:
157
- * - `'now'`: seleciona o momento atual.
158
- * - `Date` ou `string`: seleciona uma data arbitrária.
159
- * - `null`: inicia sem seleção.
160
- *
161
- * Reativo em runtime: mudanças na prop atualizam estado e subcomponentes.
124
+ * Valor inicial da seleção: `'now' | Date | string | null`.
162
125
  *
163
126
  * @default null
164
- * @example
165
- * ```html
166
- * <br-datetime-picker initial-moment="now"></br-datetime-picker>
167
- * ```
168
127
  */
169
128
  initialMoment: DatetimePickerInitialMoment;
170
129
  /**
171
- * Instância de `Date` selecionada pelo usuário no modo simples.
172
- * Pode ser controlada por property binding e é atualizada pelo evento `valueChange`.
173
- * Para formulários e atributos textuais, use `serializedValue`.
130
+ * Valor selecionado pelo usuário (Date | null).
131
+ *
132
+ * Pode ser controlado externamente e é refletido internamente.
174
133
  *
175
- * @example
176
- * ```js
177
- * const picker = document.querySelector('br-datetime-picker');
178
- * picker.value = new Date(2026, 8, 7, 14, 30);
179
- * ```
134
+ * @default null
180
135
  */
181
136
  value: Date | null;
182
137
  /**
183
- * Representação serializada compatível com os formatos de controles HTML (`YYYY-MM-DD`, `HH:mm`
184
- * ou ISO local, conforme `mode`). Em intervalos, usa `início/fim`.
138
+ * Representação serializada compatível com controles HTML.
185
139
  *
186
- * Na inicialização, tem precedência sobre `valueAsDate`, `value` e `initialMoment`.
187
- * Uma string vazia inicia sem seleção, mesmo quando outra prop fornece uma data.
140
+ * Formatos variam conforme `mode`. Em intervalos, usa `início/fim`.
188
141
  *
189
- * @example
190
- * ```html
191
- * <br-datetime-picker mode="datetime" serialized-value="2026-09-07T14:30"></br-datetime-picker>
192
- * ```
142
+ * @default undefined
193
143
  */
194
144
  serializedValue?: string;
195
145
  /**
196
- * Espelho tipado da seleção atual, equivalente ao padrão `valueAsDate` dos controles HTML.
197
- * Diferentemente de `serializedValue`, recebe e retorna uma instância de `Date`.
198
- * Na inicialização, tem precedência sobre `value` e `initialMoment` quando `serializedValue`
199
- * não é informado. `null` inicia sem seleção; `undefined` permite usar as outras props.
146
+ * Espelho tipado da seleção atual (`valueAsDate`).
147
+ *
148
+ * @internal Mantém compatibilidade com APIs legadas.
200
149
  *
201
- * @example
202
- * ```js
203
- * const picker = document.querySelector('br-datetime-picker');
204
- * picker.valueAsDate = new Date(2026, 8, 7);
205
- * ```
150
+ * @default undefined
206
151
  */
207
152
  valueAsDate?: Date | null;
208
153
  /**
209
154
  * Intervalo controlado quando `selectionMode="range"`.
210
- * Deve conter datas válidas ou `null` em `start` e `end`; valores inválidos mantêm o último intervalo efetivo.
211
- * Passe o objeto por property binding; atributos HTML não representam objetos com `Date`.
212
- *
213
- * @example
214
- * ```js
215
- * const picker = document.querySelector('br-datetime-picker');
216
- * picker.selectionMode = 'range';
217
- * picker.rangeValue = {
218
- * start: new Date(2026, 8, 7),
219
- * end: new Date(2026, 8, 12),
220
- * };
221
- * ```
155
+ *
156
+ * Em `datetime`, preserva as datas e horários informados; término anterior ao
157
+ * início torna o controle inválido, sem reordenar ou avançar datas.
158
+ *
159
+ * @default undefined
222
160
  */
223
161
  rangeValue?: DatetimePickerDateRange;
224
162
  /**
225
163
  * Desabilita toda a interação do componente.
226
164
  *
227
- * Quando `true`, impede abrir o picker, alterar valores e navegar entre datas/horários.
228
- *
229
165
  * @default false
230
166
  */
231
167
  disabled: boolean;
232
168
  /**
233
- * Define um conjunto de datas indisponíveis para seleção.
169
+ * Datas indisponíveis para seleção. Aceita `Date[]`, `string` ou `null`.
234
170
  *
235
- * Aceita uma lista de `Date` e/ou strings analisáveis, ou uma string com datas
236
- * separadas por espaço em branco. Datas inválidas são ignoradas com warning.
237
- * A comparação considera apenas o dia (ano/mês/dia), ignorando hora.
171
+ * Datas inválidas são ignoradas. A comparação considera apenas o dia.
238
172
  *
239
173
  * @default null
240
- * @example
241
- * ```html
242
- * <br-datetime-picker mode="date" disabled-dates="2026-09-07 2026-09-08"></br-datetime-picker>
243
- * ```
244
- * @example
245
- * ```js
246
- * const picker = document.querySelector('br-datetime-picker');
247
- * picker.disabledDates = [new Date(2026, 8, 7), '2026-09-08'];
248
- * ```
249
174
  */
250
175
  disabledDates: DatetimePickerDisabledDates;
251
176
  /**
252
- * Define se o calendário deve manter um número fixo de linhas (6 semanas = 42 dias)
253
- * ou variar conforme o mês.
254
- *
255
- * Quando `true`, o calendário sempre exibe 6 semanas completas.
256
- * Quando `false`, o calendário adapta-se ao mês, exibindo apenas as semanas necessárias.
177
+ * Mantém número fixo de linhas no calendário (6 semanas) quando `true`.
257
178
  *
258
179
  * @default false
259
180
  */
260
181
  fixedRowCount: boolean;
182
+ /**
183
+ * Controla se o conteúdo do picker está visível.
184
+ *
185
+ * @internal Estado reativo interno; não usar externamente.
186
+ */
187
+ private isPickerOpen;
188
+ /**
189
+ * Indica se o formulário associado desabilitou o componente.
190
+ *
191
+ * @internal Estado reativo interno.
192
+ */
193
+ private formDisabled;
194
+ /**
195
+ * Indica se existe slot `feedback` presente no host.
196
+ *
197
+ * @internal Estado reativo interno.
198
+ */
199
+ private hasFeedbackSlot;
200
+ /**
201
+ * Mensagem de validação customizada definida por `setCustomValidity`.
202
+ *
203
+ * @internal Estado reativo interno.
204
+ */
205
+ private customValidationMessage;
206
+ /**
207
+ * Mensagem retornada pelo validator customizado, se houver.
208
+ *
209
+ * @internal Estado reativo interno.
210
+ */
211
+ private validatorMessage;
212
+ /**
213
+ * Mensagem textual de validação proveniente do input interno.
214
+ *
215
+ * @internal Estado reativo interno.
216
+ */
217
+ private inputValidationMessage;
218
+ /**
219
+ * Indica que o usuário está editando o texto do input e que a validação
220
+ * textual está pendente (mensagem escondida até commit/blur).
221
+ *
222
+ * @internal
223
+ */
224
+ private inputValidationPending;
225
+ /**
226
+ * Indicador de execução do validator assíncrono.
227
+ *
228
+ * @internal Estado reativo interno.
229
+ */
230
+ private isValidating;
231
+ /**
232
+ * Lista normalizada de datas indisponíveis para seleção.
233
+ *
234
+ * @internal Mantida em formato `Date[]` para uso interno pelo calendário.
235
+ */
236
+ private normalizedDisabledDates;
237
+ /**
238
+ * Data final selecionada no modo de intervalo.
239
+ *
240
+ * @internal Estado reativo interno.
241
+ */
242
+ private rangeEnd;
243
+ /**
244
+ * Data inicial selecionada no modo de intervalo.
245
+ *
246
+ * @internal Estado reativo interno.
247
+ */
248
+ private rangeStart;
249
+ /**
250
+ * Data de referência usada para navegação visual (mês/semana exibidos).
251
+ *
252
+ * @internal Controle de navegação do calendário.
253
+ */
254
+ private referenceDate;
255
+ /**
256
+ * Evento público emitido quando a data de referência ou a seleção mudam.
257
+ *
258
+ * Payload (`DatetimePickerDateState`):
259
+ * - `referenceDate`: Date — data usada para navegação visual (mês/semana exibidos).
260
+ * - `value`: Date | null — valor selecionado atualmente.
261
+ *
262
+ * @event dateStateChange
263
+ * @type {CustomEvent<DatetimePickerDateState>}
264
+ */
265
+ dateStateChange: EventEmitter<DatetimePickerDateState>;
266
+ /**
267
+ * Evento público canônico emitido quando a seleção muda.
268
+ *
269
+ * Payload (`DatetimePickerChangeDetail`):
270
+ * - `mode`: DatetimePickerMode — modo atual do componente (`date` | `time` | `datetime`).
271
+ * - `selectionMode`: DatetimePickerSelectionMode — `single` ou `range`.
272
+ * - `value`: Date | null | DatetimePickerDateRange — seleção atual (tipo depende de `selectionMode`).
273
+ * - `serializedValue`: string | undefined — representação serializada para integração com formulários.
274
+ *
275
+ * @event brDatetimePickerChange
276
+ * @type {CustomEvent<DatetimePickerChangeDetail>}
277
+ */
278
+ brDatetimePickerChange: EventEmitter<DatetimePickerChangeDetail>;
279
+ /**
280
+ * Evento emitido quando o valor selecionado muda.
281
+ *
282
+ * @deprecated Use `brDatetimePickerChange` para receber a seleção completa e tipada.
283
+ *
284
+ * Payload (legacy): `Date | null` — valor selecionado.
285
+ *
286
+ * @event valueChange
287
+ * @type {CustomEvent<Date | null>}
288
+ */
289
+ valueChange: EventEmitter<Date | null>;
290
+ /**
291
+ * Emitido ao iniciar e concluir a validação customizada.
292
+ *
293
+ * Payload (`FormValidationChangeDetail`):
294
+ * - `validating`: boolean — indica se a validação está em execução.
295
+ * - `valid`: boolean | null — resultado da validação (`null` enquanto valida).
296
+ * - `message`: string | null — mensagem de validação associada.
297
+ *
298
+ * @event brDatetimePickerValidationChange
299
+ * @type {CustomEvent<FormValidationChangeDetail>}
300
+ */
301
+ brDatetimePickerValidationChange: EventEmitter<FormValidationChangeDetail>;
302
+ /**
303
+ * ID único do contêiner de feedback interno.
304
+ * Gerado por `Helpers.generateUniqueId` no momento da criação da instância
305
+ * e usado para associar mensagens de validação ao input interno.
306
+ *
307
+ * @internal
308
+ */
309
+ private readonly feedbackId;
310
+ /**
311
+ * Snapshot da seleção inicial usada para restaurar em reset de formulário.
312
+ * Mantém uma cópia imutável do valor original para `formResetCallback`.
313
+ *
314
+ * @internal
315
+ */
316
+ private initialFormValue;
317
+ /**
318
+ * Contador monótono usado para invalidar execuções assíncronas de validação.
319
+ * Incrementado antes de cada execução; resultados com `runId` diferente são ignorados.
320
+ *
321
+ * @internal
322
+ */
323
+ private validationRunId;
324
+ /**
325
+ * Indica se o componente já completou o ciclo `componentDidLoad`.
326
+ * Evita executar lógica de inicialização mais de uma vez.
327
+ *
328
+ * @internal
329
+ */
330
+ private isInitialized;
331
+ /**
332
+ * Flag para evitar loops de sincronização entre `value`, `valueAsDate` e `serializedValue`.
333
+ * Setada temporariamente durante operações programáticas de sincronização.
334
+ *
335
+ * @internal
336
+ */
337
+ private syncingCanonicalValues;
338
+ /**
339
+ * Flag que sinaliza atualizações internas em `rangeValue`.
340
+ * Usada para distinguir atribuições programáticas de alterações externas.
341
+ *
342
+ * @internal
343
+ */
344
+ private syncingRangeValueInternally;
345
+ /**
346
+ * Mapeia cada modo para a função responsável por renderizar seu conteúdo.
347
+ * Facilita seleção de renderer sem condicionais espalhadas pelo código.
348
+ *
349
+ * @internal
350
+ */
351
+ private readonly modeRendererMap;
352
+ /**
353
+ * Indica se o listener global de clique fora do componente está anexado.
354
+ * Evita anexações/remoções redundantes do mesmo handler.
355
+ *
356
+ * @internal
357
+ */
358
+ private outsideClickListenerAttached;
261
359
  /**
262
360
  * Revalida o modo sempre que a prop mudar.
263
361
  *
264
- * @param newValue - Valor recebido via atributo/prop.
362
+ * @param {string} newValue - Valor recebido via atributo/prop.
265
363
  */
266
364
  handleModeChange(newValue: string): void;
267
365
  /** Revalida o estado do formulário quando required mudar. */
@@ -276,10 +374,13 @@ export declare class DatetimePicker {
276
374
  /**
277
375
  * Aplica ou limpa a seleção da data atual conforme o novo valor da prop.
278
376
  *
279
- * @param newValue - Novo estado da prop.
377
+ * @param {DatetimePickerInitialMoment} newValue - Novo estado da prop.
280
378
  */
281
379
  handleInitialMomentChange(newValue: DatetimePickerInitialMoment): void;
282
380
  /** Sincroniza alterações externas do valor com o estado visual e o formulário nativo. */
381
+ /**
382
+ * @param {Date | null} newValue - Novo valor recebido via prop.
383
+ */
283
384
  handleValueChange(newValue: Date | null): void;
284
385
  /** Converte alterações externas no valor serializado sem mudar o tipo da prop legada `value`. */
285
386
  handleSerializedValueChange(newValue?: string): void;
@@ -293,53 +394,95 @@ export declare class DatetimePicker {
293
394
  */
294
395
  handleDisabledDatesChange(newValue: DatetimePickerDisabledDates): void;
295
396
  handleRangeValueChange(newValue?: DatetimePickerDateRange): void;
296
- /** Evento público emitido quando a data de referência ou a seleção mudam. */
297
- dateStateChange: EventEmitter<DatetimePickerDateState>;
298
- /**
299
- * Evento emitido quando o valor selecionado muda.
300
- * @deprecated Use `input`/`change` e leia `event.target.value`.
301
- */
302
- valueChange: EventEmitter<Date | null>;
303
- /** Emitido ao iniciar e concluir a validação customizada. */
304
- brDatetimePickerValidationChange: EventEmitter<FormValidationChangeDetail>;
305
- /** Registra o listener global somente enquanto o picker está aberto. */
306
397
  connectedCallback(): void;
307
- /** Remove o listener global para evitar vazamento de eventos ao desmontar. */
398
+ componentWillLoad(): void;
399
+ componentDidLoad(): void;
308
400
  disconnectedCallback(): void;
401
+ formDisabledCallback(disabled: boolean): void;
402
+ /** Restaura o estado do componente quando o formulário é restaurado. */
403
+ formResetCallback(): void;
309
404
  /**
310
- * Normaliza o modo antes da primeira renderização e aplica a data atual quando solicitado.
405
+ * Restaura o estado do formulário (autofill / histórico).
406
+ *
407
+ * @param {string | File | FormData | null} state Estado serializado fornecido pelo navegador.
311
408
  */
312
- componentWillLoad(): void;
313
- componentDidLoad(): void;
409
+ formStateRestoreCallback(state: string | File | FormData | null): void;
314
410
  /**
315
- * Define programaticamente as datas desabilitadas por meio de array.
411
+ * Define programaticamente as datas desabilitadas.
316
412
  *
317
- * Útil quando o componente é usado via HTML e o consumidor precisa enviar
318
- * uma lista tipada em runtime.
413
+ * Use quando scripts externos precisam fornecer uma lista tipada de
414
+ * datas a bloquear no calendário. Substitui a prop `disabledDates` para
415
+ * atualizações imperativas.
319
416
  *
320
- * @param dates - Lista de datas (Date|string) a bloquear.
417
+ * @param dates Lista de datas (`Date` | `string`) a bloquear, ou `null` para limpar.
418
+ * @returns Promise<void> — resolve quando a atualização interna for aplicada.
321
419
  */
322
420
  setDisabledDates(dates: DatetimePickerDisabledDate[] | null): Promise<void>;
323
- /** Define o valor atual de forma imperativa aceitando Date, string serializada ou null. */
421
+ /**
422
+ * Define o valor do componente de forma imperativa.
423
+ *
424
+ * Aceita `Date`, string compatível com o `mode`, ou `null` para limpar a seleção.
425
+ * Validação de datas desabilitadas é aplicada antes da atribuição.
426
+ *
427
+ * @param value Date | string | null — valor a aplicar; `null` limpa a seleção.
428
+ * @returns Promise<void> — resolve quando o componente aplicar e sincronizar o valor.
429
+ */
324
430
  setValue(value: Date | string | null): Promise<void>;
325
- /** Retorna uma cópia do valor selecionado atualmente. */
431
+ /**
432
+ * Retorna uma cópia do valor selecionado atualmente.
433
+ *
434
+ * @returns Promise<Date | null> — cópia imutável do `value` atual, ou `null`.
435
+ */
326
436
  getValue(): Promise<Date | null>;
327
- /** Limpa valor e intervalo selecionados. */
437
+ /**
438
+ * Limpa valor e intervalo selecionados.
439
+ *
440
+ * Remove seleção atual e restaura a referência de navegação para a data atual.
441
+ *
442
+ * @returns Promise<void> — resolve após a limpeza e sincronização internas.
443
+ */
328
444
  clear(): Promise<void>;
329
- /** Abre o picker quando o componente estiver habilitado. */
445
+ /**
446
+ * Abre o picker quando o componente estiver habilitado.
447
+ *
448
+ * @returns Promise<void> — resolve quando o estado visual for atualizado.
449
+ */
330
450
  open(): Promise<void>;
331
- /** Fecha o picker. */
451
+ /**
452
+ * Fecha o picker.
453
+ *
454
+ * @returns Promise<void> — resolve após atualização do estado de visibilidade.
455
+ */
332
456
  close(): Promise<void>;
333
- /** Alterna o estado de abertura do picker. */
457
+ /**
458
+ * Alterna o estado de abertura do picker.
459
+ *
460
+ * @returns Promise<void> — resolve quando a transição de estado terminar.
461
+ */
334
462
  toggle(): Promise<void>;
335
- /** Move o foco para o input nativo interno. */
463
+ /**
464
+ * Move o foco para o input nativo interno.
465
+ *
466
+ * @returns Promise<void> — resolve imediatamente após tentar focar o elemento.
467
+ */
336
468
  focusInput(): Promise<void>;
337
- /** Define intervalo de datas de forma imperativa, forçando modo date e selectionMode range. */
469
+ /**
470
+ * Define um intervalo no modo atual e ativa `selectionMode="range"`.
471
+ *
472
+ * Valida datas contra bloqueios e sincroniza estado visual e de formulário.
473
+ * Em `datetime`, mantém os limites informados e sinaliza intervalo inválido
474
+ * quando o término precede o início, sem ajustar datas automaticamente.
475
+ *
476
+ * @param start Date | string | null — data inicial do intervalo.
477
+ * @param end Date | string | null — data final do intervalo.
478
+ * @returns Promise<void> — resolve quando o intervalo for aplicado e sincronizado.
479
+ */
338
480
  setRange(start: Date | string | null, end: Date | string | null): Promise<void>;
339
481
  /**
340
482
  * Retorna o intervalo de datas selecionado quando em modo `selectionMode="range"`.
341
483
  *
342
- * @returns Objeto com datas `start` e `end`, ou `null` se não estiver em modo range.
484
+ * @returns Promise<{ start: Date | null; end: Date | null } | null> — objeto com `start`/`end` ou `null` quando
485
+ * não estiver em modo `range`.
343
486
  */
344
487
  getRange(): Promise<{
345
488
  start: Date | null;
@@ -348,80 +491,150 @@ export declare class DatetimePicker {
348
491
  /**
349
492
  * Consulta se o picker está atualmente aberto.
350
493
  *
351
- * @returns `true` se o picker está visível, `false` caso contrário.
494
+ * @returns Promise<boolean> — `true` se o picker está visível, `false` caso contrário.
352
495
  */
353
496
  isOpen(): Promise<boolean>;
354
- /** Restaura o estado inicial atualmente registrado para reset. */
497
+ /**
498
+ * Restaura o estado inicial atualmente registrado para reset.
499
+ *
500
+ * @returns Promise<void> — resolve quando a seleção inicial for restaurada.
501
+ */
355
502
  resetToInitial(): Promise<void>;
356
- /** Permite que consumidores acionem validação nativa do formulário via host. */
503
+ /**
504
+ * Permite que consumidores acionem validação nativa do formulário via host.
505
+ *
506
+ * @returns Promise<boolean> — resultado da Constraint Validation API para o host.
507
+ */
357
508
  checkValidity(): Promise<boolean>;
358
- /** Permite exibir mensagens nativas de validação no host. */
509
+ /**
510
+ * Permite exibir mensagens nativas de validação no host.
511
+ *
512
+ * @returns Promise<boolean> — `true` se a mensagem foi exibida e o formulário é válido.
513
+ */
359
514
  reportValidity(): Promise<boolean>;
360
- /** Define ou limpa uma mensagem de validade customizada. */
515
+ /**
516
+ * Define ou limpa uma mensagem de validade customizada.
517
+ *
518
+ * @param message string — mensagem de validação; string vazia remove a mensagem.
519
+ * @returns Promise<void> — resolve após sincronizar a validade no host.
520
+ */
361
521
  setCustomValidity(message: string): Promise<void>;
362
- /** Executa o validator do picker e retorna se a seleção atual é válida. */
522
+ /**
523
+ * Executa o validator customizado (se houver) e valida o controle.
524
+ *
525
+ * Emite eventos de início/conclusão da validação e atualiza mensagens internas.
526
+ *
527
+ * @returns Promise<boolean> — `true` se a seleção for considerada válida.
528
+ */
363
529
  validate(): Promise<boolean>;
364
- /** Retorna um snapshot serializável da Constraint Validation API. */
530
+ /**
531
+ * Retorna um snapshot serializável da Constraint Validation API.
532
+ *
533
+ * @returns Promise<FormValidationState> — estado atual de validação do host,
534
+ * pronto para conversão e restauração via `formStateRestoreCallback`.
535
+ */
365
536
  getValidationState(): Promise<FormValidationState>;
366
- /** Snapshot da seleção inicial usada para restaurar em reset de formulário. */
367
- private initialFormValue;
368
- private validationRunId;
369
- private isInitialized;
370
- private syncingCanonicalValues;
371
- /** Mapeia cada modo para a função responsável por renderizar seu conteúdo. */
372
- private readonly modeRendererMap;
373
537
  /**
374
538
  * Valida o modo de seleção e corrige para padrão se inválido.
375
539
  *
376
540
  * @param value - Modo informado pelo consumidor do componente.
377
541
  */
378
542
  private ensureValidSelectionMode;
379
- /**
380
- * Normaliza o modo de seleção logo na inicialização.
381
- */
382
543
  private initializeSelectionMode;
383
- /** Normaliza o dia inicial da semana logo na inicialização. */
384
544
  private initializeWeekStartsOn;
385
- /** Valida o dia inicial da semana e corrige para padrão quando necessário. */
386
- private ensureValidWeekStartsOn;
387
545
  /**
388
- * Limpa o estado do intervalo de datas ao mudar para modo single.
546
+ * Valida o dia inicial da semana e corrige para padrão quando necessário.
547
+ *
548
+ * @param value unknown — valor recebido via prop/atributo a ser normalizado.
389
549
  */
550
+ private ensureValidWeekStartsOn;
390
551
  private clearRangeState;
391
- /** Indica quando o componente está operando em seleção de intervalo por data. */
552
+ /**
553
+ * Materializa os horários exibidos pelos dois timers como limites reais.
554
+ * Assim o range de horário já nasce completo, o input pode representá-lo na
555
+ * primeira renderização e nenhum timer depende da referência do outro.
556
+ */
557
+ private initializeTimeRangeBoundaries;
392
558
  private isRangeDateSelectionMode;
393
559
  /**
394
- * Resolve se o evento público deve ser emitido após um update vindo dos subcomponentes.
560
+ * Decide se um evento público deve ser emitido após atualização vinda de
561
+ * subcomponentes (calendário/relógio).
395
562
  *
396
- * No modo range, o evento externo só é emitido no clique final (quando `end` é definido).
563
+ * @param range DatetimePickerDateRange | undefined — estado parcial do range vindo do subcomponente.
564
+ * @returns boolean — `true` quando o evento deve ser emitido externamente.
397
565
  */
398
566
  private resolvePublicEventEmissionForRange;
399
- /** Resolve a data efetivamente selecionada no evento para validar bloqueio em single/range. */
567
+ /**
568
+ * Resolve a data efetivamente selecionada no evento para validações e bloqueios.
569
+ *
570
+ * @param range DatetimePickerDateRange | undefined — intervalo parcial (quando aplicável).
571
+ * @param value Date | null — valor principal vindo do subcomponente.
572
+ * @returns Date | null — data final a ser considerada para validação.
573
+ */
400
574
  private resolveSelectedDateFromEvent;
401
575
  /**
402
- * Sincroniza o estado local com a emissão dos subcomponentes de data e horário.
576
+ * Handler disparado por `br-datetime-input` para propagar mensagens de
577
+ * validação do input interno para o estado do componente.
403
578
  *
404
- * @param event - Evento com a data de referência e o valor selecionado.
579
+ * @param event CustomEvent<{ valid: boolean; message: string }> — detalhe com `valid` e `message`.
580
+ * @returns void
581
+ */
582
+ private handleInputValidationChange;
583
+ /**
584
+ * Identifica navegação visual que preserva integralmente o range selecionado.
585
+ *
586
+ * @param value Date | null — valor principal do evento.
587
+ * @param range DatetimePickerDateRange | undefined — range parcial do evento.
588
+ * @returns boolean — `true` quando a navegação não altera a seleção atual.
589
+ */
590
+ private isRangeNavigationState;
591
+ /**
592
+ * Consolida um evento cujo valor principal permaneceu inalterado.
593
+ *
594
+ * @param range DatetimePickerDateRange | undefined — estado parcial do range.
595
+ * @param shouldEmitPublicEvent boolean — indica se o evento público deve ser emitido.
596
+ */
597
+ private handleUnchangedDateState;
598
+ /**
599
+ * Emite a seleção parcial de range quando os eventos públicos foram adiados
600
+ * para evitar duplicidade com listeners legados.
601
+ *
602
+ * @param range DatetimePickerDateRange | undefined — snapshot parcial do range.
603
+ * @param shouldEmitPublicEvent boolean — se deve ser emitido publicamente.
604
+ */
605
+ private emitPendingRangeChange;
606
+ /**
607
+ * Handler principal que consolida eventos de `br-date-picker` / `br-time-picker`.
608
+ * Contém lógica de proteção contra valores desabilitados, navegação e emissão
609
+ * de eventos públicos apropriados.
610
+ *
611
+ * @param event CustomEvent<DatetimePickerDateState> — detalhe com `referenceDate`, `value` e `range`.
405
612
  */
406
613
  private handleDateStateChange;
614
+ /**
615
+ * Atualiza somente o horário de um dos limites do intervalo.
616
+ *
617
+ * @param boundary 'start' | 'end' — qual limite será atualizado.
618
+ * @param event CustomEvent<DatetimePickerDateState> — detalhe com novo `value`.
619
+ */
620
+ private handleRangeTimeStateChange;
621
+ private readonly handleRangeStartTimeStateChange;
622
+ private readonly handleRangeEndTimeStateChange;
407
623
  /**
408
624
  * Alterna visibilidade do picker quando o input solicita.
625
+ *
626
+ * @param event Event — evento de toggle vindo do input.
409
627
  */
410
628
  private handleTogglePicker;
411
629
  /**
412
630
  * Fecha o picker quando o clique acontece fora do host.
631
+ *
632
+ * @param event MouseEvent — clique ocorrido no documento.
413
633
  */
414
634
  private handleOutsideClick;
415
- private outsideClickListenerAttached;
416
635
  private attachOutsideClickListener;
417
636
  private detachOutsideClickListener;
418
- /**
419
- * Garante que o componente inicie com um modo suportado.
420
- */
421
637
  private initializeMode;
422
- /**
423
- * Normaliza a coleção de datas desabilitadas na inicialização.
424
- */
425
638
  private initializeDisabledDates;
426
639
  /**
427
640
  * Normaliza e aplica as datas desabilitadas, limpando valor atual quando necessário.
@@ -429,9 +642,6 @@ export declare class DatetimePicker {
429
642
  * @param value - Valor bruto recebido por prop/atributo ou método público.
430
643
  */
431
644
  private syncDisabledDates;
432
- /**
433
- * Aplica a seleção inicial configurada na prop.
434
- */
435
645
  private initializeDefaultValue;
436
646
  /**
437
647
  * Aplica a seleção inicial recebida, com normalização de valores inválidos.
@@ -439,38 +649,99 @@ export declare class DatetimePicker {
439
649
  * @param selection - Configuração de seleção inicial.
440
650
  */
441
651
  private applyInitialMoment;
442
- /** Indica se o estado serializado deve ser interpretado como intervalo. */
443
652
  private isRangeRestoreMode;
444
- /** Restaura estado de intervalo a partir do valor serializado do formulário. */
653
+ /**
654
+ * Restaura estado de intervalo a partir do valor serializado do formulário.
655
+ *
656
+ * @param serializedState string — valor serializado vindo do formulário.
657
+ */
445
658
  private restoreRangeStateFromSerialized;
446
- /** Restaura estado de seleção única a partir do valor serializado do formulário. */
659
+ /**
660
+ * Restaura estado de seleção única a partir do valor serializado do formulário.
661
+ *
662
+ * @param serializedState string — valor serializado vindo do formulário.
663
+ */
447
664
  private restoreSingleStateFromSerialized;
448
- /** Resolve Date|null a partir de valores aceitos pelos métodos públicos. */
665
+ /**
666
+ * Converte entradas aceitas por métodos públicos em `Date | null`.
667
+ *
668
+ * @param value Date | string | null — valor bruto recebido pelo método público.
669
+ * @param mode DatetimePickerMode — modo atual para parsing de strings.
670
+ * @returns Date | null — representação normalizada ou `null` se inválida.
671
+ */
449
672
  private parseMethodValue;
450
- /** Aplica a ponte serializada usando os mesmos parsers já usados por restore de formulário. */
673
+ /**
674
+ * Aplica a ponte serializada usando os mesmos parsers já usados por restore de formulário.
675
+ *
676
+ * @param serializedValue string — valor serializado a ser restaurado.
677
+ */
451
678
  private restoreSerializedValue;
452
679
  /** Atualiza os nomes canônicos sem emitir eventos adicionais ou criar ciclos de watchers. */
453
680
  private syncCanonicalValues;
454
- /** Retorna o mesmo valor que será submetido pelo ElementInternals. */
681
+ /**
682
+ * Retorna o mesmo valor que será submetido pelo ElementInternals.
683
+ *
684
+ * @returns string — valor serializado pronto para `setFormValue`.
685
+ */
455
686
  private getSerializedValue;
456
687
  private sameDate;
457
- /** Retorna a âncora de validação, ou undefined antes do primeiro render. */
688
+ /**
689
+ * Busca o input nativo interno para ações imperativas de foco.
690
+ *
691
+ * @returns HTMLElement | undefined — elemento `input` nativo interno, quando disponível.
692
+ */
458
693
  private getNativeInputElement;
459
- private datetimeInputElement?;
460
- /** Atualiza estado interno, FormData e validação com uma única chamada. */
694
+ /**
695
+ * Atualiza estado interno, FormData e validação com uma única chamada.
696
+ *
697
+ * @param nextValue Date | null — próximo valor a ser aplicado no componente.
698
+ * @param shouldEmitPublicEvent boolean — controla emissão de eventos públicos.
699
+ * @returns void
700
+ */
461
701
  private setComponentValue;
462
702
  /** Propaga o estado atual consolidado para consumidores externos do componente raiz. */
463
703
  private emitDateStateChange;
464
- /** Expande o intervalo completo e marca quais dias estão desabilitados. */
704
+ /** Emite o contrato público sem expor detalhes incidentais do estado interno. */
705
+ private emitCanonicalChange;
706
+ /**
707
+ * Serializa uma data civil sem conversão para UTC ou mudança de dia.
708
+ *
709
+ * @param value Date — data a serializar (somente componente civil).
710
+ * @returns string — formato `YYYY-MM-DD`.
711
+ */
712
+ private serializeDateOnly;
713
+ /**
714
+ * Serializa um limite do intervalo conforme o modo sem expor objetos Date no payload.
715
+ *
716
+ * @param value Date | null — limite a serializar.
717
+ * @returns string | null — representação serializada do limite ou `null`.
718
+ */
719
+ private serializeRangeBoundary;
720
+ /**
721
+ * Expande o intervalo completo e marca quais dias estão desabilitados.
722
+ *
723
+ * @param start Date — início do intervalo.
724
+ * @param end Date — fim do intervalo.
725
+ * @returns Array<{date: Date, disabled: boolean}> — lista diária com flags.
726
+ */
465
727
  private buildRangeDatesState;
466
- /** Restaura seleção e data de referência a partir de uma data já validada. */
728
+ /**
729
+ * Restaura seleção e data de referência a partir de uma data já validada.
730
+ *
731
+ * @param nextValue Date | null — valor validado a ser restaurado como seleção.
732
+ */
467
733
  private restoreSelection;
468
- /** Atualiza o estado local de intervalo a partir do evento do calendário. */
734
+ /**
735
+ * Atualiza o estado local de intervalo a partir do evento do calendário.
736
+ *
737
+ * @param nextRange DatetimePickerDateRange | undefined — novo snapshot do intervalo.
738
+ */
469
739
  private setRangeState;
470
- /** Mantém ElementInternals sincronizado com estado e regras do componente. */
471
740
  private updateFormInternals;
472
741
  /** Atualiza o valor submetido no FormData do form-associated custom element. */
473
742
  private syncFormValue;
743
+ /** Deriva o erro de ordenação sem modificar os limites escolhidos. */
744
+ private getRangeOrderValidationMessage;
474
745
  /** Espelha a regra de required no mecanismo nativo de validade. */
475
746
  private syncFormValidity;
476
747
  private parseConstraintValue;
@@ -502,24 +773,26 @@ export declare class DatetimePicker {
502
773
  * Agrupa os bindings compartilhados para evitar divergência entre data e horário.
503
774
  */
504
775
  private getSharedDateStateBindings;
776
+ /**
777
+ * Fecha o picker ao pressionar Escape, devolvendo o foco ao input interno.
778
+ *
779
+ * @param event - Evento de teclado disparado em qualquer descendente do componente.
780
+ */
781
+ private handlePickerKeydown;
505
782
  /** Renderiza o campo de entrada responsável por abrir e sincronizar o picker. */
506
783
  private renderInputField;
507
784
  /** Renderiza apenas o seletor de data. */
508
785
  private renderDatePicker;
509
- /** Renderiza apenas o seletor de hora. */
786
+ /** Renderiza um seletor de hora simples ou um limite do intervalo. */
510
787
  private renderTimePicker;
788
+ /** Renderiza os horários inicial e final lado a lado no modo range. */
789
+ private renderRangeTimePickers;
511
790
  /**
512
791
  * Renderiza a combinação de data e horário no modo `datetime`.
513
792
  */
514
793
  private renderDateTimePicker;
515
794
  /** Renderiza o separador visual entre data e hora no modo combinado. */
516
795
  private renderDivider;
517
- /**
518
- * Fecha o picker ao pressionar Escape, devolvendo o foco ao input interno.
519
- *
520
- * @param event - Evento de teclado disparado em qualquer descendente do componente.
521
- */
522
- private handlePickerKeydown;
523
796
  /**
524
797
  * Resolve o conteúdo interno conforme o modo atual do componente.
525
798
  */