@govbr-ds/webcomponents 2.4.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 (584) hide show
  1. package/README.md +2 -2
  2. package/cem/custom-elements.json +371 -199
  3. package/cem/webcomponents.html-custom-data.json +146 -121
  4. package/dist/cjs/br-avatar.cjs.entry.js +2 -2
  5. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +1 -1
  6. package/dist/cjs/br-breadcrumb.cjs.entry.js +2 -2
  7. package/dist/cjs/br-button_2.cjs.entry.js +2 -2
  8. package/dist/cjs/br-card.cjs.entry.js +2 -2
  9. package/dist/cjs/br-carousel-page.cjs.entry.js +1 -1
  10. package/dist/cjs/br-carousel.cjs.entry.js +1 -1
  11. package/dist/cjs/br-checkbox-group.cjs.entry.js +2 -2
  12. package/dist/cjs/br-checkbox.cjs.entry.js +3 -3
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +1 -1
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +3 -3
  15. package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +1 -1
  16. package/dist/cjs/br-cookiebar-group.cjs.entry.js +1 -1
  17. package/dist/cjs/br-cookiebar-header.cjs.entry.js +1 -1
  18. package/dist/cjs/br-cookiebar-link.cjs.entry.js +1 -1
  19. package/dist/cjs/br-cookiebar-note.cjs.entry.js +1 -1
  20. package/dist/cjs/br-cookiebar.cjs.entry.js +2 -2
  21. package/dist/cjs/br-crumb.cjs.entry.js +1 -1
  22. package/dist/cjs/br-date-picker_3.cjs.entry.js +154 -67
  23. package/dist/cjs/br-datetime-picker.cjs.entry.js +5 -5
  24. package/dist/cjs/br-divider.cjs.entry.js +2 -2
  25. package/dist/cjs/br-dropdown_2.cjs.entry.js +40 -16
  26. package/dist/cjs/br-footer-category.cjs.entry.js +2 -2
  27. package/dist/cjs/br-footer-item.cjs.entry.js +1 -1
  28. package/dist/cjs/br-footer-legal.cjs.entry.js +1 -1
  29. package/dist/cjs/br-footer-logo.cjs.entry.js +1 -1
  30. package/dist/cjs/br-footer-social.cjs.entry.js +1 -1
  31. package/dist/cjs/br-footer.cjs.entry.js +3 -3
  32. package/dist/cjs/br-header-function.cjs.entry.js +1 -1
  33. package/dist/cjs/br-header-link.cjs.entry.js +1 -1
  34. package/dist/cjs/br-header-list.cjs.entry.js +1 -1
  35. package/dist/cjs/br-header-logo.cjs.entry.js +1 -1
  36. package/dist/cjs/br-header.cjs.entry.js +1 -1
  37. package/dist/cjs/br-icon.cjs.entry.js +2 -2
  38. package/dist/cjs/br-input.cjs.entry.js +58 -10
  39. package/dist/cjs/br-item.cjs.entry.js +2 -2
  40. package/dist/cjs/br-link.cjs.entry.js +7 -7
  41. package/dist/cjs/br-loading.cjs.entry.js +1 -1
  42. package/dist/cjs/br-magic-button.cjs.entry.js +1 -1
  43. package/dist/cjs/br-menu-group.cjs.entry.js +1 -1
  44. package/dist/cjs/br-menu-header.cjs.entry.js +1 -1
  45. package/dist/cjs/br-menu-info.cjs.entry.js +1 -1
  46. package/dist/cjs/br-menu-item.cjs.entry.js +1 -1
  47. package/dist/cjs/br-menu-link.cjs.entry.js +1 -1
  48. package/dist/cjs/br-menu-logo.cjs.entry.js +1 -1
  49. package/dist/cjs/br-menu.cjs.entry.js +3 -3
  50. package/dist/cjs/br-notification-body.cjs.entry.js +1 -1
  51. package/dist/cjs/br-notification-header.cjs.entry.js +1 -1
  52. package/dist/cjs/br-notification-item.cjs.entry.js +1 -1
  53. package/dist/cjs/br-notification.cjs.entry.js +2 -2
  54. package/dist/cjs/br-pagination.cjs.entry.js +3 -3
  55. package/dist/cjs/br-radio-group.cjs.entry.js +3 -3
  56. package/dist/cjs/br-radio.cjs.entry.js +3 -3
  57. package/dist/cjs/br-scrim.cjs.entry.js +2 -2
  58. package/dist/cjs/br-select-input_3.cjs.entry.js +39 -16
  59. package/dist/cjs/br-sign-in.cjs.entry.js +2 -2
  60. package/dist/cjs/br-skip-link-item.cjs.entry.js +1 -1
  61. package/dist/cjs/br-skip-link.cjs.entry.js +1 -1
  62. package/dist/cjs/br-skiplink-item.cjs.entry.js +1 -1
  63. package/dist/cjs/br-slider.cjs.entry.js +2 -2
  64. package/dist/cjs/br-step_2.cjs.entry.js +4 -4
  65. package/dist/cjs/br-switch.cjs.entry.js +3 -3
  66. package/dist/cjs/br-tab-item.cjs.entry.js +1 -1
  67. package/dist/cjs/br-tab.cjs.entry.js +3 -3
  68. package/dist/cjs/br-table-body.cjs.entry.js +1 -1
  69. package/dist/cjs/br-table-cell.cjs.entry.js +1 -1
  70. package/dist/cjs/br-table-header-cell.cjs.entry.js +1 -1
  71. package/dist/cjs/br-table-header.cjs.entry.js +1 -1
  72. package/dist/cjs/br-table-row.cjs.entry.js +1 -1
  73. package/dist/cjs/br-table.cjs.entry.js +1 -1
  74. package/dist/cjs/br-tag.cjs.entry.js +3 -3
  75. package/dist/cjs/br-textarea.cjs.entry.js +2 -2
  76. package/dist/cjs/br-tooltip.cjs.entry.js +1 -1
  77. package/dist/cjs/br-upload.cjs.entry.js +4 -4
  78. package/dist/cjs/br-wizard-panel.cjs.entry.js +1 -1
  79. package/dist/cjs/br-wizard.cjs.entry.js +1 -1
  80. package/dist/cjs/{datetime-picker-constants-CCeI5iW7.js → datetime-picker-constants-CTf1kVJ1.js} +1 -0
  81. package/dist/cjs/{iconify-icon-DfODV9bf.js → iconify-icon-LjavbM-D.js} +103 -57
  82. package/dist/cjs/{index-C-IpVFDH.js → index-Caoez3xb.js} +64 -16
  83. package/dist/cjs/index.cjs.js +2 -2
  84. package/dist/cjs/{isValid-CduHZTFc.js → isValid-DgJ-noPS.js} +1 -1
  85. package/dist/cjs/loader.cjs.js +1 -1
  86. package/dist/cjs/{slot-DAllytTj.js → slot-CjaqqX7y.js} +1 -1
  87. package/dist/cjs/webcomponents.cjs.js +1 -1
  88. package/dist/collection/components/avatar/avatar.js +21 -21
  89. package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +4 -12
  90. package/dist/collection/components/breadcrumb/breadcrumb.js +32 -27
  91. package/dist/collection/components/breadcrumb/crumb/crumb.js +2 -13
  92. package/dist/collection/components/button/button.js +21 -21
  93. package/dist/collection/components/card/card.js +20 -22
  94. package/dist/collection/components/carousel/carousel-page/carousel-page.js +3 -13
  95. package/dist/collection/components/carousel/carousel.js +23 -30
  96. package/dist/collection/components/checkbox/checkbox.js +18 -24
  97. package/dist/collection/components/checkbox-group/checkbox-group.js +19 -20
  98. package/dist/collection/components/checkgroup/checkgroup.js +2 -14
  99. package/dist/collection/components/collapse/collapse.js +25 -21
  100. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +3 -16
  101. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +3 -16
  102. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +3 -16
  103. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +3 -15
  104. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +3 -14
  105. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +2 -13
  106. package/dist/collection/components/cookiebar/cookiebar.js +32 -27
  107. package/dist/collection/components/datetime-picker/date-picker/date-picker-locale.js +62 -15
  108. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +120 -71
  109. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +3 -13
  110. package/dist/collection/components/datetime-picker/datetime-picker.js +23 -27
  111. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +5 -15
  112. package/dist/collection/components/divider/divider.js +15 -19
  113. package/dist/collection/components/dropdown/dropdown.js +22 -21
  114. package/dist/collection/components/footer/footer-category/footer-category.js +4 -17
  115. package/dist/collection/components/footer/footer-item/footer-item.js +3 -16
  116. package/dist/collection/components/footer/footer-legal/footer-legal.js +2 -16
  117. package/dist/collection/components/footer/footer-logo/footer-logo.js +3 -16
  118. package/dist/collection/components/footer/footer-social/footer-social.js +3 -15
  119. package/dist/collection/components/footer/footer.js +25 -29
  120. package/dist/collection/components/header/header-function/header-function.js +10 -14
  121. package/dist/collection/components/header/header-link/header-link.js +3 -16
  122. package/dist/collection/components/header/header-list/header-list.js +3 -16
  123. package/dist/collection/components/header/header-logo/header-logo.js +3 -16
  124. package/dist/collection/components/header/header.js +30 -27
  125. package/dist/collection/components/icon/icon.js +22 -17
  126. package/dist/collection/components/input/input.css +1 -1
  127. package/dist/collection/components/input/input.js +98 -30
  128. package/dist/collection/components/item/item.js +18 -22
  129. package/dist/collection/components/link/link.js +25 -29
  130. package/dist/collection/components/list/list.js +17 -21
  131. package/dist/collection/components/loading/loading.js +17 -24
  132. package/dist/collection/components/magic-button/magic-button.js +13 -20
  133. package/dist/collection/components/menu/menu-group/menu-group.js +3 -16
  134. package/dist/collection/components/menu/menu-header/menu-header.js +3 -16
  135. package/dist/collection/components/menu/menu-info/menu-info.js +2 -15
  136. package/dist/collection/components/menu/menu-item/menu-item.js +3 -16
  137. package/dist/collection/components/menu/menu-link/menu-link.js +5 -17
  138. package/dist/collection/components/menu/menu-list/menu-list.js +2 -15
  139. package/dist/collection/components/menu/menu-logo/menu-logo.js +2 -15
  140. package/dist/collection/components/menu/menu-social/menu-social.js +2 -15
  141. package/dist/collection/components/menu/menu.js +28 -35
  142. package/dist/collection/components/message/message.js +22 -25
  143. package/dist/collection/components/modal/modal.js +18 -21
  144. package/dist/collection/components/notification/notification-body/notification-body.js +3 -13
  145. package/dist/collection/components/notification/notification-header/notification-header.js +3 -14
  146. package/dist/collection/components/notification/notification-item/notification-item.js +3 -16
  147. package/dist/collection/components/notification/notification.js +20 -29
  148. package/dist/collection/components/pagination/pagination.css +1 -1
  149. package/dist/collection/components/pagination/pagination.js +15 -23
  150. package/dist/collection/components/radio/radio.js +17 -20
  151. package/dist/collection/components/radio-group/radio-group.js +20 -20
  152. package/dist/collection/components/scrim/scrim.js +14 -17
  153. package/dist/collection/components/select/select-input/select-input.css +1 -1
  154. package/dist/collection/components/select/select-input/select-input.js +43 -19
  155. package/dist/collection/components/select/select-list/select-list.css +1 -1
  156. package/dist/collection/components/select/select-list/select-list.js +52 -15
  157. package/dist/collection/components/select/select-option/select-option.js +8 -13
  158. package/dist/collection/components/select/select.css +1 -1
  159. package/dist/collection/components/select/select.js +83 -105
  160. package/dist/collection/components/sign-in/sign-in.js +12 -16
  161. package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +8 -4
  162. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +5 -15
  163. package/dist/collection/components/skip-link/skip-link.js +18 -24
  164. package/dist/collection/components/slider/slider.js +15 -25
  165. package/dist/collection/components/step/step-item/step-item.js +5 -15
  166. package/dist/collection/components/step/step.js +16 -25
  167. package/dist/collection/components/switch/switch.js +16 -20
  168. package/dist/collection/components/tab/tab-item/tab-item.js +5 -15
  169. package/dist/collection/components/tab/tab.js +22 -29
  170. package/dist/collection/components/table/table-body/table-body.js +3 -13
  171. package/dist/collection/components/table/table-cell/table-cell.js +3 -12
  172. package/dist/collection/components/table/table-header/table-header.js +3 -13
  173. package/dist/collection/components/table/table-header-cell/table-header-cell.js +3 -13
  174. package/dist/collection/components/table/table-row/table-row.js +3 -13
  175. package/dist/collection/components/table/table.js +25 -32
  176. package/dist/collection/components/tag/tag.js +17 -26
  177. package/dist/collection/components/textarea/textarea.js +14 -22
  178. package/dist/collection/components/tooltip/tooltip.js +13 -19
  179. package/dist/collection/components/upload/upload.css +1 -1
  180. package/dist/collection/components/upload/upload.js +36 -29
  181. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +3 -13
  182. package/dist/collection/components/wizard/wizard.js +22 -26
  183. package/dist/collection/pages/components/select/remote-options.js +87 -0
  184. package/dist/collection/shared/utils/slot.js +1 -1
  185. package/dist/components/br-avatar.js +1 -1
  186. package/dist/components/br-breadcrumb-item.js +1 -1
  187. package/dist/components/br-breadcrumb.js +1 -1
  188. package/dist/components/br-button.js +1 -1
  189. package/dist/components/br-card.js +1 -1
  190. package/dist/components/br-carousel-page.js +1 -1
  191. package/dist/components/br-carousel.js +1 -1
  192. package/dist/components/br-checkbox-group.js +1 -1
  193. package/dist/components/br-checkbox.js +1 -1
  194. package/dist/components/br-checkgroup.js +1 -1
  195. package/dist/components/br-collapse.js +1 -1
  196. package/dist/components/br-cookiebar-cookie.js +1 -1
  197. package/dist/components/br-cookiebar-group.js +1 -1
  198. package/dist/components/br-cookiebar-header.js +1 -1
  199. package/dist/components/br-cookiebar-link.js +1 -1
  200. package/dist/components/br-cookiebar-note-group.js +1 -1
  201. package/dist/components/br-cookiebar-note.js +1 -1
  202. package/dist/components/br-cookiebar.js +1 -1
  203. package/dist/components/br-crumb.js +1 -1
  204. package/dist/components/br-date-picker.js +1 -1
  205. package/dist/components/br-datetime-input.js +1 -1
  206. package/dist/components/br-datetime-picker.js +1 -1
  207. package/dist/components/br-divider.js +1 -1
  208. package/dist/components/br-dropdown.js +1 -1
  209. package/dist/components/br-footer-category.js +1 -1
  210. package/dist/components/br-footer-item.js +1 -1
  211. package/dist/components/br-footer-legal.js +1 -1
  212. package/dist/components/br-footer-logo.js +1 -1
  213. package/dist/components/br-footer-social.js +1 -1
  214. package/dist/components/br-footer.js +1 -1
  215. package/dist/components/br-header-function.js +1 -1
  216. package/dist/components/br-header-link.js +1 -1
  217. package/dist/components/br-header-list.js +1 -1
  218. package/dist/components/br-header-logo.js +1 -1
  219. package/dist/components/br-header.js +1 -1
  220. package/dist/components/br-icon.js +1 -1
  221. package/dist/components/br-input.js +1 -1
  222. package/dist/components/br-item.js +1 -1
  223. package/dist/components/br-link.js +1 -1
  224. package/dist/components/br-list.js +1 -1
  225. package/dist/components/br-loading.js +1 -1
  226. package/dist/components/br-magic-button.js +1 -1
  227. package/dist/components/br-menu-group.js +1 -1
  228. package/dist/components/br-menu-header.js +1 -1
  229. package/dist/components/br-menu-info.js +1 -1
  230. package/dist/components/br-menu-item.js +1 -1
  231. package/dist/components/br-menu-link.js +1 -1
  232. package/dist/components/br-menu-list.js +1 -1
  233. package/dist/components/br-menu-logo.js +1 -1
  234. package/dist/components/br-menu-social.js +1 -1
  235. package/dist/components/br-menu.js +1 -1
  236. package/dist/components/br-message.js +1 -1
  237. package/dist/components/br-modal.js +1 -1
  238. package/dist/components/br-notification-body.js +1 -1
  239. package/dist/components/br-notification-header.js +1 -1
  240. package/dist/components/br-notification-item.js +1 -1
  241. package/dist/components/br-notification.js +1 -1
  242. package/dist/components/br-pagination.js +1 -1
  243. package/dist/components/br-radio-group.js +1 -1
  244. package/dist/components/br-radio.js +1 -1
  245. package/dist/components/br-scrim.js +1 -1
  246. package/dist/components/br-select-input.js +1 -1
  247. package/dist/components/br-select-list.js +1 -1
  248. package/dist/components/br-select-option.js +1 -1
  249. package/dist/components/br-select.js +1 -1
  250. package/dist/components/br-sign-in.js +1 -1
  251. package/dist/components/br-skip-link-item.js +1 -1
  252. package/dist/components/br-skip-link.js +1 -1
  253. package/dist/components/br-skiplink-item.js +1 -1
  254. package/dist/components/br-slider.js +1 -1
  255. package/dist/components/br-step-item.js +1 -1
  256. package/dist/components/br-step.js +1 -1
  257. package/dist/components/br-switch.js +1 -1
  258. package/dist/components/br-tab-item.js +1 -1
  259. package/dist/components/br-tab.js +1 -1
  260. package/dist/components/br-table-body.js +1 -1
  261. package/dist/components/br-table-cell.js +1 -1
  262. package/dist/components/br-table-header-cell.js +1 -1
  263. package/dist/components/br-table-header.js +1 -1
  264. package/dist/components/br-table-row.js +1 -1
  265. package/dist/components/br-table.js +1 -1
  266. package/dist/components/br-tag.js +1 -1
  267. package/dist/components/br-textarea.js +1 -1
  268. package/dist/components/br-time-picker.js +1 -1
  269. package/dist/components/br-tooltip.js +1 -1
  270. package/dist/components/br-upload.js +1 -1
  271. package/dist/components/br-wizard-panel.js +1 -1
  272. package/dist/components/br-wizard.js +1 -1
  273. package/dist/components/index.js +1 -1
  274. package/dist/components/{p-jOb1hCPi.js → p-448Z5r2f.js} +1 -1
  275. package/dist/components/{p-DL6xuxGG.js → p-AhfgJCUp.js} +1 -1
  276. package/dist/components/{p-BzQFMh9j.js → p-AoNL6BaW.js} +1 -1
  277. package/dist/components/{p-Devw08cc.js → p-B468MCYC.js} +1 -1
  278. package/dist/components/{p-BH6QYnAr.js → p-B985Ov_x.js} +1 -1
  279. package/dist/components/{p-5h-W9_JR.js → p-BOWQIHQA.js} +1 -1
  280. package/dist/components/{p-Di96UxvH.js → p-BPQrgCRr.js} +1 -1
  281. package/dist/components/{p-CeNELttN.js → p-BwQT0fOJ.js} +1 -1
  282. package/dist/components/{p-CjtmJTLO.js → p-CAgbUwsx.js} +1 -1
  283. package/dist/components/{p-DDu3JV_r.js → p-CFXey8i8.js} +1 -1
  284. package/dist/components/{p-DsO4F0Cz.js → p-CVz_akHx.js} +1 -1
  285. package/dist/components/{p-DFWqyfUe.js → p-CW8xwk6J.js} +1 -1
  286. package/dist/components/p-CYZVdKeO.js +5 -0
  287. package/dist/components/p-C_DC6oQW.js +16 -0
  288. package/dist/components/{p-CCPHCJjw.js → p-CeWbZN7V.js} +1 -1
  289. package/dist/components/p-CyXVsiz9.js +5 -0
  290. package/dist/components/{p-BFHvuEnN.js → p-DDe0tQEO.js} +1 -1
  291. package/dist/components/{p-D-3G3Ioq.js → p-DJKZ8ktB.js} +1 -1
  292. package/dist/components/{p-BicHMcSS.js → p-DRsZ9GNg.js} +1 -1
  293. package/dist/components/p-DU54cqCf.js +5 -0
  294. package/dist/components/p-DVJlmlEX.js +5 -0
  295. package/dist/components/{p-ta-24T1Z.js → p-DcMjwTqu.js} +1 -1
  296. package/dist/components/p-Dd1qCWAK.js +5 -0
  297. package/dist/components/{p-rMnkh3Cy.js → p-Dn36Mj2E.js} +1 -1
  298. package/dist/components/{p-DOX9Uwk1.js → p-DoWy_P8b.js} +1 -1
  299. package/dist/components/{p-Dp3MsSXu.js → p-HbhTnepI.js} +1 -1
  300. package/dist/components/{p-CbgKdASU.js → p-JkJjzmGm.js} +1 -1
  301. package/dist/components/{p-Bvrw9yWR.js → p-Or3FLzbz.js} +1 -1
  302. package/dist/components/{p-PV731d8s.js → p-SWQlgYWR.js} +1 -1
  303. package/dist/components/{p-XW6Hp_Jk.js → p-Zb9nyfTY.js} +1 -1
  304. package/dist/components/{p-OQpiDEK9.js → p-jvKQA6x7.js} +1 -1
  305. package/dist/components/{p-CBHd0-fF.js → p-pQb-3jFY.js} +1 -1
  306. package/dist/components/{p-848QkYoM.js → p-qX6sHxOk.js} +1 -1
  307. package/dist/esm/br-avatar.entry.js +2 -2
  308. package/dist/esm/br-breadcrumb-item.entry.js +1 -1
  309. package/dist/esm/br-breadcrumb.entry.js +2 -2
  310. package/dist/esm/br-button_2.entry.js +2 -2
  311. package/dist/esm/br-card.entry.js +2 -2
  312. package/dist/esm/br-carousel-page.entry.js +1 -1
  313. package/dist/esm/br-carousel.entry.js +1 -1
  314. package/dist/esm/br-checkbox-group.entry.js +2 -2
  315. package/dist/esm/br-checkbox.entry.js +3 -3
  316. package/dist/esm/br-checkgroup.entry.js +1 -1
  317. package/dist/esm/br-collapse_2.entry.js +3 -3
  318. package/dist/esm/br-cookiebar-cookie.entry.js +1 -1
  319. package/dist/esm/br-cookiebar-group.entry.js +1 -1
  320. package/dist/esm/br-cookiebar-header.entry.js +1 -1
  321. package/dist/esm/br-cookiebar-link.entry.js +1 -1
  322. package/dist/esm/br-cookiebar-note.entry.js +1 -1
  323. package/dist/esm/br-cookiebar.entry.js +2 -2
  324. package/dist/esm/br-crumb.entry.js +1 -1
  325. package/dist/esm/br-date-picker_3.entry.js +155 -68
  326. package/dist/esm/br-datetime-picker.entry.js +5 -5
  327. package/dist/esm/br-divider.entry.js +2 -2
  328. package/dist/esm/br-dropdown_2.entry.js +40 -16
  329. package/dist/esm/br-footer-category.entry.js +2 -2
  330. package/dist/esm/br-footer-item.entry.js +1 -1
  331. package/dist/esm/br-footer-legal.entry.js +1 -1
  332. package/dist/esm/br-footer-logo.entry.js +1 -1
  333. package/dist/esm/br-footer-social.entry.js +1 -1
  334. package/dist/esm/br-footer.entry.js +3 -3
  335. package/dist/esm/br-header-function.entry.js +1 -1
  336. package/dist/esm/br-header-link.entry.js +1 -1
  337. package/dist/esm/br-header-list.entry.js +1 -1
  338. package/dist/esm/br-header-logo.entry.js +1 -1
  339. package/dist/esm/br-header.entry.js +1 -1
  340. package/dist/esm/br-icon.entry.js +2 -2
  341. package/dist/esm/br-input.entry.js +59 -11
  342. package/dist/esm/br-item.entry.js +2 -2
  343. package/dist/esm/br-link.entry.js +7 -7
  344. package/dist/esm/br-loading.entry.js +1 -1
  345. package/dist/esm/br-magic-button.entry.js +1 -1
  346. package/dist/esm/br-menu-group.entry.js +1 -1
  347. package/dist/esm/br-menu-header.entry.js +1 -1
  348. package/dist/esm/br-menu-info.entry.js +1 -1
  349. package/dist/esm/br-menu-item.entry.js +1 -1
  350. package/dist/esm/br-menu-link.entry.js +1 -1
  351. package/dist/esm/br-menu-logo.entry.js +1 -1
  352. package/dist/esm/br-menu.entry.js +3 -3
  353. package/dist/esm/br-notification-body.entry.js +1 -1
  354. package/dist/esm/br-notification-header.entry.js +1 -1
  355. package/dist/esm/br-notification-item.entry.js +1 -1
  356. package/dist/esm/br-notification.entry.js +2 -2
  357. package/dist/esm/br-pagination.entry.js +3 -3
  358. package/dist/esm/br-radio-group.entry.js +3 -3
  359. package/dist/esm/br-radio.entry.js +3 -3
  360. package/dist/esm/br-scrim.entry.js +2 -2
  361. package/dist/esm/br-select-input_3.entry.js +39 -16
  362. package/dist/esm/br-sign-in.entry.js +2 -2
  363. package/dist/esm/br-skip-link-item.entry.js +1 -1
  364. package/dist/esm/br-skip-link.entry.js +1 -1
  365. package/dist/esm/br-skiplink-item.entry.js +1 -1
  366. package/dist/esm/br-slider.entry.js +2 -2
  367. package/dist/esm/br-step_2.entry.js +4 -4
  368. package/dist/esm/br-switch.entry.js +3 -3
  369. package/dist/esm/br-tab-item.entry.js +1 -1
  370. package/dist/esm/br-tab.entry.js +3 -3
  371. package/dist/esm/br-table-body.entry.js +1 -1
  372. package/dist/esm/br-table-cell.entry.js +1 -1
  373. package/dist/esm/br-table-header-cell.entry.js +1 -1
  374. package/dist/esm/br-table-header.entry.js +1 -1
  375. package/dist/esm/br-table-row.entry.js +1 -1
  376. package/dist/esm/br-table.entry.js +1 -1
  377. package/dist/esm/br-tag.entry.js +3 -3
  378. package/dist/esm/br-textarea.entry.js +2 -2
  379. package/dist/esm/br-tooltip.entry.js +1 -1
  380. package/dist/esm/br-upload.entry.js +4 -4
  381. package/dist/esm/br-wizard-panel.entry.js +1 -1
  382. package/dist/esm/br-wizard.entry.js +1 -1
  383. package/dist/esm/{datetime-picker-constants-DDc4sADe.js → datetime-picker-constants-1l4_-FEJ.js} +1 -1
  384. package/dist/esm/{iconify-icon-D3usVJE2.js → iconify-icon-C_DC6oQW.js} +103 -57
  385. package/dist/esm/{index-CytVKoHT.js → index-BQRBKuY0.js} +64 -17
  386. package/dist/esm/index.js +2 -2
  387. package/dist/esm/{isValid-Bee0Uvqc.js → isValid-wU7S6MI2.js} +1 -1
  388. package/dist/esm/loader.js +1 -1
  389. package/dist/esm/{slot-BIG-yees.js → slot-Bt01zQ7-.js} +1 -1
  390. package/dist/esm/webcomponents.js +1 -1
  391. package/dist/hydrate/index.js +1452 -1876
  392. package/dist/hydrate/index.mjs +1452 -1876
  393. package/dist/types/components/avatar/avatar.d.ts +20 -20
  394. package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +3 -11
  395. package/dist/types/components/breadcrumb/breadcrumb.d.ts +30 -25
  396. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +1 -12
  397. package/dist/types/components/button/button.d.ts +20 -20
  398. package/dist/types/components/card/card.d.ts +19 -21
  399. package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +2 -12
  400. package/dist/types/components/carousel/carousel.d.ts +22 -29
  401. package/dist/types/components/checkbox/checkbox.d.ts +16 -22
  402. package/dist/types/components/checkbox-group/checkbox-group.d.ts +17 -18
  403. package/dist/types/components/checkgroup/checkgroup.d.ts +1 -13
  404. package/dist/types/components/collapse/collapse.d.ts +24 -20
  405. package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +2 -15
  406. package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +2 -15
  407. package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +2 -15
  408. package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +2 -14
  409. package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +2 -13
  410. package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +2 -13
  411. package/dist/types/components/cookiebar/cookiebar.d.ts +30 -25
  412. package/dist/types/components/datetime-picker/date-picker/date-picker-locale.d.ts +12 -4
  413. package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +57 -11
  414. package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +2 -12
  415. package/dist/types/components/datetime-picker/datetime-picker.d.ts +22 -26
  416. package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +3 -13
  417. package/dist/types/components/divider/divider.d.ts +14 -18
  418. package/dist/types/components/dropdown/dropdown.d.ts +21 -20
  419. package/dist/types/components/footer/footer-category/footer-category.d.ts +2 -15
  420. package/dist/types/components/footer/footer-item/footer-item.d.ts +2 -15
  421. package/dist/types/components/footer/footer-legal/footer-legal.d.ts +1 -15
  422. package/dist/types/components/footer/footer-logo/footer-logo.d.ts +2 -15
  423. package/dist/types/components/footer/footer-social/footer-social.d.ts +2 -14
  424. package/dist/types/components/footer/footer.d.ts +23 -27
  425. package/dist/types/components/header/header-function/header-function.d.ts +9 -13
  426. package/dist/types/components/header/header-link/header-link.d.ts +2 -15
  427. package/dist/types/components/header/header-list/header-list.d.ts +2 -15
  428. package/dist/types/components/header/header-logo/header-logo.d.ts +2 -15
  429. package/dist/types/components/header/header.d.ts +29 -26
  430. package/dist/types/components/icon/icon.d.ts +21 -16
  431. package/dist/types/components/input/input.d.ts +39 -22
  432. package/dist/types/components/item/item.d.ts +17 -21
  433. package/dist/types/components/link/link.d.ts +18 -22
  434. package/dist/types/components/list/list.d.ts +16 -20
  435. package/dist/types/components/loading/loading.d.ts +16 -23
  436. package/dist/types/components/magic-button/magic-button.d.ts +12 -19
  437. package/dist/types/components/menu/menu-group/menu-group.d.ts +2 -15
  438. package/dist/types/components/menu/menu-header/menu-header.d.ts +2 -15
  439. package/dist/types/components/menu/menu-info/menu-info.d.ts +1 -14
  440. package/dist/types/components/menu/menu-item/menu-item.d.ts +2 -15
  441. package/dist/types/components/menu/menu-link/menu-link.d.ts +4 -16
  442. package/dist/types/components/menu/menu-list/menu-list.d.ts +2 -15
  443. package/dist/types/components/menu/menu-logo/menu-logo.d.ts +1 -14
  444. package/dist/types/components/menu/menu-social/menu-social.d.ts +2 -15
  445. package/dist/types/components/menu/menu.d.ts +25 -32
  446. package/dist/types/components/message/message.d.ts +21 -24
  447. package/dist/types/components/modal/modal.d.ts +18 -21
  448. package/dist/types/components/notification/notification-body/notification-body.d.ts +2 -12
  449. package/dist/types/components/notification/notification-header/notification-header.d.ts +2 -13
  450. package/dist/types/components/notification/notification-item/notification-item.d.ts +2 -15
  451. package/dist/types/components/notification/notification.d.ts +18 -27
  452. package/dist/types/components/pagination/pagination.d.ts +13 -21
  453. package/dist/types/components/radio/radio.d.ts +15 -18
  454. package/dist/types/components/radio-group/radio-group.d.ts +18 -18
  455. package/dist/types/components/scrim/scrim.d.ts +12 -15
  456. package/dist/types/components/select/select-input/select-input.d.ts +11 -10
  457. package/dist/types/components/select/select-list/select-list.d.ts +13 -12
  458. package/dist/types/components/select/select-option/select-option.d.ts +5 -10
  459. package/dist/types/components/select/select.d.ts +42 -94
  460. package/dist/types/components/sign-in/sign-in.d.ts +11 -15
  461. package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +7 -3
  462. package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +4 -14
  463. package/dist/types/components/skip-link/skip-link.d.ts +17 -23
  464. package/dist/types/components/slider/slider.d.ts +14 -24
  465. package/dist/types/components/step/step-item/step-item.d.ts +2 -12
  466. package/dist/types/components/step/step.d.ts +15 -24
  467. package/dist/types/components/switch/switch.d.ts +14 -18
  468. package/dist/types/components/tab/tab-item/tab-item.d.ts +4 -14
  469. package/dist/types/components/tab/tab.d.ts +19 -26
  470. package/dist/types/components/table/table-body/table-body.d.ts +2 -12
  471. package/dist/types/components/table/table-cell/table-cell.d.ts +2 -11
  472. package/dist/types/components/table/table-header/table-header.d.ts +2 -12
  473. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +2 -12
  474. package/dist/types/components/table/table-row/table-row.d.ts +2 -12
  475. package/dist/types/components/table/table.d.ts +24 -31
  476. package/dist/types/components/tag/tag.d.ts +15 -24
  477. package/dist/types/components/textarea/textarea.d.ts +13 -21
  478. package/dist/types/components/tooltip/tooltip.d.ts +12 -18
  479. package/dist/types/components/upload/upload.d.ts +20 -27
  480. package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +2 -12
  481. package/dist/types/components/wizard/wizard.d.ts +21 -25
  482. package/dist/types/components.d.ts +3384 -4947
  483. package/dist/webcomponents/index.esm.js +1 -1
  484. package/dist/webcomponents/{p-08ac6f09.entry.js → p-031a2256.entry.js} +1 -1
  485. package/dist/webcomponents/{p-23a5cfd7.entry.js → p-0602e5b1.entry.js} +1 -1
  486. package/dist/webcomponents/p-079d5f69.entry.js +5 -0
  487. package/dist/webcomponents/{p-0fc112fc.entry.js → p-087ed5e7.entry.js} +1 -1
  488. package/dist/webcomponents/{p-7ee564a1.entry.js → p-0d5a9ebf.entry.js} +1 -1
  489. package/dist/webcomponents/{p-a038be16.entry.js → p-105b4d06.entry.js} +1 -1
  490. package/dist/webcomponents/{p-6a293be8.entry.js → p-11d4edc5.entry.js} +1 -1
  491. package/dist/webcomponents/{p-31a4694a.entry.js → p-12dd22af.entry.js} +1 -1
  492. package/dist/webcomponents/{p-b07bfdc5.entry.js → p-14aedf0d.entry.js} +1 -1
  493. package/dist/webcomponents/{p-1ba60d13.entry.js → p-152482f9.entry.js} +1 -1
  494. package/dist/webcomponents/{p-09c79c1d.entry.js → p-19b4b1b7.entry.js} +1 -1
  495. package/dist/webcomponents/{p-b0124459.entry.js → p-1cd1126e.entry.js} +1 -1
  496. package/dist/webcomponents/{p-DDc4sADe.js → p-1l4_-FEJ.js} +1 -1
  497. package/dist/webcomponents/{p-18cf093a.entry.js → p-21e10074.entry.js} +1 -1
  498. package/dist/webcomponents/{p-47c490ef.entry.js → p-2271ea84.entry.js} +1 -1
  499. package/dist/webcomponents/{p-c717c745.entry.js → p-271b1ede.entry.js} +1 -1
  500. package/dist/webcomponents/{p-b66ab52d.entry.js → p-28f732fc.entry.js} +1 -1
  501. package/dist/webcomponents/{p-b5d25332.entry.js → p-2971d38a.entry.js} +1 -1
  502. package/dist/webcomponents/{p-b063c12f.entry.js → p-2ac48875.entry.js} +1 -1
  503. package/dist/webcomponents/{p-609cf652.entry.js → p-2b1a919c.entry.js} +1 -1
  504. package/dist/webcomponents/{p-05b459f2.entry.js → p-2da57966.entry.js} +1 -1
  505. package/dist/webcomponents/{p-eb94199d.entry.js → p-2e81b0b3.entry.js} +1 -1
  506. package/dist/webcomponents/p-2eececed.entry.js +5 -0
  507. package/dist/webcomponents/{p-f99d8c9c.entry.js → p-2f904c4a.entry.js} +1 -1
  508. package/dist/webcomponents/p-32414f1c.entry.js +5 -0
  509. package/dist/webcomponents/{p-5a7c2031.entry.js → p-324afbce.entry.js} +1 -1
  510. package/dist/webcomponents/{p-a89b684d.entry.js → p-330ec8ab.entry.js} +1 -1
  511. package/dist/webcomponents/{p-37914e63.entry.js → p-374f83b1.entry.js} +1 -1
  512. package/dist/webcomponents/{p-d08b6266.entry.js → p-3926cc91.entry.js} +1 -1
  513. package/dist/webcomponents/{p-745213f7.entry.js → p-39a7826d.entry.js} +1 -1
  514. package/dist/webcomponents/{p-8aa6f07c.entry.js → p-3bcc2c58.entry.js} +1 -1
  515. package/dist/webcomponents/{p-67605757.entry.js → p-3c7ce0e4.entry.js} +1 -1
  516. package/dist/webcomponents/{p-473561f2.entry.js → p-467842ca.entry.js} +1 -1
  517. package/dist/webcomponents/p-53550e8c.entry.js +5 -0
  518. package/dist/webcomponents/p-53e71a8a.entry.js +5 -0
  519. package/dist/webcomponents/{p-198aa844.entry.js → p-5528b466.entry.js} +1 -1
  520. package/dist/webcomponents/{p-a32d17cb.entry.js → p-55e0822d.entry.js} +1 -1
  521. package/dist/webcomponents/{p-01801ac1.entry.js → p-58bacbe1.entry.js} +1 -1
  522. package/dist/webcomponents/{p-a46f068e.entry.js → p-621f0fa8.entry.js} +1 -1
  523. package/dist/webcomponents/{p-821341dc.entry.js → p-6514a75d.entry.js} +1 -1
  524. package/dist/webcomponents/{p-dc23cb2e.entry.js → p-678b43a6.entry.js} +1 -1
  525. package/dist/webcomponents/p-6b6be415.entry.js +5 -0
  526. package/dist/webcomponents/{p-ac68355e.entry.js → p-6d58ab4f.entry.js} +1 -1
  527. package/dist/webcomponents/{p-fdcb54a3.entry.js → p-6ff9b26e.entry.js} +1 -1
  528. package/dist/webcomponents/{p-e241caf3.entry.js → p-84dfbfdd.entry.js} +1 -1
  529. package/dist/webcomponents/{p-6f1a4fbe.entry.js → p-85c8d060.entry.js} +1 -1
  530. package/dist/webcomponents/{p-3b0dd0ff.entry.js → p-913d6f28.entry.js} +1 -1
  531. package/dist/webcomponents/{p-fed02286.entry.js → p-975ea5c7.entry.js} +1 -1
  532. package/dist/webcomponents/{p-15022ab7.entry.js → p-992167bc.entry.js} +1 -1
  533. package/dist/webcomponents/p-C_DC6oQW.js +16 -0
  534. package/dist/webcomponents/{p-fOJu6uZR.js → p-CpE_G6IZ.js} +1 -1
  535. package/dist/webcomponents/p-DnwERaeQ.js +5 -0
  536. package/dist/webcomponents/{p-1bb96641.entry.js → p-a21872bf.entry.js} +1 -1
  537. package/dist/webcomponents/{p-db309a11.entry.js → p-a9f16a65.entry.js} +1 -1
  538. package/dist/webcomponents/{p-7fda8b89.entry.js → p-bbcde1ea.entry.js} +1 -1
  539. package/dist/webcomponents/{p-42b60169.entry.js → p-bbf47e78.entry.js} +1 -1
  540. package/dist/webcomponents/{p-42c9c6c5.entry.js → p-bf35e506.entry.js} +1 -1
  541. package/dist/webcomponents/{p-9e0324a7.entry.js → p-c09af3cd.entry.js} +1 -1
  542. package/dist/webcomponents/{p-794b701b.entry.js → p-c29268b5.entry.js} +1 -1
  543. package/dist/webcomponents/{p-7352d459.entry.js → p-c3e61c39.entry.js} +1 -1
  544. package/dist/webcomponents/{p-fb76b1e0.entry.js → p-c6b2545a.entry.js} +1 -1
  545. package/dist/webcomponents/{p-b55425b7.entry.js → p-c6f2f17b.entry.js} +1 -1
  546. package/dist/webcomponents/{p-95f3c44a.entry.js → p-cae39e13.entry.js} +1 -1
  547. package/dist/webcomponents/{p-8116ee93.entry.js → p-cb1e08b1.entry.js} +1 -1
  548. package/dist/webcomponents/{p-dacb7e2c.entry.js → p-cb690a87.entry.js} +1 -1
  549. package/dist/webcomponents/{p-8ddf3ce3.entry.js → p-d0be7243.entry.js} +1 -1
  550. package/dist/webcomponents/{p-3658adcf.entry.js → p-d191c6e3.entry.js} +1 -1
  551. package/dist/webcomponents/{p-2c8595d3.entry.js → p-d205f3fd.entry.js} +1 -1
  552. package/dist/webcomponents/{p-4b01c60f.entry.js → p-d3bd2c40.entry.js} +1 -1
  553. package/dist/webcomponents/{p-af888d13.entry.js → p-dbeea64e.entry.js} +1 -1
  554. package/dist/webcomponents/{p-d6165aa0.entry.js → p-df475129.entry.js} +1 -1
  555. package/dist/webcomponents/{p-67774920.entry.js → p-e0ccf189.entry.js} +1 -1
  556. package/dist/webcomponents/p-e121429a.entry.js +5 -0
  557. package/dist/webcomponents/{p-96dbb585.entry.js → p-e4b968b5.entry.js} +1 -1
  558. package/dist/webcomponents/{p-67d62559.entry.js → p-e6c6f305.entry.js} +1 -1
  559. package/dist/webcomponents/{p-13babfc4.entry.js → p-e8291be2.entry.js} +1 -1
  560. package/dist/webcomponents/{p-614683d9.entry.js → p-eb5806c7.entry.js} +1 -1
  561. package/dist/webcomponents/{p-20477061.entry.js → p-ed3fa8ec.entry.js} +1 -1
  562. package/dist/webcomponents/{p-21feda62.entry.js → p-f9084f16.entry.js} +1 -1
  563. package/dist/webcomponents/{p-695dbeb0.entry.js → p-fad3aa61.entry.js} +1 -1
  564. package/dist/webcomponents/webcomponents.esm.js +1 -1
  565. package/package.json +1 -1
  566. package/dist/collection/pages/components/select/remote.js +0 -33
  567. package/dist/collection/pages/components/select/virtualized.js +0 -13
  568. package/dist/components/p-BcW8O6h2.js +0 -5
  569. package/dist/components/p-Bs7iRQTG.js +0 -5
  570. package/dist/components/p-D3usVJE2.js +0 -16
  571. package/dist/components/p-DUq7uT2-.js +0 -5
  572. package/dist/components/p-DuLHFTpa.js +0 -5
  573. package/dist/components/p-DusornQ0.js +0 -5
  574. package/dist/webcomponents/p-09817344.entry.js +0 -5
  575. package/dist/webcomponents/p-172d42c2.entry.js +0 -5
  576. package/dist/webcomponents/p-9815ab95.entry.js +0 -5
  577. package/dist/webcomponents/p-CJipT0in.js +0 -5
  578. package/dist/webcomponents/p-D3usVJE2.js +0 -16
  579. package/dist/webcomponents/p-b609b464.entry.js +0 -5
  580. package/dist/webcomponents/p-ce3d689c.entry.js +0 -5
  581. package/dist/webcomponents/p-e7107869.entry.js +0 -5
  582. package/dist/webcomponents/p-f8993ae4.entry.js +0 -5
  583. /package/dist/components/{p-5z6jgH1D.js → p-BNckUhK6.js} +0 -0
  584. /package/dist/webcomponents/{p-BIG-yees.js → p-Bt01zQ7-.js} +0 -0
