@govbr-ds/webcomponents 2.3.0 → 2.5.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 (787) hide show
  1. package/README.md +2 -2
  2. package/cem/custom-elements.json +1764 -1575
  3. package/cem/webcomponents.html-custom-data.json +194 -163
  4. package/dist/cjs/br-avatar.cjs.entry.js +3 -3
  5. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +1 -1
  6. package/dist/cjs/br-breadcrumb.cjs.entry.js +3 -3
  7. package/dist/cjs/br-button_2.cjs.entry.js +4 -4
  8. package/dist/cjs/br-card.cjs.entry.js +3 -3
  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 +3 -3
  12. package/dist/cjs/br-checkbox.cjs.entry.js +4 -4
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +1 -1
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +5 -5
  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 +1 -1
  20. package/dist/cjs/br-cookiebar-note.cjs.entry.js +2 -2
  21. package/dist/cjs/br-cookiebar.cjs.entry.js +3 -3
  22. package/dist/cjs/br-crumb.cjs.entry.js +1 -1
  23. package/dist/cjs/br-date-picker_3.cjs.entry.js +984 -545
  24. package/dist/cjs/br-datetime-picker.cjs.entry.js +1346 -310
  25. package/dist/cjs/br-divider.cjs.entry.js +3 -3
  26. package/dist/cjs/br-dropdown_2.cjs.entry.js +282 -139
  27. package/dist/cjs/br-footer-category.cjs.entry.js +3 -3
  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 +4 -4
  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 +2 -2
  38. package/dist/cjs/br-icon.cjs.entry.js +3 -3
  39. package/dist/cjs/br-input.cjs.entry.js +64 -10
  40. package/dist/cjs/br-item.cjs.entry.js +3 -3
  41. package/dist/cjs/br-link.cjs.entry.js +8 -8
  42. package/dist/cjs/br-loading.cjs.entry.js +2 -2
  43. package/dist/cjs/br-magic-button.cjs.entry.js +2 -2
  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 +1 -1
  50. package/dist/cjs/br-menu-logo.cjs.entry.js +2 -2
  51. package/dist/cjs/br-menu-social.cjs.entry.js +1 -1
  52. package/dist/cjs/br-menu.cjs.entry.js +4 -4
  53. package/dist/cjs/br-modal.cjs.entry.js +1 -1
  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 +3 -3
  58. package/dist/cjs/br-pagination.cjs.entry.js +3 -3
  59. package/dist/cjs/br-radio-group.cjs.entry.js +4 -4
  60. package/dist/cjs/br-radio.cjs.entry.js +4 -4
  61. package/dist/cjs/br-scrim.cjs.entry.js +3 -3
  62. package/dist/cjs/br-select-input_3.cjs.entry.js +308 -101
  63. package/dist/cjs/br-sign-in.cjs.entry.js +3 -3
  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 +6 -6
  69. package/dist/cjs/br-switch.cjs.entry.js +4 -4
  70. package/dist/cjs/br-tab-item.cjs.entry.js +2 -2
  71. package/dist/cjs/br-tab.cjs.entry.js +4 -4
  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 +4 -4
  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 +8 -24
  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-CTf1kVJ1.js} +21 -5
  85. package/dist/cjs/format-bytes-Cs8SH2w0.js +24 -0
  86. package/dist/cjs/{iconify-icon-DfODV9bf.js → iconify-icon-LjavbM-D.js} +103 -57
  87. package/dist/cjs/index-Bc30P_6z.js +14 -14
  88. package/dist/cjs/{index-C92n55ch.js → index-Caoez3xb.js} +75 -27
  89. package/dist/cjs/index.cjs.js +2 -2
  90. package/dist/cjs/{datetime-picker-props-validation-DmNKSXsy.js → isValid-DgJ-noPS.js} +1 -483
  91. package/dist/cjs/loader.cjs.js +1 -1
  92. package/dist/cjs/select.utils-C38f5Kea.js +62 -0
  93. package/dist/cjs/{slot-DAllytTj.js → slot-CjaqqX7y.js} +1 -1
  94. package/dist/cjs/webcomponents.cjs.js +1 -1
  95. package/dist/collection/components/avatar/avatar.css +1 -1
  96. package/dist/collection/components/avatar/avatar.js +21 -21
  97. package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +4 -12
  98. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  99. package/dist/collection/components/breadcrumb/breadcrumb.js +32 -27
  100. package/dist/collection/components/breadcrumb/crumb/crumb.js +2 -13
  101. package/dist/collection/components/button/button.css +1 -1
  102. package/dist/collection/components/button/button.js +21 -21
  103. package/dist/collection/components/card/card.css +1 -1
  104. package/dist/collection/components/card/card.js +20 -22
  105. package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
  106. package/dist/collection/components/carousel/carousel-page/carousel-page.js +3 -13
  107. package/dist/collection/components/carousel/carousel.css +1 -1
  108. package/dist/collection/components/carousel/carousel.js +23 -30
  109. package/dist/collection/components/checkbox/checkbox.css +1 -1
  110. package/dist/collection/components/checkbox/checkbox.js +18 -24
  111. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  112. package/dist/collection/components/checkbox-group/checkbox-group.js +19 -20
  113. package/dist/collection/components/checkgroup/checkgroup.js +2 -14
  114. package/dist/collection/components/collapse/collapse.css +1 -1
  115. package/dist/collection/components/collapse/collapse.js +25 -21
  116. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
  117. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +3 -16
  118. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
  119. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +3 -16
  120. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
  121. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +3 -16
  122. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
  123. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +3 -15
  124. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
  125. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +3 -14
  126. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
  127. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +2 -13
  128. package/dist/collection/components/cookiebar/cookiebar.css +1 -1
  129. package/dist/collection/components/cookiebar/cookiebar.js +32 -27
  130. package/dist/collection/components/datetime-picker/date-picker/date-picker-locale.js +73 -26
  131. package/dist/collection/components/datetime-picker/date-picker/date-picker-props-validation.js +14 -13
  132. package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
  133. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +474 -321
  134. package/dist/collection/components/datetime-picker/datetime-input/datetime-input-constants.js +59 -0
  135. package/dist/collection/components/datetime-picker/datetime-input/datetime-input-props-validation.js +19 -15
  136. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
  137. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +370 -218
  138. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.types.js +1 -0
  139. package/dist/collection/components/datetime-picker/datetime-picker-constants.js +19 -5
  140. package/dist/collection/components/datetime-picker/datetime-picker-form-associated.js +92 -11
  141. package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +52 -33
  142. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  143. package/dist/collection/components/datetime-picker/datetime-picker.js +917 -368
  144. package/dist/collection/components/datetime-picker/datetime-picker.utils.js +62 -49
  145. package/dist/collection/components/datetime-picker/time-picker/time-picker-constants.js +3 -2
  146. package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
  147. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +145 -92
  148. package/dist/collection/components/divider/divider.css +1 -1
  149. package/dist/collection/components/divider/divider.js +15 -19
  150. package/dist/collection/components/dropdown/dropdown.css +1 -1
  151. package/dist/collection/components/dropdown/dropdown.js +22 -21
  152. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  153. package/dist/collection/components/footer/footer-category/footer-category.js +4 -17
  154. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  155. package/dist/collection/components/footer/footer-item/footer-item.js +3 -16
  156. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  157. package/dist/collection/components/footer/footer-legal/footer-legal.js +2 -16
  158. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  159. package/dist/collection/components/footer/footer-logo/footer-logo.js +3 -16
  160. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  161. package/dist/collection/components/footer/footer-social/footer-social.js +3 -15
  162. package/dist/collection/components/footer/footer.css +1 -1
  163. package/dist/collection/components/footer/footer.js +25 -29
  164. package/dist/collection/components/header/header-function/header-function.css +1 -1
  165. package/dist/collection/components/header/header-function/header-function.js +10 -14
  166. package/dist/collection/components/header/header-link/header-link.css +1 -1
  167. package/dist/collection/components/header/header-link/header-link.js +3 -16
  168. package/dist/collection/components/header/header-list/header-list.css +1 -1
  169. package/dist/collection/components/header/header-list/header-list.js +3 -16
  170. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  171. package/dist/collection/components/header/header-logo/header-logo.js +3 -16
  172. package/dist/collection/components/header/header.css +1 -1
  173. package/dist/collection/components/header/header.js +30 -27
  174. package/dist/collection/components/icon/icon.css +1 -1
  175. package/dist/collection/components/icon/icon.js +22 -17
  176. package/dist/collection/components/input/input.css +1 -1
  177. package/dist/collection/components/input/input.js +125 -30
  178. package/dist/collection/components/item/item.css +1 -1
  179. package/dist/collection/components/item/item.js +18 -22
  180. package/dist/collection/components/link/link.css +1 -1
  181. package/dist/collection/components/link/link.js +25 -29
  182. package/dist/collection/components/list/list.css +1 -1
  183. package/dist/collection/components/list/list.js +17 -21
  184. package/dist/collection/components/loading/loading.css +1 -1
  185. package/dist/collection/components/loading/loading.js +17 -24
  186. package/dist/collection/components/magic-button/magic-button.css +1 -1
  187. package/dist/collection/components/magic-button/magic-button.js +13 -20
  188. package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
  189. package/dist/collection/components/menu/menu-group/menu-group.js +3 -16
  190. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  191. package/dist/collection/components/menu/menu-header/menu-header.js +3 -16
  192. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  193. package/dist/collection/components/menu/menu-info/menu-info.js +2 -15
  194. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  195. package/dist/collection/components/menu/menu-item/menu-item.js +3 -16
  196. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  197. package/dist/collection/components/menu/menu-link/menu-link.js +5 -17
  198. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  199. package/dist/collection/components/menu/menu-list/menu-list.js +2 -15
  200. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  201. package/dist/collection/components/menu/menu-logo/menu-logo.js +2 -15
  202. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  203. package/dist/collection/components/menu/menu-social/menu-social.js +2 -15
  204. package/dist/collection/components/menu/menu.css +1 -1
  205. package/dist/collection/components/menu/menu.js +28 -35
  206. package/dist/collection/components/message/message.css +1 -1
  207. package/dist/collection/components/message/message.js +22 -25
  208. package/dist/collection/components/modal/modal.css +1 -1
  209. package/dist/collection/components/modal/modal.js +18 -21
  210. package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
  211. package/dist/collection/components/notification/notification-body/notification-body.js +3 -13
  212. package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
  213. package/dist/collection/components/notification/notification-header/notification-header.js +3 -14
  214. package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
  215. package/dist/collection/components/notification/notification-item/notification-item.js +3 -16
  216. package/dist/collection/components/notification/notification.css +1 -1
  217. package/dist/collection/components/notification/notification.js +20 -29
  218. package/dist/collection/components/pagination/pagination.css +1 -1
  219. package/dist/collection/components/pagination/pagination.js +15 -23
  220. package/dist/collection/components/radio/radio.css +1 -1
  221. package/dist/collection/components/radio/radio.js +17 -20
  222. package/dist/collection/components/radio-group/radio-group.css +1 -1
  223. package/dist/collection/components/radio-group/radio-group.js +20 -20
  224. package/dist/collection/components/scrim/scrim.css +1 -1
  225. package/dist/collection/components/scrim/scrim.js +14 -17
  226. package/dist/collection/components/select/select-input/select-input.css +1 -1
  227. package/dist/collection/components/select/select-input/select-input.js +157 -27
  228. package/dist/collection/components/select/select-list/select-list.css +1 -1
  229. package/dist/collection/components/select/select-list/select-list.js +269 -80
  230. package/dist/collection/components/select/select-option/select-option.css +1 -1
  231. package/dist/collection/components/select/select-option/select-option.js +20 -16
  232. package/dist/collection/components/select/select.css +1 -1
  233. package/dist/collection/components/select/select.js +367 -180
  234. package/dist/collection/components/select/select.utils.js +26 -7
  235. package/dist/collection/components/sign-in/sign-in.css +1 -1
  236. package/dist/collection/components/sign-in/sign-in.js +12 -16
  237. package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +8 -4
  238. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  239. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +5 -15
  240. package/dist/collection/components/skip-link/skip-link.css +1 -1
  241. package/dist/collection/components/skip-link/skip-link.js +18 -24
  242. package/dist/collection/components/slider/slider.css +1 -1
  243. package/dist/collection/components/slider/slider.js +15 -25
  244. package/dist/collection/components/step/step-item/step-item.css +1 -1
  245. package/dist/collection/components/step/step-item/step-item.js +5 -15
  246. package/dist/collection/components/step/step.css +1 -1
  247. package/dist/collection/components/step/step.js +16 -25
  248. package/dist/collection/components/switch/switch.css +1 -1
  249. package/dist/collection/components/switch/switch.js +16 -20
  250. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  251. package/dist/collection/components/tab/tab-item/tab-item.js +5 -15
  252. package/dist/collection/components/tab/tab.css +1 -1
  253. package/dist/collection/components/tab/tab.js +22 -29
  254. package/dist/collection/components/table/table-body/table-body.css +1 -1
  255. package/dist/collection/components/table/table-body/table-body.js +3 -13
  256. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  257. package/dist/collection/components/table/table-cell/table-cell.js +3 -12
  258. package/dist/collection/components/table/table-header/table-header.css +1 -1
  259. package/dist/collection/components/table/table-header/table-header.js +3 -13
  260. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  261. package/dist/collection/components/table/table-header-cell/table-header-cell.js +3 -13
  262. package/dist/collection/components/table/table-row/table-row.css +1 -1
  263. package/dist/collection/components/table/table-row/table-row.js +3 -13
  264. package/dist/collection/components/table/table.css +1 -1
  265. package/dist/collection/components/table/table.js +25 -32
  266. package/dist/collection/components/tag/tag.css +1 -1
  267. package/dist/collection/components/tag/tag.js +17 -26
  268. package/dist/collection/components/textarea/textarea.css +1 -1
  269. package/dist/collection/components/textarea/textarea.js +14 -22
  270. package/dist/collection/components/tooltip/tooltip.css +1 -1
  271. package/dist/collection/components/tooltip/tooltip.js +13 -19
  272. package/dist/collection/components/upload/upload.css +1 -1
  273. package/dist/collection/components/upload/upload.js +36 -29
  274. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  275. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +3 -13
  276. package/dist/collection/components/wizard/wizard.css +1 -1
  277. package/dist/collection/components/wizard/wizard.js +22 -26
  278. package/dist/collection/pages/components/select/remote-options.js +87 -0
  279. package/dist/collection/shared/utils/slot.js +1 -1
  280. package/dist/components/br-avatar.js +1 -1
  281. package/dist/components/br-breadcrumb-item.js +1 -1
  282. package/dist/components/br-breadcrumb.js +1 -1
  283. package/dist/components/br-button.js +1 -1
  284. package/dist/components/br-card.js +1 -1
  285. package/dist/components/br-carousel-page.js +1 -1
  286. package/dist/components/br-carousel.js +1 -1
  287. package/dist/components/br-checkbox-group.js +1 -1
  288. package/dist/components/br-checkbox.js +1 -1
  289. package/dist/components/br-checkgroup.js +1 -1
  290. package/dist/components/br-collapse.js +1 -1
  291. package/dist/components/br-cookiebar-cookie.js +1 -1
  292. package/dist/components/br-cookiebar-group.js +1 -1
  293. package/dist/components/br-cookiebar-header.js +1 -1
  294. package/dist/components/br-cookiebar-link.js +1 -1
  295. package/dist/components/br-cookiebar-note-group.js +1 -1
  296. package/dist/components/br-cookiebar-note.js +1 -1
  297. package/dist/components/br-cookiebar.js +1 -1
  298. package/dist/components/br-crumb.js +1 -1
  299. package/dist/components/br-date-picker.js +1 -1
  300. package/dist/components/br-datetime-input.js +1 -1
  301. package/dist/components/br-datetime-picker.js +1 -1
  302. package/dist/components/br-divider.js +1 -1
  303. package/dist/components/br-dropdown.js +1 -1
  304. package/dist/components/br-footer-category.js +1 -1
  305. package/dist/components/br-footer-item.js +1 -1
  306. package/dist/components/br-footer-legal.js +1 -1
  307. package/dist/components/br-footer-logo.js +1 -1
  308. package/dist/components/br-footer-social.js +1 -1
  309. package/dist/components/br-footer.js +1 -1
  310. package/dist/components/br-header-function.js +1 -1
  311. package/dist/components/br-header-link.js +1 -1
  312. package/dist/components/br-header-list.js +1 -1
  313. package/dist/components/br-header-logo.js +1 -1
  314. package/dist/components/br-header.js +1 -1
  315. package/dist/components/br-icon.js +1 -1
  316. package/dist/components/br-input.js +1 -1
  317. package/dist/components/br-item.js +1 -1
  318. package/dist/components/br-link.js +1 -1
  319. package/dist/components/br-list.js +1 -1
  320. package/dist/components/br-loading.js +1 -1
  321. package/dist/components/br-magic-button.js +1 -1
  322. package/dist/components/br-menu-group.js +1 -1
  323. package/dist/components/br-menu-header.js +1 -1
  324. package/dist/components/br-menu-info.js +1 -1
  325. package/dist/components/br-menu-item.js +1 -1
  326. package/dist/components/br-menu-link.js +1 -1
  327. package/dist/components/br-menu-list.js +1 -1
  328. package/dist/components/br-menu-logo.js +1 -1
  329. package/dist/components/br-menu-social.js +1 -1
  330. package/dist/components/br-menu.js +1 -1
  331. package/dist/components/br-message.js +1 -1
  332. package/dist/components/br-modal.js +1 -1
  333. package/dist/components/br-notification-body.js +1 -1
  334. package/dist/components/br-notification-header.js +1 -1
  335. package/dist/components/br-notification-item.js +1 -1
  336. package/dist/components/br-notification.js +1 -1
  337. package/dist/components/br-pagination.js +1 -1
  338. package/dist/components/br-radio-group.js +1 -1
  339. package/dist/components/br-radio.js +1 -1
  340. package/dist/components/br-scrim.js +1 -1
  341. package/dist/components/br-select-input.js +1 -1
  342. package/dist/components/br-select-list.js +1 -1
  343. package/dist/components/br-select-option.js +1 -1
  344. package/dist/components/br-select.js +1 -1
  345. package/dist/components/br-sign-in.js +1 -1
  346. package/dist/components/br-skip-link-item.js +1 -1
  347. package/dist/components/br-skip-link.js +1 -1
  348. package/dist/components/br-skiplink-item.js +1 -1
  349. package/dist/components/br-slider.js +1 -1
  350. package/dist/components/br-step-item.js +1 -1
  351. package/dist/components/br-step.js +1 -1
  352. package/dist/components/br-switch.js +1 -1
  353. package/dist/components/br-tab-item.js +1 -1
  354. package/dist/components/br-tab.js +1 -1
  355. package/dist/components/br-table-body.js +1 -1
  356. package/dist/components/br-table-cell.js +1 -1
  357. package/dist/components/br-table-header-cell.js +1 -1
  358. package/dist/components/br-table-header.js +1 -1
  359. package/dist/components/br-table-row.js +1 -1
  360. package/dist/components/br-table.js +1 -1
  361. package/dist/components/br-tag.js +1 -1
  362. package/dist/components/br-textarea.js +1 -1
  363. package/dist/components/br-time-picker.js +1 -1
  364. package/dist/components/br-tooltip.js +1 -1
  365. package/dist/components/br-upload.js +1 -1
  366. package/dist/components/br-wizard-panel.js +1 -1
  367. package/dist/components/br-wizard.js +1 -1
  368. package/dist/components/index.js +1 -1
  369. package/dist/components/p-448Z5r2f.js +5 -0
  370. package/dist/{webcomponents/p-5f422a69.entry.js → components/p-AhfgJCUp.js} +1 -1
  371. package/dist/components/p-AoNL6BaW.js +5 -0
  372. package/dist/components/p-B468MCYC.js +5 -0
  373. package/dist/components/p-B7bNfmgh.js +5 -0
  374. package/dist/components/p-B985Ov_x.js +5 -0
  375. package/dist/components/p-BOWQIHQA.js +5 -0
  376. package/dist/components/p-BPQrgCRr.js +5 -0
  377. package/dist/components/p-BwQT0fOJ.js +5 -0
  378. package/dist/components/p-CAgbUwsx.js +5 -0
  379. package/dist/components/p-CFXey8i8.js +5 -0
  380. package/dist/components/p-CVz_akHx.js +5 -0
  381. package/dist/components/p-CW8xwk6J.js +5 -0
  382. package/dist/components/p-CYZVdKeO.js +5 -0
  383. package/dist/components/p-C_DC6oQW.js +16 -0
  384. package/dist/components/p-CeWbZN7V.js +5 -0
  385. package/dist/components/p-CyXVsiz9.js +5 -0
  386. package/dist/components/p-DDe0tQEO.js +5 -0
  387. package/dist/components/{p-CZZVc2gK.js → p-DJKZ8ktB.js} +1 -1
  388. package/dist/components/p-DRsZ9GNg.js +5 -0
  389. package/dist/components/p-DU54cqCf.js +5 -0
  390. package/dist/components/p-DVJlmlEX.js +5 -0
  391. package/dist/components/p-DcMjwTqu.js +5 -0
  392. package/dist/components/p-Dd1qCWAK.js +5 -0
  393. package/dist/components/p-Dn36Mj2E.js +5 -0
  394. package/dist/components/p-DoWy_P8b.js +5 -0
  395. package/dist/components/p-HbhTnepI.js +5 -0
  396. package/dist/components/{p-BcqVlof7.js → p-JkJjzmGm.js} +1 -1
  397. package/dist/components/{p-Nze3Utvd.js → p-Or3FLzbz.js} +1 -1
  398. package/dist/components/p-SWQlgYWR.js +5 -0
  399. package/dist/components/p-Zb9nyfTY.js +5 -0
  400. package/dist/components/p-jvKQA6x7.js +5 -0
  401. package/dist/components/p-pQb-3jFY.js +5 -0
  402. package/dist/components/p-qX6sHxOk.js +5 -0
  403. package/dist/esm/br-avatar.entry.js +3 -3
  404. package/dist/esm/br-breadcrumb-item.entry.js +1 -1
  405. package/dist/esm/br-breadcrumb.entry.js +3 -3
  406. package/dist/esm/br-button_2.entry.js +4 -4
  407. package/dist/esm/br-card.entry.js +3 -3
  408. package/dist/esm/br-carousel-page.entry.js +2 -2
  409. package/dist/esm/br-carousel.entry.js +3 -3
  410. package/dist/esm/br-checkbox-group.entry.js +3 -3
  411. package/dist/esm/br-checkbox.entry.js +5 -5
  412. package/dist/esm/br-checkgroup.entry.js +1 -1
  413. package/dist/esm/br-collapse_2.entry.js +6 -6
  414. package/dist/esm/br-cookiebar-cookie.entry.js +2 -2
  415. package/dist/esm/br-cookiebar-group.entry.js +2 -2
  416. package/dist/esm/br-cookiebar-header.entry.js +2 -2
  417. package/dist/esm/br-cookiebar-link.entry.js +2 -2
  418. package/dist/esm/br-cookiebar-note-group.entry.js +1 -1
  419. package/dist/esm/br-cookiebar-note.entry.js +2 -2
  420. package/dist/esm/br-cookiebar.entry.js +4 -4
  421. package/dist/esm/br-crumb.entry.js +1 -1
  422. package/dist/esm/br-date-picker_3.entry.js +966 -527
  423. package/dist/esm/br-datetime-picker.entry.js +1316 -280
  424. package/dist/esm/br-divider.entry.js +3 -3
  425. package/dist/esm/br-dropdown_2.entry.js +281 -138
  426. package/dist/esm/br-footer-category.entry.js +3 -3
  427. package/dist/esm/br-footer-item.entry.js +2 -2
  428. package/dist/esm/br-footer-legal.entry.js +2 -2
  429. package/dist/esm/br-footer-logo.entry.js +2 -2
  430. package/dist/esm/br-footer-social.entry.js +2 -2
  431. package/dist/esm/br-footer.entry.js +4 -4
  432. package/dist/esm/br-header-function.entry.js +2 -2
  433. package/dist/esm/br-header-link.entry.js +2 -2
  434. package/dist/esm/br-header-list.entry.js +3 -3
  435. package/dist/esm/br-header-logo.entry.js +2 -2
  436. package/dist/esm/br-header.entry.js +2 -2
  437. package/dist/esm/br-icon.entry.js +3 -3
  438. package/dist/esm/br-input.entry.js +65 -11
  439. package/dist/esm/br-item.entry.js +3 -3
  440. package/dist/esm/br-link.entry.js +8 -8
  441. package/dist/esm/br-loading.entry.js +2 -2
  442. package/dist/esm/br-magic-button.entry.js +2 -2
  443. package/dist/esm/br-menu-group.entry.js +2 -2
  444. package/dist/esm/br-menu-header.entry.js +2 -2
  445. package/dist/esm/br-menu-info.entry.js +2 -2
  446. package/dist/esm/br-menu-item.entry.js +2 -2
  447. package/dist/esm/br-menu-link.entry.js +2 -2
  448. package/dist/esm/br-menu-list.entry.js +1 -1
  449. package/dist/esm/br-menu-logo.entry.js +2 -2
  450. package/dist/esm/br-menu-social.entry.js +1 -1
  451. package/dist/esm/br-menu.entry.js +5 -5
  452. package/dist/esm/br-modal.entry.js +1 -1
  453. package/dist/esm/br-notification-body.entry.js +2 -2
  454. package/dist/esm/br-notification-header.entry.js +2 -2
  455. package/dist/esm/br-notification-item.entry.js +2 -2
  456. package/dist/esm/br-notification.entry.js +4 -4
  457. package/dist/esm/br-pagination.entry.js +3 -3
  458. package/dist/esm/br-radio-group.entry.js +5 -5
  459. package/dist/esm/br-radio.entry.js +5 -5
  460. package/dist/esm/br-scrim.entry.js +3 -3
  461. package/dist/esm/br-select-input_3.entry.js +308 -101
  462. package/dist/esm/br-sign-in.entry.js +3 -3
  463. package/dist/esm/br-skip-link-item.entry.js +1 -1
  464. package/dist/esm/br-skip-link.entry.js +2 -2
  465. package/dist/esm/br-skiplink-item.entry.js +2 -2
  466. package/dist/esm/br-slider.entry.js +4 -4
  467. package/dist/esm/br-step_2.entry.js +6 -6
  468. package/dist/esm/br-switch.entry.js +5 -5
  469. package/dist/esm/br-tab-item.entry.js +2 -2
  470. package/dist/esm/br-tab.entry.js +4 -4
  471. package/dist/esm/br-table-body.entry.js +2 -2
  472. package/dist/esm/br-table-cell.entry.js +2 -2
  473. package/dist/esm/br-table-header-cell.entry.js +2 -2
  474. package/dist/esm/br-table-header.entry.js +2 -2
  475. package/dist/esm/br-table-row.entry.js +2 -2
  476. package/dist/esm/br-table.entry.js +2 -2
  477. package/dist/esm/br-tag.entry.js +5 -5
  478. package/dist/esm/br-textarea.entry.js +4 -4
  479. package/dist/esm/br-tooltip.entry.js +3 -3
  480. package/dist/esm/br-upload.entry.js +6 -22
  481. package/dist/esm/br-wizard-panel.entry.js +2 -2
  482. package/dist/esm/br-wizard.entry.js +2 -2
  483. package/dist/esm/{datetime-picker-constants-BtRPYRvA.js → datetime-picker-constants-1l4_-FEJ.js} +20 -6
  484. package/dist/esm/{event-CfuJQ1DY.js → event-6Da1SZ3J.js} +1 -1
  485. package/dist/esm/format-bytes-B7bNfmgh.js +22 -0
  486. package/dist/esm/{iconify-icon-D3usVJE2.js → iconify-icon-C_DC6oQW.js} +103 -57
  487. package/dist/esm/{index-BQPOWxe5.js → index-BQRBKuY0.js} +75 -28
  488. package/dist/esm/index-ConyRdJe.js +14 -14
  489. package/dist/esm/index.js +2 -2
  490. package/dist/esm/{datetime-picker-props-validation-BeTcUTnE.js → isValid-wU7S6MI2.js} +2 -477
  491. package/dist/esm/loader.js +1 -1
  492. package/dist/esm/select.utils-BYsh2ZdE.js +57 -0
  493. package/dist/esm/{slot-BIG-yees.js → slot-Bt01zQ7-.js} +1 -1
  494. package/dist/esm/webcomponents.js +1 -1
  495. package/dist/hydrate/index.js +4459 -3577
  496. package/dist/hydrate/index.mjs +4459 -3577
  497. package/dist/types/components/avatar/avatar.d.ts +20 -20
  498. package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +3 -11
  499. package/dist/types/components/breadcrumb/breadcrumb.d.ts +30 -25
  500. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +1 -12
  501. package/dist/types/components/button/button.d.ts +20 -20
  502. package/dist/types/components/card/card.d.ts +19 -21
  503. package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +2 -12
  504. package/dist/types/components/carousel/carousel.d.ts +22 -29
  505. package/dist/types/components/checkbox/checkbox.d.ts +16 -22
  506. package/dist/types/components/checkbox-group/checkbox-group.d.ts +17 -18
  507. package/dist/types/components/checkgroup/checkgroup.d.ts +1 -13
  508. package/dist/types/components/collapse/collapse.d.ts +24 -20
  509. package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +2 -15
  510. package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +2 -15
  511. package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +2 -15
  512. package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +2 -14
  513. package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +2 -13
  514. package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +2 -13
  515. package/dist/types/components/cookiebar/cookiebar.d.ts +30 -25
  516. package/dist/types/components/datetime-picker/date-picker/date-picker-locale.d.ts +20 -12
  517. package/dist/types/components/datetime-picker/date-picker/date-picker-props-validation.d.ts +14 -13
  518. package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +313 -164
  519. package/dist/types/components/datetime-picker/datetime-input/datetime-input-constants.d.ts +14 -0
  520. package/dist/types/components/datetime-picker/datetime-input/datetime-input-props-validation.d.ts +19 -15
  521. package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +226 -105
  522. package/dist/types/components/datetime-picker/datetime-input/datetime-input.types.d.ts +36 -0
  523. package/dist/types/components/datetime-picker/datetime-picker-constants.d.ts +19 -5
  524. package/dist/types/components/datetime-picker/datetime-picker-form-associated.d.ts +32 -5
  525. package/dist/types/components/datetime-picker/datetime-picker-props-validation.d.ts +22 -24
  526. package/dist/types/components/datetime-picker/datetime-picker.d.ts +510 -241
  527. package/dist/types/components/datetime-picker/datetime-picker.types.d.ts +75 -21
  528. package/dist/types/components/datetime-picker/datetime-picker.utils.d.ts +53 -47
  529. package/dist/types/components/datetime-picker/time-picker/time-picker-constants.d.ts +3 -2
  530. package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +123 -62
  531. package/dist/types/components/divider/divider.d.ts +14 -18
  532. package/dist/types/components/dropdown/dropdown.d.ts +21 -20
  533. package/dist/types/components/footer/footer-category/footer-category.d.ts +2 -15
  534. package/dist/types/components/footer/footer-item/footer-item.d.ts +2 -15
  535. package/dist/types/components/footer/footer-legal/footer-legal.d.ts +1 -15
  536. package/dist/types/components/footer/footer-logo/footer-logo.d.ts +2 -15
  537. package/dist/types/components/footer/footer-social/footer-social.d.ts +2 -14
  538. package/dist/types/components/footer/footer.d.ts +23 -27
  539. package/dist/types/components/header/header-function/header-function.d.ts +9 -13
  540. package/dist/types/components/header/header-link/header-link.d.ts +2 -15
  541. package/dist/types/components/header/header-list/header-list.d.ts +2 -15
  542. package/dist/types/components/header/header-logo/header-logo.d.ts +2 -15
  543. package/dist/types/components/header/header.d.ts +29 -26
  544. package/dist/types/components/icon/icon.d.ts +21 -16
  545. package/dist/types/components/input/input.d.ts +48 -23
  546. package/dist/types/components/input/input.types.d.ts +4 -0
  547. package/dist/types/components/item/item.d.ts +17 -21
  548. package/dist/types/components/link/link.d.ts +18 -22
  549. package/dist/types/components/list/list.d.ts +16 -20
  550. package/dist/types/components/loading/loading.d.ts +16 -23
  551. package/dist/types/components/magic-button/magic-button.d.ts +12 -19
  552. package/dist/types/components/menu/menu-group/menu-group.d.ts +2 -15
  553. package/dist/types/components/menu/menu-header/menu-header.d.ts +2 -15
  554. package/dist/types/components/menu/menu-info/menu-info.d.ts +1 -14
  555. package/dist/types/components/menu/menu-item/menu-item.d.ts +2 -15
  556. package/dist/types/components/menu/menu-link/menu-link.d.ts +4 -16
  557. package/dist/types/components/menu/menu-list/menu-list.d.ts +2 -15
  558. package/dist/types/components/menu/menu-logo/menu-logo.d.ts +1 -14
  559. package/dist/types/components/menu/menu-social/menu-social.d.ts +2 -15
  560. package/dist/types/components/menu/menu.d.ts +25 -32
  561. package/dist/types/components/message/message.d.ts +21 -24
  562. package/dist/types/components/modal/modal.d.ts +18 -21
  563. package/dist/types/components/notification/notification-body/notification-body.d.ts +2 -12
  564. package/dist/types/components/notification/notification-header/notification-header.d.ts +2 -13
  565. package/dist/types/components/notification/notification-item/notification-item.d.ts +2 -15
  566. package/dist/types/components/notification/notification.d.ts +18 -27
  567. package/dist/types/components/pagination/pagination.d.ts +13 -21
  568. package/dist/types/components/radio/radio.d.ts +15 -18
  569. package/dist/types/components/radio-group/radio-group.d.ts +18 -18
  570. package/dist/types/components/scrim/scrim.d.ts +12 -15
  571. package/dist/types/components/select/select-input/select-input.d.ts +20 -12
  572. package/dist/types/components/select/select-list/select-list.d.ts +27 -14
  573. package/dist/types/components/select/select-option/select-option.d.ts +6 -10
  574. package/dist/types/components/select/select.d.ts +75 -87
  575. package/dist/types/components/select/select.types.d.ts +12 -0
  576. package/dist/types/components/select/select.utils.d.ts +3 -0
  577. package/dist/types/components/sign-in/sign-in.d.ts +11 -15
  578. package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +7 -3
  579. package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +4 -14
  580. package/dist/types/components/skip-link/skip-link.d.ts +17 -23
  581. package/dist/types/components/slider/slider.d.ts +14 -24
  582. package/dist/types/components/step/step-item/step-item.d.ts +2 -12
  583. package/dist/types/components/step/step.d.ts +15 -24
  584. package/dist/types/components/switch/switch.d.ts +14 -18
  585. package/dist/types/components/tab/tab-item/tab-item.d.ts +4 -14
  586. package/dist/types/components/tab/tab.d.ts +19 -26
  587. package/dist/types/components/table/table-body/table-body.d.ts +2 -12
  588. package/dist/types/components/table/table-cell/table-cell.d.ts +2 -11
  589. package/dist/types/components/table/table-header/table-header.d.ts +2 -12
  590. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +2 -12
  591. package/dist/types/components/table/table-row/table-row.d.ts +2 -12
  592. package/dist/types/components/table/table.d.ts +24 -31
  593. package/dist/types/components/tag/tag.d.ts +15 -24
  594. package/dist/types/components/textarea/textarea.d.ts +13 -21
  595. package/dist/types/components/tooltip/tooltip.d.ts +12 -18
  596. package/dist/types/components/upload/upload.d.ts +20 -27
  597. package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +2 -12
  598. package/dist/types/components/wizard/wizard.d.ts +21 -25
  599. package/dist/types/components.d.ts +3586 -5062
  600. package/dist/webcomponents/index.esm.js +1 -1
  601. package/dist/webcomponents/p-031a2256.entry.js +5 -0
  602. package/dist/webcomponents/p-0602e5b1.entry.js +5 -0
  603. package/dist/webcomponents/p-079d5f69.entry.js +5 -0
  604. package/dist/webcomponents/p-087ed5e7.entry.js +5 -0
  605. package/dist/webcomponents/p-0d5a9ebf.entry.js +5 -0
  606. package/dist/webcomponents/p-105b4d06.entry.js +5 -0
  607. package/dist/webcomponents/p-11d4edc5.entry.js +5 -0
  608. package/dist/webcomponents/p-12dd22af.entry.js +5 -0
  609. package/dist/webcomponents/p-14aedf0d.entry.js +5 -0
  610. package/dist/webcomponents/p-152482f9.entry.js +5 -0
  611. package/dist/webcomponents/p-19b4b1b7.entry.js +5 -0
  612. package/dist/webcomponents/p-1cd1126e.entry.js +5 -0
  613. package/dist/webcomponents/{p-BtRPYRvA.js → p-1l4_-FEJ.js} +1 -1
  614. package/dist/webcomponents/p-21e10074.entry.js +5 -0
  615. package/dist/webcomponents/p-2271ea84.entry.js +5 -0
  616. package/dist/webcomponents/p-271b1ede.entry.js +5 -0
  617. package/dist/webcomponents/p-28f732fc.entry.js +5 -0
  618. package/dist/webcomponents/{p-c1dafd8d.entry.js → p-2971d38a.entry.js} +1 -1
  619. package/dist/{components/p-DOJ1vYOl.js → webcomponents/p-2ac48875.entry.js} +1 -1
  620. package/dist/webcomponents/p-2b1a919c.entry.js +5 -0
  621. package/dist/webcomponents/p-2da57966.entry.js +5 -0
  622. package/dist/webcomponents/p-2e81b0b3.entry.js +5 -0
  623. package/dist/webcomponents/p-2eececed.entry.js +5 -0
  624. package/dist/webcomponents/{p-513ee754.entry.js → p-2f904c4a.entry.js} +1 -1
  625. package/dist/webcomponents/p-32414f1c.entry.js +5 -0
  626. package/dist/webcomponents/{p-5a7c2031.entry.js → p-324afbce.entry.js} +1 -1
  627. package/dist/webcomponents/p-32ea6342.entry.js +5 -0
  628. package/dist/webcomponents/p-330ec8ab.entry.js +5 -0
  629. package/dist/webcomponents/p-374f83b1.entry.js +5 -0
  630. package/dist/webcomponents/p-3926cc91.entry.js +5 -0
  631. package/dist/webcomponents/p-39a7826d.entry.js +5 -0
  632. package/dist/webcomponents/p-3bcc2c58.entry.js +5 -0
  633. package/dist/webcomponents/p-3c7ce0e4.entry.js +5 -0
  634. package/dist/webcomponents/p-467842ca.entry.js +5 -0
  635. package/dist/webcomponents/p-53550e8c.entry.js +5 -0
  636. package/dist/webcomponents/p-53e71a8a.entry.js +5 -0
  637. package/dist/webcomponents/p-5528b466.entry.js +5 -0
  638. package/dist/webcomponents/p-55e0822d.entry.js +5 -0
  639. package/dist/webcomponents/p-58bacbe1.entry.js +5 -0
  640. package/dist/webcomponents/p-5a5ed7d8.entry.js +5 -0
  641. package/dist/webcomponents/p-621f0fa8.entry.js +5 -0
  642. package/dist/webcomponents/p-6514a75d.entry.js +5 -0
  643. package/dist/webcomponents/{p-19a38e20.entry.js → p-678b43a6.entry.js} +1 -1
  644. package/dist/webcomponents/{p-CfuJQ1DY.js → p-6Da1SZ3J.js} +1 -1
  645. package/dist/webcomponents/p-6b6be415.entry.js +5 -0
  646. package/dist/webcomponents/{p-0d2ca2f7.entry.js → p-6d58ab4f.entry.js} +1 -1
  647. package/dist/webcomponents/p-6ff9b26e.entry.js +5 -0
  648. package/dist/webcomponents/p-84dfbfdd.entry.js +5 -0
  649. package/dist/webcomponents/{p-d5d2205c.entry.js → p-85c8d060.entry.js} +1 -1
  650. package/dist/webcomponents/p-913d6f28.entry.js +5 -0
  651. package/dist/webcomponents/{p-94848046.entry.js → p-975ea5c7.entry.js} +1 -1
  652. package/dist/webcomponents/p-992167bc.entry.js +5 -0
  653. package/dist/webcomponents/p-B7bNfmgh.js +5 -0
  654. package/dist/webcomponents/p-BYsh2ZdE.js +5 -0
  655. package/dist/webcomponents/p-C_DC6oQW.js +16 -0
  656. package/dist/webcomponents/{p-DV-iW9Aj.js → p-CpE_G6IZ.js} +1 -1
  657. package/dist/webcomponents/p-DnwERaeQ.js +5 -0
  658. package/dist/webcomponents/p-a21872bf.entry.js +5 -0
  659. package/dist/webcomponents/{p-0b0cf355.entry.js → p-a9f16a65.entry.js} +1 -1
  660. package/dist/webcomponents/p-b8d4ace3.entry.js +5 -0
  661. package/dist/webcomponents/{p-6850e98e.entry.js → p-bbcde1ea.entry.js} +1 -1
  662. package/dist/webcomponents/p-bbf47e78.entry.js +5 -0
  663. package/dist/webcomponents/p-bf35e506.entry.js +5 -0
  664. package/dist/webcomponents/{p-b02a7218.entry.js → p-c09af3cd.entry.js} +1 -1
  665. package/dist/webcomponents/p-c29268b5.entry.js +5 -0
  666. package/dist/webcomponents/p-c3e61c39.entry.js +5 -0
  667. package/dist/webcomponents/{p-b16590fc.entry.js → p-c6b2545a.entry.js} +1 -1
  668. package/dist/webcomponents/{p-b55425b7.entry.js → p-c6f2f17b.entry.js} +1 -1
  669. package/dist/webcomponents/p-cae39e13.entry.js +5 -0
  670. package/dist/webcomponents/p-cb1e08b1.entry.js +5 -0
  671. package/dist/webcomponents/{p-e94a52ac.entry.js → p-cb690a87.entry.js} +1 -1
  672. package/dist/webcomponents/p-d0be7243.entry.js +5 -0
  673. package/dist/webcomponents/p-d191c6e3.entry.js +5 -0
  674. package/dist/webcomponents/p-d205f3fd.entry.js +5 -0
  675. package/dist/webcomponents/p-d3bd2c40.entry.js +5 -0
  676. package/dist/webcomponents/{p-61977114.entry.js → p-dbeea64e.entry.js} +1 -1
  677. package/dist/webcomponents/p-df475129.entry.js +5 -0
  678. package/dist/webcomponents/p-e0ccf189.entry.js +5 -0
  679. package/dist/webcomponents/p-e121429a.entry.js +5 -0
  680. package/dist/webcomponents/p-e4b968b5.entry.js +5 -0
  681. package/dist/webcomponents/p-e661c024.entry.js +5 -0
  682. package/dist/webcomponents/p-e6c6f305.entry.js +5 -0
  683. package/dist/webcomponents/p-e8291be2.entry.js +5 -0
  684. package/dist/webcomponents/p-eb5806c7.entry.js +5 -0
  685. package/dist/webcomponents/{p-82759002.entry.js → p-ed3fa8ec.entry.js} +1 -1
  686. package/dist/webcomponents/p-f9084f16.entry.js +5 -0
  687. package/dist/webcomponents/{p-4118b878.entry.js → p-fad3aa61.entry.js} +1 -1
  688. package/dist/webcomponents/webcomponents.esm.js +1 -1
  689. package/package.json +2 -2
  690. package/dist/collection/pages/components/select/remote.js +0 -33
  691. package/dist/collection/pages/components/select/virtualized.js +0 -13
  692. package/dist/components/p-0qmYp77w.js +0 -5
  693. package/dist/components/p-5c3rNBXh.js +0 -5
  694. package/dist/components/p-B8oIvH3q.js +0 -5
  695. package/dist/components/p-BECz8XWJ.js +0 -5
  696. package/dist/components/p-BM4Ys6hX.js +0 -5
  697. package/dist/components/p-BXWh9s7p.js +0 -5
  698. package/dist/components/p-BblZlUp2.js +0 -5
  699. package/dist/components/p-Bezou5CQ.js +0 -5
  700. package/dist/components/p-BjeUETWJ.js +0 -5
  701. package/dist/components/p-Cd6udSDt.js +0 -5
  702. package/dist/components/p-Ci0_RqAE.js +0 -5
  703. package/dist/components/p-CuBgClZm.js +0 -5
  704. package/dist/components/p-D0QYZSoP.js +0 -5
  705. package/dist/components/p-D3usVJE2.js +0 -16
  706. package/dist/components/p-D4SWpW6-.js +0 -5
  707. package/dist/components/p-D579DS7x.js +0 -5
  708. package/dist/components/p-D8K7rhHd.js +0 -5
  709. package/dist/components/p-D9nXlCuS.js +0 -5
  710. package/dist/components/p-DKFO6Q_g.js +0 -5
  711. package/dist/components/p-DNJSSCNi.js +0 -5
  712. package/dist/components/p-DYI30IZL.js +0 -5
  713. package/dist/components/p-DcVldfL0.js +0 -5
  714. package/dist/components/p-DhvmHPp4.js +0 -5
  715. package/dist/components/p-DwgiHL0b.js +0 -5
  716. package/dist/components/p-WxDB6Dk4.js +0 -5
  717. package/dist/components/p-ZLoeVagg.js +0 -5
  718. package/dist/components/p-gbYJ9sfc.js +0 -5
  719. package/dist/components/p-uc8ABlC_.js +0 -5
  720. package/dist/components/p-v60ypfxD.js +0 -5
  721. package/dist/webcomponents/p-078bd760.entry.js +0 -5
  722. package/dist/webcomponents/p-07c2cdff.entry.js +0 -5
  723. package/dist/webcomponents/p-09817344.entry.js +0 -5
  724. package/dist/webcomponents/p-0d79ca44.entry.js +0 -5
  725. package/dist/webcomponents/p-0fe3c47b.entry.js +0 -5
  726. package/dist/webcomponents/p-116b53c9.entry.js +0 -5
  727. package/dist/webcomponents/p-1240dae7.entry.js +0 -5
  728. package/dist/webcomponents/p-14ff5865.entry.js +0 -5
  729. package/dist/webcomponents/p-15743a02.entry.js +0 -5
  730. package/dist/webcomponents/p-16cebf49.entry.js +0 -5
  731. package/dist/webcomponents/p-1884b9d3.entry.js +0 -5
  732. package/dist/webcomponents/p-1d36c8fa.entry.js +0 -5
  733. package/dist/webcomponents/p-1fa4b5b2.entry.js +0 -5
  734. package/dist/webcomponents/p-212c069b.entry.js +0 -5
  735. package/dist/webcomponents/p-23f37cd6.entry.js +0 -5
  736. package/dist/webcomponents/p-24502b63.entry.js +0 -5
  737. package/dist/webcomponents/p-27fb81f3.entry.js +0 -5
  738. package/dist/webcomponents/p-28844490.entry.js +0 -5
  739. package/dist/webcomponents/p-2b41bdcc.entry.js +0 -5
  740. package/dist/webcomponents/p-2cb1e09b.entry.js +0 -5
  741. package/dist/webcomponents/p-2fcda70b.entry.js +0 -5
  742. package/dist/webcomponents/p-3378300c.entry.js +0 -5
  743. package/dist/webcomponents/p-3ae9cf69.entry.js +0 -5
  744. package/dist/webcomponents/p-3b79cd49.entry.js +0 -5
  745. package/dist/webcomponents/p-3c1513ec.entry.js +0 -5
  746. package/dist/webcomponents/p-4534a3c3.entry.js +0 -5
  747. package/dist/webcomponents/p-48abf568.entry.js +0 -5
  748. package/dist/webcomponents/p-4e5ea05c.entry.js +0 -5
  749. package/dist/webcomponents/p-521a1076.entry.js +0 -5
  750. package/dist/webcomponents/p-59fc52c0.entry.js +0 -5
  751. package/dist/webcomponents/p-5a9f4ea2.entry.js +0 -5
  752. package/dist/webcomponents/p-71853dfc.entry.js +0 -5
  753. package/dist/webcomponents/p-76d51654.entry.js +0 -5
  754. package/dist/webcomponents/p-77e242f3.entry.js +0 -5
  755. package/dist/webcomponents/p-7b849472.entry.js +0 -5
  756. package/dist/webcomponents/p-7dbfb875.entry.js +0 -5
  757. package/dist/webcomponents/p-7fa7f052.entry.js +0 -5
  758. package/dist/webcomponents/p-81c65747.entry.js +0 -5
  759. package/dist/webcomponents/p-91a5329f.entry.js +0 -5
  760. package/dist/webcomponents/p-966773a9.entry.js +0 -5
  761. package/dist/webcomponents/p-9abb5a53.entry.js +0 -5
  762. package/dist/webcomponents/p-9bf2e325.entry.js +0 -5
  763. package/dist/webcomponents/p-9c943b40.entry.js +0 -5
  764. package/dist/webcomponents/p-9ec3ca00.entry.js +0 -5
  765. package/dist/webcomponents/p-B0PbhaxL.js +0 -5
  766. package/dist/webcomponents/p-D3usVJE2.js +0 -16
  767. package/dist/webcomponents/p-ad91f149.entry.js +0 -5
  768. package/dist/webcomponents/p-aeea1f17.entry.js +0 -5
  769. package/dist/webcomponents/p-c2ca0289.entry.js +0 -5
  770. package/dist/webcomponents/p-c8af334e.entry.js +0 -5
  771. package/dist/webcomponents/p-cac49c6a.entry.js +0 -5
  772. package/dist/webcomponents/p-cb9ebfbe.entry.js +0 -5
  773. package/dist/webcomponents/p-ce3d689c.entry.js +0 -5
  774. package/dist/webcomponents/p-d11f95a0.entry.js +0 -5
  775. package/dist/webcomponents/p-dad03b49.entry.js +0 -5
  776. package/dist/webcomponents/p-db8e6322.entry.js +0 -5
  777. package/dist/webcomponents/p-dea8015f.entry.js +0 -5
  778. package/dist/webcomponents/p-e07e309d.entry.js +0 -5
  779. package/dist/webcomponents/p-e53d874b.entry.js +0 -5
  780. package/dist/webcomponents/p-e5540387.entry.js +0 -5
  781. package/dist/webcomponents/p-e9be4d3f.entry.js +0 -5
  782. package/dist/webcomponents/p-e9db9381.entry.js +0 -5
  783. package/dist/webcomponents/p-edca5de1.entry.js +0 -5
  784. package/dist/webcomponents/p-ee5b9fc9.entry.js +0 -5
  785. package/dist/webcomponents/p-f4ef8c63.entry.js +0 -5
  786. /package/dist/components/{p-5z6jgH1D.js → p-BNckUhK6.js} +0 -0
  787. /package/dist/webcomponents/{p-BIG-yees.js → p-Bt01zQ7-.js} +0 -0
