@govbr-ds/webcomponents 2.1.3 → 2.3.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 (977) hide show
  1. package/README.md +146 -54
  2. package/cem/custom-elements.json +6496 -1141
  3. package/cem/webcomponents.html-custom-data.json +400 -287
  4. package/dist/cjs/br-avatar.cjs.entry.js +21 -14
  5. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +2 -2
  6. package/dist/cjs/br-breadcrumb.cjs.entry.js +49 -22
  7. package/dist/cjs/br-button_2.cjs.entry.js +77 -35
  8. package/dist/cjs/br-card.cjs.entry.js +6 -5
  9. package/dist/cjs/br-carousel-page.cjs.entry.js +3 -3
  10. package/dist/cjs/br-carousel.cjs.entry.js +77 -21
  11. package/dist/cjs/br-checkbox-group.cjs.entry.js +157 -27
  12. package/dist/cjs/br-checkbox.cjs.entry.js +86 -16
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +5 -2
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +90 -27
  15. package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +4 -4
  16. package/dist/cjs/br-cookiebar-group.cjs.entry.js +4 -4
  17. package/dist/cjs/br-cookiebar-header.cjs.entry.js +4 -4
  18. package/dist/cjs/br-cookiebar-link.cjs.entry.js +14 -6
  19. package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +3 -5
  20. package/dist/cjs/br-cookiebar-note.cjs.entry.js +4 -4
  21. package/dist/cjs/br-cookiebar.cjs.entry.js +38 -25
  22. package/dist/cjs/br-crumb.cjs.entry.js +2 -2
  23. package/dist/cjs/br-date-picker_3.cjs.entry.js +246 -88
  24. package/dist/cjs/br-datetime-picker.cjs.entry.js +116 -528
  25. package/dist/cjs/br-divider.cjs.entry.js +70 -17
  26. package/dist/cjs/br-dropdown_2.cjs.entry.js +334 -163
  27. package/dist/cjs/br-footer-category.cjs.entry.js +10 -6
  28. package/dist/cjs/br-footer-item.cjs.entry.js +9 -4
  29. package/dist/cjs/br-footer-legal.cjs.entry.js +4 -4
  30. package/dist/cjs/br-footer-logo.cjs.entry.js +22 -10
  31. package/dist/cjs/br-footer-social.cjs.entry.js +14 -6
  32. package/dist/cjs/br-footer.cjs.entry.js +16 -7
  33. package/dist/cjs/br-header-function.cjs.entry.js +28 -7
  34. package/dist/cjs/br-header-link.cjs.entry.js +25 -4
  35. package/dist/cjs/br-header-list.cjs.entry.js +6 -17
  36. package/dist/cjs/br-header-logo.cjs.entry.js +18 -7
  37. package/dist/cjs/br-header.cjs.entry.js +96 -37
  38. package/dist/cjs/br-icon.cjs.entry.js +161 -53
  39. package/dist/cjs/br-input.cjs.entry.js +150 -40
  40. package/dist/cjs/br-item.cjs.entry.js +97 -48
  41. package/dist/cjs/br-link.cjs.entry.js +20 -7
  42. package/dist/cjs/br-loading.cjs.entry.js +100 -38
  43. package/dist/cjs/br-magic-button.cjs.entry.js +39 -9
  44. package/dist/cjs/br-menu-group.cjs.entry.js +14 -3
  45. package/dist/cjs/br-menu-header.cjs.entry.js +4 -4
  46. package/dist/cjs/br-menu-info.cjs.entry.js +4 -4
  47. package/dist/cjs/br-menu-item.cjs.entry.js +27 -5
  48. package/dist/cjs/br-menu-link.cjs.entry.js +14 -6
  49. package/dist/cjs/br-menu-list.cjs.entry.js +23 -27
  50. package/dist/cjs/br-menu-logo.cjs.entry.js +4 -4
  51. package/dist/cjs/br-menu-social.cjs.entry.js +16 -6
  52. package/dist/cjs/br-menu.cjs.entry.js +38 -57
  53. package/dist/cjs/br-modal.cjs.entry.js +44 -42
  54. package/dist/cjs/br-notification-body.cjs.entry.js +4 -4
  55. package/dist/cjs/br-notification-header.cjs.entry.js +4 -4
  56. package/dist/cjs/br-notification-item.cjs.entry.js +14 -8
  57. package/dist/cjs/br-notification.cjs.entry.js +23 -8
  58. package/dist/cjs/br-pagination.cjs.entry.js +120 -88
  59. package/dist/cjs/br-radio-group.cjs.entry.js +107 -58
  60. package/dist/cjs/br-radio.cjs.entry.js +62 -12
  61. package/dist/cjs/br-scrim.cjs.entry.js +161 -67
  62. package/dist/cjs/br-select-input_3.cjs.entry.js +286 -91
  63. package/dist/cjs/br-sign-in.cjs.entry.js +38 -15
  64. package/dist/cjs/br-skip-link-item.cjs.entry.js +39 -2
  65. package/dist/cjs/br-skip-link.cjs.entry.js +50 -33
  66. package/dist/cjs/br-skiplink-item.cjs.entry.js +22 -6
  67. package/dist/cjs/br-slider.cjs.entry.js +522 -100
  68. package/dist/cjs/br-step_2.cjs.entry.js +98 -44
  69. package/dist/cjs/br-switch.cjs.entry.js +21 -12
  70. package/dist/cjs/br-tab-item.cjs.entry.js +38 -14
  71. package/dist/cjs/br-tab.cjs.entry.js +89 -51
  72. package/dist/cjs/br-table-body.cjs.entry.js +3 -3
  73. package/dist/cjs/br-table-cell.cjs.entry.js +30 -13
  74. package/dist/cjs/br-table-header-cell.cjs.entry.js +23 -7
  75. package/dist/cjs/br-table-header.cjs.entry.js +3 -3
  76. package/dist/cjs/br-table-row.cjs.entry.js +17 -3
  77. package/dist/cjs/br-table.cjs.entry.js +67 -21
  78. package/dist/cjs/br-tag.cjs.entry.js +49 -31
  79. package/dist/cjs/br-textarea.cjs.entry.js +118 -13
  80. package/dist/cjs/br-tooltip.cjs.entry.js +87 -41
  81. package/dist/cjs/br-upload.cjs.entry.js +84 -25
  82. package/dist/cjs/br-wizard-panel.cjs.entry.js +16 -3
  83. package/dist/cjs/br-wizard.cjs.entry.js +52 -28
  84. package/dist/cjs/{isValid-Fu3kaWNn.js → datetime-picker-props-validation-DmNKSXsy.js} +481 -4
  85. package/dist/cjs/{floating-ui-MBI1osio.js → floating-ui-B6nsdYUU.js} +24 -1
  86. package/dist/cjs/{floating-ui.dom-BUSTaaxR.js → floating-ui.dom-wzdGZjyG.js} +201 -113
  87. package/dist/cjs/{focus-DuywwJPR.js → focus-BhfJnFgJ.js} +21 -0
  88. package/dist/cjs/header-context-CdawuLsH.js +17 -0
  89. package/dist/cjs/icon.utils-DF6kMskA.js +46 -0
  90. package/dist/cjs/id-DE4jSi-L.js +36 -0
  91. package/dist/cjs/{index-CRdcutym.js → index-Bc30P_6z.js} +88 -766
  92. package/dist/cjs/loader.cjs.js +2 -2
  93. package/dist/cjs/motion-CgIooxWS.js +29 -0
  94. package/dist/cjs/ownership-UnpufyCx.js +116 -0
  95. package/dist/cjs/prop-warning-xvEHQz8H.js +60 -0
  96. package/dist/cjs/props-D8dybmr0.js +124 -0
  97. package/dist/cjs/{swipe-BU8_XE9f.js → swipe-BGF-h9WY.js} +11 -1
  98. package/dist/cjs/{validator-CTCajtT9.js → validator-GkkueMOx.js} +18 -0
  99. package/dist/cjs/webcomponents.cjs.js +3 -3
  100. package/dist/collection/collection-manifest.json +1 -1
  101. package/dist/collection/components/avatar/avatar.css +1 -1
  102. package/dist/collection/components/avatar/avatar.js +48 -16
  103. package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +15 -3
  104. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  105. package/dist/collection/components/breadcrumb/breadcrumb.js +107 -22
  106. package/dist/collection/components/breadcrumb/crumb/crumb.js +14 -2
  107. package/dist/collection/components/button/button.css +1 -1
  108. package/dist/collection/components/button/button.js +93 -24
  109. package/dist/collection/components/card/card.css +1 -1
  110. package/dist/collection/components/card/card.js +33 -5
  111. package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
  112. package/dist/collection/components/carousel/carousel-page/carousel-page.js +11 -4
  113. package/dist/collection/components/carousel/carousel.css +1 -1
  114. package/dist/collection/components/carousel/carousel.js +107 -21
  115. package/dist/collection/components/checkbox/checkbox.css +1 -1
  116. package/dist/collection/components/checkbox/checkbox.js +134 -20
  117. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  118. package/dist/collection/components/checkbox-group/checkbox-group.js +210 -30
  119. package/dist/collection/components/checkgroup/checkgroup.js +42 -4
  120. package/dist/collection/components/collapse/collapse.css +1 -1
  121. package/dist/collection/components/collapse/collapse.js +55 -9
  122. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
  123. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +17 -4
  124. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
  125. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +16 -7
  126. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
  127. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +15 -9
  128. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
  129. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +24 -8
  130. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
  131. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +14 -4
  132. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
  133. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +13 -5
  134. package/dist/collection/components/cookiebar/cookiebar.css +1 -1
  135. package/dist/collection/components/cookiebar/cookiebar.js +67 -32
  136. package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
  137. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +134 -35
  138. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
  139. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +112 -22
  140. package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +13 -5
  141. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  142. package/dist/collection/components/datetime-picker/datetime-picker.js +158 -42
  143. package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
  144. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +78 -9
  145. package/dist/collection/components/divider/divider.css +1 -1
  146. package/dist/collection/components/divider/divider.js +101 -26
  147. package/dist/collection/components/dropdown/dropdown.css +1 -1
  148. package/dist/collection/components/dropdown/dropdown.js +195 -51
  149. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  150. package/dist/collection/components/footer/footer-category/footer-category.js +23 -4
  151. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  152. package/dist/collection/components/footer/footer-item/footer-item.js +21 -2
  153. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  154. package/dist/collection/components/footer/footer-legal/footer-legal.js +16 -2
  155. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  156. package/dist/collection/components/footer/footer-logo/footer-logo.js +35 -9
  157. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  158. package/dist/collection/components/footer/footer-social/footer-social.js +26 -6
  159. package/dist/collection/components/footer/footer.css +1 -1
  160. package/dist/collection/components/footer/footer.js +48 -7
  161. package/dist/collection/components/header/header-context.js +13 -0
  162. package/dist/collection/components/header/header-function/header-function.css +1 -1
  163. package/dist/collection/components/header/header-function/header-function.js +51 -8
  164. package/dist/collection/components/header/header-link/header-link.css +1 -1
  165. package/dist/collection/components/header/header-link/header-link.js +52 -2
  166. package/dist/collection/components/header/header-list/header-list.css +1 -1
  167. package/dist/collection/components/header/header-list/header-list.js +20 -23
  168. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  169. package/dist/collection/components/header/header-logo/header-logo.js +33 -8
  170. package/dist/collection/components/header/header.css +1 -1
  171. package/dist/collection/components/header/header.js +134 -44
  172. package/dist/collection/components/icon/default-icons-cache.js +111 -3
  173. package/dist/collection/components/icon/icon.css +1 -1
  174. package/dist/collection/components/icon/icon.js +80 -33
  175. package/dist/collection/components/icon/icon.utils.js +8 -0
  176. package/dist/collection/components/input/input.css +1 -1
  177. package/dist/collection/components/input/input.js +189 -55
  178. package/dist/collection/components/item/item.css +1 -1
  179. package/dist/collection/components/item/item.js +136 -52
  180. package/dist/collection/components/link/link.css +1 -1
  181. package/dist/collection/components/link/link.js +48 -15
  182. package/dist/collection/components/list/list.css +1 -1
  183. package/dist/collection/components/list/list.js +106 -25
  184. package/dist/collection/components/loading/loading.css +1 -1
  185. package/dist/collection/components/loading/loading.js +131 -43
  186. package/dist/collection/components/magic-button/magic-button.css +1 -1
  187. package/dist/collection/components/magic-button/magic-button.js +65 -9
  188. package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
  189. package/dist/collection/components/menu/menu-group/menu-group.js +60 -2
  190. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  191. package/dist/collection/components/menu/menu-header/menu-header.js +17 -2
  192. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  193. package/dist/collection/components/menu/menu-info/menu-info.js +15 -2
  194. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  195. package/dist/collection/components/menu/menu-item/menu-item.js +72 -8
  196. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  197. package/dist/collection/components/menu/menu-link/menu-link.js +25 -4
  198. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  199. package/dist/collection/components/menu/menu-list/menu-list.js +64 -29
  200. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  201. package/dist/collection/components/menu/menu-logo/menu-logo.js +15 -2
  202. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  203. package/dist/collection/components/menu/menu-social/menu-social.js +29 -7
  204. package/dist/collection/components/menu/menu.css +1 -1
  205. package/dist/collection/components/menu/menu.js +71 -60
  206. package/dist/collection/components/menu/menu.utils.js +8 -18
  207. package/dist/collection/components/message/message.css +1 -1
  208. package/dist/collection/components/message/message.js +50 -24
  209. package/dist/collection/components/modal/modal.css +1 -1
  210. package/dist/collection/components/modal/modal.js +72 -43
  211. package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
  212. package/dist/collection/components/notification/notification-body/notification-body.js +13 -4
  213. package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
  214. package/dist/collection/components/notification/notification-header/notification-header.js +13 -4
  215. package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
  216. package/dist/collection/components/notification/notification-item/notification-item.js +23 -9
  217. package/dist/collection/components/notification/notification.css +1 -1
  218. package/dist/collection/components/notification/notification.js +54 -10
  219. package/dist/collection/components/pagination/pagination.css +1 -1
  220. package/dist/collection/components/pagination/pagination.js +164 -75
  221. package/dist/collection/components/radio/radio.css +1 -1
  222. package/dist/collection/components/radio/radio.js +109 -14
  223. package/dist/collection/components/radio-group/radio-group.css +1 -1
  224. package/dist/collection/components/radio-group/radio-group.js +153 -63
  225. package/dist/collection/components/scrim/scrim.css +1 -1
  226. package/dist/collection/components/scrim/scrim.js +215 -74
  227. package/dist/collection/components/scrim/scrim.utils.js +5 -51
  228. package/dist/collection/components/select/select-input/select-input.css +1 -1
  229. package/dist/collection/components/select/select-input/select-input.js +61 -6
  230. package/dist/collection/components/select/select-list/select-list.css +1 -1
  231. package/dist/collection/components/select/select-list/select-list.js +247 -52
  232. package/dist/collection/components/select/select-option/select-option.css +1 -1
  233. package/dist/collection/components/select/select-option/select-option.js +108 -46
  234. package/dist/collection/components/select/select.css +1 -1
  235. package/dist/collection/components/select/select.js +320 -124
  236. package/dist/collection/components/select/select.utils.js +3 -1
  237. package/dist/collection/components/sign-in/sign-in.css +1 -1
  238. package/dist/collection/components/sign-in/sign-in.js +60 -17
  239. package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +112 -3
  240. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  241. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +58 -5
  242. package/dist/collection/components/skip-link/skip-link.css +1 -1
  243. package/dist/collection/components/skip-link/skip-link.js +78 -39
  244. package/dist/collection/components/slider/slider.css +1 -1
  245. package/dist/collection/components/slider/slider.js +530 -132
  246. package/dist/collection/components/slider/slider.utils.js +178 -0
  247. package/dist/collection/components/step/step-item/step-item.css +1 -1
  248. package/dist/collection/components/step/step-item/step-item.js +29 -12
  249. package/dist/collection/components/step/step.css +1 -1
  250. package/dist/collection/components/step/step.js +119 -44
  251. package/dist/collection/components/switch/switch.css +1 -1
  252. package/dist/collection/components/switch/switch.js +48 -15
  253. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  254. package/dist/collection/components/tab/tab-item/tab-item.js +49 -14
  255. package/dist/collection/components/tab/tab.css +1 -1
  256. package/dist/collection/components/tab/tab.js +123 -53
  257. package/dist/collection/components/table/table-body/table-body.css +1 -1
  258. package/dist/collection/components/table/table-body/table-body.js +11 -7
  259. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  260. package/dist/collection/components/table/table-cell/table-cell.js +36 -17
  261. package/dist/collection/components/table/table-header/table-header.css +1 -1
  262. package/dist/collection/components/table/table-header/table-header.js +11 -7
  263. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  264. package/dist/collection/components/table/table-header-cell/table-header-cell.js +35 -13
  265. package/dist/collection/components/table/table-row/table-row.css +1 -1
  266. package/dist/collection/components/table/table-row/table-row.js +24 -7
  267. package/dist/collection/components/table/table.css +1 -1
  268. package/dist/collection/components/table/table.js +107 -31
  269. package/dist/collection/components/tag/tag.css +1 -1
  270. package/dist/collection/components/tag/tag.js +86 -36
  271. package/dist/collection/components/textarea/textarea.css +1 -1
  272. package/dist/collection/components/textarea/textarea.js +222 -19
  273. package/dist/collection/components/tooltip/tooltip.css +1 -1
  274. package/dist/collection/components/tooltip/tooltip.js +134 -45
  275. package/dist/collection/components/upload/upload.css +1 -1
  276. package/dist/collection/components/upload/upload.js +135 -33
  277. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  278. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +54 -3
  279. package/dist/collection/components/wizard/wizard.css +1 -1
  280. package/dist/collection/components/wizard/wizard.js +82 -28
  281. package/dist/collection/pages/components/select/remote.js +33 -0
  282. package/dist/collection/pages/components/select/virtualized.js +13 -0
  283. package/dist/collection/pages/components/upload/handler.js +25 -0
  284. package/dist/collection/pages/scripts/component-controls-core.js +95 -0
  285. package/dist/collection/pages/scripts/component-controls.js +221 -158
  286. package/dist/collection/pages/scripts/dev-event-console.js +5 -1
  287. package/dist/collection/pages/scripts/menu.js +90 -6
  288. package/dist/collection/pages/scripts/pageLoader.js +1570 -607
  289. package/dist/collection/pages/scripts/pageloader-preview.js +796 -0
  290. package/dist/collection/pages/scripts/playground-core.js +173 -0
  291. package/dist/collection/shared/utils/cssVariables.js +2 -0
  292. package/dist/collection/shared/utils/date.js +8 -4
  293. package/dist/collection/shared/utils/floating-ui.js +24 -1
  294. package/dist/collection/shared/utils/focus.js +31 -0
  295. package/dist/collection/shared/utils/form.js +17 -0
  296. package/dist/collection/shared/utils/getRandom.js +16 -1
  297. package/dist/collection/shared/utils/helpers.js +4 -11
  298. package/dist/collection/shared/utils/id.js +23 -7
  299. package/dist/collection/shared/utils/index.js +6 -1
  300. package/dist/collection/shared/utils/isEmpty.js +5 -3
  301. package/dist/collection/shared/utils/motion.js +25 -0
  302. package/dist/collection/shared/utils/ownership.js +113 -0
  303. package/dist/collection/shared/utils/prop-warning.js +47 -0
  304. package/dist/collection/shared/utils/props.js +79 -0
  305. package/dist/collection/shared/utils/swipe.js +11 -1
  306. package/dist/collection/shared/utils/transition.js +3 -0
  307. package/dist/collection/shared/utils/virtual-scroll.js +24 -0
  308. package/dist/components/br-avatar.d.ts +1 -1
  309. package/dist/components/br-avatar.js +1 -1
  310. package/dist/components/br-breadcrumb-item.d.ts +1 -1
  311. package/dist/components/br-breadcrumb-item.js +1 -1
  312. package/dist/components/br-breadcrumb.d.ts +1 -1
  313. package/dist/components/br-breadcrumb.js +1 -1
  314. package/dist/components/br-button.d.ts +1 -1
  315. package/dist/components/br-button.js +1 -1
  316. package/dist/components/br-card.d.ts +1 -1
  317. package/dist/components/br-card.js +1 -1
  318. package/dist/components/br-carousel-page.d.ts +1 -1
  319. package/dist/components/br-carousel-page.js +1 -1
  320. package/dist/components/br-carousel.d.ts +1 -1
  321. package/dist/components/br-carousel.js +1 -1
  322. package/dist/components/br-checkbox-group.d.ts +1 -1
  323. package/dist/components/br-checkbox-group.js +1 -1
  324. package/dist/components/br-checkbox.d.ts +1 -1
  325. package/dist/components/br-checkbox.js +1 -1
  326. package/dist/components/br-checkgroup.d.ts +1 -1
  327. package/dist/components/br-checkgroup.js +1 -1
  328. package/dist/components/br-collapse.d.ts +1 -1
  329. package/dist/components/br-collapse.js +1 -1
  330. package/dist/components/br-cookiebar-cookie.d.ts +1 -1
  331. package/dist/components/br-cookiebar-cookie.js +1 -1
  332. package/dist/components/br-cookiebar-group.d.ts +1 -1
  333. package/dist/components/br-cookiebar-group.js +1 -1
  334. package/dist/components/br-cookiebar-header.d.ts +1 -1
  335. package/dist/components/br-cookiebar-header.js +1 -1
  336. package/dist/components/br-cookiebar-link.d.ts +1 -1
  337. package/dist/components/br-cookiebar-link.js +1 -1
  338. package/dist/components/br-cookiebar-note-group.d.ts +1 -1
  339. package/dist/components/br-cookiebar-note-group.js +1 -1
  340. package/dist/components/br-cookiebar-note.d.ts +1 -1
  341. package/dist/components/br-cookiebar-note.js +1 -1
  342. package/dist/components/br-cookiebar.d.ts +1 -1
  343. package/dist/components/br-cookiebar.js +1 -1
  344. package/dist/components/br-crumb.d.ts +1 -1
  345. package/dist/components/br-crumb.js +1 -1
  346. package/dist/components/br-date-picker.d.ts +1 -1
  347. package/dist/components/br-date-picker.js +1 -1
  348. package/dist/components/br-datetime-input.d.ts +1 -1
  349. package/dist/components/br-datetime-input.js +1 -1
  350. package/dist/components/br-datetime-picker.d.ts +1 -1
  351. package/dist/components/br-datetime-picker.js +1 -1
  352. package/dist/components/br-divider.d.ts +1 -1
  353. package/dist/components/br-divider.js +1 -1
  354. package/dist/components/br-dropdown.d.ts +1 -1
  355. package/dist/components/br-dropdown.js +1 -1
  356. package/dist/components/br-footer-category.d.ts +1 -1
  357. package/dist/components/br-footer-category.js +1 -1
  358. package/dist/components/br-footer-item.d.ts +1 -1
  359. package/dist/components/br-footer-item.js +1 -1
  360. package/dist/components/br-footer-legal.d.ts +1 -1
  361. package/dist/components/br-footer-legal.js +1 -1
  362. package/dist/components/br-footer-logo.d.ts +1 -1
  363. package/dist/components/br-footer-logo.js +1 -1
  364. package/dist/components/br-footer-social.d.ts +1 -1
  365. package/dist/components/br-footer-social.js +1 -1
  366. package/dist/components/br-footer.d.ts +1 -1
  367. package/dist/components/br-footer.js +1 -1
  368. package/dist/components/br-header-function.d.ts +1 -1
  369. package/dist/components/br-header-function.js +1 -1
  370. package/dist/components/br-header-link.d.ts +1 -1
  371. package/dist/components/br-header-link.js +1 -1
  372. package/dist/components/br-header-list.d.ts +1 -1
  373. package/dist/components/br-header-list.js +1 -1
  374. package/dist/components/br-header-logo.d.ts +1 -1
  375. package/dist/components/br-header-logo.js +1 -1
  376. package/dist/components/br-header.d.ts +1 -1
  377. package/dist/components/br-header.js +1 -1
  378. package/dist/components/br-icon.d.ts +1 -1
  379. package/dist/components/br-icon.js +1 -1
  380. package/dist/components/br-input.d.ts +1 -1
  381. package/dist/components/br-input.js +1 -1
  382. package/dist/components/br-item.d.ts +1 -1
  383. package/dist/components/br-item.js +1 -1
  384. package/dist/components/br-link.d.ts +1 -1
  385. package/dist/components/br-link.js +1 -1
  386. package/dist/components/br-list.d.ts +1 -1
  387. package/dist/components/br-list.js +1 -1
  388. package/dist/components/br-loading.d.ts +1 -1
  389. package/dist/components/br-loading.js +1 -1
  390. package/dist/components/br-magic-button.d.ts +1 -1
  391. package/dist/components/br-magic-button.js +1 -1
  392. package/dist/components/br-menu-group.d.ts +1 -1
  393. package/dist/components/br-menu-group.js +1 -1
  394. package/dist/components/br-menu-header.d.ts +1 -1
  395. package/dist/components/br-menu-header.js +1 -1
  396. package/dist/components/br-menu-info.d.ts +1 -1
  397. package/dist/components/br-menu-info.js +1 -1
  398. package/dist/components/br-menu-item.d.ts +1 -1
  399. package/dist/components/br-menu-item.js +1 -1
  400. package/dist/components/br-menu-link.d.ts +1 -1
  401. package/dist/components/br-menu-link.js +1 -1
  402. package/dist/components/br-menu-list.d.ts +1 -1
  403. package/dist/components/br-menu-list.js +1 -1
  404. package/dist/components/br-menu-logo.d.ts +1 -1
  405. package/dist/components/br-menu-logo.js +1 -1
  406. package/dist/components/br-menu-social.d.ts +1 -1
  407. package/dist/components/br-menu-social.js +1 -1
  408. package/dist/components/br-menu.d.ts +1 -1
  409. package/dist/components/br-menu.js +1 -1
  410. package/dist/components/br-message.d.ts +1 -1
  411. package/dist/components/br-message.js +1 -1
  412. package/dist/components/br-modal.d.ts +1 -1
  413. package/dist/components/br-modal.js +1 -1
  414. package/dist/components/br-notification-body.d.ts +1 -1
  415. package/dist/components/br-notification-body.js +1 -1
  416. package/dist/components/br-notification-header.d.ts +1 -1
  417. package/dist/components/br-notification-header.js +1 -1
  418. package/dist/components/br-notification-item.d.ts +1 -1
  419. package/dist/components/br-notification-item.js +1 -1
  420. package/dist/components/br-notification.d.ts +1 -1
  421. package/dist/components/br-notification.js +1 -1
  422. package/dist/components/br-pagination.d.ts +1 -1
  423. package/dist/components/br-pagination.js +1 -1
  424. package/dist/components/br-radio-group.d.ts +1 -1
  425. package/dist/components/br-radio-group.js +1 -1
  426. package/dist/components/br-radio.d.ts +1 -1
  427. package/dist/components/br-radio.js +1 -1
  428. package/dist/components/br-scrim.d.ts +1 -1
  429. package/dist/components/br-scrim.js +1 -1
  430. package/dist/components/br-select-input.d.ts +1 -1
  431. package/dist/components/br-select-input.js +1 -1
  432. package/dist/components/br-select-list.d.ts +1 -1
  433. package/dist/components/br-select-list.js +1 -1
  434. package/dist/components/br-select-option.d.ts +1 -1
  435. package/dist/components/br-select-option.js +1 -1
  436. package/dist/components/br-select.d.ts +1 -1
  437. package/dist/components/br-select.js +1 -1
  438. package/dist/components/br-sign-in.d.ts +1 -1
  439. package/dist/components/br-sign-in.js +1 -1
  440. package/dist/components/br-skip-link-item.d.ts +1 -1
  441. package/dist/components/br-skip-link-item.js +1 -1
  442. package/dist/components/br-skip-link.d.ts +1 -1
  443. package/dist/components/br-skip-link.js +1 -1
  444. package/dist/components/br-skiplink-item.d.ts +1 -1
  445. package/dist/components/br-skiplink-item.js +1 -1
  446. package/dist/components/br-slider.d.ts +1 -1
  447. package/dist/components/br-slider.js +1 -1
  448. package/dist/components/br-step-item.d.ts +1 -1
  449. package/dist/components/br-step-item.js +1 -1
  450. package/dist/components/br-step.d.ts +1 -1
  451. package/dist/components/br-step.js +1 -1
  452. package/dist/components/br-switch.d.ts +1 -1
  453. package/dist/components/br-switch.js +1 -1
  454. package/dist/components/br-tab-item.d.ts +1 -1
  455. package/dist/components/br-tab-item.js +1 -1
  456. package/dist/components/br-tab.d.ts +1 -1
  457. package/dist/components/br-tab.js +1 -1
  458. package/dist/components/br-table-body.d.ts +1 -1
  459. package/dist/components/br-table-body.js +1 -1
  460. package/dist/components/br-table-cell.d.ts +1 -1
  461. package/dist/components/br-table-cell.js +1 -1
  462. package/dist/components/br-table-header-cell.d.ts +1 -1
  463. package/dist/components/br-table-header-cell.js +1 -1
  464. package/dist/components/br-table-header.d.ts +1 -1
  465. package/dist/components/br-table-header.js +1 -1
  466. package/dist/components/br-table-row.d.ts +1 -1
  467. package/dist/components/br-table-row.js +1 -1
  468. package/dist/components/br-table.d.ts +1 -1
  469. package/dist/components/br-table.js +1 -1
  470. package/dist/components/br-tag.d.ts +1 -1
  471. package/dist/components/br-tag.js +1 -1
  472. package/dist/components/br-textarea.d.ts +1 -1
  473. package/dist/components/br-textarea.js +1 -1
  474. package/dist/components/br-time-picker.d.ts +1 -1
  475. package/dist/components/br-time-picker.js +1 -1
  476. package/dist/components/br-tooltip.d.ts +1 -1
  477. package/dist/components/br-tooltip.js +1 -1
  478. package/dist/components/br-upload.d.ts +1 -1
  479. package/dist/components/br-upload.js +1 -1
  480. package/dist/components/br-wizard-panel.d.ts +1 -1
  481. package/dist/components/br-wizard-panel.js +1 -1
  482. package/dist/components/br-wizard.d.ts +1 -1
  483. package/dist/components/br-wizard.js +1 -1
  484. package/dist/components/index.d.ts +89 -89
  485. package/dist/components/index.js +1 -1
  486. package/dist/components/p-0qmYp77w.js +5 -0
  487. package/dist/components/p-5c3rNBXh.js +5 -0
  488. package/dist/components/p-B8oIvH3q.js +5 -0
  489. package/dist/components/p-BECz8XWJ.js +5 -0
  490. package/dist/components/p-BEJGB0Nd.js +5 -0
  491. package/dist/{webcomponents/p-Dmfk7eEe.js → components/p-BJZC_NuV.js} +1 -1
  492. package/dist/components/p-BJtdabsr.js +5 -0
  493. package/dist/components/p-BM4Ys6hX.js +5 -0
  494. package/dist/components/p-BXWh9s7p.js +5 -0
  495. package/dist/components/{p-DA5GS53D.js → p-BblZlUp2.js} +1 -1
  496. package/dist/components/{p-C1yRmdso.js → p-BcqVlof7.js} +1 -1
  497. package/dist/components/p-BeJxz5TQ.js +5 -0
  498. package/dist/components/p-Bezou5CQ.js +5 -0
  499. package/dist/components/p-BjeUETWJ.js +5 -0
  500. package/dist/components/p-CDTENPaP.js +5 -0
  501. package/dist/components/p-CDtFCbKp.js +5 -0
  502. package/dist/components/p-CNwZRgyL.js +5 -0
  503. package/dist/components/p-CZZVc2gK.js +5 -0
  504. package/dist/components/p-Cd6udSDt.js +5 -0
  505. package/dist/components/p-Ci0_RqAE.js +5 -0
  506. package/dist/components/p-CuBgClZm.js +5 -0
  507. package/dist/components/p-D0QYZSoP.js +5 -0
  508. package/dist/components/p-D4SWpW6-.js +5 -0
  509. package/dist/components/p-D579DS7x.js +5 -0
  510. package/dist/components/p-D8K7rhHd.js +5 -0
  511. package/dist/components/p-D9Zo6FlV.js +5 -0
  512. package/dist/components/p-D9nXlCuS.js +5 -0
  513. package/dist/components/p-DKFO6Q_g.js +5 -0
  514. package/dist/components/p-DNJSSCNi.js +5 -0
  515. package/dist/components/p-DOJ1vYOl.js +5 -0
  516. package/dist/components/p-DWhzxlCx.js +5 -0
  517. package/dist/components/p-DYI30IZL.js +5 -0
  518. package/dist/components/p-DcVldfL0.js +5 -0
  519. package/dist/components/p-DhvmHPp4.js +5 -0
  520. package/dist/components/p-DiLI514I.js +5 -0
  521. package/dist/components/p-DwgiHL0b.js +5 -0
  522. package/dist/components/p-Jk_KQE5V.js +5 -0
  523. package/dist/components/p-Nze3Utvd.js +5 -0
  524. package/dist/components/p-WxDB6Dk4.js +5 -0
  525. package/dist/components/p-ZLoeVagg.js +5 -0
  526. package/dist/components/p-gbYJ9sfc.js +5 -0
  527. package/dist/components/p-uc8ABlC_.js +5 -0
  528. package/dist/components/p-v60ypfxD.js +5 -0
  529. package/dist/esm/br-avatar.entry.js +21 -14
  530. package/dist/esm/br-breadcrumb-item.entry.js +2 -2
  531. package/dist/esm/br-breadcrumb.entry.js +49 -22
  532. package/dist/esm/br-button_2.entry.js +77 -35
  533. package/dist/esm/br-card.entry.js +6 -5
  534. package/dist/esm/br-carousel-page.entry.js +3 -3
  535. package/dist/esm/br-carousel.entry.js +78 -22
  536. package/dist/esm/br-checkbox-group.entry.js +157 -27
  537. package/dist/esm/br-checkbox.entry.js +87 -17
  538. package/dist/esm/br-checkgroup.entry.js +5 -2
  539. package/dist/esm/br-collapse_2.entry.js +91 -28
  540. package/dist/esm/br-cookiebar-cookie.entry.js +4 -4
  541. package/dist/esm/br-cookiebar-group.entry.js +4 -4
  542. package/dist/esm/br-cookiebar-header.entry.js +4 -4
  543. package/dist/esm/br-cookiebar-link.entry.js +14 -6
  544. package/dist/esm/br-cookiebar-note-group.entry.js +3 -5
  545. package/dist/esm/br-cookiebar-note.entry.js +4 -4
  546. package/dist/esm/br-cookiebar.entry.js +39 -26
  547. package/dist/esm/br-crumb.entry.js +2 -2
  548. package/dist/esm/br-date-picker_3.entry.js +207 -49
  549. package/dist/esm/br-datetime-picker.entry.js +83 -495
  550. package/dist/esm/br-divider.entry.js +70 -17
  551. package/dist/esm/br-dropdown_2.entry.js +335 -164
  552. package/dist/esm/br-footer-category.entry.js +10 -6
  553. package/dist/esm/br-footer-item.entry.js +9 -4
  554. package/dist/esm/br-footer-legal.entry.js +4 -4
  555. package/dist/esm/br-footer-logo.entry.js +22 -10
  556. package/dist/esm/br-footer-social.entry.js +14 -6
  557. package/dist/esm/br-footer.entry.js +16 -7
  558. package/dist/esm/br-header-function.entry.js +28 -7
  559. package/dist/esm/br-header-link.entry.js +25 -4
  560. package/dist/esm/br-header-list.entry.js +7 -18
  561. package/dist/esm/br-header-logo.entry.js +18 -7
  562. package/dist/esm/br-header.entry.js +96 -37
  563. package/dist/esm/br-icon.entry.js +160 -52
  564. package/dist/esm/br-input.entry.js +152 -42
  565. package/dist/esm/br-item.entry.js +97 -48
  566. package/dist/esm/br-link.entry.js +20 -7
  567. package/dist/esm/br-loading.entry.js +100 -38
  568. package/dist/esm/br-magic-button.entry.js +39 -9
  569. package/dist/esm/br-menu-group.entry.js +14 -3
  570. package/dist/esm/br-menu-header.entry.js +4 -4
  571. package/dist/esm/br-menu-info.entry.js +4 -4
  572. package/dist/esm/br-menu-item.entry.js +27 -5
  573. package/dist/esm/br-menu-link.entry.js +14 -6
  574. package/dist/esm/br-menu-list.entry.js +23 -27
  575. package/dist/esm/br-menu-logo.entry.js +4 -4
  576. package/dist/esm/br-menu-social.entry.js +16 -6
  577. package/dist/esm/br-menu.entry.js +39 -58
  578. package/dist/esm/br-modal.entry.js +44 -42
  579. package/dist/esm/br-notification-body.entry.js +4 -4
  580. package/dist/esm/br-notification-header.entry.js +4 -4
  581. package/dist/esm/br-notification-item.entry.js +14 -8
  582. package/dist/esm/br-notification.entry.js +24 -9
  583. package/dist/esm/br-pagination.entry.js +120 -88
  584. package/dist/esm/br-radio-group.entry.js +108 -59
  585. package/dist/esm/br-radio.entry.js +63 -13
  586. package/dist/esm/br-scrim.entry.js +161 -67
  587. package/dist/esm/br-select-input_3.entry.js +286 -91
  588. package/dist/esm/br-sign-in.entry.js +38 -15
  589. package/dist/esm/br-skip-link-item.entry.js +39 -2
  590. package/dist/esm/br-skip-link.entry.js +50 -33
  591. package/dist/esm/br-skiplink-item.entry.js +22 -6
  592. package/dist/esm/br-slider.entry.js +520 -98
  593. package/dist/esm/br-step_2.entry.js +98 -44
  594. package/dist/esm/br-switch.entry.js +22 -13
  595. package/dist/esm/br-tab-item.entry.js +38 -14
  596. package/dist/esm/br-tab.entry.js +89 -51
  597. package/dist/esm/br-table-body.entry.js +3 -3
  598. package/dist/esm/br-table-cell.entry.js +30 -13
  599. package/dist/esm/br-table-header-cell.entry.js +23 -7
  600. package/dist/esm/br-table-header.entry.js +3 -3
  601. package/dist/esm/br-table-row.entry.js +17 -3
  602. package/dist/esm/br-table.entry.js +68 -22
  603. package/dist/esm/br-tag.entry.js +50 -32
  604. package/dist/esm/br-textarea.entry.js +119 -14
  605. package/dist/esm/br-tooltip.entry.js +88 -42
  606. package/dist/esm/br-upload.entry.js +85 -26
  607. package/dist/esm/br-wizard-panel.entry.js +16 -3
  608. package/dist/esm/br-wizard.entry.js +52 -28
  609. package/dist/esm/{datetime-picker-constants-Bfm58jO6.js → datetime-picker-constants-BtRPYRvA.js} +1 -1
  610. package/dist/esm/{isValid-DIUZX1qS.js → datetime-picker-props-validation-BeTcUTnE.js} +476 -5
  611. package/dist/esm/{event-DFN_so7I.js → event-CfuJQ1DY.js} +1 -1
  612. package/dist/esm/{floating-ui-BavFwMnx.js → floating-ui-CskvaxD5.js} +24 -1
  613. package/dist/esm/{floating-ui.dom-DIK54tTj.js → floating-ui.dom-D9Zo6FlV.js} +201 -114
  614. package/dist/esm/{focus-DxZJrIyL.js → focus-CNwZRgyL.js} +20 -1
  615. package/dist/esm/header-context-BEJGB0Nd.js +15 -0
  616. package/dist/esm/icon.utils-zlORkiHQ.js +43 -0
  617. package/dist/esm/id-BeJxz5TQ.js +34 -0
  618. package/dist/esm/{index-Bo-2igoO.js → index-BQPOWxe5.js} +1 -1
  619. package/dist/esm/{index-C2RBydfd.js → index-ConyRdJe.js} +88 -766
  620. package/dist/esm/index.js +2 -2
  621. package/dist/esm/loader.js +3 -3
  622. package/dist/esm/motion-DWhzxlCx.js +27 -0
  623. package/dist/esm/ownership-CDtFCbKp.js +111 -0
  624. package/dist/esm/prop-warning-BlGV-x0w.js +56 -0
  625. package/dist/esm/props-D07GjR4_.js +116 -0
  626. package/dist/esm/{swipe-Dmfk7eEe.js → swipe-BJZC_NuV.js} +11 -1
  627. package/dist/esm/{validator-D3tVP32U.js → validator-BkWWrDEr.js} +18 -1
  628. package/dist/esm/webcomponents.js +4 -4
  629. package/dist/hydrate/index.js +7541 -2577
  630. package/dist/hydrate/index.mjs +7541 -2577
  631. package/dist/loader/index.d.ts +1 -1
  632. package/dist/types/components/avatar/avatar.d.ts +34 -4
  633. package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +14 -2
  634. package/dist/types/components/breadcrumb/breadcrumb.d.ts +66 -5
  635. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +13 -1
  636. package/dist/types/components/button/button.d.ts +45 -8
  637. package/dist/types/components/card/card.d.ts +31 -3
  638. package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +10 -3
  639. package/dist/types/components/carousel/carousel.d.ts +46 -3
  640. package/dist/types/components/checkbox/checkbox.d.ts +59 -6
  641. package/dist/types/components/checkbox-group/checkbox-group.d.ts +47 -5
  642. package/dist/types/components/checkgroup/checkgroup.d.ts +27 -5
  643. package/dist/types/components/collapse/collapse.d.ts +37 -4
  644. package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +16 -3
  645. package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +15 -6
  646. package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +14 -8
  647. package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +16 -5
  648. package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +13 -3
  649. package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +13 -3
  650. package/dist/types/components/cookiebar/cookiebar.d.ts +35 -10
  651. package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +63 -7
  652. package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +51 -9
  653. package/dist/types/components/datetime-picker/datetime-picker-props-validation.d.ts +4 -2
  654. package/dist/types/components/datetime-picker/datetime-picker.d.ts +118 -12
  655. package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +38 -4
  656. package/dist/types/components/divider/divider.d.ts +45 -8
  657. package/dist/types/components/dropdown/dropdown.d.ts +53 -7
  658. package/dist/types/components/footer/footer-category/footer-category.d.ts +16 -1
  659. package/dist/types/components/footer/footer-item/footer-item.d.ts +17 -1
  660. package/dist/types/components/footer/footer-legal/footer-legal.d.ts +15 -1
  661. package/dist/types/components/footer/footer-logo/footer-logo.d.ts +21 -2
  662. package/dist/types/components/footer/footer-social/footer-social.d.ts +20 -3
  663. package/dist/types/components/footer/footer.d.ts +39 -3
  664. package/dist/types/components/header/header-context.d.ts +1 -0
  665. package/dist/types/components/header/header-function/header-function.d.ts +24 -2
  666. package/dist/types/components/header/header-link/header-link.d.ts +22 -1
  667. package/dist/types/components/header/header-list/header-list.d.ts +16 -8
  668. package/dist/types/components/header/header-logo/header-logo.d.ts +20 -1
  669. package/dist/types/components/header/header.d.ts +47 -7
  670. package/dist/types/components/icon/icon.d.ts +44 -13
  671. package/dist/types/components/icon/icon.utils.d.ts +6 -0
  672. package/dist/types/components/input/input.d.ts +74 -15
  673. package/dist/types/components/item/item.d.ts +44 -6
  674. package/dist/types/components/link/link.d.ts +41 -9
  675. package/dist/types/components/list/list.d.ts +58 -8
  676. package/dist/types/components/loading/loading.d.ts +48 -8
  677. package/dist/types/components/magic-button/magic-button.d.ts +41 -3
  678. package/dist/types/components/menu/menu-group/menu-group.d.ts +19 -1
  679. package/dist/types/components/menu/menu-header/menu-header.d.ts +16 -1
  680. package/dist/types/components/menu/menu-info/menu-info.d.ts +14 -1
  681. package/dist/types/components/menu/menu-item/menu-item.d.ts +27 -3
  682. package/dist/types/components/menu/menu-link/menu-link.d.ts +17 -1
  683. package/dist/types/components/menu/menu-list/menu-list.d.ts +22 -4
  684. package/dist/types/components/menu/menu-logo/menu-logo.d.ts +14 -1
  685. package/dist/types/components/menu/menu-social/menu-social.d.ts +21 -2
  686. package/dist/types/components/menu/menu.d.ts +39 -6
  687. package/dist/types/components/menu/menu.utils.d.ts +2 -6
  688. package/dist/types/components/message/message.d.ts +38 -9
  689. package/dist/types/components/modal/modal.d.ts +40 -4
  690. package/dist/types/components/notification/notification-body/notification-body.d.ts +12 -3
  691. package/dist/types/components/notification/notification-header/notification-header.d.ts +12 -3
  692. package/dist/types/components/notification/notification-item/notification-item.d.ts +15 -3
  693. package/dist/types/components/notification/notification.d.ts +36 -5
  694. package/dist/types/components/pagination/pagination.d.ts +58 -20
  695. package/dist/types/components/radio/radio.d.ts +49 -4
  696. package/dist/types/components/radio-group/radio-group.d.ts +52 -10
  697. package/dist/types/components/scrim/scrim.d.ts +72 -11
  698. package/dist/types/components/scrim/scrim.utils.d.ts +2 -17
  699. package/dist/types/components/select/select-input/select-input.d.ts +22 -4
  700. package/dist/types/components/select/select-list/select-list.d.ts +51 -5
  701. package/dist/types/components/select/select-option/select-option.d.ts +31 -8
  702. package/dist/types/components/select/select.d.ts +152 -13
  703. package/dist/types/components/select/select.types.d.ts +5 -0
  704. package/dist/types/components/sign-in/sign-in.d.ts +32 -4
  705. package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +15 -2
  706. package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +22 -1
  707. package/dist/types/components/skip-link/skip-link.d.ts +37 -3
  708. package/dist/types/components/slider/slider.d.ts +147 -21
  709. package/dist/types/components/slider/slider.types.d.ts +7 -2
  710. package/dist/types/components/slider/slider.utils.d.ts +27 -0
  711. package/dist/types/components/step/step-item/step-item.d.ts +15 -3
  712. package/dist/types/components/step/step.d.ts +47 -12
  713. package/dist/types/components/switch/switch.d.ts +39 -6
  714. package/dist/types/components/tab/tab-item/tab-item.d.ts +24 -4
  715. package/dist/types/components/tab/tab.d.ts +48 -11
  716. package/dist/types/components/table/table-body/table-body.d.ts +10 -6
  717. package/dist/types/components/table/table-cell/table-cell.d.ts +10 -6
  718. package/dist/types/components/table/table-header/table-header.d.ts +10 -6
  719. package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +18 -6
  720. package/dist/types/components/table/table-row/table-row.d.ts +11 -6
  721. package/dist/types/components/table/table.d.ts +49 -11
  722. package/dist/types/components/tag/tag.d.ts +55 -7
  723. package/dist/types/components/textarea/textarea.d.ts +75 -5
  724. package/dist/types/components/textarea/textarea.types.d.ts +4 -0
  725. package/dist/types/components/tooltip/tooltip.d.ts +46 -8
  726. package/dist/types/components/upload/upload.d.ts +78 -10
  727. package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +20 -2
  728. package/dist/types/components/wizard/wizard.d.ts +44 -7
  729. package/dist/types/components.d.ts +5827 -1354
  730. package/dist/types/shared/utils/floating-ui.d.ts +4 -0
  731. package/dist/types/shared/utils/focus.d.ts +14 -0
  732. package/dist/types/shared/utils/form.d.ts +8 -0
  733. package/dist/types/shared/utils/getRandom.d.ts +1 -0
  734. package/dist/types/shared/utils/id.d.ts +1 -1
  735. package/dist/types/shared/utils/index.d.ts +6 -1
  736. package/dist/types/shared/utils/motion.d.ts +14 -0
  737. package/dist/types/shared/utils/ownership.d.ts +33 -0
  738. package/dist/types/shared/utils/prop-warning.d.ts +7 -0
  739. package/dist/types/shared/utils/props.d.ts +38 -0
  740. package/dist/types/shared/utils/swipe.d.ts +5 -0
  741. package/dist/types/shared/utils/virtual-scroll.d.ts +25 -0
  742. package/dist/types/stencil-public-runtime.d.ts +73 -55
  743. package/dist/webcomponents/index.esm.js +1 -1
  744. package/dist/webcomponents/p-078bd760.entry.js +5 -0
  745. package/dist/webcomponents/p-07c2cdff.entry.js +5 -0
  746. package/dist/webcomponents/{p-7f7506f0.entry.js → p-09817344.entry.js} +1 -1
  747. package/dist/webcomponents/p-0b0cf355.entry.js +5 -0
  748. package/dist/webcomponents/p-0d2ca2f7.entry.js +5 -0
  749. package/dist/webcomponents/p-0d79ca44.entry.js +5 -0
  750. package/dist/webcomponents/p-0fe3c47b.entry.js +5 -0
  751. package/dist/webcomponents/p-116b53c9.entry.js +5 -0
  752. package/dist/webcomponents/p-1240dae7.entry.js +5 -0
  753. package/dist/webcomponents/p-14ff5865.entry.js +5 -0
  754. package/dist/webcomponents/p-15743a02.entry.js +5 -0
  755. package/dist/webcomponents/p-16cebf49.entry.js +5 -0
  756. package/dist/webcomponents/p-1884b9d3.entry.js +5 -0
  757. package/dist/webcomponents/p-19a38e20.entry.js +5 -0
  758. package/dist/webcomponents/p-1d36c8fa.entry.js +5 -0
  759. package/dist/webcomponents/p-1fa4b5b2.entry.js +5 -0
  760. package/dist/webcomponents/p-212c069b.entry.js +5 -0
  761. package/dist/webcomponents/p-23f37cd6.entry.js +5 -0
  762. package/dist/webcomponents/p-24502b63.entry.js +5 -0
  763. package/dist/webcomponents/p-27fb81f3.entry.js +5 -0
  764. package/dist/webcomponents/p-28844490.entry.js +5 -0
  765. package/dist/webcomponents/p-2b41bdcc.entry.js +5 -0
  766. package/dist/webcomponents/p-2cb1e09b.entry.js +5 -0
  767. package/dist/webcomponents/p-2fcda70b.entry.js +5 -0
  768. package/dist/webcomponents/p-3378300c.entry.js +5 -0
  769. package/dist/webcomponents/p-3ae9cf69.entry.js +5 -0
  770. package/dist/webcomponents/p-3b79cd49.entry.js +5 -0
  771. package/dist/webcomponents/p-3c1513ec.entry.js +5 -0
  772. package/dist/webcomponents/p-4118b878.entry.js +5 -0
  773. package/dist/webcomponents/p-4534a3c3.entry.js +5 -0
  774. package/dist/webcomponents/p-48abf568.entry.js +5 -0
  775. package/dist/webcomponents/p-4e5ea05c.entry.js +5 -0
  776. package/dist/webcomponents/p-513ee754.entry.js +5 -0
  777. package/dist/webcomponents/p-521a1076.entry.js +5 -0
  778. package/dist/webcomponents/p-59fc52c0.entry.js +5 -0
  779. package/dist/webcomponents/p-5a7c2031.entry.js +5 -0
  780. package/dist/webcomponents/p-5a9f4ea2.entry.js +5 -0
  781. package/dist/webcomponents/p-5f422a69.entry.js +5 -0
  782. package/dist/webcomponents/p-61977114.entry.js +5 -0
  783. package/dist/webcomponents/p-6850e98e.entry.js +5 -0
  784. package/dist/webcomponents/p-71853dfc.entry.js +5 -0
  785. package/dist/webcomponents/p-76d51654.entry.js +5 -0
  786. package/dist/webcomponents/p-77e242f3.entry.js +5 -0
  787. package/dist/webcomponents/p-7b849472.entry.js +5 -0
  788. package/dist/webcomponents/p-7dbfb875.entry.js +5 -0
  789. package/dist/webcomponents/p-7fa7f052.entry.js +5 -0
  790. package/dist/webcomponents/p-81c65747.entry.js +5 -0
  791. package/dist/webcomponents/p-82759002.entry.js +5 -0
  792. package/dist/webcomponents/p-91a5329f.entry.js +5 -0
  793. package/dist/webcomponents/p-94848046.entry.js +5 -0
  794. package/dist/webcomponents/p-966773a9.entry.js +5 -0
  795. package/dist/webcomponents/p-9abb5a53.entry.js +5 -0
  796. package/dist/webcomponents/p-9bf2e325.entry.js +5 -0
  797. package/dist/webcomponents/p-9c943b40.entry.js +5 -0
  798. package/dist/webcomponents/p-9ec3ca00.entry.js +5 -0
  799. package/dist/webcomponents/p-B0PbhaxL.js +5 -0
  800. package/dist/webcomponents/p-BEJGB0Nd.js +5 -0
  801. package/dist/{components/p-Dmfk7eEe.js → webcomponents/p-BJZC_NuV.js} +1 -1
  802. package/dist/webcomponents/p-BJtdabsr.js +5 -0
  803. package/dist/webcomponents/p-BeJxz5TQ.js +5 -0
  804. package/dist/webcomponents/p-BkWWrDEr.js +5 -0
  805. package/dist/webcomponents/p-BlGV-x0w.js +5 -0
  806. package/dist/webcomponents/{p-Bfm58jO6.js → p-BtRPYRvA.js} +1 -1
  807. package/dist/webcomponents/p-CDtFCbKp.js +5 -0
  808. package/dist/webcomponents/p-CNwZRgyL.js +5 -0
  809. package/dist/webcomponents/{p-DFN_so7I.js → p-CfuJQ1DY.js} +1 -1
  810. package/dist/webcomponents/p-ConyRdJe.js +7 -0
  811. package/dist/webcomponents/p-D9Zo6FlV.js +5 -0
  812. package/dist/webcomponents/{p-BhMVJQ4-.js → p-DV-iW9Aj.js} +1 -1
  813. package/dist/webcomponents/p-DWhzxlCx.js +5 -0
  814. package/dist/webcomponents/p-EbtQZm5s.js +5 -0
  815. package/dist/webcomponents/p-ad91f149.entry.js +5 -0
  816. package/dist/webcomponents/p-aeea1f17.entry.js +5 -0
  817. package/dist/webcomponents/p-b02a7218.entry.js +5 -0
  818. package/dist/webcomponents/p-b16590fc.entry.js +5 -0
  819. package/dist/webcomponents/{p-12286e73.entry.js → p-b55425b7.entry.js} +1 -1
  820. package/dist/webcomponents/p-c1dafd8d.entry.js +5 -0
  821. package/dist/webcomponents/p-c2ca0289.entry.js +5 -0
  822. package/dist/webcomponents/p-c8af334e.entry.js +5 -0
  823. package/dist/webcomponents/p-cac49c6a.entry.js +5 -0
  824. package/dist/webcomponents/p-cb9ebfbe.entry.js +5 -0
  825. package/dist/webcomponents/p-ce3d689c.entry.js +5 -0
  826. package/dist/webcomponents/p-d11f95a0.entry.js +5 -0
  827. package/dist/webcomponents/p-d5d2205c.entry.js +5 -0
  828. package/dist/webcomponents/p-dad03b49.entry.js +5 -0
  829. package/dist/webcomponents/p-db8e6322.entry.js +5 -0
  830. package/dist/webcomponents/p-dea8015f.entry.js +5 -0
  831. package/dist/webcomponents/p-e07e309d.entry.js +5 -0
  832. package/dist/webcomponents/p-e53d874b.entry.js +5 -0
  833. package/dist/webcomponents/p-e5540387.entry.js +5 -0
  834. package/dist/webcomponents/p-e94a52ac.entry.js +5 -0
  835. package/dist/webcomponents/p-e9be4d3f.entry.js +5 -0
  836. package/dist/webcomponents/p-e9db9381.entry.js +5 -0
  837. package/dist/webcomponents/p-edca5de1.entry.js +5 -0
  838. package/dist/webcomponents/p-ee5b9fc9.entry.js +5 -0
  839. package/dist/webcomponents/p-f4ef8c63.entry.js +5 -0
  840. package/dist/webcomponents/p-zlORkiHQ.js +5 -0
  841. package/dist/webcomponents/webcomponents.esm.js +1 -1
  842. package/package.json +18 -3
  843. package/dist/cjs/clamp-Co_hWptd.js +0 -25
  844. package/dist/cjs/id-CjRFMzf6.js +0 -20
  845. package/dist/cjs/props-CScmBvKd.js +0 -24
  846. package/dist/collection/pages/components/cookiebar/index.js +0 -26
  847. package/dist/collection/pages/components/link/index.js +0 -29
  848. package/dist/collection/pages/components/pagination/index.js +0 -12
  849. package/dist/collection/pages/components/slider/index.js +0 -18
  850. package/dist/components/p-6OdfnwnK.js +0 -5
  851. package/dist/components/p-AmOh1cks.js +0 -5
  852. package/dist/components/p-B4ylcipx.js +0 -5
  853. package/dist/components/p-BCv4PCOx.js +0 -5
  854. package/dist/components/p-BLOyd_iF.js +0 -5
  855. package/dist/components/p-BODem6tr.js +0 -5
  856. package/dist/components/p-Bb-nLtTG.js +0 -5
  857. package/dist/components/p-BeFK-82z.js +0 -5
  858. package/dist/components/p-BkS6ujyf.js +0 -5
  859. package/dist/components/p-BloE-KAN.js +0 -5
  860. package/dist/components/p-BoSc_kmY.js +0 -5
  861. package/dist/components/p-BrH3r7eL.js +0 -5
  862. package/dist/components/p-BsZ0Ny88.js +0 -5
  863. package/dist/components/p-ByHVf7zy.js +0 -5
  864. package/dist/components/p-CdDwqbBv.js +0 -5
  865. package/dist/components/p-CdF-gmk1.js +0 -5
  866. package/dist/components/p-CfyjGPGI.js +0 -5
  867. package/dist/components/p-CjF7pBVQ.js +0 -5
  868. package/dist/components/p-ClqtllDH.js +0 -5
  869. package/dist/components/p-CqW2Yh34.js +0 -5
  870. package/dist/components/p-DIK54tTj.js +0 -5
  871. package/dist/components/p-DLE5ioJN.js +0 -5
  872. package/dist/components/p-DQRSHR-D.js +0 -5
  873. package/dist/components/p-DRVMm1Py.js +0 -5
  874. package/dist/components/p-DRnCpVrL.js +0 -5
  875. package/dist/components/p-DVdlaP7z.js +0 -5
  876. package/dist/components/p-DeeF6ok0.js +0 -5
  877. package/dist/components/p-Dim2PnUm.js +0 -5
  878. package/dist/components/p-Dk8rfQjL.js +0 -5
  879. package/dist/components/p-DkmEpoef.js +0 -5
  880. package/dist/components/p-DwfAYaEv.js +0 -5
  881. package/dist/components/p-DxZJrIyL.js +0 -5
  882. package/dist/components/p-P2Z_MmH6.js +0 -5
  883. package/dist/components/p-Xa0Mj4pP.js +0 -5
  884. package/dist/components/p-_vsQvdxD.js +0 -5
  885. package/dist/components/p-aNjo4Alx.js +0 -5
  886. package/dist/components/p-gvnfuTjd.js +0 -5
  887. package/dist/components/p-rB-s1M3Q.js +0 -5
  888. package/dist/esm/clamp-gvnfuTjd.js +0 -23
  889. package/dist/esm/id-BkS6ujyf.js +0 -18
  890. package/dist/esm/props-DRVMm1Py.js +0 -22
  891. package/dist/webcomponents/p-00cc31f9.entry.js +0 -5
  892. package/dist/webcomponents/p-026475bd.entry.js +0 -5
  893. package/dist/webcomponents/p-0291ab28.entry.js +0 -5
  894. package/dist/webcomponents/p-03e5a7dc.entry.js +0 -5
  895. package/dist/webcomponents/p-060df8ee.entry.js +0 -5
  896. package/dist/webcomponents/p-09fce2a5.entry.js +0 -5
  897. package/dist/webcomponents/p-1002bbff.entry.js +0 -5
  898. package/dist/webcomponents/p-1124de33.entry.js +0 -5
  899. package/dist/webcomponents/p-12e97d80.entry.js +0 -5
  900. package/dist/webcomponents/p-1580beee.entry.js +0 -5
  901. package/dist/webcomponents/p-1b19b191.entry.js +0 -5
  902. package/dist/webcomponents/p-2baf353b.entry.js +0 -5
  903. package/dist/webcomponents/p-2eb9a42c.entry.js +0 -5
  904. package/dist/webcomponents/p-30c82805.entry.js +0 -5
  905. package/dist/webcomponents/p-31bd1c74.entry.js +0 -5
  906. package/dist/webcomponents/p-31db2313.entry.js +0 -5
  907. package/dist/webcomponents/p-33a3dc63.entry.js +0 -5
  908. package/dist/webcomponents/p-3889c51f.entry.js +0 -5
  909. package/dist/webcomponents/p-3f2c179a.entry.js +0 -5
  910. package/dist/webcomponents/p-470eb770.entry.js +0 -5
  911. package/dist/webcomponents/p-4ae387ae.entry.js +0 -5
  912. package/dist/webcomponents/p-4e65df84.entry.js +0 -5
  913. package/dist/webcomponents/p-51a62876.entry.js +0 -5
  914. package/dist/webcomponents/p-5860b96b.entry.js +0 -5
  915. package/dist/webcomponents/p-5b9c01e9.entry.js +0 -5
  916. package/dist/webcomponents/p-5df2f1dd.entry.js +0 -5
  917. package/dist/webcomponents/p-5f3f7b3f.entry.js +0 -5
  918. package/dist/webcomponents/p-5f6afb79.entry.js +0 -5
  919. package/dist/webcomponents/p-5f9c28a7.entry.js +0 -5
  920. package/dist/webcomponents/p-62511921.entry.js +0 -5
  921. package/dist/webcomponents/p-63b52947.entry.js +0 -5
  922. package/dist/webcomponents/p-67a8e0b7.entry.js +0 -5
  923. package/dist/webcomponents/p-6OdfnwnK.js +0 -5
  924. package/dist/webcomponents/p-7b2a5fec.entry.js +0 -5
  925. package/dist/webcomponents/p-7f95e2f5.entry.js +0 -5
  926. package/dist/webcomponents/p-8128833c.entry.js +0 -5
  927. package/dist/webcomponents/p-8200ccb1.entry.js +0 -5
  928. package/dist/webcomponents/p-82b100fd.entry.js +0 -5
  929. package/dist/webcomponents/p-8806df15.entry.js +0 -5
  930. package/dist/webcomponents/p-881eb81a.entry.js +0 -5
  931. package/dist/webcomponents/p-8bd3d541.entry.js +0 -5
  932. package/dist/webcomponents/p-90648343.entry.js +0 -5
  933. package/dist/webcomponents/p-9100a5f7.entry.js +0 -5
  934. package/dist/webcomponents/p-91313d77.entry.js +0 -5
  935. package/dist/webcomponents/p-946b2ac0.entry.js +0 -5
  936. package/dist/webcomponents/p-98e7ccb9.entry.js +0 -5
  937. package/dist/webcomponents/p-99f2bddb.entry.js +0 -5
  938. package/dist/webcomponents/p-9adbdb0a.entry.js +0 -5
  939. package/dist/webcomponents/p-9c260049.entry.js +0 -5
  940. package/dist/webcomponents/p-9ed51017.entry.js +0 -5
  941. package/dist/webcomponents/p-BkS6ujyf.js +0 -5
  942. package/dist/webcomponents/p-C2RBydfd.js +0 -6
  943. package/dist/webcomponents/p-CO5cOQQU.js +0 -5
  944. package/dist/webcomponents/p-D3tVP32U.js +0 -5
  945. package/dist/webcomponents/p-DIK54tTj.js +0 -5
  946. package/dist/webcomponents/p-DRVMm1Py.js +0 -5
  947. package/dist/webcomponents/p-DxZJrIyL.js +0 -5
  948. package/dist/webcomponents/p-a0b299dd.entry.js +0 -5
  949. package/dist/webcomponents/p-a2c5fad0.entry.js +0 -5
  950. package/dist/webcomponents/p-a3e044d7.entry.js +0 -5
  951. package/dist/webcomponents/p-a9f23aa7.entry.js +0 -5
  952. package/dist/webcomponents/p-a9f2fcbc.entry.js +0 -5
  953. package/dist/webcomponents/p-b6c68136.entry.js +0 -5
  954. package/dist/webcomponents/p-b6e9b8d1.entry.js +0 -5
  955. package/dist/webcomponents/p-c333eac6.entry.js +0 -5
  956. package/dist/webcomponents/p-c3732fd6.entry.js +0 -5
  957. package/dist/webcomponents/p-c458ed0e.entry.js +0 -5
  958. package/dist/webcomponents/p-c91000ff.entry.js +0 -5
  959. package/dist/webcomponents/p-c9c6ab2d.entry.js +0 -5
  960. package/dist/webcomponents/p-cd2550d6.entry.js +0 -5
  961. package/dist/webcomponents/p-cf42613f.entry.js +0 -5
  962. package/dist/webcomponents/p-d0b0b420.entry.js +0 -5
  963. package/dist/webcomponents/p-d1b32ee8.entry.js +0 -5
  964. package/dist/webcomponents/p-db65b083.entry.js +0 -5
  965. package/dist/webcomponents/p-de7c101d.entry.js +0 -5
  966. package/dist/webcomponents/p-dfb77dd0.entry.js +0 -5
  967. package/dist/webcomponents/p-e258da78.entry.js +0 -5
  968. package/dist/webcomponents/p-e31ddd42.entry.js +0 -5
  969. package/dist/webcomponents/p-e8d82227.entry.js +0 -5
  970. package/dist/webcomponents/p-e988cf1d.entry.js +0 -5
  971. package/dist/webcomponents/p-ed9122a1.entry.js +0 -5
  972. package/dist/webcomponents/p-ee347d2e.entry.js +0 -5
  973. package/dist/webcomponents/p-f1c01d52.entry.js +0 -5
  974. package/dist/webcomponents/p-f5baf8be.entry.js +0 -5
  975. package/dist/webcomponents/p-fb593739.entry.js +0 -5
  976. package/dist/webcomponents/p-fff9acd4.entry.js +0 -5
  977. package/dist/webcomponents/p-gvnfuTjd.js +0 -5
