@govbr-ds/webcomponents 2.1.0 → 2.1.2

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 (866) hide show
  1. package/README.md +0 -11
  2. package/cem/custom-elements.json +272 -71
  3. package/dist/cjs/app-globals-DcqHuMBv.js +9 -0
  4. package/dist/cjs/br-avatar.cjs.entry.js +248 -0
  5. package/dist/cjs/br-breadcrumb-item.cjs.entry.js +45 -0
  6. package/dist/cjs/br-breadcrumb.cjs.entry.js +443 -0
  7. package/dist/cjs/br-button_2.cjs.entry.js +280 -0
  8. package/dist/cjs/br-card.cjs.entry.js +111 -0
  9. package/dist/cjs/br-carousel-page.cjs.entry.js +80 -0
  10. package/dist/cjs/br-carousel.cjs.entry.js +565 -0
  11. package/dist/cjs/br-checkbox-group.cjs.entry.js +118 -0
  12. package/dist/cjs/br-checkbox.cjs.entry.js +288 -0
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +20 -0
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +683 -0
  15. package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +83 -0
  16. package/dist/cjs/br-cookiebar-group.cjs.entry.js +309 -0
  17. package/dist/cjs/br-cookiebar-header.cjs.entry.js +39 -0
  18. package/dist/cjs/br-cookiebar-link.cjs.entry.js +55 -0
  19. package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +70 -0
  20. package/dist/cjs/br-cookiebar-note.cjs.entry.js +25 -0
  21. package/dist/cjs/br-cookiebar.cjs.entry.js +758 -0
  22. package/dist/cjs/br-crumb.cjs.entry.js +51 -0
  23. package/dist/cjs/br-date-picker_3.cjs.entry.js +2447 -0
  24. package/dist/cjs/br-datetime-picker.cjs.entry.js +1886 -0
  25. package/dist/cjs/br-divider.cjs.entry.js +225 -0
  26. package/dist/cjs/br-dropdown_2.cjs.entry.js +2000 -0
  27. package/dist/cjs/br-footer-category.cjs.entry.js +102 -0
  28. package/dist/cjs/br-footer-item.cjs.entry.js +52 -0
  29. package/dist/cjs/br-footer-legal.cjs.entry.js +41 -0
  30. package/dist/cjs/br-footer-logo.cjs.entry.js +104 -0
  31. package/dist/cjs/br-footer-social.cjs.entry.js +71 -0
  32. package/dist/cjs/br-footer.cjs.entry.js +92 -0
  33. package/dist/cjs/br-header-function.cjs.entry.js +142 -0
  34. package/dist/cjs/br-header-link.cjs.entry.js +60 -0
  35. package/dist/cjs/br-header-list.cjs.entry.js +279 -0
  36. package/dist/cjs/br-header-logo.cjs.entry.js +178 -0
  37. package/dist/cjs/br-header.cjs.entry.js +642 -0
  38. package/dist/cjs/br-icon.cjs.entry.js +485 -0
  39. package/dist/cjs/br-input.cjs.entry.js +599 -0
  40. package/dist/cjs/br-item.cjs.entry.js +367 -0
  41. package/dist/cjs/br-link.cjs.entry.js +133 -0
  42. package/dist/cjs/br-loading.cjs.entry.js +505 -0
  43. package/dist/cjs/br-magic-button.cjs.entry.js +93 -0
  44. package/dist/cjs/br-menu-group.cjs.entry.js +23 -0
  45. package/dist/cjs/br-menu-header.cjs.entry.js +47 -0
  46. package/dist/cjs/br-menu-info.cjs.entry.js +38 -0
  47. package/dist/cjs/br-menu-item.cjs.entry.js +79 -0
  48. package/dist/cjs/br-menu-link.cjs.entry.js +56 -0
  49. package/dist/cjs/br-menu-list.cjs.entry.js +149 -0
  50. package/dist/cjs/br-menu-logo.cjs.entry.js +75 -0
  51. package/dist/cjs/br-menu-social.cjs.entry.js +65 -0
  52. package/dist/cjs/br-menu.cjs.entry.js +993 -0
  53. package/dist/cjs/br-modal.cjs.entry.js +496 -0
  54. package/dist/cjs/br-notification-body.cjs.entry.js +71 -0
  55. package/dist/cjs/br-notification-header.cjs.entry.js +48 -0
  56. package/dist/cjs/br-notification-item.cjs.entry.js +110 -0
  57. package/dist/cjs/br-notification.cjs.entry.js +334 -0
  58. package/dist/cjs/br-pagination.cjs.entry.js +884 -0
  59. package/dist/cjs/br-radio-group.cjs.entry.js +428 -0
  60. package/dist/cjs/br-radio.cjs.entry.js +357 -0
  61. package/dist/cjs/br-scrim.cjs.entry.js +1336 -0
  62. package/dist/cjs/br-select-input_3.cjs.entry.js +988 -0
  63. package/dist/cjs/br-sign-in.cjs.entry.js +126 -0
  64. package/dist/cjs/br-skip-link-item.cjs.entry.js +20 -0
  65. package/dist/cjs/br-skip-link.cjs.entry.js +362 -0
  66. package/dist/cjs/br-skiplink-item.cjs.entry.js +192 -0
  67. package/dist/cjs/br-slider.cjs.entry.js +687 -0
  68. package/dist/cjs/br-step_2.cjs.entry.js +628 -0
  69. package/dist/cjs/br-switch.cjs.entry.js +245 -0
  70. package/dist/cjs/br-tab-item.cjs.entry.js +185 -0
  71. package/dist/cjs/br-tab.cjs.entry.js +397 -0
  72. package/dist/cjs/br-table-body.cjs.entry.js +37 -0
  73. package/dist/cjs/br-table-cell.cjs.entry.js +184 -0
  74. package/dist/cjs/br-table-header-cell.cjs.entry.js +173 -0
  75. package/dist/cjs/br-table-header.cjs.entry.js +37 -0
  76. package/dist/cjs/br-table-row.cjs.entry.js +81 -0
  77. package/dist/cjs/br-table.cjs.entry.js +680 -0
  78. package/dist/cjs/br-tag.cjs.entry.js +493 -0
  79. package/dist/cjs/br-textarea.cjs.entry.js +306 -0
  80. package/dist/cjs/br-tooltip.cjs.entry.js +627 -0
  81. package/dist/cjs/br-upload.cjs.entry.js +581 -0
  82. package/dist/cjs/br-wizard-panel.cjs.entry.js +54 -0
  83. package/dist/cjs/br-wizard.cjs.entry.js +708 -0
  84. package/dist/cjs/breakpoint-observer-P8veqXg7.js +144 -0
  85. package/dist/cjs/clamp-Co_hWptd.js +25 -0
  86. package/dist/cjs/cookiebar.utils-CB1gQwZ4.js +18 -0
  87. package/dist/cjs/datetime-picker-constants-B5pWeOn1.js +3827 -0
  88. package/dist/cjs/event-CmVdNHxl.js +56 -0
  89. package/dist/cjs/floating-surface-dismiss-ccdiD0KF.js +63 -0
  90. package/dist/cjs/floating-ui-MBI1osio.js +136 -0
  91. package/dist/cjs/floating-ui.dom-BUSTaaxR.js +1715 -0
  92. package/dist/cjs/focus-DuywwJPR.js +30 -0
  93. package/dist/cjs/getNextElement-R9l3JtM9.js +31 -0
  94. package/dist/cjs/iconify-icon-DfODV9bf.js +2307 -0
  95. package/dist/cjs/id-CjRFMzf6.js +20 -0
  96. package/dist/cjs/index-C92n55ch.js +678 -0
  97. package/dist/cjs/index-CRdcutym.js +3287 -0
  98. package/dist/cjs/index.cjs.js +12 -0
  99. package/dist/cjs/isNil-DO5zWc3l.js +19 -0
  100. package/dist/cjs/isValid-Fu3kaWNn.js +3694 -0
  101. package/dist/cjs/loader.cjs.js +17 -0
  102. package/dist/cjs/native-dialog--Ewqm4w0.js +49 -0
  103. package/dist/cjs/navigation-AbzwcRCU.js +25 -0
  104. package/dist/cjs/parts-D5K3ae2C.js +19 -0
  105. package/dist/cjs/props-CScmBvKd.js +24 -0
  106. package/dist/cjs/raf-batcher-yc87a4dS.js +55 -0
  107. package/dist/cjs/slot-DAllytTj.js +48 -0
  108. package/dist/cjs/swipe-BU8_XE9f.js +345 -0
  109. package/dist/cjs/table-constants-BOPSay0B.js +183 -0
  110. package/dist/cjs/validator-CTCajtT9.js +123 -0
  111. package/dist/cjs/webcomponents.cjs.js +50 -0
  112. package/dist/collection/assets/icon-search.svg +6 -0
  113. package/dist/collection/assets/logo-negative.svg +1 -0
  114. package/dist/collection/assets/logo-positive.svg +1 -0
  115. package/dist/collection/assets/wc.svg +1 -0
  116. package/dist/collection/collection-manifest.json +113 -0
  117. package/dist/collection/components/avatar/avatar.css +1 -0
  118. package/dist/collection/components/avatar/avatar.js +589 -0
  119. package/dist/collection/components/avatar/avatar.types.js +1 -0
  120. package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +166 -0
  121. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -0
  122. package/dist/collection/components/breadcrumb/breadcrumb.js +619 -0
  123. package/dist/collection/components/breadcrumb/breadcrumb.types.js +1 -0
  124. package/dist/collection/components/breadcrumb/crumb/crumb.js +175 -0
  125. package/dist/collection/components/button/button.css +1 -0
  126. package/dist/collection/components/button/button.js +546 -0
  127. package/dist/collection/components/button/button.types.js +1 -0
  128. package/dist/collection/components/card/card.css +1 -0
  129. package/dist/collection/components/card/card.js +225 -0
  130. package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -0
  131. package/dist/collection/components/carousel/carousel-page/carousel-page.js +195 -0
  132. package/dist/collection/components/carousel/carousel.css +1 -0
  133. package/dist/collection/components/carousel/carousel.js +1217 -0
  134. package/dist/collection/components/carousel/carousel.types.js +1 -0
  135. package/dist/collection/components/checkbox/checkbox.css +1 -0
  136. package/dist/collection/components/checkbox/checkbox.js +823 -0
  137. package/dist/collection/components/checkbox/checkbox.types.js +1 -0
  138. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -0
  139. package/dist/collection/components/checkbox-group/checkbox-group.js +268 -0
  140. package/dist/collection/components/checkgroup/checkgroup.js +166 -0
  141. package/dist/collection/components/collapse/collapse.css +1 -0
  142. package/dist/collection/components/collapse/collapse.js +642 -0
  143. package/dist/collection/components/collapse/collapse.types.js +1 -0
  144. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -0
  145. package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +529 -0
  146. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -0
  147. package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +628 -0
  148. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -0
  149. package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +165 -0
  150. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -0
  151. package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +201 -0
  152. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -0
  153. package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +100 -0
  154. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -0
  155. package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +172 -0
  156. package/dist/collection/components/cookiebar/cookiebar.css +1 -0
  157. package/dist/collection/components/cookiebar/cookiebar.js +1419 -0
  158. package/dist/collection/components/cookiebar/cookiebar.types.js +1 -0
  159. package/dist/collection/components/cookiebar/cookiebar.utils.js +14 -0
  160. package/dist/collection/components/datetime-picker/date-picker/date-picker-locale.js +94 -0
  161. package/dist/collection/components/datetime-picker/date-picker/date-picker-props-validation.js +57 -0
  162. package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -0
  163. package/dist/collection/components/datetime-picker/date-picker/date-picker.js +913 -0
  164. package/dist/collection/components/datetime-picker/datetime-input/datetime-input-props-validation.js +65 -0
  165. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -0
  166. package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +826 -0
  167. package/dist/collection/components/datetime-picker/datetime-picker-constants.js +36 -0
  168. package/dist/collection/components/datetime-picker/datetime-picker-form-associated.js +112 -0
  169. package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +202 -0
  170. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -0
  171. package/dist/collection/components/datetime-picker/datetime-picker.js +1924 -0
  172. package/dist/collection/components/datetime-picker/datetime-picker.types.js +1 -0
  173. package/dist/collection/components/datetime-picker/datetime-picker.utils.js +250 -0
  174. package/dist/collection/components/datetime-picker/time-picker/time-picker-constants.js +13 -0
  175. package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -0
  176. package/dist/collection/components/datetime-picker/time-picker/time-picker.js +456 -0
  177. package/dist/collection/components/divider/divider.css +1 -0
  178. package/dist/collection/components/divider/divider.js +537 -0
  179. package/dist/collection/components/divider/divider.types.js +1 -0
  180. package/dist/collection/components/dropdown/dropdown.css +1 -0
  181. package/dist/collection/components/dropdown/dropdown.js +939 -0
  182. package/dist/collection/components/dropdown/dropdown.types.js +1 -0
  183. package/dist/collection/components/footer/footer-category/footer-category.css +1 -0
  184. package/dist/collection/components/footer/footer-category/footer-category.js +160 -0
  185. package/dist/collection/components/footer/footer-item/footer-item.css +1 -0
  186. package/dist/collection/components/footer/footer-item/footer-item.js +154 -0
  187. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -0
  188. package/dist/collection/components/footer/footer-legal/footer-legal.js +75 -0
  189. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -0
  190. package/dist/collection/components/footer/footer-logo/footer-logo.js +342 -0
  191. package/dist/collection/components/footer/footer-logo/footer-logo.types.js +1 -0
  192. package/dist/collection/components/footer/footer-social/footer-social.css +1 -0
  193. package/dist/collection/components/footer/footer-social/footer-social.js +239 -0
  194. package/dist/collection/components/footer/footer.css +1 -0
  195. package/dist/collection/components/footer/footer.js +245 -0
  196. package/dist/collection/components/footer/footer.types.js +1 -0
  197. package/dist/collection/components/global.types.js +1 -0
  198. package/dist/collection/components/header/header-function/header-function.css +1 -0
  199. package/dist/collection/components/header/header-function/header-function.js +311 -0
  200. package/dist/collection/components/header/header-link/header-link.css +1 -0
  201. package/dist/collection/components/header/header-link/header-link.js +189 -0
  202. package/dist/collection/components/header/header-list/header-list.css +1 -0
  203. package/dist/collection/components/header/header-list/header-list.js +452 -0
  204. package/dist/collection/components/header/header-logo/header-logo.css +1 -0
  205. package/dist/collection/components/header/header-logo/header-logo.js +421 -0
  206. package/dist/collection/components/header/header.css +1 -0
  207. package/dist/collection/components/header/header.js +1131 -0
  208. package/dist/collection/components/header/header.types.js +1 -0
  209. package/dist/collection/components/icon/default-icons-cache.js +233 -0
  210. package/dist/collection/components/icon/icon.css +1 -0
  211. package/dist/collection/components/icon/icon.js +598 -0
  212. package/dist/collection/components/icon/icon.types.js +1 -0
  213. package/dist/collection/components/icon/icon.utils.js +33 -0
  214. package/dist/collection/components/input/input.css +1 -0
  215. package/dist/collection/components/input/input.js +1642 -0
  216. package/dist/collection/components/input/input.types.js +1 -0
  217. package/dist/collection/components/item/item.css +1 -0
  218. package/dist/collection/components/item/item.js +917 -0
  219. package/dist/collection/components/item/item.types.js +1 -0
  220. package/dist/collection/components/link/link.css +1 -0
  221. package/dist/collection/components/link/link.js +699 -0
  222. package/dist/collection/components/list/list.css +1 -0
  223. package/dist/collection/components/list/list.js +728 -0
  224. package/dist/collection/components/loading/loading.css +1 -0
  225. package/dist/collection/components/loading/loading.js +1169 -0
  226. package/dist/collection/components/loading/loading.types.js +1 -0
  227. package/dist/collection/components/magic-button/magic-button.css +1 -0
  228. package/dist/collection/components/magic-button/magic-button.js +238 -0
  229. package/dist/collection/components/menu/menu-group/menu-group.css +1 -0
  230. package/dist/collection/components/menu/menu-group/menu-group.js +77 -0
  231. package/dist/collection/components/menu/menu-header/menu-header.css +1 -0
  232. package/dist/collection/components/menu/menu-header/menu-header.js +161 -0
  233. package/dist/collection/components/menu/menu-info/menu-info.css +1 -0
  234. package/dist/collection/components/menu/menu-info/menu-info.js +94 -0
  235. package/dist/collection/components/menu/menu-item/menu-item.css +1 -0
  236. package/dist/collection/components/menu/menu-item/menu-item.js +306 -0
  237. package/dist/collection/components/menu/menu-item/menu-item.types.js +1 -0
  238. package/dist/collection/components/menu/menu-link/menu-link.css +1 -0
  239. package/dist/collection/components/menu/menu-link/menu-link.js +260 -0
  240. package/dist/collection/components/menu/menu-list/menu-list.css +1 -0
  241. package/dist/collection/components/menu/menu-list/menu-list.js +311 -0
  242. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -0
  243. package/dist/collection/components/menu/menu-logo/menu-logo.js +230 -0
  244. package/dist/collection/components/menu/menu-social/menu-social.css +1 -0
  245. package/dist/collection/components/menu/menu-social/menu-social.js +263 -0
  246. package/dist/collection/components/menu/menu.css +1 -0
  247. package/dist/collection/components/menu/menu.js +1372 -0
  248. package/dist/collection/components/menu/menu.types.js +1 -0
  249. package/dist/collection/components/menu/menu.utils.js +279 -0
  250. package/dist/collection/components/message/message.css +1 -0
  251. package/dist/collection/components/message/message.js +508 -0
  252. package/dist/collection/components/modal/modal.css +1 -0
  253. package/dist/collection/components/modal/modal.js +842 -0
  254. package/dist/collection/components/modal/modal.types.js +1 -0
  255. package/dist/collection/components/notification/notification-body/notification-body.css +1 -0
  256. package/dist/collection/components/notification/notification-body/notification-body.js +153 -0
  257. package/dist/collection/components/notification/notification-header/notification-header.css +1 -0
  258. package/dist/collection/components/notification/notification-header/notification-header.js +181 -0
  259. package/dist/collection/components/notification/notification-item/notification-item.css +1 -0
  260. package/dist/collection/components/notification/notification-item/notification-item.js +351 -0
  261. package/dist/collection/components/notification/notification-item/notification-item.types.js +1 -0
  262. package/dist/collection/components/notification/notification.css +1 -0
  263. package/dist/collection/components/notification/notification.js +838 -0
  264. package/dist/collection/components/notification/notification.types.js +1 -0
  265. package/dist/collection/components/pagination/pagination.css +1 -0
  266. package/dist/collection/components/pagination/pagination.js +1470 -0
  267. package/dist/collection/components/pagination/pagination.types.js +1 -0
  268. package/dist/collection/components/radio/radio.css +1 -0
  269. package/dist/collection/components/radio/radio.js +847 -0
  270. package/dist/collection/components/radio/radio.types.js +1 -0
  271. package/dist/collection/components/radio-group/radio-group.css +1 -0
  272. package/dist/collection/components/radio-group/radio-group.js +862 -0
  273. package/dist/collection/components/radio-group/radio-group.types.js +1 -0
  274. package/dist/collection/components/scrim/scrim.css +1 -0
  275. package/dist/collection/components/scrim/scrim.js +1825 -0
  276. package/dist/collection/components/scrim/scrim.types.js +1 -0
  277. package/dist/collection/components/scrim/scrim.utils.js +132 -0
  278. package/dist/collection/components/select/select-input/select-input.css +1 -0
  279. package/dist/collection/components/select/select-input/select-input.js +586 -0
  280. package/dist/collection/components/select/select-list/select-list.css +1 -0
  281. package/dist/collection/components/select/select-list/select-list.js +1159 -0
  282. package/dist/collection/components/select/select-option/select-option.css +1 -0
  283. package/dist/collection/components/select/select-option/select-option.js +564 -0
  284. package/dist/collection/components/select/select.constants.js +6 -0
  285. package/dist/collection/components/select/select.css +1 -0
  286. package/dist/collection/components/select/select.js +2692 -0
  287. package/dist/collection/components/select/select.types.js +1 -0
  288. package/dist/collection/components/select/select.utils.js +34 -0
  289. package/dist/collection/components/sign-in/sign-in.css +1 -0
  290. package/dist/collection/components/sign-in/sign-in.js +401 -0
  291. package/dist/collection/components/sign-in/sign-in.types.js +1 -0
  292. package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +103 -0
  293. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -0
  294. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +450 -0
  295. package/dist/collection/components/skip-link/skip-link.css +1 -0
  296. package/dist/collection/components/skip-link/skip-link.js +699 -0
  297. package/dist/collection/components/skip-link/skip-link.types.js +1 -0
  298. package/dist/collection/components/slider/slider.css +1 -0
  299. package/dist/collection/components/slider/slider.js +1324 -0
  300. package/dist/collection/components/slider/slider.types.js +1 -0
  301. package/dist/collection/components/step/step-item/step-item.css +1 -0
  302. package/dist/collection/components/step/step-item/step-item.js +604 -0
  303. package/dist/collection/components/step/step-item/step-item.types.js +1 -0
  304. package/dist/collection/components/step/step.css +1 -0
  305. package/dist/collection/components/step/step.js +896 -0
  306. package/dist/collection/components/step/step.types.js +1 -0
  307. package/dist/collection/components/switch/switch.css +1 -0
  308. package/dist/collection/components/switch/switch.js +715 -0
  309. package/dist/collection/components/switch/switch.types.js +1 -0
  310. package/dist/collection/components/tab/tab-item/tab-item.css +1 -0
  311. package/dist/collection/components/tab/tab-item/tab-item.js +425 -0
  312. package/dist/collection/components/tab/tab.css +1 -0
  313. package/dist/collection/components/tab/tab.js +724 -0
  314. package/dist/collection/components/tab/tab.types.js +1 -0
  315. package/dist/collection/components/table/table-body/table-body.css +1 -0
  316. package/dist/collection/components/table/table-body/table-body.js +51 -0
  317. package/dist/collection/components/table/table-cell/table-cell.css +1 -0
  318. package/dist/collection/components/table/table-cell/table-cell.js +373 -0
  319. package/dist/collection/components/table/table-constants.js +171 -0
  320. package/dist/collection/components/table/table-header/table-header.css +1 -0
  321. package/dist/collection/components/table/table-header/table-header.js +51 -0
  322. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -0
  323. package/dist/collection/components/table/table-header-cell/table-header-cell.js +402 -0
  324. package/dist/collection/components/table/table-row/table-row.css +1 -0
  325. package/dist/collection/components/table/table-row/table-row.js +261 -0
  326. package/dist/collection/components/table/table-tokens.js +50 -0
  327. package/dist/collection/components/table/table-types.js +1 -0
  328. package/dist/collection/components/table/table-utils.js +44 -0
  329. package/dist/collection/components/table/table.css +1 -0
  330. package/dist/collection/components/table/table.js +1030 -0
  331. package/dist/collection/components/tag/tag.css +1 -0
  332. package/dist/collection/components/tag/tag.js +1152 -0
  333. package/dist/collection/components/tag/tag.types.js +1 -0
  334. package/dist/collection/components/textarea/textarea.css +1 -0
  335. package/dist/collection/components/textarea/textarea.js +985 -0
  336. package/dist/collection/components/textarea/textarea.types.js +1 -0
  337. package/dist/collection/components/tooltip/tooltip.css +1 -0
  338. package/dist/collection/components/tooltip/tooltip.js +1024 -0
  339. package/dist/collection/components/tooltip/tooltip.types.js +1 -0
  340. package/dist/collection/components/upload/upload.css +1 -0
  341. package/dist/collection/components/upload/upload.js +1314 -0
  342. package/dist/collection/components/upload/upload.types.js +1 -0
  343. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -0
  344. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +167 -0
  345. package/dist/collection/components/wizard/wizard.css +1 -0
  346. package/dist/collection/components/wizard/wizard.js +1228 -0
  347. package/dist/collection/index.js +14 -0
  348. package/dist/collection/pages/components/cookiebar/index.js +26 -0
  349. package/dist/collection/pages/components/link/index.js +29 -0
  350. package/dist/collection/pages/components/pagination/index.js +12 -0
  351. package/dist/collection/pages/components/slider/index.js +18 -0
  352. package/dist/collection/pages/scripts/code-editor.js +101 -0
  353. package/dist/collection/pages/scripts/component-controls.js +600 -0
  354. package/dist/collection/pages/scripts/dev-event-console.js +47 -0
  355. package/dist/collection/pages/scripts/menu.js +192 -0
  356. package/dist/collection/pages/scripts/pageLoader.js +1422 -0
  357. package/dist/collection/shared/utils/assetsPath.js +75 -0
  358. package/dist/collection/shared/utils/breakpoint-observer.js +139 -0
  359. package/dist/collection/shared/utils/clamp.js +21 -0
  360. package/dist/collection/shared/utils/css-variables.js +12 -0
  361. package/dist/collection/shared/utils/cssVariables.js +37 -0
  362. package/dist/collection/shared/utils/date.js +405 -0
  363. package/dist/collection/shared/utils/debounce.js +39 -0
  364. package/dist/collection/shared/utils/event.js +55 -0
  365. package/dist/collection/shared/utils/floating-surface-dismiss.js +59 -0
  366. package/dist/collection/shared/utils/floating-ui.js +131 -0
  367. package/dist/collection/shared/utils/focus.js +24 -0
  368. package/dist/collection/shared/utils/form.js +82 -0
  369. package/dist/collection/shared/utils/format-bytes.js +20 -0
  370. package/dist/collection/shared/utils/getNextElement.js +30 -0
  371. package/dist/collection/shared/utils/getRandom.js +27 -0
  372. package/dist/collection/shared/utils/helpers.js +31 -0
  373. package/dist/collection/shared/utils/id.js +16 -0
  374. package/dist/collection/shared/utils/index.js +60 -0
  375. package/dist/collection/shared/utils/interfaces.js +1 -0
  376. package/dist/collection/shared/utils/isClient.js +14 -0
  377. package/dist/collection/shared/utils/isDefined.js +19 -0
  378. package/dist/collection/shared/utils/isEmpty.js +30 -0
  379. package/dist/collection/shared/utils/isHTMLElement.js +16 -0
  380. package/dist/collection/shared/utils/isNil.js +15 -0
  381. package/dist/collection/shared/utils/isString.js +20 -0
  382. package/dist/collection/shared/utils/native-dialog.js +44 -0
  383. package/dist/collection/shared/utils/navigation.js +21 -0
  384. package/dist/collection/shared/utils/parts.js +15 -0
  385. package/dist/collection/shared/utils/prop-warning.js +7 -0
  386. package/dist/collection/shared/utils/props.js +37 -0
  387. package/dist/collection/shared/utils/raf-batcher.js +51 -0
  388. package/dist/collection/shared/utils/scrollLock.js +141 -0
  389. package/dist/collection/shared/utils/setRafTimeout.js +38 -0
  390. package/dist/collection/shared/utils/slot.js +113 -0
  391. package/dist/collection/shared/utils/ssr-date.js +33 -0
  392. package/dist/collection/shared/utils/stringToArray.js +29 -0
  393. package/dist/collection/shared/utils/swipe.js +342 -0
  394. package/dist/collection/shared/utils/transition.js +127 -0
  395. package/dist/collection/shared/utils/types.js +1 -0
  396. package/dist/collection/shared/utils/validator.js +51 -0
  397. package/dist/collection/value-accessors/angular-value-accessor-config.js +41 -0
  398. package/dist/collection/value-accessors/index.js +6 -0
  399. package/dist/collection/value-accessors/vue-model-config.js +43 -0
  400. package/dist/components/br-avatar.d.ts +11 -0
  401. package/dist/components/br-avatar.js +5 -0
  402. package/dist/components/br-breadcrumb-item.d.ts +11 -0
  403. package/dist/components/br-breadcrumb-item.js +5 -0
  404. package/dist/components/br-breadcrumb.d.ts +11 -0
  405. package/dist/components/br-breadcrumb.js +5 -0
  406. package/dist/components/br-button.d.ts +11 -0
  407. package/dist/components/br-button.js +5 -0
  408. package/dist/components/br-card.d.ts +11 -0
  409. package/dist/components/br-card.js +5 -0
  410. package/dist/components/br-carousel-page.d.ts +11 -0
  411. package/dist/components/br-carousel-page.js +5 -0
  412. package/dist/components/br-carousel.d.ts +11 -0
  413. package/dist/components/br-carousel.js +5 -0
  414. package/dist/components/br-checkbox-group.d.ts +11 -0
  415. package/dist/components/br-checkbox-group.js +5 -0
  416. package/dist/components/br-checkbox.d.ts +11 -0
  417. package/dist/components/br-checkbox.js +5 -0
  418. package/dist/components/br-checkgroup.d.ts +11 -0
  419. package/dist/components/br-checkgroup.js +5 -0
  420. package/dist/components/br-collapse.d.ts +11 -0
  421. package/dist/components/br-collapse.js +5 -0
  422. package/dist/components/br-cookiebar-cookie.d.ts +11 -0
  423. package/dist/components/br-cookiebar-cookie.js +5 -0
  424. package/dist/components/br-cookiebar-group.d.ts +11 -0
  425. package/dist/components/br-cookiebar-group.js +5 -0
  426. package/dist/components/br-cookiebar-header.d.ts +11 -0
  427. package/dist/components/br-cookiebar-header.js +5 -0
  428. package/dist/components/br-cookiebar-link.d.ts +11 -0
  429. package/dist/components/br-cookiebar-link.js +5 -0
  430. package/dist/components/br-cookiebar-note-group.d.ts +11 -0
  431. package/dist/components/br-cookiebar-note-group.js +5 -0
  432. package/dist/components/br-cookiebar-note.d.ts +11 -0
  433. package/dist/components/br-cookiebar-note.js +5 -0
  434. package/dist/components/br-cookiebar.d.ts +11 -0
  435. package/dist/components/br-cookiebar.js +5 -0
  436. package/dist/components/br-crumb.d.ts +11 -0
  437. package/dist/components/br-crumb.js +5 -0
  438. package/dist/components/br-date-picker.d.ts +11 -0
  439. package/dist/components/br-date-picker.js +5 -0
  440. package/dist/components/br-datetime-input.d.ts +11 -0
  441. package/dist/components/br-datetime-input.js +5 -0
  442. package/dist/components/br-datetime-picker.d.ts +11 -0
  443. package/dist/components/br-datetime-picker.js +5 -0
  444. package/dist/components/br-divider.d.ts +11 -0
  445. package/dist/components/br-divider.js +5 -0
  446. package/dist/components/br-dropdown.d.ts +11 -0
  447. package/dist/components/br-dropdown.js +5 -0
  448. package/dist/components/br-footer-category.d.ts +11 -0
  449. package/dist/components/br-footer-category.js +5 -0
  450. package/dist/components/br-footer-item.d.ts +11 -0
  451. package/dist/components/br-footer-item.js +5 -0
  452. package/dist/components/br-footer-legal.d.ts +11 -0
  453. package/dist/components/br-footer-legal.js +5 -0
  454. package/dist/components/br-footer-logo.d.ts +11 -0
  455. package/dist/components/br-footer-logo.js +5 -0
  456. package/dist/components/br-footer-social.d.ts +11 -0
  457. package/dist/components/br-footer-social.js +5 -0
  458. package/dist/components/br-footer.d.ts +11 -0
  459. package/dist/components/br-footer.js +5 -0
  460. package/dist/components/br-header-function.d.ts +11 -0
  461. package/dist/components/br-header-function.js +5 -0
  462. package/dist/components/br-header-link.d.ts +11 -0
  463. package/dist/components/br-header-link.js +5 -0
  464. package/dist/components/br-header-list.d.ts +11 -0
  465. package/dist/components/br-header-list.js +5 -0
  466. package/dist/components/br-header-logo.d.ts +11 -0
  467. package/dist/components/br-header-logo.js +5 -0
  468. package/dist/components/br-header.d.ts +11 -0
  469. package/dist/components/br-header.js +5 -0
  470. package/dist/components/br-icon.d.ts +11 -0
  471. package/dist/components/br-icon.js +5 -0
  472. package/dist/components/br-input.d.ts +11 -0
  473. package/dist/components/br-input.js +5 -0
  474. package/dist/components/br-item.d.ts +11 -0
  475. package/dist/components/br-item.js +5 -0
  476. package/dist/components/br-link.d.ts +11 -0
  477. package/dist/components/br-link.js +5 -0
  478. package/dist/components/br-list.d.ts +11 -0
  479. package/dist/components/br-list.js +5 -0
  480. package/dist/components/br-loading.d.ts +11 -0
  481. package/dist/components/br-loading.js +5 -0
  482. package/dist/components/br-magic-button.d.ts +11 -0
  483. package/dist/components/br-magic-button.js +5 -0
  484. package/dist/components/br-menu-group.d.ts +11 -0
  485. package/dist/components/br-menu-group.js +5 -0
  486. package/dist/components/br-menu-header.d.ts +11 -0
  487. package/dist/components/br-menu-header.js +5 -0
  488. package/dist/components/br-menu-info.d.ts +11 -0
  489. package/dist/components/br-menu-info.js +5 -0
  490. package/dist/components/br-menu-item.d.ts +11 -0
  491. package/dist/components/br-menu-item.js +5 -0
  492. package/dist/components/br-menu-link.d.ts +11 -0
  493. package/dist/components/br-menu-link.js +5 -0
  494. package/dist/components/br-menu-list.d.ts +11 -0
  495. package/dist/components/br-menu-list.js +5 -0
  496. package/dist/components/br-menu-logo.d.ts +11 -0
  497. package/dist/components/br-menu-logo.js +5 -0
  498. package/dist/components/br-menu-social.d.ts +11 -0
  499. package/dist/components/br-menu-social.js +5 -0
  500. package/dist/components/br-menu.d.ts +11 -0
  501. package/dist/components/br-menu.js +5 -0
  502. package/dist/components/br-message.d.ts +11 -0
  503. package/dist/components/br-message.js +5 -0
  504. package/dist/components/br-modal.d.ts +11 -0
  505. package/dist/components/br-modal.js +5 -0
  506. package/dist/components/br-notification-body.d.ts +11 -0
  507. package/dist/components/br-notification-body.js +5 -0
  508. package/dist/components/br-notification-header.d.ts +11 -0
  509. package/dist/components/br-notification-header.js +5 -0
  510. package/dist/components/br-notification-item.d.ts +11 -0
  511. package/dist/components/br-notification-item.js +5 -0
  512. package/dist/components/br-notification.d.ts +11 -0
  513. package/dist/components/br-notification.js +5 -0
  514. package/dist/components/br-pagination.d.ts +11 -0
  515. package/dist/components/br-pagination.js +5 -0
  516. package/dist/components/br-radio-group.d.ts +11 -0
  517. package/dist/components/br-radio-group.js +5 -0
  518. package/dist/components/br-radio.d.ts +11 -0
  519. package/dist/components/br-radio.js +5 -0
  520. package/dist/components/br-scrim.d.ts +11 -0
  521. package/dist/components/br-scrim.js +5 -0
  522. package/dist/components/br-select-input.d.ts +11 -0
  523. package/dist/components/br-select-input.js +5 -0
  524. package/dist/components/br-select-list.d.ts +11 -0
  525. package/dist/components/br-select-list.js +5 -0
  526. package/dist/components/br-select-option.d.ts +11 -0
  527. package/dist/components/br-select-option.js +5 -0
  528. package/dist/components/br-select.d.ts +11 -0
  529. package/dist/components/br-select.js +5 -0
  530. package/dist/components/br-sign-in.d.ts +11 -0
  531. package/dist/components/br-sign-in.js +5 -0
  532. package/dist/components/br-skip-link-item.d.ts +11 -0
  533. package/dist/components/br-skip-link-item.js +5 -0
  534. package/dist/components/br-skip-link.d.ts +11 -0
  535. package/dist/components/br-skip-link.js +5 -0
  536. package/dist/components/br-skiplink-item.d.ts +11 -0
  537. package/dist/components/br-skiplink-item.js +5 -0
  538. package/dist/components/br-slider.d.ts +11 -0
  539. package/dist/components/br-slider.js +5 -0
  540. package/dist/components/br-step-item.d.ts +11 -0
  541. package/dist/components/br-step-item.js +5 -0
  542. package/dist/components/br-step.d.ts +11 -0
  543. package/dist/components/br-step.js +5 -0
  544. package/dist/components/br-switch.d.ts +11 -0
  545. package/dist/components/br-switch.js +5 -0
  546. package/dist/components/br-tab-item.d.ts +11 -0
  547. package/dist/components/br-tab-item.js +5 -0
  548. package/dist/components/br-tab.d.ts +11 -0
  549. package/dist/components/br-tab.js +5 -0
  550. package/dist/components/br-table-body.d.ts +11 -0
  551. package/dist/components/br-table-body.js +5 -0
  552. package/dist/components/br-table-cell.d.ts +11 -0
  553. package/dist/components/br-table-cell.js +5 -0
  554. package/dist/components/br-table-header-cell.d.ts +11 -0
  555. package/dist/components/br-table-header-cell.js +5 -0
  556. package/dist/components/br-table-header.d.ts +11 -0
  557. package/dist/components/br-table-header.js +5 -0
  558. package/dist/components/br-table-row.d.ts +11 -0
  559. package/dist/components/br-table-row.js +5 -0
  560. package/dist/components/br-table.d.ts +11 -0
  561. package/dist/components/br-table.js +5 -0
  562. package/dist/components/br-tag.d.ts +11 -0
  563. package/dist/components/br-tag.js +5 -0
  564. package/dist/components/br-textarea.d.ts +11 -0
  565. package/dist/components/br-textarea.js +5 -0
  566. package/dist/components/br-time-picker.d.ts +11 -0
  567. package/dist/components/br-time-picker.js +5 -0
  568. package/dist/components/br-tooltip.d.ts +11 -0
  569. package/dist/components/br-tooltip.js +5 -0
  570. package/dist/components/br-upload.d.ts +11 -0
  571. package/dist/components/br-upload.js +5 -0
  572. package/dist/components/br-wizard-panel.d.ts +11 -0
  573. package/dist/components/br-wizard-panel.js +5 -0
  574. package/dist/components/br-wizard.d.ts +11 -0
  575. package/dist/components/br-wizard.js +5 -0
  576. package/dist/components/index.d.ts +213 -0
  577. package/dist/components/index.js +5 -0
  578. package/dist/components/p-34Jfn-U-.js +5 -0
  579. package/dist/components/p-5z6jgH1D.js +5 -0
  580. package/dist/components/p-6OdfnwnK.js +5 -0
  581. package/dist/components/p-9S9bgUT0.js +5 -0
  582. package/dist/components/p-B-qLmYZC.js +5 -0
  583. package/dist/components/p-B55qsau4.js +5 -0
  584. package/dist/components/p-B7Amgxkp.js +5 -0
  585. package/dist/components/p-BC7f6MK8.js +5 -0
  586. package/dist/components/p-BKuMQJrQ.js +5 -0
  587. package/dist/components/p-BPJpHGOW.js +5 -0
  588. package/dist/components/p-BWXfdbQH.js +5 -0
  589. package/dist/components/p-Bb-nLtTG.js +5 -0
  590. package/dist/components/p-BeE7R9nu.js +5 -0
  591. package/dist/components/p-BkS6ujyf.js +5 -0
  592. package/dist/components/p-Bo0QYHJO.js +5 -0
  593. package/dist/components/p-C1yRmdso.js +5 -0
  594. package/dist/components/p-C2i2c_io.js +5 -0
  595. package/dist/components/p-C7v0lVlX.js +5 -0
  596. package/dist/components/p-CMBsvswx.js +5 -0
  597. package/dist/components/p-CRrimdz6.js +5 -0
  598. package/dist/components/p-CWORw84-.js +5 -0
  599. package/dist/components/p-CXMwM9m4.js +5 -0
  600. package/dist/components/p-CdDwqbBv.js +5 -0
  601. package/dist/components/p-CvUMXJCl.js +5 -0
  602. package/dist/components/p-D3usVJE2.js +16 -0
  603. package/dist/components/p-D6zroLx5.js +5 -0
  604. package/dist/components/p-DA5GS53D.js +5 -0
  605. package/dist/components/p-DBP6K_aq.js +5 -0
  606. package/dist/components/p-DBmwzG9E.js +5 -0
  607. package/dist/components/p-DCrVo-8T.js +5 -0
  608. package/dist/components/p-DFUKDNck.js +5 -0
  609. package/dist/components/p-DHicj0By.js +5 -0
  610. package/dist/components/p-DIK54tTj.js +5 -0
  611. package/dist/components/p-DQRSHR-D.js +5 -0
  612. package/dist/components/p-DRVMm1Py.js +5 -0
  613. package/dist/components/p-DWPmUV72.js +5 -0
  614. package/dist/components/p-DXjQyH6s.js +5 -0
  615. package/dist/components/p-DYA74R1r.js +5 -0
  616. package/dist/components/p-DmCxdB9P.js +5 -0
  617. package/dist/components/p-Dmfk7eEe.js +5 -0
  618. package/dist/components/p-Dp0xy_3n.js +5 -0
  619. package/dist/components/p-DxZJrIyL.js +5 -0
  620. package/dist/components/p-JAkkThgf.js +5 -0
  621. package/dist/components/p-Ud-WB0hx.js +5 -0
  622. package/dist/components/p-bhULC15U.js +5 -0
  623. package/dist/components/p-cF3ia5e9.js +5 -0
  624. package/dist/components/p-fpMNttbg.js +5 -0
  625. package/dist/components/p-gvnfuTjd.js +5 -0
  626. package/dist/components/p-qYONSNcf.js +5 -0
  627. package/dist/components/p-qhhHGJY1.js +5 -0
  628. package/dist/components/p-ttI0nvv_.js +5 -0
  629. package/dist/components/p-ukNmfGNP.js +5 -0
  630. package/dist/components/p-xa8e1kSW.js +5 -0
  631. package/dist/esm/app-globals-DVjNHTTs.js +7 -0
  632. package/dist/esm/br-avatar.entry.js +246 -0
  633. package/dist/esm/br-breadcrumb-item.entry.js +43 -0
  634. package/dist/esm/br-breadcrumb.entry.js +441 -0
  635. package/dist/esm/br-button_2.entry.js +277 -0
  636. package/dist/esm/br-card.entry.js +109 -0
  637. package/dist/esm/br-carousel-page.entry.js +78 -0
  638. package/dist/esm/br-carousel.entry.js +563 -0
  639. package/dist/esm/br-checkbox-group.entry.js +116 -0
  640. package/dist/esm/br-checkbox.entry.js +286 -0
  641. package/dist/esm/br-checkgroup.entry.js +18 -0
  642. package/dist/esm/br-collapse_2.entry.js +680 -0
  643. package/dist/esm/br-cookiebar-cookie.entry.js +81 -0
  644. package/dist/esm/br-cookiebar-group.entry.js +307 -0
  645. package/dist/esm/br-cookiebar-header.entry.js +37 -0
  646. package/dist/esm/br-cookiebar-link.entry.js +53 -0
  647. package/dist/esm/br-cookiebar-note-group.entry.js +68 -0
  648. package/dist/esm/br-cookiebar-note.entry.js +23 -0
  649. package/dist/esm/br-cookiebar.entry.js +756 -0
  650. package/dist/esm/br-crumb.entry.js +49 -0
  651. package/dist/esm/br-date-picker_3.entry.js +2443 -0
  652. package/dist/esm/br-datetime-picker.entry.js +1884 -0
  653. package/dist/esm/br-divider.entry.js +223 -0
  654. package/dist/esm/br-dropdown_2.entry.js +1997 -0
  655. package/dist/esm/br-footer-category.entry.js +100 -0
  656. package/dist/esm/br-footer-item.entry.js +50 -0
  657. package/dist/esm/br-footer-legal.entry.js +39 -0
  658. package/dist/esm/br-footer-logo.entry.js +102 -0
  659. package/dist/esm/br-footer-social.entry.js +69 -0
  660. package/dist/esm/br-footer.entry.js +90 -0
  661. package/dist/esm/br-header-function.entry.js +140 -0
  662. package/dist/esm/br-header-link.entry.js +58 -0
  663. package/dist/esm/br-header-list.entry.js +277 -0
  664. package/dist/esm/br-header-logo.entry.js +176 -0
  665. package/dist/esm/br-header.entry.js +640 -0
  666. package/dist/esm/br-icon.entry.js +483 -0
  667. package/dist/esm/br-input.entry.js +597 -0
  668. package/dist/esm/br-item.entry.js +365 -0
  669. package/dist/esm/br-link.entry.js +131 -0
  670. package/dist/esm/br-loading.entry.js +503 -0
  671. package/dist/esm/br-magic-button.entry.js +91 -0
  672. package/dist/esm/br-menu-group.entry.js +21 -0
  673. package/dist/esm/br-menu-header.entry.js +45 -0
  674. package/dist/esm/br-menu-info.entry.js +36 -0
  675. package/dist/esm/br-menu-item.entry.js +77 -0
  676. package/dist/esm/br-menu-link.entry.js +54 -0
  677. package/dist/esm/br-menu-list.entry.js +147 -0
  678. package/dist/esm/br-menu-logo.entry.js +73 -0
  679. package/dist/esm/br-menu-social.entry.js +63 -0
  680. package/dist/esm/br-menu.entry.js +991 -0
  681. package/dist/esm/br-modal.entry.js +494 -0
  682. package/dist/esm/br-notification-body.entry.js +69 -0
  683. package/dist/esm/br-notification-header.entry.js +46 -0
  684. package/dist/esm/br-notification-item.entry.js +108 -0
  685. package/dist/esm/br-notification.entry.js +332 -0
  686. package/dist/esm/br-pagination.entry.js +882 -0
  687. package/dist/esm/br-radio-group.entry.js +426 -0
  688. package/dist/esm/br-radio.entry.js +355 -0
  689. package/dist/esm/br-scrim.entry.js +1334 -0
  690. package/dist/esm/br-select-input_3.entry.js +984 -0
  691. package/dist/esm/br-sign-in.entry.js +124 -0
  692. package/dist/esm/br-skip-link-item.entry.js +18 -0
  693. package/dist/esm/br-skip-link.entry.js +360 -0
  694. package/dist/esm/br-skiplink-item.entry.js +190 -0
  695. package/dist/esm/br-slider.entry.js +685 -0
  696. package/dist/esm/br-step_2.entry.js +625 -0
  697. package/dist/esm/br-switch.entry.js +243 -0
  698. package/dist/esm/br-tab-item.entry.js +183 -0
  699. package/dist/esm/br-tab.entry.js +395 -0
  700. package/dist/esm/br-table-body.entry.js +35 -0
  701. package/dist/esm/br-table-cell.entry.js +182 -0
  702. package/dist/esm/br-table-header-cell.entry.js +171 -0
  703. package/dist/esm/br-table-header.entry.js +35 -0
  704. package/dist/esm/br-table-row.entry.js +79 -0
  705. package/dist/esm/br-table.entry.js +678 -0
  706. package/dist/esm/br-tag.entry.js +491 -0
  707. package/dist/esm/br-textarea.entry.js +304 -0
  708. package/dist/esm/br-tooltip.entry.js +625 -0
  709. package/dist/esm/br-upload.entry.js +579 -0
  710. package/dist/esm/br-wizard-panel.entry.js +52 -0
  711. package/dist/esm/br-wizard.entry.js +706 -0
  712. package/dist/esm/breakpoint-observer-DBmwzG9E.js +141 -0
  713. package/dist/esm/clamp-gvnfuTjd.js +23 -0
  714. package/dist/esm/cookiebar.utils-DYA74R1r.js +16 -0
  715. package/dist/esm/datetime-picker-constants-Bfm58jO6.js +3798 -0
  716. package/dist/esm/event-DFN_so7I.js +48 -0
  717. package/dist/esm/floating-surface-dismiss-BWXfdbQH.js +61 -0
  718. package/dist/esm/floating-ui-BavFwMnx.js +134 -0
  719. package/dist/esm/floating-ui.dom-DIK54tTj.js +1707 -0
  720. package/dist/esm/focus-DxZJrIyL.js +26 -0
  721. package/dist/esm/getNextElement-9S9bgUT0.js +28 -0
  722. package/dist/esm/iconify-icon-D3usVJE2.js +2303 -0
  723. package/dist/esm/id-BkS6ujyf.js +18 -0
  724. package/dist/esm/index-Bo-2igoO.js +671 -0
  725. package/dist/esm/index-C2RBydfd.js +3258 -0
  726. package/dist/esm/index.js +6 -0
  727. package/dist/esm/isNil-B-qLmYZC.js +17 -0
  728. package/dist/esm/isValid-DIUZX1qS.js +3684 -0
  729. package/dist/esm/loader.js +15 -0
  730. package/dist/esm/native-dialog-B55qsau4.js +46 -0
  731. package/dist/esm/navigation-bhULC15U.js +23 -0
  732. package/dist/esm/parts-Bb5vVlCC.js +17 -0
  733. package/dist/esm/props-DRVMm1Py.js +22 -0
  734. package/dist/esm/raf-batcher-cF3ia5e9.js +53 -0
  735. package/dist/esm/slot-BIG-yees.js +44 -0
  736. package/dist/esm/swipe-Dmfk7eEe.js +343 -0
  737. package/dist/esm/table-constants-CXMwM9m4.js +170 -0
  738. package/dist/esm/validator-D3tVP32U.js +113 -0
  739. package/dist/esm/webcomponents.js +46 -0
  740. package/dist/hydrate/index.d.ts +287 -0
  741. package/dist/hydrate/index.js +67516 -0
  742. package/dist/hydrate/index.mjs +67506 -0
  743. package/dist/hydrate/package.json +12 -0
  744. package/dist/index.cjs.js +1 -0
  745. package/dist/index.js +1 -0
  746. package/dist/loader/cdn.js +5 -0
  747. package/dist/loader/index.cjs.js +5 -0
  748. package/dist/loader/index.d.ts +24 -0
  749. package/dist/loader/index.es2017.js +5 -0
  750. package/dist/loader/index.js +6 -0
  751. package/dist/types/components/item/item.d.ts +1 -0
  752. package/dist/types/components/select/select-list/select-list.d.ts +1 -0
  753. package/dist/types/components/select/select-option/select-option.d.ts +1 -0
  754. package/dist/types/components/select/select.d.ts +14 -0
  755. package/dist/types/components/select/select.types.d.ts +2 -0
  756. package/dist/types/components/select/select.utils.d.ts +13 -0
  757. package/dist/webcomponents/index.esm.js +5 -0
  758. package/dist/webcomponents/p-0196804a.entry.js +5 -0
  759. package/dist/webcomponents/p-0410186a.entry.js +5 -0
  760. package/dist/webcomponents/p-0415ef22.entry.js +5 -0
  761. package/dist/webcomponents/p-0777c7b1.entry.js +5 -0
  762. package/dist/webcomponents/p-0caa4d12.entry.js +5 -0
  763. package/dist/webcomponents/p-0d4f718d.entry.js +5 -0
  764. package/dist/webcomponents/p-0e84c9e8.entry.js +5 -0
  765. package/dist/webcomponents/p-12286e73.entry.js +5 -0
  766. package/dist/webcomponents/p-147ac8d3.entry.js +5 -0
  767. package/dist/webcomponents/p-1580beee.entry.js +5 -0
  768. package/dist/webcomponents/p-18ee6175.entry.js +5 -0
  769. package/dist/webcomponents/p-1bca4499.entry.js +5 -0
  770. package/dist/webcomponents/p-1c303a4e.entry.js +5 -0
  771. package/dist/webcomponents/p-1d6b0b6f.entry.js +5 -0
  772. package/dist/webcomponents/p-1d8cb8fd.entry.js +5 -0
  773. package/dist/webcomponents/p-224daaac.entry.js +5 -0
  774. package/dist/webcomponents/p-28426d2a.entry.js +5 -0
  775. package/dist/webcomponents/p-2abd2da0.entry.js +5 -0
  776. package/dist/webcomponents/p-2fdc51ae.entry.js +5 -0
  777. package/dist/webcomponents/p-30c428b6.entry.js +5 -0
  778. package/dist/webcomponents/p-36bbea4e.entry.js +5 -0
  779. package/dist/webcomponents/p-3907ebfa.entry.js +5 -0
  780. package/dist/webcomponents/p-39a16f9d.entry.js +5 -0
  781. package/dist/webcomponents/p-3ebbd2f5.entry.js +5 -0
  782. package/dist/webcomponents/p-3ef7eac8.entry.js +5 -0
  783. package/dist/webcomponents/p-45356e9a.entry.js +5 -0
  784. package/dist/webcomponents/p-46513db4.entry.js +5 -0
  785. package/dist/webcomponents/p-4c13221a.entry.js +5 -0
  786. package/dist/webcomponents/p-51ce2c31.entry.js +5 -0
  787. package/dist/webcomponents/p-52df61cb.entry.js +5 -0
  788. package/dist/webcomponents/p-569134cf.entry.js +5 -0
  789. package/dist/webcomponents/p-5ce7db4a.entry.js +5 -0
  790. package/dist/webcomponents/p-5f373708.entry.js +5 -0
  791. package/dist/webcomponents/p-5f6afb79.entry.js +5 -0
  792. package/dist/webcomponents/p-5fc7ba4c.entry.js +5 -0
  793. package/dist/webcomponents/p-66006312.entry.js +5 -0
  794. package/dist/webcomponents/p-66b13fd9.entry.js +5 -0
  795. package/dist/webcomponents/p-6OdfnwnK.js +5 -0
  796. package/dist/webcomponents/p-750799b7.entry.js +5 -0
  797. package/dist/webcomponents/p-756ff2ad.entry.js +5 -0
  798. package/dist/webcomponents/p-765bfe27.entry.js +5 -0
  799. package/dist/webcomponents/p-7ab96c11.entry.js +5 -0
  800. package/dist/webcomponents/p-7c2ff8b4.entry.js +5 -0
  801. package/dist/webcomponents/p-7f7506f0.entry.js +5 -0
  802. package/dist/webcomponents/p-7fb03a49.entry.js +5 -0
  803. package/dist/webcomponents/p-82200563.entry.js +5 -0
  804. package/dist/webcomponents/p-83ff4579.entry.js +5 -0
  805. package/dist/webcomponents/p-85f8063b.entry.js +5 -0
  806. package/dist/webcomponents/p-8b558233.entry.js +5 -0
  807. package/dist/webcomponents/p-8e6c2767.entry.js +5 -0
  808. package/dist/webcomponents/p-8e819355.entry.js +5 -0
  809. package/dist/webcomponents/p-92a9b9c4.entry.js +5 -0
  810. package/dist/webcomponents/p-966ad32f.entry.js +5 -0
  811. package/dist/webcomponents/p-9679d230.entry.js +5 -0
  812. package/dist/webcomponents/p-96dd663b.entry.js +5 -0
  813. package/dist/webcomponents/p-98843fa3.entry.js +5 -0
  814. package/dist/webcomponents/p-9S9bgUT0.js +5 -0
  815. package/dist/webcomponents/p-9a375eff.entry.js +5 -0
  816. package/dist/webcomponents/p-9b358cff.entry.js +5 -0
  817. package/dist/webcomponents/p-9f7558c7.entry.js +5 -0
  818. package/dist/webcomponents/p-B-qLmYZC.js +5 -0
  819. package/dist/webcomponents/p-B55qsau4.js +5 -0
  820. package/dist/webcomponents/p-BIG-yees.js +5 -0
  821. package/dist/webcomponents/p-BWXfdbQH.js +5 -0
  822. package/dist/webcomponents/p-Bb5vVlCC.js +5 -0
  823. package/dist/webcomponents/p-Bfm58jO6.js +5 -0
  824. package/dist/webcomponents/p-BhMVJQ4-.js +5 -0
  825. package/dist/webcomponents/p-BkS6ujyf.js +5 -0
  826. package/dist/webcomponents/p-C2RBydfd.js +6 -0
  827. package/dist/webcomponents/p-CO5cOQQU.js +5 -0
  828. package/dist/webcomponents/p-CXMwM9m4.js +5 -0
  829. package/dist/webcomponents/p-D3tVP32U.js +5 -0
  830. package/dist/webcomponents/p-D3usVJE2.js +16 -0
  831. package/dist/webcomponents/p-DBmwzG9E.js +5 -0
  832. package/dist/webcomponents/p-DFN_so7I.js +5 -0
  833. package/dist/webcomponents/p-DIK54tTj.js +5 -0
  834. package/dist/webcomponents/p-DRVMm1Py.js +5 -0
  835. package/dist/webcomponents/p-DVjNHTTs.js +5 -0
  836. package/dist/webcomponents/p-DYA74R1r.js +5 -0
  837. package/dist/webcomponents/p-Dmfk7eEe.js +5 -0
  838. package/dist/webcomponents/p-DxZJrIyL.js +5 -0
  839. package/dist/webcomponents/p-a382e115.entry.js +5 -0
  840. package/dist/webcomponents/p-a4ae72e3.entry.js +5 -0
  841. package/dist/webcomponents/p-a994c190.entry.js +5 -0
  842. package/dist/webcomponents/p-a9ff7c25.entry.js +5 -0
  843. package/dist/webcomponents/p-bhULC15U.js +5 -0
  844. package/dist/webcomponents/p-c0b0f531.entry.js +5 -0
  845. package/dist/webcomponents/p-c211af17.entry.js +5 -0
  846. package/dist/webcomponents/p-c492d926.entry.js +5 -0
  847. package/dist/webcomponents/p-c4cfe599.entry.js +5 -0
  848. package/dist/webcomponents/p-c846e784.entry.js +5 -0
  849. package/dist/webcomponents/p-c949d993.entry.js +5 -0
  850. package/dist/webcomponents/p-cF3ia5e9.js +5 -0
  851. package/dist/webcomponents/p-d1e899cd.entry.js +5 -0
  852. package/dist/webcomponents/p-d38d82cc.entry.js +5 -0
  853. package/dist/webcomponents/p-e0ce536a.entry.js +5 -0
  854. package/dist/webcomponents/p-e1331288.entry.js +5 -0
  855. package/dist/webcomponents/p-e360a463.entry.js +5 -0
  856. package/dist/webcomponents/p-f078f972.entry.js +5 -0
  857. package/dist/webcomponents/p-f26038e2.entry.js +5 -0
  858. package/dist/webcomponents/p-f303f6b3.entry.js +5 -0
  859. package/dist/webcomponents/p-f6318e94.entry.js +5 -0
  860. package/dist/webcomponents/p-f85ee01c.entry.js +5 -0
  861. package/dist/webcomponents/p-fcd4ae48.entry.js +5 -0
  862. package/dist/webcomponents/p-ffe0241e.entry.js +5 -0
  863. package/dist/webcomponents/p-gvnfuTjd.js +5 -0
  864. package/dist/webcomponents/webcomponents.esm.js +5 -0
  865. package/package.json +3 -7
  866. package/cem/.gitkeep +0 -0