@@ -12,133 +12,143 @@ import { parse } from "date-fns/parse";
12
12
  import { set } from "date-fns/set";
13
13
  import { toDate } from "date-fns/toDate";
14
14
  import { dispatchNativeFormEvent } from "../../../shared/utils/event";
15
- import { reportInvalidPropValue } from "../../../shared/utils/prop-warning";
16
- import { resolveAllowedPropValue } from "../../../shared/utils/props";
17
15
  import { resolveSsrLocalDate } from "../../../shared/utils/ssr-date";
18
- import { isValidDatetimePickerDateRange } from "../datetime-picker-props-validation";
16
+ import { DATETIME_RANGE_ORDER_MESSAGE } from "../datetime-picker-constants";
17
+ import { INPUT_FORMAT_CONFIG } from "./datetime-input-constants";
19
18
  import { normalizeDatetimeInputMode, normalizeDatetimeInputReferenceDate, normalizeDatetimeInputValue, } from "./datetime-input-props-validation";
20
19
  /**
21
- * Subcomponente especializado do ecossistema de datas do GovBR-DS, responsável pela digitação e formatação de datas e horários via teclado.
20
+ * Campo de texto com máscara usado pelo `br-datetime-picker`. Interpreta a data ou a hora digitada e abre o calendário pelo botão do campo.
22
21
  *
23
- * ### Papel na composição
22
+ * É criado pelo `br-datetime-picker`; não é preciso declará-lo. Para um campo de data em formulário, use o `br-datetime-picker`.
24
23
  *
25
- * - Aplica máscaras automáticas de digitação conforme o formato configurado (ex.: `DD/MM/AAAA`, `HH:mm`, `DD/MM/AAAA HH:mm`).
26
- * - Contém o botão de acionamento para expandir ou recolher o popup do calendário.
27
- *
28
- * ### Regra de uso e relacionamento
29
- *
30
- * No fluxo usual da aplicação, é instanciado e coordenado automaticamente pelo orquestrador `br-datetime-picker`. Pode ser utilizado de forma autônoma apenas quando o leiaute exigir somente o campo de digitação textual sem o painel flutuante de calendário.
31
- *
32
- * Para a documentação completa de design, consulte o [Design System do GovBR](https://www.gov.br/ds/components/datetime-picker?tab=designer).
33
- *
34
- * @category Formulários, Seleção
35
- * @status stable
36
- *
37
- * @part container - Parte para o container base do campo.
38
- * @part input - Parte para o campo textual interno.
39
- * @part icon - Parte para o ícone de ação (calendário/relógio).
24
+ * @see https://www.gov.br/ds/components/datetime?tab=designer
25
+ * @part container - Container do campo.
26
+ * @part input - Elemento de entrada textual interno.
27
+ * @part icon - Ícone de ação (calendário/relógio).
40
28
  */
