@plenustech/design-system 0.2.1 → 0.2.3

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 (802) hide show
  1. package/dist/components/actions/Button/Button.cjs +2 -0
  2. package/dist/components/actions/Button/Button.cjs.map +1 -0
  3. package/dist/components/actions/Button/Button.js +47 -0
  4. package/dist/components/actions/Button/Button.js.map +1 -0
  5. package/dist/components/actions/Button/Button.module.css.cjs +2 -0
  6. package/dist/components/actions/Button/Button.module.css.cjs.map +1 -0
  7. package/dist/components/actions/Button/Button.module.css.js +24 -0
  8. package/dist/components/actions/Button/Button.module.css.js.map +1 -0
  9. package/dist/components/actions/ButtonIcon/ButtonIcon.cjs +2 -0
  10. package/dist/components/actions/ButtonIcon/ButtonIcon.cjs.map +1 -0
  11. package/dist/components/actions/ButtonIcon/ButtonIcon.js +21 -0
  12. package/dist/components/actions/ButtonIcon/ButtonIcon.js.map +1 -0
  13. package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.cjs +2 -0
  14. package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.cjs.map +1 -0
  15. package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.js +14 -0
  16. package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.js.map +1 -0
  17. package/dist/components/actions/ButtonTile/ButtonTile.cjs +2 -0
  18. package/dist/components/actions/ButtonTile/ButtonTile.cjs.map +1 -0
  19. package/dist/components/actions/ButtonTile/ButtonTile.js +23 -0
  20. package/dist/components/actions/ButtonTile/ButtonTile.js.map +1 -0
  21. package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs +2 -0
  22. package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs.map +1 -0
  23. package/dist/components/actions/ButtonTile/ButtonTile.module.css.js +16 -0
  24. package/dist/components/actions/ButtonTile/ButtonTile.module.css.js.map +1 -0
  25. package/dist/components/actions/Toolbar/Toolbar.cjs +2 -0
  26. package/dist/components/actions/Toolbar/Toolbar.cjs.map +1 -0
  27. package/dist/components/actions/Toolbar/Toolbar.js +118 -0
  28. package/dist/components/actions/Toolbar/Toolbar.js.map +1 -0
  29. package/dist/components/actions/Toolbar/Toolbar.module.css.cjs +2 -0
  30. package/dist/components/actions/Toolbar/Toolbar.module.css.cjs.map +1 -0
  31. package/dist/components/actions/Toolbar/Toolbar.module.css.js +20 -0
  32. package/dist/components/actions/Toolbar/Toolbar.module.css.js.map +1 -0
  33. package/dist/components/charts/ChartArea/ChartArea.cjs +2 -0
  34. package/dist/components/charts/ChartArea/ChartArea.cjs.map +1 -0
  35. package/dist/components/charts/ChartArea/ChartArea.js +253 -0
  36. package/dist/components/charts/ChartArea/ChartArea.js.map +1 -0
  37. package/dist/components/charts/ChartArea/ChartArea.module.css.cjs +2 -0
  38. package/dist/components/charts/ChartArea/ChartArea.module.css.cjs.map +1 -0
  39. package/dist/components/charts/ChartArea/ChartArea.module.css.js +20 -0
  40. package/dist/components/charts/ChartArea/ChartArea.module.css.js.map +1 -0
  41. package/dist/components/charts/ChartBar/ChartBar.cjs +2 -0
  42. package/dist/components/charts/ChartBar/ChartBar.cjs.map +1 -0
  43. package/dist/components/charts/ChartBar/ChartBar.js +239 -0
  44. package/dist/components/charts/ChartBar/ChartBar.js.map +1 -0
  45. package/dist/components/charts/ChartBar/ChartBar.module.css.cjs +2 -0
  46. package/dist/components/charts/ChartBar/ChartBar.module.css.cjs.map +1 -0
  47. package/dist/components/charts/ChartBar/ChartBar.module.css.js +16 -0
  48. package/dist/components/charts/ChartBar/ChartBar.module.css.js.map +1 -0
  49. package/dist/components/charts/ChartCombo/ChartCombo.cjs +2 -0
  50. package/dist/components/charts/ChartCombo/ChartCombo.cjs.map +1 -0
  51. package/dist/components/charts/ChartCombo/ChartCombo.js +273 -0
  52. package/dist/components/charts/ChartCombo/ChartCombo.js.map +1 -0
  53. package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs +2 -0
  54. package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs.map +1 -0
  55. package/dist/components/charts/ChartCombo/ChartCombo.module.css.js +22 -0
  56. package/dist/components/charts/ChartCombo/ChartCombo.module.css.js.map +1 -0
  57. package/dist/components/charts/ChartDonut/ChartDonut.cjs +2 -0
  58. package/dist/components/charts/ChartDonut/ChartDonut.cjs.map +1 -0
  59. package/dist/components/charts/ChartDonut/ChartDonut.js +118 -0
  60. package/dist/components/charts/ChartDonut/ChartDonut.js.map +1 -0
  61. package/dist/components/charts/ChartDonut/ChartDonut.module.css.cjs +2 -0
  62. package/dist/components/charts/ChartDonut/ChartDonut.module.css.cjs.map +1 -0
  63. package/dist/components/charts/ChartDonut/ChartDonut.module.css.js +14 -0
  64. package/dist/components/charts/ChartDonut/ChartDonut.module.css.js.map +1 -0
  65. package/dist/components/charts/ChartLine/ChartLine.cjs +2 -0
  66. package/dist/components/charts/ChartLine/ChartLine.cjs.map +1 -0
  67. package/dist/components/charts/ChartLine/ChartLine.js +219 -0
  68. package/dist/components/charts/ChartLine/ChartLine.js.map +1 -0
  69. package/dist/components/charts/ChartLine/ChartLine.module.css.cjs +2 -0
  70. package/dist/components/charts/ChartLine/ChartLine.module.css.cjs.map +1 -0
  71. package/dist/components/charts/ChartLine/ChartLine.module.css.js +20 -0
  72. package/dist/components/charts/ChartLine/ChartLine.module.css.js.map +1 -0
  73. package/dist/components/charts/ChartPie/ChartPie.cjs +2 -0
  74. package/dist/components/charts/ChartPie/ChartPie.cjs.map +1 -0
  75. package/dist/components/charts/ChartPie/ChartPie.js +110 -0
  76. package/dist/components/charts/ChartPie/ChartPie.js.map +1 -0
  77. package/dist/components/charts/ChartPie/ChartPie.module.css.cjs +2 -0
  78. package/dist/components/charts/ChartPie/ChartPie.module.css.cjs.map +1 -0
  79. package/dist/components/charts/ChartPie/ChartPie.module.css.js +10 -0
  80. package/dist/components/charts/ChartPie/ChartPie.module.css.js.map +1 -0
  81. package/dist/components/charts/ChartRadial/ChartRadial.cjs +2 -0
  82. package/dist/components/charts/ChartRadial/ChartRadial.cjs.map +1 -0
  83. package/dist/components/charts/ChartRadial/ChartRadial.js +138 -0
  84. package/dist/components/charts/ChartRadial/ChartRadial.js.map +1 -0
  85. package/dist/components/charts/ChartRadial/ChartRadial.module.css.cjs +2 -0
  86. package/dist/components/charts/ChartRadial/ChartRadial.module.css.cjs.map +1 -0
  87. package/dist/components/charts/ChartRadial/ChartRadial.module.css.js +16 -0
  88. package/dist/components/charts/ChartRadial/ChartRadial.module.css.js.map +1 -0
  89. package/dist/components/charts/ChartSankey/ChartSankey.cjs +2 -0
  90. package/dist/components/charts/ChartSankey/ChartSankey.cjs.map +1 -0
  91. package/dist/components/charts/ChartSankey/ChartSankey.js +232 -0
  92. package/dist/components/charts/ChartSankey/ChartSankey.js.map +1 -0
  93. package/dist/components/charts/ChartSankey/ChartSankey.module.css.cjs +2 -0
  94. package/dist/components/charts/ChartSankey/ChartSankey.module.css.cjs.map +1 -0
  95. package/dist/components/charts/ChartSankey/ChartSankey.module.css.js +22 -0
  96. package/dist/components/charts/ChartSankey/ChartSankey.module.css.js.map +1 -0
  97. package/dist/components/charts/ChartScatter/ChartScatter.cjs +2 -0
  98. package/dist/components/charts/ChartScatter/ChartScatter.cjs.map +1 -0
  99. package/dist/components/charts/ChartScatter/ChartScatter.js +169 -0
  100. package/dist/components/charts/ChartScatter/ChartScatter.js.map +1 -0
  101. package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs +2 -0
  102. package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs.map +1 -0
  103. package/dist/components/charts/ChartScatter/ChartScatter.module.css.js +14 -0
  104. package/dist/components/charts/ChartScatter/ChartScatter.module.css.js.map +1 -0
  105. package/dist/components/charts/ChartSunburst/ChartSunburst.cjs +2 -0
  106. package/dist/components/charts/ChartSunburst/ChartSunburst.cjs.map +1 -0
  107. package/dist/components/charts/ChartSunburst/ChartSunburst.js +159 -0
  108. package/dist/components/charts/ChartSunburst/ChartSunburst.js.map +1 -0
  109. package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.cjs +2 -0
  110. package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.cjs.map +1 -0
  111. package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.js +16 -0
  112. package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.js.map +1 -0
  113. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +2 -0
  114. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -0
  115. package/dist/components/charts/ChartTooltip/ChartTooltip.js +113 -0
  116. package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -0
  117. package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.cjs +2 -0
  118. package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.cjs.map +1 -0
  119. package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.js +32 -0
  120. package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.js.map +1 -0
  121. package/dist/components/charts/ChartTreemap/ChartTreemap.cjs +2 -0
  122. package/dist/components/charts/ChartTreemap/ChartTreemap.cjs.map +1 -0
  123. package/dist/components/charts/ChartTreemap/ChartTreemap.js +133 -0
  124. package/dist/components/charts/ChartTreemap/ChartTreemap.js.map +1 -0
  125. package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.cjs +2 -0
  126. package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.cjs.map +1 -0
  127. package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.js +14 -0
  128. package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.js.map +1 -0
  129. package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs +2 -0
  130. package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs.map +1 -0
  131. package/dist/components/charts/ChartWaterfall/ChartWaterfall.js +188 -0
  132. package/dist/components/charts/ChartWaterfall/ChartWaterfall.js.map +1 -0
  133. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs +2 -0
  134. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs.map +1 -0
  135. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js +14 -0
  136. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js.map +1 -0
  137. package/dist/components/charts/core/Axis.cjs +2 -0
  138. package/dist/components/charts/core/Axis.cjs.map +1 -0
  139. package/dist/components/charts/core/Axis.js +40 -0
  140. package/dist/components/charts/core/Axis.js.map +1 -0
  141. package/dist/components/charts/core/BandCursor.cjs +2 -0
  142. package/dist/components/charts/core/BandCursor.cjs.map +1 -0
  143. package/dist/components/charts/core/BandCursor.js +19 -0
  144. package/dist/components/charts/core/BandCursor.js.map +1 -0
  145. package/dist/components/charts/core/CartesianFrame.cjs +2 -0
  146. package/dist/components/charts/core/CartesianFrame.cjs.map +1 -0
  147. package/dist/components/charts/core/CartesianFrame.js +85 -0
  148. package/dist/components/charts/core/CartesianFrame.js.map +1 -0
  149. package/dist/components/charts/core/Chart.module.css.cjs +2 -0
  150. package/dist/components/charts/core/Chart.module.css.cjs.map +1 -0
  151. package/dist/components/charts/core/Chart.module.css.js +66 -0
  152. package/dist/components/charts/core/Chart.module.css.js.map +1 -0
  153. package/dist/components/charts/core/ChartFrame.cjs +2 -0
  154. package/dist/components/charts/core/ChartFrame.cjs.map +1 -0
  155. package/dist/components/charts/core/ChartFrame.js +71 -0
  156. package/dist/components/charts/core/ChartFrame.js.map +1 -0
  157. package/dist/components/charts/core/ChartLegend.cjs +2 -0
  158. package/dist/components/charts/core/ChartLegend.cjs.map +1 -0
  159. package/dist/components/charts/core/ChartLegend.js +44 -0
  160. package/dist/components/charts/core/ChartLegend.js.map +1 -0
  161. package/dist/components/charts/core/Grid.cjs +2 -0
  162. package/dist/components/charts/core/Grid.cjs.map +1 -0
  163. package/dist/components/charts/core/Grid.js +20 -0
  164. package/dist/components/charts/core/Grid.js.map +1 -0
  165. package/dist/components/charts/core/PointBands.cjs +2 -0
  166. package/dist/components/charts/core/PointBands.cjs.map +1 -0
  167. package/dist/components/charts/core/PointBands.js +41 -0
  168. package/dist/components/charts/core/PointBands.js.map +1 -0
  169. package/dist/components/charts/core/arcs.cjs +2 -0
  170. package/dist/components/charts/core/arcs.cjs.map +1 -0
  171. package/dist/components/charts/core/arcs.js +26 -0
  172. package/dist/components/charts/core/arcs.js.map +1 -0
  173. package/dist/components/charts/core/cartesianLayout.cjs +2 -0
  174. package/dist/components/charts/core/cartesianLayout.cjs.map +1 -0
  175. package/dist/components/charts/core/cartesianLayout.js +67 -0
  176. package/dist/components/charts/core/cartesianLayout.js.map +1 -0
  177. package/dist/components/charts/core/centerText.cjs +2 -0
  178. package/dist/components/charts/core/centerText.cjs.map +1 -0
  179. package/dist/components/charts/core/centerText.js +31 -0
  180. package/dist/components/charts/core/centerText.js.map +1 -0
  181. package/dist/components/charts/core/hoverPath.cjs +2 -0
  182. package/dist/components/charts/core/hoverPath.cjs.map +1 -0
  183. package/dist/components/charts/core/hoverPath.js +7 -0
  184. package/dist/components/charts/core/hoverPath.js.map +1 -0
  185. package/dist/components/charts/core/measureText.cjs +2 -0
  186. package/dist/components/charts/core/measureText.cjs.map +1 -0
  187. package/dist/components/charts/core/measureText.js +55 -0
  188. package/dist/components/charts/core/measureText.js.map +1 -0
  189. package/dist/components/charts/core/pointLabels.cjs +2 -0
  190. package/dist/components/charts/core/pointLabels.cjs.map +1 -0
  191. package/dist/components/charts/core/pointLabels.js +12 -0
  192. package/dist/components/charts/core/pointLabels.js.map +1 -0
  193. package/dist/components/charts/core/shapes.cjs +2 -0
  194. package/dist/components/charts/core/shapes.cjs.map +1 -0
  195. package/dist/components/charts/core/shapes.js +31 -0
  196. package/dist/components/charts/core/shapes.js.map +1 -0
  197. package/dist/components/charts/core/slices.cjs +2 -0
  198. package/dist/components/charts/core/slices.cjs.map +1 -0
  199. package/dist/components/charts/core/slices.js +22 -0
  200. package/dist/components/charts/core/slices.js.map +1 -0
  201. package/dist/components/charts/core/spacing.cjs +2 -0
  202. package/dist/components/charts/core/spacing.cjs.map +1 -0
  203. package/dist/components/charts/core/spacing.js +26 -0
  204. package/dist/components/charts/core/spacing.js.map +1 -0
  205. package/dist/components/charts/core/tooltips.cjs +2 -0
  206. package/dist/components/charts/core/tooltips.cjs.map +1 -0
  207. package/dist/components/charts/core/tooltips.js +48 -0
  208. package/dist/components/charts/core/tooltips.js.map +1 -0
  209. package/dist/components/charts/core/useCartesianLayout.cjs +2 -0
  210. package/dist/components/charts/core/useCartesianLayout.cjs.map +1 -0
  211. package/dist/components/charts/core/useCartesianLayout.js +38 -0
  212. package/dist/components/charts/core/useCartesianLayout.js.map +1 -0
  213. package/dist/components/charts/core/useChartMetrics.cjs +2 -0
  214. package/dist/components/charts/core/useChartMetrics.cjs.map +1 -0
  215. package/dist/components/charts/core/useChartMetrics.js +39 -0
  216. package/dist/components/charts/core/useChartMetrics.js.map +1 -0
  217. package/dist/components/charts/core/useHoveredBand.cjs +2 -0
  218. package/dist/components/charts/core/useHoveredBand.cjs.map +1 -0
  219. package/dist/components/charts/core/useHoveredBand.js +14 -0
  220. package/dist/components/charts/core/useHoveredBand.js.map +1 -0
  221. package/dist/components/charts/core/useSeriesToggle.cjs +2 -0
  222. package/dist/components/charts/core/useSeriesToggle.cjs.map +1 -0
  223. package/dist/components/charts/core/useSeriesToggle.js +29 -0
  224. package/dist/components/charts/core/useSeriesToggle.js.map +1 -0
  225. package/dist/components/charts/core/useSliceRing.cjs +2 -0
  226. package/dist/components/charts/core/useSliceRing.cjs.map +1 -0
  227. package/dist/components/charts/core/useSliceRing.js +55 -0
  228. package/dist/components/charts/core/useSliceRing.js.map +1 -0
  229. package/dist/components/charts/core/useTweenedNumbers.cjs +2 -0
  230. package/dist/components/charts/core/useTweenedNumbers.cjs.map +1 -0
  231. package/dist/components/charts/core/useTweenedNumbers.js +31 -0
  232. package/dist/components/charts/core/useTweenedNumbers.js.map +1 -0
  233. package/dist/components/charts/palette/palette.cjs +2 -0
  234. package/dist/components/charts/palette/palette.cjs.map +1 -0
  235. package/dist/components/charts/palette/palette.js +26 -0
  236. package/dist/components/charts/palette/palette.js.map +1 -0
  237. package/dist/components/charts/palette/seriesColor.cjs +2 -0
  238. package/dist/components/charts/palette/seriesColor.cjs.map +1 -0
  239. package/dist/components/charts/palette/seriesColor.js +43 -0
  240. package/dist/components/charts/palette/seriesColor.js.map +1 -0
  241. package/dist/components/charts/scales/scales.cjs +2 -0
  242. package/dist/components/charts/scales/scales.cjs.map +1 -0
  243. package/dist/components/charts/scales/scales.js +74 -0
  244. package/dist/components/charts/scales/scales.js.map +1 -0
  245. package/dist/components/data-display/Accordion/Accordion.cjs +2 -0
  246. package/dist/components/data-display/Accordion/Accordion.cjs.map +1 -0
  247. package/dist/components/data-display/Accordion/Accordion.js +101 -0
  248. package/dist/components/data-display/Accordion/Accordion.js.map +1 -0
  249. package/dist/components/data-display/Accordion/Accordion.module.css.cjs +2 -0
  250. package/dist/components/data-display/Accordion/Accordion.module.css.cjs.map +1 -0
  251. package/dist/components/data-display/Accordion/Accordion.module.css.js +26 -0
  252. package/dist/components/data-display/Accordion/Accordion.module.css.js.map +1 -0
  253. package/dist/components/data-display/Avatar/Avatar.cjs +2 -0
  254. package/dist/components/data-display/Avatar/Avatar.cjs.map +1 -0
  255. package/dist/components/data-display/Avatar/Avatar.js +20 -0
  256. package/dist/components/data-display/Avatar/Avatar.js.map +1 -0
  257. package/dist/components/data-display/Avatar/Avatar.module.css.cjs +2 -0
  258. package/dist/components/data-display/Avatar/Avatar.module.css.cjs.map +1 -0
  259. package/dist/components/data-display/Avatar/Avatar.module.css.js +14 -0
  260. package/dist/components/data-display/Avatar/Avatar.module.css.js.map +1 -0
  261. package/dist/components/data-display/Badge/Badge.cjs +2 -0
  262. package/dist/components/data-display/Badge/Badge.cjs.map +1 -0
  263. package/dist/components/data-display/Badge/Badge.js +13 -0
  264. package/dist/components/data-display/Badge/Badge.js.map +1 -0
  265. package/dist/components/data-display/Badge/Badge.module.css.cjs +2 -0
  266. package/dist/components/data-display/Badge/Badge.module.css.cjs.map +1 -0
  267. package/dist/components/data-display/Badge/Badge.module.css.js +22 -0
  268. package/dist/components/data-display/Badge/Badge.module.css.js.map +1 -0
  269. package/dist/components/data-display/Card/Card.cjs +2 -0
  270. package/dist/components/data-display/Card/Card.cjs.map +1 -0
  271. package/dist/components/data-display/Card/Card.js +51 -0
  272. package/dist/components/data-display/Card/Card.js.map +1 -0
  273. package/dist/components/data-display/Card/Card.module.css.cjs +2 -0
  274. package/dist/components/data-display/Card/Card.module.css.cjs.map +1 -0
  275. package/dist/components/data-display/Card/Card.module.css.js +26 -0
  276. package/dist/components/data-display/Card/Card.module.css.js.map +1 -0
  277. package/dist/components/data-display/CodeBlock/CodeBlock.cjs +2 -0
  278. package/dist/components/data-display/CodeBlock/CodeBlock.cjs.map +1 -0
  279. package/dist/components/data-display/CodeBlock/CodeBlock.js +65 -0
  280. package/dist/components/data-display/CodeBlock/CodeBlock.js.map +1 -0
  281. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.cjs +2 -0
  282. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.cjs.map +1 -0
  283. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.js +47 -0
  284. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.js.map +1 -0
  285. package/dist/components/data-display/CodeBlock/syntax.cjs +24 -0
  286. package/dist/components/data-display/CodeBlock/syntax.cjs.map +1 -0
  287. package/dist/components/data-display/CodeBlock/syntax.js +124 -0
  288. package/dist/components/data-display/CodeBlock/syntax.js.map +1 -0
  289. package/dist/components/data-display/List/List.cjs +2 -0
  290. package/dist/components/data-display/List/List.cjs.map +1 -0
  291. package/dist/components/data-display/List/List.js +99 -0
  292. package/dist/components/data-display/List/List.js.map +1 -0
  293. package/dist/components/data-display/List/List.module.css.cjs +2 -0
  294. package/dist/components/data-display/List/List.module.css.cjs.map +1 -0
  295. package/dist/components/data-display/List/List.module.css.js +32 -0
  296. package/dist/components/data-display/List/List.module.css.js.map +1 -0
  297. package/dist/components/data-display/List/ListingOptions.cjs +2 -0
  298. package/dist/components/data-display/List/ListingOptions.cjs.map +1 -0
  299. package/dist/components/data-display/List/ListingOptions.js +115 -0
  300. package/dist/components/data-display/List/ListingOptions.js.map +1 -0
  301. package/dist/components/data-display/List/useListing.cjs +2 -0
  302. package/dist/components/data-display/List/useListing.cjs.map +1 -0
  303. package/dist/components/data-display/List/useListing.js +85 -0
  304. package/dist/components/data-display/List/useListing.js.map +1 -0
  305. package/dist/components/data-display/List/useVirtualWindow.cjs +2 -0
  306. package/dist/components/data-display/List/useVirtualWindow.cjs.map +1 -0
  307. package/dist/components/data-display/List/useVirtualWindow.js +58 -0
  308. package/dist/components/data-display/List/useVirtualWindow.js.map +1 -0
  309. package/dist/components/data-display/SortableList/SortableList.cjs +2 -0
  310. package/dist/components/data-display/SortableList/SortableList.cjs.map +1 -0
  311. package/dist/components/data-display/SortableList/SortableList.js +168 -0
  312. package/dist/components/data-display/SortableList/SortableList.js.map +1 -0
  313. package/dist/components/data-display/SortableList/SortableList.module.css.cjs +2 -0
  314. package/dist/components/data-display/SortableList/SortableList.module.css.cjs.map +1 -0
  315. package/dist/components/data-display/SortableList/SortableList.module.css.js +34 -0
  316. package/dist/components/data-display/SortableList/SortableList.module.css.js.map +1 -0
  317. package/dist/components/data-display/Table/Table.cjs +2 -0
  318. package/dist/components/data-display/Table/Table.cjs.map +1 -0
  319. package/dist/components/data-display/Table/Table.js +239 -0
  320. package/dist/components/data-display/Table/Table.js.map +1 -0
  321. package/dist/components/data-display/Table/Table.module.css.cjs +2 -0
  322. package/dist/components/data-display/Table/Table.module.css.cjs.map +1 -0
  323. package/dist/components/data-display/Table/Table.module.css.js +68 -0
  324. package/dist/components/data-display/Table/Table.module.css.js.map +1 -0
  325. package/dist/components/data-display/Tag/Tag.cjs +2 -0
  326. package/dist/components/data-display/Tag/Tag.cjs.map +1 -0
  327. package/dist/components/data-display/Tag/Tag.js +50 -0
  328. package/dist/components/data-display/Tag/Tag.js.map +1 -0
  329. package/dist/components/data-display/Tag/Tag.module.css.cjs +2 -0
  330. package/dist/components/data-display/Tag/Tag.module.css.cjs.map +1 -0
  331. package/dist/components/data-display/Tag/Tag.module.css.js +22 -0
  332. package/dist/components/data-display/Tag/Tag.module.css.js.map +1 -0
  333. package/dist/components/data-display/Timeline/Timeline.cjs +2 -0
  334. package/dist/components/data-display/Timeline/Timeline.cjs.map +1 -0
  335. package/dist/components/data-display/Timeline/Timeline.js +31 -0
  336. package/dist/components/data-display/Timeline/Timeline.js.map +1 -0
  337. package/dist/components/data-display/Timeline/Timeline.module.css.cjs +2 -0
  338. package/dist/components/data-display/Timeline/Timeline.module.css.cjs.map +1 -0
  339. package/dist/components/data-display/Timeline/Timeline.module.css.js +30 -0
  340. package/dist/components/data-display/Timeline/Timeline.module.css.js.map +1 -0
  341. package/dist/components/feedback/Alert/Alert.cjs +2 -0
  342. package/dist/components/feedback/Alert/Alert.cjs.map +1 -0
  343. package/dist/components/feedback/Alert/Alert.js +13 -0
  344. package/dist/components/feedback/Alert/Alert.js.map +1 -0
  345. package/dist/components/feedback/Alert/Alert.module.css.cjs +2 -0
  346. package/dist/components/feedback/Alert/Alert.module.css.cjs.map +1 -0
  347. package/dist/components/feedback/Alert/Alert.module.css.js +20 -0
  348. package/dist/components/feedback/Alert/Alert.module.css.js.map +1 -0
  349. package/dist/components/feedback/EmptyState/EmptyState.cjs +2 -0
  350. package/dist/components/feedback/EmptyState/EmptyState.cjs.map +1 -0
  351. package/dist/components/feedback/EmptyState/EmptyState.js +49 -0
  352. package/dist/components/feedback/EmptyState/EmptyState.js.map +1 -0
  353. package/dist/components/feedback/EmptyState/EmptyState.module.css.cjs +2 -0
  354. package/dist/components/feedback/EmptyState/EmptyState.module.css.cjs.map +1 -0
  355. package/dist/components/feedback/EmptyState/EmptyState.module.css.js +36 -0
  356. package/dist/components/feedback/EmptyState/EmptyState.module.css.js.map +1 -0
  357. package/dist/components/feedback/Progress/Progress.cjs +2 -0
  358. package/dist/components/feedback/Progress/Progress.cjs.map +1 -0
  359. package/dist/components/feedback/Progress/Progress.js +34 -0
  360. package/dist/components/feedback/Progress/Progress.js.map +1 -0
  361. package/dist/components/feedback/Progress/Progress.module.css.cjs +2 -0
  362. package/dist/components/feedback/Progress/Progress.module.css.cjs.map +1 -0
  363. package/dist/components/feedback/Progress/Progress.module.css.js +21 -0
  364. package/dist/components/feedback/Progress/Progress.module.css.js.map +1 -0
  365. package/dist/components/feedback/Skeleton/Skeleton.cjs +2 -0
  366. package/dist/components/feedback/Skeleton/Skeleton.cjs.map +1 -0
  367. package/dist/components/feedback/Skeleton/Skeleton.js +17 -0
  368. package/dist/components/feedback/Skeleton/Skeleton.js.map +1 -0
  369. package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs +2 -0
  370. package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs.map +1 -0
  371. package/dist/components/feedback/Skeleton/Skeleton.module.css.js +15 -0
  372. package/dist/components/feedback/Skeleton/Skeleton.module.css.js.map +1 -0
  373. package/dist/components/feedback/Spinner/Spinner.cjs +2 -0
  374. package/dist/components/feedback/Spinner/Spinner.cjs.map +1 -0
  375. package/dist/components/feedback/Spinner/Spinner.js +10 -0
  376. package/dist/components/feedback/Spinner/Spinner.js.map +1 -0
  377. package/dist/components/feedback/Spinner/Spinner.module.css.cjs +2 -0
  378. package/dist/components/feedback/Spinner/Spinner.module.css.cjs.map +1 -0
  379. package/dist/components/feedback/Spinner/Spinner.module.css.js +15 -0
  380. package/dist/components/feedback/Spinner/Spinner.module.css.js.map +1 -0
  381. package/dist/components/feedback/Toast/Toast.module.css.cjs +2 -0
  382. package/dist/components/feedback/Toast/Toast.module.css.cjs.map +1 -0
  383. package/dist/components/feedback/Toast/Toast.module.css.js +31 -0
  384. package/dist/components/feedback/Toast/Toast.module.css.js.map +1 -0
  385. package/dist/components/feedback/Toast/ToastRegion.cjs +2 -0
  386. package/dist/components/feedback/Toast/ToastRegion.cjs.map +1 -0
  387. package/dist/components/feedback/Toast/ToastRegion.js +62 -0
  388. package/dist/components/feedback/Toast/ToastRegion.js.map +1 -0
  389. package/dist/components/feedback/Toast/toastStore.cjs +2 -0
  390. package/dist/components/feedback/Toast/toastStore.cjs.map +1 -0
  391. package/dist/components/feedback/Toast/toastStore.js +33 -0
  392. package/dist/components/feedback/Toast/toastStore.js.map +1 -0
  393. package/dist/components/forms/Checkbox/Checkbox.cjs +2 -0
  394. package/dist/components/forms/Checkbox/Checkbox.cjs.map +1 -0
  395. package/dist/components/forms/Checkbox/Checkbox.js +57 -0
  396. package/dist/components/forms/Checkbox/Checkbox.js.map +1 -0
  397. package/dist/components/forms/Checkbox/Checkbox.module.css.cjs +2 -0
  398. package/dist/components/forms/Checkbox/Checkbox.module.css.cjs.map +1 -0
  399. package/dist/components/forms/Checkbox/Checkbox.module.css.js +20 -0
  400. package/dist/components/forms/Checkbox/Checkbox.module.css.js.map +1 -0
  401. package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs +2 -0
  402. package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs.map +1 -0
  403. package/dist/components/forms/CheckboxGroup/CheckboxGroup.js +54 -0
  404. package/dist/components/forms/CheckboxGroup/CheckboxGroup.js.map +1 -0
  405. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs +2 -0
  406. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs.map +1 -0
  407. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js +22 -0
  408. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js.map +1 -0
  409. package/dist/components/forms/ColorPicker/ColorPicker.cjs +2 -0
  410. package/dist/components/forms/ColorPicker/ColorPicker.cjs.map +1 -0
  411. package/dist/components/forms/ColorPicker/ColorPicker.js +57 -0
  412. package/dist/components/forms/ColorPicker/ColorPicker.js.map +1 -0
  413. package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs +2 -0
  414. package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs.map +1 -0
  415. package/dist/components/forms/ColorPicker/ColorPicker.module.css.js +22 -0
  416. package/dist/components/forms/ColorPicker/ColorPicker.module.css.js.map +1 -0
  417. package/dist/components/forms/ComboBox/ComboBox.cjs +3 -0
  418. package/dist/components/forms/ComboBox/ComboBox.cjs.map +1 -0
  419. package/dist/components/forms/ComboBox/ComboBox.js +223 -0
  420. package/dist/components/forms/ComboBox/ComboBox.js.map +1 -0
  421. package/dist/components/forms/ComboBox/ComboBox.module.css.cjs +2 -0
  422. package/dist/components/forms/ComboBox/ComboBox.module.css.cjs.map +1 -0
  423. package/dist/components/forms/ComboBox/ComboBox.module.css.js +28 -0
  424. package/dist/components/forms/ComboBox/ComboBox.module.css.js.map +1 -0
  425. package/dist/components/forms/DatePicker/Calendar.cjs +2 -0
  426. package/dist/components/forms/DatePicker/Calendar.cjs.map +1 -0
  427. package/dist/components/forms/DatePicker/Calendar.js +86 -0
  428. package/dist/components/forms/DatePicker/Calendar.js.map +1 -0
  429. package/dist/components/forms/DatePicker/DatePicker.cjs +2 -0
  430. package/dist/components/forms/DatePicker/DatePicker.cjs.map +1 -0
  431. package/dist/components/forms/DatePicker/DatePicker.js +217 -0
  432. package/dist/components/forms/DatePicker/DatePicker.js.map +1 -0
  433. package/dist/components/forms/DatePicker/DatePicker.module.css.cjs +2 -0
  434. package/dist/components/forms/DatePicker/DatePicker.module.css.cjs.map +1 -0
  435. package/dist/components/forms/DatePicker/DatePicker.module.css.js +44 -0
  436. package/dist/components/forms/DatePicker/DatePicker.module.css.js.map +1 -0
  437. package/dist/components/forms/DatePicker/iso.cjs +2 -0
  438. package/dist/components/forms/DatePicker/iso.cjs.map +1 -0
  439. package/dist/components/forms/DatePicker/iso.js +18 -0
  440. package/dist/components/forms/DatePicker/iso.js.map +1 -0
  441. package/dist/components/forms/DateTimePicker/DateTimePicker.cjs +2 -0
  442. package/dist/components/forms/DateTimePicker/DateTimePicker.cjs.map +1 -0
  443. package/dist/components/forms/DateTimePicker/DateTimePicker.js +241 -0
  444. package/dist/components/forms/DateTimePicker/DateTimePicker.js.map +1 -0
  445. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.cjs +2 -0
  446. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.cjs.map +1 -0
  447. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.js +26 -0
  448. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.js.map +1 -0
  449. package/dist/components/forms/Field/Field.cjs +2 -0
  450. package/dist/components/forms/Field/Field.cjs.map +1 -0
  451. package/dist/components/forms/Field/Field.js +35 -0
  452. package/dist/components/forms/Field/Field.js.map +1 -0
  453. package/dist/components/forms/Field/Field.module.css.cjs +2 -0
  454. package/dist/components/forms/Field/Field.module.css.cjs.map +1 -0
  455. package/dist/components/forms/Field/Field.module.css.js +22 -0
  456. package/dist/components/forms/Field/Field.module.css.js.map +1 -0
  457. package/dist/components/forms/Field/FormValue.cjs +2 -0
  458. package/dist/components/forms/Field/FormValue.cjs.map +1 -0
  459. package/dist/components/forms/Field/FormValue.js +24 -0
  460. package/dist/components/forms/Field/FormValue.js.map +1 -0
  461. package/dist/components/forms/FileUpload/FileUpload.cjs +2 -0
  462. package/dist/components/forms/FileUpload/FileUpload.cjs.map +1 -0
  463. package/dist/components/forms/FileUpload/FileUpload.js +142 -0
  464. package/dist/components/forms/FileUpload/FileUpload.js.map +1 -0
  465. package/dist/components/forms/FileUpload/FileUpload.module.css.cjs +2 -0
  466. package/dist/components/forms/FileUpload/FileUpload.module.css.cjs.map +1 -0
  467. package/dist/components/forms/FileUpload/FileUpload.module.css.js +46 -0
  468. package/dist/components/forms/FileUpload/FileUpload.module.css.js.map +1 -0
  469. package/dist/components/forms/InputCurrency/InputCurrency.cjs +2 -0
  470. package/dist/components/forms/InputCurrency/InputCurrency.cjs.map +1 -0
  471. package/dist/components/forms/InputCurrency/InputCurrency.js +41 -0
  472. package/dist/components/forms/InputCurrency/InputCurrency.js.map +1 -0
  473. package/dist/components/forms/InputNumber/InputNumber.cjs +2 -0
  474. package/dist/components/forms/InputNumber/InputNumber.cjs.map +1 -0
  475. package/dist/components/forms/InputNumber/InputNumber.js +39 -0
  476. package/dist/components/forms/InputNumber/InputNumber.js.map +1 -0
  477. package/dist/components/forms/InputPassword/InputPassword.cjs +2 -0
  478. package/dist/components/forms/InputPassword/InputPassword.cjs.map +1 -0
  479. package/dist/components/forms/InputPassword/InputPassword.js +110 -0
  480. package/dist/components/forms/InputPassword/InputPassword.js.map +1 -0
  481. package/dist/components/forms/InputPassword/InputPassword.module.css.cjs +2 -0
  482. package/dist/components/forms/InputPassword/InputPassword.module.css.cjs.map +1 -0
  483. package/dist/components/forms/InputPassword/InputPassword.module.css.js +18 -0
  484. package/dist/components/forms/InputPassword/InputPassword.module.css.js.map +1 -0
  485. package/dist/components/forms/InputText/InputText.cjs +2 -0
  486. package/dist/components/forms/InputText/InputText.cjs.map +1 -0
  487. package/dist/components/forms/InputText/InputText.js +70 -0
  488. package/dist/components/forms/InputText/InputText.js.map +1 -0
  489. package/dist/components/forms/InputText/InputText.module.css.cjs +2 -0
  490. package/dist/components/forms/InputText/InputText.module.css.cjs.map +1 -0
  491. package/dist/components/forms/InputText/InputText.module.css.js +14 -0
  492. package/dist/components/forms/InputText/InputText.module.css.js.map +1 -0
  493. package/dist/components/forms/Label/Label.cjs +2 -0
  494. package/dist/components/forms/Label/Label.cjs.map +1 -0
  495. package/dist/components/forms/Label/Label.js +13 -0
  496. package/dist/components/forms/Label/Label.js.map +1 -0
  497. package/dist/components/forms/Label/Label.module.css.cjs +2 -0
  498. package/dist/components/forms/Label/Label.module.css.cjs.map +1 -0
  499. package/dist/components/forms/Label/Label.module.css.js +10 -0
  500. package/dist/components/forms/Label/Label.module.css.js.map +1 -0
  501. package/dist/components/forms/RadioGroup/Radio.cjs +2 -0
  502. package/dist/components/forms/RadioGroup/Radio.cjs.map +1 -0
  503. package/dist/components/forms/RadioGroup/Radio.js +43 -0
  504. package/dist/components/forms/RadioGroup/Radio.js.map +1 -0
  505. package/dist/components/forms/RadioGroup/RadioGroup.cjs +2 -0
  506. package/dist/components/forms/RadioGroup/RadioGroup.cjs.map +1 -0
  507. package/dist/components/forms/RadioGroup/RadioGroup.js +58 -0
  508. package/dist/components/forms/RadioGroup/RadioGroup.js.map +1 -0
  509. package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs +2 -0
  510. package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs.map +1 -0
  511. package/dist/components/forms/RadioGroup/RadioGroup.module.css.js +26 -0
  512. package/dist/components/forms/RadioGroup/RadioGroup.module.css.js.map +1 -0
  513. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs +2 -0
  514. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.map +1 -0
  515. package/dist/components/forms/SegmentedControl/SegmentedControl.js +52 -0
  516. package/dist/components/forms/SegmentedControl/SegmentedControl.js.map +1 -0
  517. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs +2 -0
  518. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs.map +1 -0
  519. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js +22 -0
  520. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
  521. package/dist/components/forms/Select/Select.cjs +2 -0
  522. package/dist/components/forms/Select/Select.cjs.map +1 -0
  523. package/dist/components/forms/Select/Select.js +191 -0
  524. package/dist/components/forms/Select/Select.js.map +1 -0
  525. package/dist/components/forms/Select/Select.module.css.cjs +2 -0
  526. package/dist/components/forms/Select/Select.module.css.cjs.map +1 -0
  527. package/dist/components/forms/Select/Select.module.css.js +22 -0
  528. package/dist/components/forms/Select/Select.module.css.js.map +1 -0
  529. package/dist/components/forms/Switch/Switch.cjs +2 -0
  530. package/dist/components/forms/Switch/Switch.cjs.map +1 -0
  531. package/dist/components/forms/Switch/Switch.js +39 -0
  532. package/dist/components/forms/Switch/Switch.js.map +1 -0
  533. package/dist/components/forms/Switch/Switch.module.css.cjs +2 -0
  534. package/dist/components/forms/Switch/Switch.module.css.cjs.map +1 -0
  535. package/dist/components/forms/Switch/Switch.module.css.js +20 -0
  536. package/dist/components/forms/Switch/Switch.module.css.js.map +1 -0
  537. package/dist/components/forms/Textarea/Textarea.cjs +2 -0
  538. package/dist/components/forms/Textarea/Textarea.cjs.map +1 -0
  539. package/dist/components/forms/Textarea/Textarea.js +64 -0
  540. package/dist/components/forms/Textarea/Textarea.js.map +1 -0
  541. package/dist/components/forms/Textarea/Textarea.module.css.cjs +2 -0
  542. package/dist/components/forms/Textarea/Textarea.module.css.cjs.map +1 -0
  543. package/dist/components/forms/Textarea/Textarea.module.css.js +14 -0
  544. package/dist/components/forms/Textarea/Textarea.module.css.js.map +1 -0
  545. package/dist/components/forms/TimePicker/TimePicker.cjs +2 -0
  546. package/dist/components/forms/TimePicker/TimePicker.cjs.map +1 -0
  547. package/dist/components/forms/TimePicker/TimePicker.js +176 -0
  548. package/dist/components/forms/TimePicker/TimePicker.js.map +1 -0
  549. package/dist/components/forms/TimePicker/TimePicker.module.css.cjs +2 -0
  550. package/dist/components/forms/TimePicker/TimePicker.module.css.cjs.map +1 -0
  551. package/dist/components/forms/TimePicker/TimePicker.module.css.js +26 -0
  552. package/dist/components/forms/TimePicker/TimePicker.module.css.js.map +1 -0
  553. package/dist/components/forms/TimePicker/TimeSlots.cjs +2 -0
  554. package/dist/components/forms/TimePicker/TimeSlots.cjs.map +1 -0
  555. package/dist/components/forms/TimePicker/TimeSlots.js +81 -0
  556. package/dist/components/forms/TimePicker/TimeSlots.js.map +1 -0
  557. package/dist/components/icons/Icon.cjs +2 -0
  558. package/dist/components/icons/Icon.cjs.map +1 -0
  559. package/dist/components/icons/Icon.js +24 -0
  560. package/dist/components/icons/Icon.js.map +1 -0
  561. package/dist/components/icons/icons.cjs +2 -0
  562. package/dist/components/icons/icons.cjs.map +1 -0
  563. package/dist/components/icons/icons.js +274 -0
  564. package/dist/components/icons/icons.js.map +1 -0
  565. package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs +2 -0
  566. package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs.map +1 -0
  567. package/dist/components/navigation/Breadcrumb/Breadcrumb.js +22 -0
  568. package/dist/components/navigation/Breadcrumb/Breadcrumb.js.map +1 -0
  569. package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.cjs +2 -0
  570. package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.cjs.map +1 -0
  571. package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.js +16 -0
  572. package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.js.map +1 -0
  573. package/dist/components/navigation/Pagination/Pagination.cjs +2 -0
  574. package/dist/components/navigation/Pagination/Pagination.cjs.map +1 -0
  575. package/dist/components/navigation/Pagination/Pagination.js +70 -0
  576. package/dist/components/navigation/Pagination/Pagination.js.map +1 -0
  577. package/dist/components/navigation/Pagination/Pagination.module.css.cjs +2 -0
  578. package/dist/components/navigation/Pagination/Pagination.module.css.cjs.map +1 -0
  579. package/dist/components/navigation/Pagination/Pagination.module.css.js +18 -0
  580. package/dist/components/navigation/Pagination/Pagination.module.css.js.map +1 -0
  581. package/dist/components/navigation/SkipLink/SkipLink.cjs +2 -0
  582. package/dist/components/navigation/SkipLink/SkipLink.cjs.map +1 -0
  583. package/dist/components/navigation/SkipLink/SkipLink.js +9 -0
  584. package/dist/components/navigation/SkipLink/SkipLink.js.map +1 -0
  585. package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs +2 -0
  586. package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs.map +1 -0
  587. package/dist/components/navigation/SkipLink/SkipLink.module.css.js +8 -0
  588. package/dist/components/navigation/SkipLink/SkipLink.module.css.js.map +1 -0
  589. package/dist/components/navigation/Steps/Steps.cjs +2 -0
  590. package/dist/components/navigation/Steps/Steps.cjs.map +1 -0
  591. package/dist/components/navigation/Steps/Steps.js +30 -0
  592. package/dist/components/navigation/Steps/Steps.js.map +1 -0
  593. package/dist/components/navigation/Steps/Steps.module.css.cjs +2 -0
  594. package/dist/components/navigation/Steps/Steps.module.css.cjs.map +1 -0
  595. package/dist/components/navigation/Steps/Steps.module.css.js +26 -0
  596. package/dist/components/navigation/Steps/Steps.module.css.js.map +1 -0
  597. package/dist/components/navigation/Tabs/Tabs.cjs +2 -0
  598. package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -0
  599. package/dist/components/navigation/Tabs/Tabs.js +105 -0
  600. package/dist/components/navigation/Tabs/Tabs.js.map +1 -0
  601. package/dist/components/navigation/Tabs/Tabs.module.css.cjs +2 -0
  602. package/dist/components/navigation/Tabs/Tabs.module.css.cjs.map +1 -0
  603. package/dist/components/navigation/Tabs/Tabs.module.css.js +24 -0
  604. package/dist/components/navigation/Tabs/Tabs.module.css.js.map +1 -0
  605. package/dist/components/overlays/Dialog/Dialog.cjs +2 -0
  606. package/dist/components/overlays/Dialog/Dialog.cjs.map +1 -0
  607. package/dist/components/overlays/Dialog/Dialog.js +17 -0
  608. package/dist/components/overlays/Dialog/Dialog.js.map +1 -0
  609. package/dist/components/overlays/Dialog/Dialog.module.css.cjs +2 -0
  610. package/dist/components/overlays/Dialog/Dialog.module.css.cjs.map +1 -0
  611. package/dist/components/overlays/Dialog/Dialog.module.css.js +36 -0
  612. package/dist/components/overlays/Dialog/Dialog.module.css.js.map +1 -0
  613. package/dist/components/overlays/Dialog/DialogFrame.cjs +2 -0
  614. package/dist/components/overlays/Dialog/DialogFrame.cjs.map +1 -0
  615. package/dist/components/overlays/Dialog/DialogFrame.js +65 -0
  616. package/dist/components/overlays/Dialog/DialogFrame.js.map +1 -0
  617. package/dist/components/overlays/Drawer/Drawer.cjs +2 -0
  618. package/dist/components/overlays/Drawer/Drawer.cjs.map +1 -0
  619. package/dist/components/overlays/Drawer/Drawer.js +17 -0
  620. package/dist/components/overlays/Drawer/Drawer.js.map +1 -0
  621. package/dist/components/overlays/Drawer/Drawer.module.css.cjs +2 -0
  622. package/dist/components/overlays/Drawer/Drawer.module.css.cjs.map +1 -0
  623. package/dist/components/overlays/Drawer/Drawer.module.css.js +23 -0
  624. package/dist/components/overlays/Drawer/Drawer.module.css.js.map +1 -0
  625. package/dist/components/overlays/Menu/Menu.cjs +2 -0
  626. package/dist/components/overlays/Menu/Menu.cjs.map +1 -0
  627. package/dist/components/overlays/Menu/Menu.js +156 -0
  628. package/dist/components/overlays/Menu/Menu.js.map +1 -0
  629. package/dist/components/overlays/Menu/Menu.module.css.cjs +2 -0
  630. package/dist/components/overlays/Menu/Menu.module.css.cjs.map +1 -0
  631. package/dist/components/overlays/Menu/Menu.module.css.js +28 -0
  632. package/dist/components/overlays/Menu/Menu.module.css.js.map +1 -0
  633. package/dist/components/overlays/Popover/Popover.cjs +2 -0
  634. package/dist/components/overlays/Popover/Popover.cjs.map +1 -0
  635. package/dist/components/overlays/Popover/Popover.js +59 -0
  636. package/dist/components/overlays/Popover/Popover.js.map +1 -0
  637. package/dist/components/overlays/Popover/Popover.module.css.cjs +2 -0
  638. package/dist/components/overlays/Popover/Popover.module.css.cjs.map +1 -0
  639. package/dist/components/overlays/Popover/Popover.module.css.js +8 -0
  640. package/dist/components/overlays/Popover/Popover.module.css.js.map +1 -0
  641. package/dist/components/overlays/Tooltip/Tooltip.cjs +2 -0
  642. package/dist/components/overlays/Tooltip/Tooltip.cjs.map +1 -0
  643. package/dist/components/overlays/Tooltip/Tooltip.js +84 -0
  644. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -0
  645. package/dist/components/overlays/Tooltip/Tooltip.module.css.cjs +2 -0
  646. package/dist/components/overlays/Tooltip/Tooltip.module.css.cjs.map +1 -0
  647. package/dist/components/overlays/Tooltip/Tooltip.module.css.js +8 -0
  648. package/dist/components/overlays/Tooltip/Tooltip.module.css.js.map +1 -0
  649. package/dist/design-system.css +1 -1
  650. package/dist/hooks/useCalendar/calendar.cjs +2 -0
  651. package/dist/hooks/useCalendar/calendar.cjs.map +1 -0
  652. package/dist/hooks/useCalendar/calendar.js +56 -0
  653. package/dist/hooks/useCalendar/calendar.js.map +1 -0
  654. package/dist/hooks/useCalendar/useCalendar.cjs +2 -0
  655. package/dist/hooks/useCalendar/useCalendar.cjs.map +1 -0
  656. package/dist/hooks/useCalendar/useCalendar.js +48 -0
  657. package/dist/hooks/useCalendar/useCalendar.js.map +1 -0
  658. package/dist/hooks/useCharacterCount/useCharacterCount.cjs +2 -0
  659. package/dist/hooks/useCharacterCount/useCharacterCount.cjs.map +1 -0
  660. package/dist/hooks/useCharacterCount/useCharacterCount.js +27 -0
  661. package/dist/hooks/useCharacterCount/useCharacterCount.js.map +1 -0
  662. package/dist/hooks/useDecimalInput.cjs +2 -0
  663. package/dist/hooks/useDecimalInput.cjs.map +1 -0
  664. package/dist/hooks/useDecimalInput.js +17 -0
  665. package/dist/hooks/useDecimalInput.js.map +1 -0
  666. package/dist/hooks/useFormReset.cjs +2 -0
  667. package/dist/hooks/useFormReset.cjs.map +1 -0
  668. package/dist/hooks/useFormReset.js +16 -0
  669. package/dist/hooks/useFormReset.js.map +1 -0
  670. package/dist/hooks/useMergedRefs.cjs +2 -0
  671. package/dist/hooks/useMergedRefs.cjs.map +1 -0
  672. package/dist/hooks/useMergedRefs.js +24 -0
  673. package/dist/hooks/useMergedRefs.js.map +1 -0
  674. package/dist/hooks/useSelection/selection.cjs +2 -0
  675. package/dist/hooks/useSelection/selection.cjs.map +1 -0
  676. package/dist/hooks/useSelection/selection.js +78 -0
  677. package/dist/hooks/useSelection/selection.js.map +1 -0
  678. package/dist/hooks/useSelection/useSelection.cjs +2 -0
  679. package/dist/hooks/useSelection/useSelection.cjs.map +1 -0
  680. package/dist/hooks/useSelection/useSelection.js +68 -0
  681. package/dist/hooks/useSelection/useSelection.js.map +1 -0
  682. package/dist/index.cjs +2 -0
  683. package/dist/index.cjs.map +1 -0
  684. package/dist/index.js +193 -0
  685. package/dist/index.js.map +1 -0
  686. package/dist/types/components/actions/ButtonIcon/ButtonIcon.d.ts +12 -0
  687. package/dist/types/components/actions/ButtonIcon/index.d.ts +2 -0
  688. package/dist/types/components/actions/ButtonTile/ButtonTile.d.ts +14 -0
  689. package/dist/types/components/actions/ButtonTile/index.d.ts +2 -0
  690. package/dist/types/components/actions/Toolbar/Toolbar.d.ts +27 -0
  691. package/dist/types/components/actions/Toolbar/index.d.ts +2 -0
  692. package/dist/types/components/charts/ChartArea/ChartArea.d.ts +15 -4
  693. package/dist/types/components/charts/ChartBar/ChartBar.d.ts +11 -4
  694. package/dist/types/components/charts/ChartCombo/ChartCombo.d.ts +16 -4
  695. package/dist/types/components/charts/ChartDonut/ChartDonut.d.ts +5 -1
  696. package/dist/types/components/charts/ChartLine/ChartLine.d.ts +15 -4
  697. package/dist/types/components/charts/ChartPie/ChartPie.d.ts +5 -1
  698. package/dist/types/components/charts/ChartRadial/ChartRadial.d.ts +5 -1
  699. package/dist/types/components/charts/ChartSankey/ChartSankey.d.ts +5 -1
  700. package/dist/types/components/charts/ChartScatter/ChartScatter.d.ts +7 -1
  701. package/dist/types/components/charts/ChartSunburst/ChartSunburst.d.ts +11 -2
  702. package/dist/types/components/charts/ChartTooltip/ChartTooltip.d.ts +2 -0
  703. package/dist/types/components/charts/ChartTreemap/ChartTreemap.d.ts +11 -2
  704. package/dist/types/components/charts/ChartWaterfall/ChartWaterfall.d.ts +8 -3
  705. package/dist/types/components/charts/core/CartesianFrame.d.ts +6 -1
  706. package/dist/types/components/charts/core/ChartFrame.d.ts +7 -1
  707. package/dist/types/components/charts/core/PointBands.d.ts +22 -0
  708. package/dist/types/components/charts/core/cartesianLayout.d.ts +10 -4
  709. package/dist/types/components/charts/core/hoverPath.d.ts +10 -0
  710. package/dist/types/components/charts/core/index.d.ts +13 -3
  711. package/dist/types/components/charts/core/pointLabels.d.ts +13 -0
  712. package/dist/types/components/charts/core/tooltips.d.ts +49 -0
  713. package/dist/types/components/charts/core/useCartesianLayout.d.ts +20 -0
  714. package/dist/types/components/charts/core/useSeriesToggle.d.ts +15 -1
  715. package/dist/types/components/data-display/Accordion/Accordion.d.ts +6 -1
  716. package/dist/types/components/data-display/Accordion/index.d.ts +1 -1
  717. package/dist/types/components/data-display/CodeBlock/CodeBlock.d.ts +16 -0
  718. package/dist/types/components/data-display/CodeBlock/index.d.ts +3 -0
  719. package/dist/types/components/data-display/CodeBlock/syntax.d.ts +15 -0
  720. package/dist/types/components/data-display/SortableList/SortableList.d.ts +22 -0
  721. package/dist/types/components/data-display/SortableList/index.d.ts +2 -0
  722. package/dist/types/components/data-display/Table/Table.d.ts +4 -2
  723. package/dist/types/components/data-display/Tag/Tag.d.ts +13 -0
  724. package/dist/types/components/data-display/Tag/index.d.ts +2 -0
  725. package/dist/types/components/data-display/Timeline/Timeline.d.ts +15 -0
  726. package/dist/types/components/data-display/Timeline/index.d.ts +2 -0
  727. package/dist/types/components/feedback/EmptyState/EmptyState.d.ts +14 -0
  728. package/dist/types/components/feedback/EmptyState/index.d.ts +2 -0
  729. package/dist/types/components/feedback/Skeleton/Skeleton.d.ts +13 -0
  730. package/dist/types/components/feedback/Skeleton/index.d.ts +2 -0
  731. package/dist/types/components/feedback/Toast/ToastRegion.d.ts +2 -0
  732. package/dist/types/components/feedback/Toast/index.d.ts +3 -0
  733. package/dist/types/components/feedback/Toast/toastStore.d.ts +24 -0
  734. package/dist/types/components/forms/CheckboxGroup/CheckboxGroup.d.ts +28 -0
  735. package/dist/types/components/forms/CheckboxGroup/index.d.ts +2 -0
  736. package/dist/types/components/forms/ColorPicker/ColorPicker.d.ts +26 -0
  737. package/dist/types/components/forms/ColorPicker/index.d.ts +2 -0
  738. package/dist/types/components/forms/Field/Field.d.ts +6 -2
  739. package/dist/types/components/forms/Field/index.d.ts +1 -1
  740. package/dist/types/components/forms/FileUpload/FileUpload.d.ts +37 -0
  741. package/dist/types/components/forms/FileUpload/index.d.ts +2 -0
  742. package/dist/types/components/forms/InputText/InputText.d.ts +4 -2
  743. package/dist/types/components/forms/SegmentedControl/SegmentedControl.d.ts +23 -0
  744. package/dist/types/components/forms/SegmentedControl/index.d.ts +2 -0
  745. package/dist/types/components/icons/icons.d.ts +31 -0
  746. package/dist/types/components/icons/index.d.ts +1 -1
  747. package/dist/types/components/navigation/SkipLink/SkipLink.d.ts +7 -0
  748. package/dist/types/components/navigation/SkipLink/index.d.ts +2 -0
  749. package/dist/types/components/navigation/Steps/Steps.d.ts +16 -0
  750. package/dist/types/components/navigation/Steps/index.d.ts +2 -0
  751. package/dist/types/components/navigation/Tabs/Tabs.d.ts +5 -1
  752. package/dist/types/components/overlays/Dialog/Dialog.d.ts +4 -2
  753. package/dist/types/components/overlays/Dialog/DialogFrame.d.ts +7 -0
  754. package/dist/types/components/overlays/Drawer/Drawer.d.ts +9 -0
  755. package/dist/types/components/overlays/Drawer/index.d.ts +2 -0
  756. package/dist/types/components/overlays/Menu/Menu.d.ts +16 -2
  757. package/dist/types/components/overlays/Menu/index.d.ts +1 -1
  758. package/dist/types/index.d.ts +41 -7
  759. package/dist/types/utils/formatters/formatarNumero.d.ts +6 -1
  760. package/dist/types/utils/formatters/formatarTamanhoDeArquivo.d.ts +7 -0
  761. package/dist/types/utils/formatters/index.d.ts +3 -1
  762. package/dist/utils/formatters/formatarData.cjs +2 -0
  763. package/dist/utils/formatters/formatarData.cjs.map +1 -0
  764. package/dist/utils/formatters/formatarData.js +32 -0
  765. package/dist/utils/formatters/formatarData.js.map +1 -0
  766. package/dist/utils/formatters/formatarEntradaData.cjs +2 -0
  767. package/dist/utils/formatters/formatarEntradaData.cjs.map +1 -0
  768. package/dist/utils/formatters/formatarEntradaData.js +22 -0
  769. package/dist/utils/formatters/formatarEntradaData.js.map +1 -0
  770. package/dist/utils/formatters/formatarEntradaDecimal.cjs +2 -0
  771. package/dist/utils/formatters/formatarEntradaDecimal.cjs.map +1 -0
  772. package/dist/utils/formatters/formatarEntradaDecimal.js +35 -0
  773. package/dist/utils/formatters/formatarEntradaDecimal.js.map +1 -0
  774. package/dist/utils/formatters/formatarEntradaHora.cjs +2 -0
  775. package/dist/utils/formatters/formatarEntradaHora.cjs.map +1 -0
  776. package/dist/utils/formatters/formatarEntradaHora.js +32 -0
  777. package/dist/utils/formatters/formatarEntradaHora.js.map +1 -0
  778. package/dist/utils/formatters/formatarEntradaMonetaria.cjs +2 -0
  779. package/dist/utils/formatters/formatarEntradaMonetaria.cjs.map +1 -0
  780. package/dist/utils/formatters/formatarEntradaMonetaria.js +17 -0
  781. package/dist/utils/formatters/formatarEntradaMonetaria.js.map +1 -0
  782. package/dist/utils/formatters/formatarNumero.cjs +2 -0
  783. package/dist/utils/formatters/formatarNumero.cjs.map +1 -0
  784. package/dist/utils/formatters/formatarNumero.js +53 -0
  785. package/dist/utils/formatters/formatarNumero.js.map +1 -0
  786. package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs +2 -0
  787. package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs.map +1 -0
  788. package/dist/utils/formatters/formatarTamanhoDeArquivo.js +17 -0
  789. package/dist/utils/formatters/formatarTamanhoDeArquivo.js.map +1 -0
  790. package/dist/utils/formatters/mascararPartes.cjs +2 -0
  791. package/dist/utils/formatters/mascararPartes.cjs.map +1 -0
  792. package/dist/utils/formatters/mascararPartes.js +17 -0
  793. package/dist/utils/formatters/mascararPartes.js.map +1 -0
  794. package/dist/utils/textSearch/textSearch.cjs +2 -0
  795. package/dist/utils/textSearch/textSearch.cjs.map +1 -0
  796. package/dist/utils/textSearch/textSearch.js +22 -0
  797. package/dist/utils/textSearch/textSearch.js.map +1 -0
  798. package/package.json +5 -5
  799. package/dist/plenus-design-system.cjs +0 -3
  800. package/dist/plenus-design-system.cjs.map +0 -1
  801. package/dist/plenus-design-system.es.js +0 -6387
  802. package/dist/plenus-design-system.es.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimePicker.js","sources":["../../../../src/components/forms/DateTimePicker/DateTimePicker.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState, type ComponentPropsWithRef, type KeyboardEvent } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useOverlay, useOverlayPosition } from '@react-aria/overlays';\nimport {\n CalendarDate,\n CalendarDateTime,\n Time,\n getLocalTimeZone,\n now,\n toCalendarDate,\n toCalendarDateTime,\n today,\n} from '@internationalized/date';\nimport { useFormReset } from '../../../hooks/useFormReset';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { formatarEntradaDataHora, lerEntradaDataHora } from '../../../utils/formatters';\nimport { Button } from '../../actions/Button';\nimport { Calendar } from '../DatePicker/Calendar';\nimport { readIsoDate, readIsoDateTime, toIsoDateTime } from '../DatePicker/iso';\nimport { TimeSlots } from '../TimePicker/TimeSlots';\nimport { isUnavailable, type CalendarLimits } from '../../../hooks/useCalendar/calendar';\nimport { Field } from '../Field';\nimport { FormValue } from '../Field/FormValue';\nimport styles from './DateTimePicker.module.css';\nimport { IconCalendar } from '../../icons';\n\nexport type DateTimePickerSize = 'sm' | 'md';\n\n/**\n * As propriedades nativas vao ao campo de texto, que e o controle; o `className` soma a caixa do campo, que e o que\n * se posiciona e dimensiona.\n */\nexport interface DateTimePickerProps\n extends Omit<\n ComponentPropsWithRef<'input'>,\n 'defaultValue' | 'max' | 'min' | 'name' | 'onChange' | 'size' | 'type' | 'value' | 'step'\n > {\n /** Data e hora em ISO, `2026-03-09T18:40`, como no `FormData`: a API nao expoe tipo de biblioteca de terceiros. */\n defaultValue?: string;\n disabled?: boolean;\n error?: string;\n hint?: string;\n id?: string;\n isDateUnavailable?: (date: string) => boolean;\n label?: string;\n /**\n * Nome do campo no formulario. Com ele, um input oculto carrega o valor para\n * o `FormData`: sem controle nativo por baixo, o envio ignorava o campo.\n */\n name?: string;\n locale?: string;\n /** Limites de data, em `2026-03-09`. */\n max?: string;\n min?: string;\n step?: number;\n /** Sem data e hora inteiras e permitidas, o valor e `null`, que mantem o campo controlado e vazio. */\n onValueChange?: (value: string | null) => void;\n placeholder?: string;\n required?: boolean;\n size?: DateTimePickerSize;\n /**\n * `null` e \"controlado e vazio\": devolver a propriedade a `undefined` nao\n * limpa o campo, porque ali ele volta a ser nao controlado.\n */\n value?: string | null;\n}\n\nconst doisDigitos = (valor: number) => String(valor).padStart(2, '0');\n\nfunction paraTexto(valor?: CalendarDateTime) {\n if (!valor) {\n return '';\n }\n\n const data = [doisDigitos(valor.day), doisDigitos(valor.month), valor.year].join('/');\n\n return data + ' ' + doisDigitos(valor.hour) + ':' + doisDigitos(valor.minute);\n}\n\nexport function DateTimePicker({\n 'aria-describedby': ariaDescribedBy,\n className,\n defaultValue,\n name,\n disabled = false,\n error,\n hint,\n id: providedId,\n isDateUnavailable,\n label,\n locale = 'pt-BR',\n max,\n min,\n step = 30,\n onValueChange,\n onBlur,\n onKeyDown,\n placeholder = 'dd/mm/aaaa hh:mm',\n required = false,\n size = 'md',\n ref,\n value,\n ...props\n}: DateTimePickerProps) {\n const fieldRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n // Fixo, o id fazia dois seletores dividirem os ids das opcoes de hora.\n const idDaLista = `datetime-hora-${useId()}`;\n const [open, setOpen] = useState(false);\n const limites: CalendarLimits = {\n isDateUnavailable: isDateUnavailable && ((data) => isDateUnavailable(data.toString())),\n max: readIsoDate(max),\n min: readIsoDate(min),\n };\n const [internalValue, setInternalValue] = useState<CalendarDateTime | null>(() => readIsoDateTime(defaultValue) ?? null);\n const [texto, setTexto] = useState('');\n const [digitando, setDigitando] = useState(false);\n const controlado = value === undefined ? undefined : (readIsoDateTime(value) ?? null);\n const escolhido = (controlado === undefined ? internalValue : controlado) ?? undefined;\n const [rascunho, setRascunho] = useState(escolhido);\n const [versaoDoCalendario, setVersaoDoCalendario] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n const resetRef = useFormReset<HTMLInputElement>(() => {\n setInternalValue(readIsoDateTime(defaultValue) ?? null);\n setDigitando(false);\n });\n const mergedRef = useMergedRefs(inputRef, resetRef, ref);\n\n useEffect(() => {\n if (open) {\n setRascunho(escolhido);\n }\n }, [open]);\n const exibido = digitando ? texto : paraTexto(escolhido);\n\n // O interno acompanha mesmo controlado: se o consumidor devolver `undefined`, nao ressurge um valor velho.\n function definir(proximo: CalendarDateTime | null) {\n setInternalValue(proximo);\n onValueChange?.(proximo ? toIsoDateTime(proximo) : null);\n }\n\n function rascunharData(data: CalendarDate) {\n setRascunho(new CalendarDateTime(data.year, data.month, data.day, rascunho?.hour ?? 0, rascunho?.minute ?? 0));\n }\n\n // Sem data escolhida, a hora se apoia em hoje: inventar outra data\n // faria o campo exibir um dia que o usuario nunca escolheu.\n function rascunharHora(hora: Time) {\n const base = rascunho ?? today(getLocalTimeZone());\n\n setRascunho(new CalendarDateTime(base.year, base.month, base.day, hora.hour, hora.minute));\n }\n\n function fechar(devolverFoco = true) {\n setOpen(false);\n\n if (devolverFoco) {\n triggerRef.current?.focus();\n }\n }\n\n function handleChange(entrada: string) {\n const mascarado = formatarEntradaDataHora(entrada);\n\n setDigitando(true);\n setTexto(mascarado);\n\n // O texto e o valor tem de concordar. Enquanto o que esta escrito nao e uma\n // data e hora inteiras, o campo nao tem valor — segurar o ultimo deixava o\n // consumidor com meia-noite enquanto a tela mostrava `18:4`.\n const lido = lerEntradaDataHora(mascarado);\n const dia = lido && toCalendarDate(lido);\n\n definir(lido && dia && !isUnavailable(dia, limites) ? lido : null);\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLInputElement>) {\n onKeyDown?.(event);\n\n if (event.key === 'ArrowDown' && !open) {\n event.preventDefault();\n setOpen(true);\n } else if (event.key === 'Escape' && open) {\n fechar(false);\n }\n }\n\n const { overlayProps } = useOverlay(\n {\n isOpen: open,\n onClose: () => fechar(false),\n isDismissable: true,\n shouldCloseOnBlur: false,\n // O gatilho nao conta como \"fora\": sem isto o ponteiro fecha o painel e o\n // clique dele reabre em seguida, e ele pisca sem abrir.\n shouldCloseOnInteractOutside: (elemento) => !fieldRef.current?.contains(elemento),\n },\n panelRef,\n );\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: fieldRef,\n overlayRef: panelRef,\n placement: 'bottom start',\n offset: 6,\n containerPadding: 8,\n isOpen: open,\n });\n\n return (\n <Field aria-describedby={ariaDescribedBy} error={error} hint={hint} id={providedId} label={label} required={required}>\n {({ id, describedBy, invalid }) => (\n <>\n <FormValue\n disabled={disabled}\n name={name}\n onFocus={() => inputRef.current?.focus()}\n required={required}\n value={escolhido ? toIsoDateTime(escolhido) : ''}\n />\n <div\n className={[styles.field, styles[size], error && styles.error, className].filter(Boolean).join(' ')}\n ref={fieldRef}\n >\n <input\n {...props}\n aria-describedby={describedBy}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n autoComplete=\"off\"\n className={styles.input}\n disabled={disabled}\n id={id}\n inputMode=\"numeric\"\n onBlur={(event) => {\n setDigitando(false);\n onBlur?.(event);\n }}\n onChange={(event) => handleChange(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={mergedRef}\n type=\"text\"\n value={exibido}\n />\n <button\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-label=\"Abrir calendário\"\n className={styles.trigger}\n disabled={disabled}\n onClick={() => (open ? fechar() : setOpen(true))}\n ref={triggerRef}\n type=\"button\"\n >\n <IconCalendar size={15} />\n </button>\n </div>\n {open &&\n createPortal(\n <div\n {...overlayProps}\n aria-label={label ? 'Calendário de ' + label : 'Calendário'}\n className={styles.panel}\n // Camada de cima: o `ariaHideOutside` do Dialog ignora quem a declara.\n data-react-aria-top-layer=\"true\"\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n fechar();\n }\n overlayProps.onKeyDown?.(event);\n }}\n ref={panelRef}\n role=\"dialog\"\n style={positionProps.style}\n >\n <div className={styles.columns}>\n <Calendar\n autoFocus\n key={versaoDoCalendario}\n isDateUnavailable={limites.isDateUnavailable}\n locale={locale}\n max={limites.max}\n min={limites.min}\n onSelect={rascunharData}\n value={rascunho && new CalendarDate(rascunho.year, rascunho.month, rascunho.day)}\n />\n <TimeSlots\n baseId={idDaLista}\n onChange={rascunharHora}\n step={step}\n value={rascunho && new Time(rascunho.hour, rascunho.minute)}\n />\n </div>\n <div className={styles.footer}>\n <Button\n onClick={() => {\n // Remontada, a grade volta ao mes de hoje mesmo que o rascunho ja fosse hoje.\n setRascunho(toCalendarDateTime(now(getLocalTimeZone())).set({ second: 0, millisecond: 0 }));\n setVersaoDoCalendario((versao) => versao + 1);\n }}\n size=\"sm\"\n variant=\"ghost\"\n type=\"button\"\n >\n Agora\n </Button>\n <div className={styles.actions}>\n <Button onClick={() => fechar()} size=\"sm\" variant=\"secondary\" type=\"button\">\n Cancelar\n </Button>\n <Button\n onClick={() => {\n definir(rascunho ?? null);\n setDigitando(false);\n fechar();\n }}\n size=\"sm\"\n type=\"button\"\n >\n Aplicar\n </Button>\n </div>\n </div>\n </div>,\n document.body,\n )}\n </>\n )}\n </Field>\n );\n}\n"],"names":["doisDigitos","valor","paraTexto","DateTimePicker","ariaDescribedBy","className","defaultValue","name","disabled","error","hint","providedId","isDateUnavailable","label","locale","max","min","step","onValueChange","onBlur","onKeyDown","placeholder","required","size","ref","value","props","fieldRef","useRef","panelRef","triggerRef","idDaLista","useId","open","setOpen","useState","limites","data","readIsoDate","internalValue","setInternalValue","readIsoDateTime","texto","setTexto","digitando","setDigitando","controlado","escolhido","rascunho","setRascunho","versaoDoCalendario","setVersaoDoCalendario","inputRef","resetRef","useFormReset","mergedRef","useMergedRefs","useEffect","exibido","definir","proximo","toIsoDateTime","rascunharData","CalendarDateTime","rascunharHora","hora","base","today","getLocalTimeZone","fechar","devolverFoco","_a","handleChange","entrada","mascarado","formatarEntradaDataHora","lido","lerEntradaDataHora","dia","toCalendarDate","isUnavailable","handleKeyDown","event","overlayProps","useOverlay","elemento","positionProps","useOverlayPosition","Field","id","describedBy","invalid","jsxs","Fragment","jsx","FormValue","styles","IconCalendar","createPortal","Calendar","CalendarDate","TimeSlots","Time","Button","toCalendarDateTime","now","versao"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const _="_field_1dita_2 _field_6g4z6_2",t="_error_1dita_6 _error_6g4z6_12",e="_sm_1dita_10 _sm_6g4z6_54",o="_md_1dita_14 _md_6g4z6_59",r="_input_1dita_18 _input_6g4z6_12",i="_trigger_1dita_22 _trigger_6g4z6_72",n="_panel_1dita_26",s="_columns_1dita_37",d="_footer_1dita_48",a="_actions_1dita_58",c={field:_,error:t,sm:e,md:o,input:r,trigger:i,panel:n,columns:s,footer:d,actions:a};exports.actions=a;exports.columns=s;exports.default=c;exports.error=t;exports.field=_;exports.footer=d;exports.input=r;exports.md=o;exports.panel=n;exports.sm=e;exports.trigger=i;
2
+ //# sourceMappingURL=DateTimePicker.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimePicker.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ const _ = "_field_1dita_2 _field_6g4z6_2", t = "_error_1dita_6 _error_6g4z6_12", o = "_sm_1dita_10 _sm_6g4z6_54", i = "_md_1dita_14 _md_6g4z6_59", n = "_input_1dita_18 _input_6g4z6_12", r = "_trigger_1dita_22 _trigger_6g4z6_72", s = "_panel_1dita_26", e = "_columns_1dita_37", d = "_footer_1dita_48", a = "_actions_1dita_58", c = {
2
+ field: _,
3
+ error: t,
4
+ sm: o,
5
+ md: i,
6
+ input: n,
7
+ trigger: r,
8
+ panel: s,
9
+ columns: e,
10
+ footer: d,
11
+ actions: a
12
+ };
13
+ export {
14
+ a as actions,
15
+ e as columns,
16
+ c as default,
17
+ t as error,
18
+ _ as field,
19
+ d as footer,
20
+ n as input,
21
+ i as md,
22
+ s as panel,
23
+ o as sm,
24
+ r as trigger
25
+ };
26
+ //# sourceMappingURL=DateTimePicker.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimePicker.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),q=require("react"),s=require("./Field.module.css.cjs"),x=require("../Label/Label.cjs");function y({"aria-describedby":r,className:f,characterCount:i=0,children:m,error:e,hint:a,id:j,label:t,maxLength:n,required:v=!1,showCharacterCount:o=!1,size:b="md",...g}){const B=q.useId(),l=j??`field-${B}`,c=`${l}-message`,u=`${l}-character-count`,N=[r,e||a?c:void 0,o?u:void 0].filter(Boolean).join(" ")||void 0,$=[s.default.control,b==="sm"&&s.default.sm,e&&s.default.invalid].filter(Boolean).join(" ");return d.jsxs("div",{...g,className:[s.default.field,f].filter(Boolean).join(" "),children:[t&&d.jsx(x.Label,{htmlFor:l,required:v,children:t}),m({className:$,describedBy:N,id:l,invalid:!!e}),(e||a)&&d.jsx("span",{className:e?s.default.errorMessage:s.default.hint,id:c,role:e?"alert":void 0,children:e||a}),o&&d.jsx("span",{className:s.default.characterCount,id:u,children:n?`${i}/${n}`:i})]})}exports.Field=y;
2
+ //# sourceMappingURL=Field.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.cjs","sources":["../../../../src/components/forms/Field/Field.tsx"],"sourcesContent":["import { useId, type ComponentPropsWithRef, type ReactNode } from 'react';\nimport { Label } from '../Label';\nimport styles from './Field.module.css';\n\nexport type FieldSize = 'sm' | 'md';\n\nexport interface FieldWiring {\n /** O visual dos campos do sistema para o controle — borda, foco, erro e tamanho. A classe do controle vence a dele. */\n className: string;\n describedBy: string | undefined;\n id: string;\n invalid: boolean;\n}\n\nexport interface FieldProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n 'aria-describedby'?: string;\n characterCount?: number;\n children: (wiring: FieldWiring) => ReactNode;\n error?: string;\n hint?: string;\n id?: string;\n label?: string;\n maxLength?: number;\n required?: boolean;\n showCharacterCount?: boolean;\n size?: FieldSize;\n}\n\nexport function Field({\n 'aria-describedby': ariaDescribedBy,\n className,\n characterCount = 0,\n children,\n error,\n hint,\n id: providedId,\n label,\n maxLength,\n required = false,\n showCharacterCount = false,\n size = 'md',\n ...props\n}: FieldProps) {\n const generatedId = useId();\n const id = providedId ?? `field-${generatedId}`;\n const messageId = `${id}-message`;\n const characterCountId = `${id}-character-count`;\n const describedBy = [\n ariaDescribedBy,\n error || hint ? messageId : undefined,\n showCharacterCount ? characterCountId : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n const controlClassName = [styles.control, size === 'sm' && styles.sm, error && styles.invalid].filter(Boolean).join(' ');\n\n return (\n <div {...props} className={[styles.field, className].filter(Boolean).join(' ')}>\n {label && <Label htmlFor={id} required={required}>{label}</Label>}\n {children({ className: controlClassName, describedBy, id, invalid: Boolean(error) })}\n {(error || hint) && (\n <span className={error ? styles.errorMessage : styles.hint} id={messageId} role={error ? 'alert' : undefined}>\n {error || hint}\n </span>\n )}\n {showCharacterCount && (\n <span className={styles.characterCount} id={characterCountId}>\n {maxLength ? `${characterCount}/${maxLength}` : characterCount}\n </span>\n )}\n </div>\n );\n}\n"],"names":["Field","ariaDescribedBy","className","characterCount","children","error","hint","providedId","label","maxLength","required","showCharacterCount","size","props","generatedId","useId","id","messageId","characterCountId","describedBy","controlClassName","styles","jsxs","jsx","Label"],"mappings":"4MA4BO,SAASA,EAAM,CACpB,mBAAoBC,EACpB,UAAAC,EACA,eAAAC,EAAiB,EACjB,SAAAC,EACA,MAAAC,EACA,KAAAC,EACA,GAAIC,EACJ,MAAAC,EACA,UAAAC,EACA,SAAAC,EAAW,GACX,mBAAAC,EAAqB,GACrB,KAAAC,EAAO,KACP,GAAGC,CACL,EAAe,CACb,MAAMC,EAAcC,EAAAA,MAAA,EACdC,EAAKT,GAAc,SAASO,CAAW,GACvCG,EAAY,GAAGD,CAAE,WACjBE,EAAmB,GAAGF,CAAE,mBACxBG,EAAc,CAClBlB,EACAI,GAASC,EAAOW,EAAY,OAC5BN,EAAqBO,EAAmB,MAAA,EAEvC,OAAO,OAAO,EACd,KAAK,GAAG,GAAK,OACVE,EAAmB,CAACC,EAAAA,QAAO,QAAST,IAAS,MAAQS,UAAO,GAAIhB,GAASgB,EAAAA,QAAO,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAEvH,OACEC,EAAAA,KAAC,MAAA,CAAK,GAAGT,EAAO,UAAW,CAACQ,UAAO,MAAOnB,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC1E,SAAA,CAAAM,GAASe,EAAAA,IAACC,EAAAA,MAAA,CAAM,QAASR,EAAI,SAAAN,EAAqB,SAAAF,EAAM,EACxDJ,EAAS,CAAE,UAAWgB,EAAkB,YAAAD,EAAa,GAAAH,EAAI,QAAS,EAAQX,EAAQ,GACjFA,GAASC,IACTiB,EAAAA,IAAC,OAAA,CAAK,UAAWlB,EAAQgB,UAAO,aAAeA,EAAAA,QAAO,KAAM,GAAIJ,EAAW,KAAMZ,EAAQ,QAAU,OAChG,YAASC,EACZ,EAEDK,GACCY,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,eAAgB,GAAIH,EACzC,SAAAT,EAAY,GAAGN,CAAc,IAAIM,CAAS,GAAKN,CAAA,CAClD,CAAA,EAEJ,CAEJ"}
@@ -0,0 +1,35 @@
1
+ import { jsxs as b, jsx as a } from "react/jsx-runtime";
2
+ import { useId as g } from "react";
3
+ import s from "./Field.module.css.js";
4
+ import { Label as h } from "../Label/Label.js";
5
+ function k({
6
+ "aria-describedby": r,
7
+ className: f,
8
+ characterCount: d = 0,
9
+ children: p,
10
+ error: e,
11
+ hint: o,
12
+ id: v,
13
+ label: l,
14
+ maxLength: n,
15
+ required: j = !1,
16
+ showCharacterCount: c = !1,
17
+ size: B = "md",
18
+ ...N
19
+ }) {
20
+ const $ = g(), i = v ?? `field-${$}`, t = `${i}-message`, m = `${i}-character-count`, u = [
21
+ r,
22
+ e || o ? t : void 0,
23
+ c ? m : void 0
24
+ ].filter(Boolean).join(" ") || void 0, I = [s.control, B === "sm" && s.sm, e && s.invalid].filter(Boolean).join(" ");
25
+ return /* @__PURE__ */ b("div", { ...N, className: [s.field, f].filter(Boolean).join(" "), children: [
26
+ l && /* @__PURE__ */ a(h, { htmlFor: i, required: j, children: l }),
27
+ p({ className: I, describedBy: u, id: i, invalid: !!e }),
28
+ (e || o) && /* @__PURE__ */ a("span", { className: e ? s.errorMessage : s.hint, id: t, role: e ? "alert" : void 0, children: e || o }),
29
+ c && /* @__PURE__ */ a("span", { className: s.characterCount, id: m, children: n ? `${d}/${n}` : d })
30
+ ] });
31
+ }
32
+ export {
33
+ k as Field
34
+ };
35
+ //# sourceMappingURL=Field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.js","sources":["../../../../src/components/forms/Field/Field.tsx"],"sourcesContent":["import { useId, type ComponentPropsWithRef, type ReactNode } from 'react';\nimport { Label } from '../Label';\nimport styles from './Field.module.css';\n\nexport type FieldSize = 'sm' | 'md';\n\nexport interface FieldWiring {\n /** O visual dos campos do sistema para o controle — borda, foco, erro e tamanho. A classe do controle vence a dele. */\n className: string;\n describedBy: string | undefined;\n id: string;\n invalid: boolean;\n}\n\nexport interface FieldProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n 'aria-describedby'?: string;\n characterCount?: number;\n children: (wiring: FieldWiring) => ReactNode;\n error?: string;\n hint?: string;\n id?: string;\n label?: string;\n maxLength?: number;\n required?: boolean;\n showCharacterCount?: boolean;\n size?: FieldSize;\n}\n\nexport function Field({\n 'aria-describedby': ariaDescribedBy,\n className,\n characterCount = 0,\n children,\n error,\n hint,\n id: providedId,\n label,\n maxLength,\n required = false,\n showCharacterCount = false,\n size = 'md',\n ...props\n}: FieldProps) {\n const generatedId = useId();\n const id = providedId ?? `field-${generatedId}`;\n const messageId = `${id}-message`;\n const characterCountId = `${id}-character-count`;\n const describedBy = [\n ariaDescribedBy,\n error || hint ? messageId : undefined,\n showCharacterCount ? characterCountId : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n const controlClassName = [styles.control, size === 'sm' && styles.sm, error && styles.invalid].filter(Boolean).join(' ');\n\n return (\n <div {...props} className={[styles.field, className].filter(Boolean).join(' ')}>\n {label && <Label htmlFor={id} required={required}>{label}</Label>}\n {children({ className: controlClassName, describedBy, id, invalid: Boolean(error) })}\n {(error || hint) && (\n <span className={error ? styles.errorMessage : styles.hint} id={messageId} role={error ? 'alert' : undefined}>\n {error || hint}\n </span>\n )}\n {showCharacterCount && (\n <span className={styles.characterCount} id={characterCountId}>\n {maxLength ? `${characterCount}/${maxLength}` : characterCount}\n </span>\n )}\n </div>\n );\n}\n"],"names":["Field","ariaDescribedBy","className","characterCount","children","error","hint","providedId","label","maxLength","required","showCharacterCount","size","props","generatedId","useId","id","messageId","characterCountId","describedBy","controlClassName","styles","jsxs","jsx","Label"],"mappings":";;;;AA4BO,SAASA,EAAM;AAAA,EACpB,oBAAoBC;AAAA,EACpB,WAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,IAAIC;AAAA,EACJ,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,oBAAAC,IAAqB;AAAA,EACrB,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GAAe;AACb,QAAMC,IAAcC,EAAA,GACdC,IAAKT,KAAc,SAASO,CAAW,IACvCG,IAAY,GAAGD,CAAE,YACjBE,IAAmB,GAAGF,CAAE,oBACxBG,IAAc;AAAA,IAClBlB;AAAA,IACAI,KAASC,IAAOW,IAAY;AAAA,IAC5BN,IAAqBO,IAAmB;AAAA,EAAA,EAEvC,OAAO,OAAO,EACd,KAAK,GAAG,KAAK,QACVE,IAAmB,CAACC,EAAO,SAAST,MAAS,QAAQS,EAAO,IAAIhB,KAASgB,EAAO,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAEvH,SACE,gBAAAC,EAAC,OAAA,EAAK,GAAGT,GAAO,WAAW,CAACQ,EAAO,OAAOnB,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAC1E,UAAA;AAAA,IAAAM,KAAS,gBAAAe,EAACC,GAAA,EAAM,SAASR,GAAI,UAAAN,GAAqB,UAAAF,GAAM;AAAA,IACxDJ,EAAS,EAAE,WAAWgB,GAAkB,aAAAD,GAAa,IAAAH,GAAI,SAAS,EAAQX,GAAQ;AAAA,KACjFA,KAASC,MACT,gBAAAiB,EAAC,QAAA,EAAK,WAAWlB,IAAQgB,EAAO,eAAeA,EAAO,MAAM,IAAIJ,GAAW,MAAMZ,IAAQ,UAAU,QAChG,eAASC,GACZ;AAAA,IAEDK,KACC,gBAAAY,EAAC,QAAA,EAAK,WAAWF,EAAO,gBAAgB,IAAIH,GACzC,UAAAT,IAAY,GAAGN,CAAc,IAAIM,CAAS,KAAKN,EAAA,CAClD;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_field_1qg91_1",o="_hint_1qg91_8",t="_errorMessage_1qg91_9",r="_characterCount_1qg91_10",n="_formValue_1qg91_31",s="_control_1qg91_40",_="_invalid_1qg91_59",a="_sm_1qg91_77",c={field:e,hint:o,errorMessage:t,characterCount:r,formValue:n,control:s,invalid:_,sm:a};exports.characterCount=r;exports.control=s;exports.default=c;exports.errorMessage=t;exports.field=e;exports.formValue=n;exports.hint=o;exports.invalid=_;exports.sm=a;
2
+ //# sourceMappingURL=Field.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ const o = "_field_1qg91_1", t = "_hint_1qg91_8", _ = "_errorMessage_1qg91_9", r = "_characterCount_1qg91_10", e = "_formValue_1qg91_31", n = "_control_1qg91_40", s = "_invalid_1qg91_59", c = "_sm_1qg91_77", a = {
2
+ field: o,
3
+ hint: t,
4
+ errorMessage: _,
5
+ characterCount: r,
6
+ formValue: e,
7
+ control: n,
8
+ invalid: s,
9
+ sm: c
10
+ };
11
+ export {
12
+ r as characterCount,
13
+ n as control,
14
+ a as default,
15
+ _ as errorMessage,
16
+ o as field,
17
+ e as formValue,
18
+ t as hint,
19
+ s as invalid,
20
+ c as sm
21
+ };
22
+ //# sourceMappingURL=Field.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),n=require("./Field.module.css.cjs");function d({disabled:t,name:e,onFocus:o,required:i,value:r}){return i?u.jsx("input",{"aria-hidden":!0,autoComplete:"off",className:n.default.formValue,disabled:t,name:e,onChange:()=>{},onFocus:o,required:!0,tabIndex:-1,value:r}):e===void 0?null:u.jsx("input",{disabled:t,name:e,type:"hidden",value:r})}exports.FormValue=d;
2
+ //# sourceMappingURL=FormValue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormValue.cjs","sources":["../../../../src/components/forms/Field/FormValue.tsx"],"sourcesContent":["import styles from './Field.module.css';\n\nexport interface FormValueProps {\n disabled: boolean;\n name?: string;\n /** O navegador foca o campo invalido no envio; o foco segue para o controle que a pessoa enxerga. */\n onFocus: () => void;\n required: boolean;\n value: string;\n}\n\n/**\n * Leva ao formulario o valor de um campo sem controle nativo por baixo. Oculto quando basta enviar; obrigatorio, vai\n * num campo que o navegador valida, porque o oculto fica fora da validacao e o envio vazio passava.\n */\nexport function FormValue({ disabled, name, onFocus, required, value }: FormValueProps) {\n if (required) {\n return (\n <input\n aria-hidden\n autoComplete=\"off\"\n className={styles.formValue}\n disabled={disabled}\n name={name}\n onChange={() => undefined}\n onFocus={onFocus}\n required\n tabIndex={-1}\n value={value}\n />\n );\n }\n\n return name === undefined ? null : <input disabled={disabled} name={name} type=\"hidden\" value={value} />;\n}\n"],"names":["FormValue","disabled","name","onFocus","required","value","jsx","styles"],"mappings":"yJAeO,SAASA,EAAU,CAAE,SAAAC,EAAU,KAAAC,EAAM,QAAAC,EAAS,SAAAC,EAAU,MAAAC,GAAyB,CACtF,OAAID,EAEAE,EAAAA,IAAC,QAAA,CACC,cAAW,GACX,aAAa,MACb,UAAWC,EAAAA,QAAO,UAClB,SAAAN,EACA,KAAAC,EACA,SAAU,IAAA,GACV,QAAAC,EACA,SAAQ,GACR,SAAU,GACV,MAAAE,CAAA,CAAA,EAKCH,IAAS,OAAY,KAAOI,EAAAA,IAAC,SAAM,SAAAL,EAAoB,KAAAC,EAAY,KAAK,SAAS,MAAAG,CAAA,CAAc,CACxG"}
@@ -0,0 +1,24 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import n from "./Field.module.css.js";
3
+ function d({ disabled: t, name: r, onFocus: i, required: u, value: e }) {
4
+ return u ? /* @__PURE__ */ o(
5
+ "input",
6
+ {
7
+ "aria-hidden": !0,
8
+ autoComplete: "off",
9
+ className: n.formValue,
10
+ disabled: t,
11
+ name: r,
12
+ onChange: () => {
13
+ },
14
+ onFocus: i,
15
+ required: !0,
16
+ tabIndex: -1,
17
+ value: e
18
+ }
19
+ ) : r === void 0 ? null : /* @__PURE__ */ o("input", { disabled: t, name: r, type: "hidden", value: e });
20
+ }
21
+ export {
22
+ d as FormValue
23
+ };
24
+ //# sourceMappingURL=FormValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormValue.js","sources":["../../../../src/components/forms/Field/FormValue.tsx"],"sourcesContent":["import styles from './Field.module.css';\n\nexport interface FormValueProps {\n disabled: boolean;\n name?: string;\n /** O navegador foca o campo invalido no envio; o foco segue para o controle que a pessoa enxerga. */\n onFocus: () => void;\n required: boolean;\n value: string;\n}\n\n/**\n * Leva ao formulario o valor de um campo sem controle nativo por baixo. Oculto quando basta enviar; obrigatorio, vai\n * num campo que o navegador valida, porque o oculto fica fora da validacao e o envio vazio passava.\n */\nexport function FormValue({ disabled, name, onFocus, required, value }: FormValueProps) {\n if (required) {\n return (\n <input\n aria-hidden\n autoComplete=\"off\"\n className={styles.formValue}\n disabled={disabled}\n name={name}\n onChange={() => undefined}\n onFocus={onFocus}\n required\n tabIndex={-1}\n value={value}\n />\n );\n }\n\n return name === undefined ? null : <input disabled={disabled} name={name} type=\"hidden\" value={value} />;\n}\n"],"names":["FormValue","disabled","name","onFocus","required","value","jsx","styles"],"mappings":";;AAeO,SAASA,EAAU,EAAE,UAAAC,GAAU,MAAAC,GAAM,SAAAC,GAAS,UAAAC,GAAU,OAAAC,KAAyB;AACtF,SAAID,IAEA,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAW;AAAA,MACX,cAAa;AAAA,MACb,WAAWC,EAAO;AAAA,MAClB,UAAAN;AAAA,MACA,MAAAC;AAAA,MACA,UAAU,MAAA;AAAA;AAAA,MACV,SAAAC;AAAA,MACA,UAAQ;AAAA,MACR,UAAU;AAAA,MACV,OAAAE;AAAA,IAAA;AAAA,EAAA,IAKCH,MAAS,SAAY,OAAO,gBAAAI,EAAC,WAAM,UAAAL,GAAoB,MAAAC,GAAY,MAAK,UAAS,OAAAG,EAAA,CAAc;AACxG;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),v=require("react"),b=require("../../../utils/formatters/formatarTamanhoDeArquivo.cjs"),r=require("./FileUpload.module.css.cjs"),G=require("../Field/Field.cjs"),m=require("../../icons/icons.cjs"),E=require("../../actions/Button/Button.cjs"),H=require("../../feedback/Progress/Progress.cjs"),$=require("../../actions/ButtonIcon/ButtonIcon.cjs"),J={audio:"áudio",image:"imagem",text:"texto",video:"vídeo"};function K(n){return(n??"").split(",").map(t=>t.trim().toLowerCase()).filter(Boolean)}function Q(n){if(n.startsWith("."))return n.slice(1).toUpperCase();const[t="",o=""]=n.split("/");return o==="*"?J[t]??t:o.split("+")[0].toUpperCase()}function X(n){return n.length<2?n.join(""):`${n.slice(0,-1).join(", ")} ou ${n.at(-1)}`}function Y(n,t){if(t.length===0)return!0;const o=n.name.toLowerCase(),f=n.type.toLowerCase();return t.some(i=>i.startsWith(".")?o.endsWith(i):i.endsWith("/*")?f.startsWith(i.slice(0,-1)):f===i)}function Z({accept:n,className:t,disabled:o=!1,error:f,hint:i,id:u,items:p=[],label:j,maxSize:s,multiple:x=!1,onCancel:U,onFilesRejected:q,onFilesSelected:O,onRemove:k,onRetry:w,...z}){const C=v.useRef(null),N=v.useId(),[L,D]=v.useState(!1),[M,F]=v.useState(),T=K(n),y=X([...new Set(T.map(Q))]),I=s===void 0?void 0:b.formatarTamanhoDeArquivo(s),g=[y,I&&`até ${I}`].filter(Boolean).join(", ");function W({file:a,reason:l},c){return l==="type"?`${c} não é ${y}.`:`${c} passa de ${I}.`}function B(a){const l=x?a:a.slice(0,1),c=[],h=[];for(const d of l)Y(d,T)?s!==void 0&&d.size>s?h.push({file:d,reason:"size"}):c.push(d):h.push({file:d,reason:"type"});F(h.length===0?void 0:h.map(d=>W(d,l.length===1?"O arquivo":d.file.name)).join(" ")),c.length>0&&O(c),h.length>0&&(q==null||q(h))}function P(a){B(Array.from(a.target.files??[])),a.target.value=""}function A(a){a.preventDefault(),a.dataTransfer.dropEffect=o?"none":"copy",o||D(!0)}function S(a){a.currentTarget.contains(a.relatedTarget)||D(!1)}function _(a){a.preventDefault(),D(!1),o||B(Array.from(a.dataTransfer.files))}function R(){var a,l;(a=C.current)==null||a.focus(),(l=C.current)==null||l.click()}const V=f??M;return e.jsxs("div",{...z,className:[r.default.fileUpload,t].filter(Boolean).join(" "),children:[e.jsx(G.Field,{"aria-describedby":g?N:void 0,error:V,hint:i,id:u,label:j,children:({describedBy:a,id:l,invalid:c})=>e.jsxs("div",{className:[r.default.zone,L&&r.default.dragging,c&&r.default.invalid,o&&r.default.disabled].filter(Boolean).join(" "),onDragEnter:A,onDragLeave:S,onDragOver:A,onDrop:_,children:[e.jsx("span",{"aria-hidden":"true",className:r.default.iconBox,children:e.jsx(m.IconUpload,{})}),e.jsxs("p",{className:r.default.instruction,children:[x?"Arraste os arquivos aqui ou":"Arraste o arquivo aqui ou",e.jsx(E.Button,{"aria-hidden":!0,disabled:o,onClick:R,size:"sm",tabIndex:-1,variant:"secondary",children:"escolha do computador"})]}),g&&e.jsx("p",{className:r.default.restrictions,id:N,children:g.charAt(0).toUpperCase()+g.slice(1)}),e.jsx("input",{accept:n,"aria-describedby":a,"aria-invalid":c||void 0,className:r.default.input,disabled:o,id:l,multiple:x,onChange:P,ref:C,type:"file"})]})}),p.length>0&&e.jsx("ul",{className:r.default.items,children:p.map(a=>e.jsx(ee,{item:a,onCancel:U,onRemove:k,onRetry:w},a.id))})]})}function ee({item:n,onCancel:t,onRemove:o,onRetry:f}){const{id:i,name:u,progress:p,size:j,status:s}=n;return e.jsxs("li",{className:[r.default.item,s==="error"&&r.default.failed].filter(Boolean).join(" "),children:[e.jsx("span",{"aria-hidden":"true",className:r.default.fileIcon,children:e.jsx(m.IconFile,{})}),e.jsxs("div",{className:r.default.body,children:[e.jsx("span",{className:r.default.name,title:u,children:u}),e.jsxs("span",{className:r.default.meta,children:[b.formatarTamanhoDeArquivo(j),e.jsx("span",{"aria-hidden":"true",children:"·"}),e.jsxs("span",{className:s==="error"?r.default.failedMessage:r.default.status,role:"status",children:[s==="done"&&e.jsx(m.IconCheckCircle,{className:r.default.doneIcon}),s==="error"&&e.jsx(m.IconExclamationCircle,{}),s==="uploading"&&"Enviando",s==="done"&&"Enviado",s==="error"&&(n.error??"Falha no envio.")]})]}),s==="uploading"&&e.jsx(H.Progress,{label:`Enviando ${u}`,showValue:!0,size:"sm",value:p})]}),e.jsxs("div",{className:r.default.actions,children:[s==="error"&&f&&e.jsx(E.Button,{"aria-label":`Tentar de novo: ${u}`,onClick:()=>f(i),size:"sm",variant:"ghost",children:"Tentar de novo"}),s==="uploading"&&t&&e.jsx($.ButtonIcon,{icon:e.jsx(m.IconClose,{}),label:`Cancelar envio de ${u}`,onClick:()=>t(i),size:"sm",variant:"ghost"}),s!=="uploading"&&o&&e.jsx($.ButtonIcon,{icon:e.jsx(m.IconTrash,{}),label:`Remover ${u}`,onClick:()=>o(i),size:"sm",variant:"ghost"})]})]})}exports.FileUpload=Z;
2
+ //# sourceMappingURL=FileUpload.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.cjs","sources":["../../../../src/components/forms/FileUpload/FileUpload.tsx"],"sourcesContent":["import { useId, useRef, useState, type ChangeEvent, type ComponentPropsWithRef, type DragEvent } from 'react';\nimport { Button } from '../../actions/Button';\nimport { ButtonIcon } from '../../actions/ButtonIcon';\nimport { Progress } from '../../feedback/Progress';\nimport { IconCheckCircle, IconClose, IconExclamationCircle, IconFile, IconTrash, IconUpload } from '../../icons';\nimport { formatarTamanhoDeArquivo } from '../../../utils/formatters/formatarTamanhoDeArquivo';\nimport { Field } from '../Field';\nimport styles from './FileUpload.module.css';\n\nexport type FileRejectionReason = 'type' | 'size';\n\nexport interface FileRejection {\n file: File;\n reason: FileRejectionReason;\n}\n\nexport type FileUploadStatus = 'uploading' | 'done' | 'error';\n\n/** Um arquivo em envio. Quem envia e o produto: ele monta a lista e informa o progresso. */\nexport interface FileUploadItem {\n error?: string;\n id: string;\n name: string;\n /** De 0 a 100. Sem ele, o progresso e indeterminado. */\n progress?: number;\n size: number;\n status: FileUploadStatus;\n}\n\nexport interface FileUploadProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'onDrop'> {\n /** Os tipos aceitos, como no `<input type=\"file\">`: `.pdf,image/*`. */\n accept?: string;\n disabled?: boolean;\n /** Vence a mensagem de recusa do proprio campo. */\n error?: string;\n hint?: string;\n items?: readonly FileUploadItem[];\n label: string;\n /** Limite por arquivo, em bytes. */\n maxSize?: number;\n multiple?: boolean;\n onCancel?: (id: string) => void;\n /** Recebe so os arquivos aceitos. */\n onFilesSelected: (files: File[]) => void;\n onFilesRejected?: (rejections: FileRejection[]) => void;\n onRemove?: (id: string) => void;\n onRetry?: (id: string) => void;\n}\n\nconst NOMES_DE_FAMILIA: Record<string, string> = { audio: 'áudio', image: 'imagem', text: 'texto', video: 'vídeo' };\n\nfunction tiposAceitos(accept?: string) {\n return (accept ?? '')\n .split(',')\n .map((tipo) => tipo.trim().toLowerCase())\n .filter(Boolean);\n}\n\nfunction nomeDoTipo(tipo: string) {\n if (tipo.startsWith('.')) {\n return tipo.slice(1).toUpperCase();\n }\n\n const [familia = '', subtipo = ''] = tipo.split('/');\n return subtipo === '*' ? (NOMES_DE_FAMILIA[familia] ?? familia) : subtipo.split('+')[0]!.toUpperCase();\n}\n\nfunction listarComOu(itens: string[]) {\n return itens.length < 2 ? itens.join('') : `${itens.slice(0, -1).join(', ')} ou ${itens.at(-1)}`;\n}\n\nfunction aceitaOTipo(file: File, tipos: string[]) {\n if (tipos.length === 0) {\n return true;\n }\n\n const nome = file.name.toLowerCase();\n const mime = file.type.toLowerCase();\n\n return tipos.some((tipo) => {\n if (tipo.startsWith('.')) return nome.endsWith(tipo);\n if (tipo.endsWith('/*')) return mime.startsWith(tipo.slice(0, -1));\n return mime === tipo;\n });\n}\n\nexport function FileUpload({\n accept,\n className,\n disabled = false,\n error,\n hint,\n id,\n items = [],\n label,\n maxSize,\n multiple = false,\n onCancel,\n onFilesRejected,\n onFilesSelected,\n onRemove,\n onRetry,\n ...props\n}: FileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const restrictionsId = useId();\n const [dragging, setDragging] = useState(false);\n const [rejectionMessage, setRejectionMessage] = useState<string>();\n\n const tipos = tiposAceitos(accept);\n const descricaoDosTipos = listarComOu([...new Set(tipos.map(nomeDoTipo))]);\n const limite = maxSize === undefined ? undefined : formatarTamanhoDeArquivo(maxSize);\n const restricoes = [descricaoDosTipos, limite && `até ${limite}`].filter(Boolean).join(', ');\n\n function motivoDaRecusa({ file, reason }: FileRejection, sujeito: string) {\n return reason === 'type' ? `${sujeito} não é ${descricaoDosTipos}.` : `${sujeito} passa de ${limite}.`;\n }\n\n function receber(oferecidos: File[]) {\n const files = multiple ? oferecidos : oferecidos.slice(0, 1);\n const aceitos: File[] = [];\n const recusas: FileRejection[] = [];\n\n for (const file of files) {\n if (!aceitaOTipo(file, tipos)) recusas.push({ file, reason: 'type' });\n else if (maxSize !== undefined && file.size > maxSize) recusas.push({ file, reason: 'size' });\n else aceitos.push(file);\n }\n\n setRejectionMessage(\n recusas.length === 0\n ? undefined\n : recusas.map((recusa) => motivoDaRecusa(recusa, files.length === 1 ? 'O arquivo' : recusa.file.name)).join(' '),\n );\n\n if (aceitos.length > 0) onFilesSelected(aceitos);\n if (recusas.length > 0) onFilesRejected?.(recusas);\n }\n\n function handleChange(event: ChangeEvent<HTMLInputElement>) {\n receber(Array.from(event.target.files ?? []));\n // Limpo, o seletor aceita de novo o mesmo arquivo, como no tentar outra vez.\n event.target.value = '';\n }\n\n function handleDragOver(event: DragEvent<HTMLDivElement>) {\n event.preventDefault();\n event.dataTransfer.dropEffect = disabled ? 'none' : 'copy';\n if (!disabled) setDragging(true);\n }\n\n function handleDragLeave(event: DragEvent<HTMLDivElement>) {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) setDragging(false);\n }\n\n function handleDrop(event: DragEvent<HTMLDivElement>) {\n event.preventDefault();\n setDragging(false);\n if (!disabled) receber(Array.from(event.dataTransfer.files));\n }\n\n function choose() {\n inputRef.current?.focus();\n inputRef.current?.click();\n }\n\n const fieldError = error ?? rejectionMessage;\n\n return (\n <div {...props} className={[styles.fileUpload, className].filter(Boolean).join(' ')}>\n <Field aria-describedby={restricoes ? restrictionsId : undefined} error={fieldError} hint={hint} id={id} label={label}>\n {({ describedBy, id: inputId, invalid }) => (\n <div\n className={[styles.zone, dragging && styles.dragging, invalid && styles.invalid, disabled && styles.disabled]\n .filter(Boolean)\n .join(' ')}\n onDragEnter={handleDragOver}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <span aria-hidden=\"true\" className={styles.iconBox}>\n <IconUpload />\n </span>\n <p className={styles.instruction}>\n {multiple ? 'Arraste os arquivos aqui ou' : 'Arraste o arquivo aqui ou'}\n {/* Fora da tabulacao e da arvore: o controle acessivel e o seletor nativo, que recebe o foco. */}\n <Button aria-hidden disabled={disabled} onClick={choose} size=\"sm\" tabIndex={-1} variant=\"secondary\">\n escolha do computador\n </Button>\n </p>\n {restricoes && (\n <p className={styles.restrictions} id={restrictionsId}>\n {restricoes.charAt(0).toUpperCase() + restricoes.slice(1)}\n </p>\n )}\n <input\n accept={accept}\n aria-describedby={describedBy}\n aria-invalid={invalid || undefined}\n className={styles.input}\n disabled={disabled}\n id={inputId}\n multiple={multiple}\n onChange={handleChange}\n ref={inputRef}\n type=\"file\"\n />\n </div>\n )}\n </Field>\n {items.length > 0 && (\n <ul className={styles.items}>\n {items.map((item) => (\n <FileUploadRow item={item} key={item.id} onCancel={onCancel} onRemove={onRemove} onRetry={onRetry} />\n ))}\n </ul>\n )}\n </div>\n );\n}\n\ninterface FileUploadRowProps extends Pick<FileUploadProps, 'onCancel' | 'onRemove' | 'onRetry'> {\n item: FileUploadItem;\n}\n\nfunction FileUploadRow({ item, onCancel, onRemove, onRetry }: FileUploadRowProps) {\n const { id, name, progress, size, status } = item;\n\n return (\n <li className={[styles.item, status === 'error' && styles.failed].filter(Boolean).join(' ')}>\n <span aria-hidden=\"true\" className={styles.fileIcon}>\n <IconFile />\n </span>\n <div className={styles.body}>\n <span className={styles.name} title={name}>\n {name}\n </span>\n <span className={styles.meta}>\n {formatarTamanhoDeArquivo(size)}\n <span aria-hidden=\"true\">·</span>\n <span className={status === 'error' ? styles.failedMessage : styles.status} role=\"status\">\n {status === 'done' && <IconCheckCircle className={styles.doneIcon} />}\n {status === 'error' && <IconExclamationCircle />}\n {status === 'uploading' && 'Enviando'}\n {status === 'done' && 'Enviado'}\n {status === 'error' && (item.error ?? 'Falha no envio.')}\n </span>\n </span>\n {status === 'uploading' && <Progress label={`Enviando ${name}`} showValue size=\"sm\" value={progress} />}\n </div>\n <div className={styles.actions}>\n {status === 'error' && onRetry && (\n <Button aria-label={`Tentar de novo: ${name}`} onClick={() => onRetry(id)} size=\"sm\" variant=\"ghost\">\n Tentar de novo\n </Button>\n )}\n {status === 'uploading' && onCancel && (\n <ButtonIcon icon={<IconClose />} label={`Cancelar envio de ${name}`} onClick={() => onCancel(id)} size=\"sm\" variant=\"ghost\" />\n )}\n {status !== 'uploading' && onRemove && (\n <ButtonIcon icon={<IconTrash />} label={`Remover ${name}`} onClick={() => onRemove(id)} size=\"sm\" variant=\"ghost\" />\n )}\n </div>\n </li>\n );\n}\n"],"names":["NOMES_DE_FAMILIA","tiposAceitos","accept","tipo","nomeDoTipo","familia","subtipo","listarComOu","itens","aceitaOTipo","file","tipos","nome","mime","FileUpload","className","disabled","error","hint","id","items","label","maxSize","multiple","onCancel","onFilesRejected","onFilesSelected","onRemove","onRetry","props","inputRef","useRef","restrictionsId","useId","dragging","setDragging","useState","rejectionMessage","setRejectionMessage","descricaoDosTipos","limite","formatarTamanhoDeArquivo","restricoes","motivoDaRecusa","reason","sujeito","receber","oferecidos","files","aceitos","recusas","recusa","handleChange","event","handleDragOver","handleDragLeave","handleDrop","choose","_a","_b","fieldError","jsxs","styles","jsx","Field","describedBy","inputId","invalid","IconUpload","Button","item","FileUploadRow","name","progress","size","status","IconFile","IconCheckCircle","IconExclamationCircle","Progress","ButtonIcon","IconClose","IconTrash"],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { jsxs as f, jsx as r } from "react/jsx-runtime";
2
+ import { useRef as J, useId as K, useState as B } from "react";
3
+ import { formatarTamanhoDeArquivo as j } from "../../../utils/formatters/formatarTamanhoDeArquivo.js";
4
+ import o from "./FileUpload.module.css.js";
5
+ import { Field as Q } from "../Field/Field.js";
6
+ import { IconUpload as R, IconFile as S, IconCheckCircle as X, IconExclamationCircle as Y, IconClose as Z, IconTrash as ee } from "../../icons/icons.js";
7
+ import { Button as k } from "../../actions/Button/Button.js";
8
+ import { Progress as re } from "../../feedback/Progress/Progress.js";
9
+ import { ButtonIcon as U } from "../../actions/ButtonIcon/ButtonIcon.js";
10
+ const oe = { audio: "áudio", image: "imagem", text: "texto", video: "vídeo" };
11
+ function ne(n) {
12
+ return (n ?? "").split(",").map((s) => s.trim().toLowerCase()).filter(Boolean);
13
+ }
14
+ function ae(n) {
15
+ if (n.startsWith("."))
16
+ return n.slice(1).toUpperCase();
17
+ const [s = "", i = ""] = n.split("/");
18
+ return i === "*" ? oe[s] ?? s : i.split("+")[0].toUpperCase();
19
+ }
20
+ function ie(n) {
21
+ return n.length < 2 ? n.join("") : `${n.slice(0, -1).join(", ")} ou ${n.at(-1)}`;
22
+ }
23
+ function se(n, s) {
24
+ if (s.length === 0)
25
+ return !0;
26
+ const i = n.name.toLowerCase(), m = n.type.toLowerCase();
27
+ return s.some((t) => t.startsWith(".") ? i.endsWith(t) : t.endsWith("/*") ? m.startsWith(t.slice(0, -1)) : m === t);
28
+ }
29
+ function ve({
30
+ accept: n,
31
+ className: s,
32
+ disabled: i = !1,
33
+ error: m,
34
+ hint: t,
35
+ id: d,
36
+ items: h = [],
37
+ label: v,
38
+ maxSize: a,
39
+ multiple: C = !1,
40
+ onCancel: q,
41
+ onFilesRejected: N,
42
+ onFilesSelected: w,
43
+ onRemove: z,
44
+ onRetry: L,
45
+ ...O
46
+ }) {
47
+ const D = J(null), T = K(), [x, I] = B(!1), [M, W] = B(), $ = ne(n), A = ie([...new Set($.map(ae))]), y = a === void 0 ? void 0 : j(a), g = [A, y && `até ${y}`].filter(Boolean).join(", ");
48
+ function F({ file: e, reason: l }, c) {
49
+ return l === "type" ? `${c} não é ${A}.` : `${c} passa de ${y}.`;
50
+ }
51
+ function E(e) {
52
+ const l = C ? e : e.slice(0, 1), c = [], p = [];
53
+ for (const u of l)
54
+ se(u, $) ? a !== void 0 && u.size > a ? p.push({ file: u, reason: "size" }) : c.push(u) : p.push({ file: u, reason: "type" });
55
+ W(
56
+ p.length === 0 ? void 0 : p.map((u) => F(u, l.length === 1 ? "O arquivo" : u.file.name)).join(" ")
57
+ ), c.length > 0 && w(c), p.length > 0 && (N == null || N(p));
58
+ }
59
+ function _(e) {
60
+ E(Array.from(e.target.files ?? [])), e.target.value = "";
61
+ }
62
+ function b(e) {
63
+ e.preventDefault(), e.dataTransfer.dropEffect = i ? "none" : "copy", i || I(!0);
64
+ }
65
+ function P(e) {
66
+ e.currentTarget.contains(e.relatedTarget) || I(!1);
67
+ }
68
+ function V(e) {
69
+ e.preventDefault(), I(!1), i || E(Array.from(e.dataTransfer.files));
70
+ }
71
+ function G() {
72
+ var e, l;
73
+ (e = D.current) == null || e.focus(), (l = D.current) == null || l.click();
74
+ }
75
+ const H = m ?? M;
76
+ return /* @__PURE__ */ f("div", { ...O, className: [o.fileUpload, s].filter(Boolean).join(" "), children: [
77
+ /* @__PURE__ */ r(Q, { "aria-describedby": g ? T : void 0, error: H, hint: t, id: d, label: v, children: ({ describedBy: e, id: l, invalid: c }) => /* @__PURE__ */ f(
78
+ "div",
79
+ {
80
+ className: [o.zone, x && o.dragging, c && o.invalid, i && o.disabled].filter(Boolean).join(" "),
81
+ onDragEnter: b,
82
+ onDragLeave: P,
83
+ onDragOver: b,
84
+ onDrop: V,
85
+ children: [
86
+ /* @__PURE__ */ r("span", { "aria-hidden": "true", className: o.iconBox, children: /* @__PURE__ */ r(R, {}) }),
87
+ /* @__PURE__ */ f("p", { className: o.instruction, children: [
88
+ C ? "Arraste os arquivos aqui ou" : "Arraste o arquivo aqui ou",
89
+ /* @__PURE__ */ r(k, { "aria-hidden": !0, disabled: i, onClick: G, size: "sm", tabIndex: -1, variant: "secondary", children: "escolha do computador" })
90
+ ] }),
91
+ g && /* @__PURE__ */ r("p", { className: o.restrictions, id: T, children: g.charAt(0).toUpperCase() + g.slice(1) }),
92
+ /* @__PURE__ */ r(
93
+ "input",
94
+ {
95
+ accept: n,
96
+ "aria-describedby": e,
97
+ "aria-invalid": c || void 0,
98
+ className: o.input,
99
+ disabled: i,
100
+ id: l,
101
+ multiple: C,
102
+ onChange: _,
103
+ ref: D,
104
+ type: "file"
105
+ }
106
+ )
107
+ ]
108
+ }
109
+ ) }),
110
+ h.length > 0 && /* @__PURE__ */ r("ul", { className: o.items, children: h.map((e) => /* @__PURE__ */ r(te, { item: e, onCancel: q, onRemove: z, onRetry: L }, e.id)) })
111
+ ] });
112
+ }
113
+ function te({ item: n, onCancel: s, onRemove: i, onRetry: m }) {
114
+ const { id: t, name: d, progress: h, size: v, status: a } = n;
115
+ return /* @__PURE__ */ f("li", { className: [o.item, a === "error" && o.failed].filter(Boolean).join(" "), children: [
116
+ /* @__PURE__ */ r("span", { "aria-hidden": "true", className: o.fileIcon, children: /* @__PURE__ */ r(S, {}) }),
117
+ /* @__PURE__ */ f("div", { className: o.body, children: [
118
+ /* @__PURE__ */ r("span", { className: o.name, title: d, children: d }),
119
+ /* @__PURE__ */ f("span", { className: o.meta, children: [
120
+ j(v),
121
+ /* @__PURE__ */ r("span", { "aria-hidden": "true", children: "·" }),
122
+ /* @__PURE__ */ f("span", { className: a === "error" ? o.failedMessage : o.status, role: "status", children: [
123
+ a === "done" && /* @__PURE__ */ r(X, { className: o.doneIcon }),
124
+ a === "error" && /* @__PURE__ */ r(Y, {}),
125
+ a === "uploading" && "Enviando",
126
+ a === "done" && "Enviado",
127
+ a === "error" && (n.error ?? "Falha no envio.")
128
+ ] })
129
+ ] }),
130
+ a === "uploading" && /* @__PURE__ */ r(re, { label: `Enviando ${d}`, showValue: !0, size: "sm", value: h })
131
+ ] }),
132
+ /* @__PURE__ */ f("div", { className: o.actions, children: [
133
+ a === "error" && m && /* @__PURE__ */ r(k, { "aria-label": `Tentar de novo: ${d}`, onClick: () => m(t), size: "sm", variant: "ghost", children: "Tentar de novo" }),
134
+ a === "uploading" && s && /* @__PURE__ */ r(U, { icon: /* @__PURE__ */ r(Z, {}), label: `Cancelar envio de ${d}`, onClick: () => s(t), size: "sm", variant: "ghost" }),
135
+ a !== "uploading" && i && /* @__PURE__ */ r(U, { icon: /* @__PURE__ */ r(ee, {}), label: `Remover ${d}`, onClick: () => i(t), size: "sm", variant: "ghost" })
136
+ ] })
137
+ ] });
138
+ }
139
+ export {
140
+ ve as FileUpload
141
+ };
142
+ //# sourceMappingURL=FileUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.js","sources":["../../../../src/components/forms/FileUpload/FileUpload.tsx"],"sourcesContent":["import { useId, useRef, useState, type ChangeEvent, type ComponentPropsWithRef, type DragEvent } from 'react';\nimport { Button } from '../../actions/Button';\nimport { ButtonIcon } from '../../actions/ButtonIcon';\nimport { Progress } from '../../feedback/Progress';\nimport { IconCheckCircle, IconClose, IconExclamationCircle, IconFile, IconTrash, IconUpload } from '../../icons';\nimport { formatarTamanhoDeArquivo } from '../../../utils/formatters/formatarTamanhoDeArquivo';\nimport { Field } from '../Field';\nimport styles from './FileUpload.module.css';\n\nexport type FileRejectionReason = 'type' | 'size';\n\nexport interface FileRejection {\n file: File;\n reason: FileRejectionReason;\n}\n\nexport type FileUploadStatus = 'uploading' | 'done' | 'error';\n\n/** Um arquivo em envio. Quem envia e o produto: ele monta a lista e informa o progresso. */\nexport interface FileUploadItem {\n error?: string;\n id: string;\n name: string;\n /** De 0 a 100. Sem ele, o progresso e indeterminado. */\n progress?: number;\n size: number;\n status: FileUploadStatus;\n}\n\nexport interface FileUploadProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'onDrop'> {\n /** Os tipos aceitos, como no `<input type=\"file\">`: `.pdf,image/*`. */\n accept?: string;\n disabled?: boolean;\n /** Vence a mensagem de recusa do proprio campo. */\n error?: string;\n hint?: string;\n items?: readonly FileUploadItem[];\n label: string;\n /** Limite por arquivo, em bytes. */\n maxSize?: number;\n multiple?: boolean;\n onCancel?: (id: string) => void;\n /** Recebe so os arquivos aceitos. */\n onFilesSelected: (files: File[]) => void;\n onFilesRejected?: (rejections: FileRejection[]) => void;\n onRemove?: (id: string) => void;\n onRetry?: (id: string) => void;\n}\n\nconst NOMES_DE_FAMILIA: Record<string, string> = { audio: 'áudio', image: 'imagem', text: 'texto', video: 'vídeo' };\n\nfunction tiposAceitos(accept?: string) {\n return (accept ?? '')\n .split(',')\n .map((tipo) => tipo.trim().toLowerCase())\n .filter(Boolean);\n}\n\nfunction nomeDoTipo(tipo: string) {\n if (tipo.startsWith('.')) {\n return tipo.slice(1).toUpperCase();\n }\n\n const [familia = '', subtipo = ''] = tipo.split('/');\n return subtipo === '*' ? (NOMES_DE_FAMILIA[familia] ?? familia) : subtipo.split('+')[0]!.toUpperCase();\n}\n\nfunction listarComOu(itens: string[]) {\n return itens.length < 2 ? itens.join('') : `${itens.slice(0, -1).join(', ')} ou ${itens.at(-1)}`;\n}\n\nfunction aceitaOTipo(file: File, tipos: string[]) {\n if (tipos.length === 0) {\n return true;\n }\n\n const nome = file.name.toLowerCase();\n const mime = file.type.toLowerCase();\n\n return tipos.some((tipo) => {\n if (tipo.startsWith('.')) return nome.endsWith(tipo);\n if (tipo.endsWith('/*')) return mime.startsWith(tipo.slice(0, -1));\n return mime === tipo;\n });\n}\n\nexport function FileUpload({\n accept,\n className,\n disabled = false,\n error,\n hint,\n id,\n items = [],\n label,\n maxSize,\n multiple = false,\n onCancel,\n onFilesRejected,\n onFilesSelected,\n onRemove,\n onRetry,\n ...props\n}: FileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const restrictionsId = useId();\n const [dragging, setDragging] = useState(false);\n const [rejectionMessage, setRejectionMessage] = useState<string>();\n\n const tipos = tiposAceitos(accept);\n const descricaoDosTipos = listarComOu([...new Set(tipos.map(nomeDoTipo))]);\n const limite = maxSize === undefined ? undefined : formatarTamanhoDeArquivo(maxSize);\n const restricoes = [descricaoDosTipos, limite && `até ${limite}`].filter(Boolean).join(', ');\n\n function motivoDaRecusa({ file, reason }: FileRejection, sujeito: string) {\n return reason === 'type' ? `${sujeito} não é ${descricaoDosTipos}.` : `${sujeito} passa de ${limite}.`;\n }\n\n function receber(oferecidos: File[]) {\n const files = multiple ? oferecidos : oferecidos.slice(0, 1);\n const aceitos: File[] = [];\n const recusas: FileRejection[] = [];\n\n for (const file of files) {\n if (!aceitaOTipo(file, tipos)) recusas.push({ file, reason: 'type' });\n else if (maxSize !== undefined && file.size > maxSize) recusas.push({ file, reason: 'size' });\n else aceitos.push(file);\n }\n\n setRejectionMessage(\n recusas.length === 0\n ? undefined\n : recusas.map((recusa) => motivoDaRecusa(recusa, files.length === 1 ? 'O arquivo' : recusa.file.name)).join(' '),\n );\n\n if (aceitos.length > 0) onFilesSelected(aceitos);\n if (recusas.length > 0) onFilesRejected?.(recusas);\n }\n\n function handleChange(event: ChangeEvent<HTMLInputElement>) {\n receber(Array.from(event.target.files ?? []));\n // Limpo, o seletor aceita de novo o mesmo arquivo, como no tentar outra vez.\n event.target.value = '';\n }\n\n function handleDragOver(event: DragEvent<HTMLDivElement>) {\n event.preventDefault();\n event.dataTransfer.dropEffect = disabled ? 'none' : 'copy';\n if (!disabled) setDragging(true);\n }\n\n function handleDragLeave(event: DragEvent<HTMLDivElement>) {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) setDragging(false);\n }\n\n function handleDrop(event: DragEvent<HTMLDivElement>) {\n event.preventDefault();\n setDragging(false);\n if (!disabled) receber(Array.from(event.dataTransfer.files));\n }\n\n function choose() {\n inputRef.current?.focus();\n inputRef.current?.click();\n }\n\n const fieldError = error ?? rejectionMessage;\n\n return (\n <div {...props} className={[styles.fileUpload, className].filter(Boolean).join(' ')}>\n <Field aria-describedby={restricoes ? restrictionsId : undefined} error={fieldError} hint={hint} id={id} label={label}>\n {({ describedBy, id: inputId, invalid }) => (\n <div\n className={[styles.zone, dragging && styles.dragging, invalid && styles.invalid, disabled && styles.disabled]\n .filter(Boolean)\n .join(' ')}\n onDragEnter={handleDragOver}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n >\n <span aria-hidden=\"true\" className={styles.iconBox}>\n <IconUpload />\n </span>\n <p className={styles.instruction}>\n {multiple ? 'Arraste os arquivos aqui ou' : 'Arraste o arquivo aqui ou'}\n {/* Fora da tabulacao e da arvore: o controle acessivel e o seletor nativo, que recebe o foco. */}\n <Button aria-hidden disabled={disabled} onClick={choose} size=\"sm\" tabIndex={-1} variant=\"secondary\">\n escolha do computador\n </Button>\n </p>\n {restricoes && (\n <p className={styles.restrictions} id={restrictionsId}>\n {restricoes.charAt(0).toUpperCase() + restricoes.slice(1)}\n </p>\n )}\n <input\n accept={accept}\n aria-describedby={describedBy}\n aria-invalid={invalid || undefined}\n className={styles.input}\n disabled={disabled}\n id={inputId}\n multiple={multiple}\n onChange={handleChange}\n ref={inputRef}\n type=\"file\"\n />\n </div>\n )}\n </Field>\n {items.length > 0 && (\n <ul className={styles.items}>\n {items.map((item) => (\n <FileUploadRow item={item} key={item.id} onCancel={onCancel} onRemove={onRemove} onRetry={onRetry} />\n ))}\n </ul>\n )}\n </div>\n );\n}\n\ninterface FileUploadRowProps extends Pick<FileUploadProps, 'onCancel' | 'onRemove' | 'onRetry'> {\n item: FileUploadItem;\n}\n\nfunction FileUploadRow({ item, onCancel, onRemove, onRetry }: FileUploadRowProps) {\n const { id, name, progress, size, status } = item;\n\n return (\n <li className={[styles.item, status === 'error' && styles.failed].filter(Boolean).join(' ')}>\n <span aria-hidden=\"true\" className={styles.fileIcon}>\n <IconFile />\n </span>\n <div className={styles.body}>\n <span className={styles.name} title={name}>\n {name}\n </span>\n <span className={styles.meta}>\n {formatarTamanhoDeArquivo(size)}\n <span aria-hidden=\"true\">·</span>\n <span className={status === 'error' ? styles.failedMessage : styles.status} role=\"status\">\n {status === 'done' && <IconCheckCircle className={styles.doneIcon} />}\n {status === 'error' && <IconExclamationCircle />}\n {status === 'uploading' && 'Enviando'}\n {status === 'done' && 'Enviado'}\n {status === 'error' && (item.error ?? 'Falha no envio.')}\n </span>\n </span>\n {status === 'uploading' && <Progress label={`Enviando ${name}`} showValue size=\"sm\" value={progress} />}\n </div>\n <div className={styles.actions}>\n {status === 'error' && onRetry && (\n <Button aria-label={`Tentar de novo: ${name}`} onClick={() => onRetry(id)} size=\"sm\" variant=\"ghost\">\n Tentar de novo\n </Button>\n )}\n {status === 'uploading' && onCancel && (\n <ButtonIcon icon={<IconClose />} label={`Cancelar envio de ${name}`} onClick={() => onCancel(id)} size=\"sm\" variant=\"ghost\" />\n )}\n {status !== 'uploading' && onRemove && (\n <ButtonIcon icon={<IconTrash />} label={`Remover ${name}`} onClick={() => onRemove(id)} size=\"sm\" variant=\"ghost\" />\n )}\n </div>\n </li>\n );\n}\n"],"names":["NOMES_DE_FAMILIA","tiposAceitos","accept","tipo","nomeDoTipo","familia","subtipo","listarComOu","itens","aceitaOTipo","file","tipos","nome","mime","FileUpload","className","disabled","error","hint","id","items","label","maxSize","multiple","onCancel","onFilesRejected","onFilesSelected","onRemove","onRetry","props","inputRef","useRef","restrictionsId","useId","dragging","setDragging","useState","rejectionMessage","setRejectionMessage","descricaoDosTipos","limite","formatarTamanhoDeArquivo","restricoes","motivoDaRecusa","reason","sujeito","receber","oferecidos","files","aceitos","recusas","recusa","handleChange","event","handleDragOver","handleDragLeave","handleDrop","choose","_a","_b","fieldError","jsxs","styles","jsx","Field","describedBy","inputId","invalid","IconUpload","Button","item","FileUploadRow","name","progress","size","status","IconFile","IconCheckCircle","IconExclamationCircle","Progress","ButtonIcon","IconClose","IconTrash"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s="_fileUpload_v5fjs_1",n="_zone_v5fjs_9",t="_input_v5fjs_26",i="_dragging_v5fjs_31",e="_invalid_v5fjs_37",o="_disabled_v5fjs_46",_="_iconBox_v5fjs_52",a="_instruction_v5fjs_67",c="_restrictions_v5fjs_81",d="_items_v5fjs_103",f="_item_v5fjs_103",l="_failed_v5fjs_122",v="_fileIcon_v5fjs_126",j="_body_v5fjs_136",r="_name_v5fjs_144",u="_meta_v5fjs_155",g="_status_v5fjs_167",m="_failedMessage_v5fjs_168",b="_doneIcon_v5fjs_178",p="_actions_v5fjs_182",I={fileUpload:s,zone:n,input:t,dragging:i,invalid:e,disabled:o,iconBox:_,instruction:a,restrictions:c,items:d,item:f,failed:l,fileIcon:v,body:j,name:r,meta:u,status:g,failedMessage:m,doneIcon:b,actions:p};exports.actions=p;exports.body=j;exports.default=I;exports.disabled=o;exports.doneIcon=b;exports.dragging=i;exports.failed=l;exports.failedMessage=m;exports.fileIcon=v;exports.fileUpload=s;exports.iconBox=_;exports.input=t;exports.instruction=a;exports.invalid=e;exports.item=f;exports.items=d;exports.meta=u;exports.name=r;exports.restrictions=c;exports.status=g;exports.zone=n;
2
+ //# sourceMappingURL=FileUpload.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ const s = "_fileUpload_v5fjs_1", n = "_zone_v5fjs_9", _ = "_input_v5fjs_26", t = "_dragging_v5fjs_31", o = "_invalid_v5fjs_37", i = "_disabled_v5fjs_46", e = "_iconBox_v5fjs_52", c = "_instruction_v5fjs_67", a = "_restrictions_v5fjs_81", f = "_items_v5fjs_103", d = "_item_v5fjs_103", l = "_failed_v5fjs_122", v = "_fileIcon_v5fjs_126", j = "_body_v5fjs_136", r = "_name_v5fjs_144", g = "_meta_v5fjs_155", m = "_status_v5fjs_167", u = "_failedMessage_v5fjs_168", p = "_doneIcon_v5fjs_178", b = "_actions_v5fjs_182", I = {
2
+ fileUpload: s,
3
+ zone: n,
4
+ input: _,
5
+ dragging: t,
6
+ invalid: o,
7
+ disabled: i,
8
+ iconBox: e,
9
+ instruction: c,
10
+ restrictions: a,
11
+ items: f,
12
+ item: d,
13
+ failed: l,
14
+ fileIcon: v,
15
+ body: j,
16
+ name: r,
17
+ meta: g,
18
+ status: m,
19
+ failedMessage: u,
20
+ doneIcon: p,
21
+ actions: b
22
+ };
23
+ export {
24
+ b as actions,
25
+ j as body,
26
+ I as default,
27
+ i as disabled,
28
+ p as doneIcon,
29
+ t as dragging,
30
+ l as failed,
31
+ u as failedMessage,
32
+ v as fileIcon,
33
+ s as fileUpload,
34
+ e as iconBox,
35
+ _ as input,
36
+ c as instruction,
37
+ o as invalid,
38
+ d as item,
39
+ f as items,
40
+ g as meta,
41
+ r as name,
42
+ a as restrictions,
43
+ m as status,
44
+ n as zone
45
+ };
46
+ //# sourceMappingURL=FileUpload.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("react/jsx-runtime"),q=require("react"),x=require("../../../hooks/useDecimalInput.cjs"),y=require("../../../hooks/useMergedRefs.cjs"),M=require("../../../utils/formatters/formatarEntradaMonetaria.cjs"),h=require("../InputText/InputText.cjs");function R({currency:i="BRL",defaultValue:c="",decimalScale:u=2,onBlur:t,onFocus:n,onValueChange:d,value:o,...a}){const e=x.useDecimalInput({decimalScale:u,defaultValue:c,onValueChange:d,value:o}),f=y.useMergedRefs(e.ref,a.ref),[l,s]=q.useState(!1),p=l||!e.value?e.text:M.formatarEntradaMonetaria(e.value,i,u);function g(r){s(!0),n==null||n(r)}function m(r){s(!1),e.endEditing(),t==null||t(r)}return I.jsx(h.InputText,{...a,ref:f,inputMode:"decimal",onBlur:m,onChange:e.handleChange,onFocus:g,type:"text",value:p})}exports.InputCurrency=R;
2
+ //# sourceMappingURL=InputCurrency.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputCurrency.cjs","sources":["../../../../src/components/forms/InputCurrency/InputCurrency.tsx"],"sourcesContent":["import { useState, type FocusEvent, type Ref } from 'react';\nimport { useDecimalInput } from '../../../hooks/useDecimalInput';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { InputText, type InputTextProps } from '../InputText';\nimport { formatarEntradaMonetaria } from '../../../utils/formatters';\n\nexport interface InputCurrencyProps extends Omit<InputTextProps, 'defaultValue' | 'onChange' | 'showCharacterCount' | 'type' | 'value'> {\n currency?: string;\n defaultValue?: string | number;\n decimalScale?: number;\n onValueChange?: (value: string) => void;\n value?: string | number;\n}\n\nexport function InputCurrency({\n currency = 'BRL',\n defaultValue = '',\n decimalScale = 2,\n onBlur,\n onFocus,\n onValueChange,\n value,\n ...props\n}: InputCurrencyProps) {\n const decimalInput = useDecimalInput({ decimalScale, defaultValue, onValueChange, value });\n const mergedRef = useMergedRefs(decimalInput.ref, props.ref as Ref<HTMLInputElement>);\n const [focused, setFocused] = useState(false);\n const displayValue =\n focused || !decimalInput.value ? decimalInput.text : formatarEntradaMonetaria(decimalInput.value, currency, decimalScale);\n\n function handleFocus(event: FocusEvent<HTMLInputElement>) {\n setFocused(true);\n onFocus?.(event);\n }\n\n function handleBlur(event: FocusEvent<HTMLInputElement>) {\n setFocused(false);\n decimalInput.endEditing();\n onBlur?.(event);\n }\n\n return (\n <InputText\n {...props}\n ref={mergedRef}\n inputMode=\"decimal\"\n onBlur={handleBlur}\n onChange={decimalInput.handleChange}\n onFocus={handleFocus}\n type=\"text\"\n value={displayValue}\n />\n );\n}\n"],"names":["InputCurrency","currency","defaultValue","decimalScale","onBlur","onFocus","onValueChange","value","props","decimalInput","useDecimalInput","mergedRef","useMergedRefs","focused","setFocused","useState","displayValue","formatarEntradaMonetaria","handleFocus","event","handleBlur","jsx","InputText"],"mappings":"kVAcO,SAASA,EAAc,CAC5B,SAAAC,EAAW,MACX,aAAAC,EAAe,GACf,aAAAC,EAAe,EACf,OAAAC,EACA,QAAAC,EACA,cAAAC,EACA,MAAAC,EACA,GAAGC,CACL,EAAuB,CACrB,MAAMC,EAAeC,EAAAA,gBAAgB,CAAE,aAAAP,EAAc,aAAAD,EAAc,cAAAI,EAAe,MAAAC,EAAO,EACnFI,EAAYC,EAAAA,cAAcH,EAAa,IAAKD,EAAM,GAA4B,EAC9E,CAACK,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EACtCC,EACJH,GAAW,CAACJ,EAAa,MAAQA,EAAa,KAAOQ,EAAAA,yBAAyBR,EAAa,MAAOR,EAAUE,CAAY,EAE1H,SAASe,EAAYC,EAAqC,CACxDL,EAAW,EAAI,EACfT,GAAA,MAAAA,EAAUc,EACZ,CAEA,SAASC,EAAWD,EAAqC,CACvDL,EAAW,EAAK,EAChBL,EAAa,WAAA,EACbL,GAAA,MAAAA,EAASe,EACX,CAEA,OACEE,EAAAA,IAACC,EAAAA,UAAA,CACE,GAAGd,EACJ,IAAKG,EACL,UAAU,UACV,OAAQS,EACR,SAAUX,EAAa,aACvB,QAASS,EACT,KAAK,OACL,MAAOF,CAAA,CAAA,CAGb"}
@@ -0,0 +1,41 @@
1
+ import { jsx as h } from "react/jsx-runtime";
2
+ import { useState as x } from "react";
3
+ import { useDecimalInput as I } from "../../../hooks/useDecimalInput.js";
4
+ import { useMergedRefs as v } from "../../../hooks/useMergedRefs.js";
5
+ import { formatarEntradaMonetaria as y } from "../../../utils/formatters/formatarEntradaMonetaria.js";
6
+ import { InputText as C } from "../InputText/InputText.js";
7
+ function T({
8
+ currency: i = "BRL",
9
+ defaultValue: m = "",
10
+ decimalScale: a = 2,
11
+ onBlur: t,
12
+ onFocus: r,
13
+ onValueChange: u,
14
+ value: d,
15
+ ...f
16
+ }) {
17
+ const e = I({ decimalScale: a, defaultValue: m, onValueChange: u, value: d }), p = v(e.ref, f.ref), [s, o] = x(!1), c = s || !e.value ? e.text : y(e.value, i, a);
18
+ function l(n) {
19
+ o(!0), r == null || r(n);
20
+ }
21
+ function g(n) {
22
+ o(!1), e.endEditing(), t == null || t(n);
23
+ }
24
+ return /* @__PURE__ */ h(
25
+ C,
26
+ {
27
+ ...f,
28
+ ref: p,
29
+ inputMode: "decimal",
30
+ onBlur: g,
31
+ onChange: e.handleChange,
32
+ onFocus: l,
33
+ type: "text",
34
+ value: c
35
+ }
36
+ );
37
+ }
38
+ export {
39
+ T as InputCurrency
40
+ };
41
+ //# sourceMappingURL=InputCurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputCurrency.js","sources":["../../../../src/components/forms/InputCurrency/InputCurrency.tsx"],"sourcesContent":["import { useState, type FocusEvent, type Ref } from 'react';\nimport { useDecimalInput } from '../../../hooks/useDecimalInput';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { InputText, type InputTextProps } from '../InputText';\nimport { formatarEntradaMonetaria } from '../../../utils/formatters';\n\nexport interface InputCurrencyProps extends Omit<InputTextProps, 'defaultValue' | 'onChange' | 'showCharacterCount' | 'type' | 'value'> {\n currency?: string;\n defaultValue?: string | number;\n decimalScale?: number;\n onValueChange?: (value: string) => void;\n value?: string | number;\n}\n\nexport function InputCurrency({\n currency = 'BRL',\n defaultValue = '',\n decimalScale = 2,\n onBlur,\n onFocus,\n onValueChange,\n value,\n ...props\n}: InputCurrencyProps) {\n const decimalInput = useDecimalInput({ decimalScale, defaultValue, onValueChange, value });\n const mergedRef = useMergedRefs(decimalInput.ref, props.ref as Ref<HTMLInputElement>);\n const [focused, setFocused] = useState(false);\n const displayValue =\n focused || !decimalInput.value ? decimalInput.text : formatarEntradaMonetaria(decimalInput.value, currency, decimalScale);\n\n function handleFocus(event: FocusEvent<HTMLInputElement>) {\n setFocused(true);\n onFocus?.(event);\n }\n\n function handleBlur(event: FocusEvent<HTMLInputElement>) {\n setFocused(false);\n decimalInput.endEditing();\n onBlur?.(event);\n }\n\n return (\n <InputText\n {...props}\n ref={mergedRef}\n inputMode=\"decimal\"\n onBlur={handleBlur}\n onChange={decimalInput.handleChange}\n onFocus={handleFocus}\n type=\"text\"\n value={displayValue}\n />\n );\n}\n"],"names":["InputCurrency","currency","defaultValue","decimalScale","onBlur","onFocus","onValueChange","value","props","decimalInput","useDecimalInput","mergedRef","useMergedRefs","focused","setFocused","useState","displayValue","formatarEntradaMonetaria","handleFocus","event","handleBlur","jsx","InputText"],"mappings":";;;;;;AAcO,SAASA,EAAc;AAAA,EAC5B,UAAAC,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,cAAAC,IAAe;AAAA,EACf,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GAAuB;AACrB,QAAMC,IAAeC,EAAgB,EAAE,cAAAP,GAAc,cAAAD,GAAc,eAAAI,GAAe,OAAAC,GAAO,GACnFI,IAAYC,EAAcH,EAAa,KAAKD,EAAM,GAA4B,GAC9E,CAACK,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IACJH,KAAW,CAACJ,EAAa,QAAQA,EAAa,OAAOQ,EAAyBR,EAAa,OAAOR,GAAUE,CAAY;AAE1H,WAASe,EAAYC,GAAqC;AACxD,IAAAL,EAAW,EAAI,GACfT,KAAA,QAAAA,EAAUc;AAAA,EACZ;AAEA,WAASC,EAAWD,GAAqC;AACvD,IAAAL,EAAW,EAAK,GAChBL,EAAa,WAAA,GACbL,KAAA,QAAAA,EAASe;AAAA,EACX;AAEA,SACE,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGd;AAAA,MACJ,KAAKG;AAAA,MACL,WAAU;AAAA,MACV,QAAQS;AAAA,MACR,UAAUX,EAAa;AAAA,MACvB,SAASS;AAAA,MACT,MAAK;AAAA,MACL,OAAOF;AAAA,IAAA;AAAA,EAAA;AAGb;"}