@@ -0,0 +1,984 @@
1
+ /*!
2
+ * Construído por SERPRO
3
+ * © https://serpro.gov.br/ - MIT License.
4
+ */
5
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-C2RBydfd.js';
6
+ import { c as createRafBatcher } from './raf-batcher-cF3ia5e9.js';
7
+
8
+ const selectInputCss = () => `*,*::before,*::after{box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}code{font-family:monospace;font-size:1em}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.align-items-center{align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{flex:1 0 0%;min-width:8.3333333333%}.col-auto{flex:0 0 auto;width:auto}.col-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-fluid,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:flex;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}}@media (min-width: 992px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width: 1600px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.ease{animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mb-4{margin-bottom:var(--spacing-scale-3x) !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}.highlight{background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-bold{font-weight:700 !important}.text-base{font-size:var(--font-size-scale-base) !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a.focus-visible,a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}.main-content a{text-decoration:underline}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}tr.selected,tr.is-selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}fieldset,.fieldset{border:var(--surface-width-none);margin-bottom:var(--spacing-scale-5x);margin-top:0;padding:0}legend,.legend{color:var(--color);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2x);margin-top:var(--spacing-scale-2x)}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.help{font-size:var(--font-size-scale-base)}code,.code{background:var(--gray-5);border-radius:4px;color:var(--gray-80);display:inline-block;font-family:monospace;font-size:var(--font-size-scale-base);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);padding:var(--spacing-scale-half)}*[data-toggle=collapse]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse].focus-visible,*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{display:block;cursor:pointer}br-input{cursor:pointer}:host([disabled]){opacity:1 !important;cursor:default}:host([disabled]) br-input{cursor:default}`;
9
+
10
+ const SelectInput = class {
11
+ constructor(hostRef) {
12
+ registerInstance(this, hostRef);
13
+ this.brSelectInputFocus = createEvent(this, "brSelectInputFocus", 7);
14
+ this.brSelectInputValueChange = createEvent(this, "brSelectInputValueChange", 7);
15
+ this.brSelectInputActionClick = createEvent(this, "brSelectInputActionClick", 7);
16
+ this.brSelectInputClick = createEvent(this, "brSelectInputClick", 7);
17
+ if (hostRef.$hostElement$["s-ei"]) {
18
+ this.elementInternals = hostRef.$hostElement$["s-ei"];
19
+ }
20
+ else {
21
+ this.elementInternals = hostRef.$hostElement$.attachInternals();
22
+ hostRef.$hostElement$["s-ei"] = this.elementInternals;
23
+ }
24
+ /**
25
+ * Remove a borda do campo quando ele não está em foco.
26
+ *
27
+ * @default false
28
+ */
29
+ this.borderless = false;
30
+ /**
31
+ * Desativa toda a interação do campo de entrada.
32
+ *
33
+ * @default false
34
+ */
35
+ this.disabled = false;
36
+ /**
37
+ * Exibe label e campo na mesma linha.
38
+ *
39
+ * @default false
40
+ */
41
+ this.isInline = false;
42
+ /**
43
+ * Indica que o valor do campo é obrigatório.
44
+ *
45
+ * @default false
46
+ */
47
+ this.required = false;
48
+ /**
49
+ * Habilita a edição do campo usada para filtrar as opções.
50
+ *
51
+ * @default false
52
+ */
53
+ this.filterable = false;
54
+ this.flipped = false;
55
+ this.handleFocus = () => {
56
+ this.brSelectInputFocus.emit();
57
+ };
58
+ this.handleInput = (event) => {
59
+ const target = event.target;
60
+ const detail = event.detail;
61
+ const nativeValue = this.inputElement?.shadowRoot?.querySelector('input')?.value;
62
+ this.brSelectInputValueChange.emit(typeof detail === 'string' ? detail : (nativeValue ?? this.inputElement?.value ?? target?.value ?? ''));
63
+ };
64
+ this.handleClick = () => {
65
+ this.brSelectInputClick.emit();
66
+ };
67
+ }
68
+ componentDidRender() {
69
+ this.syncNativeCursor();
70
+ }
71
+ /**
72
+ * Atualiza o ícone para o estado visual de lista aberta.
73
+ *
74
+ * @returns Uma promise concluída após a atualização visual.
75
+ */
76
+ async flipUp() {
77
+ this.flipped = true;
78
+ }
79
+ /**
80
+ * Atualiza o ícone para o estado visual de lista fechada.
81
+ *
82
+ * @returns Uma promise concluída após a atualização visual.
83
+ */
84
+ async flipDown() {
85
+ this.flipped = false;
86
+ }
87
+ /**
88
+ * Reaplica o foco no input nativo encapsulado por `br-input`.
89
+ *
90
+ * @returns Uma promise concluída após a tentativa de foco.
91
+ */
92
+ async setFocus() {
93
+ const nativeInput = this.inputElement?.shadowRoot?.querySelector('input');
94
+ nativeInput?.focus();
95
+ }
96
+ syncNativeCursor() {
97
+ const nativeInput = this.inputElement?.shadowRoot?.querySelector('input');
98
+ if (nativeInput) {
99
+ nativeInput.style.cursor = this.disabled ? 'default' : this.filterable ? 'text' : 'pointer';
100
+ }
101
+ }
102
+ handleActionClick() {
103
+ if (!this.disabled)
104
+ this.brSelectInputActionClick.emit();
105
+ }
106
+ getCssClassMap() {
107
+ return {
108
+ 'br-select-input': true,
109
+ };
110
+ }
111
+ renderSearchIcon() {
112
+ return h("br-icon", { slot: "icon", iconName: "fa-solid:search", width: "16", height: "16", "aria-hidden": "true" });
113
+ }
114
+ renderDropdownIcon() {
115
+ return (h("br-icon", { "aria-hidden": "true", iconName: this.flipped ? 'fa-solid:angle-up' : 'fa-solid:angle-down', width: "16", height: "16", slot: "action" }));
116
+ }
117
+ render() {
118
+ return (h(Host, { key: 'be737b653173bc2a31e9065989dbe44c2bdac4a7' }, h("div", { key: 'c2b733eb6a3973f50788019f86360b0000df9f34', class: this.getCssClassMap(), part: "container" }, h("br-input", { key: '72882f4a77405e2a0bf04523d0dbf36a6a4e855d', "action-tab-index": -1, "action-label": this.flipped ? 'Fechar opções' : 'Abrir opções', autocomplete: this.autocomplete, borderless: this.borderless, "control-width": this.inputWidth, readonly: !this.filterable, "is-inline": this.isInline, label: this.label, name: this.name, placeholder: this.placeholder, required: this.required, ref: (el) => {
119
+ this.inputElement = el;
120
+ }, value: this.value, disabled: this.disabled, onClick: this.handleClick, onInput: this.handleInput, onFocus: this.handleFocus, exportparts: "container:input, label:label, input:input, group:group, icon:icon, action:action, action-button:action-button" }, this.showSearchIcon && this.renderSearchIcon(), this.renderDropdownIcon()))));
121
+ }
122
+ static get delegatesFocus() { return true; }
123
+ static get formAssociated() { return true; }
124
+ get el() { return getElement(this); }
125
+ };
126
+ SelectInput.style = selectInputCss();
127
+
128
+ const selectListCss = () => `*,*::before,*::after{box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}code{font-family:monospace;font-size:1em}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.align-items-center{align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{flex:1 0 0%;min-width:8.3333333333%}.col-auto{flex:0 0 auto;width:auto}.col-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-fluid,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:flex;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}}@media (min-width: 992px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width: 1600px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.ease{animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mb-4{margin-bottom:var(--spacing-scale-3x) !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}.highlight{background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-bold{font-weight:700 !important}.text-base{font-size:var(--font-size-scale-base) !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a.focus-visible,a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}.main-content a{text-decoration:underline}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}tr.selected,tr.is-selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}fieldset,.fieldset{border:var(--surface-width-none);margin-bottom:var(--spacing-scale-5x);margin-top:0;padding:0}legend,.legend{color:var(--color);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2x);margin-top:var(--spacing-scale-2x)}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.help{font-size:var(--font-size-scale-base)}code,.code{background:var(--gray-5);border-radius:4px;color:var(--gray-80);display:inline-block;font-family:monospace;font-size:var(--font-size-scale-base);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);padding:var(--spacing-scale-half)}*[data-toggle=collapse]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse].focus-visible,*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{display:block}:host{display:block;left:0;position:absolute;right:0;top:100%;z-index:1}.br-select-list{background-color:var(--bg-color);box-shadow:var(--select-shadow);display:none;margin-top:-2px;max-height:404px;overflow:auto;resize:none;width:100%}.br-select-list.is-open{display:block}`;
129
+
130
+ const SelectList = class {
131
+ constructor(hostRef) {
132
+ registerInstance(this, hostRef);
133
+ /**
134
+ * Coleção de opções exibidas pela lista.
135
+ *
136
+ * @type {SelectOptionData[]}
137
+ * @default []
138
+ */
139
+ this.options = [];
140
+ /**
141
+ * Termo usado para filtrar opções por rótulo ou valor.
142
+ *
143
+ * @default ''
144
+ */
145
+ this.searchTerm = '';
146
+ /** Indica que os resultados remotos estão sendo carregados.
147
+ * @default false
148
+ */
149
+ this.loading = false;
150
+ /**
151
+ * Define quantas opções permanecem visíveis na viewport da lista.
152
+ *
153
+ * @default 6
154
+ */
155
+ this.visibleItems = 6;
156
+ /**
157
+ * Informa a altura base usada no cálculo de posicionamento das opções.
158
+ *
159
+ * @default 56
160
+ */
161
+ this.itemHeight = 56;
162
+ /**
163
+ * Define quantas opções extras são renderizadas fora da viewport quando o virtual scroll está ativo.
164
+ *
165
+ * @default 0
166
+ */
167
+ this.overscan = 0;
168
+ /**
169
+ * Rótulo apresentado para a ação de selecionar todos no modo múltiplo.
170
+ *
171
+ * @default 'Selecionar todos'
172
+ */
173
+ this.selectAllLabel = SelectList.SELECT_ALL_LABEL;
174
+ /**
175
+ * Rótulo apresentado quando todas as opções já estão selecionadas no modo múltiplo.
176
+ *
177
+ * @default 'Desselecionar todos'
178
+ */
179
+ this.unselectAllLabel = SelectList.DESELECT_ALL_LABEL;
180
+ /**
181
+ * Índice da opção atualmente ativa para navegação por teclado.
182
+ *
183
+ * @default -1
184
+ * @remarks
185
+ * Esse valor é usado para refletir visualmente o foco lógico da lista.
186
+ */
187
+ this.activeOptionIndex = -1;
188
+ this.isOpen = false;
189
+ this.isMultiple = false;
190
+ this.scrollTop = 0;
191
+ this.measuredItemHeight = null;
192
+ this.measurementFrame = null;
193
+ this.filteredOptionsCache = null;
194
+ this.filteredOptionsCacheKey = '';
195
+ this.scrollBatch = createRafBatcher((scrollTop) => {
196
+ if (this.scrollTop !== scrollTop)
197
+ this.scrollTop = scrollTop;
198
+ });
199
+ /**
200
+ * Aguarda o próximo frame para que medições e queries reflitam o DOM recém-renderizado.
201
+ *
202
+ * @returns Uma promise resolvida no próximo `requestAnimationFrame`.
203
+ */
204
+ this.waitForNextFrame = async () => {
205
+ await new Promise((resolve) => requestAnimationFrame(() => resolve()));
206
+ };
207
+ this.handleScroll = (event) => {
208
+ const target = event.target;
209
+ this.scrollBatch.schedule(target?.scrollTop ?? 0);
210
+ };
211
+ }
212
+ disconnectedCallback() {
213
+ this.scrollBatch.cancel();
214
+ if (this.measurementFrame !== null) {
215
+ cancelAnimationFrame(this.measurementFrame);
216
+ this.measurementFrame = null;
217
+ }
218
+ }
219
+ handleSearchTermChange() {
220
+ this.scrollTop = 0;
221
+ if (this.listElement) {
222
+ this.listElement.scrollTop = 0;
223
+ }
224
+ this.scheduleMeasureItemHeight();
225
+ }
226
+ handleSelectAllLabelChange() {
227
+ if (!this.isMultiple)
228
+ return;
229
+ this.options = this.syncSelectAllOption(this.options);
230
+ }
231
+ handleOptionStateChange(event) {
232
+ if (this.isControlledBySelect)
233
+ return;
234
+ const detail = event.detail;
235
+ if (!detail?.value)
236
+ return;
237
+ if (this.isMultiple)
238
+ return this.applyMultipleOption(detail);
239
+ if (detail.selected)
240
+ return this.applySingleSelect(detail);
241
+ return this.clearSingleSelection();
242
+ }
243
+ /**
244
+ * Abre a lista e agenda a medição das opções quando necessário.
245
+ *
246
+ * @returns Uma promise concluída após a atualização do estado.
247
+ */
248
+ async open() {
249
+ this.isOpen = true;
250
+ this.scheduleMeasureItemHeight();
251
+ }
252
+ /**
253
+ * Fecha a lista de opções.
254
+ *
255
+ * @returns Uma promise concluída após a atualização do estado.
256
+ */
257
+ async close() {
258
+ this.isOpen = false;
259
+ }
260
+ /**
261
+ * Substitui todas as opções renderizadas pela lista.
262
+ *
263
+ * @param options Nova coleção de opções normalizadas.
264
+ * @returns Uma promise concluída após a atualização da lista.
265
+ */
266
+ async setOptions(options) {
267
+ if (!options || options.length === 0) {
268
+ this.options = [];
269
+ this.scrollTop = 0;
270
+ this.measuredItemHeight = null;
271
+ if (this.listElement) {
272
+ this.listElement.scrollTop = 0;
273
+ }
274
+ return;
275
+ }
276
+ const map = new Map();
277
+ let hasDuplicates = false;
278
+ options.forEach((opt) => {
279
+ if (map.has(opt.value)) {
280
+ hasDuplicates = true;
281
+ }
282
+ map.set(opt.value, opt);
283
+ });
284
+ if (hasDuplicates) {
285
+ console.warn('[br-select-list] Foram encontrados valores duplicados em `setOptions`. Apenas a ultima ocorrencia de cada `value` sera mantida.');
286
+ }
287
+ const nextOptions = Array.from(map.values());
288
+ this.options = this.normalizeOptionsForMode(nextOptions, this.isMultiple);
289
+ this.scheduleMeasureItemHeight();
290
+ requestAnimationFrame(() => this.clampScrollPosition());
291
+ }
292
+ /**
293
+ * Adiciona ou atualiza uma única opção na coleção atual.
294
+ *
295
+ * @param option Opção que deve ser persistida na lista.
296
+ * @returns Uma promise concluída após a atualização da coleção.
297
+ */
298
+ async setOption(option) {
299
+ const index = this.options.findIndex((opt) => opt.value === option.value);
300
+ let nextOptions;
301
+ if (index !== -1) {
302
+ nextOptions = this.options.map((opt) => (opt.value === option.value ? option : opt));
303
+ }
304
+ else {
305
+ nextOptions = [...this.options, option];
306
+ }
307
+ this.options = this.normalizeOptionsForMode(nextOptions, this.isMultiple);
308
+ requestAnimationFrame(() => this.clampScrollPosition());
309
+ }
310
+ /**
311
+ * Atualiza o termo de busca e reinicia a janela virtual no topo.
312
+ *
313
+ * @param term Termo que deve filtrar a coleção. String vazia restaura todas as opções.
314
+ */
315
+ async setSearchTerm(term) {
316
+ const nextTerm = term ?? '';
317
+ if (nextTerm === this.searchTerm)
318
+ return;
319
+ this.searchTerm = nextTerm;
320
+ this.scrollTop = 0;
321
+ if (this.listElement) {
322
+ this.listElement.scrollTop = 0;
323
+ }
324
+ this.scheduleMeasureItemHeight();
325
+ }
326
+ /**
327
+ * Alterna a lista entre modo simples e múltiplo.
328
+ *
329
+ * @param isMultiple Define se a lista deve operar em seleção múltipla.
330
+ * @returns Uma promise concluída após a atualização do modo.
331
+ */
332
+ async setMultiple(isMultiple) {
333
+ this.isMultiple = isMultiple;
334
+ if (!this.isControlledBySelect)
335
+ this.options = this.normalizeOptionsForMode(this.options, isMultiple);
336
+ this.scheduleMeasureItemHeight();
337
+ }
338
+ get isControlledBySelect() {
339
+ const root = this.el.getRootNode();
340
+ const host = root.host;
341
+ return host?.tagName?.toLowerCase() === 'br-select';
342
+ }
343
+ /**
344
+ * Retorna uma cópia das opções atualmente controladas pela lista.
345
+ *
346
+ * @returns As opções renderizadas no estado atual.
347
+ */
348
+ async getOptions() {
349
+ return this.options.map((option) => ({ ...option }));
350
+ }
351
+ /**
352
+ * Posiciona uma opção no topo da viewport virtual, respeitando o limite final da lista.
353
+ *
354
+ * @param index Índice lógico da opção alvo.
355
+ * @returns `true` quando o índice pertence à coleção filtrada atual.
356
+ */
357
+ async scrollOptionToTop(index) {
358
+ const filteredOptions = this.getFilteredOptions();
359
+ if (index < 0 || index >= filteredOptions.length || !this.listElement)
360
+ return false;
361
+ const rowHeight = this.getRowHeight();
362
+ const viewportHeight = this.getViewportHeight();
363
+ const maxScrollTop = Math.max(0, filteredOptions.length * rowHeight - viewportHeight);
364
+ const nextScrollTop = Math.min(index * rowHeight, maxScrollTop);
365
+ /*
366
+ * Atualiza primeiro o estado que define a janela virtual. Dessa forma,
367
+ * os itens do novo intervalo são renderizados antes de o viewport nativo
368
+ * avançar, evitando uma linha vazia durante o reposicionamento.
369
+ */
370
+ this.scrollTop = nextScrollTop;
371
+ await this.waitForNextFrame();
372
+ this.listElement.scrollTop = nextScrollTop;
373
+ await this.waitForNextFrame();
374
+ return true;
375
+ }
376
+ /**
377
+ * Posiciona no topo a primeira opção selecionada na ordem visual da lista.
378
+ * A opção auxiliar de selecionar tudo não participa dessa escolha.
379
+ *
380
+ * @returns `true` quando existe uma opção selecionada para posicionar.
381
+ */
382
+ async scrollFirstSelectedOptionToTop() {
383
+ const filteredOptions = this.getFilteredOptions();
384
+ const selectedIndex = filteredOptions.findIndex((option) => !this.isSelectAllOption(option) && Boolean(option.selected));
385
+ if (selectedIndex < 0)
386
+ return false;
387
+ return this.scrollOptionToTop(selectedIndex);
388
+ }
389
+ /**
390
+ * Garante visibilidade e foco para uma opção específica.
391
+ *
392
+ * @param index Índice lógico da opção alvo.
393
+ * @returns `true` quando a opção foi encontrada para foco.
394
+ */
395
+ async focusOption(index) {
396
+ const filteredOptions = this.getFilteredOptions();
397
+ if (index < 0 || index >= filteredOptions.length)
398
+ return false;
399
+ await this.ensureOptionVisible(index);
400
+ let optionElement = this.getOptionElement(index);
401
+ if (!optionElement) {
402
+ await this.waitForNextFrame();
403
+ optionElement = this.getOptionElement(index);
404
+ }
405
+ await optionElement?.setFocus?.();
406
+ return Boolean(optionElement);
407
+ }
408
+ /**
409
+ * Aciona a seleção programática de uma opção específica.
410
+ *
411
+ * @param index Índice lógico da opção alvo.
412
+ * @param selected Estado desejado para a opção. Quando omitido, a própria opção alterna o valor atual.
413
+ * @returns `true` quando a opção foi encontrada para atualização.
414
+ */
415
+ async setOptionSelected(index, selected) {
416
+ const filteredOptions = this.getFilteredOptions();
417
+ if (index < 0 || index >= filteredOptions.length)
418
+ return false;
419
+ await this.ensureOptionVisible(index);
420
+ let optionElement = this.getOptionElement(index);
421
+ if (!optionElement) {
422
+ await this.waitForNextFrame();
423
+ optionElement = this.getOptionElement(index);
424
+ }
425
+ await optionElement?.setSelectedState?.(selected);
426
+ return Boolean(optionElement);
427
+ }
428
+ applyMultipleOption(detail) {
429
+ if (this.isSelectAllOption(detail)) {
430
+ this.toggleAllOptions(Boolean(detail.selected));
431
+ return;
432
+ }
433
+ const nextOptions = this.options.map((option) => {
434
+ if (option.value !== detail.value)
435
+ return option;
436
+ return {
437
+ ...option,
438
+ ...detail,
439
+ indeterminate: false,
440
+ selected: Boolean(detail.selected),
441
+ };
442
+ });
443
+ this.options = this.syncSelectAllOption(nextOptions);
444
+ }
445
+ applySingleSelect(detail) {
446
+ const exists = this.options.some((o) => o.value === detail.value);
447
+ if (exists) {
448
+ this.options = this.options.map((o) => ({ ...o, selected: o.value === detail.value }));
449
+ return;
450
+ }
451
+ const newOpt = {
452
+ value: detail.value,
453
+ label: detail.label ?? detail.value,
454
+ selected: true,
455
+ };
456
+ this.options = [newOpt, ...this.options.map((o) => ({ ...o, selected: false }))];
457
+ }
458
+ clearSingleSelection() {
459
+ this.options = this.options.map((o) => ({ ...o, selected: false }));
460
+ }
461
+ isSelectAllOption(option) {
462
+ if (option.value === SelectList.SELECT_ALL_VALUE)
463
+ return true;
464
+ const optionLabel = (option.label ?? option.value).trim();
465
+ return optionLabel === this.selectAllLabel || optionLabel === this.unselectAllLabel;
466
+ }
467
+ isSelectableOption(option) {
468
+ return !this.isSelectAllOption(option);
469
+ }
470
+ getSelectableOptions(options) {
471
+ return options.filter((option) => this.isSelectableOption(option));
472
+ }
473
+ getSelectAllLabel(selected, indeterminate) {
474
+ return selected && !indeterminate ? this.unselectAllLabel : this.selectAllLabel;
475
+ }
476
+ createSelectAllOption() {
477
+ return {
478
+ value: SelectList.SELECT_ALL_VALUE,
479
+ label: this.selectAllLabel,
480
+ selected: false,
481
+ indeterminate: false,
482
+ disabled: false,
483
+ };
484
+ }
485
+ normalizeSelectAllOption(option) {
486
+ if (!this.isSelectAllOption(option))
487
+ return option;
488
+ const selected = Boolean(option.selected) && !option.indeterminate;
489
+ const indeterminate = Boolean(option.indeterminate);
490
+ return {
491
+ ...option,
492
+ indeterminate,
493
+ label: this.getSelectAllLabel(selected, indeterminate),
494
+ selected,
495
+ };
496
+ }
497
+ toggleAllOptions(selected) {
498
+ const nextOptions = this.getSelectableOptions(this.options).map((option) => ({
499
+ ...option,
500
+ selected,
501
+ indeterminate: false,
502
+ }));
503
+ this.options = this.syncSelectAllOption(nextOptions);
504
+ }
505
+ syncSelectAllOption(options) {
506
+ const selectableOptions = this.getSelectableOptions(options).map((option) => ({
507
+ ...option,
508
+ indeterminate: false,
509
+ }));
510
+ const allSelected = selectableOptions.length > 0 && selectableOptions.every((option) => Boolean(option.selected));
511
+ const anySelected = selectableOptions.some((option) => Boolean(option.selected));
512
+ return [
513
+ this.normalizeSelectAllOption({
514
+ ...this.createSelectAllOption(),
515
+ indeterminate: anySelected && !allSelected,
516
+ selected: allSelected,
517
+ }),
518
+ ...selectableOptions,
519
+ ];
520
+ }
521
+ normalizeOptionsForMode(options, isMultiple) {
522
+ const selectableOptions = this.getSelectableOptions(options);
523
+ if (isMultiple) {
524
+ return this.syncSelectAllOption(selectableOptions);
525
+ }
526
+ let hasSelectedOption = false;
527
+ return selectableOptions.map((option) => {
528
+ const shouldSelect = Boolean(option.selected) && !hasSelectedOption;
529
+ if (shouldSelect) {
530
+ hasSelectedOption = true;
531
+ }
532
+ return {
533
+ ...option,
534
+ indeterminate: false,
535
+ selected: shouldSelect,
536
+ };
537
+ });
538
+ }
539
+ normalizeSearchText(value) {
540
+ return (value ?? '')
541
+ .normalize('NFD')
542
+ .replace(/[\u0300-\u036f]/g, '')
543
+ .toLocaleLowerCase('pt-BR')
544
+ .trim();
545
+ }
546
+ getFilteredOptions() {
547
+ const normalizedTerm = this.normalizeSearchText(this.searchTerm);
548
+ const cacheKey = `${normalizedTerm}|${this.isMultiple}|${this.selectAllLabel}|${this.unselectAllLabel}|${this.options.length}`;
549
+ if (this.options === this.filteredOptionsCacheSource &&
550
+ cacheKey === this.filteredOptionsCacheKey &&
551
+ this.filteredOptionsCache !== null) {
552
+ return this.filteredOptionsCache;
553
+ }
554
+ this.filteredOptionsCacheSource = this.options;
555
+ if (!normalizedTerm) {
556
+ this.filteredOptionsCacheKey = cacheKey;
557
+ this.filteredOptionsCache = this.options;
558
+ return this.options;
559
+ }
560
+ this.filteredOptionsCacheKey = cacheKey;
561
+ this.filteredOptionsCache = this.options.filter((option) => {
562
+ if (this.isSelectAllOption(option))
563
+ return this.isMultiple;
564
+ const label = this.normalizeSearchText(option.label ?? option.value);
565
+ const value = this.normalizeSearchText(option.value);
566
+ return label.includes(normalizedTerm) || value.includes(normalizedTerm);
567
+ });
568
+ return this.filteredOptionsCache;
569
+ }
570
+ getViewportHeight() {
571
+ const visibleOptionCount = Math.min(this.getFilteredOptions().length, this.visibleItems);
572
+ return visibleOptionCount * this.getRowHeight();
573
+ }
574
+ getRowHeight() {
575
+ return this.measuredItemHeight ?? this.itemHeight;
576
+ }
577
+ getVisibleRange() {
578
+ const filteredOptions = this.getFilteredOptions();
579
+ if (filteredOptions.length === 0) {
580
+ return { startIndex: 0, endIndex: 0 };
581
+ }
582
+ const rowHeight = this.getRowHeight();
583
+ const firstVisibleIndex = Math.floor(this.scrollTop / rowHeight);
584
+ const startIndex = Math.max(0, firstVisibleIndex - this.overscan);
585
+ const endIndex = Math.min(filteredOptions.length, firstVisibleIndex + this.visibleItems + this.overscan);
586
+ return { startIndex, endIndex };
587
+ }
588
+ clampScrollPosition() {
589
+ if (!this.listElement)
590
+ return;
591
+ const totalHeight = this.getFilteredOptions().length * this.getRowHeight();
592
+ const maxScrollTop = Math.max(0, totalHeight - this.getViewportHeight());
593
+ const nextScrollTop = Math.min(Math.max(0, this.listElement.scrollTop), maxScrollTop);
594
+ if (this.listElement.scrollTop !== nextScrollTop) {
595
+ this.listElement.scrollTop = nextScrollTop;
596
+ }
597
+ if (this.scrollTop !== nextScrollTop) {
598
+ this.scrollTop = nextScrollTop;
599
+ }
600
+ }
601
+ scheduleMeasureItemHeight() {
602
+ if (this.getFilteredOptions().length === 0)
603
+ return;
604
+ if (this.measurementFrame !== null)
605
+ return;
606
+ this.measurementFrame = requestAnimationFrame(async () => {
607
+ this.measurementFrame = null;
608
+ await this.measureItemHeight();
609
+ });
610
+ }
611
+ async measureItemHeight() {
612
+ const firstOption = this.listElement?.querySelector('br-select-option');
613
+ if (!firstOption?.getItemHeight)
614
+ return;
615
+ const nextHeight = await firstOption.getItemHeight();
616
+ if (!nextHeight || nextHeight <= 0 || nextHeight === this.measuredItemHeight)
617
+ return;
618
+ this.measuredItemHeight = nextHeight;
619
+ this.clampScrollPosition();
620
+ }
621
+ /**
622
+ * Localiza a opção renderizada correspondente a um índice lógico da lista.
623
+ *
624
+ * @param index Índice da opção dentro da coleção atual.
625
+ * @returns O elemento da opção, quando presente no DOM.
626
+ */
627
+ getOptionElement(index) {
628
+ return this.el.shadowRoot?.querySelector(`br-select-option[data-option-index="${index}"]`);
629
+ }
630
+ async ensureOptionVisible(index) {
631
+ if (!this.listElement)
632
+ return;
633
+ const rowHeight = this.getRowHeight();
634
+ const viewportHeight = this.getViewportHeight();
635
+ const optionTop = index * rowHeight;
636
+ const optionBottom = optionTop + rowHeight;
637
+ const viewportTop = this.listElement.scrollTop;
638
+ const viewportBottom = viewportTop + viewportHeight;
639
+ let nextScrollTop = viewportTop;
640
+ if (optionTop < viewportTop) {
641
+ nextScrollTop = optionTop;
642
+ }
643
+ else if (optionBottom > viewportBottom) {
644
+ nextScrollTop = optionBottom - viewportHeight;
645
+ }
646
+ const maxScrollTop = Math.max(0, this.getFilteredOptions().length * rowHeight - viewportHeight);
647
+ nextScrollTop = Math.min(Math.max(0, nextScrollTop), maxScrollTop);
648
+ if (nextScrollTop === viewportTop)
649
+ return;
650
+ this.listElement.scrollTop = nextScrollTop;
651
+ this.scrollTop = nextScrollTop;
652
+ await this.waitForNextFrame();
653
+ }
654
+ getCssClassMap() {
655
+ return {
656
+ 'br-select-list': true,
657
+ 'is-open': this.isOpen,
658
+ };
659
+ }
660
+ renderOption(option, index) {
661
+ const rowHeight = this.getRowHeight();
662
+ const optionPart = this.isSelectAllOption(option) ? 'option select-all' : 'option';
663
+ return (h("br-select-option", { part: optionPart, active: index === this.activeOptionIndex, "data-option-index": index, disabled: option.disabled, id: `${this.el.id || 'br-select-list'}-option-${index}`, indeterminate: option.indeterminate,
664
+ // A seleção faz parte da identidade visual renderizada. Incluir o estado
665
+ // na chave evita que uma opção virtual reutilizada retenha o snapshot
666
+ // interno anterior do br-select-option/br-item.
667
+ key: `${option.value}:${option.selected ? 'selected' : 'unselected'}`, label: option.label, selected: option.selected, "show-checkbox": this.isMultiple, style: {
668
+ boxSizing: 'border-box',
669
+ height: `${rowHeight}px`,
670
+ position: 'absolute',
671
+ top: `${index * rowHeight}px`,
672
+ left: '0',
673
+ right: '0',
674
+ }, value: option.value }, option.content ? h("span", { innerHTML: option.content }) : (option.label ?? option.value)));
675
+ }
676
+ getVirtualScrollStyle() {
677
+ return {
678
+ height: `${this.getViewportHeight()}px`,
679
+ overflowY: 'auto',
680
+ overflowX: 'hidden',
681
+ };
682
+ }
683
+ getVirtualSpacerStyle() {
684
+ return {
685
+ height: `${this.getFilteredOptions().length * this.getRowHeight()}px`,
686
+ position: 'relative',
687
+ };
688
+ }
689
+ getVirtualVisibleOptions() {
690
+ const filteredOptions = this.getFilteredOptions();
691
+ const { startIndex, endIndex } = this.getVisibleRange();
692
+ return {
693
+ startIndex,
694
+ visibleOptions: filteredOptions.slice(startIndex, endIndex),
695
+ };
696
+ }
697
+ renderVirtualOptions() {
698
+ const { startIndex, visibleOptions } = this.getVirtualVisibleOptions();
699
+ if (visibleOptions.length === 0) {
700
+ return (h("div", { part: "empty-option", role: "option", "aria-selected": "false", tabIndex: 0 }, "Nenhum resultado encontrado"));
701
+ }
702
+ return (h("div", { style: this.getVirtualSpacerStyle() }, visibleOptions.map((option, relativeIndex) => this.renderOption(option, startIndex + relativeIndex))));
703
+ }
704
+ renderLoading() {
705
+ return (h("div", { part: "loading", role: "status", "aria-live": "polite" }, h("slot", { name: "loading" }, h("br-loading", { size: "small", label: "Buscando op\u00E7\u00F5es" }))));
706
+ }
707
+ render() {
708
+ return (h(Host, { key: '537c7f312573570953b24e27fed7188a052c4bd5' }, h("div", { key: 'aac978e5664c9dee21ba7a6763125fe7daf915d3', class: this.getCssClassMap(), part: "list", ref: (el) => (this.listElement = el), onScroll: this.handleScroll, style: this.getVirtualScrollStyle() }, this.loading ? this.renderLoading() : this.renderVirtualOptions())));
709
+ }
710
+ get el() { return getElement(this); }
711
+ static get watchers() { return {
712
+ "searchTerm": [{
713
+ "handleSearchTermChange": 0
714
+ }],
715
+ "selectAllLabel": [{
716
+ "handleSelectAllLabelChange": 0
717
+ }],
718
+ "unselectAllLabel": [{
719
+ "handleSelectAllLabelChange": 0
720
+ }]
721
+ }; }
722
+ };
723
+ SelectList.SELECT_ALL_LABEL = 'Selecionar todos';
724
+ SelectList.DESELECT_ALL_LABEL = 'Desselecionar todos';
725
+ SelectList.SELECT_ALL_VALUE = 'Alternar todos';
726
+ SelectList.style = selectListCss();
727
+
728
+ const MISSING_VALUE_WARNING = '[br-select-option] `value` nao foi informado. Um fallback sera derivado de `label` ou do conteudo do slot.';
729
+ const EMPTY_VALUE_WARNING = '[br-select-option] Nao foi possivel resolver um valor para a opcao. Informe `value`, `label` ou conteudo no slot.';
730
+
731
+ const selectOptionCss = () => `*,*::before,*::after{box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}code{font-family:monospace;font-size:1em}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.align-items-center{align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{flex:1 0 0%;min-width:8.3333333333%}.col-auto{flex:0 0 auto;width:auto}.col-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-fluid,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:flex;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}}@media (min-width: 992px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width: 1600px){.container,.container-lg,.container-fluid{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.ease{animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mb-4{margin-bottom:var(--spacing-scale-3x) !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}.highlight{background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-bold{font-weight:700 !important}.text-base{font-size:var(--font-size-scale-base) !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a.focus-visible,a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}.main-content a{text-decoration:underline}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}tr.selected,tr.is-selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}fieldset,.fieldset{border:var(--surface-width-none);margin-bottom:var(--spacing-scale-5x);margin-top:0;padding:0}legend,.legend{color:var(--color);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2x);margin-top:var(--spacing-scale-2x)}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.help{font-size:var(--font-size-scale-base)}code,.code{background:var(--gray-5);border-radius:4px;color:var(--gray-80);display:inline-block;font-family:monospace;font-size:var(--font-size-scale-base);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);padding:var(--spacing-scale-half)}*[data-toggle=collapse]:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse].focus-visible,*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{--br-select-option-bg-color:var(--bg-color, var(--background, var(--background-color, #fff)));contain:paint;display:block;background-color:var(--br-select-option-bg-color);line-height:0;overflow:hidden;position:relative}:host(:focus-within){contain:none;overflow:visible}:host([active]){contain:none;overflow:visible;z-index:1}:host([active])::after{border:var(--focus-width) var(--focus-style) var(--focus);box-sizing:border-box;content:"";inset:0;pointer-events:none;position:absolute}.br-select-option{opacity:1 !important}br-item{--br-item-bg-color:var(--br-select-option-bg-color);background-color:var(--br-select-option-bg-color);display:block;line-height:normal;overflow:visible;width:100%}:host(:not([disabled])) br-item::part(item){cursor:pointer}:host([disabled]){background:var(--br-select-option-bg-color) !important;cursor:not-allowed}br-item[disabled]{--br-item-bg-color:var(--br-select-option-bg-color);background:var(--br-select-option-bg-color) !important;cursor:not-allowed}:host([disabled]) ::slotted(*){opacity:var(--disabled) !important}.br-select-option-label{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host([disabled]) .br-select-option-label{opacity:var(--disabled) !important}.br-select-option-label ::slotted(*){display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}`;
732
+
733
+ const SelectOption = class {
734
+ constructor(hostRef) {
735
+ registerInstance(this, hostRef);
736
+ this.brSelectOptionStateChange = createEvent(this, "brSelectOptionStateChange", 7);
737
+ this.brSelectOptionPropsChange = createEvent(this, "brSelectOptionPropsChange", 7);
738
+ /**
739
+ * Desativa a interação da opção.
740
+ *
741
+ * @default false
742
+ */
743
+ this.disabled = false;
744
+ /**
745
+ * Marca a opção como ativa para navegação por teclado.
746
+ *
747
+ * @default false
748
+ */
749
+ this.active = false;
750
+ /**
751
+ * Indica o estado intermediário da opção.
752
+ *
753
+ * @default false
754
+ * @remarks
755
+ * Usado principalmente pela opção sintética de selecionar todos.
756
+ */
757
+ this.indeterminate = false;
758
+ /**
759
+ * Indica se a opção está selecionada.
760
+ *
761
+ * @type {boolean | undefined}
762
+ */
763
+ this.selected = false;
764
+ /**
765
+ * Valor semântico associado à opção.
766
+ *
767
+ * @type {string}
768
+ */
769
+ this.value = undefined;
770
+ /**
771
+ * Exibe o checkbox de seleção ao lado do conteúdo.
772
+ *
773
+ * @default false
774
+ */
775
+ this.showCheckbox = false;
776
+ this.hasWarnedMissingValue = false;
777
+ this.hasWarnedEmptyValue = false;
778
+ this.lastStateChangeKey = '';
779
+ // Flag para ignorar eventos emitidos durante a montagem inicial
780
+ this.hasMounted = false;
781
+ this.handleSelect = (event) => {
782
+ if (this.disabled)
783
+ return;
784
+ // Ignora eventos que ocorram antes do componente estar montado (evita tratar emissões iniciais)
785
+ if (event && !this.hasMounted)
786
+ return;
787
+ let current = this.selected;
788
+ if (event && event.detail !== undefined) {
789
+ const detail = event.detail;
790
+ if (typeof detail === 'object') {
791
+ current = detail.selected ?? detail.checked ?? current;
792
+ }
793
+ else if (typeof detail === 'boolean') {
794
+ current = detail;
795
+ }
796
+ }
797
+ if (this.isRedundantCheckboxReflection(event, current)) {
798
+ return;
799
+ }
800
+ if (this.isControlledBySelect)
801
+ this.emitStateChange(current);
802
+ else
803
+ this.applySelection(current);
804
+ };
805
+ }
806
+ componentDidLoad() {
807
+ this.hasMounted = true;
808
+ }
809
+ handleDisabledChange() {
810
+ this.brSelectOptionPropsChange.emit();
811
+ this.emitStateChange();
812
+ }
813
+ handlePropsChange() {
814
+ this.brSelectOptionPropsChange.emit();
815
+ }
816
+ /**
817
+ * Retorna a altura efetiva da opção para cálculo de virtual scroll.
818
+ *
819
+ * @returns A altura do item renderizado em pixels.
820
+ */
821
+ async getItemHeight() {
822
+ const item = this.el.shadowRoot?.querySelector('br-item');
823
+ return item?.offsetHeight || this.el.offsetHeight || 0;
824
+ }
825
+ /**
826
+ * Encaminha o foco para o elemento interativo interno da opção.
827
+ *
828
+ * @returns Uma promise concluída após a tentativa de foco.
829
+ */
830
+ async setFocus() {
831
+ await this.itemElement?.setFocus?.();
832
+ }
833
+ /**
834
+ * Atualiza programaticamente o estado selecionado da opção.
835
+ *
836
+ * @param selected Estado desejado. Quando omitido, o valor atual é invertido.
837
+ */
838
+ async setSelectedState(selected) {
839
+ if (this.disabled)
840
+ return;
841
+ const nextSelected = typeof selected === 'boolean' ? selected : !this.selected;
842
+ if (this.isControlledBySelect)
843
+ this.emitStateChange(nextSelected);
844
+ else
845
+ this.applySelection(nextSelected);
846
+ }
847
+ isRedundantCheckboxReflection(event, nextSelected) {
848
+ if (!event)
849
+ return false;
850
+ const checkboxTarget = event.composedPath().find((node) => {
851
+ return node.tagName?.toLowerCase() === 'br-checkbox';
852
+ });
853
+ if (!checkboxTarget)
854
+ return false;
855
+ return Boolean(nextSelected) === Boolean(this.selected);
856
+ }
857
+ emitStateChange(selected = this.selected) {
858
+ const detail = {
859
+ disabled: this.disabled,
860
+ indeterminate: this.indeterminate,
861
+ selected,
862
+ value: this.getResolvedValue(),
863
+ label: this.getResolvedLabel(),
864
+ };
865
+ const nextKey = JSON.stringify(detail);
866
+ if (nextKey === this.lastStateChangeKey)
867
+ return;
868
+ this.lastStateChangeKey = nextKey;
869
+ this.brSelectOptionStateChange.emit(detail);
870
+ }
871
+ get isControlledBySelect() {
872
+ if (this.el.closest('br-select'))
873
+ return true;
874
+ let node = this.el;
875
+ for (;;) {
876
+ const root = node.getRootNode();
877
+ const host = root.host;
878
+ if (!host)
879
+ return false;
880
+ if (host.tagName.toLowerCase() === 'br-select')
881
+ return true;
882
+ node = host;
883
+ }
884
+ }
885
+ /**
886
+ * Centraliza a transição de seleção para manter emissão e limpeza de estado consistentes.
887
+ *
888
+ * @param selected Próximo estado selecionado da opção.
889
+ */
890
+ applySelection(selected) {
891
+ this.indeterminate = false;
892
+ this.selected = selected;
893
+ this.emitStateChange();
894
+ }
895
+ getCssClassMap() {
896
+ return {
897
+ 'br-select-option': true,
898
+ };
899
+ }
900
+ getResolvedLabel() {
901
+ const normalizedLabel = this.normalizeText(this.label);
902
+ return normalizedLabel || this.getResolvedValue();
903
+ }
904
+ getResolvedValue() {
905
+ const explicitValue = this.normalizeText(this.value);
906
+ if (explicitValue)
907
+ return explicitValue;
908
+ this.warnMissingValue();
909
+ const fallbackValue = this.getFallbackValue();
910
+ if (fallbackValue)
911
+ return fallbackValue;
912
+ this.warnEmptyValue();
913
+ return '';
914
+ }
915
+ warnMissingValue() {
916
+ if (this.hasWarnedMissingValue)
917
+ return;
918
+ this.hasWarnedMissingValue = true;
919
+ console.warn(MISSING_VALUE_WARNING);
920
+ }
921
+ warnEmptyValue() {
922
+ if (this.hasWarnedEmptyValue)
923
+ return;
924
+ this.hasWarnedEmptyValue = true;
925
+ console.warn(EMPTY_VALUE_WARNING);
926
+ }
927
+ getFallbackValue() {
928
+ const labelValue = this.normalizeText(this.label);
929
+ if (labelValue)
930
+ return labelValue;
931
+ return this.extractSlotText();
932
+ }
933
+ normalizeText(value) {
934
+ return (value || '').trim();
935
+ }
936
+ extractSlotText() {
937
+ const slot = this.el.shadowRoot?.querySelector('slot:not([name])');
938
+ if (slot?.assignedNodes) {
939
+ const text = slot
940
+ .assignedNodes({ flatten: true })
941
+ .map((node) => (node.textContent || '').trim())
942
+ .filter(Boolean)
943
+ .join(' ')
944
+ .trim();
945
+ if (text)
946
+ return text;
947
+ }
948
+ return this.normalizeText(this.el.textContent || '');
949
+ }
950
+ render() {
951
+ return (h(Host, { key: '3b20b8766d73d6a862765fb890028e6ff7374d96', part: "option", exportparts: "checkbox:checkbox, checkbox:option-checkbox", "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.selected ? 'true' : 'false', role: "option", onMouseEnter: () => {
952
+ this.el.dispatchEvent(new CustomEvent('brInternalSelectOptionHover', {
953
+ bubbles: true,
954
+ composed: true,
955
+ detail: { label: this.getResolvedLabel(), value: this.getResolvedValue() },
956
+ }));
957
+ }, onFocus: () => {
958
+ this.el.dispatchEvent(new CustomEvent('brInternalSelectOptionHover', {
959
+ bubbles: true,
960
+ composed: true,
961
+ detail: { label: this.getResolvedLabel(), value: this.getResolvedValue() },
962
+ }));
963
+ } }, h("br-item", { key: '7b32b68bbc5541090e24d81e55602045bdbbba47', class: this.getCssClassMap(), disabled: this.disabled, active: this.active, selected: this.selected, "is-interactive": true, ref: (el) => (this.itemElement = el), onBrItemSelect: this.handleSelect }, this.showCheckbox && (h("br-checkbox", { key: 'fd5426e02e229eaaa8b22d457329cce6acf59e51', exportparts: "input:checkbox, input:option-checkbox", slot: "start", checked: this.selected, disabled: this.disabled, indeterminate: this.indeterminate, name: this.getResolvedValue(), onCheckedChange: this.handleSelect })), h("span", { key: '6185b2e6b60bf65059c321d4118d675859f9940e', class: "br-select-option-label" }, h("slot", { key: 'c78020a423fe1ed34ef39f46301f71baf5b0cbd8' }, this.getResolvedLabel())))));
964
+ }
965
+ static get formAssociated() { return true; }
966
+ get el() { return getElement(this); }
967
+ static get watchers() { return {
968
+ "disabled": [{
969
+ "handleDisabledChange": 0
970
+ }],
971
+ "label": [{
972
+ "handlePropsChange": 0
973
+ }],
974
+ "value": [{
975
+ "handlePropsChange": 0
976
+ }],
977
+ "selected": [{
978
+ "handlePropsChange": 0
979
+ }]
980
+ }; }
981
+ };
982
+ SelectOption.style = selectOptionCss();
983
+
984
+ export { SelectInput as br_select_input, SelectList as br_select_list, SelectOption as br_select_option };