41
29
  export class DatetimeInput {
42
30
  constructor() {
43
- /** Valor textual exibido no campo e usado durante a edição manual. */
44
- this.inputValue = '';
45
31
  /**
46
- * Define o placeholder do campo de entrada.
32
+ * Texto de placeholder exibido quando o campo estiver vazio.
47
33
  *
48
34
  * @default ''
49
35
  */
50
36
  this.placeholder = '';
51
37
  /**
52
- * Define o modo de entrada: `date`, `time` ou `datetime`.
38
+ * Modo de entrada que controla máscara, parser e formato exibido.
53
39
  *
54
40
  * @default 'datetime'
55
41
  */
56
42
  this.mode = 'datetime';
57
43
  /**
58
- * Data de referência que orienta a navegação visual do calendário sem alterar a seleção.
59
- * Recebe uma instância de `Date` por property binding.
44
+ * Data de referência usada para navegação e preenchimento de valores parciais.
60
45
  *
61
46
  * @default new Date()
62
- * @example
63
- * ```js
64
- * const input = document.querySelector('br-datetime-input');
65
- * input.referenceDate = new Date(2026, 8, 1);
66
- * ```
67
47
  */
68
48
  this.referenceDate = new Date();
69
49
  /**
70
- * Data efetivamente selecionada, ou `null` quando nada foi escolhido; é diferente
71
- * de `referenceDate`, que controla apenas a referência visual.
72
- * Recebe uma instância de `Date` por property binding.
50
+ * Valor atualmente selecionado pelo componente.
73
51
  *
74
52
  * @default null
75
- * @example
76
- * ```js
77
- * const input = document.querySelector('br-datetime-input');
78
- * input.value = new Date(2026, 8, 7, 14, 30);
79
- * ```
80
53
  */
81
54
  this.value = null;
82
55
  /**
83
- * Desabilita digitação e abertura do picker quando ativo.
56
+ * Controla os estados de read-only ou bloqueio de formulário.
84
57
  *
85
58
  * @default false
86
59
  */
87
60
  this.disabled = false;
88
61
  /**
89
- * Define se a seleção ocorre por data única ou por intervalo.
90
- * Aceita `single` ou `range`; valores inválidos usam `single`.
62
+ * Define o modo de seleção: `single` (valor único) ou `range` (intervalo).
91
63
  *
92
64
  * @default 'single'
93
65
  */
94
66
  this.selectionMode = 'single';
95
67
  /**
96
- * Data inicial do intervalo quando em modo range.
68
+ * Início do intervalo em `selectionMode === 'range'`.
97
69
  *
98
70
  * @default null
99
71
  */
100
72
  this.rangeStart = null;
101
73
  /**
102
- * Data final do intervalo quando em modo range.
74
+ * Fim do intervalo em `selectionMode === 'range'`.
103
75
  *
104
76
  * @default null
105
77
  */
106
78
  this.rangeEnd = null;
79
+ /**
80
+ * Marcador do último texto confirmado (commit) exibido no input.
81
+ *
82
+ * @internal
83
+ * @type {string | null}
84
+ * @default null
85
+ */
86
+ this.lastCommittedInputText = null;
87
+ /**
88
+ * Texto atual do campo usado durante a edição manual.
89
+ *
90
+ * @internal Mantido localmente; não faz parte do contrato público do componente.
91
+ * @type {string}
92
+ * @default ''
93
+ */
94
+ this.inputValue = '';
95
+ /**
96
+ * Handler do clique no botão de ação interno.
97
+ *
98
+ * @param event - Ativação pública da ação do br-input.
99
+ * @returns {void}
100
+ */
107
101
  this.handleActionButtonClick = (event) => {
108
102
  if (this.disabled)
109
103
  return;
110
104
  event.stopPropagation();
105
+ event.detail.originalEvent.stopPropagation();
111
106
  this.togglePicker.emit();
112
107
  };
113
108
  /**
114
- * Confirma o conteúdo digitado quando o foco sai do input nativo, inclusive
115
- * quando avança para o botão de calendário dentro do mesmo `br-input`.
109
+ * Blur handler: consome o evento e confirma o conteúdo atual.
110
+ *
111
+ * @param {FocusEvent} event - Evento de blur do input.
112
+ * @returns {void}
116
113
  */
117
114
  this.handleInputBlur = (event) => {
118
- if (!(event.composedPath()[0] instanceof HTMLInputElement)) {
119
- return;
120
- }
121
- if (this.disabled) {
122
- return;
123
- }
124
- this.commitInputValue();
115
+ event.stopPropagation();
116
+ this.commitCurrentInput();
117
+ };
118
+ /**
119
+ * Handler para commit disparado pelo `change` do `br-input`.
120
+ *
121
+ * @param {Event} event - Evento de change.
122
+ * @returns {void}
123
+ */
124
+ this.handleInputCommit = (event) => {
125
+ event.stopPropagation();
126
+ this.commitCurrentInput();
125
127
  };
126
128
  /**
127
129
  * Atualiza o estado local com o valor digitado no campo.
128
130
  *
129
- * @param event - Evento de input disparado pelo campo textual.
131
+ * @param {Event} event - Evento de input redistribuído pelo `br-input`.
132
+ * @returns {void}
130
133
  */
131
134
  this.handleInputChange = (event) => {
135
+ event.stopPropagation();
132
136
  if (this.disabled) {
133
137
  return;
134
138
  }
135
139
  const input = event.target;
136
- this.inputValue = input.value;
140
+ this.lastCommittedInputText = null;
141
+ this.emitInputValidation(null);
142
+ this.setInternalInputValue(input.value ?? '');
137
143
  };
138
144
  /**
139
- * Permite confirmar a digitação pressionando Enter.
145
+ * Handler de teclado no campo de entrada.
146
+ *
147
+ * Suporta atalhos ARIA (Alt+ArrowDown / F4) para abrir/fechar o picker
148
+ * e Enter para confirmar a edição.
140
149
  *
141
- * @param event - Evento de teclado do campo de entrada.
150
+ * @param {KeyboardEvent} event - Evento de teclado.
151
+ * @returns {void}
142
152
  */
143
153
  this.handleInputKeydown = (event) => {
144
154
  if (this.disabled) {
@@ -150,37 +160,23 @@ export class DatetimeInput {
150
160
  this.togglePicker.emit();
151
161
  return;
152
162
  }
153
- if (event.key === 'Enter') {
154
- this.commitInputValue();
155
- }
156
- };
157
- /**
158
- * Evita propagação do clique e solicita a abertura/fechamento do picker.
159
- *
160
- * @param event - Evento de clique no ícone de ação.
161
- */
162
- this.handleToggleDropdown = (event) => {
163
- if (this.disabled) {
164
- return;
163
+ if (event.key === 'Enter' && event.composedPath().some((target) => target instanceof HTMLInputElement)) {
164
+ // Previne submissão de formulários e garante deduplicação
165
+ // usando a mesma rotina que blur/change usam.
166
+ event.preventDefault();
167
+ this.commitCurrentInput();
165
168
  }
166
- event.stopPropagation();
167
- this.togglePicker.emit();
168
169
  };
169
170
  }
170
- /** Move o foco para o input interno sem expor a árvore privada ao componente pai. @internal */
171
- async focusInput() {
172
- this.el.shadowRoot?.querySelector('br-input')?.focus();
173
- }
174
- get effectiveSelectionMode() {
175
- return resolveAllowedPropValue(this.el, 'selectionMode', this.selectionMode, ['single', 'range'], 'single');
176
- }
171
+ /**
172
+ * Watcher: sincroniza `rangeStart`/`rangeEnd` a partir de `rangeValue` controlado.
173
+ *
174
+ * @param {DatetimePickerDateRange | undefined} newValue - Novo intervalo ou `undefined`.
175
+ * @returns {void}
176
+ */
177
177
  handleRangeValueChange(newValue) {
178
178
  if (!newValue)
179
179
  return;
180
- if (!isValidDatetimePickerDateRange(newValue)) {
181
- reportInvalidPropValue(this.el, 'rangeValue', newValue, 'Informe um objeto com `start` e `end` como Date válido ou null.', 'Ignorando o intervalo inválido e mantendo o último intervalo efetivo.');
182
- return;
183
- }
184
180
  this.rangeStart = newValue.start;
185
181
  this.rangeEnd = newValue.end;
186
182
  this.syncInputValueFromProps();
@@ -190,6 +186,13 @@ export class DatetimeInput {
190
186
  *
191
187
  * @param newValue - Novo valor recebido via prop.
192
188
  */
189
+ /**
190
+ * Watcher: reage a mudanças externas em `value`, normalizando e sincronizando
191
+ * o texto exibido no input.
192
+ *
193
+ * @param {Date | null} newValue - Novo valor recebido via prop.
194
+ * @returns {void}
195
+ */
193
196
  handleValueChange(newValue) {
194
197
  this.ensureValidValue(newValue);
195
198
  this.syncInputValueFromProps();
@@ -199,6 +202,12 @@ export class DatetimeInput {
199
202
  *
200
203
  * @param newValue - Novo modo recebido via prop.
201
204
  */
205
+ /**
206
+ * Watcher: aplica normalização do `mode` e atualiza a máscara/valor exibido.
207
+ *
208
+ * @param {string} newValue - Novo modo recebido via prop.
209
+ * @returns {void}
210
+ */
202
211
  handleModeChange(newValue) {
203
212
  this.ensureValidMode(newValue);
204
213
  this.syncInputValueFromProps();
@@ -208,6 +217,12 @@ export class DatetimeInput {
208
217
  *
209
218
  * @param newValue - Nova data de referência recebida.
210
219
  */
220
+ /**
221
+ * Watcher: valida `referenceDate` e resina o input quando não há seleção.
222
+ *
223
+ * @param {Date} newValue - Nova data de referência recebida.
224
+ * @returns {void}
225
+ */
211
226
  handleReferenceDateChange(newValue) {
212
227
  this.ensureValidReferenceDate(newValue);
213
228
  if (this.value === null) {
@@ -219,8 +234,13 @@ export class DatetimeInput {
219
234
  *
220
235
  * @param newValue - Nova data inicial do range.
221
236
  */
237
+ /**
238
+ * Watcher: atualiza a representação textual quando o início do range muda.
239
+ *
240
+ * @returns {void}
241
+ */
222
242
  handleRangeStartChange() {
223
- if (this.effectiveSelectionMode === 'range') {
243
+ if (this.selectionMode === 'range') {
224
244
  this.syncInputValueFromProps();
225
245
  }
226
246
  }
@@ -229,8 +249,13 @@ export class DatetimeInput {
229
249
  *
230
250
  * @param newValue - Nova data final do range.
231
251
  */
252
+ /**
253
+ * Watcher: atualiza a representação textual quando o fim do range muda.
254
+ *
255
+ * @returns {void}
256
+ */
232
257
  handleRangeEndChange() {
233
- if (this.effectiveSelectionMode === 'range') {
258
+ if (this.selectionMode === 'range') {
234
259
  this.syncInputValueFromProps();
235
260
  }
236
261
  }
@@ -245,41 +270,36 @@ export class DatetimeInput {
245
270
  this.syncInputValueFromProps();
246
271
  }
247
272
  /**
248
- * Registra os listeners do input nativo e do botão de ação após o DOM estar disponível.
273
+ * Confirma o conteúdo atual evitando commits duplicados (blur + change).
249
274
  *
250
- * O br-button que envolve o slot "action" é focável. Quando Space/Enter é pressionado,
251
- * o browser dispara um click sintético. Adicionamos um listener imperativo para
252
- * garantir que o clique no botão de ação acione o toggle. O blur é observado na raiz
253
- * interna porque mover o foco do input para essa ação não desfoca o host `br-input`.
275
+ * @returns {void}
254
276
  */
255
- async componentDidLoad() {
256
- // Tenta encontrar o br-button dentro do br-input que envolve o slot action
257
- const brInput = this.el.shadowRoot?.querySelector('br-input');
258
- if (!brInput)
259
- return;
260
- if (!brInput.shadowRoot)
261
- await brInput.componentOnReady();
262
- if (!this.el.isConnected || !brInput.shadowRoot)
277
+ commitCurrentInput() {
278
+ if (this.disabled)
263
279
  return;
264
- this.inputShadowRoot = brInput.shadowRoot;
265
- this.inputShadowRoot.addEventListener('blur', this.handleInputBlur, true);
266
- const actionButton = this.inputShadowRoot.querySelector('br-button.button-transform');
267
- if (!actionButton)
280
+ const currentText = this.inputValue.trim();
281
+ if (this.lastCommittedInputText === currentText)
268
282
  return;
269
- this.actionButton = actionButton;
270
- // Listener para clique no botão de ação (funciona para mouse e Space/Enter via button nativo)
271
- actionButton.addEventListener('click', this.handleActionButtonClick);
283
+ this.lastCommittedInputText = currentText;
284
+ this.commitInputValue();
285
+ this.lastCommittedInputText = this.inputValue.trim();
272
286
  }
273
- disconnectedCallback() {
274
- this.inputShadowRoot?.removeEventListener('blur', this.handleInputBlur, true);
275
- this.inputShadowRoot = undefined;
276
- this.actionButton?.removeEventListener('click', this.handleActionButtonClick);
277
- this.actionButton = undefined;
287
+ /**
288
+ * Retorna a máscara delegada ao `br-input` de acordo com o modo atual.
289
+ *
290
+ * @returns {string | undefined} - Máscara a ser aplicada, ou `undefined` quando indisponível.
291
+ */
292
+ getInputMask() {
293
+ if (this.selectionMode === 'range') {
294
+ const boundaryMask = INPUT_FORMAT_CONFIG[this.mode].mask;
295
+ return `${boundaryMask} - ${boundaryMask}`;
296
+ }
297
+ return INPUT_FORMAT_CONFIG[this.mode].mask;
278
298
  }
279
299
  /**
280
300
  * Retorna o rótulo acessível do botão de alternância do picker.
281
301
  *
282
- * @returns Texto anunciado pelo leitor de tela para o ícone de ação.
302
+ * @returns {string} - Texto anunciado pelo leitor de tela para o ícone de ação.
283
303
  */
284
304
  getToggleAriaLabel() {
285
305
  switch (this.mode) {
@@ -292,9 +312,10 @@ export class DatetimeInput {
292
312
  }
293
313
  }
294
314
  /**
295
- * Normaliza o modo de operação para um valor suportado.
315
+ * Normaliza e aplica um modo válido (`date` | `time` | `datetime`).
296
316
  *
297
- * @param value - Modo informado externamente.
317
+ * @param {string} value - Modo informado externamente.
318
+ * @returns {void}
298
319
  */
299
320
  ensureValidMode(value = this.mode) {
300
321
  const normalizedMode = normalizeDatetimeInputMode(value);
@@ -303,9 +324,10 @@ export class DatetimeInput {
303
324
  }
304
325
  }
305
326
  /**
306
- * Garante que a data de referência seja uma instância válida de `Date`.
327
+ * Garante que `referenceDate` seja uma `Date` válida; caso contrário, normaliza.
307
328
  *
308
- * @param value - Data de referência recebida via prop.
329
+ * @param {Date} value - Data de referência recebida via prop.
330
+ * @returns {void}
309
331
  */
310
332
  ensureValidReferenceDate(value = this.referenceDate) {
311
333
  const normalizedReferenceDate = normalizeDatetimeInputReferenceDate(value);
@@ -316,7 +338,8 @@ export class DatetimeInput {
316
338
  /**
317
339
  * Normaliza o valor selecionado para `Date` válido ou `null`.
318
340
  *
319
- * @param value - Valor recebido via prop.
341
+ * @param {Date | null} value - Valor recebido via prop.
342
+ * @returns {void}
320
343
  */
321
344
  ensureValidValue(value = this.value) {
322
345
  const normalizedValue = normalizeDatetimeInputValue(value);
@@ -326,47 +349,131 @@ export class DatetimeInput {
326
349
  }
327
350
  /**
328
351
  * Consolida o texto digitado, tenta analisar e emite o novo estado selecionado.
352
+ *
353
+ * Trata modos `single` e `range` e valida mensagens de erro apropriadas.
354
+ *
355
+ * @returns {void}
329
356
  */
330
357
  commitInputValue() {
331
358
  const inputText = this.inputValue.trim();
332
359
  if (inputText === '') {
360
+ this.emitInputValidation(true);
333
361
  this.value = null;
334
362
  this.dateStateChange.emit({
335
363
  referenceDate: this.referenceDate,
336
364
  value: null,
365
+ origin: this.el.tagName,
337
366
  });
338
367
  this.emitNativeValueChange();
339
368
  return;
340
369
  }
341
- if (this.effectiveSelectionMode === 'range' && this.mode === 'date') {
370
+ if (this.selectionMode === 'range') {
342
371
  const parsedRange = this.parseRangeInput(inputText);
343
- if (parsedRange === null)
372
+ if (parsedRange === null) {
373
+ this.emitInputValidation(false, this.getRangeValidationMessage(inputText));
374
+ return;
375
+ }
376
+ if (this.mode === 'datetime' && compareAsc(parsedRange.end, parsedRange.start) < 0) {
377
+ this.emitInputValidation(false, DATETIME_RANGE_ORDER_MESSAGE);
344
378
  return;
379
+ }
345
380
  const normalizedRange = this.normalizeRangeBounds(parsedRange.start, parsedRange.end);
381
+ this.emitInputValidation(true);
346
382
  this.rangeValue = normalizedRange;
347
- this.inputValue = `${this.formatDateByMode(normalizedRange.start)} - ${this.formatDateByMode(normalizedRange.end)}`;
383
+ this.setInternalInputValue(`${this.formatDateByMode(normalizedRange.start)} - ${this.formatDateByMode(normalizedRange.end)}`);
348
384
  this.value = normalizedRange.end;
349
385
  this.dateStateChange.emit({
350
386
  referenceDate: normalizedRange.end,
351
387
  value: normalizedRange.end,
352
388
  range: normalizedRange,
389
+ origin: this.el.tagName,
353
390
  });
354
391
  this.emitNativeValueChange();
355
392
  return;
356
393
  }
394
+ if (!this.isInputComplete(inputText)) {
395
+ this.emitInputValidation(false, this.getInputValidationMessage(inputText));
396
+ return;
397
+ }
357
398
  const parsed = this.parseInputValue(inputText);
358
- if (parsed === null)
399
+ if (parsed === null) {
400
+ this.emitInputValidation(false, this.getInputValidationMessage(inputText));
359
401
  return;
402
+ }
403
+ this.emitInputValidation(true);
360
404
  const newDate = new Date(parsed);
361
405
  newDate.setSeconds(0, 0);
362
- this.inputValue = this.formatDateByMode(newDate);
406
+ this.setInternalInputValue(this.formatDateByMode(newDate));
363
407
  this.value = newDate;
364
408
  this.dateStateChange.emit({
365
409
  referenceDate: newDate,
366
410
  value: newDate,
411
+ origin: this.el.tagName,
367
412
  });
368
413
  this.emitNativeValueChange();
369
414
  }
415
+ /**
416
+ * Emite o resultado da validação textual sem alterar o valor selecionado.
417
+ *
418
+ * @param {boolean} valid - Indica se a entrada é válida.
419
+ * @param {string} [message] - Mensagem de erro quando inválido.
420
+ * @returns {void}
421
+ */
422
+ emitInputValidation(valid, message = '') {
423
+ this.inputValidationChange.emit({ valid, message: valid ? '' : message, origin: this.el.tagName });
424
+ }
425
+ /**
426
+ * Verifica se a entrada possui a quantidade de dígitos esperada para o modo atual.
427
+ *
428
+ * @param {string} value - Texto de entrada a ser verificado.
429
+ * @returns {boolean} - `true` quando completo.
430
+ */
431
+ isInputComplete(value) {
432
+ const digits = value.replace(/\D/g, '');
433
+ const config = INPUT_FORMAT_CONFIG[this.mode];
434
+ return config.acceptedDigitCounts.includes(digits.length);
435
+ }
436
+ /**
437
+ * Retorna mensagem de validação contextual para uma entrada incompleta ou inválida.
438
+ *
439
+ * @param {string} value - Texto de entrada a ser avaliado.
440
+ * @returns {string} - Mensagem de validação apropriada.
441
+ */
442
+ getInputValidationMessage(value) {
443
+ const digits = value.replace(/\D/g, '');
444
+ const config = INPUT_FORMAT_CONFIG[this.mode];
445
+ if (!config)
446
+ return 'Informe um valor válido.';
447
+ const digitCount = digits.length;
448
+ if (this.mode === 'datetime' &&
449
+ config.acceptedDigitCounts.includes(digitCount) &&
450
+ digitCount < config.fullDigitCount) {
451
+ return config.messages.invalid;
452
+ }
453
+ return digitCount < config.fullDigitCount ? config.messages.incomplete : config.messages.invalid;
454
+ }
455
+ /**
456
+ * Mensagem específica para o formato de intervalo do modo atual.
457
+ *
458
+ * @param {string} value - Texto de intervalo informado no input.
459
+ * @returns {string} - Mensagem de validação do intervalo.
460
+ */
461
+ getRangeValidationMessage(value) {
462
+ const [startRaw = '', endRaw = ''] = value.split(/\s*-\s*/, 2);
463
+ const startDigits = startRaw.replace(/\D/g, '');
464
+ const endDigits = endRaw.replace(/\D/g, '');
465
+ const config = INPUT_FORMAT_CONFIG[this.mode];
466
+ const expectedDigits = config.fullDigitCount;
467
+ if (startDigits.length < expectedDigits || endDigits.length < expectedDigits) {
468
+ return `Complete o intervalo no formato ${config.rangeFormat}.`;
469
+ }
470
+ return config.messages.invalidRange;
471
+ }
472
+ /**
473
+ * Dispara eventos nativos `input` e `change` para compatibilidade com forms.
474
+ *
475
+ * @returns {void}
476
+ */
370
477
  emitNativeValueChange() {
371
478
  dispatchNativeFormEvent(this.el, 'input');
372
479
  dispatchNativeFormEvent(this.el, 'change');
@@ -388,55 +495,90 @@ export class DatetimeInput {
388
495
  return null;
389
496
  }
390
497
  const base = this.referenceDate ?? toDate(new Date());
391
- const parsedStart = this.parseDateInput(startText, base);
392
- const parsedEnd = this.parseDateInput(endText, base);
498
+ const parsedStart = this.parseInputValue(startText, this.rangeStart ?? base);
499
+ const parsedEnd = this.parseInputValue(endText, this.rangeEnd ?? base);
393
500
  if (parsedStart === null || parsedEnd === null) {
394
501
  return null;
395
502
  }
396
503
  return { start: parsedStart, end: parsedEnd };
397
504
  }
398
- /** Normaliza os limites do intervalo para garantir ordem cronológica. */
505
+ /**
506
+ * Normaliza os limites do intervalo para garantir ordem cronológica.
507
+ *
508
+ * - Em `time` e `datetime` mantém os limites informados.
509
+ * - Em `date` reordena caso necessário.
510
+ *
511
+ * @param {Date} start - Data de início.
512
+ * @param {Date} end - Data de término.
513
+ * @returns {{ start: Date; end: Date }} - Limites normalizados.
514
+ */
399
515
  normalizeRangeBounds(start, end) {
516
+ if (this.mode !== 'date')
517
+ return { start, end };
400
518
  return compareAsc(start, end) <= 0 ? { start, end } : { start: end, end: start };
401
519
  }
402
520
  /**
403
- * Sincroniza o texto do campo com as props atuais de valor e modo.
521
+ * Sincroniza o texto do input com as props `value`/`rangeStart`/`rangeEnd` e `mode`.
522
+ *
523
+ * @returns {void}
404
524
  */
405
525
  syncInputValueFromProps() {
406
- if (this.effectiveSelectionMode === 'range') {
526
+ if (this.selectionMode === 'range') {
407
527
  if (this.rangeStart === null || this.rangeEnd === null) {
408
- this.inputValue = '';
528
+ this.setInternalInputValue('');
409
529
  return;
410
530
  }
411
531
  const startFormatted = this.formatDateByMode(this.rangeStart);
412
532
  const endFormatted = this.formatDateByMode(this.rangeEnd);
413
- this.inputValue = `${startFormatted} - ${endFormatted}`;
533
+ this.setInternalInputValue(`${startFormatted} - ${endFormatted}`);
414
534
  return;
415
535
  }
416
536
  if (this.value === null) {
417
- this.inputValue = '';
537
+ this.setInternalInputValue('');
418
538
  return;
419
539
  }
420
- this.inputValue = this.formatDateByMode(this.value);
540
+ this.setInternalInputValue(this.formatDateByMode(this.value));
541
+ }
542
+ /**
543
+ * Retorna o elemento interno `<br-input>` quando disponível.
544
+ *
545
+ * @internal
546
+ * @returns {HTMLBrInputElement | null} Elemento interno `<br-input>` ou `null` se não estiver disponível.
547
+ */
548
+ getBrInputElement() {
549
+ return this.el.shadowRoot?.querySelector('br-input');
550
+ }
551
+ /**
552
+ * Define o valor interno do input imperativamente.
553
+ *
554
+ * @internal Define o valor interno do input sem re-renderizar o host.
555
+ * @param {string} value Valor a ser definido no input interno.
556
+ */
557
+ setInternalInputValue(value) {
558
+ this.inputValue = value;
559
+ const br = this.getBrInputElement();
560
+ if (br) {
561
+ // atualiza imperativamente o componente filho sem re-renderizar o host
562
+ try {
563
+ br.value = value;
564
+ }
565
+ catch { }
566
+ }
421
567
  }
422
568
  /**
423
569
  * Formata uma data de acordo com o modo atual do componente.
424
570
  *
425
- * @param date - Data a ser formatada para exibição no input.
426
- * @returns Representação textual da data/hora no padrão esperado.
571
+ * @param {Date} date - Data a ser formatada para exibição no input.
572
+ * @returns {string} - Representação textual da data/hora no padrão esperado.
427
573
  */
428
574
  formatDateByMode(date) {
429
- switch (this.mode) {
430
- case 'date':
431
- return format(date, 'dd/MM/yyyy');
432
- case 'time':
433
- return format(date, 'HH:mm');
434
- default:
435
- return format(date, 'dd/MM/yyyy HH:mm');
436
- }
575
+ const config = INPUT_FORMAT_CONFIG[this.mode];
576
+ return format(date, config.displayFormat);
437
577
  }
438
578
  /**
439
- * Retorna as classes CSS base aplicadas ao host visual do componente.
579
+ * Retorna o mapa de classes CSS aplicado ao host do componente.
580
+ *
581
+ * @returns {CssClassMap}
440
582
  */
441
583
  getCssClassMap() {
442
584
  return {
@@ -446,7 +588,7 @@ export class DatetimeInput {
446
588
  /**
447
589
  * Seleciona o ícone do campo conforme o modo de entrada ativo.
448
590
  *
449
- * @returns Nome do ícone usado na ação lateral do input.
591
+ * @returns {string} - Nome do ícone usado na ação lateral do input.
450
592
  */
451
593
  getInputIcon() {
452
594
  switch (this.mode) {
@@ -459,11 +601,11 @@ export class DatetimeInput {
459
601
  /**
460
602
  * Converte o texto digitado em `Date` com base no modo configurado.
461
603
  *
462
- * @param value - Texto informado pelo usuário no input.
463
- * @returns Data convertida em objeto `Date` ou `null` quando inválida.
604
+ * @param {string} value - Texto informado pelo usuário no input.
605
+ * @param {Date} [base] - Data base usada para completar valores parciais.
606
+ * @returns {Date | null} - Data convertida ou `null` quando inválida.
464
607
  */
465
- parseInputValue(value) {
466
- const base = this.value ?? this.referenceDate ?? toDate(new Date());
608
+ parseInputValue(value, base = this.value ?? this.referenceDate ?? toDate(new Date())) {
467
609
  switch (this.mode) {
468
610
  case 'date':
469
611
  return this.parseDateInput(value, base);
@@ -478,12 +620,14 @@ export class DatetimeInput {
478
620
  /**
479
621
  * Faz parse de uma data no formato `dd/MM/yyyy`, preservando hora e minuto base.
480
622
  *
481
- * @param value - Texto de data digitado pelo usuário.
482
- * @param base - Data base usada para completar informações de tempo.
483
- * @returns Data válida normalizada ou `null` quando o parse falhar.
623
+ * @param {string} value - Texto de data digitado pelo usuário.
624
+ * @param {Date} base - Data base usada para completar informações de tempo.
625
+ * @returns {Date | null} - Data válida normalizada ou `null` quando o parse falhar.
484
626
  */
485
627
  parseDateInput(value, base) {
486
- const parsedDate = parse(value, 'dd/MM/yyyy', base);
628
+ const config = INPUT_FORMAT_CONFIG[this.mode];
629
+ const datePattern = config.parseFormats[0];
630
+ const parsedDate = parse(value, datePattern, base);
487
631
  if (!isValid(parsedDate))
488
632
  return null;
489
633
  return set(parsedDate, {
@@ -496,12 +640,14 @@ export class DatetimeInput {
496
640
  /**
497
641
  * Faz parse de hora no formato `HH:mm`, preservando o dia da data base.
498
642
  *
499
- * @param value - Texto de hora digitado pelo usuário.
500
- * @param base - Data base usada para manter dia, mês e ano.
501
- * @returns Data válida com hora ajustada ou `null` quando inválida.
643
+ * @param {string} value - Texto de hora digitado pelo usuário.
644
+ * @param {Date} base - Data base usada para manter dia, mês e ano.
645
+ * @returns {Date | null} - Data válida com hora ajustada ou `null` quando inválida.
502
646
  */
503
647
  parseTimeInput(value, base) {
504
- const parsedTime = parse(value, 'HH:mm', base);
648
+ const config = INPUT_FORMAT_CONFIG[this.mode];
649
+ const timePattern = config.parseFormats[0];
650
+ const parsedTime = parse(value, timePattern, base);
505
651
  if (!isValid(parsedTime))
506
652
  return null;
507
653
  return set(base, {
@@ -512,20 +658,23 @@ export class DatetimeInput {
512
658
  });
513
659
  }
514
660
  /**
515
- * Faz parse de data e hora completas, com fallback para entradas parciais.
661
+ * Faz parse de data e hora completas, aceitando somente a data como fallback.
516
662
  *
517
- * @param value - Texto digitado no input.
518
- * @param base - Data base usada como contexto para completar o parse.
519
- * @returns Data válida a partir da entrada ou `null` quando não reconhecida.
663
+ * @param {string} value - Texto digitado no input.
664
+ * @param {Date} base - Data base usada como contexto para completar o parse.
665
+ * @returns {Date | null} - Data válida a partir da entrada ou `null` quando não reconhecida.
520
666
  */
521
667
  parseDateTimeInput(value, base) {
668
+ const config = INPUT_FORMAT_CONFIG[this.mode];
669
+ const fullPattern = config.parseFormats[0];
670
+ const fallbackDatePattern = config.parseFormats[1];
522
671
  // data + hora
523
- const full = parse(value, 'dd/MM/yyyy HH:mm', base);
672
+ const full = parse(value, fullPattern, base);
524
673
  if (isValid(full))
525
674
  return full;
526
- // so data -> hora atual
527
- const date = this.parseDateInput(value, base);
528
- if (date !== null) {
675
+ // somente data -> preserva a hora da data base
676
+ const date = parse(value, fallbackDatePattern, base);
677
+ if (isValid(date)) {
529
678
  return set(date, {
530
679
  hours: getHours(base),
531
680
  minutes: getMinutes(base),
@@ -533,14 +682,7 @@ export class DatetimeInput {
533
682
  milliseconds: 0,
534
683
  });
535
684
  }
536
- // so hora -> data atual
537
- return this.parseTimeInput(value, base);
538
- }
539
- /**
540
- * Renderiza o campo textual e o ícone de ação do datetime input.
541
- */
542
- renderInputField() {
543
- return (h("br-input", { type: "text", value: this.inputValue, placeholder: this.placeholder, disabled: this.disabled, actionLabel: this.getToggleAriaLabel(), onInput: this.handleInputChange, onKeyDown: this.handleInputKeydown, "aria-label": this.getInputAriaLabel(), part: "input" }, h("br-icon", { slot: "action", iconName: this.getInputIcon(), width: "16", height: "16", "aria-hidden": "true", onClick: this.handleToggleDropdown, part: "icon" })));
685
+ return null;
544
686
  }
545
687
  /**
546
688
  * Retorna o rótulo acessível do campo de entrada de acordo com o modo ativo.
@@ -557,11 +699,19 @@ export class DatetimeInput {
557
699
  return 'Campo de data e hora';
558
700
  }
559
701
  }
702
+ /**
703
+ * Renderiza o campo textual e o ícone de ação do datetime input.
704
+ *
705
+ * @returns {JSX.Element}
706
+ */
707
+ renderInputField() {
708
+ return (h("br-input", { type: "text", mask: this.getInputMask(), placeholder: this.placeholder, disabled: this.disabled, actionLabel: this.getToggleAriaLabel(), onInput: this.handleInputChange, onChange: this.handleInputCommit, onBlur: this.handleInputBlur, onKeyDown: this.handleInputKeydown, onBrInputActionClick: this.handleActionButtonClick, "aria-label": this.getInputAriaLabel(), part: "input" }, h("br-icon", { slot: "action", iconName: this.getInputIcon(), width: "16", height: "16", "aria-hidden": "true", part: "icon" })));
709
+ }
560
710
  /**
561
711
  * Renderização principal do componente.
562
712
  */
563
713
  render() {
564
- return (h(Host, { key: '8c5536c6a740ac0d42be7bf89ffc1098d896f895' }, h("div", { key: 'c9a1a995838739f5b6e00fcf39a21bee81362e90', class: this.getCssClassMap(), part: "container" }, this.renderInputField())));
714
+ return (h(Host, { key: 'dd5b4fa7df2b33edc9c262b4d7cf0d161ae195b8' }, h("div", { key: '83035393364d795eeb46f7a9f03309e33d53aa42', class: this.getCssClassMap(), part: "container" }, this.renderInputField())));
565
715
  }
566
716
  static get is() { return "br-datetime-input"; }
567
717
  static get encapsulation() { return "shadow"; }
@@ -593,7 +743,7 @@ export class DatetimeInput {
593
743
  "name": "default",
594
744
  "text": "''"
595
745
  }],
596
- "text": "Define o placeholder do campo de entrada."
746
+ "text": "Texto de placeholder exibido quando o campo estiver vazio."
597
747
  },
598
748
  "getter": false,
599
749
  "setter": false,
@@ -623,7 +773,7 @@ export class DatetimeInput {
623
773
  "name": "default",
624
774
  "text": "'datetime'"
625
775
  }],
626
- "text": "Define o modo de entrada: `date`, `time` ou `datetime`."
776
+ "text": "Modo de entrada que controla m\u00E1scara, parser e formato exibido."
627
777
  },
628
778
  "getter": false,
629
779
  "setter": false,
@@ -650,11 +800,8 @@ export class DatetimeInput {
650
800
  "tags": [{
651
801
  "name": "default",
652
802
  "text": "new Date()"
653
- }, {
654
- "name": "example",
655
- "text": "```js\nconst input = document.querySelector('br-datetime-input');\ninput.referenceDate = new Date(2026, 8, 1);\n```"
656
803
  }],
657
- "text": "Data de refer\u00EAncia que orienta a navega\u00E7\u00E3o visual do calend\u00E1rio sem alterar a sele\u00E7\u00E3o.\nRecebe uma inst\u00E2ncia de `Date` por property binding."
804
+ "text": "Data de refer\u00EAncia usada para navega\u00E7\u00E3o e preenchimento de valores parciais."
658
805
  },
659
806
  "getter": false,
660
807
  "setter": false,
@@ -679,11 +826,8 @@ export class DatetimeInput {
679
826
  "tags": [{
680
827
  "name": "default",
681
828
  "text": "null"
682
- }, {
683
- "name": "example",
684
- "text": "```js\nconst input = document.querySelector('br-datetime-input');\ninput.value = new Date(2026, 8, 7, 14, 30);\n```"
685
829
  }],
686
- "text": "Data efetivamente selecionada, ou `null` quando nada foi escolhido; \u00E9 diferente\nde `referenceDate`, que controla apenas a refer\u00EAncia visual.\nRecebe uma inst\u00E2ncia de `Date` por property binding."
830
+ "text": "Valor atualmente selecionado pelo componente."
687
831
  },
688
832
  "getter": false,
689
833
  "setter": false,
@@ -704,7 +848,7 @@ export class DatetimeInput {
704
848
  "name": "default",
705
849
  "text": "false"
706
850
  }],
707
- "text": "Desabilita digita\u00E7\u00E3o e abertura do picker quando ativo."
851
+ "text": "Controla os estados de read-only ou bloqueio de formul\u00E1rio."
708
852
  },
709
853
  "getter": false,
710
854
  "setter": false,
@@ -734,7 +878,7 @@ export class DatetimeInput {
734
878
  "name": "default",
735
879
  "text": "'single'"
736
880
  }],
737
- "text": "Define se a sele\u00E7\u00E3o ocorre por data \u00FAnica ou por intervalo.\nAceita `single` ou `range`; valores inv\u00E1lidos usam `single`."
881
+ "text": "Define o modo de sele\u00E7\u00E3o: `single` (valor \u00FAnico) ou `range` (intervalo)."
738
882
  },
739
883
  "getter": false,
740
884
  "setter": false,
@@ -762,7 +906,7 @@ export class DatetimeInput {
762
906
  "name": "default",
763
907
  "text": "null"
764
908
  }],
765
- "text": "Data inicial do intervalo quando em modo range."
909
+ "text": "In\u00EDcio do intervalo em `selectionMode === 'range'`."
766
910
  },
767
911
  "getter": false,
768
912
  "setter": false,
@@ -788,7 +932,7 @@ export class DatetimeInput {
788
932
  "name": "default",
789
933
  "text": "null"
790
934
  }],
791
- "text": "Data final do intervalo quando em modo range."
935
+ "text": "Fim do intervalo em `selectionMode === 'range'`."
792
936
  },
793
937
  "getter": false,
794
938
  "setter": false,
@@ -813,10 +957,10 @@ export class DatetimeInput {
813
957
  "optional": true,
814
958
  "docs": {
815
959
  "tags": [{
816
- "name": "example",
817
- "text": "```js\nconst input = document.querySelector('br-datetime-input');\ninput.selectionMode = 'range';\ninput.rangeValue = { start: new Date(2026, 8, 7), end: new Date(2026, 8, 12) };\n```"
960
+ "name": "type",
961
+ "text": "{DatetimePickerDateRange | undefined}"
818
962
  }],
819
- "text": "Intervalo controlado no modo `range`, reunindo `rangeStart` e `rangeEnd` em uma atualiza\u00E7\u00E3o.\nDeve conter datas v\u00E1lidas ou `null`; valores inv\u00E1lidos s\u00E3o ignorados. Passe o objeto por property binding."
963
+ "text": "Intervalo controlado no modo `range` como objeto `{ start, end }`."
820
964
  },
821
965
  "getter": false,
822
966
  "setter": false
@@ -831,12 +975,21 @@ export class DatetimeInput {
831
975
  "cancelable": true,
832
976
  "composed": true,
833
977
  "docs": {
834
- "tags": [],
835
- "text": "Emite quando o valor \u00E9 alterado via input ou parsing."
978
+ "tags": [{
979
+ "name": "property",
980
+ "text": "{Date} referenceDate - Data de refer\u00EAncia usada na navega\u00E7\u00E3o."
981
+ }, {
982
+ "name": "property",
983
+ "text": "{Date|null} value - Valor selecionado ou `null`."
984
+ }, {
985
+ "name": "property",
986
+ "text": "{DatetimePickerDateRange} [range] - Intervalo quando `selectionMode === 'range'`."
987
+ }],
988
+ "text": "Evento emitido quando o estado de data/hora muda (ap\u00F3s commit ou parsing).\n\nPayload (`detail`):"
836
989
  },
837
990
  "complexType": {
838
991
  "original": "DatetimePickerDateState",
839
- "resolved": "{ referenceDate: Date; value: Date; range?: DatetimePickerDateRange; rangeDates?: DatetimePickerRangeDateState[]; }",
992
+ "resolved": "{ referenceDate: Date; value: Date; range?: DatetimePickerDateRange; rangeDates?: DatetimePickerRangeDateState[]; origin?: string; }",
840
993
  "references": {
841
994
  "DatetimePickerDateState": {
842
995
  "location": "import",
@@ -853,43 +1006,42 @@ export class DatetimeInput {
853
1006
  "cancelable": true,
854
1007
  "composed": true,
855
1008
  "docs": {
856
- "tags": [],
857
- "text": "Solicita ao componente pai a altern\u00E2ncia da abertura do picker."
1009
+ "tags": [{
1010
+ "name": "event",
1011
+ "text": "togglePicker"
1012
+ }],
1013
+ "text": "Emite uma solicita\u00E7\u00E3o ao componente pai para alternar a abertura do picker.\nEmite sem payload."
858
1014
  },
859
1015
  "complexType": {
860
1016
  "original": "void",
861
1017
  "resolved": "void",
862
1018
  "references": {}
863
1019
  }
864
- }];
865
- }
866
- static get methods() {
867
- return {
868
- "focusInput": {
869
- "complexType": {
870
- "signature": "() => Promise<void>",
871
- "parameters": [],
872
- "references": {
873
- "Promise": {
874
- "location": "global",
875
- "id": "global::Promise"
876
- },
877
- "HTMLElement": {
878
- "location": "global",
879
- "id": "global::HTMLElement"
880
- }
881
- },
882
- "return": "Promise<void>"
883
- },
1020
+ }, {
1021
+ "method": "inputValidationChange",
1022
+ "name": "inputValidationChange",
1023
+ "bubbles": true,
1024
+ "cancelable": true,
1025
+ "composed": true,
884
1026
  "docs": {
885
- "text": "Move o foco para o input interno sem expor a \u00E1rvore privada ao componente pai.",
886
1027
  "tags": [{
887
- "name": "internal",
888
- "text": undefined
889
- }]
1028
+ "name": "property",
1029
+ "text": "{boolean|null} valid - Indica se o texto \u00E9 considerado v\u00E1lido (`null` enquanto edi\u00E7\u00E3o)."
1030
+ }, {
1031
+ "name": "property",
1032
+ "text": "{string} message - Mensagem de erro explicativa (vazia quando v\u00E1lido)."
1033
+ }, {
1034
+ "name": "property",
1035
+ "text": "{string} [origin] - Identificador expl\u00EDcito da origem do evento"
1036
+ }],
1037
+ "text": "Emite valida\u00E7\u00E3o do texto digitado sem alterar o valor selecionado.\n\nPayload (`detail`):"
1038
+ },
1039
+ "complexType": {
1040
+ "original": "{ valid: boolean | null; message: string; origin?: string }",
1041
+ "resolved": "{ valid: boolean; message: string; origin?: string; }",
1042
+ "references": {}
890
1043
  }
891
- }
892
- };
1044
+ }];
893
1045
  }
894
1046
  static get elementRef() { return "el"; }
895
1047
  static get watchers() {