@@ -2,14 +2,16 @@
2
2
  * Construído por SERPRO
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
- import { Host, h } from "@stencil/core";
5
+ import { Fragment, Host, h } from "@stencil/core";
6
6
  import { addDays } from "date-fns/addDays";
7
7
  import { addMonths } from "date-fns/addMonths";
8
+ import { addYears } from "date-fns/addYears";
8
9
  import { compareAsc } from "date-fns/compareAsc";
9
10
  import { eachDayOfInterval } from "date-fns/eachDayOfInterval";
10
11
  import { endOfMonth } from "date-fns/endOfMonth";
11
12
  import { endOfWeek } from "date-fns/endOfWeek";
12
13
  import { format } from "date-fns/format";
14
+ import { getDaysInMonth } from "date-fns/getDaysInMonth";
13
15
  import { isAfter } from "date-fns/isAfter";
14
16
  import { isBefore } from "date-fns/isBefore";
15
17
  import { isSameDay } from "date-fns/isSameDay";
@@ -24,22 +26,30 @@ import { toDate } from "date-fns/toDate";
24
26
  import { dispatchNativeFormEvent } from "../../../shared/utils/event";
25
27
  import { resolveSsrLocalDate } from "../../../shared/utils/ssr-date";
26
28
  import { DATETIME_PICKER_LOCALE, NAVIGATION_ACTION } from "../datetime-picker-constants";