@@ -8,19 +8,53 @@ import { clampNumber } from "../../shared/utils/clamp";
8
8
  import { dispatchNativeFormEvent, getEventTarget, isEventTargetInside, redispatchNativeFormEvent, } from "../../shared/utils/event";
9
9
  import { getFormValidationState, isFormControlDisabled, setFormValidity, } from "../../shared/utils/form";
10
10
  import { generateUniqueId } from "../../shared/utils/id";
11
+ import { reportInvalidPropValue } from "../../shared/utils/prop-warning";
12
+ import { resolveAllowedPropValue, resolveNumberPropValue } from "../../shared/utils/props";
11
13
  import { createRafBatcher } from "../../shared/utils/raf-batcher";
12
14
  import { hasAssignedSlotContent } from "../../shared/utils/slot";
13
15
  import { resolveFormValidator, runFormValidator } from "../../shared/utils/validator";
16
+ import { buildGradientCss, interpolateGradientColor, normalizeSteps, parseGradientStops, } from "./slider.utils";
17
+ const SLIDER_ORIENTATIONS = ['horizontal', 'vertical'];
14
18
  /**
15
- * ## Design System
19
+ * O componente `br-slider` é o controle deslizante do GovBR-DS, desenvolvido para permitir que a pessoa usuária selecione um valor numérico único ou uma faixa contínua de valores dentro de um intervalo delimitado.
16
20
  *
17
- * 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/slider?tab=designer).
21
+ * ### Para que serve
18
22
  *
19
- * @category Formulários
23
+ * - **Seleção numérica fluida:** Permite escolher valores deslizando uma alça (thumb) ao longo de uma trilha graduada, com atualização em tempo real.
24
+ * - **Modo simples e composto (faixa / range):** Suporta uma única alça para valor individual ou duas alças para delimitação de intervalo mínimo e máximo (ex.: faixa de preços, período de anos).
25
+ * - **Entrada numérica sincronizada:** Oferece campo de entrada numérico integrado opcional para digitação exata com sincronização bidirecional.
26
+ * - **Acessibilidade WAI-ARIA:** Suporta controle total por teclado (setas direcionais, Page Up, Page Down, Home e End) e comunica valores atuais via `aria-valuenow`.
27
+ *
28
+ * ### Quando utilizar
29
+ *
30
+ * - **Utilize quando:**
31
+ * - O usuário precisar definir grandezas graduais onde a exploração intuitiva seja mais conveniente do que a digitação manual isolada.
32
+ * - Para filtros de faixa de valores (ex.: "De R$ 100 até R$ 500").
33
+ * - **Evite e prefira outro componente quando:**
34
+ * - A precisão exata for estritamente necessária e o intervalo for arbitrário (prefira `br-input` numérico).
35
+ * - O valor for uma escolha categórica sem escala quantitativa (prefira `br-select` ou `br-radio`).
36
+ *
37
+ * ### Estrutura e Slots
38
+ *
39
+ * O `br-slider` possui estrutura rica com slots de referência, validação e customização da alça:
40
+ * - `ref-start`: Slot para customização do rótulo de início da trilha.
41
+ * - `ref-end`: Slot para customização do rótulo de fim da trilha.
42
+ * - `feedback`: Slot para mensagens de validação (como `br-message`).
43
+ * - `thumb-icon`: Slot para ícone personalizado na alça de controle em modo simples.
44
+ * - `thumb-start-icon`: Slot para ícone na alça inicial em modo composto (`range`).
45
+ * - `thumb-end-icon`: Slot para ícone na alça final em modo composto (`range`).
46
+ *
47
+ * 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/slider?tab=designer).
48
+ *
49
+
50
+ * @category Formulários, Seleção
20
51
  * @status stable
21
52
  * @slot ref-start - Conteúdo exibido como referência inicial abaixo da trilha.
22
53
  * @slot ref-end - Conteúdo exibido como referência final abaixo da trilha.
23
54
  * @slot feedback - Mensagem de validação, normalmente um `br-message`.
55
+ * @slot thumb-icon - Ícone customizado na alça de controle em modo simples.
56
+ * @slot thumb-start-icon - Ícone customizado na alça inicial em modo composto.
57
+ * @slot thumb-end-icon - Ícone customizado na alça final em modo composto.
24
58
  *
25
59
  * @part base - Contêiner principal do slider.
26
60
  * @part layout - Contêiner de layout do slider.
@@ -42,6 +76,8 @@ import { resolveFormValidator, runFormValidator } from "../../shared/utils/valid
42
76
  * @part input-wrapper - Contêiner do campo numérico.
43
77
  * @part input - Campo numérico sincronizado com o slider.
44
78
  * @part feedback - Contêiner da mensagem de validação.
79
+ * @part steps - Contêiner das marcações de passos customizados.
80
+ * @part step - Botão indicador de passo customizado individual.
45
81
  */
