@govbr-ds/webcomponents 2.0.0-next.2 → 2.0.0-next.21

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 (382) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +193 -97
  3. package/dist/cjs/app-globals-77a217c6.js +11 -0
  4. package/dist/cjs/app-globals-77a217c6.js.map +1 -0
  5. package/dist/cjs/br-avatar.cjs.entry.js +77 -0
  6. package/dist/cjs/br-avatar.cjs.entry.js.map +1 -0
  7. package/dist/cjs/br-button_2.cjs.entry.js +2491 -0
  8. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -0
  9. package/dist/cjs/br-checkbox_4.cjs.entry.js +346 -0
  10. package/dist/cjs/br-checkbox_4.cjs.entry.js.map +1 -0
  11. package/dist/cjs/br-dropdown.cjs.entry.js +100 -0
  12. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -0
  13. package/dist/cjs/br-item.cjs.entry.js +146 -0
  14. package/dist/cjs/br-item.cjs.entry.js.map +1 -0
  15. package/dist/cjs/br-loading.cjs.entry.js +43 -0
  16. package/dist/cjs/br-loading.cjs.entry.js.map +1 -0
  17. package/dist/cjs/br-message.cjs.entry.js +68 -0
  18. package/dist/cjs/br-message.cjs.entry.js.map +1 -0
  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 +81 -0
  22. package/dist/cjs/br-switch.cjs.entry.js.map +1 -0
  23. package/dist/cjs/br-tag.cjs.entry.js +88 -0
  24. package/dist/cjs/br-tag.cjs.entry.js.map +1 -0
  25. package/dist/cjs/br-textarea.cjs.entry.js +102 -0
  26. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -0
  27. package/dist/cjs/br-upload.cjs.entry.js +168 -0
  28. package/dist/cjs/br-upload.cjs.entry.js.map +1 -0
  29. package/dist/cjs/index-86e7422e.js +1856 -0
  30. package/dist/cjs/index-86e7422e.js.map +1 -0
  31. package/dist/cjs/index.cjs.js +8 -0
  32. package/dist/cjs/index.cjs.js.map +1 -0
  33. package/dist/cjs/inherited-attributes-16f7d388.js +107 -0
  34. package/dist/cjs/inherited-attributes-16f7d388.js.map +1 -0
  35. package/dist/cjs/loader.cjs.js +21 -0
  36. package/dist/cjs/loader.cjs.js.map +1 -0
  37. package/dist/cjs/v4-2a0fe526.js +74 -0
  38. package/dist/cjs/v4-2a0fe526.js.map +1 -0
  39. package/dist/cjs/webcomponents.cjs.js +52 -0
  40. package/dist/cjs/webcomponents.cjs.js.map +1 -0
  41. package/dist/collection/collection-manifest.json +27 -0
  42. package/dist/collection/components/avatar/avatar.css +540 -0
  43. package/dist/collection/components/avatar/avatar.js +222 -0
  44. package/dist/collection/components/avatar/avatar.js.map +1 -0
  45. package/dist/collection/components/button/button.css +802 -0
  46. package/dist/collection/components/button/button.js +236 -0
  47. package/dist/collection/components/button/button.js.map +1 -0
  48. package/dist/collection/components/checkbox/checkbox.css +597 -0
  49. package/dist/collection/components/checkbox/checkbox.js +279 -0
  50. package/dist/collection/components/checkbox/checkbox.js.map +1 -0
  51. package/dist/collection/components/dropdown/dropdown.css +467 -0
  52. package/dist/collection/components/dropdown/dropdown.js +185 -0
  53. package/dist/collection/components/dropdown/dropdown.js.map +1 -0
  54. package/dist/collection/components/icon/icon.css +452 -0
  55. package/dist/collection/components/icon/icon.js +176 -0
  56. package/dist/collection/components/icon/icon.js.map +1 -0
  57. package/dist/collection/components/input/input.css +673 -0
  58. package/dist/collection/components/input/input.js +580 -0
  59. package/dist/collection/components/input/input.js.map +1 -0
  60. package/dist/collection/components/item/item.css +662 -0
  61. package/dist/collection/components/item/item.js +376 -0
  62. package/dist/collection/components/item/item.js.map +1 -0
  63. package/dist/collection/components/list/list.css +564 -0
  64. package/dist/collection/components/list/list.js +138 -0
  65. package/dist/collection/components/list/list.js.map +1 -0
  66. package/dist/collection/components/loading/loading.css +653 -0
  67. package/dist/collection/components/loading/loading.js +119 -0
  68. package/dist/collection/components/loading/loading.js.map +1 -0
  69. package/dist/collection/components/message/message.css +600 -0
  70. package/dist/collection/components/message/message.js +211 -0
  71. package/dist/collection/components/message/message.js.map +1 -0
  72. package/dist/collection/components/radio/radio.css +552 -0
  73. package/dist/collection/components/radio/radio.js +247 -0
  74. package/dist/collection/components/radio/radio.js.map +1 -0
  75. package/dist/collection/components/select/select.css +857 -0
  76. package/dist/collection/components/select/select.js +491 -0
  77. package/dist/collection/components/select/select.js.map +1 -0
  78. package/dist/collection/components/switch/switch.css +623 -0
  79. package/dist/collection/components/switch/switch.js +320 -0
  80. package/dist/collection/components/switch/switch.js.map +1 -0
  81. package/dist/collection/components/tag/tag.css +645 -0
  82. package/dist/collection/components/tag/tag.js +256 -0
  83. package/dist/collection/components/tag/tag.js.map +1 -0
  84. package/dist/collection/components/textarea/textarea.css +518 -0
  85. package/dist/collection/components/textarea/textarea.js +298 -0
  86. package/dist/collection/components/textarea/textarea.js.map +1 -0
  87. package/dist/collection/components/upload/upload.css +562 -0
  88. package/dist/collection/components/upload/upload.js +469 -0
  89. package/dist/collection/components/upload/upload.js.map +1 -0
  90. package/dist/collection/index.js +2 -0
  91. package/dist/collection/index.js.map +1 -0
  92. package/dist/collection/pages/components/button/index.js +18 -0
  93. package/dist/collection/pages/components/checkbox/index.js +18 -0
  94. package/dist/collection/pages/components/dropdown/index.js +18 -0
  95. package/dist/collection/pages/components/icon/index.js +18 -0
  96. package/dist/collection/pages/components/input/index.js +27 -0
  97. package/dist/collection/pages/components/item/index.js +18 -0
  98. package/dist/collection/pages/components/list/index.js +19 -0
  99. package/dist/collection/pages/components/message/index.js +18 -0
  100. package/dist/collection/pages/components/radio/index.js +18 -0
  101. package/dist/collection/pages/components/select/index.js +18 -0
  102. package/dist/collection/pages/components/switch/index.js +18 -0
  103. package/dist/collection/pages/components/tag/index.js +18 -0
  104. package/dist/collection/pages/components/textarea/index.js +19 -0
  105. package/dist/collection/pages/components/upload/index.js +19 -0
  106. package/dist/collection/pages/scripts/menu.js +226 -0
  107. package/dist/collection/pages/scripts/pageLoader.js +180 -0
  108. package/dist/collection/scripts/menu.js +151 -0
  109. package/dist/collection/utils/inherited-attributes.js +102 -0
  110. package/dist/collection/utils/inherited-attributes.js.map +1 -0
  111. package/dist/collection/utils/interfaces.js +2 -0
  112. package/dist/collection/utils/interfaces.js.map +1 -0
  113. package/dist/collection/utils/unique-id-generator.js +13 -0
  114. package/dist/collection/utils/unique-id-generator.js.map +1 -0
  115. package/dist/components/br-avatar.d.ts +11 -0
  116. package/dist/components/br-avatar.js +6 -0
  117. package/dist/components/br-avatar.js.map +1 -0
  118. package/dist/components/br-button.d.ts +11 -0
  119. package/dist/components/br-button.js +6 -0
  120. package/dist/components/br-button.js.map +1 -0
  121. package/dist/components/br-checkbox.d.ts +11 -0
  122. package/dist/components/br-checkbox.js +6 -0
  123. package/dist/components/br-checkbox.js.map +1 -0
  124. package/dist/components/br-dropdown.d.ts +11 -0
  125. package/dist/components/br-dropdown.js +6 -0
  126. package/dist/components/br-dropdown.js.map +1 -0
  127. package/dist/components/br-icon.d.ts +11 -0
  128. package/dist/components/br-icon.js +6 -0
  129. package/dist/components/br-icon.js.map +1 -0
  130. package/dist/components/br-input.d.ts +11 -0
  131. package/dist/components/br-input.js +6 -0
  132. package/dist/components/br-input.js.map +1 -0
  133. package/dist/components/br-item.d.ts +11 -0
  134. package/dist/components/br-item.js +6 -0
  135. package/dist/components/br-item.js.map +1 -0
  136. package/dist/components/br-list.d.ts +11 -0
  137. package/dist/components/br-list.js +6 -0
  138. package/dist/components/br-list.js.map +1 -0
  139. package/dist/components/br-loading.d.ts +11 -0
  140. package/dist/components/br-loading.js +6 -0
  141. package/dist/components/br-loading.js.map +1 -0
  142. package/dist/components/br-message.d.ts +11 -0
  143. package/dist/components/br-message.js +6 -0
  144. package/dist/components/br-message.js.map +1 -0
  145. package/dist/components/br-radio.d.ts +11 -0
  146. package/dist/components/br-radio.js +6 -0
  147. package/dist/components/br-radio.js.map +1 -0
  148. package/dist/components/br-select.d.ts +11 -0
  149. package/dist/components/br-select.js +6 -0
  150. package/dist/components/br-select.js.map +1 -0
  151. package/dist/components/br-switch.d.ts +11 -0
  152. package/dist/components/br-switch.js +6 -0
  153. package/dist/components/br-switch.js.map +1 -0
  154. package/dist/components/br-tag.d.ts +11 -0
  155. package/dist/components/br-tag.js +6 -0
  156. package/dist/components/br-tag.js.map +1 -0
  157. package/dist/components/br-textarea.d.ts +11 -0
  158. package/dist/components/br-textarea.js +6 -0
  159. package/dist/components/br-textarea.js.map +1 -0
  160. package/dist/components/br-upload.d.ts +11 -0
  161. package/dist/components/br-upload.js +6 -0
  162. package/dist/components/br-upload.js.map +1 -0
  163. package/dist/components/index.d.ts +33 -0
  164. package/dist/components/index.js +6 -0
  165. package/dist/components/index.js.map +1 -0
  166. package/dist/components/p-22068d3c.js +6 -0
  167. package/dist/components/p-22068d3c.js.map +1 -0
  168. package/dist/components/p-62776355.js +6 -0
  169. package/dist/components/p-62776355.js.map +1 -0
  170. package/dist/components/p-67617725.js +6 -0
  171. package/dist/components/p-67617725.js.map +1 -0
  172. package/dist/components/p-74a4eb38.js +6 -0
  173. package/dist/components/p-74a4eb38.js.map +1 -0
  174. package/dist/components/p-7882cb21.js +6 -0
  175. package/dist/components/p-7882cb21.js.map +1 -0
  176. package/dist/components/p-7aca304a.js +6 -0
  177. package/dist/components/p-7aca304a.js.map +1 -0
  178. package/dist/components/p-b4b55ab7.js +17 -0
  179. package/dist/components/p-b4b55ab7.js.map +1 -0
  180. package/dist/components/p-d5a8d30c.js +6 -0
  181. package/dist/components/p-d5a8d30c.js.map +1 -0
  182. package/dist/components/p-fabd9bdd.js +7 -0
  183. package/dist/components/p-fabd9bdd.js.map +1 -0
  184. package/dist/esm/app-globals-72548b13.js +9 -0
  185. package/dist/esm/app-globals-72548b13.js.map +1 -0
  186. package/dist/esm/br-avatar.entry.js +73 -0
  187. package/dist/esm/br-avatar.entry.js.map +1 -0
  188. package/dist/esm/br-button_2.entry.js +2486 -0
  189. package/dist/esm/br-button_2.entry.js.map +1 -0
  190. package/dist/esm/br-checkbox_4.entry.js +339 -0
  191. package/dist/esm/br-checkbox_4.entry.js.map +1 -0
  192. package/dist/esm/br-dropdown.entry.js +96 -0
  193. package/dist/esm/br-dropdown.entry.js.map +1 -0
  194. package/dist/esm/br-item.entry.js +142 -0
  195. package/dist/esm/br-item.entry.js.map +1 -0
  196. package/dist/esm/br-loading.entry.js +39 -0
  197. package/dist/esm/br-loading.entry.js.map +1 -0
  198. package/dist/esm/br-message.entry.js +64 -0
  199. package/dist/esm/br-message.entry.js.map +1 -0
  200. package/dist/esm/br-select.entry.js +277 -0
  201. package/dist/esm/br-select.entry.js.map +1 -0
  202. package/dist/esm/br-switch.entry.js +77 -0
  203. package/dist/esm/br-switch.entry.js.map +1 -0
  204. package/dist/esm/br-tag.entry.js +84 -0
  205. package/dist/esm/br-tag.entry.js.map +1 -0
  206. package/dist/esm/br-textarea.entry.js +98 -0
  207. package/dist/esm/br-textarea.entry.js.map +1 -0
  208. package/dist/esm/br-upload.entry.js +164 -0
  209. package/dist/esm/br-upload.entry.js.map +1 -0
  210. package/dist/esm/index-14721f44.js +1826 -0
  211. package/dist/esm/index-14721f44.js.map +1 -0
  212. package/dist/esm/index.js +6 -0
  213. package/dist/esm/index.js.map +1 -0
  214. package/dist/esm/inherited-attributes-553a7c36.js +105 -0
  215. package/dist/esm/inherited-attributes-553a7c36.js.map +1 -0
  216. package/dist/esm/loader.js +17 -0
  217. package/dist/esm/loader.js.map +1 -0
  218. package/dist/esm/polyfills/core-js.js +11 -0
  219. package/dist/esm/polyfills/dom.js +79 -0
  220. package/dist/esm/polyfills/es5-html-element.js +1 -0
  221. package/dist/esm/polyfills/index.js +34 -0
  222. package/dist/esm/polyfills/system.js +6 -0
  223. package/dist/esm/v4-c99c1585.js +72 -0
  224. package/dist/esm/v4-c99c1585.js.map +1 -0
  225. package/dist/esm/webcomponents.js +47 -0
  226. package/dist/esm/webcomponents.js.map +1 -0
  227. package/dist/esm-es5/app-globals-72548b13.js +6 -0
  228. package/dist/esm-es5/app-globals-72548b13.js.map +1 -0
  229. package/dist/esm-es5/br-avatar.entry.js +6 -0
  230. package/dist/esm-es5/br-avatar.entry.js.map +1 -0
  231. package/dist/esm-es5/br-button_2.entry.js +17 -0
  232. package/dist/esm-es5/br-button_2.entry.js.map +1 -0
  233. package/dist/esm-es5/br-checkbox_4.entry.js +6 -0
  234. package/dist/esm-es5/br-checkbox_4.entry.js.map +1 -0
  235. package/dist/esm-es5/br-dropdown.entry.js +6 -0
  236. package/dist/esm-es5/br-dropdown.entry.js.map +1 -0
  237. package/dist/esm-es5/br-item.entry.js +6 -0
  238. package/dist/esm-es5/br-item.entry.js.map +1 -0
  239. package/dist/esm-es5/br-loading.entry.js +6 -0
  240. package/dist/esm-es5/br-loading.entry.js.map +1 -0
  241. package/dist/esm-es5/br-message.entry.js +6 -0
  242. package/dist/esm-es5/br-message.entry.js.map +1 -0
  243. package/dist/esm-es5/br-select.entry.js +6 -0
  244. package/dist/esm-es5/br-select.entry.js.map +1 -0
  245. package/dist/esm-es5/br-switch.entry.js +6 -0
  246. package/dist/esm-es5/br-switch.entry.js.map +1 -0
  247. package/dist/esm-es5/br-tag.entry.js +6 -0
  248. package/dist/esm-es5/br-tag.entry.js.map +1 -0
  249. package/dist/esm-es5/br-textarea.entry.js +6 -0
  250. package/dist/esm-es5/br-textarea.entry.js.map +1 -0
  251. package/dist/esm-es5/br-upload.entry.js +6 -0
  252. package/dist/esm-es5/br-upload.entry.js.map +1 -0
  253. package/dist/esm-es5/index-14721f44.js +6 -0
  254. package/dist/esm-es5/index-14721f44.js.map +1 -0
  255. package/dist/esm-es5/index.js +5 -0
  256. package/dist/esm-es5/index.js.map +1 -0
  257. package/dist/esm-es5/inherited-attributes-553a7c36.js +6 -0
  258. package/dist/esm-es5/inherited-attributes-553a7c36.js.map +1 -0
  259. package/dist/esm-es5/loader.js +6 -0
  260. package/dist/esm-es5/loader.js.map +1 -0
  261. package/dist/esm-es5/v4-c99c1585.js +6 -0
  262. package/dist/esm-es5/v4-c99c1585.js.map +1 -0
  263. package/dist/esm-es5/webcomponents.js +6 -0
  264. package/dist/esm-es5/webcomponents.js.map +1 -0
  265. package/dist/index.cjs.js +1 -0
  266. package/dist/index.js +1 -0
  267. package/dist/playwright.config.js +39 -0
  268. package/dist/playwright.config.js.map +1 -0
  269. package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/packages/webcomponents/.stencil/playwright.config.d.ts +5 -0
  270. package/dist/types/components/avatar/avatar.d.ts +60 -0
  271. package/dist/types/components/button/button.d.ts +64 -0
  272. package/dist/types/components/checkbox/checkbox.d.ts +78 -0
  273. package/dist/types/components/dropdown/dropdown.d.ts +64 -0
  274. package/dist/types/components/icon/icon.d.ts +58 -0
  275. package/dist/types/components/input/input.d.ts +151 -0
  276. package/dist/types/components/item/item.d.ts +96 -0
  277. package/dist/types/components/list/list.d.ts +34 -0
  278. package/dist/types/components/loading/loading.d.ts +34 -0
  279. package/dist/types/components/message/message.d.ts +62 -0
  280. package/dist/types/components/radio/radio.d.ts +75 -0
  281. package/dist/types/components/select/select.d.ts +98 -0
  282. package/dist/types/components/switch/switch.d.ts +78 -0
  283. package/dist/types/components/tag/tag.d.ts +73 -0
  284. package/dist/types/components/textarea/textarea.d.ts +66 -0
  285. package/dist/types/components/upload/upload.d.ts +160 -0
  286. package/dist/types/components.d.ts +1790 -0
  287. package/dist/types/index.d.ts +10 -0
  288. package/dist/types/stencil-public-runtime.d.ts +1680 -0
  289. package/dist/types/utils/inherited-attributes.d.ts +20 -0
  290. package/dist/types/utils/interfaces.d.ts +3 -0
  291. package/dist/types/utils/unique-id-generator.d.ts +1 -0
  292. package/dist/webcomponents/index.esm.js +6 -0
  293. package/dist/webcomponents/index.esm.js.map +1 -0
  294. package/dist/webcomponents/p-11e8c72f.entry.js +6 -0
  295. package/dist/webcomponents/p-11e8c72f.entry.js.map +1 -0
  296. package/dist/webcomponents/p-1accc2ab.system.entry.js +6 -0
  297. package/dist/webcomponents/p-1accc2ab.system.entry.js.map +1 -0
  298. package/dist/webcomponents/p-254a2b7c.js +6 -0
  299. package/dist/webcomponents/p-254a2b7c.js.map +1 -0
  300. package/dist/webcomponents/p-36e48582.system.entry.js +6 -0
  301. package/dist/webcomponents/p-36e48582.system.entry.js.map +1 -0
  302. package/dist/webcomponents/p-37440256.entry.js +6 -0
  303. package/dist/webcomponents/p-37440256.entry.js.map +1 -0
  304. package/dist/webcomponents/p-44554246.system.entry.js +6 -0
  305. package/dist/webcomponents/p-44554246.system.entry.js.map +1 -0
  306. package/dist/webcomponents/p-55f80a96.system.entry.js +6 -0
  307. package/dist/webcomponents/p-55f80a96.system.entry.js.map +1 -0
  308. package/dist/webcomponents/p-563bea26.entry.js +6 -0
  309. package/dist/webcomponents/p-563bea26.entry.js.map +1 -0
  310. package/dist/webcomponents/p-58d37ac2.entry.js +6 -0
  311. package/dist/webcomponents/p-58d37ac2.entry.js.map +1 -0
  312. package/dist/webcomponents/p-64f4ecea.system.entry.js +6 -0
  313. package/dist/webcomponents/p-64f4ecea.system.entry.js.map +1 -0
  314. package/dist/webcomponents/p-6e286eba.system.js +6 -0
  315. package/dist/webcomponents/p-6e286eba.system.js.map +1 -0
  316. package/dist/webcomponents/p-703a633a.system.js +6 -0
  317. package/dist/webcomponents/p-703a633a.system.js.map +1 -0
  318. package/dist/webcomponents/p-74a4eb38.js +6 -0
  319. package/dist/webcomponents/p-74a4eb38.js.map +1 -0
  320. package/dist/webcomponents/p-76326737.system.entry.js +6 -0
  321. package/dist/webcomponents/p-76326737.system.entry.js.map +1 -0
  322. package/dist/webcomponents/p-797376a2.system.entry.js +17 -0
  323. package/dist/webcomponents/p-797376a2.system.entry.js.map +1 -0
  324. package/dist/webcomponents/p-7f8c5016.entry.js +6 -0
  325. package/dist/webcomponents/p-7f8c5016.entry.js.map +1 -0
  326. package/dist/webcomponents/p-90e2e623.system.js +6 -0
  327. package/dist/webcomponents/p-90e2e623.system.js.map +1 -0
  328. package/dist/webcomponents/p-a44ad074.entry.js +6 -0
  329. package/dist/webcomponents/p-a44ad074.entry.js.map +1 -0
  330. package/dist/webcomponents/p-a71689a5.system.js +6 -0
  331. package/dist/webcomponents/p-a71689a5.system.js.map +1 -0
  332. package/dist/webcomponents/p-aaa17439.entry.js +6 -0
  333. package/dist/webcomponents/p-aaa17439.entry.js.map +1 -0
  334. package/dist/webcomponents/p-aaca726d.system.js +7 -0
  335. package/dist/webcomponents/p-aaca726d.system.js.map +1 -0
  336. package/dist/webcomponents/p-aec894fa.system.entry.js +6 -0
  337. package/dist/webcomponents/p-aec894fa.system.entry.js.map +1 -0
  338. package/dist/webcomponents/p-b16b1de5.entry.js +6 -0
  339. package/dist/webcomponents/p-b16b1de5.entry.js.map +1 -0
  340. package/dist/webcomponents/p-b6af61ad.entry.js +6 -0
  341. package/dist/webcomponents/p-b6af61ad.entry.js.map +1 -0
  342. package/dist/webcomponents/p-c696c385.entry.js +17 -0
  343. package/dist/webcomponents/p-c696c385.entry.js.map +1 -0
  344. package/dist/webcomponents/p-d1e0a8ff.entry.js +6 -0
  345. package/dist/webcomponents/p-d1e0a8ff.entry.js.map +1 -0
  346. package/dist/webcomponents/p-d31732da.system.entry.js +6 -0
  347. package/dist/webcomponents/p-d31732da.system.entry.js.map +1 -0
  348. package/dist/webcomponents/p-d5a8d30c.js +6 -0
  349. package/dist/webcomponents/p-d5a8d30c.js.map +1 -0
  350. package/dist/webcomponents/p-db4b272c.system.entry.js +6 -0
  351. package/dist/webcomponents/p-db4b272c.system.entry.js.map +1 -0
  352. package/dist/webcomponents/p-dbd35139.js +7 -0
  353. package/dist/webcomponents/p-dbd35139.js.map +1 -0
  354. package/dist/webcomponents/p-e751c991.system.js +6 -0
  355. package/dist/webcomponents/p-e751c991.system.js.map +1 -0
  356. package/dist/webcomponents/p-e76f7113.system.entry.js +6 -0
  357. package/dist/webcomponents/p-e76f7113.system.entry.js.map +1 -0
  358. package/dist/webcomponents/p-f05d11f7.entry.js +6 -0
  359. package/dist/webcomponents/p-f05d11f7.entry.js.map +1 -0
  360. package/dist/webcomponents/p-f5412db6.system.entry.js +6 -0
  361. package/dist/webcomponents/p-f5412db6.system.entry.js.map +1 -0
  362. package/dist/webcomponents/webcomponents.esm.js +6 -0
  363. package/dist/webcomponents/webcomponents.esm.js.map +1 -0
  364. package/dist/webcomponents/webcomponents.js +127 -0
  365. package/hydrate/index.d.ts +242 -0
  366. package/hydrate/index.js +22414 -0
  367. package/hydrate/index.mjs +22406 -0
  368. package/hydrate/package.json +12 -0
  369. package/loader/cdn.js +6 -0
  370. package/loader/index.cjs.js +6 -0
  371. package/loader/index.d.ts +24 -0
  372. package/loader/index.es2017.js +6 -0
  373. package/loader/index.js +7 -0
  374. package/loader/package.json +11 -0
  375. package/package.json +54 -89
  376. package/vscode-data.json +960 -0
  377. package/dist/webcomponents.common.js +0 -23958
  378. package/dist/webcomponents.common.js.map +0 -1
  379. package/dist/webcomponents.umd.js +0 -23969
  380. package/dist/webcomponents.umd.js.map +0 -1
  381. package/dist/webcomponents.umd.min.js +0 -8
  382. package/dist/webcomponents.umd.min.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"file":"br-tag.entry.js","mappings":"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","names":[],"sources":["src/components/tag/tag.scss?tag=br-tag&encapsulation=shadow","src/components/tag/tag.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/tag/tag.scss\";\n\n:host {\n display: block;\n\n .tag-position {\n display: flex;\n justify-content: space-around;\n align-items: center;\n }\n .tag-spacing-status {\n margin-left: var(--spacing-scale-half) !important;\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\n\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/tag?tab=designer).\n *\n * @slot default - Slot utilizado para inserir conteúdo adicional na tag, como texto ou elementos HTML extras.\n */\n@Component({\n tag: 'br-tag',\n styleUrl: 'tag.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Tag {\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: HTMLBrTagElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * A propriedade 'label' é uma string que representa o texto a ser exibido no componente.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * A propriedade 'iconName' define o nome do ícone que será exibido ao lado do texto.\n * O valor padrão é 'fa-solid:car', que corresponde a um ícone de carro da biblioteca Font Awesome.\n */\n @Prop({ reflect: true }) iconName: string = ''\n\n /**\n * A propriedade 'color' permite definir a cor do componente.\n * Aceita valores como 'red', 'blue', entre outros, e é refletida no DOM.\n */\n @Prop({ reflect: true }) color: string = ''\n\n /**\n * A propriedade 'density' permite definir a densidade do componente.\n * Aceita valores como 'small', 'medium' e 'large', e é refletida no DOM.\n */\n @Prop({ reflect: true }) density: 'small' | 'medium' | 'large' = 'small'\n\n /**\n * A propriedade 'shape' define o formato do componente.\n * Valores possíveis:\n * - 'circle': Componente com formato circular.\n * - 'rounded': Componente com bordas arredondadas.\n * - 'default': Componente com formato padrão.\n */\n @Prop({ reflect: true }) shape: 'circle' | 'rounded' | 'default' = 'default'\n\n /**\n * A propriedade 'status' é um booleano que indica se o status deve ser exibido.\n * Se definido como true, o status será mostrado ao lado do texto.\n */\n @Prop({ reflect: true }) status: boolean = false\n\n /**\n * A propriedade 'interaction' é um booleano que indica se a interação deve ser habilitada.\n * Se definido como true, o componente permitirá interações do usuário.\n */\n @Prop({ reflect: true }) interaction: boolean = false\n\n /**\n * A propriedade 'disabled' é um booleano que indica se o componente deve estar desabilitado.\n * Se definido como true, o componente não permitirá interações do usuário.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n @State() stateIconName: string = 'fa-solid:car'\n\n /**\n * Emite um evento antes que o componente seja carregado pela primeira vez.\n * Utilize este evento para realizar tarefas de inicialização antes do componente ser exibido.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentwillload) para mais detalhes.\n */\n @Event() brWillLoad: EventEmitter<void>\n componentWillLoad() {\n this.brWillLoad.emit()\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n private getCssClassMap(): CssClassMap {\n const classes: CssClassMap = {\n 'br-tag': true,\n interaction: this.interaction,\n [this.color]: this.color !== '',\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n count: this.shape === 'rounded' ? true : false,\n icon: this.shape === 'circle' ? true : false,\n status: this.status,\n }\n\n return classes\n }\n\n private inheritedAttributes: Attributes = {}\n\n private renderIcon() {\n if (this.iconName.trim().length === 0) return null\n return <br-icon style={{ fontSize: 'var(--icon-size-base)' }} icon-name={this.iconName} aria-hidden=\"true\" />\n }\n\n private renderLabel() {\n if (this.shape === 'circle' || this.status) return null\n return (\n <span id=\"interactivetag1\" aria-label={this.label}>\n {this.label}\n </span>\n )\n }\n\n private renderCloseButton() {\n if (!this.interaction) return null\n return (\n <br-button\n type=\"button\"\n shape=\"circle\"\n emphasis={!this.interaction ? 'tertiary' : 'primary'}\n aria-label=\"Fechar\"\n colorMode={!this.interaction ? 'dark' : null}\n aria-describedby=\"interactivetag1\"\n onClick={this.handleClose}\n disabled={this.disabled}\n >\n <br-icon icon-name=\"fa-solid:times\"></br-icon>\n </br-button>\n )\n }\n\n private renderStatusLabel() {\n if (!this.status) return null\n return (\n <span class=\"tag-spacing-status\" id=\"interactivetag1\" aria-label={this.label}>\n {this.label}\n </span>\n )\n }\n\n private handleClose = () => {\n this.el.remove()\n }\n\n render() {\n return (\n <Host>\n <div class=\"tag-position\">\n <span class={this.getCssClassMap()} {...this.inheritedAttributes} role=\"alert\" aria-live=\"assertive\">\n {this.renderIcon()}\n {this.renderLabel()}\n {this.renderCloseButton()}\n <slot></slot>\n </span>\n {this.renderStatusLabel()}\n </div>\n </Host>\n )\n }\n}\n"],"version":3}