27
- import { getMonthLabels, getWeekdayLabels, resolveDateFnsLocale } from "./date-picker-locale";
29
+ import { getMonthLabels, getWeekdayFullNames, getWeekdayLabels, resolveDateFnsLocale } from "./date-picker-locale";
28
30
  import { normalizeLocale, normalizeWeekStartsOn } from "./date-picker-props-validation";
31
+ /** Formato da chave local de dia usada em `data-date` e nas buscas de datas bloqueadas. */
32
+ const DAY_KEY_FORMAT = 'yyyy-MM-dd';
29
33
  /**
30
- * O `br-date-picker` é o subcomponente de calendário do `br-datetime-picker`, responsável pela seleção visual de uma data ou de um intervalo.
34
+ * Calendário usado pelo `br-datetime-picker`. Também pode ser usado sozinho, quando a tela precisa de um calendário sempre visível.
31
35
  *
32
- * ### Papel na composição
36
+ * Usado sozinho, ele não tem campo de texto nem participa de formulário: a aplicação lê a seleção e cuida da validação.
33
37
  *
34
- * Exibe a grade mensal, a navegação entre meses e anos e os estados de seleção e bloqueio dos dias. `referenceDate` determina o período exibido, enquanto `value` e os limites do intervalo representam a seleção.
38
+ * ```html
39
+ * <br-date-picker id="agenda"></br-date-picker>
40
+ * ```
35
41
  *
36
- * ### Regra de uso e relacionamento
42
+ * ```js
43
+ * const calendario = document.querySelector('#agenda');
44
+ * calendario.addEventListener('change', () => console.log(calendario.value));
45
+ * ```
37
46
  *
38
- * O `br-datetime-picker` instancia e configura este calendário internamente nos modos `date` e `datetime`, recebendo suas alterações pelo evento `dateStateChange`. Não declare o calendário em um slot do pai.
47
+ * - `value`: data selecionada (`Date`).
48
+ * - `referenceDate`: mês exibido.
49
+ * - `disabledDates`: datas que não podem ser escolhidas.
50
+ * - `selectionMode="range"`: seleção de intervalo, lida em `rangeValue`.
39
51
  *
40
- * Use diretamente quando precisar de um calendário embutido e permanentemente visível. Nesse caso, a aplicação deve coordenar valores e eventos e implementar a integração com formulários e a validação do fluxo completo. O calendário isolado não fornece o campo textual, o seletor de horários nem a associação ao formulário do orquestrador.
41
- *
42
- * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/date-picker?tab=designer).
52
+ * Para mudar o idioma, veja "Idiomas" na documentação do `br-datetime-picker`.
43
53
  *
44
54
  * @part container - Parte para o container base do calendário.
45
55
  * @part header - Cabeçalho do calendário (contendo navegação e seleção de mês/ano).
@@ -116,6 +126,11 @@ export class DatePicker {
116
126
  * @internal
117
127
  */
