@govbr-ds/webcomponents 2.0.0-next.20 → 2.0.0-next.22

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 (375) hide show
  1. package/dist/cjs/br-avatar.cjs.entry.js +2 -2
  2. package/dist/cjs/br-avatar.cjs.entry.js.map +1 -1
  3. package/dist/cjs/br-button_2.cjs.entry.js +175 -56
  4. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/br-checkbox.cjs.entry.js +2 -2
  6. package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -1
  7. package/dist/cjs/br-checkgroup.cjs.entry.js +101 -0
  8. package/dist/cjs/br-checkgroup.cjs.entry.js.map +1 -0
  9. package/dist/cjs/br-dropdown.cjs.entry.js +3 -3
  10. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
  11. package/dist/cjs/br-input_3.cjs.entry.js +284 -0
  12. package/dist/cjs/br-input_3.cjs.entry.js.map +1 -0
  13. package/dist/cjs/br-item.cjs.entry.js +40 -20
  14. package/dist/cjs/br-item.cjs.entry.js.map +1 -1
  15. package/dist/cjs/br-loading.cjs.entry.js +3 -3
  16. package/dist/cjs/br-loading.cjs.entry.js.map +1 -1
  17. package/dist/cjs/br-message.cjs.entry.js +3 -3
  18. package/dist/cjs/br-message.cjs.entry.js.map +1 -1
  19. package/dist/cjs/br-select.cjs.entry.js +281 -0
  20. package/dist/cjs/br-select.cjs.entry.js.map +1 -0
  21. package/dist/cjs/br-switch.cjs.entry.js +9 -6
  22. package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
  23. package/dist/cjs/br-tag.cjs.entry.js +3 -3
  24. package/dist/cjs/br-tag.cjs.entry.js.map +1 -1
  25. package/dist/cjs/br-textarea.cjs.entry.js +3 -3
  26. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
  27. package/dist/cjs/br-upload.cjs.entry.js +3 -3
  28. package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
  29. package/dist/cjs/{index-81c11ce2.js → index-4fc1aab1.js} +851 -624
  30. package/dist/cjs/index-4fc1aab1.js.map +1 -0
  31. package/dist/cjs/loader.cjs.js +2 -2
  32. package/dist/cjs/webcomponents.cjs.js +3 -3
  33. package/dist/cjs/webcomponents.cjs.js.map +1 -1
  34. package/dist/collection/collection-manifest.json +3 -1
  35. package/dist/collection/components/avatar/avatar.css +11 -1
  36. package/dist/collection/components/avatar/avatar.js +16 -0
  37. package/dist/collection/components/avatar/avatar.js.map +1 -1
  38. package/dist/collection/components/button/button.css +11 -1
  39. package/dist/collection/components/button/button.js +18 -0
  40. package/dist/collection/components/button/button.js.map +1 -1
  41. package/dist/collection/components/checkbox/checkbox.css +11 -1
  42. package/dist/collection/components/checkbox/checkbox.js +18 -0
  43. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  44. package/dist/collection/components/checkgroup/checkgroup.css +605 -0
  45. package/dist/collection/components/checkgroup/checkgroup.js +197 -0
  46. package/dist/collection/components/checkgroup/checkgroup.js.map +1 -0
  47. package/dist/collection/components/dropdown/dropdown.css +11 -1
  48. package/dist/collection/components/dropdown/dropdown.js +3 -1
  49. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  50. package/dist/collection/components/icon/icon.css +11 -1
  51. package/dist/collection/components/icon/icon.js +15 -1
  52. package/dist/collection/components/icon/icon.js.map +1 -1
  53. package/dist/collection/components/input/input.css +11 -1
  54. package/dist/collection/components/input/input.js +47 -1
  55. package/dist/collection/components/input/input.js.map +1 -1
  56. package/dist/collection/components/item/item.css +11 -1
  57. package/dist/collection/components/item/item.js +65 -19
  58. package/dist/collection/components/item/item.js.map +1 -1
  59. package/dist/collection/components/list/list.css +11 -1
  60. package/dist/collection/components/list/list.js +7 -1
  61. package/dist/collection/components/list/list.js.map +1 -1
  62. package/dist/collection/components/loading/loading.css +11 -1
  63. package/dist/collection/components/loading/loading.js +9 -1
  64. package/dist/collection/components/loading/loading.js.map +1 -1
  65. package/dist/collection/components/message/message.css +11 -1
  66. package/dist/collection/components/message/message.js +15 -1
  67. package/dist/collection/components/message/message.js.map +1 -1
  68. package/dist/collection/components/radio/radio.css +11 -1
  69. package/dist/collection/components/radio/radio.js +17 -1
  70. package/dist/collection/components/radio/radio.js.map +1 -1
  71. package/dist/collection/components/select/select.css +865 -0
  72. package/dist/collection/components/select/select.js +509 -0
  73. package/dist/collection/components/select/select.js.map +1 -0
  74. package/dist/collection/components/switch/switch.css +11 -1
  75. package/dist/collection/components/switch/switch.js +30 -5
  76. package/dist/collection/components/switch/switch.js.map +1 -1
  77. package/dist/collection/components/tag/tag.css +11 -1
  78. package/dist/collection/components/tag/tag.js +17 -1
  79. package/dist/collection/components/tag/tag.js.map +1 -1
  80. package/dist/collection/components/textarea/textarea.css +11 -1
  81. package/dist/collection/components/textarea/textarea.js +19 -1
  82. package/dist/collection/components/textarea/textarea.js.map +1 -1
  83. package/dist/collection/components/upload/upload.css +11 -1
  84. package/dist/collection/components/upload/upload.js +13 -3
  85. package/dist/collection/components/upload/upload.js.map +1 -1
  86. package/dist/collection/index.js.map +1 -1
  87. package/dist/collection/pages/components/checkgroup/index.js +20 -0
  88. package/dist/collection/pages/components/item/index.js +1 -1
  89. package/dist/collection/pages/components/select/index.js +18 -0
  90. package/dist/collection/pages/components/switch/index.js +1 -1
  91. package/dist/collection/pages/scripts/menu.js +22 -2
  92. package/dist/collection/utils/inherited-attributes.js.map +1 -1
  93. package/dist/collection/utils/interfaces.js.map +1 -1
  94. package/dist/collection/utils/unique-id-generator.js.map +1 -1
  95. package/dist/components/br-avatar.js +1 -1
  96. package/dist/components/br-avatar.js.map +1 -1
  97. package/dist/components/br-button.js +1 -1
  98. package/dist/components/br-checkbox.js +1 -1
  99. package/dist/components/br-checkbox.js.map +1 -1
  100. package/dist/components/br-checkgroup.d.ts +11 -0
  101. package/dist/components/br-checkgroup.js +6 -0
  102. package/dist/components/br-checkgroup.js.map +1 -0
  103. package/dist/components/br-dropdown.js +1 -1
  104. package/dist/components/br-dropdown.js.map +1 -1
  105. package/dist/components/br-icon.js +1 -1
  106. package/dist/components/br-input.js +1 -1
  107. package/dist/components/br-input.js.map +1 -1
  108. package/dist/components/br-item.js +1 -1
  109. package/dist/components/br-item.js.map +1 -1
  110. package/dist/components/br-list.js +1 -1
  111. package/dist/components/br-list.js.map +1 -1
  112. package/dist/components/br-loading.js +1 -1
  113. package/dist/components/br-loading.js.map +1 -1
  114. package/dist/components/br-message.js +1 -1
  115. package/dist/components/br-message.js.map +1 -1
  116. package/dist/components/br-radio.js +1 -1
  117. package/dist/components/br-radio.js.map +1 -1
  118. package/dist/components/br-select.d.ts +11 -0
  119. package/dist/components/br-select.js +6 -0
  120. package/dist/components/br-select.js.map +1 -0
  121. package/dist/components/br-switch.js +1 -1
  122. package/dist/components/br-switch.js.map +1 -1
  123. package/dist/components/br-tag.js +1 -1
  124. package/dist/components/br-tag.js.map +1 -1
  125. package/dist/components/br-textarea.js +1 -1
  126. package/dist/components/br-textarea.js.map +1 -1
  127. package/dist/components/br-upload.js +1 -1
  128. package/dist/components/br-upload.js.map +1 -1
  129. package/dist/components/index.js +1 -1
  130. package/dist/components/p-126ad66d.js +17 -0
  131. package/dist/components/p-126ad66d.js.map +1 -0
  132. package/dist/components/p-184a3074.js +6 -0
  133. package/dist/components/p-184a3074.js.map +1 -0
  134. package/dist/components/p-5cb170a7.js +6 -0
  135. package/dist/components/p-5cb170a7.js.map +1 -0
  136. package/dist/components/p-65616dbd.js +7 -0
  137. package/dist/components/p-65616dbd.js.map +1 -0
  138. package/dist/components/p-65c54cc8.js +6 -0
  139. package/dist/components/p-65c54cc8.js.map +1 -0
  140. package/dist/components/p-a6dcabb0.js +6 -0
  141. package/dist/components/p-a6dcabb0.js.map +1 -0
  142. package/dist/components/p-ace62688.js +6 -0
  143. package/dist/components/p-ace62688.js.map +1 -0
  144. package/dist/esm/br-avatar.entry.js +2 -2
  145. package/dist/esm/br-avatar.entry.js.map +1 -1
  146. package/dist/esm/br-button_2.entry.js +175 -56
  147. package/dist/esm/br-button_2.entry.js.map +1 -1
  148. package/dist/esm/br-checkbox.entry.js +2 -2
  149. package/dist/esm/br-checkbox.entry.js.map +1 -1
  150. package/dist/esm/br-checkgroup.entry.js +97 -0
  151. package/dist/esm/br-checkgroup.entry.js.map +1 -0
  152. package/dist/esm/br-dropdown.entry.js +3 -3
  153. package/dist/esm/br-dropdown.entry.js.map +1 -1
  154. package/dist/esm/br-input_3.entry.js +278 -0
  155. package/dist/esm/br-input_3.entry.js.map +1 -0
  156. package/dist/esm/br-item.entry.js +40 -20
  157. package/dist/esm/br-item.entry.js.map +1 -1
  158. package/dist/esm/br-loading.entry.js +3 -3
  159. package/dist/esm/br-loading.entry.js.map +1 -1
  160. package/dist/esm/br-message.entry.js +3 -3
  161. package/dist/esm/br-message.entry.js.map +1 -1
  162. package/dist/esm/br-select.entry.js +277 -0
  163. package/dist/esm/br-select.entry.js.map +1 -0
  164. package/dist/esm/br-switch.entry.js +9 -6
  165. package/dist/esm/br-switch.entry.js.map +1 -1
  166. package/dist/esm/br-tag.entry.js +3 -3
  167. package/dist/esm/br-tag.entry.js.map +1 -1
  168. package/dist/esm/br-textarea.entry.js +3 -3
  169. package/dist/esm/br-textarea.entry.js.map +1 -1
  170. package/dist/esm/br-upload.entry.js +3 -3
  171. package/dist/esm/br-upload.entry.js.map +1 -1
  172. package/dist/esm/{index-aab4a630.js → index-45af9b53.js} +851 -624
  173. package/dist/esm/index-45af9b53.js.map +1 -0
  174. package/dist/esm/loader.js +3 -3
  175. package/dist/esm/webcomponents.js +4 -4
  176. package/dist/esm/webcomponents.js.map +1 -1
  177. package/dist/esm-es5/br-avatar.entry.js +1 -1
  178. package/dist/esm-es5/br-avatar.entry.js.map +1 -1
  179. package/dist/esm-es5/br-button_2.entry.js +4 -4
  180. package/dist/esm-es5/br-button_2.entry.js.map +1 -1
  181. package/dist/esm-es5/br-checkbox.entry.js +1 -1
  182. package/dist/esm-es5/br-checkbox.entry.js.map +1 -1
  183. package/dist/esm-es5/br-checkgroup.entry.js +6 -0
  184. package/dist/esm-es5/br-checkgroup.entry.js.map +1 -0
  185. package/dist/esm-es5/br-dropdown.entry.js +1 -1
  186. package/dist/esm-es5/br-dropdown.entry.js.map +1 -1
  187. package/dist/esm-es5/br-input_3.entry.js +6 -0
  188. package/dist/esm-es5/br-input_3.entry.js.map +1 -0
  189. package/dist/esm-es5/br-item.entry.js +1 -1
  190. package/dist/esm-es5/br-item.entry.js.map +1 -1
  191. package/dist/esm-es5/br-loading.entry.js +1 -1
  192. package/dist/esm-es5/br-loading.entry.js.map +1 -1
  193. package/dist/esm-es5/br-message.entry.js +1 -1
  194. package/dist/esm-es5/br-message.entry.js.map +1 -1
  195. package/dist/esm-es5/br-select.entry.js +6 -0
  196. package/dist/esm-es5/br-select.entry.js.map +1 -0
  197. package/dist/esm-es5/br-switch.entry.js +2 -2
  198. package/dist/esm-es5/br-switch.entry.js.map +1 -1
  199. package/dist/esm-es5/br-tag.entry.js +1 -1
  200. package/dist/esm-es5/br-tag.entry.js.map +1 -1
  201. package/dist/esm-es5/br-textarea.entry.js +1 -1
  202. package/dist/esm-es5/br-textarea.entry.js.map +1 -1
  203. package/dist/esm-es5/br-upload.entry.js +1 -1
  204. package/dist/esm-es5/br-upload.entry.js.map +1 -1
  205. package/dist/esm-es5/index-45af9b53.js +6 -0
  206. package/dist/esm-es5/index-45af9b53.js.map +1 -0
  207. package/dist/esm-es5/loader.js +2 -2
  208. package/dist/esm-es5/loader.js.map +1 -1
  209. package/dist/esm-es5/webcomponents.js +2 -2
  210. package/dist/esm-es5/webcomponents.js.map +1 -1
  211. package/dist/types/components/checkgroup/checkgroup.d.ts +52 -0
  212. package/dist/types/components/item/item.d.ts +5 -3
  213. package/dist/types/components/select/select.d.ts +98 -0
  214. package/dist/types/components/switch/switch.d.ts +2 -1
  215. package/dist/types/components/upload/upload.d.ts +2 -2
  216. package/dist/types/components.d.ts +171 -6
  217. package/dist/webcomponents/p-04a3d24e.system.entry.js +6 -0
  218. package/dist/webcomponents/{p-71be2e3f.system.entry.js.map → p-04a3d24e.system.entry.js.map} +1 -1
  219. package/dist/webcomponents/p-057dcb7c.system.entry.js +6 -0
  220. package/dist/webcomponents/p-057dcb7c.system.entry.js.map +1 -0
  221. package/dist/webcomponents/p-19b77f11.entry.js +6 -0
  222. package/dist/webcomponents/{p-5539ffa8.entry.js.map → p-19b77f11.entry.js.map} +1 -1
  223. package/dist/webcomponents/p-1acbc680.entry.js +6 -0
  224. package/dist/webcomponents/p-1acbc680.entry.js.map +1 -0
  225. package/dist/webcomponents/p-25d82c85.system.entry.js +6 -0
  226. package/dist/webcomponents/p-25d82c85.system.entry.js.map +1 -0
  227. package/dist/webcomponents/p-27b820ac.system.entry.js +6 -0
  228. package/dist/webcomponents/p-27b820ac.system.entry.js.map +1 -0
  229. package/dist/webcomponents/p-2b0430f4.entry.js +6 -0
  230. package/dist/webcomponents/p-2b0430f4.entry.js.map +1 -0
  231. package/dist/webcomponents/p-2ff5f694.system.entry.js +6 -0
  232. package/dist/webcomponents/p-2ff5f694.system.entry.js.map +1 -0
  233. package/dist/webcomponents/p-357e1105.system.entry.js +6 -0
  234. package/dist/webcomponents/p-357e1105.system.entry.js.map +1 -0
  235. package/dist/webcomponents/p-35f07e4b.entry.js +6 -0
  236. package/dist/webcomponents/p-35f07e4b.entry.js.map +1 -0
  237. package/dist/webcomponents/p-3e449bd5.system.entry.js +6 -0
  238. package/dist/webcomponents/p-3e449bd5.system.entry.js.map +1 -0
  239. package/dist/webcomponents/p-46a75920.system.js +6 -0
  240. package/dist/webcomponents/p-46a75920.system.js.map +1 -0
  241. package/dist/webcomponents/p-491cdd00.entry.js +6 -0
  242. package/dist/webcomponents/p-491cdd00.entry.js.map +1 -0
  243. package/dist/webcomponents/p-52e5bcdd.entry.js +6 -0
  244. package/dist/webcomponents/p-52e5bcdd.entry.js.map +1 -0
  245. package/dist/webcomponents/p-60879543.system.entry.js +6 -0
  246. package/dist/webcomponents/p-60879543.system.entry.js.map +1 -0
  247. package/dist/webcomponents/p-6bfb8eb6.entry.js +6 -0
  248. package/dist/webcomponents/p-6bfb8eb6.entry.js.map +1 -0
  249. package/dist/webcomponents/p-6d0d2846.system.js +7 -0
  250. package/dist/webcomponents/p-6d0d2846.system.js.map +1 -0
  251. package/dist/webcomponents/p-7c3554a7.system.entry.js +17 -0
  252. package/dist/webcomponents/p-7c3554a7.system.entry.js.map +1 -0
  253. package/dist/webcomponents/p-8fd11f97.system.entry.js +6 -0
  254. package/dist/webcomponents/p-8fd11f97.system.entry.js.map +1 -0
  255. package/dist/webcomponents/p-907fab5d.entry.js +6 -0
  256. package/dist/webcomponents/p-907fab5d.entry.js.map +1 -0
  257. package/dist/webcomponents/p-929db2b8.entry.js +17 -0
  258. package/dist/webcomponents/p-929db2b8.entry.js.map +1 -0
  259. package/dist/webcomponents/p-98e6f0c1.system.entry.js +6 -0
  260. package/dist/webcomponents/p-98e6f0c1.system.entry.js.map +1 -0
  261. package/dist/webcomponents/p-9b0f20d7.entry.js +6 -0
  262. package/dist/webcomponents/p-9b0f20d7.entry.js.map +1 -0
  263. package/dist/webcomponents/p-ad5a7b8b.system.entry.js +6 -0
  264. package/dist/webcomponents/{p-f5e674ba.system.entry.js.map → p-ad5a7b8b.system.entry.js.map} +1 -1
  265. package/dist/webcomponents/p-c3811f09.js +7 -0
  266. package/dist/webcomponents/p-c3811f09.js.map +1 -0
  267. package/dist/webcomponents/p-c6a9c8ac.entry.js +6 -0
  268. package/dist/webcomponents/p-c6a9c8ac.entry.js.map +1 -0
  269. package/dist/webcomponents/p-d46495d5.system.entry.js +6 -0
  270. package/dist/webcomponents/p-d46495d5.system.entry.js.map +1 -0
  271. package/dist/webcomponents/p-dc3d284a.entry.js +6 -0
  272. package/dist/webcomponents/p-dc3d284a.entry.js.map +1 -0
  273. package/dist/webcomponents/p-e98418a4.entry.js +6 -0
  274. package/dist/webcomponents/{p-e8b5b14f.entry.js.map → p-e98418a4.entry.js.map} +1 -1
  275. package/dist/webcomponents/p-ef89bcc9.system.entry.js +6 -0
  276. package/dist/webcomponents/p-ef89bcc9.system.entry.js.map +1 -0
  277. package/dist/webcomponents/p-fc11eac9.entry.js +6 -0
  278. package/dist/webcomponents/p-fc11eac9.entry.js.map +1 -0
  279. package/dist/webcomponents/webcomponents.esm.js +1 -1
  280. package/dist/webcomponents/webcomponents.esm.js.map +1 -1
  281. package/dist/webcomponents/webcomponents.js +1 -1
  282. package/hydrate/index.js +1434 -645
  283. package/hydrate/index.mjs +1434 -645
  284. package/package.json +2 -2
  285. package/vscode-data.json +72 -2
  286. package/dist/cjs/br-input.cjs.entry.js +0 -150
  287. package/dist/cjs/br-input.cjs.entry.js.map +0 -1
  288. package/dist/cjs/br-list.cjs.entry.js +0 -82
  289. package/dist/cjs/br-list.cjs.entry.js.map +0 -1
  290. package/dist/cjs/br-radio.cjs.entry.js +0 -79
  291. package/dist/cjs/br-radio.cjs.entry.js.map +0 -1
  292. package/dist/cjs/index-81c11ce2.js.map +0 -1
  293. package/dist/collection/scripts/menu.js +0 -146
  294. package/dist/components/p-2d8e59f6.js +0 -7
  295. package/dist/components/p-2d8e59f6.js.map +0 -1
  296. package/dist/components/p-64831033.js +0 -17
  297. package/dist/components/p-64831033.js.map +0 -1
  298. package/dist/components/p-e4af8eac.js +0 -6
  299. package/dist/components/p-e4af8eac.js.map +0 -1
  300. package/dist/esm/br-input.entry.js +0 -146
  301. package/dist/esm/br-input.entry.js.map +0 -1
  302. package/dist/esm/br-list.entry.js +0 -78
  303. package/dist/esm/br-list.entry.js.map +0 -1
  304. package/dist/esm/br-radio.entry.js +0 -75
  305. package/dist/esm/br-radio.entry.js.map +0 -1
  306. package/dist/esm/index-aab4a630.js.map +0 -1
  307. package/dist/esm-es5/br-input.entry.js +0 -6
  308. package/dist/esm-es5/br-input.entry.js.map +0 -1
  309. package/dist/esm-es5/br-list.entry.js +0 -6
  310. package/dist/esm-es5/br-list.entry.js.map +0 -1
  311. package/dist/esm-es5/br-radio.entry.js +0 -6
  312. package/dist/esm-es5/br-radio.entry.js.map +0 -1
  313. package/dist/esm-es5/index-aab4a630.js +0 -6
  314. package/dist/esm-es5/index-aab4a630.js.map +0 -1
  315. package/dist/playwright.config.js +0 -39
  316. package/dist/playwright.config.js.map +0 -1
  317. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/packages/webcomponents/.stencil/playwright.config.d.ts +0 -5
  318. package/dist/webcomponents/p-05343155.system.entry.js +0 -6
  319. package/dist/webcomponents/p-05343155.system.entry.js.map +0 -1
  320. package/dist/webcomponents/p-183614c8.system.entry.js +0 -6
  321. package/dist/webcomponents/p-183614c8.system.entry.js.map +0 -1
  322. package/dist/webcomponents/p-2083ff7b.entry.js +0 -6
  323. package/dist/webcomponents/p-2083ff7b.entry.js.map +0 -1
  324. package/dist/webcomponents/p-24da392a.entry.js +0 -6
  325. package/dist/webcomponents/p-24da392a.entry.js.map +0 -1
  326. package/dist/webcomponents/p-28476b17.system.entry.js +0 -6
  327. package/dist/webcomponents/p-28476b17.system.entry.js.map +0 -1
  328. package/dist/webcomponents/p-2c2c8629.js +0 -7
  329. package/dist/webcomponents/p-2c2c8629.js.map +0 -1
  330. package/dist/webcomponents/p-3f00a196.entry.js +0 -6
  331. package/dist/webcomponents/p-3f00a196.entry.js.map +0 -1
  332. package/dist/webcomponents/p-430afeb5.system.js +0 -7
  333. package/dist/webcomponents/p-430afeb5.system.js.map +0 -1
  334. package/dist/webcomponents/p-447c8036.entry.js +0 -6
  335. package/dist/webcomponents/p-447c8036.entry.js.map +0 -1
  336. package/dist/webcomponents/p-5539ffa8.entry.js +0 -6
  337. package/dist/webcomponents/p-55604b7f.system.entry.js +0 -6
  338. package/dist/webcomponents/p-55604b7f.system.entry.js.map +0 -1
  339. package/dist/webcomponents/p-61523bc9.entry.js +0 -6
  340. package/dist/webcomponents/p-61523bc9.entry.js.map +0 -1
  341. package/dist/webcomponents/p-626fe2cb.entry.js +0 -6
  342. package/dist/webcomponents/p-626fe2cb.entry.js.map +0 -1
  343. package/dist/webcomponents/p-6a8226b3.system.entry.js +0 -6
  344. package/dist/webcomponents/p-6a8226b3.system.entry.js.map +0 -1
  345. package/dist/webcomponents/p-71be2e3f.system.entry.js +0 -6
  346. package/dist/webcomponents/p-7a4e1265.system.entry.js +0 -6
  347. package/dist/webcomponents/p-7a4e1265.system.entry.js.map +0 -1
  348. package/dist/webcomponents/p-8039a644.system.entry.js +0 -6
  349. package/dist/webcomponents/p-8039a644.system.entry.js.map +0 -1
  350. package/dist/webcomponents/p-842b2513.entry.js +0 -6
  351. package/dist/webcomponents/p-842b2513.entry.js.map +0 -1
  352. package/dist/webcomponents/p-8f156fc4.system.entry.js +0 -6
  353. package/dist/webcomponents/p-8f156fc4.system.entry.js.map +0 -1
  354. package/dist/webcomponents/p-9f0d01d1.entry.js +0 -6
  355. package/dist/webcomponents/p-9f0d01d1.entry.js.map +0 -1
  356. package/dist/webcomponents/p-ae629243.system.entry.js +0 -6
  357. package/dist/webcomponents/p-ae629243.system.entry.js.map +0 -1
  358. package/dist/webcomponents/p-b88a5d9a.system.js +0 -6
  359. package/dist/webcomponents/p-b88a5d9a.system.js.map +0 -1
  360. package/dist/webcomponents/p-b9fd2bc0.system.entry.js +0 -6
  361. package/dist/webcomponents/p-b9fd2bc0.system.entry.js.map +0 -1
  362. package/dist/webcomponents/p-baad00f8.system.entry.js +0 -6
  363. package/dist/webcomponents/p-baad00f8.system.entry.js.map +0 -1
  364. package/dist/webcomponents/p-d174c8cd.entry.js +0 -6
  365. package/dist/webcomponents/p-d174c8cd.entry.js.map +0 -1
  366. package/dist/webcomponents/p-d83e2172.system.entry.js +0 -17
  367. package/dist/webcomponents/p-d83e2172.system.entry.js.map +0 -1
  368. package/dist/webcomponents/p-dcf41d91.entry.js +0 -6
  369. package/dist/webcomponents/p-dcf41d91.entry.js.map +0 -1
  370. package/dist/webcomponents/p-e027fca2.entry.js +0 -6
  371. package/dist/webcomponents/p-e027fca2.entry.js.map +0 -1
  372. package/dist/webcomponents/p-e6d921ef.entry.js +0 -17
  373. package/dist/webcomponents/p-e6d921ef.entry.js.map +0 -1
  374. package/dist/webcomponents/p-e8b5b14f.entry.js +0 -6
  375. package/dist/webcomponents/p-f5e674ba.system.entry.js +0 -6