@@ -0,0 +1,98 @@
1
+ /*!
2
+ * Construído com @govbr-ds/webcomponents
3
+ * Padrão Digital de Governo.
4
+ */
5
+ import { r as registerInstance, h, a as Host, g as getElement } from './index-14721f44.js';
6
+ import { i as inheritAriaAttributes } from './inherited-attributes-553a7c36.js';
7
+ import { v as v4 } from './v4-c99c1585.js';
8
+
9
+ const textareaCss = "*,*::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}.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-textarea{--textarea-padding:var(--textarea-medium);--textarea-small:var(--spacing-scale-base);--textarea-medium:var(--spacing-scale-baseh);--textarea-large:var(--spacing-scale-2x);color:var(--color)}.br-textarea label{display:inline-block;margin-bottom:var(--spacing-scale-half)}.br-textarea textarea{background:var(--background-light);border:1px solid var(--border-color-alternative);border-radius:6px;color:var(--color);display:block;font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);padding:var(--textarea-padding);width:100%}.br-textarea.small textarea{--textarea-padding:var(--textarea-small)}.br-textarea.medium textarea{--textarea-padding:var(--textarea-medium)}.br-textarea.large textarea{--textarea-padding:var(--textarea-large)}.br-textarea.success textarea{border-color:var(--success);border-width:2px}.br-textarea.danger textarea{border-color:var(--danger);border-width:2px}.br-textarea.warning textarea{border-color:var(--warning);border-width:2px}.br-textarea.info textarea{border-color:var(--info);border-width:2px}.br-textarea textarea:focus,.br-textarea textarea:focus-visible{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-textarea textarea:hover: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-textarea.dark-mode,.br-textarea.dark-mode label{--color:var(--color-dark);--focus-color:var(--focus-color-dark)}.br-textarea.dark-mode textarea{color:var(--color-light)}:host{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Rawline, Raleway, sans-serif}";
10
+ const BrTextareaStyle0 = textareaCss;
11
+
12
+ const Textarea = class {
13
+ constructor(hostRef) {
14
+ registerInstance(this, hostRef);
15
+ if (hostRef.$hostElement$["s-ei"]) {
16
+ this.elementInternals = hostRef.$hostElement$["s-ei"];
17
+ }
18
+ else {
19
+ this.elementInternals = hostRef.$hostElement$.attachInternals();
20
+ hostRef.$hostElement$["s-ei"] = this.elementInternals;
21
+ }
22
+ /**
23
+ * Manipula a mudança de valor do textarea. Atualiza o valor e emite um evento de mudança.
24
+ * @param event - O evento de entrada do textarea.
25
+ */
26
+ this.handleChange = (event) => {
27
+ var _a;
28
+ const textarea = event.target;
29
+ this.value = textarea.value;
30
+ this.currentLength = (_a = this.value) === null || _a === void 0 ? void 0 : _a.length;
31
+ this.emitValueChange();
32
+ };
33
+ this.inheritedAttributes = {};
34
+ this.value = undefined;
35
+ this.label = undefined;
36
+ this.placeholder = undefined;
37
+ this.disabled = false;
38
+ this.maxlength = 0;
39
+ this.state = undefined;
40
+ this.density = 'medium';
41
+ this.isInline = false;
42
+ this.currentLength = undefined;
43
+ this.customId = `br-textarea-${v4()}`;
44
+ }
45
+ componentWillLoad() {
46
+ var _a;
47
+ this.currentLength = (_a = this.value) === null || _a === void 0 ? void 0 : _a.length;
48
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
49
+ }
50
+ valueChanged() {
51
+ var _a;
52
+ this.currentLength = (_a = this.value) === null || _a === void 0 ? void 0 : _a.length;
53
+ }
54
+ /**
55
+ * Define um novo valor para o textarea.
56
+ * @param newValue - O novo valor a ser definido.
57
+ */
58
+ async setValue(newValue) {
59
+ var _a;
60
+ this.value = newValue;
61
+ this.currentLength = (_a = this.value) === null || _a === void 0 ? void 0 : _a.length;
62
+ this.emitValueChange();
63
+ }
64
+ emitValueChange() {
65
+ const changeEvent = new CustomEvent('valueChange', {
66
+ detail: { value: this.value },
67
+ bubbles: true,
68
+ composed: true,
69
+ });
70
+ this.el.dispatchEvent(changeEvent);
71
+ }
72
+ getCssClassMap() {
73
+ return {
74
+ 'br-textarea': true,
75
+ small: this.density === 'small',
76
+ medium: this.density === 'medium',
77
+ large: this.density === 'large',
78
+ success: this.state === 'success',
79
+ danger: this.state === 'danger',
80
+ warning: this.state === 'warning',
81
+ };
82
+ }
83
+ render() {
84
+ const caracteresRestantes = this.maxlength - this.currentLength;
85
+ const mostrarLimite = this.currentLength > 0;
86
+ return (h(Host, { key: '175b5dfe33b9624b32700683a6939aa36f56c556' }, h("div", Object.assign({ key: '554c285ab7f21c8bed90e4280f45709c7abb5ecc', class: this.getCssClassMap() }, this.inheritedAttributes), h("div", { key: 'ef72baa9ce047ec87fa40b9410ba96e7797f1dc6', class: this.isInline ? 'row' : '' }, this.isInline ? (h("div", { class: "col-auto pt-half" }, h("label", { htmlFor: this.customId }, this.label))) : (h("label", { htmlFor: this.customId }, this.label)), h("div", { key: '5a8c6c414089d046d05d1c4d60d833c81898b612', class: this.isInline ? 'col' : '' }, h("textarea", Object.assign({ key: '74e7ba7ea95c3fd184e9152a061e252eed9fc40a', id: this.customId, value: this.value, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleChange }, (this.maxlength > 0 ? { maxLength: this.maxlength } : {}))), h("div", { key: '3a13875598faa7a2eb05a9d67f3fdbd692a22291', class: "text-base mt-1" }, this.maxlength > 0 && (h("div", { key: 'b39abedd24e3727ce85b531eb7c8e9ea58268954' }, mostrarLimite ? (h("span", { class: "restantes", "aria-live": "polite", role: "status", id: "limitmax" }, "Restam ", h("strong", null, caracteresRestantes), " caracteres")) : (h("span", { class: "limit", "aria-live": "polite" }, "Limite m\u00E1ximo de ", h("strong", null, this.maxlength), " caracteres"))))), h("slot", { key: '9965aeddd085909184d974c5829ee21e0651e390' }))))));
87
+ }
88
+ static get formAssociated() { return true; }
89
+ get el() { return getElement(this); }
90
+ static get watchers() { return {
91
+ "value": ["valueChanged"]
92
+ }; }
93
+ };
94
+ Textarea.style = BrTextareaStyle0;
95
+
96
+ export { Textarea as br_textarea };
97
+
98
+ //# sourceMappingURL=br-textarea.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"br-textarea.entry.js","mappings":"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","names":["uuidv4"],"sources":["src/components/textarea/textarea.scss?tag=br-textarea&encapsulation=shadow","src/components/textarea/textarea.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/textarea/textarea.scss\";\n:host {\n display: block;\n box-sizing: border-box;\n font-family: Rawline, Raleway, sans-serif;\n}\n","import { AttachInternals, Component, Element, h, Host, Method, Prop, State, Watch } from '@stencil/core'\n\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/textarea?tab=designer).\n *\n * @slot default - Espaço de conteúdo do textarea. Geralmente usado para incluir texto adicional ou instruções para o usuário.\n */\n@Component({\n tag: 'br-textarea',\n styleUrl: 'textarea.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Textarea {\n @Element() el: HTMLBrTextareaElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Valor atual do textarea. Este valor pode ser alterado programaticamente.\n */\n @Prop({ mutable: true, reflect: true }) value: string\n\n /**\n * Texto do rótulo associado ao textarea. Este rótulo é exibido acima do campo de entrada.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Texto exibido quando o textarea está vazio. Ajuda a guiar o usuário sobre o que deve ser inserido.\n */\n @Prop({ reflect: true }) placeholder: string\n\n /**\n * Indica se o textarea está desabilitado. Quando verdadeiro, o usuário não pode interagir com o campo.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Número máximo de caracteres permitidos no textarea. Se definido como 0, não há limite.\n */\n @Prop({ reflect: true }) maxlength: number = 0\n\n /**\n * Define o estado visual do componente, podendo ser 'danger', 'success' ou 'warning'.\n */\n @Prop({ reflect: true }) state: 'danger' | 'success' | 'warning'\n /**\n * Ajusta a densidade do componente, podendo ser 'small', 'medium' ou 'large'.\n */\n @Prop({ reflect: true }) density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) isInline: boolean = false\n\n /**\n * Comprimento atual do texto no textarea. É atualizado sempre que o valor do textarea muda.\n */\n @State() currentLength: number\n\n /**\n * Identificador único do textarea.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true, attribute: 'id' }) customId: string = `br-textarea-${uuidv4()}`\n\n componentWillLoad() {\n this.currentLength = this.value?.length\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n @Watch('value')\n valueChanged() {\n this.currentLength = this.value?.length\n }\n\n /**\n * Manipula a mudança de valor do textarea. Atualiza o valor e emite um evento de mudança.\n * @param event - O evento de entrada do textarea.\n */\n private readonly handleChange = (event: Event) => {\n const textarea = event.target as HTMLTextAreaElement\n this.value = textarea.value\n this.currentLength = this.value?.length\n this.emitValueChange()\n }\n\n /**\n * Define um novo valor para o textarea.\n * @param newValue - O novo valor a ser definido.\n */\n @Method()\n async setValue(newValue: string) {\n this.value = newValue\n this.currentLength = this.value?.length\n this.emitValueChange()\n }\n\n private emitValueChange() {\n const changeEvent = new CustomEvent('valueChange', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n this.el.dispatchEvent(changeEvent)\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-textarea': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n success: this.state === 'success',\n danger: this.state === 'danger',\n warning: this.state === 'warning',\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n render() {\n const caracteresRestantes: number = this.maxlength - this.currentLength\n const mostrarLimite = this.currentLength > 0\n\n return (\n <Host>\n <div class={this.getCssClassMap()} {...this.inheritedAttributes}>\n <div class={this.isInline ? 'row' : ''}>\n {this.isInline ? (\n <div class=\"col-auto pt-half\">\n <label htmlFor={this.customId}>{this.label}</label>\n </div>\n ) : (\n <label htmlFor={this.customId}>{this.label}</label>\n )}\n <div class={this.isInline ? 'col' : ''}>\n <textarea\n id={this.customId}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n onInput={this.handleChange}\n {...(this.maxlength > 0 ? { maxLength: this.maxlength } : {})}\n ></textarea>\n <div class=\"text-base mt-1\">\n {this.maxlength > 0 && (\n <div>\n {mostrarLimite ? (\n <span class=\"restantes\" aria-live=\"polite\" role=\"status\" id=\"limitmax\">\n Restam <strong>{caracteresRestantes}</strong> caracteres\n </span>\n ) : (\n <span class=\"limit\" aria-live=\"polite\">\n Limite máximo de <strong>{this.maxlength}</strong> caracteres\n </span>\n )}\n </div>\n )}\n </div>\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"version":3}
@@ -0,0 +1,164 @@
1
+ /*!
2
+ * Construído com @govbr-ds/webcomponents
3
+ * Padrão Digital de Governo.
4
+ */
5
+ import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-14721f44.js';
6
+ import { i as inheritAriaAttributes } from './inherited-attributes-553a7c36.js';
7
+
8
+ const uploadCss = "*,*::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}.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-upload input{display:none}.br-upload .upload-button{--button-radius:100em;--button-xsmall:24px;--button-small:32px;--button-medium:40px;--button-large:48px;--button-size:var(--button-medium);-ms-flex-align:center;align-items:center;background-color:transparent;border:0;border-radius:var(--button-radius);color:var(--interactive);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);height:var(--button-size);-ms-flex-pack:center;justify-content:center;overflow:hidden;padding:0 var(--spacing-scale-3x);position:relative;text-align:center;vertical-align:middle;white-space:nowrap;width:auto;border:var(--surface-width-sm) dashed var(--interactive);border-radius:var(--surface-rounder-sm);display:block;font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);margin-top:var(--spacing-scale-half);max-width:550px;min-height:var(--button-size);padding-left:var(--spacing-scale-2x);padding-right:var(--spacing-scale-2x);text-align:left;width:100%}.br-upload .upload-list{max-width:550px;position:relative}.br-upload .upload-list .content{-ms-flex-item-align:center;align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:70%}.br-upload .upload-list .support{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.br-upload .upload-button:disabled{cursor:not-allowed}.br-upload .upload-button:not(:disabled){--focus-offset:var(--spacing-scale-half)}.br-upload .upload-button:not(:disabled):focus{outline:none}.br-upload .upload-button:not(:disabled):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-upload .upload-button:not(:disabled):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)))}.br-upload .upload-button:not(:disabled):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)))}.br-upload .upload-button.active,.br-upload .upload-button.is-active,.br-upload .upload-button[active]{--hover:var(--hover-dark);background-color:var(--active);color:var(--color-dark)}.br-upload .upload-button.loading{color:transparent !important;cursor:progress}.br-upload .upload-button.loading:not(:disabled):hover{background-image:none}.br-upload .upload-button.loading::before{border-color:var(--interactive) var(--interactive) transparent;border-style:solid}.br-upload .upload-button.loading.primary::before,.br-upload .upload-button.loading.danger::before,.br-upload .upload-button.loading.success::before,.br-upload .upload-button.loading.info::before{border-color:var(--background) var(--background) transparent}.br-upload.success .upload-button{border-color:var(--success)}.br-upload.danger .upload-button{border-color:var(--danger)}.br-upload.warning .upload-button{border-color:var(--warning)}.br-upload.info .upload-button{border-color:var(--info)}:host{display:block}";
9
+ const BrUploadStyle0 = uploadCss;
10
+
11
+ var UploadState;
12
+ (function (UploadState) {
13
+ UploadState["INFO"] = "info";
14
+ UploadState["WARNING"] = "warning";
15
+ UploadState["DANGER"] = "danger";
16
+ UploadState["SUCCESS"] = "success";
17
+ })(UploadState || (UploadState = {}));
18
+ const Upload = class {
19
+ constructor(hostRef) {
20
+ registerInstance(this, hostRef);
21
+ this.brConnectedCallback = createEvent(this, "brConnectedCallback", 7);
22
+ this.brWillLoad = createEvent(this, "brWillLoad", 7);
23
+ this.brDidLoad = createEvent(this, "brDidLoad", 7);
24
+ this.brWillRender = createEvent(this, "brWillRender", 7);
25
+ this.brDidRender = createEvent(this, "brDidRender", 7);
26
+ this.brShouldUpdate = createEvent(this, "brShouldUpdate", 7);
27
+ this.brWillUpdate = createEvent(this, "brWillUpdate", 7);
28
+ this.brDidUpdate = createEvent(this, "brDidUpdate", 7);
29
+ this.brDidDisconnect = createEvent(this, "brDidDisconnect", 7);
30
+ this.brFormAssociatedCallback = createEvent(this, "brFormAssociatedCallback", 7);
31
+ this.brFormDisabledCallback = createEvent(this, "brFormDisabledCallback", 7);
32
+ this.brFormResetCallback = createEvent(this, "brFormResetCallback", 7);
33
+ this.brFormStateRestoreCallback = createEvent(this, "brFormStateRestoreCallback", 7);
34
+ if (hostRef.$hostElement$["s-ei"]) {
35
+ this.elementInternals = hostRef.$hostElement$["s-ei"];
36
+ }
37
+ else {
38
+ this.elementInternals = hostRef.$hostElement$.attachInternals();
39
+ hostRef.$hostElement$["s-ei"] = this.elementInternals;
40
+ }
41
+ this.inheritedAttributes = {};
42
+ this.accept = '';
43
+ this.label = 'Envio de arquivo';
44
+ this.filesSelected = null;
45
+ this.file = null;
46
+ this.disabled = false;
47
+ this.state = UploadState.INFO;
48
+ this.multiple = false;
49
+ }
50
+ connectedCallback() {
51
+ this.brConnectedCallback.emit();
52
+ }
53
+ componentWillLoad() {
54
+ this.brWillLoad.emit();
55
+ this.inheritedAttributes = inheritAriaAttributes(this.el);
56
+ }
57
+ componentDidLoad() {
58
+ this.brDidLoad.emit();
59
+ }
60
+ componentWillRender() {
61
+ this.brWillRender.emit();
62
+ }
63
+ componentDidRender() {
64
+ this.brDidRender.emit();
65
+ }
66
+ componentShouldUpdate() {
67
+ this.brShouldUpdate.emit();
68
+ }
69
+ componentWillUpdate() {
70
+ this.brWillUpdate.emit();
71
+ }
72
+ componentDidUpdate() {
73
+ this.brDidUpdate.emit();
74
+ }
75
+ disconnectedCallback() {
76
+ this.brDidDisconnect.emit();
77
+ }
78
+ formAssociatedCallback(form) {
79
+ this.brFormAssociatedCallback.emit(form);
80
+ }
81
+ formDisabledCallback(disabled) {
82
+ this.brFormDisabledCallback.emit(disabled);
83
+ }
84
+ formResetCallback() {
85
+ this.brFormResetCallback.emit();
86
+ }
87
+ formStateRestoreCallback(state, _mode) {
88
+ this.brFormStateRestoreCallback.emit([state, _mode]);
89
+ }
90
+ getCssClassMap() {
91
+ return {
92
+ 'br-upload': true,
93
+ [this.state]: true,
94
+ };
95
+ }
96
+ handleRemoveFileSelection(file) {
97
+ const newArrayFilter = Array.from(this.filesSelected).filter((f) => f !== file);
98
+ this.filesSelected = newArrayFilter;
99
+ const fileInput = this.el.shadowRoot.getElementById('single-file');
100
+ fileInput.value = '';
101
+ }
102
+ renderFilesUploaded() {
103
+ const fileSizes = this._calculateFileSize(this.filesSelected);
104
+ return fileSizes.map(({ file, size }) => {
105
+ return (h("div", { class: "br-item d-flex", key: file.name }, h("div", { class: "content text-primary-default mr-auto" }, file.name), h("div", { class: "support mr-n2" }, h("span", { class: "" }, size), h("br-button", { shape: "circle", type: "button", "aria-label": "Remover arquivo", onClick: () => this.handleRemoveFileSelection(file) }, h("br-icon", { "icon-name": "fa-solid:trash", "aria-hidden": "true" })))));
106
+ });
107
+ }
108
+ onInputChange(files) {
109
+ if (files.length === 1) {
110
+ this.filesSelected = files;
111
+ }
112
+ else if (files.length > 0) {
113
+ this.filesSelected = files;
114
+ }
115
+ else {
116
+ console.error(files.length === 0 ? 'NENHUM ARQUIVO ENVIADO' : 'VOCÊ SÓ PODE ENVIAR UM ARQUIVO POR VEZ');
117
+ return false;
118
+ }
119
+ }
120
+ _calculateFileSize(files) {
121
+ return Array.from(files).map((file) => {
122
+ let sOutput = '';
123
+ const aMultiples = ['KB', 'MB', 'GB', 'TB'];
124
+ let nMultiple = 0;
125
+ let nApprox = file.size / 1024;
126
+ if (nApprox < 1) {
127
+ sOutput = `${file.size} bytes`;
128
+ }
129
+ else {
130
+ while (nApprox > 1 && nMultiple < aMultiples.length) {
131
+ sOutput = `${nApprox.toFixed(2)} ${aMultiples[nMultiple]}`;
132
+ nApprox /= 1024;
133
+ nMultiple++;
134
+ }
135
+ }
136
+ return { file: file, size: sOutput || 0 };
137
+ });
138
+ }
139
+ handleDrop(event) {
140
+ var _a;
141
+ event.preventDefault();
142
+ const files = (_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.files;
143
+ if (files && files.length > 0) {
144
+ this.onInputChange(files);
145
+ }
146
+ }
147
+ handleDragOver(event) {
148
+ event.preventDefault();
149
+ }
150
+ handleFileSelection() {
151
+ const fileInput = this.el.shadowRoot.getElementById('single-file');
152
+ fileInput.click();
153
+ }
154
+ render() {
155
+ return (h(Host, { key: 'a791d0b083331fce5cb265ff087300725b0a2d93' }, h("div", { key: '82802a9e8cb8ee63b5f32338da7cb40e412969df', class: this.getCssClassMap() }, h("label", { key: '15e2c8f4c8ccc6d73b39965e63e1751f9ed0fd26', class: "upload-label", form: "single-file" }, h("span", { key: '96ef5ca084c0ff022775f11815802e03912720a2' }, this.label)), h("button", { key: '06981a95907f351d9b544befb61e1d8a3a71ba4f', class: "upload-button", type: "button", "aria-hidden": "true", tabIndex: this.disabled ? -1 : 0, disabled: this.disabled, "aria-label": "Selecionar arquivo para upload", onClick: () => this.handleFileSelection(), onDrop: (event) => this.handleDrop(event), onDragOver: (event) => this.handleDragOver(event) }, h("br-icon", { key: '045ca524186a43bc78622e02f7f32e6503a86877', "icon-name": "fa-solid:upload", height: "16", "aria-hidden": "true" }), h("span", { key: 'c5f5c7bae2f8da1ac82f29677934a1089a3ed40f' }, "Selecione o arquivo")), h("input", Object.assign({ key: '79833d6a3a8ee1e4b3a3fd30477f08a772e1f6ea', class: "upload-input", id: "single-file", type: "file", "aria-hidden": "null", "aria-label": "enviar arquivo", onChange: ($event) => this.onInputChange($event.target.files) }, this.inheritedAttributes, { multiple: this.multiple, disabled: this.disabled, accept: this.accept })), h("div", { key: 'b8933f12f329d310c3b8d520433ebb965907d6f5', id: "list-files", class: "upload-list" }, this.filesSelected ? this.renderFilesUploaded() : null))));
156
+ }
157
+ static get formAssociated() { return true; }
158
+ get el() { return getElement(this); }
159
+ };
160
+ Upload.style = BrUploadStyle0;
161
+
162
+ export { Upload as br_upload };
163
+
164
+ //# sourceMappingURL=br-upload.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"br-upload.entry.js","mappings":"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","names":[],"sources":["src/components/upload/upload.scss?tag=br-upload&encapsulation=shadow","src/components/upload/upload.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/upload/upload.scss\";\n\n:host {\n display: block;\n}\n","// Start of Selection\nimport { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\n\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\nenum UploadState {\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger',\n SUCCESS = 'success',\n}\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/upload?tab=designer).\n *\n * @slot default - Descrição do slot\n */\n@Component({\n tag: 'br-upload',\n styleUrl: 'upload.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Upload {\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!: HTMLBrUploadElement\n\n /**\n * Tipos de arquivo permitidos (ex: 'image/*').\n * Esta propriedade define quais tipos de arquivos podem ser selecionados para upload.\n */\n @Prop() accept: string = ''\n\n /**\n * **[OBRIGATÓRIO]** Texto descritivo do campo de upload.\n * Este é o texto que é mostrado no label do textarea.\n */\n @Prop() label: string = 'Envio de arquivo'\n\n /**\n * Evento emitido quando um arquivo é selecionado.\n * Este estado armazena os arquivos que foram selecionados pelo usuário.\n */\n @State() filesSelected: FileList | null = null\n\n /**\n * Referência ao elemento de arquivo selecionado.\n * Este estado armazena o arquivo que foi selecionado para upload.\n */\n @State() file: File | null = null\n\n /**\n * Indica se o componente está desativado.\n * Quando definido como `true`, o campo de upload se torna não interativo,\n * impedindo que o usuário selecione ou envie arquivos.\n * Isso é útil para controlar a interação do usuário em situações específicas,\n * como durante o carregamento de dados ou quando o formulário está em um estado inválido.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * **[OBRIGATÓRIO]** Define o estado visual da mensagem.\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) state: string = UploadState.INFO\n\n /**\n * Indica se o componente permite a seleção de múltiplos arquivos.\n * Quando definido como `true`, o usuário pode selecionar mais de um arquivo para upload.\n */\n @Prop() multiple: boolean = false\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Emite um evento quando o componente é conectado ao DOM.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#connectedcallback) para mais detalhes.\n */\n @Event() brConnectedCallback: EventEmitter<void>\n connectedCallback() {\n this.brConnectedCallback.emit()\n }\n\n /**\n * Emite um evento antes que o componente seja carregado pela primeira vez.\n * Utilize este evento para realizar tarefas de inicialização antes do componente ser exibido.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentwillload) para mais detalhes.\n */\n @Event() brWillLoad: EventEmitter<void>\n componentWillLoad() {\n this.brWillLoad.emit()\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidLoad: EventEmitter<void>\n componentDidLoad() {\n this.brDidLoad.emit()\n }\n\n /**\n * Emite um evento antes do componente ser renderizado.\n * Utilize este evento para preparar o componente antes de sua renderização.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentwillrender) para mais detalhes.\n */\n @Event() brWillRender: EventEmitter<void>\n componentWillRender() {\n this.brWillRender.emit()\n }\n\n /**\n * Emite um evento após o componente ter sido renderizado.\n * Utilize este evento para executar ações que devem ocorrer após a renderização do componente.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidrender) para mais detalhes.\n */\n @Event() brDidRender: EventEmitter<void>\n componentDidRender() {\n this.brDidRender.emit()\n }\n\n /**\n * Emite um evento para indicar se o componente deve ser atualizado ou não.\n * Este evento é chamado antes de qualquer atualização do componente para decidir se a atualização deve prosseguir.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentshouldupdate) para mais detalhes.\n */\n @Event() brShouldUpdate: EventEmitter<void>\n componentShouldUpdate() {\n this.brShouldUpdate.emit()\n }\n\n /**\n * Emite um evento antes de o componente ser atualizado.\n * Utilize este evento para realizar ações preparatórias antes da atualização do componente.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentwillupdate) para mais detalhes.\n */\n @Event() brWillUpdate: EventEmitter<void>\n componentWillUpdate() {\n this.brWillUpdate.emit()\n }\n\n /**\n * Emite um evento após o componente ter sido atualizado.\n * Utilize este evento para realizar ações após a atualização do componente.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidupdate) para mais detalhes.\n */\n @Event() brDidUpdate: EventEmitter<void>\n componentDidUpdate() {\n this.brDidUpdate.emit()\n }\n\n /**\n * Emite um evento quando o componente é desconectado do DOM.\n * Utilize este evento para realizar a limpeza ou outras ações necessárias quando o componente é removido.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#disconnectedcallback) para mais detalhes.\n */\n @Event() brDidDisconnect: EventEmitter<void>\n disconnectedCallback() {\n this.brDidDisconnect.emit()\n }\n\n /**\n * Emite um evento quando o componente é associado ou removido de um `<form>`.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/form-associated#formassociatedcallback) para mais detalhes.\n *\n * @param form - Dados do formulário associado.\n */\n @Event() brFormAssociatedCallback: EventEmitter<FormData>\n formAssociatedCallback(form: FormData) {\n this.brFormAssociatedCallback.emit(form)\n }\n\n /**\n * Emite um evento quando o estado `disabled` do componente muda dentro de um `<form>`.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/form-associated#formdisabledcallback) para mais informações.\n *\n * @param disabled - Novo estado `disabled` do componente dentro do formulário.\n */\n @Event() brFormDisabledCallback: EventEmitter<boolean>\n formDisabledCallback(disabled: boolean) {\n this.brFormDisabledCallback.emit(disabled)\n }\n\n /**\n * Emite um evento quando um `<form>` é resetado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/form-associated#formresetcallback) para mais detalhes.\n */\n @Event() brFormResetCallback: EventEmitter<void>\n formResetCallback() {\n this.brFormResetCallback.emit()\n }\n\n /**\n * Emite um evento quando o navegador preenche automaticamente os campos de um `<form>`.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/form-associated#formstaterestorecallback) para mais informações.\n *\n * @param state - Estado restaurado do formulário.\n * @param _mode - Modo de preenchimento automático do navegador.\n */\n @Event() brFormStateRestoreCallback: EventEmitter<[state: string, _mode: string]>\n formStateRestoreCallback(state: string, _mode: string) {\n this.brFormStateRestoreCallback.emit([state, _mode])\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-upload': true,\n [this.state]: true,\n }\n }\n\n private inheritedAttributes: Attributes = {}\n\n private handleRemoveFileSelection(file: File) {\n const newArrayFilter = Array.from(this.filesSelected).filter((f) => f !== file)\n this.filesSelected = newArrayFilter as unknown as FileList\n const fileInput = this.el.shadowRoot.getElementById('single-file') as HTMLInputElement\n fileInput.value = ''\n }\n\n private renderFilesUploaded() {\n const fileSizes = this._calculateFileSize(this.filesSelected)\n\n return fileSizes.map(({ file, size }) => {\n return (\n <div class=\"br-item d-flex\" key={file.name}>\n <div class=\"content text-primary-default mr-auto\">{file.name}</div>\n <div class=\"support mr-n2\">\n <span class=\"\">{size}</span>\n <br-button\n shape=\"circle\"\n type=\"button\"\n aria-label=\"Remover arquivo\"\n onClick={() => this.handleRemoveFileSelection(file)}\n >\n <br-icon icon-name=\"fa-solid:trash\" aria-hidden=\"true\"></br-icon>\n </br-button>\n </div>\n </div>\n )\n })\n }\n\n private onInputChange(files: FileList) {\n if (files.length === 1) {\n this.filesSelected = files\n } else if (files.length > 0) {\n this.filesSelected = files\n } else {\n console.error(files.length === 0 ? 'NENHUM ARQUIVO ENVIADO' : 'VOCÊ SÓ PODE ENVIAR UM ARQUIVO POR VEZ')\n\n return false\n }\n }\n\n private _calculateFileSize(files: FileList) {\n return Array.from(files).map((file) => {\n let sOutput = ''\n const aMultiples = ['KB', 'MB', 'GB', 'TB']\n let nMultiple = 0\n let nApprox = file.size / 1024\n\n if (nApprox < 1) {\n sOutput = `${file.size} bytes`\n } else {\n while (nApprox > 1 && nMultiple < aMultiples.length) {\n sOutput = `${nApprox.toFixed(2)} ${aMultiples[nMultiple]}`\n nApprox /= 1024\n nMultiple++\n }\n }\n\n return { file: file, size: sOutput || 0 }\n })\n }\n\n private handleDrop(event: DragEvent) {\n event.preventDefault()\n const files = event.dataTransfer?.files\n if (files && files.length > 0) {\n this.onInputChange(files)\n }\n }\n\n private handleDragOver(event: DragEvent) {\n event.preventDefault()\n }\n\n private handleFileSelection() {\n const fileInput = this.el.shadowRoot.getElementById('single-file') as HTMLInputElement\n fileInput.click()\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <label class=\"upload-label\" form=\"single-file\">\n <span>{this.label}</span>\n </label>\n <button\n class=\"upload-button\"\n type=\"button\"\n aria-hidden=\"true\"\n tabIndex={this.disabled ? -1 : 0}\n disabled={this.disabled}\n aria-label=\"Selecionar arquivo para upload\"\n onClick={() => this.handleFileSelection()}\n onDrop={(event) => this.handleDrop(event)}\n onDragOver={(event) => this.handleDragOver(event)}\n >\n <br-icon icon-name=\"fa-solid:upload\" height=\"16\" aria-hidden=\"true\"></br-icon>\n <span>Selecione o arquivo</span>\n </button>\n\n <input\n class=\"upload-input\"\n id=\"single-file\"\n type=\"file\"\n aria-hidden=\"null\"\n aria-label=\"enviar arquivo\"\n onChange={($event: any) => this.onInputChange($event.target.files)}\n {...this.inheritedAttributes}\n multiple={this.multiple}\n disabled={this.disabled}\n accept={this.accept}\n />\n <div id=\"list-files\" class=\"upload-list\">\n {this.filesSelected ? this.renderFilesUploaded() : null}\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"version":3}