118
128
  this.shouldFocusDate = false;
129
+ /**
130
+ * Chaves `yyyy-MM-dd` das datas bloqueadas, para consulta O(1) por célula.
131
+ * @internal
132
+ */
133
+ this.disabledDateKeysCache = new Set();
119
134
  /**
120
135
  * Handler de mudança do seletor de mês.
121
136
  * @param event - evento de mudança do `<select>`
@@ -131,8 +146,7 @@ export class DatePicker {
131
146
  console.warn(`Índice de mês inválido selecionado: ${select.value}`);
132
147
  return;
133
148
  }
134
- const date = set(this.baseDate, { month: monthIndex, date: 1 });
135
- this.emitDateStateChange(date);
149
+ this.navigateToMonth(set(this.baseDate, { month: monthIndex, date: 1 }));
136
150
  };
137
151
  /**
138
152
  * Trata cliques nos botões de navegação do calendário.
@@ -178,11 +192,7 @@ export class DatePicker {
178
192
  console.warn(`Ano inválido digitado: ${input.value}`);
179
193
  return;
180
194
  }
181
- const date = set(this.baseDate, { year, month: this.baseDate.getMonth(), date: 1 });
182
- const range = this.selectionMode === 'range' && this.rangeStart !== null && this.rangeEnd !== null
183
- ? { start: this.rangeStart, end: this.rangeEnd }
184
- : undefined;
185
- this.emitDateStateChange(date, this.value, range);
195
+ this.navigateToMonth(set(this.baseDate, { year, month: this.baseDate.getMonth(), date: 1 }));
186
196
  };
187
197
  /**
188
198
  * Trata cliques com um handler compartilhado, lendo a data local da célula.
@@ -195,7 +205,7 @@ export class DatePicker {
195
205
  console.warn('Célula de dia clicada sem data-date definido');
196
206
  return;
197
207
  }
198
- const date = parse(cell.dataset.date, 'yyyy-MM-dd', this.baseDate);
208
+ const date = parse(cell.dataset.date, DAY_KEY_FORMAT, this.baseDate);
199
209
  if (Number.isNaN(date.getTime())) {
200
210
  console.warn(`Data inválida na célula de dia: ${cell.dataset.date}`);
201
211
  return;
@@ -204,7 +214,10 @@ export class DatePicker {
204
214
  };
205
215
  /**
206
216
  * Gerencia navegação por teclado dentro da grade de dias.
207
- * Teclas suportadas: ArrowLeft/Right/Up/Down, PageUp/PageDown, Home/End, Enter/Space.
217
+ * Teclas suportadas: ArrowLeft/Right/Up/Down, PageUp/PageDown (mês), Shift+PageUp/PageDown (ano),
218
+ * Home/End, Enter/Space.
219
+ *
220
+ * Permanece ativo em datas bloqueadas para que o foco não fique preso nelas; somente a seleção é ignorada.
208
221
  * @param event - evento de teclado
209
222
  * @returns void
210
223
  * @internal
@@ -234,7 +247,7 @@ export class DatePicker {
234
247
  if (targetEl && targetEl.dataset?.date !== undefined) {
235
248
  const dateKey = targetEl.dataset.date;
236
249
  event.preventDefault();
237
- current = parse(dateKey, 'yyyy-MM-dd', new Date());
250
+ current = parse(dateKey, DAY_KEY_FORMAT, new Date());
238
251
  }
239
252
  else {
240
253
  event.preventDefault();
@@ -261,10 +274,10 @@ export class DatePicker {
261
274
  next = addDays(current, 7);
262
275
  break;
263
276
  case 'PageUp':
264
- next = addMonths(current, -1);
277
+ next = event.shiftKey ? addYears(current, -1) : addMonths(current, -1);
265
278
  break;
266
279
  case 'PageDown':
267
- next = addMonths(current, 1);
280
+ next = event.shiftKey ? addYears(current, 1) : addMonths(current, 1);
268
281
  break;
269
282
  case 'Home':
270
283
  next = startOfWeek(current, { weekStartsOn: this.weekStartsOn });
@@ -297,10 +310,12 @@ export class DatePicker {
297
310
  /**
298
311
  * Observador para a prop `value` — atualiza `focusedDate` quando a seleção externa muda.
299
312
  * @param {Date | null} newValue - novo valor de seleção (ou `null`)
313
+ * @param {Date | null} oldValue - valor anterior da seleção
300
314
  * @internal
301
315
  */