@@ -0,0 +1,277 @@
1
+ /*!
2
+ * Construído com @govbr-ds/webcomponents
3
+ * Padrão Digital de Governo.
4
+ */
5
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-45af9b53.js';
6
+ import { i as inheritAriaAttributes } from './inherited-attributes-553a7c36.js';
7
+ import { v as v4 } from './v4-c99c1585.js';
8
+
9
+ const selectCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}html{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}a{background-color:transparent}strong{font-weight:bolder}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]{-webkit-appearance:button;-moz-appearance:button;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}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}[hidden]{display:none}.d-flex{display:-ms-flexbox !important;display:flex !important}.align-items-center{-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter) * 0.5);padding-right:calc(var(--grid-gutter) * 0.5);width:100%}.col{-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.container{--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:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter) * -0.5);margin-right:calc(var(--grid-gutter) * -0.5)}@media (min-width: 576px){.container{--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{--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{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width: 1600px){.container{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.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}.mr-2{margin-right:var(--spacing-scale-base) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base) * -1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mb-3{margin-bottom:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}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);color:var(--interactive);text-decoration:none}a:focus{outline:none}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:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}button{cursor:pointer}img{max-width:100%;vertical-align:middle}ul{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}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)}::-moz-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}::-webkit-input-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}:-ms-input-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}::-ms-input-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}::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)}.text-pure-0{color:var(--pure-0) !important}.text-primary-default{color:var(--color-primary-default) !important}.bg-support-01{--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);background:var(--color-support-01) !important}.text-nowrap{white-space:nowrap !important}.text-base{font-size:var(--font-size-scale-base) !important}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));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}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.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)}.br-select{--select-divider:1px solid var(--color-secondary-04);--select-shadow:var(--surface-shadow-md);max-width:400px;min-width:100px;position:relative}.br-select .br-input input{padding-right:29px;text-overflow:ellipsis}.br-select .br-input input::after{bottom:0;padding:0 5px;position:absolute;right:0}.br-select .br-list{background:var(--bg-color);-webkit-box-shadow:var(--select-shadow);box-shadow:var(--select-shadow);display:none;margin-top:-2px;max-height:404px;overflow:auto;position:absolute;resize:none;width:100%;z-index:1}.br-select .br-list::-webkit-scrollbar{height:var(--spacing-scale-base);width:var(--spacing-scale-base)}.br-select .br-list::-webkit-scrollbar-track{background:var(--gray-10)}.br-select .br-list::-webkit-scrollbar-thumb{background:var(--gray-30)}.br-select .br-list:hover::-webkit-scrollbar-thumb{background:var(--gray-40)}.br-select .br-list:focus,.br-select .br-list:active{color:var(--color-secondary-09);outline:none}.br-select .br-list:hover::-webkit-scrollbar-thumb{background:var(--color-secondary-07)}.br-select .br-list[expanded]{display:block}.br-select .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--interactive-light-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)}.br-select .br-item .content{padding:0}.br-select .br-item .br-checkbox,.br-select .br-item .br-radio{--item-padding-x:var(--spacing-scale-2x);--item-padding-y:var(--spacing-scale-2x)}.br-select .br-item .br-checkbox input:hover:not(:disabled)+label::before,.br-select .br-item .br-radio input:hover:not(:disabled)+label::before{background-image:none}.br-select .br-item .br-checkbox input+label,.br-select .br-item .br-radio input+label{padding-left:calc(var(--checkbox-padding) + var(--checkbox-size) + var(--item-padding-x))}.br-select .br-item .br-radio input+label{color:var(--text-color);display:block;height:auto;min-height:0;padding:var(--item-padding)}.br-select .br-item .br-radio input+label::before,.br-select .br-item .br-radio input+label::after{content:none}.br-select .br-item:not(:last-child){border-bottom:var(--select-divider)}.br-select .br-item:not([disabled]){--focus-offset:calc(var(--spacing-scale-half) * -1)}.br-select .br-item:not([disabled]):focus{outline:none}.br-select .br-item:not([disabled]):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-select .br-item:not([disabled]):not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-select .br-item.selected,.br-select .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)}.br-select .br-item.selected:focus,.br-select .br-item[selected]:focus{outline:none}.br-select .br-item.selected:focus-visible,.br-select .br-item[selected]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-select .br-item.selected:not(:disabled):hover,.br-select .br-item[selected]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-select .br-item.disabled{line-height:calc(var(--font-line-height-high) * 2);padding-left:calc(var(--item-padding) + var(--spacing-scale-base))}.br-select .br-item.highlighted,.br-select .br-item[highlighted]{background-color:var(--gray-2);padding-bottom:var(--spacing-scale-base);padding-top:var(--spacing-scale-base)}.br-select .br-item.highlighted .br-checkbox label,.br-select .br-item.highlighted .br-radio label,.br-select .br-item[highlighted] .br-checkbox label,.br-select .br-item[highlighted] .br-radio label{font-weight:var(--font-weight-semi-bold)}.br-select .br-item.highlighted .br-checkbox:hover,.br-select .br-item.highlighted .br-radio:hover,.br-select .br-item[highlighted] .br-checkbox:hover,.br-select .br-item[highlighted] .br-radio:hover{background:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}.br-select .br-item.highlighted .br-checkbox:hover label,.br-select .br-item.highlighted .br-radio:hover label,.br-select .br-item[highlighted] .br-checkbox:hover label,.br-select .br-item[highlighted] .br-radio:hover label{color:var(--text-color)}.br-select .br-item.highlighted.selected,.br-select .br-item.highlighted[selected],.br-select .br-item[highlighted].selected,.br-select .br-item[highlighted][selected]{background-color:var(--selected)}.br-select.dark-mode .br-input,.br-select.dark-mode .br-input label{--color:var(--color-dark);--focus-color:var(--focus-color-dark)}.br-item{background:var(--background);--item-padding-x:var(--spacing-scale-2x);--item-padding-y:var(--spacing-scale-base);--item-padding:var(--item-padding-y) var(--item-padding-x);--focus-offset:calc(var(--focus-width) * -1);border:0;color:var(--color);display:block;font-weight:var(--font-weight);padding:var(--item-padding);text-align:left;width:100%}.br-item .row{margin-left:calc(-1 * var(--spacing-scale-base));margin-right:calc(-1 * var(--spacing-scale-base))}.br-item .row .col,.br-item .row [class*=col-]{padding-left:var(--spacing-scale-base);padding-right:var(--spacing-scale-base)}.br-item::after{clear:both;content:\"\";display:block}.br-item[data-toggle]{cursor:pointer}.br-item[data-toggle=selection]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-item>.br-checkbox:not(.hidden-label),.br-item>.br-radio:not(.hidden-label){margin-bottom:calc(var(--item-padding-y) * -1);margin-left:calc(var(--item-padding-x) * -1);margin-right:calc(var(--item-padding-x) * -1);margin-top:calc(var(--item-padding-y) * -1)}.br-item>.br-checkbox:not(.hidden-label) input+label,.br-item>.br-radio:not(.hidden-label) input+label{padding-bottom:var(--item-padding-y);padding-top:var(--item-padding-y);top:1px;width:100%}.br-item>.br-checkbox:not(.hidden-label) input+label::before,.br-item>.br-radio:not(.hidden-label) input+label::before{left:var(--item-padding-x);top:calc(var(--item-padding-y) - 1px)}.br-item>.br-checkbox:not(.hidden-label) input+label:empty,.br-item>.br-radio:not(.hidden-label) input+label:empty{left:0;top:1px}.br-item>.br-checkbox:not(.hidden-label) input:hover:not(:disabled)+label::before,.br-item>.br-radio:not(.hidden-label) input:hover:not(:disabled)+label::before{background-image:none}.br-item>.br-checkbox input:not(:indeterminate)+label{min-height:calc(var(--checkbox-size) + var(--item-padding-y) * 2)}.br-item>.br-checkbox input:not(:indeterminate)+label:not(:empty){padding-left:calc(var(--checkbox-padding) + var(--checkbox-size) + var(--item-padding-x))}.br-item>.br-checkbox input:not(:indeterminate)+label::after{left:calc(var(--item-padding-x) + 8px);top:calc(var(--item-padding-y) + 4px)}.br-item>.br-checkbox input:not(:indeterminate)+label:empty{min-height:var(--checkbox-size)}.br-item>.br-checkbox input:not(:indeterminate)+label:empty::after{left:8px;top:4px}.br-item .br-radio input+label{min-height:calc(var(--radio-size) + var(--item-padding-y) * 2);padding-left:calc(var(--spacing-scale-base) + var(--radio-size) + var(--item-padding-x))}.br-item .br-radio input+label::after{left:calc(var(--item-padding-x) + var(--radio-bullet-position));top:calc(var(--item-padding-y) + var(--radio-bullet-position) - 1px)}.br-item .br-radio input+label:empty{min-height:var(--radio-size)}.br-item .br-radio input+label:empty::after{left:var(--radio-bullet-position);top:var(--radio-bullet-position)}.br-item.highlight{--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)}.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);background-color:var(--selected)}.br-item.active{--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);background-color:var(--active);color:var(--color)}.br-item.dark-mode{--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)}.br-item.dark-mode.active{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--active-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);background-color:var(--background-light);color:var(--active)}.br-item[data-toggle]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-item .content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.br-item [class*=fa-]{height:16px;width:14px !important}a.br-item{color:var(--interactive)}a.br-item:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a.br-item:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}button.br-item{background-color:transparent;color:var(--color)}button.br-item:focus{outline:none}button.br-item:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}button.br-item:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}button.br-item:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--pressed))), to(rgba(var(--color-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--color-rgb), var(--pressed)), rgba(var(--color-rgb), var(--pressed)))}:host{display:block}:host .br-select br-list{background-color:var(--bg-color);-webkit-box-shadow:var(--select-shadow);box-shadow:var(--select-shadow);margin-top:-2px;max-height:404px;overflow:auto;position:absolute;resize:none;width:100%;z-index:1}:host .br-select br-list::-webkit-scrollbar{height:var(--spacing-scale-base);width:var(--spacing-scale-base)}:host .br-select br-list::-webkit-scrollbar-track{background:var(--gray-10)}:host .br-select br-list::-webkit-scrollbar-thumb{background:var(--gray-30)}:host .br-select br-list:hover::-webkit-scrollbar-thumb{background:var(--gray-40)}:host .br-select br-list:focus,:host .br-select br-list:active{color:var(--color-secondary-09);outline:none}:host .br-select br-list:hover::-webkit-scrollbar-thumb{background:var(--color-secondary-07)}:host .br-select br-list .br-item br-radio::part(radio-input){visibility:hidden;height:0;width:0}:host .br-select br-list .br-item br-radio::part(radio-label){padding-left:var(--spacing-scale-base);position:relative}:host .br-select br-list .br-item br-radio::part(radio-label)::before,:host .br-select br-list .br-item br-radio::part(radio-label)::after{display:none}";
10
+ const BrSelectStyle0 = selectCss;
11
+
12
+ const Select = class {
13
+ constructor(hostRef) {
14
+ registerInstance(this, hostRef);
15
+ this.brDidSelectChange = createEvent(this, "brDidSelectChange", 7);
16
+ if (hostRef.$hostElement$["s-ei"]) {
17
+ this.elementInternals = hostRef.$hostElement$["s-ei"];
18
+ }
19
+ else {
20
+ this.elementInternals = hostRef.$hostElement$.attachInternals();
21
+ hostRef.$hostElement$["s-ei"] = this.elementInternals;
22
+ }
23
+ /**
24
+ * Contém o id gerado aleatoriamente
25
+ */
26
+ this.idDefault = `${v4()}`;
27
+ this.handleClickOutside = (event) => {
28
+ const target = event.target;
29
+ if (this.isExpanded && !this.el.contains(target)) {
30
+ this.isExpanded = false;
31
+ }
32
+ };
33
+ this.inheritedAttributes = {};
34
+ this.label = undefined;
35
+ this.placeholder = '';
36
+ this.isMultiple = false;
37
+ this.options = '[]';
38
+ this.selectAllLabel = 'Selecionar todos';
39
+ this.unselectAllLabel = 'Desselecionar todos';
40
+ this.showSearchIcon = false;
41
+ this.isOpen = false;
42
+ this.customId = undefined;
43
+ this.parsedOptions = [];
44
+ this.inputValue = '';
45
+ this.isAllSelected = false;
46
+ this.isExpanded = false;
47
+ this.focusedIndex = -1;
48
+ }
49
+ synchronizeSelect() {
50
+ try {
51
+ const rawOptions = JSON.parse(this.options);
52
+ this.parsedOptions = this.sanitizeOptions(rawOptions);
53
+ this.updateSelectedOptions();
54
+ this.updateSelectedAllState();
55
+ this.emitSelectedOptions();
56
+ }
57
+ catch (error) {
58
+ console.error('Erro ao processar as opções do select:', error);
59
+ this.parsedOptions = [];
60
+ }
61
+ }
62
+ componentWillLoad() {
63
+ this.isExpanded = this.isOpen;
64
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
65
+ this.synchronizeSelect();
66
+ }
67
+ componentDidLoad() {
68
+ document.addEventListener('click', this.handleClickOutside);
69
+ }
70
+ disconnectedCallback() {
71
+ document.addEventListener('click', this.handleClickOutside);
72
+ }
73
+ sanitizeOptions(rawOptions) {
74
+ const validOptions = [];
75
+ const invalidOptions = [];
76
+ rawOptions.forEach(option => {
77
+ if (typeof option.label === 'string' && option.label.trim() !== '') {
78
+ validOptions.push({
79
+ label: option.label.trim(),
80
+ value: typeof option.value === 'string' ? option.value : '',
81
+ selected: typeof option.selected === 'boolean' ? option.selected : false,
82
+ });
83
+ }
84
+ else {
85
+ invalidOptions.push(option);
86
+ }
87
+ });
88
+ if (invalidOptions.length > 0) {
89
+ console.warn('Opções inválidas descartadas:', invalidOptions);
90
+ }
91
+ return validOptions;
92
+ }
93
+ handleKeydownOnInput(event) {
94
+ switch (event.key) {
95
+ case 'Tab':
96
+ this.closeSelect();
97
+ break;
98
+ case 'ArrowDown':
99
+ event.preventDefault();
100
+ if (!this.isExpanded) {
101
+ this.openSelect();
102
+ }
103
+ this.focusItemInDirection('next');
104
+ break;
105
+ case 'ArrowUp':
106
+ event.preventDefault();
107
+ if (!this.isExpanded) {
108
+ this.openSelect();
109
+ }
110
+ this.focusItemInDirection('previous');
111
+ break;
112
+ case 'Escape':
113
+ this.closeSelect();
114
+ this.resetFocus();
115
+ break;
116
+ case 'Enter':
117
+ this.toggleOpen();
118
+ break;
119
+ }
120
+ }
121
+ handleKeydownOnList(event) {
122
+ event.preventDefault();
123
+ switch (event.key) {
124
+ case 'Tab':
125
+ case 'Escape':
126
+ this.resetFocus();
127
+ break;
128
+ case 'ArrowUp':
129
+ this.focusItemInDirection('previous');
130
+ break;
131
+ case 'ArrowDown':
132
+ this.focusItemInDirection('next');
133
+ break;
134
+ }
135
+ }
136
+ handleKeydownOnItem(event, index) {
137
+ if (event.key === 'Enter' || event.key === ' ') {
138
+ event.preventDefault();
139
+ this.handleSelection(index); // Garante que o índice correto será usado
140
+ }
141
+ else if (event.key === 'Escape') {
142
+ this.closeSelect();
143
+ }
144
+ }
145
+ handleSelectAllKeyDown(event) {
146
+ if (event.key === 'Enter' || event.key === ' ') {
147
+ event.preventDefault();
148
+ this.toggleSelectAll();
149
+ }
150
+ else if (event.key === 'Escape') {
151
+ event.preventDefault();
152
+ this.closeSelect();
153
+ }
154
+ }
155
+ resetFocus() {
156
+ const input = this.el.shadowRoot.querySelector('br-input');
157
+ input.focus();
158
+ }
159
+ focusItemInDirection(direction) {
160
+ let itemCount = this.parsedOptions.length;
161
+ if (this.isMultiple)
162
+ itemCount += 1;
163
+ this.focusedIndex = direction === 'next'
164
+ ? (this.focusedIndex + 1) % itemCount
165
+ : (this.focusedIndex - 1 + itemCount) % itemCount;
166
+ this.focusItem(this.focusedIndex);
167
+ }
168
+ focusItem(index) {
169
+ const items = this.el.shadowRoot.querySelectorAll('.br-item');
170
+ const item = items[index];
171
+ item.focus();
172
+ }
173
+ openSelect() {
174
+ this.isExpanded = true;
175
+ }
176
+ closeSelect() {
177
+ this.isExpanded = false;
178
+ }
179
+ handleSelection(index) {
180
+ if (index < 0 || index >= this.parsedOptions.length) {
181
+ return;
182
+ }
183
+ if (this.isMultiple) {
184
+ this.parsedOptions[index].selected = !this.parsedOptions[index].selected;
185
+ }
186
+ else {
187
+ this.parsedOptions.forEach(option => option.selected = false);
188
+ this.parsedOptions[index].selected = true;
189
+ this.isExpanded = false;
190
+ }
191
+ this.updateSelectedOptions();
192
+ this.emitSelectedOptions();
193
+ this.updateSelectedAllState();
194
+ }
195
+ updateSelectedOptions() {
196
+ this.inputValue = this.getStringValue(this.parsedOptions.filter(option => option.selected));
197
+ }
198
+ getStringValue(options) {
199
+ if (options.length > 0) {
200
+ const firstSelected = options[0].label || options[0].value;
201
+ if (this.isMultiple) {
202
+ const howManySelected = options.length > 1 ? ` + (${options.length - 1})` : '';
203
+ return `${firstSelected}${howManySelected}`;
204
+ }
205
+ else {
206
+ return firstSelected;
207
+ }
208
+ }
209
+ return '';
210
+ }
211
+ emitSelectedOptions() {
212
+ const selectedOptions = this.parsedOptions
213
+ .filter((option) => option.selected === true)
214
+ .map((option) => { var _a; return (_a = option.label) !== null && _a !== void 0 ? _a : option.value; });
215
+ this.brDidSelectChange.emit(selectedOptions);
216
+ }
217
+ updateSelectedAllState() {
218
+ const allSelected = this.parsedOptions.every(option => option.selected);
219
+ this.isAllSelected = allSelected;
220
+ }
221
+ toggleSelectAll() {
222
+ if (this.isAllSelected) {
223
+ this.parsedOptions.forEach(option => option.selected = false);
224
+ this.isAllSelected = false;
225
+ }
226
+ else {
227
+ this.parsedOptions.forEach(option => option.selected = true);
228
+ this.isAllSelected = true;
229
+ }
230
+ this.updateSelectedOptions();
231
+ this.emitSelectedOptions();
232
+ }
233
+ renderInput() {
234
+ return (h("br-input", { value: this.inputValue, label: this.label, placeholder: this.placeholder, readonly: true, onClick: () => this.toggleOpen(), onKeyDown: (event) => this.handleKeydownOnInput(event) }, this.showSearchIcon && h("br-icon", { slot: "icon", "icon-name": "fa-solid:search", "aria-hidden": "true" }), h("br-icon", { slot: "action", "icon-name": this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down', height: "16", "aria-hidden": "true" })));
235
+ }
236
+ renderSelectAllCheckbox() {
237
+ return (h("div", { class: `br-item highlighted ${this.isAllSelected ? 'selected' : ''}`, "data-all": "data-all", tabindex: "-1", role: "option", "aria-selected": this.isAllSelected, onKeyDown: (event) => this.handleSelectAllKeyDown(event) }, h("br-checkbox", { name: `checkbox-${this.idDefault}`, label: this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel, checked: this.isAllSelected, onBrDidCheckedChange: () => this.toggleSelectAll() })));
238
+ }
239
+ renderOptions() {
240
+ return (this.parsedOptions.map((option, index) => (h("div", { class: `br-item ${option.selected ? 'selected' : ''}`, key: `${option.label}-${this.idDefault}`, role: "option", tabindex: this.focusedIndex === index ? 0 : -1, "aria-selected": option.selected, onClick: () => this.handleSelection(index), onKeyDown: (event) => this.handleKeydownOnItem(event, index) }, this.isMultiple ?
241
+ (h("br-checkbox", { name: `checkbox-${index}-${this.idDefault}`, label: option.label || option.value, checked: option.selected === true, onBrDidCheckedChange: () => this.handleSelection(index) }))
242
+ :
243
+ (h("br-radio", { exportparts: "radio-input, radio-label", name: `radio-${index}-${this.idDefault}`, label: option.label || option.value, checked: option.selected === true, onBrDidChange: () => this.handleSelection(index) }))))));
244
+ }
245
+ /**
246
+ * Determina um id para o radio.
247
+ */
248
+ getComputedId() {
249
+ var _a;
250
+ return ((_a = this.customId) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.customId : `br-select-${this.idDefault}`;
251
+ }
252
+ /**
253
+ * Inverte o valor da prop `isOpen`
254
+ */
255
+ async toggleOpen() {
256
+ this.isExpanded = !this.isExpanded;
257
+ }
258
+ getCssClassMap() {
259
+ return {
260
+ 'br-select': true,
261
+ };
262
+ }
263
+ render() {
264
+ return (h("div", Object.assign({ key: 'aa32a5bf8e476ba29de8cf6fb6d6f440902ffade', class: this.getCssClassMap() }, this.inheritedAttributes, { id: this.getComputedId() }), this.renderInput(), this.isExpanded &&
265
+ h("br-list", { key: 'b430614ce4b013b2f10416bd987cda6569b5458a', tabindex: -1, onKeyDown: (event) => this.handleKeydownOnList(event) }, this.isMultiple && (this.renderSelectAllCheckbox()), this.renderOptions())));
266
+ }
267
+ static get formAssociated() { return true; }
268
+ get el() { return getElement(this); }
269
+ static get watchers() { return {
270
+ "options": ["synchronizeSelect"]
271
+ }; }
272
+ };
273
+ Select.style = BrSelectStyle0;
274
+
275
+ export { Select as br_select };
276
+
277
+ //# sourceMappingURL=br-select.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"br-select.entry.js","mappings":"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","names":["uuidv4"],"sources":["src/components/select/select.scss?tag=br-select&encapsulation=shadow","src/components/select/select.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/select/select.scss\";\n@import \"../../../../../node_modules/@govbr-ds/core/src/components/item/item.scss\";\n\n:host {\n display: block;\n\n .br-select br-list {\n background-color: var(--bg-color);\n box-shadow: var(--select-shadow);\n margin-top: -2px;\n max-height: 404px;\n overflow: auto;\n position: absolute;\n resize: none;\n width: 100%;\n z-index: 1;\n\n @include scrollbar;\n\n &:focus,\n &:active {\n color: var(--color-secondary-09);\n outline: none;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background: var(--color-secondary-07);\n }\n }\n\n\n .br-item br-radio::part(radio-input) {\n visibility: hidden;\n height: 0;\n width: 0;\n }\n\n .br-item br-radio::part(radio-label) {\n padding-left: var(--spacing-scale-base);\n position: relative;\n\n &::before,\n &::after {\n display: none;\n }\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { v4 as uuidv4 } from 'uuid';\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces';\n\n@Component({\n tag: 'br-select',\n styleUrl: 'select.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Select {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrSelectElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Rótulo que indica o tipo de informação que deve ser selecionada.\n */\n @Prop({ reflect: true }) label: string;\n\n /**\n * Texto auxiliar exibido antes de uma seleção.\n */\n @Prop({ reflect: true }) placeholder: string = '';\n\n /**\n * Habilita o modo múltiplo para selecionar várias opções.\n */\n @Prop({ reflect: true }) isMultiple: boolean = false;\n\n /**\n * JSON contendo as opções do select.\n */\n @Prop({ reflect: true }) options: string = '[]';\n\n /**\n * Rótulo para selecionar todas as opções.\n */\n @Prop({ reflect: true }) selectAllLabel: string = 'Selecionar todos';\n\n /**\n * Rótulo para desmarcar todas as opções.\n */\n @Prop({ reflect: true }) unselectAllLabel: string = 'Desselecionar todos';\n\n /**\n * Exibe o ícone de busca no campo de entrada.\n */\n @Prop({ reflect: true }) showSearchIcon: boolean = false;\n\n /**\n * Indica se a listagem de itens do select está expandida\n */\n @Prop({ reflect: true }) isOpen: boolean = false;\n\n /**\n * Especifica o ID do componente.\n * Se não for fornecido, o ID será gerado automaticamente e de forma aleatória\n */\n @Prop({ reflect: true, attribute: 'id' }) customId: string\n\n /**\n * Contém o id gerado aleatoriamente\n */\n private readonly idDefault = `${uuidv4()}`\n\n // Representa as opções do select disponíveis para renderização.\n // Cada opção contém `label`, `value` e o estado de seleção (`selected`).\n @State() parsedOptions: { label: string; value: string; selected: boolean }[] = [];\n\n // Valor exibido no input, refletindo as opções selecionadas.\n @State() inputValue: string = '';\n\n // Indica se todas as opções estão selecionadas. Comportamento do checkbox \"Selecionar Todos\".\n @State() isAllSelected: boolean = false;\n\n // Controla se a lista de opções do select está expandida (aberta) ou colapsada (fechada).\n @State() isExpanded: boolean = false;\n\n // Armazena o índice do item atualmente focado, usado para navegação por teclado.\n @State() focusedIndex: number = -1;\n\n /**\n * Evento emitido sempre que houver atualização nos itens selecionados.\n */\n @Event() brDidSelectChange: EventEmitter;\n\n @Watch('options')\n synchronizeSelect() {\n try {\n const rawOptions = JSON.parse(this.options);\n this.parsedOptions = this.sanitizeOptions(rawOptions);\n this.updateSelectedOptions();\n this.updateSelectedAllState();\n this.emitSelectedOptions();\n } catch (error) {\n console.error('Erro ao processar as opções do select:', error);\n this.parsedOptions = [];\n }\n }\n\n componentWillLoad() {\n this.isExpanded = this.isOpen;\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n this.synchronizeSelect();\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n disconnectedCallback() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n private sanitizeOptions(rawOptions: any[]): { label: string; value: string; selected: boolean }[] {\n const validOptions = [];\n const invalidOptions = [];\n\n rawOptions.forEach(option => {\n if (typeof option.label === 'string' && option.label.trim() !== '') {\n validOptions.push({\n label: option.label.trim(),\n value: typeof option.value === 'string' ? option.value : '',\n selected: typeof option.selected === 'boolean' ? option.selected : false,\n });\n } else {\n invalidOptions.push(option);\n }\n });\n\n if (invalidOptions.length > 0) {\n console.warn('Opções inválidas descartadas:', invalidOptions);\n }\n\n return validOptions;\n }\n\n private readonly handleClickOutside = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n if (this.isExpanded && !this.el.contains(target)) {\n this.isExpanded = false;\n }\n }\n\n private handleKeydownOnInput(event: KeyboardEvent) {\n switch (event.key) {\n case 'Tab':\n this.closeSelect();\n break;\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isExpanded) {\n this.openSelect();\n }\n this.focusItemInDirection('next');\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isExpanded) {\n this.openSelect();\n }\n this.focusItemInDirection('previous');\n break;\n case 'Escape':\n this.closeSelect();\n this.resetFocus();\n break;\n case 'Enter':\n this.toggleOpen();\n break;\n default:\n }\n }\n\n private handleKeydownOnList(event: KeyboardEvent) {\n event.preventDefault();\n switch (event.key) {\n case 'Tab':\n case 'Escape':\n this.resetFocus();\n break;\n case 'ArrowUp':\n this.focusItemInDirection('previous');\n break;\n case 'ArrowDown':\n this.focusItemInDirection('next');\n break;\n default:\n break;\n }\n }\n\n private handleKeydownOnItem(event: KeyboardEvent, index: number) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.handleSelection(index); // Garante que o índice correto será usado\n } else if (event.key === 'Escape') {\n this.closeSelect();\n }\n }\n\n private handleSelectAllKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.toggleSelectAll();\n } else if (event.key === 'Escape') {\n event.preventDefault();\n this.closeSelect();\n }\n }\n\n private resetFocus() {\n const input = this.el.shadowRoot.querySelector('br-input') as HTMLElement;\n input.focus();\n }\n\n private focusItemInDirection(direction: 'next' | 'previous') {\n let itemCount = this.parsedOptions.length;\n if (this.isMultiple) itemCount += 1;\n\n this.focusedIndex = direction === 'next'\n ? (this.focusedIndex + 1) % itemCount\n : (this.focusedIndex - 1 + itemCount) % itemCount;\n\n this.focusItem(this.focusedIndex);\n }\n\n private focusItem(index: number) {\n const items = this.el.shadowRoot.querySelectorAll('.br-item');\n const item = items[index] as HTMLElement;\n item.focus();\n }\n\n private openSelect() {\n this.isExpanded = true;\n }\n\n private closeSelect() {\n this.isExpanded = false;\n }\n\n\n private handleSelection(index: number) {\n if (index < 0 || index >= this.parsedOptions.length) {\n return;\n }\n\n if (this.isMultiple) {\n this.parsedOptions[index].selected = !this.parsedOptions[index].selected;\n } else {\n this.parsedOptions.forEach(option => option.selected = false);\n this.parsedOptions[index].selected = true;\n this.isExpanded = false;\n }\n this.updateSelectedOptions();\n this.emitSelectedOptions();\n this.updateSelectedAllState();\n }\n\n private updateSelectedOptions() {\n this.inputValue = this.getStringValue(this.parsedOptions.filter(option => option.selected));\n }\n\n private getStringValue(options) {\n if (options.length > 0) {\n const firstSelected = options[0].label || options[0].value;\n if (this.isMultiple) {\n const howManySelected = options.length > 1 ? ` + (${options.length - 1})` : '';\n return `${firstSelected}${howManySelected}`;\n } else {\n return firstSelected;\n }\n }\n return '';\n }\n\n private emitSelectedOptions() {\n const selectedOptions = this.parsedOptions\n .filter((option) => option.selected === true)\n .map((option) => option.label ?? option.value);\n\n this.brDidSelectChange.emit(selectedOptions);\n }\n\n private updateSelectedAllState() {\n const allSelected = this.parsedOptions.every(option => option.selected);\n this.isAllSelected = allSelected;\n }\n\n private toggleSelectAll() {\n if (this.isAllSelected) {\n this.parsedOptions.forEach(option => option.selected = false);\n this.isAllSelected = false;\n } else {\n this.parsedOptions.forEach(option => option.selected = true);\n this.isAllSelected = true;\n }\n\n this.updateSelectedOptions();\n this.emitSelectedOptions();\n }\n\n private renderInput() {\n return (\n <br-input\n value={this.inputValue}\n label={this.label}\n placeholder={this.placeholder}\n readonly\n onClick={() => this.toggleOpen()}\n onKeyDown={(event) => this.handleKeydownOnInput(event)}\n >\n {this.showSearchIcon && <br-icon slot=\"icon\" icon-name=\"fa-solid:search\" aria-hidden=\"true\"></br-icon>}\n <br-icon slot=\"action\"\n icon-name={this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down'}\n height=\"16\"\n aria-hidden=\"true\">\n </br-icon>\n </br-input>\n );\n }\n\n private renderSelectAllCheckbox() {\n return (\n <div class={`br-item highlighted ${this.isAllSelected ? 'selected' : ''}`}\n data-all=\"data-all\"\n tabindex=\"-1\"\n role=\"option\"\n aria-selected={this.isAllSelected}\n onKeyDown={(event) => this.handleSelectAllKeyDown(event)}\n >\n <br-checkbox\n name={`checkbox-${this.idDefault}`}\n label={this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel}\n checked={this.isAllSelected}\n onBrDidCheckedChange={() => this.toggleSelectAll()}\n ></br-checkbox>\n </div>\n );\n }\n\n private renderOptions() {\n return (\n this.parsedOptions.map((option, index) => (\n <div\n class={`br-item ${option.selected ? 'selected' : ''}`}\n key={`${option.label}-${this.idDefault}`}\n role=\"option\"\n tabindex={this.focusedIndex === index ? 0 : -1}\n aria-selected={option.selected}\n onClick={() => this.handleSelection(index)}\n onKeyDown={(event) => this.handleKeydownOnItem(event, index)}\n >\n {this.isMultiple ?\n (\n <br-checkbox\n name={`checkbox-${index}-${this.idDefault}`}\n label={option.label || option.value}\n checked={option.selected === true}\n onBrDidCheckedChange={() => this.handleSelection(index)}\n />\n )\n :\n (<br-radio\n exportparts=\"radio-input, radio-label\"\n name={`radio-${index}-${this.idDefault}`}\n label={option.label || option.value}\n checked={option.selected === true}\n onBrDidChange={() => this.handleSelection(index)}\n />)\n }\n </div>\n ))\n );\n }\n\n /**\n * Determina um id para o radio.\n */\n private getComputedId() {\n return this.customId?.length > 0 ? this.customId : `br-select-${this.idDefault}`;\n }\n\n /**\n * Inverte o valor da prop `isOpen`\n */\n @Method()\n async toggleOpen() {\n this.isExpanded = !this.isExpanded\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-select': true,\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n render() {\n return (\n <div class={this.getCssClassMap()} {...this.inheritedAttributes} id={this.getComputedId()}>\n {this.renderInput()}\n\n {this.isExpanded &&\n <br-list tabindex={-1} onKeyDown={(event) => this.handleKeydownOnList(event)}>\n {this.isMultiple && (this.renderSelectAllCheckbox())}\n {this.renderOptions()}\n </br-list>\n }\n </div>\n );\n }\n}\n\n"],"version":3}
@@ -2,17 +2,17 @@
2
2
  * Construído com @govbr-ds/webcomponents
3
3
  * Padrão Digital de Governo.
4
4
  */
5
- import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-aab4a630.js';
5
+ import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-45af9b53.js';
6
6
  import { i as inheritAriaAttributes } from './inherited-attributes-553a7c36.js';
7
7
  import { v as v4 } from './v4-c99c1585.js';
8
8
 
9
- const switchCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}html{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}a{background-color:transparent}strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;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}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}[hidden]{display:none}.d-flex{display:-ms-flexbox !important;display:flex !important}.align-items-center{-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter) * 0.5);padding-right:calc(var(--grid-gutter) * 0.5);width:100%}.col{-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.container{--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:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter) * -0.5);margin-right:calc(var(--grid-gutter) * -0.5)}@media (min-width: 576px){.container{--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{--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{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width: 1600px){.container{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mr-2{margin-right:var(--spacing-scale-base) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base) * -1) !important}.mb-3{margin-bottom:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}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);color:var(--interactive);text-decoration:none}a:focus{outline:none}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:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}button{cursor:pointer}img{max-width:100%;vertical-align:middle}ul{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}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)}::-moz-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}::-webkit-input-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}:-ms-input-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}::-ms-input-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}::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)}.text-pure-0{color:var(--pure-0) !important}.text-primary-default{color:var(--color-primary-default) !important}.bg-support-01{--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);background:var(--color-support-01) !important}.text-nowrap{white-space:nowrap !important}.text-base{font-size:var(--font-size-scale-base) !important}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));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}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.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)}.br-switch{--switch-height:var(--switch-height-medium);--switch-width:var(--switch-width-medium);--switch-toggle-size:var(--switch-toggle-medium);--switch-icon-size:var(--switch-icon-medium);--switch-height-small:24px;--switch-height-medium:30px;--switch-height-large:36px;--switch-width-small:40px;--switch-width-medium:52px;--switch-width-large:64px;--switch-toggle-small:16px;--switch-toggle-medium:22px;--switch-toggle-large:28px;--switch-icon-small:var(--icon-size-xs);--switch-icon-medium:var(--icon-size-sm);--switch-icon-large:var(--icon-size-base);display:-ms-inline-flexbox;display:inline-flex;min-height:var(--switch-height);}.br-switch input{opacity:0;position:absolute}.br-switch input+label{-ms-flex-align:center;align-items:center;color:var(--color);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-size:var(--font-size-scale-base);margin-bottom:0;position:relative}.br-switch input+label::before{background:var(--background-light);border:1px solid var(--border-color);border-radius:100em;content:\"\";height:var(--switch-height);position:absolute;width:var(--switch-width)}.br-switch input+label::after{background-color:var(--off);border-radius:50%;content:\"\";height:var(--switch-toggle-size);position:absolute;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;width:var(--switch-toggle-size)}.br-switch input:checked+label::after{background-color:var(--on)}.br-switch input+label{padding-right:calc(var(--spacing-scale-2x) + var(--switch-width))}.br-switch input+label:empty{padding-right:var(--switch-width)}.br-switch input+label::before{right:0}.br-switch input+label::after{right:calc(4px + var(--switch-toggle-size))}.br-switch input:checked+label::after{right:4px}.br-switch.right input+label{padding-left:calc(var(--spacing-scale-2x) + var(--switch-width));padding-right:0}.br-switch.right input+label::before{left:0}.br-switch.right input+label::after{left:4px}.br-switch.right input:checked+label::after{left:calc(var(--switch-width) - var(--switch-toggle-size) - 4px)}.br-switch.top{min-height:calc(var(--switch-height) * 2)}.br-switch.top input+label{-ms-flex-align:start;align-items:flex-start;padding-right:0}.br-switch.top input+label::before{bottom:0;left:0}.br-switch.top input+label::after{bottom:4px;left:4px}.br-switch.top input:checked+label::after{left:calc(var(--switch-width) - var(--switch-toggle-size) - 4px)}.br-switch.small{--switch-height:var(--switch-height-small);--switch-width:var(--switch-width-small);--switch-toggle-size:var(--switch-toggle-small);--switch-icon-size:var(--switch-icon-small)}.br-switch.medium{--switch-height:var(--switch-height-medium);--switch-width:var(--switch-width-medium);--switch-toggle-size:var(--switch-toggle-medium);--switch-icon-size:var(--switch-icon-medium)}.br-switch.large{--switch-height:var(--switch-height-large);--switch-width:var(--switch-width-large);--switch-toggle-size:var(--switch-toggle-large);--switch-icon-size:var(--switch-icon-large)}.br-switch input~.switch-data{-ms-flex-item-align:center;align-self:center;color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);margin-left:8px}.br-switch input~.switch-data::before{content:attr(data-disabled)}.br-switch input:checked~.switch-data{color:var(--color)}.br-switch input:checked~.switch-data::before{content:attr(data-enabled)}.br-switch.icon input+label::after{-ms-flex-align:center;align-items:center;color:var(--color-dark);content:\"\\f00d\";display:-ms-inline-flexbox;display:inline-flex;font-family:\"Font Awesome 5 Free\", sans-serif;font-size:var(--switch-icon-size);font-weight:var(--font-weight-black);-ms-flex-pack:center;justify-content:center}.br-switch.icon input:checked+label::after{content:\"\\f00c\"}.br-switch input:focus-visible+label::before{border-color:var(--focus) !important;-webkit-box-shadow:0 0 0 var(--surface-width-md) var(--focus);box-shadow:0 0 0 var(--surface-width-md) var(--focus);outline:none}.br-switch input:hover:not([disabled]):checked+label::before{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--on-rgb), var(--hover))), to(rgba(var(--on-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--on-rgb), var(--hover)), rgba(var(--on-rgb), var(--hover)))}.br-switch input:hover:not([disabled]):not(:checked)+label::before{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--off-rgb), var(--hover))), to(rgba(var(--off-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--off-rgb), var(--hover)), rgba(var(--off-rgb), var(--hover)))}.br-switch input:active:not([disabled]):checked+label::before{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--on-rgb), var(--pressed))), to(rgba(var(--on-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--on-rgb), var(--pressed)), rgba(var(--on-rgb), var(--pressed)))}.br-switch input:active:not([disabled]):not(:checked)+label::before{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--off-rgb), var(--pressed))), to(rgba(var(--off-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--off-rgb), var(--pressed)), rgba(var(--off-rgb), var(--pressed)))}.br-switch.dark-mode,.br-switch.dark-mode label{color:var(--color-dark)}:host{display:block}";
9
+ const switchCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}html{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}a{background-color:transparent}strong{font-weight:bolder}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]{-webkit-appearance:button;-moz-appearance:button;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}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}[hidden]{display:none}.d-flex{display:-ms-flexbox !important;display:flex !important}.align-items-center{-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter) * 0.5);padding-right:calc(var(--grid-gutter) * 0.5);width:100%}.col{-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.container{--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:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter) * -0.5);margin-right:calc(var(--grid-gutter) * -0.5)}@media (min-width: 576px){.container{--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{--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{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width: 1600px){.container{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.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}.mr-2{margin-right:var(--spacing-scale-base) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base) * -1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mb-3{margin-bottom:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}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);color:var(--interactive);text-decoration:none}a:focus{outline:none}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:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}button{cursor:pointer}img{max-width:100%;vertical-align:middle}ul{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}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)}::-moz-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}::-webkit-input-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}:-ms-input-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}::-ms-input-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}::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)}.text-pure-0{color:var(--pure-0) !important}.text-primary-default{color:var(--color-primary-default) !important}.bg-support-01{--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);background:var(--color-support-01) !important}.text-nowrap{white-space:nowrap !important}.text-base{font-size:var(--font-size-scale-base) !important}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));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}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.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)}.br-switch{--switch-height:var(--switch-height-medium);--switch-width:var(--switch-width-medium);--switch-toggle-size:var(--switch-toggle-medium);--switch-icon-size:var(--switch-icon-medium);--switch-height-small:24px;--switch-height-medium:30px;--switch-height-large:36px;--switch-width-small:40px;--switch-width-medium:52px;--switch-width-large:64px;--switch-toggle-small:16px;--switch-toggle-medium:22px;--switch-toggle-large:28px;--switch-icon-small:var(--icon-size-xs);--switch-icon-medium:var(--icon-size-sm);--switch-icon-large:var(--icon-size-base);display:-ms-inline-flexbox;display:inline-flex;min-height:var(--switch-height);}.br-switch input{opacity:0;position:absolute}.br-switch input+label{-ms-flex-align:center;align-items:center;color:var(--color);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-size:var(--font-size-scale-base);margin-bottom:0;position:relative}.br-switch input+label::before{background:var(--background-light);border:1px solid var(--border-color);border-radius:100em;content:\"\";height:var(--switch-height);position:absolute;width:var(--switch-width)}.br-switch input+label::after{background-color:var(--off);border-radius:50%;content:\"\";height:var(--switch-toggle-size);position:absolute;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;width:var(--switch-toggle-size)}.br-switch input:checked+label::after{background-color:var(--on)}.br-switch input+label{padding-right:calc(var(--spacing-scale-2x) + var(--switch-width))}.br-switch input+label:empty{padding-right:var(--switch-width)}.br-switch input+label::before{right:0}.br-switch input+label::after{right:calc(4px + var(--switch-toggle-size))}.br-switch input:checked+label::after{right:4px}.br-switch.right input+label{padding-left:calc(var(--spacing-scale-2x) + var(--switch-width));padding-right:0}.br-switch.right input+label::before{left:0}.br-switch.right input+label::after{left:4px}.br-switch.right input:checked+label::after{left:calc(var(--switch-width) - var(--switch-toggle-size) - 4px)}.br-switch.top{min-height:calc(var(--switch-height) * 2)}.br-switch.top input+label{-ms-flex-align:start;align-items:flex-start;padding-right:0}.br-switch.top input+label::before{bottom:0;left:0}.br-switch.top input+label::after{bottom:4px;left:4px}.br-switch.top input:checked+label::after{left:calc(var(--switch-width) - var(--switch-toggle-size) - 4px)}.br-switch.small{--switch-height:var(--switch-height-small);--switch-width:var(--switch-width-small);--switch-toggle-size:var(--switch-toggle-small);--switch-icon-size:var(--switch-icon-small)}.br-switch.medium{--switch-height:var(--switch-height-medium);--switch-width:var(--switch-width-medium);--switch-toggle-size:var(--switch-toggle-medium);--switch-icon-size:var(--switch-icon-medium)}.br-switch.large{--switch-height:var(--switch-height-large);--switch-width:var(--switch-width-large);--switch-toggle-size:var(--switch-toggle-large);--switch-icon-size:var(--switch-icon-large)}.br-switch input~.switch-data{-ms-flex-item-align:center;align-self:center;color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);margin-left:8px}.br-switch input~.switch-data::before{content:attr(data-disabled)}.br-switch input:checked~.switch-data{color:var(--color)}.br-switch input:checked~.switch-data::before{content:attr(data-enabled)}.br-switch.icon input+label::after{-ms-flex-align:center;align-items:center;color:var(--color-dark);content:\"\\f00d\";display:-ms-inline-flexbox;display:inline-flex;font-family:\"Font Awesome 5 Free\", sans-serif;font-size:var(--switch-icon-size);font-weight:var(--font-weight-black);-ms-flex-pack:center;justify-content:center}.br-switch.icon input:checked+label::after{content:\"\\f00c\"}.br-switch input:focus-visible+label::before{border-color:var(--focus) !important;-webkit-box-shadow:0 0 0 var(--surface-width-md) var(--focus);box-shadow:0 0 0 var(--surface-width-md) var(--focus);outline:none}.br-switch input:hover:not([disabled]):checked+label::before{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--on-rgb), var(--hover))), to(rgba(var(--on-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--on-rgb), var(--hover)), rgba(var(--on-rgb), var(--hover)))}.br-switch input:hover:not([disabled]):not(:checked)+label::before{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--off-rgb), var(--hover))), to(rgba(var(--off-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--off-rgb), var(--hover)), rgba(var(--off-rgb), var(--hover)))}.br-switch input:active:not([disabled]):checked+label::before{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--on-rgb), var(--pressed))), to(rgba(var(--on-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--on-rgb), var(--pressed)), rgba(var(--on-rgb), var(--pressed)))}.br-switch input:active:not([disabled]):not(:checked)+label::before{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--off-rgb), var(--pressed))), to(rgba(var(--off-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--off-rgb), var(--pressed)), rgba(var(--off-rgb), var(--pressed)))}.br-switch.dark-mode,.br-switch.dark-mode label{color:var(--color-dark)}:host{display:block}";
10
10
  const BrSwitchStyle0 = switchCss;
11
11
 
12
12
  const Switch = class {
13
13
  constructor(hostRef) {
14
14
  registerInstance(this, hostRef);
15
- this.brDidCheckedChange = createEvent(this, "brDidCheckedChange", 7);
15
+ this.brDidSwitchToggle = createEvent(this, "brDidSwitchToggle", 7);
16
16
  if (hostRef.$hostElement$["s-ei"]) {
17
17
  this.elementInternals = hostRef.$hostElement$["s-ei"];
18
18
  }
@@ -22,7 +22,10 @@ const Switch = class {
22
22
  }
23
23
  this.handleCheckedChange = (event) => {
24
24
  this._checkedValue = event.target.checked;
25
- this.brDidCheckedChange.emit(this._checkedValue);
25
+ this.brDidSwitchToggle.emit(this._checkedValue);
26
+ };
27
+ this.handleClick = (event) => {
28
+ event.stopPropagation();
26
29
  };
27
30
  this.inheritedAttributes = {};
28
31
  this.disabled = false;
@@ -52,7 +55,7 @@ const Switch = class {
52
55
  */
53
56
  async toggleChecked() {
54
57
  this._checkedValue = !this._checkedValue;
55
- this.brDidCheckedChange.emit(this._checkedValue);
58
+ this.brDidSwitchToggle.emit(this._checkedValue);
56
59
  }
57
60
  getCssClassMap() {
58
61
  return {
@@ -65,7 +68,7 @@ const Switch = class {
65
68
  };
66
69
  }
67
70
  render() {
68
- return (h(Host, { key: '52838e1fe630318fe34af78b47a42781646f291c' }, h("div", Object.assign({ key: 'bc2c656294f72bee0d9778791ab9a6b00cea7c9e', class: this.getCssClassMap() }, this.inheritedAttributes), h("input", { key: '8ac78e3880ce376faa5e224d0fdab9602104e9ef', id: this.customId, type: "checkbox", name: this.name, checked: this._checkedValue, disabled: this.disabled, role: "switch", "aria-checked": this._checkedValue.toString(), "aria-disabled": this.disabled ? 'true' : null, onChange: this.handleCheckedChange }), h("label", { key: '4e85a4b6d51059a4a899dc24bb7a3f181e99db25', htmlFor: this.customId }, this._slotDefault ? h("slot", null) : this.label), this.labelOn && this.labelOff && (h("div", { key: '30b401aed4ede6e5159240b8337d429d6a7f8aff', class: "switch-data", "data-enabled": this.labelOn, "data-disabled": this.labelOff })))));
71
+ return (h(Host, { key: '0c550accde86f8f6bf23d0c13a0abaeca6422123' }, h("div", Object.assign({ key: 'c63172ea2696799e3f3ae55a98598341785bfcce', class: this.getCssClassMap() }, this.inheritedAttributes), h("input", { key: 'ac86ee46e8ac44de1b9a70bd335822369eabf417', id: this.customId, type: "checkbox", name: this.name, checked: this._checkedValue, disabled: this.disabled, role: "switch", "aria-checked": this._checkedValue.toString(), "aria-disabled": this.disabled ? 'true' : null, onChange: this.handleCheckedChange, onClick: this.handleClick }), h("label", { key: '637d8dbdd7ffc4618a3b5627691c767d7a542134', htmlFor: this.customId }, this._slotDefault ? h("slot", null) : this.label), this.labelOn && this.labelOff && (h("div", { key: 'c201c7a56eee2bce5c41c79bf6df84fb493fe56a', class: "switch-data", "data-enabled": this.labelOn, "data-disabled": this.labelOff })))));
69
72
  }
70
73
  static get formAssociated() { return true; }
71
74
  get el() { return getElement(this); }
@@ -1 +1 @@
1
- {"file":"br-switch.entry.js","mappings":";;;;;;;;AAAA,MAAM,SAAS,GAAG,kldAAkld,CAAC;AACrmd,uBAAe,SAAS;;MCeX,MAAM;;;;;;;;;;;QAuFA,wBAAmB,GAAG,CAAC,KAAY;YAClD,IAAI,CAAC,aAAa,GAAI,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAA;YAC/D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SACjD,CAAA;QAsBO,wBAAmB,GAAe,EAAE,CAAA;wBApGC,KAAK;uBAMN,KAAK;wBAMY,YAAYA,EAAM,EAAE,EAAE;;6BAWhB,MAAM;;;uBAe7B,KAAK;;;uBAgBgB,QAAQ;4BAGxC,KAAK;;;IAItC,iBAAiB;QACf,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAA;QACjC,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAC1D;IAMO,sBAAsB;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE,CAAA;KAC7C;;;;IAWD,MAAM,aAAa;QACjB,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;KACjD;IAEO,cAAc;QACpB,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,GAAG,EAAE,IAAI,CAAC,aAAa,KAAK,KAAK;YACjC,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,OAAO;YACrC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAC/B,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;SAChC,CAAA;KACF;IAID,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,0EAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,IAAM,IAAI,CAAC,mBAAmB,GAC7D,8DACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,QAAQ,kBACC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,mBAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,EAC5C,QAAQ,EAAE,IAAI,CAAC,mBAAmB,GAClC,EACF,8DAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAG,IAAI,CAAC,YAAY,GAAG,eAAa,GAAG,IAAI,CAAC,KAAK,CAAS,EACtF,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAC5B,4DAAK,KAAK,EAAC,aAAa,kBAAe,IAAI,CAAC,OAAO,mBAAiB,IAAI,CAAC,QAAQ,GAAQ,CAC1F,CACG,CACD,EACR;KACF;;;;;;;;","names":["uuidv4"],"sources":["src/components/switch/switch.scss?tag=br-switch&encapsulation=shadow","src/components/switch/switch.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/switch/switch.scss\";\n\n:host {\n display: block;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, Host, Method, Prop, State, h } from '@stencil/core'\nimport { v4 as uuidv4 } from 'uuid'\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/switch?tab=designer).\n *\n * @slot default - Descreve o que o switch faz quando a alternância estiver ativada. A label passada por slot tem precedência sobre a propriedade 'label'.\n */\n@Component({\n tag: 'br-switch',\n styleUrl: 'switch.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Switch {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrSwitchElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o switch, tornando-o não interativo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true }) checked: boolean = false\n\n /**\n * Identificador único do switch.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, attribute: 'id' }) customId: string = `br-input-${uuidv4()}`\n\n /**\n * Texto descritivo.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop() label: string\n\n /**\n * Posição do rótulo em relação ao switch.\n */\n @Prop({ reflect: true }) labelPosition: 'right' | 'left' | 'top' = 'left'\n\n /**\n * Texto exibido quando o switch está ativado.\n */\n @Prop({ reflect: true }) labelOn: string\n\n /**\n * Texto exibido quando o switch está desativado.\n */\n @Prop({ reflect: true }) labelOff: string\n\n /**\n * Adiciona um ícone ao switch para indicar a mudança de estado.\n */\n @Prop({ reflect: true }) hasIcon: boolean = false\n\n /**\n * Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) name: string\n\n /**\n * Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o switch está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) value: string\n\n /** O ajuste da densidade consiste em aumentar ou reduzir a área de interação do switch. Quanto menor for a densidade, maior a área de interação. */\n @Prop({ reflect: true }) density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() _slotDefault: boolean = false\n\n @State() _checkedValue: boolean\n\n componentWillLoad() {\n this._hasSlotContentDefault()\n this._checkedValue = this.checked\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() brDidCheckedChange: EventEmitter<boolean>\n private _hasSlotContentDefault(): any {\n this._slotDefault = this.el.innerHTML !== ''\n }\n\n private readonly handleCheckedChange = (event: Event) => {\n this._checkedValue = (event.target as HTMLInputElement).checked\n this.brDidCheckedChange.emit(this._checkedValue)\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this._checkedValue = !this._checkedValue\n this.brDidCheckedChange.emit(this._checkedValue)\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-switch': true,\n icon: this.hasIcon,\n top: this.labelPosition === 'top',\n right: this.labelPosition === 'right',\n large: this.density === 'large',\n small: this.density === 'small',\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()} {...this.inheritedAttributes}>\n <input\n id={this.customId}\n type=\"checkbox\"\n name={this.name}\n checked={this._checkedValue}\n disabled={this.disabled}\n role=\"switch\"\n aria-checked={this._checkedValue.toString()}\n aria-disabled={this.disabled ? 'true' : null}\n onChange={this.handleCheckedChange}\n />\n <label htmlFor={this.customId}>{this._slotDefault ? <slot></slot> : this.label}</label>\n {this.labelOn && this.labelOff && (\n <div class=\"switch-data\" data-enabled={this.labelOn} data-disabled={this.labelOff}></div>\n )}\n </div>\n </Host>\n )\n }\n}\n"],"version":3}
1
+ {"file":"br-switch.entry.js","mappings":";;;;;;;;AAAA,MAAM,SAAS,GAAG,gtdAAgtd,CAAC;AACnud,uBAAe,SAAS;;MCeX,MAAM;;;;;;;;;;;QAuFA,wBAAmB,GAAG,CAAC,KAAY;YAClD,IAAI,CAAC,aAAa,GAAI,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAA;YAC/D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SAChD,CAAA;QAEgB,gBAAW,GAAG,CAAC,KAAY;YAC1C,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB,CAAA;QAsBO,wBAAmB,GAAe,EAAE,CAAA;wBAxGC,KAAK;uBAMN,KAAK;wBAMY,YAAYA,EAAM,EAAE,EAAE;;6BAWhB,MAAM;;;uBAe7B,KAAK;;;uBAgBgB,QAAQ;4BAGxC,KAAK;;;IAItC,iBAAiB;QACf,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAA;QACjC,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAC1D;IAMO,sBAAsB;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE,CAAA;KAC7C;;;;IAeD,MAAM,aAAa;QACjB,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAA;QACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;KAChD;IAEO,cAAc;QACpB,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,GAAG,EAAE,IAAI,CAAC,aAAa,KAAK,KAAK;YACjC,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,OAAO;YACrC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAC/B,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;SAChC,CAAA;KACF;IAID,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,0EAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,IAAM,IAAI,CAAC,mBAAmB,GAC7D,8DACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,QAAQ,kBACC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,mBAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,EAC5C,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAClC,OAAO,EAAE,IAAI,CAAC,WAAW,GACzB,EACF,8DAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAG,IAAI,CAAC,YAAY,GAAG,eAAa,GAAG,IAAI,CAAC,KAAK,CAAS,EACtF,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAC5B,4DAAK,KAAK,EAAC,aAAa,kBAAe,IAAI,CAAC,OAAO,mBAAiB,IAAI,CAAC,QAAQ,GAAQ,CAC1F,CACG,CACD,EACR;KACF;;;;;;;;","names":["uuidv4"],"sources":["src/components/switch/switch.scss?tag=br-switch&encapsulation=shadow","src/components/switch/switch.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/switch/switch.scss\";\n\n:host {\n display: block;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, Host, Method, Prop, State, h } from '@stencil/core'\nimport { v4 as uuidv4 } from 'uuid'\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/switch?tab=designer).\n *\n * @slot default - Descreve o que o switch faz quando a alternância estiver ativada. A label passada por slot tem precedência sobre a propriedade 'label'.\n */\n@Component({\n tag: 'br-switch',\n styleUrl: 'switch.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Switch {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrSwitchElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o switch, tornando-o não interativo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true }) checked: boolean = false\n\n /**\n * Identificador único do switch.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, attribute: 'id' }) customId: string = `br-input-${uuidv4()}`\n\n /**\n * Texto descritivo.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop() label: string\n\n /**\n * Posição do rótulo em relação ao switch.\n */\n @Prop({ reflect: true }) labelPosition: 'right' | 'left' | 'top' = 'left'\n\n /**\n * Texto exibido quando o switch está ativado.\n */\n @Prop({ reflect: true }) labelOn: string\n\n /**\n * Texto exibido quando o switch está desativado.\n */\n @Prop({ reflect: true }) labelOff: string\n\n /**\n * Adiciona um ícone ao switch para indicar a mudança de estado.\n */\n @Prop({ reflect: true }) hasIcon: boolean = false\n\n /**\n * Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) name: string\n\n /**\n * Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o switch está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) value: string\n\n /** O ajuste da densidade consiste em aumentar ou reduzir a área de interação do switch. Quanto menor for a densidade, maior a área de interação. */\n @Prop({ reflect: true }) density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() _slotDefault: boolean = false\n\n @State() _checkedValue: boolean\n\n componentWillLoad() {\n this._hasSlotContentDefault()\n this._checkedValue = this.checked\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() brDidSwitchToggle: EventEmitter<boolean>\n private _hasSlotContentDefault(): any {\n this._slotDefault = this.el.innerHTML !== ''\n }\n\n private readonly handleCheckedChange = (event: Event) => {\n this._checkedValue = (event.target as HTMLInputElement).checked\n this.brDidSwitchToggle.emit(this._checkedValue)\n }\n\n private readonly handleClick = (event: Event) => {\n event.stopPropagation();\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this._checkedValue = !this._checkedValue\n this.brDidSwitchToggle.emit(this._checkedValue)\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-switch': true,\n icon: this.hasIcon,\n top: this.labelPosition === 'top',\n right: this.labelPosition === 'right',\n large: this.density === 'large',\n small: this.density === 'small',\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()} {...this.inheritedAttributes}>\n <input\n id={this.customId}\n type=\"checkbox\"\n name={this.name}\n checked={this._checkedValue}\n disabled={this.disabled}\n role=\"switch\"\n aria-checked={this._checkedValue.toString()}\n aria-disabled={this.disabled ? 'true' : null}\n onChange={this.handleCheckedChange}\n onClick={this.handleClick}\n />\n <label htmlFor={this.customId}>{this._slotDefault ? <slot></slot> : this.label}</label>\n {this.labelOn && this.labelOff && (\n <div class=\"switch-data\" data-enabled={this.labelOn} data-disabled={this.labelOff}></div>\n )}\n </div>\n </Host>\n )\n }\n}\n"],"version":3}