46
82
  export class Slider {
47
83
  constructor() {
@@ -59,6 +95,9 @@ export class Slider {
59
95
  */
60
96
  this.hasRefStart = false;
61
97
  this.hasFeedbackSlot = false;
98
+ this.hasThumbIconSlot = false;
99
+ this.hasThumbStartIconSlot = false;
100
+ this.hasThumbEndIconSlot = false;
62
101
  this.customValidationMessage = '';
63
102
  this.validatorMessage = null;
64
103
  this.isValidating = false;
@@ -68,24 +107,26 @@ export class Slider {
68
107
  */
69
108
  this.customId = generateUniqueId();
70
109
  /**
71
- * Valor mínimo aceito pelo slider.
110
+ * Valor mínimo aceito pelo slider. Valores inválidos usam `0`.
72
111
  */
73
112
  this.min = 0;
74
113
  /**
75
- * Valor máximo aceito pelo slider.
114
+ * Valor máximo aceito pelo slider. Deve ser maior que `min`; valores inválidos usam `100` e relações inválidas usam `min + 100`.
76
115
  */
77
116
  this.max = 100;
78
117
  /**
79
- * Incremento aplicado a cada passo.
118
+ * Incremento aplicado a cada passo. Deve ser maior que `0`; valores inválidos usam `1`.
80
119
  */
81
120
  this.step = 1;
82
121
  /**
83
- * Valor atual do slider (alça inicial no modo composto).
122
+ * Valor atual do slider (alça inicial no modo composto). Valores não finitos usam o limite mínimo;
123
+ * valores fora do intervalo são limitados.
84
124
  */
85
125
  this.value = 0;
86
126
  /**
87
127
  * Valor da alça final no modo composto (`range`).
88
- * Quando não fornecido em modo composto, assume o valor de `max`.
128
+ * Quando não fornecido em modo composto, assume o valor de `max`. Valores não finitos usam `max`,
129
+ * valores fora do intervalo são limitados.
89
130
  * @deprecated Use `rangeValue`.
90
131
  */
91
132
  this.valueEnd = NaN;
@@ -93,11 +134,6 @@ export class Slider {
93
134
  * Desativa o slider, tornando-o não interativo.
94
135
  */
95
136
  this.disabled = false;
96
- /**
97
- * Densidade da alça de controle.
98
- * `small` = 16px (desktop compacto), `medium` = 20px (desktop padrão), `large` = 24px (mobile).
99
- */
100
- this.density = 'medium';
101
137
  /**
102
138
  * Exibe o slider na orientação vertical.
103
139
  * @deprecated Use `orientation`.
@@ -113,8 +149,11 @@ export class Slider {
113
149
  */
114
150
  this.showLabel = false;
115
151
  /**
116
- * Exibe campo de entrada numérico sincronizado com a alça.
117
- * Quando ativo, a etiqueta de valor não é exibida.
152
+ * Exibe um `br-input` numérico sincronizado com a alça.
153
+ * No modo `range`, exibe um campo para o início e outro para o fim; na
154
+ * orientação horizontal ficam nas extremidades esquerda e direita, e na
155
+ * vertical ficam acima e abaixo da trilha. Quando ativo, a etiqueta de valor
156
+ * não é exibida.
118
157
  */
119
158
  this.showInput = false;
120
159
  /**
@@ -132,7 +171,14 @@ export class Slider {
132
171
  * Quando ativo, sobrescreve o conteúdo dos slots `ref-start` e `ref-end`.
133
172
  */
134
173
  this.showBounds = false;
135
- this.inputEditing = false;
174
+ /**
175
+ * Densidade visual do componente.
176
+ * Altera exclusivamente as dimensões da alça de controle (thumb).
177
+ * Valores aceitos: 'small' (16px), 'medium' (20px - padrão), 'large' (24px).
178
+ * 'high' e 'low' são aceitos como sinônimos de 'small' e 'large'.
179
+ */
180
+ this.density = 'medium';
181
+ this.inputEditing = null;
136
182
  this.draggingThumb = 'start';
137
183
  this.tickValuesCacheKey = '';
138
184
  this.tickValuesCache = [];
@@ -187,31 +233,65 @@ export class Slider {
187
233
  dispatchNativeFormEvent(this.el, 'change');
188
234
  void this.validate();
189
235
  };
190
- this.handleInputInput = (event) => {
191
- this.inputEditing = true;
192
- const parsed = parseFloat(event.target.value);
236
+ this.handleInputInput = (event, thumb) => {
237
+ this.inputEditing = thumb;
238
+ const input = event.currentTarget;
239
+ const parsed = Number.parseFloat(input.value ?? '');
193
240
  if (!Number.isNaN(parsed)) {
194
- const next = this.clamp(parsed);
195
- if (next !== this.value) {
196
- this.value = next;
197
- this.brDidChangeValue.emit(this.value);
241
+ const { current, min, max } = this.getInputValueState(thumb);
242
+ if (parsed >= min && parsed <= max && parsed !== current) {
243
+ this.updateValueFromInput(thumb, parsed);
198
244
  }
199
245
  }
200
246
  redispatchNativeFormEvent(this.el, event, 'input');
201
247
  };
202
- this.handleInputBlur = (event) => {
203
- this.inputEditing = false;
204
- const raw = event.target.value;
205
- const parsed = parseFloat(raw);
206
- const next = Number.isNaN(parsed) ? this.value : this.snapToStep(this.clamp(parsed));
207
- if (next !== this.value) {
208
- this.value = next;
209
- this.brDidChangeValue.emit(this.value);
210
- }
211
- event.target.value = String(this.value);
248
+ this.handleInputChange = (event, thumb) => {
249
+ event.stopPropagation();
250
+ const input = event.currentTarget;
251
+ const { current, min, max } = this.getInputValueState(thumb);
252
+ const parsed = Number.parseFloat(input.value ?? '');
253
+ const next = Number.isNaN(parsed) ? current : this.snapToStep(this.clamp(parsed, max, min));
254
+ this.inputEditing = null;
255
+ if (next !== current)
256
+ this.updateValueFromInput(thumb, next);
257
+ input.value = String(next);
212
258
  dispatchNativeFormEvent(this.el, 'change');
213
259
  void this.validate();
214
260
  };
261
+ this.handleStepClick = (val) => {
262
+ if (this.isDisabled())
263
+ return;
264
+ if (this.range) {
265
+ const distStart = Math.abs(val - this.value);
266
+ const distEnd = Math.abs(val - this.valueEnd);
267
+ if (distStart <= distEnd) {
268
+ if (val !== this.value) {
269
+ this.value = val;
270
+ this.brDidChangeValue.emit(this.value);
271
+ this.syncRangeValue();
272
+ dispatchNativeFormEvent(this.el, 'input');
273
+ dispatchNativeFormEvent(this.el, 'change');
274
+ void this.validate();
275
+ }
276
+ }
277
+ else if (val !== this.valueEnd) {
278
+ this.valueEnd = val;
279
+ this.brDidChangeValueEnd.emit(this.valueEnd);
280
+ this.syncRangeValue();
281
+ dispatchNativeFormEvent(this.el, 'input');
282
+ dispatchNativeFormEvent(this.el, 'change');
283
+ void this.validate();
284
+ }
285
+ }
286
+ else if (val !== this.value) {
287
+ this.value = val;
288
+ this.brDidChangeValue.emit(this.value);
289
+ this.syncRangeValue();
290
+ dispatchNativeFormEvent(this.el, 'input');
291
+ dispatchNativeFormEvent(this.el, 'change');
292
+ void this.validate();
293
+ }
294
+ };
215
295
  }
216
296
  formDisabledCallback(disabled) {
217
297
  this.formDisabled = disabled;
@@ -233,16 +313,43 @@ export class Slider {
233
313
  if (this.range && !Number.isNaN(end))
234
314
  this.valueEnd = end;
235
315
  }
316
+ get effectiveMin() {
317
+ return resolveNumberPropValue(this.el, 'min', this.min, Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, 0);
318
+ }
319
+ get effectiveMax() {
320
+ const min = this.effectiveMin;
321
+ const max = resolveNumberPropValue(this.el, 'max', this.max, Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, 100);
322
+ if (max > min)
323
+ return max;
324
+ reportInvalidPropValue(this.el, 'max', this.max, 'O valor deve ser maior que "min".', `Aplicando o fallback ${min + 100}.`);
325
+ return min + 100;
326
+ }
327
+ get effectiveStep() {
328
+ const step = resolveNumberPropValue(this.el, 'step', this.step, 0, Number.MAX_SAFE_INTEGER, 1);
329
+ if (step > 0)
330
+ return step;
331
+ reportInvalidPropValue(this.el, 'step', this.step, 'O valor deve ser maior que 0.', 'Aplicando o fallback 1.');
332
+ return 1;
333
+ }
334
+ get effectiveValue() {
335
+ return resolveNumberPropValue(this.el, 'value', this.value, this.effectiveMin, this.effectiveMax, this.effectiveMin);
336
+ }
337
+ get effectiveValueEnd() {
338
+ if (!this.range || Number.isNaN(this.valueEnd))
339
+ return this.effectiveMax;
340
+ return resolveNumberPropValue(this.el, 'valueEnd', this.valueEnd, this.effectiveMin, this.effectiveMax, this.effectiveMax);
341
+ }
236
342
  onValueChange(newValue) {
237
- const numericMax = this.range && !Number.isNaN(this.valueEnd) ? this.valueEnd : this.max;
238
- const clamped = this.clamp(newValue, numericMax);
343
+ const normalized = this.effectiveValue;
344
+ const numericMax = this.range ? this.effectiveValueEnd : this.effectiveMax;
345
+ const clamped = this.clamp(normalized, numericMax);
239
346
  if (clamped !== newValue) {
240
347
  this.value = clamped;
241
348
  return;
242
349
  }
243
350
  this.elementInternals?.setFormValue(this.getFormValue());
244
- if (this.inputEl && !this.inputEditing) {
245
- this.inputEl.value = String(clamped);
351
+ if (this.inputStartEl && this.inputEditing !== 'start') {
352
+ this.inputStartEl.value = String(clamped);
246
353
  }
247
354
  this.syncRangeValue();
248
355
  this.updateValidity();
@@ -250,28 +357,35 @@ export class Slider {
250
357
  onValueEndChange(newValue) {
251
358
  if (!this.range)
252
359
  return;
253
- const clamped = this.clamp(newValue, this.max, this.value);
360
+ const clamped = this.clamp(this.effectiveValueEnd, this.effectiveMax, this.effectiveValue);
254
361
  if (clamped !== newValue) {
255
362
  this.valueEnd = clamped;
256
363
  return;
257
364
  }
258
365
  this.elementInternals?.setFormValue(this.getFormValue());
366
+ if (this.inputEndEl && this.inputEditing !== 'end') {
367
+ this.inputEndEl.value = String(clamped);
368
+ }
259
369
  this.syncRangeValue();
260
370
  this.updateValidity();
261
371
  }
262
372
  onRangeValueChange(newValue) {
263
373
  if (!this.range || !newValue)
264
374
  return;
375
+ if (typeof newValue !== 'object' || !Number.isFinite(newValue.start) || !Number.isFinite(newValue.end)) {
376
+ reportInvalidPropValue(this.el, 'rangeValue', newValue, 'Informe um objeto com `start` e `end` numéricos finitos.', 'Mantendo o último intervalo efetivo.');
377
+ this.syncRangeValue();
378
+ return;
379
+ }
265
380
  if (newValue.start !== this.value)
266
381
  this.value = newValue.start;
267
382
  if (newValue.end !== this.valueEnd)
268
383
  this.valueEnd = newValue.end;
269
384
  }
270
385
  componentWillLoad() {
271
- this.value = this.clamp(this.value);
386
+ this.value = this.effectiveValue;
272
387
  if (this.range) {
273
- const endVal = Number.isNaN(this.valueEnd) ? this.max : this.valueEnd;
274
- this.valueEnd = Math.max(this.value, this.clamp(endVal));
388
+ this.valueEnd = Math.max(this.value, this.effectiveValueEnd);
275
389
  }
276
390
  this.elementInternals?.setFormValue(this.getFormValue());
277
391
  this.initialValue = this.value;
@@ -280,23 +394,31 @@ export class Slider {
280
394
  }
281
395
  componentDidLoad() {
282
396
  this.hasFeedbackSlot = this.el.querySelector('[slot="feedback"]') !== null;
397
+ this.hasThumbIconSlot = this.el.querySelector('[slot="thumb-icon"]') !== null;
398
+ this.hasThumbStartIconSlot = this.el.querySelector('[slot="thumb-start-icon"]') !== null;
399
+ this.hasThumbEndIconSlot = this.el.querySelector('[slot="thumb-end-icon"]') !== null;
283
400
  const root = this.el.shadowRoot;
284
401
  if (root) {
402
+ const slotMap = {
403
+ 'ref-start': (filled) => (this.hasRefStart = filled),
404
+ 'ref-end': (filled) => (this.hasRefEnd = filled),
405
+ 'thumb-icon': (filled) => (this.hasThumbIconSlot = filled),
406
+ 'thumb-start-icon': (filled) => (this.hasThumbStartIconSlot = filled),
407
+ 'thumb-end-icon': (filled) => (this.hasThumbEndIconSlot = filled),
408
+ };
285
409
  root.querySelectorAll('slot[name]').forEach((slot) => {
286
- const update = () => {
287
- const filled = slot.assignedNodes({ flatten: true }).length > 0;
288
- if (slot.name === 'ref-start')
289
- this.hasRefStart = filled;
290
- else if (slot.name === 'ref-end')
291
- this.hasRefEnd = filled;
292
- };
410
+ const handler = slotMap[slot.name];
411
+ if (!handler)
412
+ return;
413
+ const update = () => handler(slot.assignedNodes({ flatten: true }).length > 0);
293
414
  update();
294
415
  slot.addEventListener('slotchange', update);
295
416
  });
296
417
  }
297
- if (this.inputEl) {
298
- this.inputEl.value = String(this.value);
299
- }
418
+ if (this.inputStartEl)
419
+ this.inputStartEl.value = String(this.value);
420
+ if (this.inputEndEl)
421
+ this.inputEndEl.value = String(this.valueEnd);
300
422
  requestAnimationFrame(() => this.setupLabelAutoUpdate());
301
423
  }
302
424
  componentDidUpdate() {
@@ -347,7 +469,10 @@ export class Slider {
347
469
  return getFormValidationState(this.elementInternals);
348
470
  }
349
471
  get effectiveVertical() {
350
- return this.orientation === undefined ? this.vertical : this.orientation === 'vertical';
472
+ if (this.orientation === undefined)
473
+ return this.vertical;
474
+ const orientation = resolveAllowedPropValue(this.el, 'orientation', this.orientation, SLIDER_ORIENTATIONS, 'horizontal');
475
+ return orientation === 'vertical';
351
476
  }
352
477
  setupLabelAutoUpdate() {
353
478
  const showValueLabel = this.showLabel && !this.showInput;
@@ -423,32 +548,82 @@ export class Slider {
423
548
  return;
424
549
  this.rangeValue = { start: this.value, end: this.valueEnd };
425
550
  }
426
- clamp(value, max = this.max, min = this.min) {
551
+ get normalizedSteps() {
552
+ return normalizeSteps(this.steps, this.effectiveMin, this.effectiveMax);
553
+ }
554
+ get hasGradient() {
555
+ return (this.gradient === true ||
556
+ (typeof this.gradient === 'string' && this.gradient !== 'false' && this.gradient.trim() !== ''));
557
+ }
558
+ get gradientStops() {
559
+ return parseGradientStops(this.gradient ?? false);
560
+ }
561
+ getGradientColorAt(val) {
562
+ if (!this.hasGradient)
563
+ return undefined;
564
+ const pct = this.percentOf(val);
565
+ return interpolateGradientColor(this.gradientStops, pct);
566
+ }
567
+ getGradientCss(direction) {
568
+ return buildGradientCss(this.gradientStops, direction);
569
+ }
570
+ clamp(value, max = this.effectiveMax, min = this.effectiveMin) {
427
571
  return clampNumber(value, min, max, min);
428
572
  }
429
573
  snapToStep(value) {
430
- const stepped = Math.round((value - this.min) / this.step) * this.step + this.min;
574
+ const steps = this.normalizedSteps;
575
+ if (steps.length > 0) {
576
+ let closest = steps[0].value;
577
+ let minDiff = Math.abs(value - closest);
578
+ for (const s of steps) {
579
+ const diff = Math.abs(value - s.value);
580
+ if (diff < minDiff) {
581
+ minDiff = diff;
582
+ closest = s.value;
583
+ }
584
+ }
585
+ return this.clamp(closest);
586
+ }
587
+ const stepped = Math.round((value - this.effectiveMin) / this.effectiveStep) * this.effectiveStep + this.effectiveMin;
431
588
  return this.clamp(Number(stepped.toFixed(10)));
432
589
  }
433
590
  percent() {
434
591
  return this.percentOf(this.value);
435
592
  }
436
593
  percentOf(val) {
437
- if (this.max === this.min)
594
+ if (this.effectiveMax === this.effectiveMin)
438
595
  return 0;
439
- return ((val - this.min) / (this.max - this.min)) * 100;
596
+ return ((val - this.effectiveMin) / (this.effectiveMax - this.effectiveMin)) * 100;
597
+ }
598
+ applyGradientToFilledStyle(style, pctStart, span) {
599
+ if (!this.hasGradient)
600
+ return;
601
+ const dir = this.effectiveVertical ? 'to top' : 'to right';
602
+ style.background = this.getGradientCss(dir);
603
+ if (span <= 0)
604
+ return;
605
+ const bgSize = `${(10000 / span).toFixed(2)}%`;
606
+ style.backgroundSize = this.effectiveVertical ? `100% ${bgSize}` : `${bgSize} 100%`;
607
+ if (pctStart > 0) {
608
+ const bgPos = `${((-pctStart * 100) / span).toFixed(2)}%`;
609
+ style.backgroundPosition = this.effectiveVertical ? `0% ${bgPos}` : `${bgPos} 0%`;
610
+ }
440
611
  }
441
612
  getFilledStyle() {
442
613
  if (!this.range) {
443
614
  const pct = this.percent();
444
- return this.effectiveVertical ? { height: `${pct}%` } : { width: `${pct}%` };
615
+ const style = this.effectiveVertical ? { height: `${pct}%` } : { width: `${pct}%` };
616
+ this.applyGradientToFilledStyle(style, 0, pct);
617
+ return style;
445
618
  }
446
619
  const pctStart = this.percent();
447
620
  const pctEnd = this.percentOf(this.valueEnd);
448
- if (this.effectiveVertical) {
449
- return { bottom: `${pctStart}%`, height: `${pctEnd - pctStart}%` };
450
- }
451
- return { left: `${pctStart}%`, width: `${pctEnd - pctStart}%` };
621
+ const span = pctEnd - pctStart;
622
+ const style = this.effectiveVertical
623
+ ? { bottom: `${pctStart}%`, height: `${span}%` }
624
+ : { left: `${pctStart}%`, width: `${span}%` };
625
+ this.applyGradientToFilledStyle(style, pctStart, span);
626
+ return style;
452
627
  }
453
628
  getTrackMaskStyle() {
454
629
  if (!this.showTicks || !this.getTickValues().length)
@@ -468,18 +643,21 @@ export class Slider {
468
643
  return { 'mask-image': gradient, '-webkit-mask-image': gradient };
469
644
  }
470
645
  getTickValues() {
471
- const cacheKey = `${this.min}|${this.max}|${this.step}`;
646
+ if (this.normalizedSteps.length > 0) {
647
+ return this.normalizedSteps.map((s) => s.value);
648
+ }
649
+ const cacheKey = `${this.effectiveMin}|${this.effectiveMax}|${this.effectiveStep}`;
472
650
  if (cacheKey === this.tickValuesCacheKey)
473
651
  return this.tickValuesCache;
474
652
  this.tickValuesCacheKey = cacheKey;
475
- if (this.max <= this.min || this.step <= 0 || !Number.isFinite(this.step)) {
653
+ if (this.effectiveMax <= this.effectiveMin || this.effectiveStep <= 0 || !Number.isFinite(this.effectiveStep)) {
476
654
  this.tickValuesCache = [];
477
655
  return this.tickValuesCache;
478
656
  }
479
- const count = Math.floor((this.max - this.min) / this.step);
480
- const hasUnalignedMax = Number((this.max - this.min) / this.step) % 1 !== 0;
657
+ const count = Math.floor((this.effectiveMax - this.effectiveMin) / this.effectiveStep);
658
+ const hasUnalignedMax = Number((this.effectiveMax - this.effectiveMin) / this.effectiveStep) % 1 !== 0;
481
659
  const valueCount = count + 1 + (hasUnalignedMax ? 1 : 0);
482
- const getValueAt = (index) => index <= count ? Number((this.min + index * this.step).toFixed(10)) : this.max;
660
+ const getValueAt = (index) => index <= count ? Number((this.effectiveMin + index * this.effectiveStep).toFixed(10)) : this.effectiveMax;
483
661
  if (valueCount > Slider.MAX_VISUAL_TICKS) {
484
662
  // ponytail: limita somente o DOM visual; os valores selecionáveis permanecem ilimitados.
485
663
  const sampled = new Set([getValueAt(0), getValueAt(valueCount - 1)]);
@@ -495,23 +673,23 @@ export class Slider {
495
673
  }
496
674
  getValueFromX(clientX, rect = this.trackEl?.getBoundingClientRect()) {
497
675
  if (!this.trackEl)
498
- return this.min;
676
+ return this.effectiveMin;
499
677
  if (!rect)
500
- return this.min;
678
+ return this.effectiveMin;
501
679
  if (rect.width === 0)
502
- return this.min;
680
+ return this.effectiveMin;
503
681
  const ratio = clampNumber((clientX - rect.left) / rect.width, 0, 1, 0);
504
- return this.min + ratio * (this.max - this.min);
682
+ return this.effectiveMin + ratio * (this.effectiveMax - this.effectiveMin);
505
683
  }
506
684
  getValueFromY(clientY, rect = this.trackEl?.getBoundingClientRect()) {
507
685
  if (!this.trackEl)
508
- return this.min;
686
+ return this.effectiveMin;
509
687
  if (!rect)
510
- return this.min;
688
+ return this.effectiveMin;
511
689
  if (rect.height === 0)
512
- return this.min;
690
+ return this.effectiveMin;
513
691
  const ratio = clampNumber((rect.bottom - clientY) / rect.height, 0, 1, 0);
514
- return this.min + ratio * (this.max - this.min);
692
+ return this.effectiveMin + ratio * (this.effectiveMax - this.effectiveMin);
515
693
  }
516
694
  nearerThumb(rawValue) {
517
695
  const distToStart = Math.abs(rawValue - this.value);
@@ -537,22 +715,72 @@ export class Slider {
537
715
  }
538
716
  }
539
717
  }
718
+ getInputValueState(thumb) {
719
+ const isEnd = thumb === 'end';
720
+ return {
721
+ current: isEnd ? this.valueEnd : this.value,
722
+ min: isEnd ? this.value : this.effectiveMin,
723
+ max: isEnd ? this.effectiveMax : this.range ? this.valueEnd : this.effectiveMax,
724
+ };
725
+ }
726
+ updateValueFromInput(thumb, value) {
727
+ if (thumb === 'end') {
728
+ this.valueEnd = value;
729
+ this.brDidChangeValueEnd.emit(this.valueEnd);
730
+ return;
731
+ }
732
+ this.value = value;
733
+ this.brDidChangeValue.emit(this.value);
734
+ }
735
+ calculateNextStepValue(key, current, min, max) {
736
+ const steps = this.normalizedSteps;
737
+ const currentIndex = steps.findIndex((s) => s.value === current);
738
+ switch (key) {
739
+ case 'ArrowRight':
740
+ case 'ArrowUp': {
741
+ const nextIdx = currentIndex >= 0 ? Math.min(steps.length - 1, currentIndex + 1) : 0;
742
+ return this.clamp(steps[nextIdx].value, max, min);
743
+ }
744
+ case 'ArrowLeft':
745
+ case 'ArrowDown': {
746
+ const prevIdx = currentIndex >= 0 ? Math.max(0, currentIndex - 1) : 0;
747
+ return this.clamp(steps[prevIdx].value, max, min);
748
+ }
749
+ case 'Home':
750
+ return min;
751
+ case 'End':
752
+ return max;
753
+ case 'PageUp': {
754
+ const jumpIdx = Math.min(steps.length - 1, (currentIndex >= 0 ? currentIndex : 0) + 2);
755
+ return this.clamp(steps[jumpIdx].value, max, min);
756
+ }
757
+ case 'PageDown': {
758
+ const jumpIdx = Math.max(0, (currentIndex >= 0 ? currentIndex : 0) - 2);
759
+ return this.clamp(steps[jumpIdx].value, max, min);
760
+ }
761
+ default:
762
+ return null;
763
+ }
764
+ }
540
765
  calculateNextSliderValue(key, current, min, max) {
766
+ if (this.normalizedSteps.length > 0) {
767
+ return this.calculateNextStepValue(key, current, min, max);
768
+ }
541
769
  switch (key) {
542
770
  case 'ArrowRight':
543
771
  case 'ArrowUp':
544
- return Math.min(max, current + this.step);
772
+ return Math.min(max, current + this.effectiveStep);
545
773
  case 'ArrowLeft':
546
774
  case 'ArrowDown':
547
- return Math.max(min, current - this.step);
775
+ return Math.max(min, current - this.effectiveStep);
548
776
  case 'Home':
549
777
  return min;
550
778
  case 'End':
551
779
  return max;
552
780
  case 'PageUp':
553
- return Math.min(max, current + this.step * 10);
781
+ return Math.min(max, current + this.effectiveStep * 10);
554
782
  case 'PageDown':
555
- return Math.max(min, current - this.step * 10);
783
+ return Math.max(min, current - this.effectiveStep * 10);
556
784
  default:
557
785
  return null;
558
786
  }
@@ -561,12 +789,12 @@ export class Slider {
561
789
  if (this.isDisabled())
562
790
  return;
563
791
  const target = event.composedPath?.()[0] || getEventTarget(event);
564
- if (target === this.inputEl)
792
+ if (isEventTargetInside(event, this.inputStartEl) || isEventTargetInside(event, this.inputEndEl))
565
793
  return;
566
794
  const isEnd = this.range && target === this.thumbEndEl;
567
795
  const currentValue = isEnd ? this.valueEnd : this.value;
568
- const keyMin = isEnd ? this.value : this.min;
569
- const keyMax = isEnd ? this.max : this.range ? this.valueEnd : this.max;
796
+ const keyMin = isEnd ? this.value : this.effectiveMin;
797
+ const keyMax = isEnd ? this.effectiveMax : this.range ? this.valueEnd : this.effectiveMax;
570
798
  const next = this.calculateNextSliderValue(event.key, currentValue, keyMin, keyMax);
571
799
  if (next === null)
572
800
  return;
@@ -602,13 +830,14 @@ export class Slider {
602
830
  return isFormControlDisabled(this.disabled, this.formDisabled);
603
831
  }
604
832
  updateValidity() {
605
- const stepMismatch = this.step > 0 &&
606
- Math.abs((this.value - this.min) / this.step - Math.round((this.value - this.min) / this.step)) > 1e-9;
833
+ const stepMismatch = this.effectiveStep > 0 &&
834
+ Math.abs((this.value - this.effectiveMin) / this.effectiveStep -
835
+ Math.round((this.value - this.effectiveMin) / this.effectiveStep)) > 1e-9;
607
836
  const invalidRange = this.range && this.value > this.valueEnd;
608
837
  const flags = {
609
838
  customError: this.customValidationMessage !== '' || Boolean(this.validatorMessage) || invalidRange,
610
- rangeOverflow: this.value > this.max || (this.range && this.valueEnd > this.max),
611
- rangeUnderflow: this.value < this.min || (this.range && this.valueEnd < this.min),
839
+ rangeOverflow: this.value > this.effectiveMax || (this.range && this.valueEnd > this.effectiveMax),
840
+ rangeUnderflow: this.value < this.effectiveMin || (this.range && this.valueEnd < this.effectiveMin),
612
841
  stepMismatch,
613
842
  };
614
843
  const message = this.customValidationMessage ||
@@ -643,38 +872,90 @@ export class Slider {
643
872
  }
644
873
  renderValueLabel(thumb) {
645
874
  const isEnd = thumb === 'end';
646
- return (h("div", { class: "slider-value-label", part: "value-label", ref: (el) => this.setValueLabelElement(thumb, el), "aria-hidden": "true" }, isEnd ? this.valueEnd : this.value, h("span", { class: "slider-value-label-arrow", part: "value-label-arrow", ref: (el) => this.setValueLabelArrowElement(thumb, el) })));
875
+ const val = isEnd ? this.valueEnd : this.value;
876
+ const stepMatch = this.normalizedSteps.find((s) => s.value === val);
877
+ const displayText = stepMatch?.label ?? String(val);
878
+ const color = this.getGradientColorAt(val);
879
+ const labelStyle = color ? { backgroundColor: color } : undefined;
880
+ const arrowStyle = color ? { backgroundColor: color } : undefined;
881
+ return (h("div", { class: "slider-value-label", part: "value-label", ref: (el) => this.setValueLabelElement(thumb, el), "aria-hidden": "true", style: labelStyle }, displayText, h("span", { class: "slider-value-label-arrow", part: "value-label-arrow", ref: (el) => this.setValueLabelArrowElement(thumb, el), style: arrowStyle })));
647
882
  }
648
883
  // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: mantém as variantes visuais do thumb em um único ponto.
649
884
  renderThumb(thumb, style) {
650
885
  const isEnd = thumb === 'end';
886
+ const iconName = isEnd ? (this.thumbEndIcon ?? this.thumbIcon) : (this.thumbStartIcon ?? this.thumbIcon);
887
+ const slotName = isEnd ? 'thumb-end-icon' : this.range ? 'thumb-start-icon' : 'thumb-icon';
888
+ const hasSlot = isEnd
889
+ ? this.hasThumbEndIconSlot
890
+ : this.range
891
+ ? this.hasThumbStartIconSlot
892
+ : this.hasThumbIconSlot || this.hasThumbStartIconSlot;
893
+ const hasIcon = Boolean(iconName || hasSlot);
651
894
  return (h("div", { class: {
652
895
  'slider-thumb': true,
653
896
  'slider-thumb--start': !isEnd,
654
897
  'slider-thumb--end': isEnd,
655
898
  'slider-thumb--active': this.dragging && this.draggingThumb === thumb,
656
- }, part: `thumb thumb-${thumb}`, ref: (el) => this.setThumbElement(thumb, el), id: isEnd ? `${this.customId}-end` : this.customId, role: "slider", tabIndex: this.isDisabled() ? -1 : 0, "aria-valuemin": isEnd ? String(this.value) : String(this.min), "aria-valuemax": isEnd ? String(this.max) : this.range ? String(this.valueEnd) : String(this.max), "aria-valuenow": isEnd ? String(this.valueEnd) : String(this.value), "aria-disabled": this.isDisabled() ? 'true' : 'false', "aria-label": isEnd ? `${this.label ?? ''} fim`.trim() : this.range ? `${this.label ?? ''} início`.trim() : this.label, "aria-orientation": this.effectiveVertical ? 'vertical' : 'horizontal', "aria-busy": this.isValidating ? 'true' : null, "aria-describedby": this.hasFeedbackSlot || this.customValidationMessage || this.validatorMessage
899
+ 'slider-thumb--has-icon': hasIcon,
900
+ }, part: `thumb thumb-${thumb}`, ref: (el) => this.setThumbElement(thumb, el), id: isEnd ? `${this.customId}-end` : this.customId, role: "slider", tabIndex: this.isDisabled() ? -1 : 0, "aria-valuemin": isEnd ? String(this.value) : String(this.effectiveMin), "aria-valuemax": isEnd ? String(this.effectiveMax) : this.range ? String(this.valueEnd) : String(this.effectiveMax), "aria-valuenow": isEnd ? String(this.valueEnd) : String(this.value), "aria-disabled": this.isDisabled() ? 'true' : 'false', "aria-label": isEnd ? `${this.label ?? ''} fim`.trim() : this.range ? `${this.label ?? ''} início`.trim() : this.label, "aria-orientation": this.effectiveVertical ? 'vertical' : 'horizontal', "aria-busy": this.isValidating ? 'true' : null, "aria-describedby": this.hasFeedbackSlot || this.customValidationMessage || this.validatorMessage
657
901
  ? `${this.customId}-feedback`
658
902
  : null, "aria-errormessage": this.customValidationMessage || this.validatorMessage || this.hasFeedbackSlot
659
903
  ? `${this.customId}-feedback`
660
- : null, style: style }));
904
+ : null, style: style }, h("slot", { name: slotName }, iconName && h("br-icon", { iconName: iconName, class: "slider-thumb-icon", "aria-hidden": "true" }))));
661
905
  }
662
906
  renderReferences() {
663
907
  const hasRefs = this.hasRefStart || this.hasRefEnd || this.showBounds;
664
- return (h("div", { class: { 'slider-refs': true, 'slider-refs--hidden': !hasRefs }, part: "references" }, h("span", { class: "ref-start", part: "reference-start" }, h("slot", { name: "ref-start" }), this.showBounds && (h("span", { class: "ref-bound", part: "reference-bound" }, this.min))), h("span", { class: "ref-end", part: "reference-end" }, this.showBounds && (h("span", { class: "ref-bound", part: "reference-bound" }, this.max)), h("slot", { name: "ref-end" }))));
908
+ return (h("div", { class: { 'slider-refs': true, 'slider-refs--hidden': !hasRefs }, part: "references" }, h("span", { class: "ref-start", part: "reference-start" }, h("slot", { name: "ref-start" }), this.showBounds && (h("span", { class: "ref-bound", part: "reference-bound" }, this.effectiveMin))), h("span", { class: "ref-end", part: "reference-end" }, this.showBounds && (h("span", { class: "ref-bound", part: "reference-bound" }, this.effectiveMax)), h("slot", { name: "ref-end" }))));
665
909
  }
666
- renderInput() {
910
+ setInputElement(thumb, element) {
911
+ if (thumb === 'end') {
912
+ this.inputEndEl = element;
913
+ return;
914
+ }
915
+ this.inputStartEl = element;
916
+ }
917
+ renderInput(thumb) {
667
918
  if (!this.showInput)
668
919
  return undefined;
669
- return (h("div", { class: "slider-input-wrapper", part: "input-wrapper" }, h("input", { type: "number", class: "slider-input", part: "input", ref: (el) => (this.inputEl = el), min: this.min, max: this.max, step: this.step, disabled: this.isDisabled(), "aria-label": this.label, "aria-describedby": this.hasFeedbackSlot || this.customValidationMessage || this.validatorMessage
920
+ const isEnd = thumb === 'end';
921
+ const value = isEnd ? this.valueEnd : this.value;
922
+ const min = isEnd ? this.value : this.effectiveMin;
923
+ const max = isEnd ? this.effectiveMax : this.range ? this.valueEnd : this.effectiveMax;
924
+ const label = isEnd ? `${this.label ?? 'Valor'} fim` : this.range ? `${this.label ?? 'Valor'} início` : this.label;
925
+ return (h("div", { class: { 'slider-input-wrapper': true, [`slider-input-wrapper--${thumb}`]: true }, part: "input-wrapper" }, h("br-input", { controlWidth: "80px", density: "small", exportparts: "input", class: "slider-input", type: "number", min: min, max: max, step: this.effectiveStep, disabled: this.isDisabled(), "aria-label": label, "aria-describedby": this.hasFeedbackSlot || this.customValidationMessage || this.validatorMessage
670
926
  ? `${this.customId}-feedback`
671
927
  : null, "aria-errormessage": this.customValidationMessage || this.validatorMessage || this.hasFeedbackSlot
672
928
  ? `${this.customId}-feedback`
673
- : null, onInput: this.handleInputInput, onBlur: this.handleInputBlur })));
929
+ : null, value: String(value), ref: (el) => this.setInputElement(thumb, el), onInput: (event) => this.handleInputInput(event, thumb), onChange: (event) => this.handleInputChange(event, thumb), onBlur: () => {
930
+ this.inputEditing = null;
931
+ } })));
932
+ }
933
+ renderSteps() {
934
+ return (h("div", { class: "slider-steps", part: "steps", "aria-hidden": "true" }, this.normalizedSteps.map((step) => {
935
+ const pct = this.percentOf(step.value);
936
+ const isSelected = this.range
937
+ ? step.value >= this.value && step.value <= this.valueEnd
938
+ : step.value === this.value;
939
+ const posStyle = this.effectiveVertical ? { bottom: `${pct}%` } : { left: `${pct}%` };
940
+ return (h("button", { type: "button", class: {
941
+ 'slider-step': true,
942
+ 'slider-step--active': isSelected,
943
+ }, part: `step step-${step.value}`, style: posStyle, disabled: this.isDisabled(), tabIndex: -1, onClick: () => this.handleStepClick(step.value) }, step.icon && h("br-icon", { iconName: step.icon, class: "slider-step-icon", "aria-hidden": "true" }), step.label && h("span", { class: "slider-step-label" }, step.label)));
944
+ })));
674
945
  }
675
946
  renderTrack() {
676
947
  const trackMask = this.getTrackMaskStyle();
677
- return (h("div", { class: "slider-track", part: "track", ref: (el) => (this.trackEl = el), onPointerDown: this.handlePointerDown, onPointerMove: this.handlePointerMove, onPointerUp: this.handlePointerUp, onPointerCancel: this.handlePointerUp }, h("div", { class: "slider-track-visual", part: "track-visual", style: trackMask }, h("div", { class: "slider-filled-track", part: "filled-track", style: this.getFilledStyle() })), this.showTicks && this.showTickLabels && this.renderTickLabels(), this.shouldShowValueLabel() && this.renderValueLabel('start'), this.shouldShowValueLabel() && this.range && this.renderValueLabel('end'), this.renderThumb('start', this.getThumbStyle(this.value)), this.range && this.renderThumb('end', this.getThumbStyle(this.valueEnd))));
948
+ const startColor = this.getGradientColorAt(this.value);
949
+ const endColor = this.range ? this.getGradientColorAt(this.valueEnd) : undefined;
950
+ const startThumbStyle = {
951
+ ...this.getThumbStyle(this.value),
952
+ ...(startColor ? { backgroundColor: startColor, color: startColor } : {}),
953
+ };
954
+ const endThumbStyle = {
955
+ ...this.getThumbStyle(this.valueEnd),
956
+ ...(endColor ? { backgroundColor: endColor, color: endColor } : {}),
957
+ };
958
+ return (h("div", { class: "slider-track", part: "track", ref: (el) => (this.trackEl = el), onPointerDown: this.handlePointerDown, onPointerMove: this.handlePointerMove, onPointerUp: this.handlePointerUp, onPointerCancel: this.handlePointerUp }, h("div", { class: "slider-track-visual", part: "track-visual", style: trackMask }, h("div", { class: "slider-filled-track", part: "filled-track", style: this.getFilledStyle() })), this.showTicks && this.showTickLabels && this.renderTickLabels(), this.shouldShowValueLabel() && this.renderValueLabel('start'), this.shouldShowValueLabel() && this.range && this.renderValueLabel('end'), this.renderThumb('start', startThumbStyle), this.range && this.renderThumb('end', endThumbStyle)));
678
959
  }
679
960
  renderTickLabels() {
680
961
  const tickValues = this.getTickValues();
@@ -682,7 +963,7 @@ export class Slider {
682
963
  return (h("div", { class: "slider-tick-labels", part: "tick-labels", "aria-hidden": "true" }, intermediateTicks.map((value) => (h("span", { class: "slider-tick-label", part: "tick-label", style: this.effectiveVertical ? { bottom: `${this.percentOf(value)}%` } : { left: `${this.percentOf(value)}%` } }, value)))));
683
964
  }
684
965
  render() {
685
- return (h(Host, { key: '26be711ad91a867e82e35d10e86508aa5af68557' }, h("div", { key: '906052510af8d3a323ea8274b339ba264b745e25', class: this.getCssClassMap(), part: "base" }, h("div", { key: '323ee79d4a4fc4d81e4a1b43c8fa6298d0f92916', class: "slider-layout", part: "layout" }, h("div", { key: '113e5114161144af0466997b47108eb0e053af8e', class: "slider-body", part: "body" }, this.renderTrack(), this.renderReferences()), this.renderInput())), h("div", { key: 'b8ce4c3cae026492ad1db1e03f5709988b42a13e', id: `${this.customId}-feedback`, part: "feedback", hidden: !this.hasFeedbackSlot && !this.customValidationMessage && !this.validatorMessage }, h("slot", { key: 'e2564e6830476cb3d495807f4b15d600f5c7146e', name: "feedback", onSlotchange: (event) => (this.hasFeedbackSlot = hasAssignedSlotContent(event.currentTarget)) }), !this.hasFeedbackSlot && (this.customValidationMessage || this.validatorMessage) ? (h("br-message", { state: "danger", message: this.customValidationMessage || this.validatorMessage })) : null)));
966
+ return (h(Host, { key: '7c7f82026393c762b721269c20498c85efd9a6b3', style: { opacity: this.isDisabled() ? '1' : undefined } }, this.label && h("div", { key: '2195d6599d5fd68b42d47d3737bb621f2d095c0a', class: "slider-label" }, this.label), h("div", { key: '9e6ac187a1b53d2db04aaa8e60612e5d06e85fa8', class: this.getCssClassMap(), part: "base" }, h("div", { key: 'f001d13512efcf6fab5837261ffd80254888b6fc', class: "slider-layout", part: "layout" }, this.range && this.renderInput('start'), h("div", { key: '7d0975449e6b3d69d4ca9b6e14130e5ef9b3ca72', class: "slider-body", part: "body" }, this.renderTrack(), this.normalizedSteps.length > 0 && this.renderSteps(), this.renderReferences()), this.range ? this.renderInput('end') : this.renderInput('start'))), h("div", { key: '2e72a57e643f887282c9222cefac6a4106e32751', id: `${this.customId}-feedback`, part: "feedback", hidden: !this.hasFeedbackSlot && !this.customValidationMessage && !this.validatorMessage }, h("slot", { key: 'f1e9157b6202558e2e26b550a052cb94b089823d', name: "feedback", onSlotchange: (event) => (this.hasFeedbackSlot = hasAssignedSlotContent(event.currentTarget)) }), !this.hasFeedbackSlot && (this.customValidationMessage || this.validatorMessage) ? (h("br-message", { state: "danger", message: this.customValidationMessage || this.validatorMessage })) : null)));
686
967
  }
687
968
  static get is() { return "br-slider"; }
688
969
  static get encapsulation() { return "shadow"; }
@@ -769,7 +1050,7 @@ export class Slider {
769
1050
  "optional": false,
770
1051
  "docs": {
771
1052
  "tags": [],
772
- "text": "Valor m\u00EDnimo aceito pelo slider."
1053
+ "text": "Valor m\u00EDnimo aceito pelo slider. Valores inv\u00E1lidos usam `0`."
773
1054
  },
774
1055
  "getter": false,
775
1056
  "setter": false,
@@ -789,7 +1070,7 @@ export class Slider {
789
1070
  "optional": false,
790
1071
  "docs": {
791
1072
  "tags": [],
792
- "text": "Valor m\u00E1ximo aceito pelo slider."
1073
+ "text": "Valor m\u00E1ximo aceito pelo slider. Deve ser maior que `min`; valores inv\u00E1lidos usam `100` e rela\u00E7\u00F5es inv\u00E1lidas usam `min + 100`."
793
1074
  },
794
1075
  "getter": false,
795
1076
  "setter": false,
@@ -809,7 +1090,7 @@ export class Slider {
809
1090
  "optional": false,
810
1091
  "docs": {
811
1092
  "tags": [],
812
- "text": "Incremento aplicado a cada passo."
1093
+ "text": "Incremento aplicado a cada passo. Deve ser maior que `0`; valores inv\u00E1lidos usam `1`."
813
1094
  },
814
1095
  "getter": false,
815
1096
  "setter": false,
@@ -835,8 +1116,11 @@ export class Slider {
835
1116
  "required": false,
836
1117
  "optional": true,
837
1118
  "docs": {
838
- "tags": [],
839
- "text": "Regra s\u00EDncrona ou ass\u00EDncrona aplicada ao n\u00FAmero ou intervalo selecionado."
1119
+ "tags": [{
1120
+ "name": "example",
1121
+ "text": "```js\nconst slider = document.querySelector('br-slider');\nslider.validator = (value) => {\n const minimum = typeof value === 'number' ? value : value.start;\n return minimum >= 18 ? null : 'O valor inicial deve ser pelo menos 18';\n};\n```"
1122
+ }],
1123
+ "text": "Regra s\u00EDncrona ou ass\u00EDncrona aplicada ao n\u00FAmero ou intervalo selecionado.\nNo modo `range`, recebe um objeto com `start` e `end`."
840
1124
  },
841
1125
  "getter": false,
842
1126
  "setter": false
@@ -853,7 +1137,7 @@ export class Slider {
853
1137
  "optional": false,
854
1138
  "docs": {
855
1139
  "tags": [],
856
- "text": "Valor atual do slider (al\u00E7a inicial no modo composto)."
1140
+ "text": "Valor atual do slider (al\u00E7a inicial no modo composto). Valores n\u00E3o finitos usam o limite m\u00EDnimo;\nvalores fora do intervalo s\u00E3o limitados."
857
1141
  },
858
1142
  "getter": false,
859
1143
  "setter": false,
@@ -876,7 +1160,7 @@ export class Slider {
876
1160
  "name": "deprecated",
877
1161
  "text": "Use `rangeValue`."
878
1162
  }],
879
- "text": "Valor da al\u00E7a final no modo composto (`range`).\nQuando n\u00E3o fornecido em modo composto, assume o valor de `max`."
1163
+ "text": "Valor da al\u00E7a final no modo composto (`range`).\nQuando n\u00E3o fornecido em modo composto, assume o valor de `max`. Valores n\u00E3o finitos usam `max`,\nvalores fora do intervalo s\u00E3o limitados."
880
1164
  },
881
1165
  "getter": false,
882
1166
  "setter": false,
@@ -902,8 +1186,11 @@ export class Slider {
902
1186
  "required": false,
903
1187
  "optional": true,
904
1188
  "docs": {
905
- "tags": [],
906
- "text": "Valor estruturado das duas al\u00E7as no modo `range`."
1189
+ "tags": [{
1190
+ "name": "example",
1191
+ "text": "```js\nconst slider = document.querySelector('br-slider');\nslider.range = true;\nslider.rangeValue = { start: 20, end: 80 };\n```"
1192
+ }],
1193
+ "text": "Valor estruturado das duas al\u00E7as no modo `range`.\nDeve conter `start` e `end` finitos; valores inv\u00E1lidos mant\u00EAm o \u00FAltimo valor efetivo.\nPasse o objeto por property binding."
907
1194
  },
908
1195
  "getter": false,
909
1196
  "setter": false
@@ -928,33 +1215,6 @@ export class Slider {
928
1215
  "attribute": "disabled",
929
1216
  "defaultValue": "false"
930
1217
  },
931
- "density": {
932
- "type": "string",
933
- "mutable": false,
934
- "complexType": {
935
- "original": "SliderDensity",
936
- "resolved": "\"large\" | \"medium\" | \"small\"",
937
- "references": {
938
- "SliderDensity": {
939
- "location": "import",
940
- "path": "./slider.types",
941
- "id": "src/components/slider/slider.types.ts::SliderDensity",
942
- "referenceLocation": "SliderDensity"
943
- }
944
- }
945
- },
946
- "required": false,
947
- "optional": false,
948
- "docs": {
949
- "tags": [],
950
- "text": "Densidade da al\u00E7a de controle.\n`small` = 16px (desktop compacto), `medium` = 20px (desktop padr\u00E3o), `large` = 24px (mobile)."
951
- },
952
- "getter": false,
953
- "setter": false,
954
- "reflect": true,
955
- "attribute": "density",
956
- "defaultValue": "'medium'"
957
- },
958
1218
  "vertical": {
959
1219
  "type": "boolean",
960
1220
  "mutable": false,
@@ -990,7 +1250,7 @@ export class Slider {
990
1250
  "optional": true,
991
1251
  "docs": {
992
1252
  "tags": [],
993
- "text": "Orienta\u00E7\u00E3o can\u00F4nica. Quando informada, tem preced\u00EAncia sobre `vertical`."
1253
+ "text": "Orienta\u00E7\u00E3o can\u00F4nica. Quando informada, tem preced\u00EAncia sobre `vertical`; valores inv\u00E1lidos usam `horizontal`."
994
1254
  },
995
1255
  "getter": false,
996
1256
  "setter": false,
@@ -1049,7 +1309,7 @@ export class Slider {
1049
1309
  "optional": false,
1050
1310
  "docs": {
1051
1311
  "tags": [],
1052
- "text": "Exibe campo de entrada num\u00E9rico sincronizado com a al\u00E7a.\nQuando ativo, a etiqueta de valor n\u00E3o \u00E9 exibida."
1312
+ "text": "Exibe um `br-input` num\u00E9rico sincronizado com a al\u00E7a.\nNo modo `range`, exibe um campo para o in\u00EDcio e outro para o fim; na\norienta\u00E7\u00E3o horizontal ficam nas extremidades esquerda e direita, e na\nvertical ficam acima e abaixo da trilha. Quando ativo, a etiqueta de valor\nn\u00E3o \u00E9 exibida."
1053
1313
  },
1054
1314
  "getter": false,
1055
1315
  "setter": false,
@@ -1116,6 +1376,141 @@ export class Slider {
1116
1376
  "reflect": true,
1117
1377
  "attribute": "show-bounds",
1118
1378
  "defaultValue": "false"
1379
+ },
1380
+ "density": {
1381
+ "type": "string",
1382
+ "mutable": false,
1383
+ "complexType": {
1384
+ "original": "SliderDensity",
1385
+ "resolved": "\"high\" | \"large\" | \"low\" | \"medium\" | \"small\"",
1386
+ "references": {
1387
+ "SliderDensity": {
1388
+ "location": "import",
1389
+ "path": "./slider.types",
1390
+ "id": "src/components/slider/slider.types.ts::SliderDensity",
1391
+ "referenceLocation": "SliderDensity"
1392
+ }
1393
+ }
1394
+ },
1395
+ "required": false,
1396
+ "optional": true,
1397
+ "docs": {
1398
+ "tags": [],
1399
+ "text": "Densidade visual do componente.\nAltera exclusivamente as dimens\u00F5es da al\u00E7a de controle (thumb).\nValores aceitos: 'small' (16px), 'medium' (20px - padr\u00E3o), 'large' (24px).\n'high' e 'low' s\u00E3o aceitos como sin\u00F4nimos de 'small' e 'large'."
1400
+ },
1401
+ "getter": false,
1402
+ "setter": false,
1403
+ "reflect": true,
1404
+ "attribute": "density",
1405
+ "defaultValue": "'medium'"
1406
+ },
1407
+ "thumbIcon": {
1408
+ "type": "string",
1409
+ "mutable": false,
1410
+ "complexType": {
1411
+ "original": "string",
1412
+ "resolved": "string",
1413
+ "references": {}
1414
+ },
1415
+ "required": false,
1416
+ "optional": true,
1417
+ "docs": {
1418
+ "tags": [],
1419
+ "text": "Nome do \u00EDcone a ser exibido no interior da al\u00E7a de controle (thumb).\nNo modo `range`, aplica-se a ambas as al\u00E7as caso `thumbStartIcon` ou `thumbEndIcon` n\u00E3o sejam especificados.\nExemplo: 'fa-solid:arrows-left-right', 'fa-solid:circle'."
1420
+ },
1421
+ "getter": false,
1422
+ "setter": false,
1423
+ "reflect": true,
1424
+ "attribute": "thumb-icon"
1425
+ },
1426
+ "thumbStartIcon": {
1427
+ "type": "string",
1428
+ "mutable": false,
1429
+ "complexType": {
1430
+ "original": "string",
1431
+ "resolved": "string",
1432
+ "references": {}
1433
+ },
1434
+ "required": false,
1435
+ "optional": true,
1436
+ "docs": {
1437
+ "tags": [],
1438
+ "text": "Nome do \u00EDcone da al\u00E7a inicial (no modo `range`, al\u00E7a \u00E0 esquerda/inferior)."
1439
+ },
1440
+ "getter": false,
1441
+ "setter": false,
1442
+ "reflect": true,
1443
+ "attribute": "thumb-start-icon"
1444
+ },
1445
+ "thumbEndIcon": {
1446
+ "type": "string",
1447
+ "mutable": false,
1448
+ "complexType": {
1449
+ "original": "string",
1450
+ "resolved": "string",
1451
+ "references": {}
1452
+ },
1453
+ "required": false,
1454
+ "optional": true,
1455
+ "docs": {
1456
+ "tags": [],
1457
+ "text": "Nome do \u00EDcone da al\u00E7a final (no modo `range`, al\u00E7a \u00E0 direita/superior)."
1458
+ },
1459
+ "getter": false,
1460
+ "setter": false,
1461
+ "reflect": true,
1462
+ "attribute": "thumb-end-icon"
1463
+ },
1464
+ "gradient": {
1465
+ "type": "any",
1466
+ "mutable": false,
1467
+ "complexType": {
1468
+ "original": "string | boolean",
1469
+ "resolved": "boolean | string",
1470
+ "references": {}
1471
+ },
1472
+ "required": false,
1473
+ "optional": true,
1474
+ "docs": {
1475
+ "tags": [],
1476
+ "text": "Habilita gradiente de cores na trilha e sincroniza dinamicamente a cor da al\u00E7a (thumb)\ne da etiqueta de valor (tooltip) com a cor correspondente \u00E0 posi\u00E7\u00E3o atual.\nPode ser um booleano (usa gradiente padr\u00E3o verde -> amarelo -> vermelho)\nou uma string com cores/gradiente customizado (ex.: '#168821, #ffcd07, #e52207' ou 'linear-gradient(...)')."
1477
+ },
1478
+ "getter": false,
1479
+ "setter": false,
1480
+ "reflect": true,
1481
+ "attribute": "gradient"
1482
+ },
1483
+ "steps": {
1484
+ "type": "string",
1485
+ "mutable": false,
1486
+ "complexType": {
1487
+ "original": "SliderStep[] | string",
1488
+ "resolved": "SliderStep[] | string",
1489
+ "references": {
1490
+ "SliderStep": {
1491
+ "location": "import",
1492
+ "path": "./slider.types",
1493
+ "id": "src/components/slider/slider.types.ts::SliderStep",
1494
+ "referenceLocation": "SliderStep"
1495
+ }
1496
+ }
1497
+ },
1498
+ "required": false,
1499
+ "optional": true,
1500
+ "docs": {
1501
+ "tags": [{
1502
+ "name": "example",
1503
+ "text": "```html\n<br-slider\n steps='[{\"value\": 1, \"label\": \"P\u00E9ssimo\", \"icon\": \"fa-solid:face-frown\"}, {\"value\": 5, \"label\": \"Excelente\", \"icon\": \"fa-solid:face-laugh\"}]'\n></br-slider>\n```"
1504
+ }, {
1505
+ "name": "example",
1506
+ "text": "```js\nconst slider = document.querySelector('br-slider');\nslider.steps = [\n { value: 1, label: 'P\u00E9ssimo', icon: 'fa-solid:face-frown' },\n { value: 5, label: 'Excelente', icon: 'fa-solid:face-laugh' },\n];\n```"
1507
+ }],
1508
+ "text": "Lista de passos customizados para o slider.\nCada passo pode definir `value`, `label` (texto exibido no tooltip e/ou abaixo da trilha)\ne `icon` (nome do \u00EDcone exibido abaixo da marca\u00E7\u00E3o do passo).\nAceita array de objetos `SliderStep[]`, array de strings `string[]`, ou string JSON."
1509
+ },
1510
+ "getter": false,
1511
+ "setter": false,
1512
+ "reflect": false,
1513
+ "attribute": "steps"
1119
1514
  }
1120
1515
  };
1121
1516
  }
@@ -1126,6 +1521,9 @@ export class Slider {
1126
1521
  "hasRefEnd": {},
1127
1522
  "hasRefStart": {},
1128
1523
  "hasFeedbackSlot": {},
1524
+ "hasThumbIconSlot": {},
1525
+ "hasThumbStartIconSlot": {},
1526
+ "hasThumbEndIconSlot": {},
1129
1527
  "customValidationMessage": {},
1130
1528
  "validatorMessage": {},
1131
1529
  "isValidating": {}