302
- handleValueChange(newValue) {
303
- if (newValue !== null) {
316
+ handleValueChange(newValue, oldValue) {
317
+ // Reatribuições com o mesmo instante (ex.: navegação entre meses) não devem mover o foco.
318
+ if (newValue !== null && newValue.getTime() !== oldValue?.getTime()) {
304
319
  this.focusedDate = toDate(newValue);
305
320
  }
306
321
  }
@@ -341,7 +356,7 @@ export class DatePicker {
341
356
  return;
342
357
  this.shouldFocusDate = false;
343
358
  const normalizedDate = this.getNormalizedFocusedDate();
344
- const dateKey = format(normalizedDate, 'yyyy-MM-dd');
359
+ const dateKey = format(normalizedDate, DAY_KEY_FORMAT);
345
360
  const cell = this.el.shadowRoot?.querySelector(`[data-date="${dateKey}"]`);
346
361
  cell?.focus();
347
362
  }
@@ -461,11 +476,7 @@ export class DatePicker {
461
476
  if (this.disabled) {
462
477
  return;
463
478
  }
464
- const date = set(subMonths(this.baseDate, 1), { date: 1 });
465
- const range = this.selectionMode === 'range' && this.rangeStart !== null && this.rangeEnd !== null
466
- ? { start: this.rangeStart, end: this.rangeEnd }
467
- : undefined;
468
- this.emitDateStateChange(date, this.value, range);
479
+ this.navigateToMonth(set(subMonths(this.baseDate, 1), { date: 1 }));
469
480
  }
470
481
  /**
471
482
  * Incrementa o mês exibido e preserva seleção/intervalo quando aplicável.
@@ -475,11 +486,28 @@ export class DatePicker {
475
486
  if (this.disabled) {
476
487
  return;
477
488
  }
478
- const date = set(addMonths(this.baseDate, 1), { date: 1 });
489
+ this.navigateToMonth(set(addMonths(this.baseDate, 1), { date: 1 }));
490
+ }
491
+ /**
492
+ * Exibe o mês informado preservando a seleção, o intervalo completo e o dia em foco.
493
+ *
494
+ * O foco vai para a data selecionada quando ela pertence ao novo mês; caso
495
+ * contrário, mantém o mesmo dia do mês, limitado ao último dia disponível
496
+ * (ex.: 31/01 → 28/02).
497
+ *
498
+ * @param monthDate - primeiro dia do mês de destino
499
+ * @internal
500
+ */
501
+ navigateToMonth(monthDate) {
502
+ const value = this.value;
503
+ this.focusedDate =
504
+ value !== null && isSameMonth(value, monthDate)
505
+ ? value
506
+ : set(monthDate, { date: Math.min(this.focusedDate.getDate(), getDaysInMonth(monthDate)) });
479
507
  const range = this.selectionMode === 'range' && this.rangeStart !== null && this.rangeEnd !== null
480
508
  ? { start: this.rangeStart, end: this.rangeEnd }
481
509
  : undefined;
482
- this.emitDateStateChange(date, this.value, range);
510
+ this.emitDateStateChange(monthDate, value, range);
483
511
  }
484
512
  /**
485
513
  * Verifica se uma data está indisponível para seleção.
@@ -488,7 +516,22 @@ export class DatePicker {
488
516
  * @internal
489
517
  */
490
518
  isDateDisabled(date) {
491
- return this.disabledDates.some((disabledDate) => isSameDay(disabledDate, date));
519
+ return this.disabledDateKeys.has(format(date, DAY_KEY_FORMAT));
520
+ }
521
+ /**
522
+ * Chaves locais das datas bloqueadas, recalculadas somente quando `disabledDates` é substituída.
523
+ * Entradas inválidas são ignoradas.
524
+ * @internal
525
+ */
526
+ get disabledDateKeys() {
527
+ if (this.disabledDateKeysSource !== this.disabledDates) {
528
+ this.disabledDateKeysSource = this.disabledDates;
529
+ this.disabledDateKeysCache = new Set((this.disabledDates ?? [])
530
+ .map((disabledDate) => toDate(disabledDate))
531
+ .filter((disabledDate) => !Number.isNaN(disabledDate.getTime()))
532
+ .map((disabledDate) => format(disabledDate, DAY_KEY_FORMAT)));
533
+ }
534
+ return this.disabledDateKeysCache;
492
535
  }
493
536
  /**
494
537
  * Data base usada para todos os cálculos de calendário.
@@ -510,25 +553,19 @@ export class DatePicker {
510
553
  /**
511
554
  * Constrói o rótulo acessível da célula de dia, incluindo estado (selecionado/início/fim).
512
555
  * @param date - dia representado pela célula
556
+ * @param state - estado já calculado da célula
513
557
  * @returns string para `aria-label`
514
558
  * @internal
515
559
  */
516
- getDayCellAriaLabel(date) {
560
+ getDayCellAriaLabel(date, state) {
517
561
  const fullDate = format(date, "d 'de' MMMM 'de' yyyy", { locale: this.dateFnsLocale });
518
- const isSelected = this.selectionMode === 'single' && this.value !== null && isSameDay(date, this.value);
519
- const isRangeStart = this.selectionMode === 'range' && this.rangeStart !== null && isSameDay(date, this.rangeStart);
520
- const isRangeEnd = this.selectionMode === 'range' && this.rangeEnd !== null && isSameDay(date, this.rangeEnd);
521
- const isBetween = this.selectionMode === 'range' &&
522
- this.rangeStart !== null &&
523
- this.rangeEnd !== null &&
524
- this.isDateBetweenRange(date, this.rangeStart, this.rangeEnd);
525
- if (isSelected)
562
+ if (state.isSelected)
526
563
  return `${fullDate}, selecionado`;
527
- if (isRangeStart)
564
+ if (state.isRangeStart)
528
565
  return `${fullDate}, início do intervalo`;
529
- if (isRangeEnd)
566
+ if (state.isRangeEnd)
530
567
  return `${fullDate}, fim do intervalo`;
531
- if (isBetween)
568
+ if (state.isInRange)
532
569
  return `${fullDate}, no intervalo selecionado`;
533
570
  return fullDate;
534
571
  }
@@ -540,28 +577,41 @@ export class DatePicker {
540
577
  return resolveDateFnsLocale(this.locale);
541
578
  }
542
579
  /**
543
- * Calcula o mapa de classes CSS da célula do dia.
580
+ * Calcula uma única vez o estado de seleção da célula, compartilhado por classes, ARIA e foco.
544
581
  * @param date - dia da grade
545
582
  * @param today - instante atual compartilhado pela renderização da grade
583
+ * @returns estado da célula
584
+ * @internal
585
+ */
586
+ getDayCellState(date, today) {
587
+ const isRange = this.selectionMode === 'range';
588
+ const { value, rangeStart, rangeEnd } = this;
589
+ return {
590
+ isToday: isSameDay(date, today),
591
+ isOutsideMonth: !isSameMonth(date, this.baseDate),
592
+ isSelected: !isRange && value !== null && isSameDay(date, value),
593
+ isRangeStart: isRange && rangeStart !== null && isSameDay(date, rangeStart),
594
+ isRangeEnd: isRange && rangeEnd !== null && isSameDay(date, rangeEnd),
595
+ isInRange: isRange && rangeStart !== null && rangeEnd !== null && this.isDateBetweenRange(date, rangeStart, rangeEnd),
596
+ };
597
+ }
598
+ /**
599
+ * Calcula o mapa de classes CSS da célula do dia.
600
+ * @param state - estado já calculado da célula
601
+ * @param disabled - indica se a célula está bloqueada
546
602
  * @returns mapa de classes booleanas
547
603
  * @internal
548
604
  */
549
- getDayCssClasses(date, today) {
550
- const selected = this.value;
551
- const rangeStart = this.rangeStart;
552
- const rangeEnd = this.rangeEnd;
553
- const hasRange = rangeStart !== null && rangeEnd !== null;
554
- const isRangeStart = rangeStart !== null && isSameDay(date, rangeStart);
555
- const isRangeEnd = rangeEnd !== null && isSameDay(date, rangeEnd);
556
- const isBetweenRange = hasRange && this.isDateBetweenRange(date, rangeStart, rangeEnd);
605
+ getDayCssClasses(state, disabled) {
557
606
  return {
558
607
  day: true,
559
- 'outside-month': !isSameMonth(date, this.baseDate),
560
- today: isSameDay(date, today),
561
- selected: this.selectionMode === 'single' && selected !== null && isSameDay(date, selected),
562
- 'range-start': this.selectionMode === 'range' && isRangeStart,
563
- 'range-end': this.selectionMode === 'range' && isRangeEnd,
564
- 'in-range': this.selectionMode === 'range' && isBetweenRange,
608
+ 'outside-month': state.isOutsideMonth,
609
+ today: state.isToday,
610
+ selected: state.isSelected,
611
+ 'range-start': state.isRangeStart,
612
+ 'range-end': state.isRangeEnd,
613
+ 'in-range': state.isInRange,
614
+ disabled,
565
615
  };
566
616
  }
567
617
  /**
@@ -705,7 +755,7 @@ export class DatePicker {
705
755
  */
706
756
  renderCalendar() {
707
757
  const monthLabel = format(this.baseDate, "MMMM 'de' yyyy", { locale: this.dateFnsLocale });
708
- return (h("div", { class: "calendar", role: "grid", "aria-label": `Calendário de ${monthLabel}`, part: "calendar" }, this.renderWeekdays(), this.renderMonthGrid()));
758
+ return (h(Fragment, null, h("div", { class: "visually-hidden", "aria-live": "polite" }, monthLabel), h("div", { class: "calendar", role: "grid", "aria-label": `Calendário de ${monthLabel}`, part: "calendar" }, this.renderWeekdays(), this.renderMonthGrid())));
709
759
  }
710
760
  /**
711
761
  * Renderiza os rótulos dos dias da semana.
@@ -714,7 +764,8 @@ export class DatePicker {
714
764
  */
715
765
  renderWeekdays() {
716
766
  const labels = this.getWeekdayLabels();
717
- return (h("div", { class: "weekdays", role: "row", tabIndex: -1, part: "weekdays" }, labels.map((label, index) => (h("div", { key: `weekday-${index}`, class: "weekday", role: "columnheader", tabIndex: -1, "aria-label": label, part: "weekday" }, label)))));
767
+ const fullNames = getWeekdayFullNames(this.locale, this.weekStartsOn);
768
+ return (h("div", { class: "weekdays", role: "row", tabIndex: -1, part: "weekdays" }, labels.map((label, index) => (h("div", { key: `weekday-${index}`, class: "weekday", role: "columnheader", tabIndex: -1, "aria-label": fullNames[index], part: "weekday" }, label)))));
718
769
  }
719
770
  /**
720
771
  * Renderiza a grade de dias do mês atual.
@@ -727,7 +778,7 @@ export class DatePicker {
727
778
  const normalizedFocusedDate = this.getNormalizedFocusedDate(interval);
728
779
  const today = new Date();
729
780
  const weeks = Array.from({ length: Math.ceil(dates.length / 7) }, (_, index) => dates.slice(index * 7, index * 7 + 7));
730
- return (h("div", { class: "monthdays", role: "rowgroup", part: "grid" }, weeks.map((week) => (h("div", { key: `week-${format(week[0], 'yyyy-MM-dd')}`, class: "week", role: "row", tabIndex: -1 }, week.map((date) => this.renderDayCell(date, normalizedFocusedDate, today)))))));
781
+ return (h("div", { class: "monthdays", role: "rowgroup", part: "grid" }, weeks.map((week) => (h("div", { key: `week-${format(week[0], DAY_KEY_FORMAT)}`, class: "week", role: "row", tabIndex: -1 }, week.map((date) => this.renderDayCell(date, normalizedFocusedDate, today)))))));
731
782
  }
732
783
  /**
733
784
  * Renderiza uma célula de dia com estado visual apropriado.
@@ -738,17 +789,15 @@ export class DatePicker {
738
789
  * @internal
739
790
  */
740
791
  renderDayCell(date, normalizedFocusedDate, today) {
741
- const dateKey = format(date, 'yyyy-MM-dd');
742
- const disabled = this.disabled || this.isDateDisabled(date);
743
- const isSelected = this.selectionMode === 'single' && this.value !== null && isSameDay(date, this.value);
744
- const isRangeStart = this.selectionMode === 'range' && this.rangeStart !== null && isSameDay(date, this.rangeStart);
745
- const isRangeEnd = this.selectionMode === 'range' && this.rangeEnd !== null && isSameDay(date, this.rangeEnd);
746
- const isActiveDay = isSelected || isRangeStart || isRangeEnd;
792
+ const dateKey = format(date, DAY_KEY_FORMAT);
793
+ const disabled = this.disabled || this.disabledDateKeys.has(dateKey);
794
+ const state = this.getDayCellState(date, today);
795
+ const isActiveDay = state.isSelected || state.isRangeStart || state.isRangeEnd;
747
796
  const isFocused = isSameDay(date, normalizedFocusedDate);
748
- return (h("div", { key: dateKey, role: "gridcell", tabIndex: this.disabled ? undefined : isFocused ? 0 : -1, "data-date": dateKey, class: { ...this.getDayCssClasses(date, today), disabled }, onClick: disabled ? undefined : this.handleDayCellClick, onKeyDown: disabled ? undefined : this.handleGridKeydown, "aria-label": this.getDayCellAriaLabel(date), "aria-selected": isActiveDay ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, part: "day" }, this.getDayWithLeadingZero(date)));
797
+ return (h("div", { key: dateKey, role: "gridcell", tabIndex: this.disabled ? undefined : isFocused ? 0 : -1, "data-date": dateKey, class: this.getDayCssClasses(state, disabled), onClick: disabled ? undefined : this.handleDayCellClick, onKeyDown: this.handleGridKeydown, "aria-label": this.getDayCellAriaLabel(date, state), "aria-selected": isActiveDay ? 'true' : 'false', "aria-current": state.isToday ? 'date' : null, "aria-disabled": disabled ? 'true' : null, part: "day" }, this.getDayWithLeadingZero(date)));
749
798
  }
750
799
  render() {
751
- return (h(Host, { key: '652b18891338dd9d009e87fb2383dc3c1c78c6ee' }, h("div", { key: '3c441b0df40d69767ee4c3e8166e9403988def5d', class: "br-date-picker", part: "container" }, this.renderCalendarHeader(), this.renderCalendar())));
800
+ return (h(Host, { key: 'd909c9c84061f6b456a0350e2ab3fe6e50cc5d83' }, h("div", { key: 'aba7fc5f0b7bce2a9aa2d95bae9897f138dd8146', class: "br-date-picker", part: "container" }, this.renderCalendarHeader(), this.renderCalendar())));
752
801
  }
753
802
  static get is() { return "br-date-picker"; }
754
803
  static get encapsulation() { return "shadow"; }
@@ -17,19 +17,9 @@ import { DATETIME_RANGE_ORDER_MESSAGE } from "../datetime-picker-constants";
17
17
  import { INPUT_FORMAT_CONFIG } from "./datetime-input-constants";
18
18
  import { normalizeDatetimeInputMode, normalizeDatetimeInputReferenceDate, normalizeDatetimeInputValue, } from "./datetime-input-props-validation";
19
19
  /**
20
- * O `br-datetime-input` é o subcomponente de edição textual do `br-datetime-picker`, com máscara, interpretação de datas e horários e validação local sobre um `br-input` interno.
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.
21
21
  *
22
- * ### Papel na composição
23
- *
24
- * Exibe e permite editar a seleção única ou os limites de um intervalo nos modos `date`, `time` e `datetime`. Comunica alterações por `dateStateChange`, informa a validação local por `inputValidationChange` e solicita a abertura ou o fechamento do painel por `togglePicker`.
25
- *
26
- * ### Regra de uso e relacionamento
27
- *
28
- * O `br-datetime-picker` instancia este campo internamente e fornece valores e configurações por propriedades. O pai coordena a seleção com o calendário e os controles de horário; o campo não abre esses seletores por conta própria nem deve ser fornecido em slot.
29
- *
30
- * Prefira o `br-datetime-picker` para o controle completo. Use o campo isoladamente apenas em composições personalizadas nas quais a aplicação assuma a sincronização de estado, o tratamento dos eventos e a integração com formulários. Este subcomponente não possui a associação nativa ao formulário do orquestrador.
31
- *
32
- * Consulte também as [diretrizes de design do GovBR](https://www.gov.br/ds/components/datetime?tab=designer).
22
+ * É criado pelo `br-datetime-picker`; não é preciso declará-lo. Para um campo de data em formulário, use o `br-datetime-picker`.
33
23
  *
34
24
  * @see https://www.gov.br/ds/components/datetime?tab=designer
35
25
  * @part container - Container do campo.
@@ -721,7 +711,7 @@ export class DatetimeInput {
721
711
  * Renderização principal do componente.
722
712
  */
723
713
  render() {
724
- return (h(Host, { key: '40033b7b73bd1760cf07c5b4797a86e918fde54b' }, h("div", { key: '31e968efbb7a6f43acb8a67fb225d6e0159af7f9', class: this.getCssClassMap(), part: "container" }, this.renderInputField())));
714
+ return (h(Host, { key: 'dd5b4fa7df2b33edc9c262b4d7cf0d161ae195b8' }, h("div", { key: '83035393364d795eeb46f7a9f03309e33d53aa42', class: this.getCssClassMap(), part: "container" }, this.renderInputField())));
725
715
  }
726
716
  static get is() { return "br-datetime-input"; }
727
717
  static get encapsulation() { return "shadow"; }
@@ -17,42 +17,38 @@ import { DATETIME_PICKER_LOCALE, DATETIME_PICKER_MODE, DATETIME_RANGE_ORDER_MESS
17
17
  import { hasDatetimePickerMissingValue, parseDatetimePickerSerializedRange, parseDatetimePickerSerializedValue, serializeDatetimePickerFormValue, } from "./datetime-picker-form-associated";
18
18
  import { normalizeDatetimePickerDisabledDates, normalizeDatetimePickerInitialMoment, normalizeDatetimePickerMode, normalizeDatetimePickerSelectionMode, normalizeDatetimePickerWeekStartsOn, } from "./datetime-picker-props-validation";
19
19
  /**
20
- * O `br-datetime-picker` é o controle completo do GovBR-DS para digitação e seleção visual de datas e horários. Orquestra o campo textual e os seletores internos, consolidando valor, validação e integração com formulários HTML.
20
+ * O `br-datetime-picker` é um campo para informar data, hora ou data e hora. A pessoa pode digitar ou escolher no calendário e nos controles de horário.
21
21
  *
22
- * ### Para que serve
22
+ * Escolha o tipo em `mode`: `date`, `time` ou `datetime`. Para início e fim, use `selection-mode="range"`.
23
23
  *
24
- * - Oferece os modos `date`, `time` e `datetime`, com seleção única (`single`) ou de intervalo (`range`).
25
- * - Combina edição textual com máscara, calendário e ajuste de horas e minutos conforme o modo escolhido.
26
- * - Centraliza restrições de seleção, validação e submissão do valor por meio de `formAssociated`.
24
+ * ```html
25
+ * <br-datetime-picker mode="date" name="nascimento" required></br-datetime-picker>
27
26
  *
28
- * ### Quando utilizar
27
+ * <br-datetime-picker mode="date" selection-mode="range" name="periodo"></br-datetime-picker>
28
+ * ```
29
29
  *
30
- * - Utilize quando o formulário precisar de um controle completo de data ou horário com digitação e seleção visual.
31
- * - Utilize para períodos com início e fim, inclusive com horários nos modos `time` e `datetime`.
32
- * - Evite quando precisar apenas apresentar uma data: prefira texto formatado.
33
- * - Para um calendário permanentemente visível sem o campo textual, considere `br-date-picker`; a aplicação assume a integração com o restante do formulário.
34
- * - A seleção não oferece uma coleção de datas independentes: use `single` para um valor ou `range` para um intervalo.
30
+ * ### Ler o valor
35
31
  *
36
- * ### Composição e Subcomponentes
32
+ * | Onde | Formato |
33
+ * | --- | --- |
34
+ * | `value` | `Date` (ou `null`) |
35
+ * | `rangeValue` | `{ start, end }` com `Date` |
36
+ * | `serialized-value` e envio do formulário | `2026-05-20` (data), `14:30` (hora), `2026-05-20T14:30:00-03:00` (data e hora), `início/fim` (intervalo) |
37
37
  *
38
- * | Componente | Papel | Regra de uso |
39
- * | --- | --- | --- |
40
- * | `br-datetime-picker` | Orquestrador do valor consolidado, validação, formulário e abertura do painel. | Declare este controle no template para obter a composição completa. |
41
- * | `br-datetime-input` | Campo textual com máscara, interpretação da entrada e ação de abertura do painel. | Instanciado internamente pelo pai; não deve ser fornecido em slot. |
42
- * | `br-date-picker` | Calendário para navegação e seleção de data única ou intervalo. | Criado pelo pai nos modos `date` e `datetime`; pode ser usado isoladamente como calendário embutido. |
43
- * | `br-time-picker` | Controles de hora e minuto. | Criado pelo pai nos modos `time` e `datetime`, com uma instância por limite quando a seleção é `range`. |
38
+ * Atribua valores do tipo `Date` pelo JavaScript (`picker.value = new Date()`), não por atributo. Para restringir datas, use `min`, `max` e `disabled-dates`.
44
39
  *
45
- * O slot `feedback` recebe conteúdo declarativo de validação, normalmente um `br-message`; não substitui os seletores internos.
40
+ * ### Quando usar
46
41
  *
47
- * ### Como os subcomponentes se relacionam
42
+ * - Formulários que pedem uma data, um horário ou um período.
48
43
  *
49
- * O pai fornece valores e configurações aos filhos por propriedades e consolida suas alterações por eventos DOM. O campo textual solicita a abertura do painel; o calendário e os controles de horário atualizam a seleção compartilhada, sem coordenar diretamente uns aos outros.
44
+ * ### Quando evitar
50
45
  *
51
- * `referenceDate` representa a referência de navegação visual, distinta da seleção efetiva. O orquestrador mantém o campo textual, os seletores e o valor de formulário sincronizados. A aplicação consome o valor e os eventos do pai, incluindo `brDatetimePickerChange` para a seleção completa e tipada.
46
+ * - Para só exibir uma data: use texto formatado.
47
+ * - Para escolher várias datas soltas: o componente aceita uma data ou um intervalo.
52
48
  *
53
- * O uso isolado dos filhos exige que a aplicação assuma a coordenação de estado, validação e formulário; eles não herdam a associação nativa ao formulário do `br-datetime-picker`.
49
+ * O calendário (`br-date-picker`), os controles de horário (`br-time-picker`) e o campo de texto (`br-datetime-input`) são criados pelo próprio componente; não é preciso declará-los.
54
50
  *
55
- * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/datetimepicker?tab=designer).
51
+ * Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/datetimepicker?tab=designer).
56
52
  *
57
53
  * @category Formulários
58
54
  * @status stable
@@ -1082,7 +1078,7 @@ export class DatetimePicker {
1082
1078
  }
1083
1079
  this.restoreSingleStateFromSerialized(serializedValue);
1084
1080
  }
1085
- /** Atualiza os nomes canônicos sem emitir eventos adicionais ou criar ciclos de watchers. */
1081
+ /** Atualiza os nomes padrão sem emitir eventos adicionais ou criar ciclos de watchers. */
1086
1082
  syncCanonicalValues() {
1087
1083
  const nextSerializedValue = this.getSerializedValue();
1088
1084
  const nextValueAsDate = this.cloneDate(this.value);
@@ -1494,7 +1490,7 @@ export class DatetimePicker {
1494
1490
  this.inputValidationMessage ||
1495
1491
  this.validatorMessage ||
1496
1492
  (this.inputValidationPending ? '' : this.getRangeOrderValidationMessage());
1497
- return (h(Host, { key: '0640504e844713daaf31d7c8a34b96fb48bcf499', onKeyDown: this.handlePickerKeydown, "aria-busy": this.isValidating ? 'true' : null, "aria-describedby": this.hasFeedbackSlot || validationMessage ? this.feedbackId : null, "aria-errormessage": validationMessage || this.hasFeedbackSlot ? this.feedbackId : null }, h("div", { key: '7512ed8a4437a99d6d0702351af659bfa1d270b0', class: this.getCssClassMap(), part: "container" }, this.renderInputField(), this.renderPickerContent()), h("div", { key: '80a8d3a717ceacc4dfb6bd0ac4850b61e3b2d311', id: this.feedbackId, part: "feedback", hidden: !this.hasFeedbackSlot && !validationMessage }, h("slot", { key: '41a8e4fad5edaa3729d63b7ee469f248a53129a1', name: "feedback", onSlotchange: (event) => (this.hasFeedbackSlot = hasAssignedSlotContent(event.currentTarget)) }), !this.hasFeedbackSlot && validationMessage ? (h("br-message", { state: "danger", "attr:message": validationMessage, feedback: true })) : null)));
1493
+ return (h(Host, { key: '84fb00b49ddc94c38ccb60d6473008ef6f966c0a', onKeyDown: this.handlePickerKeydown, "aria-busy": this.isValidating ? 'true' : null, "aria-describedby": this.hasFeedbackSlot || validationMessage ? this.feedbackId : null, "aria-errormessage": validationMessage || this.hasFeedbackSlot ? this.feedbackId : null }, h("div", { key: '4c16fee0aa4a44ceb5b4097a3189ab9a427f00a3', class: this.getCssClassMap(), part: "container" }, this.renderInputField(), this.renderPickerContent()), h("div", { key: '1906aed19809ab4a5da12bef5d5a71fbe807be1b', id: this.feedbackId, part: "feedback", hidden: !this.hasFeedbackSlot && !validationMessage }, h("slot", { key: 'b3544c63edfcaf84f48f91e4105874ff7ebe4b01', name: "feedback", onSlotchange: (event) => (this.hasFeedbackSlot = hasAssignedSlotContent(event.currentTarget)) }), !this.hasFeedbackSlot && validationMessage ? (h("br-message", { state: "danger", "attr:message": validationMessage, feedback: true })) : null)));
1498
1494
  }
1499
1495
  static get is() { return "br-datetime-picker"; }
1500
1496
  static get encapsulation() { return "shadow"; }
@@ -2053,7 +2049,7 @@ export class DatetimePicker {
2053
2049
  "name": "type",
2054
2050
  "text": "{CustomEvent<DatetimePickerChangeDetail>}"
2055
2051
  }],
2056
- "text": "Evento p\u00FAblico can\u00F4nico emitido quando a sele\u00E7\u00E3o muda.\n\nPayload (`DatetimePickerChangeDetail`):\n- `mode`: DatetimePickerMode \u2014 modo atual do componente (`date` | `time` | `datetime`).\n- `selectionMode`: DatetimePickerSelectionMode \u2014 `single` ou `range`.\n- `value`: Date | null | DatetimePickerDateRange \u2014 sele\u00E7\u00E3o atual (tipo depende de `selectionMode`).\n- `serializedValue`: string | undefined \u2014 representa\u00E7\u00E3o serializada para integra\u00E7\u00E3o com formul\u00E1rios."
2052
+ "text": "Evento emitido quando a sele\u00E7\u00E3o muda.\n\nPayload (`DatetimePickerChangeDetail`):\n- `mode`: DatetimePickerMode \u2014 modo atual do componente (`date` | `time` | `datetime`).\n- `selectionMode`: DatetimePickerSelectionMode \u2014 `single` ou `range`.\n- `value`: Date | null | DatetimePickerDateRange \u2014 sele\u00E7\u00E3o atual (tipo depende de `selectionMode`).\n- `serializedValue`: string | undefined \u2014 representa\u00E7\u00E3o serializada para integra\u00E7\u00E3o com formul\u00E1rios."
2057
2053
  },
2058
2054
  "complexType": {
2059
2055
  "original": "DatetimePickerChangeDetail",
@@ -16,19 +16,9 @@ import { resolveSsrLocalDate } from "../../../shared/utils/ssr-date";
16
16
  import { NAVIGATION_ACTION } from "../datetime-picker-constants";
17
17
  import { INPUT_TIME_TYPE } from "./time-picker-constants";
18
18
  /**
19
- * O `br-time-picker` é o subcomponente de ajuste de horas e minutos do `br-datetime-picker`.
19
+ * Controles de hora e minuto usados pelo `br-datetime-picker`. Em um intervalo, o componente cria um controle para o início e outro para o fim.
20
20
  *
21
- * ### Papel na composição
22
- *
23
- * Oferece campos textuais e botões de incremento e decremento para hora e minuto. Usa uma data de referência e comunica alterações por `dateStateChange`; não coordena diretamente o calendário nem o campo textual principal.
24
- *
25
- * ### Regra de uso e relacionamento
26
- *
27
- * O `br-datetime-picker` instancia e sincroniza este seletor nos modos `time` e `datetime`. Na seleção de intervalo, o pai cria dois seletores, um para o início e outro para o fim, e consolida os respectivos valores. Não forneça seletores de horário em slots do pai.
28
- *
29
- * Prefira o orquestrador para um controle completo de horário com campo textual e formulário. Use diretamente apenas quando precisar dos controles de hora e minuto em uma composição personalizada e assumir a sincronização de estado, a validação e a integração com formulários. O uso isolado não herda a associação nativa ao formulário do pai.
30
- *
31
- * Consulte também as [diretrizes de design do GovBR](https://www.gov.br/ds/components/time-picker?tab=designer).
21
+ * Para um campo de horário em formulário, use `<br-datetime-picker mode="time">`. Usado sozinho, ele não participa de formulário: leia o horário em `value` e trate a validação na aplicação.
32
22
  *
33
23
  * @part container - Container base do seletor de horários.
34
24
  * @part timer - Grupo que contém os campos de hora e minuto.
@@ -45,7 +35,7 @@ export class TimePicker {
45
35
  */
46
36
  this.referenceDate = new Date();
47
37
  /**
48
- * Valor canônico selecionado pelo usuário.
38
+ * Valor selecionado pelo usuário.
49
39
  *
50
40
  * @default null
51
41
  */
@@ -440,7 +430,7 @@ export class TimePicker {
440
430
  * @returns {JSX.Element}
441
431
  */
442
432
  render() {
443
- return (h(Host, { key: '1957a00098311a26b250bad62c885fc636072b30' }, h("div", { key: '0dd334340ba7da6cbc53d72183b862770d275856', class: "br-time-picker", part: "container" }, this.renderTimePicker())));
433
+ return (h(Host, { key: 'e81125092811d06b37cdd61d562998de83020880' }, h("div", { key: 'df218ea0cc8424f55ed0689e5479ef47cdbee74c', class: "br-time-picker", part: "container" }, this.renderTimePicker())));
444
434
  }
445
435
  static get is() { return "br-time-picker"; }
446
436
  static get encapsulation() { return "shadow"; }
@@ -502,7 +492,7 @@ export class TimePicker {
502
492
  "name": "default",
503
493
  "text": "null"
504
494
  }],
505
- "text": "Valor can\u00F4nico selecionado pelo usu\u00E1rio."
495
+ "text": "Valor selecionado pelo usu\u00E1rio."
506
496
  },
507
497
  "getter": false,
508
498
  "setter": false,
@@ -12,31 +12,27 @@ const DIVIDER_BORDER_STYLES = ['dashed', 'solid'];
12
12
  const DIVIDER_COLOR_MODES = ['light', 'dark'];
13
13
  const DIVIDER_ALIGNS = ['start', 'center', 'end'];
14
14
  /**
15
- * O componente `br-divider` é o elemento separador visual e semântico do GovBR-DS, utilizado para demarcar limites claros entre seções, listas de conteúdos ou áreas temáticas da página.
15
+ * O `br-divider` é uma linha que separa seções ou grupos de conteúdo. Pode ser horizontal ou vertical e ter um texto no meio.
16
16
  *
17
- * ### Para que serve
17
+ * ```html
18
+ * <br-divider></br-divider>
18
19
  *
19
- * - **Separação visual estruturada:** Cria linhas divisórias sutis horizontais ou verticais para organizar blocos de informação com espaçamentos padronizados.
20
- * - **Rotulação intermediária:** Permite incluir texto (ex.: "ou"), ícones ou outros elementos centralizados ao longo da linha divisória através do slot padrão.
21
- * - **Variações visuais:** Suporta estilos contínuos, tracejados (`dashed`) e diferentes densidades para se adequar ao leiaute.
20
+ * <br-divider>ou</br-divider>
22
21
  *
23
- * ### Quando utilizar
22
+ * <br-divider orientation="vertical" thickness="medium" border-style="dashed"></br-divider>
23
+ * ```
24
24
  *
25
- * - **Utilize quando:**
26
- * - Houver necessidade de indicar explicitamente o término de um bloco temático e o início de outro.
27
- * - Separar alternativas com um divisor textual (ex.: "Entrar com conta Gov.BR" --- ou --- "Entrar com certificado digital").
28
- * - Dividir colunas de rodapés, menus laterais ou cabeçalhos.
29
- * - **Evite e prefira outro componente quando:**
30
- * - Os espaçamentos em branco (margens e paddings) já forem suficientes para garantir a percepção de separação sem sobrecarregar visualmente a tela.
25
+ * ### Quando usar
31
26
  *
32
- * ### Estrutura e Slots
27
+ * - Marcar o fim de um bloco e o início de outro.
28
+ * - Separar alternativas, como "Entrar com gov.br" ou "Entrar com certificado digital".
33
29
  *
34
- * O `br-divider` é um componente autônomo e de apresentação:
35
- * - `default`: Slot opcional para texto ou elemento centralizado intercalado na linha do divisor.
30
+ * ### Quando evitar
36
31
  *
37
- * Para a documentação completa de design, incluindo diretrizes de acessibilidade e especificações visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/divider?tab=designer).
32
+ * - Quando o espaço em branco já separa bem o conteúdo.
33
+ *
34
+ * Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/divider?tab=designer).
38
35
  *
39
-
40
36
  * @category Layout, Estrutura
41
37
  * @status stable
42
38
  * @slot default - Slot opcional para conteúdo dentro do divisor (texto, ícones ou elementos personalizados).
@@ -273,7 +269,7 @@ export class Divider {
273
269
  return h("hr", { class: this.getCssClassMap(), part: "divider" });
274
270
  }
275
271
  render() {
276
- return (h(Host, { key: '95bf9293cff4f5a5fe90f1e621151282127cd733', class: this.effectiveOrientation === 'vertical' ? 'vertical' : undefined }, this.hasContent
272
+ return (h(Host, { key: '5bb8579f8b756513982809583bfb73068deb3c00', class: this.effectiveOrientation === 'vertical' ? 'vertical' : undefined }, this.hasContent
277
273
  ? this.renderDefaultSlotDivider()
278
274
  : [
279
275
  h("slot", { onSlotchange: (event) => (this.hasContent = hasAssignedSlotContent(event.currentTarget)) }),
@@ -430,7 +426,7 @@ export class Divider {
430
426
  "optional": true,
431
427
  "docs": {
432
428
  "tags": [],
433
- "text": "Esquema de cor can\u00F4nico. Quando informado, tem preced\u00EAncia sobre `isDarkMode`; valores inv\u00E1lidos usam `light`."
429
+ "text": "Esquema de cor padr\u00E3o. Quando informado, tem preced\u00EAncia sobre `isDarkMode`; valores inv\u00E1lidos usam `light`."
434
430
  },
435
431
  "getter": false,
436
432
  "setter": false,