@plenustech/design-system 0.2.2 → 0.2.4

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 (508) hide show
  1. package/dist/components/actions/ButtonTile/ButtonTile.cjs +2 -0
  2. package/dist/components/actions/ButtonTile/ButtonTile.cjs.map +1 -0
  3. package/dist/components/actions/ButtonTile/ButtonTile.js +23 -0
  4. package/dist/components/actions/ButtonTile/ButtonTile.js.map +1 -0
  5. package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs +2 -0
  6. package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs.map +1 -0
  7. package/dist/components/actions/ButtonTile/ButtonTile.module.css.js +16 -0
  8. package/dist/components/actions/ButtonTile/ButtonTile.module.css.js.map +1 -0
  9. package/dist/components/actions/Toolbar/Toolbar.cjs +2 -0
  10. package/dist/components/actions/Toolbar/Toolbar.cjs.map +1 -0
  11. package/dist/components/actions/Toolbar/Toolbar.js +118 -0
  12. package/dist/components/actions/Toolbar/Toolbar.js.map +1 -0
  13. package/dist/components/actions/Toolbar/Toolbar.module.css.cjs +2 -0
  14. package/dist/components/actions/Toolbar/Toolbar.module.css.cjs.map +1 -0
  15. package/dist/components/actions/Toolbar/Toolbar.module.css.js +20 -0
  16. package/dist/components/actions/Toolbar/Toolbar.module.css.js.map +1 -0
  17. package/dist/components/charts/ChartArea/ChartArea.cjs +1 -1
  18. package/dist/components/charts/ChartArea/ChartArea.cjs.map +1 -1
  19. package/dist/components/charts/ChartArea/ChartArea.js +196 -148
  20. package/dist/components/charts/ChartArea/ChartArea.js.map +1 -1
  21. package/dist/components/charts/ChartArea/ChartArea.module.css.cjs +1 -1
  22. package/dist/components/charts/ChartArea/ChartArea.module.css.js +12 -10
  23. package/dist/components/charts/ChartArea/ChartArea.module.css.js.map +1 -1
  24. package/dist/components/charts/ChartBar/ChartBar.cjs +1 -1
  25. package/dist/components/charts/ChartBar/ChartBar.cjs.map +1 -1
  26. package/dist/components/charts/ChartBar/ChartBar.js +168 -145
  27. package/dist/components/charts/ChartBar/ChartBar.js.map +1 -1
  28. package/dist/components/charts/ChartBar/ChartBar.module.css.cjs +1 -1
  29. package/dist/components/charts/ChartBar/ChartBar.module.css.js +12 -10
  30. package/dist/components/charts/ChartBar/ChartBar.module.css.js.map +1 -1
  31. package/dist/components/charts/ChartCombo/ChartCombo.cjs +1 -1
  32. package/dist/components/charts/ChartCombo/ChartCombo.cjs.map +1 -1
  33. package/dist/components/charts/ChartCombo/ChartCombo.js +179 -154
  34. package/dist/components/charts/ChartCombo/ChartCombo.js.map +1 -1
  35. package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs +1 -1
  36. package/dist/components/charts/ChartCombo/ChartCombo.module.css.js +16 -14
  37. package/dist/components/charts/ChartCombo/ChartCombo.module.css.js.map +1 -1
  38. package/dist/components/charts/ChartDonut/ChartDonut.cjs +1 -1
  39. package/dist/components/charts/ChartDonut/ChartDonut.cjs.map +1 -1
  40. package/dist/components/charts/ChartDonut/ChartDonut.js +72 -61
  41. package/dist/components/charts/ChartDonut/ChartDonut.js.map +1 -1
  42. package/dist/components/charts/ChartGauge/ChartGauge.cjs +2 -0
  43. package/dist/components/charts/ChartGauge/ChartGauge.cjs.map +1 -0
  44. package/dist/components/charts/ChartGauge/ChartGauge.js +307 -0
  45. package/dist/components/charts/ChartGauge/ChartGauge.js.map +1 -0
  46. package/dist/components/charts/ChartGauge/ChartGauge.module.css.cjs +2 -0
  47. package/dist/components/charts/ChartGauge/ChartGauge.module.css.cjs.map +1 -0
  48. package/dist/components/charts/ChartGauge/ChartGauge.module.css.js +76 -0
  49. package/dist/components/charts/ChartGauge/ChartGauge.module.css.js.map +1 -0
  50. package/dist/components/charts/ChartGauge/gaugeLayout.cjs +2 -0
  51. package/dist/components/charts/ChartGauge/gaugeLayout.cjs.map +1 -0
  52. package/dist/components/charts/ChartGauge/gaugeLayout.js +107 -0
  53. package/dist/components/charts/ChartGauge/gaugeLayout.js.map +1 -0
  54. package/dist/components/charts/ChartGauge/gaugeReading.cjs +2 -0
  55. package/dist/components/charts/ChartGauge/gaugeReading.cjs.map +1 -0
  56. package/dist/components/charts/ChartGauge/gaugeReading.js +112 -0
  57. package/dist/components/charts/ChartGauge/gaugeReading.js.map +1 -0
  58. package/dist/components/charts/ChartGauge/gaugeScale.cjs +2 -0
  59. package/dist/components/charts/ChartGauge/gaugeScale.cjs.map +1 -0
  60. package/dist/components/charts/ChartGauge/gaugeScale.js +57 -0
  61. package/dist/components/charts/ChartGauge/gaugeScale.js.map +1 -0
  62. package/dist/components/charts/ChartLine/ChartLine.cjs +1 -1
  63. package/dist/components/charts/ChartLine/ChartLine.cjs.map +1 -1
  64. package/dist/components/charts/ChartLine/ChartLine.js +196 -143
  65. package/dist/components/charts/ChartLine/ChartLine.js.map +1 -1
  66. package/dist/components/charts/ChartLine/ChartLine.module.css.cjs +1 -1
  67. package/dist/components/charts/ChartLine/ChartLine.module.css.js +16 -14
  68. package/dist/components/charts/ChartLine/ChartLine.module.css.js.map +1 -1
  69. package/dist/components/charts/ChartMap/ChartMap.cjs +2 -0
  70. package/dist/components/charts/ChartMap/ChartMap.cjs.map +1 -0
  71. package/dist/components/charts/ChartMap/ChartMap.js +523 -0
  72. package/dist/components/charts/ChartMap/ChartMap.js.map +1 -0
  73. package/dist/components/charts/ChartMap/ChartMap.module.css.cjs +2 -0
  74. package/dist/components/charts/ChartMap/ChartMap.module.css.cjs.map +1 -0
  75. package/dist/components/charts/ChartMap/ChartMap.module.css.js +124 -0
  76. package/dist/components/charts/ChartMap/ChartMap.module.css.js.map +1 -0
  77. package/dist/components/charts/ChartMap/ChartMapLegend.cjs +2 -0
  78. package/dist/components/charts/ChartMap/ChartMapLegend.cjs.map +1 -0
  79. package/dist/components/charts/ChartMap/ChartMapLegend.js +102 -0
  80. package/dist/components/charts/ChartMap/ChartMapLegend.js.map +1 -0
  81. package/dist/components/charts/ChartMap/ChartMapTable.cjs +2 -0
  82. package/dist/components/charts/ChartMap/ChartMapTable.cjs.map +1 -0
  83. package/dist/components/charts/ChartMap/ChartMapTable.js +118 -0
  84. package/dist/components/charts/ChartMap/ChartMapTable.js.map +1 -0
  85. package/dist/components/charts/ChartMap/mapGeometry.cjs +2 -0
  86. package/dist/components/charts/ChartMap/mapGeometry.cjs.map +1 -0
  87. package/dist/components/charts/ChartMap/mapGeometry.js +113 -0
  88. package/dist/components/charts/ChartMap/mapGeometry.js.map +1 -0
  89. package/dist/components/charts/ChartMap/mapLabels.cjs +2 -0
  90. package/dist/components/charts/ChartMap/mapLabels.cjs.map +1 -0
  91. package/dist/components/charts/ChartMap/mapLabels.js +80 -0
  92. package/dist/components/charts/ChartMap/mapLabels.js.map +1 -0
  93. package/dist/components/charts/ChartMap/mapScales.cjs +2 -0
  94. package/dist/components/charts/ChartMap/mapScales.cjs.map +1 -0
  95. package/dist/components/charts/ChartMap/mapScales.js +131 -0
  96. package/dist/components/charts/ChartMap/mapScales.js.map +1 -0
  97. package/dist/components/charts/ChartMap/polylabel.cjs +2 -0
  98. package/dist/components/charts/ChartMap/polylabel.cjs.map +1 -0
  99. package/dist/components/charts/ChartMap/polylabel.js +50 -0
  100. package/dist/components/charts/ChartMap/polylabel.js.map +1 -0
  101. package/dist/components/charts/ChartPie/ChartPie.cjs +1 -1
  102. package/dist/components/charts/ChartPie/ChartPie.cjs.map +1 -1
  103. package/dist/components/charts/ChartPie/ChartPie.js +71 -60
  104. package/dist/components/charts/ChartPie/ChartPie.js.map +1 -1
  105. package/dist/components/charts/ChartRadial/ChartRadial.cjs +1 -1
  106. package/dist/components/charts/ChartRadial/ChartRadial.cjs.map +1 -1
  107. package/dist/components/charts/ChartRadial/ChartRadial.js +101 -84
  108. package/dist/components/charts/ChartRadial/ChartRadial.js.map +1 -1
  109. package/dist/components/charts/ChartSankey/ChartSankey.cjs +1 -1
  110. package/dist/components/charts/ChartSankey/ChartSankey.cjs.map +1 -1
  111. package/dist/components/charts/ChartSankey/ChartSankey.js +148 -125
  112. package/dist/components/charts/ChartSankey/ChartSankey.js.map +1 -1
  113. package/dist/components/charts/ChartScatter/ChartScatter.cjs +1 -1
  114. package/dist/components/charts/ChartScatter/ChartScatter.cjs.map +1 -1
  115. package/dist/components/charts/ChartScatter/ChartScatter.js +138 -106
  116. package/dist/components/charts/ChartScatter/ChartScatter.js.map +1 -1
  117. package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs +1 -1
  118. package/dist/components/charts/ChartScatter/ChartScatter.module.css.js +3 -3
  119. package/dist/components/charts/ChartSunburst/ChartSunburst.cjs +1 -1
  120. package/dist/components/charts/ChartSunburst/ChartSunburst.cjs.map +1 -1
  121. package/dist/components/charts/ChartSunburst/ChartSunburst.js +115 -100
  122. package/dist/components/charts/ChartSunburst/ChartSunburst.js.map +1 -1
  123. package/dist/components/charts/ChartTimeline/ChartTimeline.cjs +2 -0
  124. package/dist/components/charts/ChartTimeline/ChartTimeline.cjs.map +1 -0
  125. package/dist/components/charts/ChartTimeline/ChartTimeline.js +703 -0
  126. package/dist/components/charts/ChartTimeline/ChartTimeline.js.map +1 -0
  127. package/dist/components/charts/ChartTimeline/ChartTimeline.module.css.cjs +2 -0
  128. package/dist/components/charts/ChartTimeline/ChartTimeline.module.css.cjs.map +1 -0
  129. package/dist/components/charts/ChartTimeline/ChartTimeline.module.css.js +124 -0
  130. package/dist/components/charts/ChartTimeline/ChartTimeline.module.css.js.map +1 -0
  131. package/dist/components/charts/ChartTimeline/ChartTimelineTable.cjs +2 -0
  132. package/dist/components/charts/ChartTimeline/ChartTimelineTable.cjs.map +1 -0
  133. package/dist/components/charts/ChartTimeline/ChartTimelineTable.js +42 -0
  134. package/dist/components/charts/ChartTimeline/ChartTimelineTable.js.map +1 -0
  135. package/dist/components/charts/ChartTimeline/timelineLayout.cjs +2 -0
  136. package/dist/components/charts/ChartTimeline/timelineLayout.cjs.map +1 -0
  137. package/dist/components/charts/ChartTimeline/timelineLayout.js +109 -0
  138. package/dist/components/charts/ChartTimeline/timelineLayout.js.map +1 -0
  139. package/dist/components/charts/ChartTimeline/timelineTime.cjs +2 -0
  140. package/dist/components/charts/ChartTimeline/timelineTime.cjs.map +1 -0
  141. package/dist/components/charts/ChartTimeline/timelineTime.js +91 -0
  142. package/dist/components/charts/ChartTimeline/timelineTime.js.map +1 -0
  143. package/dist/components/charts/ChartTimeline/timelineTooltip.cjs +2 -0
  144. package/dist/components/charts/ChartTimeline/timelineTooltip.cjs.map +1 -0
  145. package/dist/components/charts/ChartTimeline/timelineTooltip.js +77 -0
  146. package/dist/components/charts/ChartTimeline/timelineTooltip.js.map +1 -0
  147. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +1 -1
  148. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -1
  149. package/dist/components/charts/ChartTooltip/ChartTooltip.js +1 -1
  150. package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -1
  151. package/dist/components/charts/ChartTreemap/ChartTreemap.cjs +1 -1
  152. package/dist/components/charts/ChartTreemap/ChartTreemap.cjs.map +1 -1
  153. package/dist/components/charts/ChartTreemap/ChartTreemap.js +100 -89
  154. package/dist/components/charts/ChartTreemap/ChartTreemap.js.map +1 -1
  155. package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs +1 -1
  156. package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs.map +1 -1
  157. package/dist/components/charts/ChartWaterfall/ChartWaterfall.js +125 -105
  158. package/dist/components/charts/ChartWaterfall/ChartWaterfall.js.map +1 -1
  159. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs +1 -1
  160. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js +8 -6
  161. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js.map +1 -1
  162. package/dist/components/charts/core/CartesianFrame.cjs +1 -1
  163. package/dist/components/charts/core/CartesianFrame.cjs.map +1 -1
  164. package/dist/components/charts/core/CartesianFrame.js +61 -96
  165. package/dist/components/charts/core/CartesianFrame.js.map +1 -1
  166. package/dist/components/charts/core/Chart.module.css.cjs +1 -1
  167. package/dist/components/charts/core/Chart.module.css.js +52 -54
  168. package/dist/components/charts/core/Chart.module.css.js.map +1 -1
  169. package/dist/components/charts/core/ChartFrame.cjs +1 -1
  170. package/dist/components/charts/core/ChartFrame.cjs.map +1 -1
  171. package/dist/components/charts/core/ChartFrame.js +53 -47
  172. package/dist/components/charts/core/ChartFrame.js.map +1 -1
  173. package/dist/components/charts/core/ChartLegend.cjs +1 -1
  174. package/dist/components/charts/core/ChartLegend.cjs.map +1 -1
  175. package/dist/components/charts/core/ChartLegend.js +37 -25
  176. package/dist/components/charts/core/ChartLegend.js.map +1 -1
  177. package/dist/components/charts/core/PointBands.cjs +2 -0
  178. package/dist/components/charts/core/PointBands.cjs.map +1 -0
  179. package/dist/components/charts/core/PointBands.js +41 -0
  180. package/dist/components/charts/core/PointBands.js.map +1 -0
  181. package/dist/components/charts/core/cartesianLayout.cjs +1 -1
  182. package/dist/components/charts/core/cartesianLayout.cjs.map +1 -1
  183. package/dist/components/charts/core/cartesianLayout.js +49 -41
  184. package/dist/components/charts/core/cartesianLayout.js.map +1 -1
  185. package/dist/components/charts/core/hoverPath.cjs +2 -0
  186. package/dist/components/charts/core/hoverPath.cjs.map +1 -0
  187. package/dist/components/charts/core/hoverPath.js +7 -0
  188. package/dist/components/charts/core/hoverPath.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/tooltips.cjs +2 -0
  194. package/dist/components/charts/core/tooltips.cjs.map +1 -0
  195. package/dist/components/charts/core/tooltips.js +48 -0
  196. package/dist/components/charts/core/tooltips.js.map +1 -0
  197. package/dist/components/charts/core/useCartesianLayout.cjs +2 -0
  198. package/dist/components/charts/core/useCartesianLayout.cjs.map +1 -0
  199. package/dist/components/charts/core/useCartesianLayout.js +38 -0
  200. package/dist/components/charts/core/useCartesianLayout.js.map +1 -0
  201. package/dist/components/charts/core/useChartMetrics.cjs +1 -1
  202. package/dist/components/charts/core/useChartMetrics.cjs.map +1 -1
  203. package/dist/components/charts/core/useChartMetrics.js +20 -25
  204. package/dist/components/charts/core/useChartMetrics.js.map +1 -1
  205. package/dist/components/charts/core/useSeriesToggle.cjs +1 -1
  206. package/dist/components/charts/core/useSeriesToggle.cjs.map +1 -1
  207. package/dist/components/charts/core/useSeriesToggle.js +19 -12
  208. package/dist/components/charts/core/useSeriesToggle.js.map +1 -1
  209. package/dist/components/data-display/Accordion/Accordion.cjs +1 -1
  210. package/dist/components/data-display/Accordion/Accordion.cjs.map +1 -1
  211. package/dist/components/data-display/Accordion/Accordion.js +56 -46
  212. package/dist/components/data-display/Accordion/Accordion.js.map +1 -1
  213. package/dist/components/data-display/Accordion/Accordion.module.css.cjs +1 -1
  214. package/dist/components/data-display/Accordion/Accordion.module.css.js +16 -16
  215. package/dist/components/data-display/List/List.cjs.map +1 -1
  216. package/dist/components/data-display/List/List.js.map +1 -1
  217. package/dist/components/data-display/List/List.module.css.cjs +1 -1
  218. package/dist/components/data-display/List/List.module.css.js +34 -24
  219. package/dist/components/data-display/List/List.module.css.js.map +1 -1
  220. package/dist/components/data-display/List/ListingOptions.cjs +1 -1
  221. package/dist/components/data-display/List/ListingOptions.cjs.map +1 -1
  222. package/dist/components/data-display/List/ListingOptions.js +98 -74
  223. package/dist/components/data-display/List/ListingOptions.js.map +1 -1
  224. package/dist/components/data-display/List/useListing.cjs.map +1 -1
  225. package/dist/components/data-display/List/useListing.js.map +1 -1
  226. package/dist/components/data-display/SortableList/SortableList.cjs +2 -0
  227. package/dist/components/data-display/SortableList/SortableList.cjs.map +1 -0
  228. package/dist/components/data-display/SortableList/SortableList.js +168 -0
  229. package/dist/components/data-display/SortableList/SortableList.js.map +1 -0
  230. package/dist/components/data-display/SortableList/SortableList.module.css.cjs +2 -0
  231. package/dist/components/data-display/SortableList/SortableList.module.css.cjs.map +1 -0
  232. package/dist/components/data-display/SortableList/SortableList.module.css.js +34 -0
  233. package/dist/components/data-display/SortableList/SortableList.module.css.js.map +1 -0
  234. package/dist/components/data-display/Table/Table.cjs +1 -1
  235. package/dist/components/data-display/Table/Table.cjs.map +1 -1
  236. package/dist/components/data-display/Table/Table.js +86 -85
  237. package/dist/components/data-display/Table/Table.js.map +1 -1
  238. package/dist/components/data-display/Table/Table.module.css.cjs +1 -1
  239. package/dist/components/data-display/Table/Table.module.css.js +50 -51
  240. package/dist/components/data-display/Table/Table.module.css.js.map +1 -1
  241. package/dist/components/data-display/Tag/Tag.cjs +2 -0
  242. package/dist/components/data-display/Tag/Tag.cjs.map +1 -0
  243. package/dist/components/data-display/Tag/Tag.js +50 -0
  244. package/dist/components/data-display/Tag/Tag.js.map +1 -0
  245. package/dist/components/data-display/Tag/Tag.module.css.cjs +2 -0
  246. package/dist/components/data-display/Tag/Tag.module.css.cjs.map +1 -0
  247. package/dist/components/data-display/Tag/Tag.module.css.js +22 -0
  248. package/dist/components/data-display/Tag/Tag.module.css.js.map +1 -0
  249. package/dist/components/data-display/Timeline/Timeline.cjs +2 -0
  250. package/dist/components/data-display/Timeline/Timeline.cjs.map +1 -0
  251. package/dist/components/data-display/Timeline/Timeline.js +31 -0
  252. package/dist/components/data-display/Timeline/Timeline.js.map +1 -0
  253. package/dist/components/data-display/Timeline/Timeline.module.css.cjs +2 -0
  254. package/dist/components/data-display/Timeline/Timeline.module.css.cjs.map +1 -0
  255. package/dist/components/data-display/Timeline/Timeline.module.css.js +30 -0
  256. package/dist/components/data-display/Timeline/Timeline.module.css.js.map +1 -0
  257. package/dist/components/feedback/Skeleton/Skeleton.cjs +2 -0
  258. package/dist/components/feedback/Skeleton/Skeleton.cjs.map +1 -0
  259. package/dist/components/feedback/Skeleton/Skeleton.js +17 -0
  260. package/dist/components/feedback/Skeleton/Skeleton.js.map +1 -0
  261. package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs +2 -0
  262. package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs.map +1 -0
  263. package/dist/components/feedback/Skeleton/Skeleton.module.css.js +15 -0
  264. package/dist/components/feedback/Skeleton/Skeleton.module.css.js.map +1 -0
  265. package/dist/components/feedback/Toast/Toast.module.css.cjs +2 -0
  266. package/dist/components/feedback/Toast/Toast.module.css.cjs.map +1 -0
  267. package/dist/components/feedback/Toast/Toast.module.css.js +31 -0
  268. package/dist/components/feedback/Toast/Toast.module.css.js.map +1 -0
  269. package/dist/components/feedback/Toast/ToastRegion.cjs +2 -0
  270. package/dist/components/feedback/Toast/ToastRegion.cjs.map +1 -0
  271. package/dist/components/feedback/Toast/ToastRegion.js +62 -0
  272. package/dist/components/feedback/Toast/ToastRegion.js.map +1 -0
  273. package/dist/components/feedback/Toast/toastStore.cjs +2 -0
  274. package/dist/components/feedback/Toast/toastStore.cjs.map +1 -0
  275. package/dist/components/feedback/Toast/toastStore.js +33 -0
  276. package/dist/components/feedback/Toast/toastStore.js.map +1 -0
  277. package/dist/components/forms/Checkbox/Checkbox.cjs +1 -1
  278. package/dist/components/forms/Checkbox/Checkbox.cjs.map +1 -1
  279. package/dist/components/forms/Checkbox/Checkbox.js +43 -31
  280. package/dist/components/forms/Checkbox/Checkbox.js.map +1 -1
  281. package/dist/components/forms/Checkbox/Checkbox.module.css.cjs +1 -1
  282. package/dist/components/forms/Checkbox/Checkbox.module.css.js +1 -1
  283. package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs +2 -0
  284. package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs.map +1 -0
  285. package/dist/components/forms/CheckboxGroup/CheckboxGroup.js +54 -0
  286. package/dist/components/forms/CheckboxGroup/CheckboxGroup.js.map +1 -0
  287. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs +2 -0
  288. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs.map +1 -0
  289. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js +22 -0
  290. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js.map +1 -0
  291. package/dist/components/forms/ColorPicker/ColorPicker.cjs +2 -0
  292. package/dist/components/forms/ColorPicker/ColorPicker.cjs.map +1 -0
  293. package/dist/components/forms/ColorPicker/ColorPicker.js +57 -0
  294. package/dist/components/forms/ColorPicker/ColorPicker.js.map +1 -0
  295. package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs +2 -0
  296. package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs.map +1 -0
  297. package/dist/components/forms/ColorPicker/ColorPicker.module.css.js +22 -0
  298. package/dist/components/forms/ColorPicker/ColorPicker.module.css.js.map +1 -0
  299. package/dist/components/forms/ComboBox/ComboBox.cjs.map +1 -1
  300. package/dist/components/forms/ComboBox/ComboBox.js.map +1 -1
  301. package/dist/components/forms/ComboBox/ComboBox.module.css.cjs +1 -1
  302. package/dist/components/forms/ComboBox/ComboBox.module.css.js +20 -20
  303. package/dist/components/forms/Field/Field.cjs +1 -1
  304. package/dist/components/forms/Field/Field.cjs.map +1 -1
  305. package/dist/components/forms/Field/Field.js +21 -20
  306. package/dist/components/forms/Field/Field.js.map +1 -1
  307. package/dist/components/forms/Field/Field.module.css.cjs +1 -1
  308. package/dist/components/forms/Field/Field.module.css.js +18 -12
  309. package/dist/components/forms/Field/Field.module.css.js.map +1 -1
  310. package/dist/components/forms/FileUpload/FileUpload.cjs +2 -0
  311. package/dist/components/forms/FileUpload/FileUpload.cjs.map +1 -0
  312. package/dist/components/forms/FileUpload/FileUpload.js +142 -0
  313. package/dist/components/forms/FileUpload/FileUpload.js.map +1 -0
  314. package/dist/components/forms/FileUpload/FileUpload.module.css.cjs +2 -0
  315. package/dist/components/forms/FileUpload/FileUpload.module.css.cjs.map +1 -0
  316. package/dist/components/forms/FileUpload/FileUpload.module.css.js +46 -0
  317. package/dist/components/forms/FileUpload/FileUpload.module.css.js.map +1 -0
  318. package/dist/components/forms/InputPassword/InputPassword.module.css.cjs +1 -1
  319. package/dist/components/forms/InputPassword/InputPassword.module.css.js +12 -12
  320. package/dist/components/forms/InputText/InputText.cjs +1 -1
  321. package/dist/components/forms/InputText/InputText.cjs.map +1 -1
  322. package/dist/components/forms/InputText/InputText.js +55 -47
  323. package/dist/components/forms/InputText/InputText.js.map +1 -1
  324. package/dist/components/forms/InputText/InputText.module.css.cjs +1 -1
  325. package/dist/components/forms/InputText/InputText.module.css.js +10 -10
  326. package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs +1 -1
  327. package/dist/components/forms/RadioGroup/RadioGroup.module.css.js +4 -4
  328. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs +2 -0
  329. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.map +1 -0
  330. package/dist/components/forms/SegmentedControl/SegmentedControl.js +52 -0
  331. package/dist/components/forms/SegmentedControl/SegmentedControl.js.map +1 -0
  332. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs +2 -0
  333. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs.map +1 -0
  334. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js +22 -0
  335. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
  336. package/dist/components/forms/Select/Select.module.css.cjs +1 -1
  337. package/dist/components/forms/Select/Select.module.css.js +13 -13
  338. package/dist/components/forms/Switch/Switch.module.css.cjs +1 -1
  339. package/dist/components/forms/Switch/Switch.module.css.js +2 -2
  340. package/dist/components/icons/icons.cjs +1 -1
  341. package/dist/components/icons/icons.cjs.map +1 -1
  342. package/dist/components/icons/icons.js +198 -40
  343. package/dist/components/icons/icons.js.map +1 -1
  344. package/dist/components/navigation/SkipLink/SkipLink.cjs +2 -0
  345. package/dist/components/navigation/SkipLink/SkipLink.cjs.map +1 -0
  346. package/dist/components/navigation/SkipLink/SkipLink.js +9 -0
  347. package/dist/components/navigation/SkipLink/SkipLink.js.map +1 -0
  348. package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs +2 -0
  349. package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs.map +1 -0
  350. package/dist/components/navigation/SkipLink/SkipLink.module.css.js +8 -0
  351. package/dist/components/navigation/SkipLink/SkipLink.module.css.js.map +1 -0
  352. package/dist/components/navigation/Steps/Steps.cjs +2 -0
  353. package/dist/components/navigation/Steps/Steps.cjs.map +1 -0
  354. package/dist/components/navigation/Steps/Steps.js +30 -0
  355. package/dist/components/navigation/Steps/Steps.js.map +1 -0
  356. package/dist/components/navigation/Steps/Steps.module.css.cjs +2 -0
  357. package/dist/components/navigation/Steps/Steps.module.css.cjs.map +1 -0
  358. package/dist/components/navigation/Steps/Steps.module.css.js +26 -0
  359. package/dist/components/navigation/Steps/Steps.module.css.js.map +1 -0
  360. package/dist/components/navigation/Tabs/Tabs.cjs +1 -1
  361. package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -1
  362. package/dist/components/navigation/Tabs/Tabs.js +88 -79
  363. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  364. package/dist/components/navigation/Tabs/Tabs.module.css.cjs +1 -1
  365. package/dist/components/navigation/Tabs/Tabs.module.css.js +18 -14
  366. package/dist/components/navigation/Tabs/Tabs.module.css.js.map +1 -1
  367. package/dist/components/navigation/TabsNav/TabsNav.cjs +2 -0
  368. package/dist/components/navigation/TabsNav/TabsNav.cjs.map +1 -0
  369. package/dist/components/navigation/TabsNav/TabsNav.js +21 -0
  370. package/dist/components/navigation/TabsNav/TabsNav.js.map +1 -0
  371. package/dist/components/navigation/TabsNav/TabsNav.module.css.cjs +2 -0
  372. package/dist/components/navigation/TabsNav/TabsNav.module.css.cjs.map +1 -0
  373. package/dist/components/navigation/TabsNav/TabsNav.module.css.js +18 -0
  374. package/dist/components/navigation/TabsNav/TabsNav.module.css.js.map +1 -0
  375. package/dist/components/overlays/Dialog/Dialog.cjs +1 -1
  376. package/dist/components/overlays/Dialog/Dialog.cjs.map +1 -1
  377. package/dist/components/overlays/Dialog/Dialog.js +11 -58
  378. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  379. package/dist/components/overlays/Dialog/DialogFrame.cjs +2 -0
  380. package/dist/components/overlays/Dialog/DialogFrame.cjs.map +1 -0
  381. package/dist/components/overlays/Dialog/DialogFrame.js +65 -0
  382. package/dist/components/overlays/Dialog/DialogFrame.js.map +1 -0
  383. package/dist/components/overlays/Drawer/Drawer.cjs +2 -0
  384. package/dist/components/overlays/Drawer/Drawer.cjs.map +1 -0
  385. package/dist/components/overlays/Drawer/Drawer.js +17 -0
  386. package/dist/components/overlays/Drawer/Drawer.js.map +1 -0
  387. package/dist/components/overlays/Drawer/Drawer.module.css.cjs +2 -0
  388. package/dist/components/overlays/Drawer/Drawer.module.css.cjs.map +1 -0
  389. package/dist/components/overlays/Drawer/Drawer.module.css.js +23 -0
  390. package/dist/components/overlays/Drawer/Drawer.module.css.js.map +1 -0
  391. package/dist/components/overlays/Menu/Menu.cjs +1 -1
  392. package/dist/components/overlays/Menu/Menu.cjs.map +1 -1
  393. package/dist/components/overlays/Menu/Menu.js +105 -86
  394. package/dist/components/overlays/Menu/Menu.js.map +1 -1
  395. package/dist/components/overlays/Menu/Menu.module.css.cjs +1 -1
  396. package/dist/components/overlays/Menu/Menu.module.css.js +24 -6
  397. package/dist/components/overlays/Menu/Menu.module.css.js.map +1 -1
  398. package/dist/design-system.css +1 -1
  399. package/dist/index.cjs +1 -1
  400. package/dist/index.js +190 -118
  401. package/dist/index.js.map +1 -1
  402. package/dist/types/components/actions/ButtonTile/ButtonTile.d.ts +14 -0
  403. package/dist/types/components/actions/ButtonTile/index.d.ts +2 -0
  404. package/dist/types/components/actions/Toolbar/Toolbar.d.ts +27 -0
  405. package/dist/types/components/actions/Toolbar/index.d.ts +2 -0
  406. package/dist/types/components/charts/ChartArea/ChartArea.d.ts +15 -4
  407. package/dist/types/components/charts/ChartBar/ChartBar.d.ts +11 -4
  408. package/dist/types/components/charts/ChartCombo/ChartCombo.d.ts +16 -4
  409. package/dist/types/components/charts/ChartDonut/ChartDonut.d.ts +5 -1
  410. package/dist/types/components/charts/ChartGauge/ChartGauge.d.ts +83 -0
  411. package/dist/types/components/charts/ChartGauge/gaugeLayout.d.ts +64 -0
  412. package/dist/types/components/charts/ChartGauge/gaugeReading.d.ts +97 -0
  413. package/dist/types/components/charts/ChartGauge/gaugeScale.d.ts +38 -0
  414. package/dist/types/components/charts/ChartGauge/index.d.ts +2 -0
  415. package/dist/types/components/charts/ChartLine/ChartLine.d.ts +15 -4
  416. package/dist/types/components/charts/ChartMap/ChartMap.d.ts +104 -0
  417. package/dist/types/components/charts/ChartMap/ChartMapLegend.d.ts +44 -0
  418. package/dist/types/components/charts/ChartMap/ChartMapTable.d.ts +38 -0
  419. package/dist/types/components/charts/ChartMap/index.d.ts +4 -0
  420. package/dist/types/components/charts/ChartMap/mapGeometry.d.ts +56 -0
  421. package/dist/types/components/charts/ChartMap/mapLabels.d.ts +51 -0
  422. package/dist/types/components/charts/ChartMap/mapScales.d.ts +76 -0
  423. package/dist/types/components/charts/ChartMap/polylabel.d.ts +9 -0
  424. package/dist/types/components/charts/ChartPie/ChartPie.d.ts +5 -1
  425. package/dist/types/components/charts/ChartRadial/ChartRadial.d.ts +5 -1
  426. package/dist/types/components/charts/ChartSankey/ChartSankey.d.ts +5 -1
  427. package/dist/types/components/charts/ChartScatter/ChartScatter.d.ts +7 -1
  428. package/dist/types/components/charts/ChartSunburst/ChartSunburst.d.ts +11 -2
  429. package/dist/types/components/charts/ChartTimeline/ChartTimeline.d.ts +137 -0
  430. package/dist/types/components/charts/ChartTimeline/ChartTimelineTable.d.ts +25 -0
  431. package/dist/types/components/charts/ChartTimeline/index.d.ts +2 -0
  432. package/dist/types/components/charts/ChartTimeline/timelineLayout.d.ts +70 -0
  433. package/dist/types/components/charts/ChartTimeline/timelineTime.d.ts +16 -0
  434. package/dist/types/components/charts/ChartTimeline/timelineTooltip.d.ts +45 -0
  435. package/dist/types/components/charts/ChartTooltip/ChartTooltip.d.ts +2 -0
  436. package/dist/types/components/charts/ChartTreemap/ChartTreemap.d.ts +11 -2
  437. package/dist/types/components/charts/ChartWaterfall/ChartWaterfall.d.ts +8 -3
  438. package/dist/types/components/charts/core/CartesianFrame.d.ts +6 -1
  439. package/dist/types/components/charts/core/ChartFrame.d.ts +7 -1
  440. package/dist/types/components/charts/core/ChartLegend.d.ts +3 -1
  441. package/dist/types/components/charts/core/PointBands.d.ts +22 -0
  442. package/dist/types/components/charts/core/cartesianLayout.d.ts +10 -4
  443. package/dist/types/components/charts/core/hoverPath.d.ts +10 -0
  444. package/dist/types/components/charts/core/index.d.ts +13 -3
  445. package/dist/types/components/charts/core/pointLabels.d.ts +13 -0
  446. package/dist/types/components/charts/core/tooltips.d.ts +49 -0
  447. package/dist/types/components/charts/core/useCartesianLayout.d.ts +20 -0
  448. package/dist/types/components/charts/core/useSeriesToggle.d.ts +15 -1
  449. package/dist/types/components/data-display/Accordion/Accordion.d.ts +6 -1
  450. package/dist/types/components/data-display/Accordion/index.d.ts +1 -1
  451. package/dist/types/components/data-display/List/List.d.ts +1 -1
  452. package/dist/types/components/data-display/List/useListing.d.ts +7 -1
  453. package/dist/types/components/data-display/SortableList/SortableList.d.ts +22 -0
  454. package/dist/types/components/data-display/SortableList/index.d.ts +2 -0
  455. package/dist/types/components/data-display/Tag/Tag.d.ts +13 -0
  456. package/dist/types/components/data-display/Tag/index.d.ts +2 -0
  457. package/dist/types/components/data-display/Timeline/Timeline.d.ts +15 -0
  458. package/dist/types/components/data-display/Timeline/index.d.ts +2 -0
  459. package/dist/types/components/feedback/Skeleton/Skeleton.d.ts +13 -0
  460. package/dist/types/components/feedback/Skeleton/index.d.ts +2 -0
  461. package/dist/types/components/feedback/Toast/ToastRegion.d.ts +2 -0
  462. package/dist/types/components/feedback/Toast/index.d.ts +3 -0
  463. package/dist/types/components/feedback/Toast/toastStore.d.ts +24 -0
  464. package/dist/types/components/forms/CheckboxGroup/CheckboxGroup.d.ts +28 -0
  465. package/dist/types/components/forms/CheckboxGroup/index.d.ts +2 -0
  466. package/dist/types/components/forms/ColorPicker/ColorPicker.d.ts +26 -0
  467. package/dist/types/components/forms/ColorPicker/index.d.ts +2 -0
  468. package/dist/types/components/forms/ComboBox/ComboBox.d.ts +7 -1
  469. package/dist/types/components/forms/Field/Field.d.ts +6 -2
  470. package/dist/types/components/forms/Field/index.d.ts +1 -1
  471. package/dist/types/components/forms/FileUpload/FileUpload.d.ts +37 -0
  472. package/dist/types/components/forms/FileUpload/index.d.ts +2 -0
  473. package/dist/types/components/forms/InputText/InputText.d.ts +4 -2
  474. package/dist/types/components/forms/SegmentedControl/SegmentedControl.d.ts +23 -0
  475. package/dist/types/components/forms/SegmentedControl/index.d.ts +2 -0
  476. package/dist/types/components/icons/icons.d.ts +29 -0
  477. package/dist/types/components/icons/index.d.ts +1 -1
  478. package/dist/types/components/navigation/SkipLink/SkipLink.d.ts +7 -0
  479. package/dist/types/components/navigation/SkipLink/index.d.ts +2 -0
  480. package/dist/types/components/navigation/Steps/Steps.d.ts +16 -0
  481. package/dist/types/components/navigation/Steps/index.d.ts +2 -0
  482. package/dist/types/components/navigation/Tabs/Tabs.d.ts +5 -1
  483. package/dist/types/components/navigation/TabsNav/TabsNav.d.ts +20 -0
  484. package/dist/types/components/navigation/TabsNav/index.d.ts +2 -0
  485. package/dist/types/components/overlays/Dialog/Dialog.d.ts +21 -9
  486. package/dist/types/components/overlays/Dialog/DialogFrame.d.ts +13 -0
  487. package/dist/types/components/overlays/Drawer/Drawer.d.ts +9 -0
  488. package/dist/types/components/overlays/Drawer/index.d.ts +2 -0
  489. package/dist/types/components/overlays/Menu/Menu.d.ts +16 -2
  490. package/dist/types/components/overlays/Menu/index.d.ts +1 -1
  491. package/dist/types/index.d.ts +43 -7
  492. package/dist/types/utils/formatters/formatarDuracao.d.ts +5 -0
  493. package/dist/types/utils/formatters/formatarNumero.d.ts +6 -1
  494. package/dist/types/utils/formatters/formatarTamanhoDeArquivo.d.ts +7 -0
  495. package/dist/types/utils/formatters/index.d.ts +4 -1
  496. package/dist/utils/formatters/formatarDuracao.cjs +2 -0
  497. package/dist/utils/formatters/formatarDuracao.cjs.map +1 -0
  498. package/dist/utils/formatters/formatarDuracao.js +10 -0
  499. package/dist/utils/formatters/formatarDuracao.js.map +1 -0
  500. package/dist/utils/formatters/formatarNumero.cjs +1 -1
  501. package/dist/utils/formatters/formatarNumero.cjs.map +1 -1
  502. package/dist/utils/formatters/formatarNumero.js +42 -17
  503. package/dist/utils/formatters/formatarNumero.js.map +1 -1
  504. package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs +2 -0
  505. package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs.map +1 -0
  506. package/dist/utils/formatters/formatarTamanhoDeArquivo.js +17 -0
  507. package/dist/utils/formatters/formatarTamanhoDeArquivo.js.map +1 -0
  508. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.cjs","sources":["../../../../src/components/navigation/Tabs/Tabs.tsx"],"sourcesContent":["import {\n useEffect,\n useId,\n useMemo,\n useRef,\n type ComponentPropsWithRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { useSelection, type SelectionItem } from '../../../hooks/useSelection';\nimport styles from './Tabs.module.css';\n\nexport interface TabItem {\n content: ReactNode;\n disabled?: boolean;\n key: string;\n label: string;\n}\n\nexport type TabsOrientation = 'horizontal' | 'vertical';\n\nexport interface TabsProps extends ComponentPropsWithRef<'div'> {\n defaultSelectedKey?: string;\n items: readonly TabItem[];\n label: string;\n onSelectionChange?: (key: string) => void;\n orientation?: TabsOrientation;\n selectedKey?: string;\n}\n\nexport function Tabs({\n className,\n defaultSelectedKey,\n items,\n label,\n onSelectionChange,\n orientation = 'horizontal',\n selectedKey,\n ...props\n}: TabsProps) {\n const baseId = `tabs-${useId()}`;\n const nodes = useRef(new Map<string, HTMLElement>());\n const collection = useMemo<SelectionItem[]>(\n () => items.map((item) => ({ key: item.key, disabled: item.disabled, textValue: item.label })),\n [items],\n );\n const primeira = collection.find((item) => !item.disabled)?.key;\n const selection = useSelection({\n items: collection,\n mode: 'single',\n defaultSelectedKeys: selectedKey === undefined ? [defaultSelectedKey ?? primeira ?? ''] : undefined,\n selectedKeys: selectedKey === undefined ? undefined : [selectedKey],\n onSelectionChange: (keys) => {\n const [escolhida] = keys;\n if (escolhida !== undefined) {\n onSelectionChange?.(escolhida);\n }\n },\n });\n const [ativa] = selection.selectedKeys;\n const painel = items.find((item) => item.key === ativa);\n // A lista sempre tem uma parada de Tab: com a escolhida inexistente ou desabilitada, nenhuma aba era alcancavel.\n const parada = collection.some((item) => item.key === ativa && !item.disabled) ? ativa : primeira;\n\n useEffect(() => {\n if (selection.focusedKey) {\n nodes.current.get(selection.focusedKey)?.focus();\n }\n }, [selection.focusedKey]);\n\n // Ativacao automatica: mover o foco troca a aba, conforme o padrao do APG\n // para paineis que carregam instantaneamente.\n function mover(proxima: string | undefined) {\n if (proxima) {\n selection.select(proxima);\n }\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const atual = selection.focusedKey ?? ativa;\n const avancar = orientation === 'vertical' ? 'ArrowDown' : 'ArrowRight';\n const voltar = orientation === 'vertical' ? 'ArrowUp' : 'ArrowLeft';\n\n if (event.key === avancar) {\n event.preventDefault();\n mover(proximaChave(collection, atual, 1));\n } else if (event.key === voltar) {\n event.preventDefault();\n mover(proximaChave(collection, atual, -1));\n } else if (event.key === 'Home') {\n event.preventDefault();\n mover(collection.find((item) => !item.disabled)?.key);\n } else if (event.key === 'End') {\n event.preventDefault();\n mover([...collection].reverse().find((item) => !item.disabled)?.key);\n }\n }\n\n return (\n <div {...props} className={[styles.tabs, styles[orientation], className].filter(Boolean).join(' ')}>\n <div\n className={styles.list}\n role=\"tablist\"\n aria-label={label}\n aria-orientation={orientation}\n onKeyDown={handleKeyDown}\n >\n {items.map((item) => (\n <button\n key={item.key}\n ref={(node) => {\n if (node) {\n nodes.current.set(item.key, node);\n } else {\n nodes.current.delete(item.key);\n }\n }}\n className={[styles.tab, ativa === item.key && styles.active].filter(Boolean).join(' ')}\n type=\"button\"\n role=\"tab\"\n id={`${baseId}-${item.key}`}\n aria-controls={ativa === item.key ? `${baseId}-${item.key}-panel` : undefined}\n aria-selected={ativa === item.key}\n disabled={item.disabled}\n tabIndex={parada === item.key ? 0 : -1}\n onClick={() => selection.select(item.key)}\n >\n {item.label}\n </button>\n ))}\n </div>\n {painel && (\n <div\n className={styles.panel}\n role=\"tabpanel\"\n id={`${baseId}-${painel.key}-panel`}\n aria-labelledby={`${baseId}-${painel.key}`}\n tabIndex={0}\n >\n {painel.content}\n </div>\n )}\n </div>\n );\n}\n\n// Percorre em circulo, como o APG define para abas.\nfunction proximaChave(items: readonly SelectionItem[], from: string | undefined, passo: 1 | -1) {\n const total = items.length;\n const inicio = items.findIndex((item) => item.key === from);\n\n for (let i = 1; i <= total; i += 1) {\n const item = items[(inicio + passo * i + total * total) % total];\n if (!item.disabled) {\n return item.key;\n }\n }\n\n return from;\n}\n"],"names":["Tabs","className","defaultSelectedKey","items","label","onSelectionChange","orientation","selectedKey","props","baseId","useId","nodes","useRef","collection","useMemo","item","primeira","_a","selection","useSelection","keys","escolhida","ativa","painel","parada","useEffect","mover","proxima","handleKeyDown","event","atual","avancar","voltar","proximaChave","_b","styles","jsx","node","from","passo","total","inicio","i"],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.cjs","sources":["../../../../src/components/navigation/Tabs/Tabs.tsx"],"sourcesContent":["import {\n useEffect,\n useId,\n useMemo,\n useRef,\n type ComponentPropsWithRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { useSelection, type SelectionItem } from '../../../hooks/useSelection';\nimport styles from './Tabs.module.css';\n\nexport interface TabItem {\n content: ReactNode;\n disabled?: boolean;\n key: string;\n label: string;\n}\n\nexport type TabsOrientation = 'horizontal' | 'vertical';\n\nexport interface TabsProps extends ComponentPropsWithRef<'div'> {\n defaultSelectedKey?: string;\n /** O painel ocupa a altura que sobra nas abas e rola por dentro. As abas precisam de altura, dada por quem as usa. */\n fillHeight?: boolean;\n /** As abas dividem a largura em partes iguais, em vez de ficar do tamanho do rotulo. */\n fitted?: boolean;\n items: readonly TabItem[];\n label: string;\n onSelectionChange?: (key: string) => void;\n orientation?: TabsOrientation;\n selectedKey?: string;\n}\n\nexport function Tabs({\n className,\n defaultSelectedKey,\n fillHeight = false,\n fitted = false,\n items,\n label,\n onSelectionChange,\n orientation = 'horizontal',\n selectedKey,\n ...props\n}: TabsProps) {\n const baseId = `tabs-${useId()}`;\n const nodes = useRef(new Map<string, HTMLElement>());\n const collection = useMemo<SelectionItem[]>(\n () => items.map((item) => ({ key: item.key, disabled: item.disabled, textValue: item.label })),\n [items],\n );\n const primeira = collection.find((item) => !item.disabled)?.key;\n const selection = useSelection({\n items: collection,\n mode: 'single',\n defaultSelectedKeys: selectedKey === undefined ? [defaultSelectedKey ?? primeira ?? ''] : undefined,\n selectedKeys: selectedKey === undefined ? undefined : [selectedKey],\n onSelectionChange: (keys) => {\n const [escolhida] = keys;\n if (escolhida !== undefined) {\n onSelectionChange?.(escolhida);\n }\n },\n });\n const [ativa] = selection.selectedKeys;\n const painel = items.find((item) => item.key === ativa);\n // A lista sempre tem uma parada de Tab: com a escolhida inexistente ou desabilitada, nenhuma aba era alcancavel.\n const parada = collection.some((item) => item.key === ativa && !item.disabled) ? ativa : primeira;\n\n useEffect(() => {\n if (selection.focusedKey) {\n nodes.current.get(selection.focusedKey)?.focus();\n }\n }, [selection.focusedKey]);\n\n // Ativacao automatica: mover o foco troca a aba, conforme o padrao do APG\n // para paineis que carregam instantaneamente.\n function mover(proxima: string | undefined) {\n if (proxima) {\n selection.select(proxima);\n }\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const atual = selection.focusedKey ?? ativa;\n const avancar = orientation === 'vertical' ? 'ArrowDown' : 'ArrowRight';\n const voltar = orientation === 'vertical' ? 'ArrowUp' : 'ArrowLeft';\n\n if (event.key === avancar) {\n event.preventDefault();\n mover(proximaChave(collection, atual, 1));\n } else if (event.key === voltar) {\n event.preventDefault();\n mover(proximaChave(collection, atual, -1));\n } else if (event.key === 'Home') {\n event.preventDefault();\n mover(collection.find((item) => !item.disabled)?.key);\n } else if (event.key === 'End') {\n event.preventDefault();\n mover([...collection].reverse().find((item) => !item.disabled)?.key);\n }\n }\n\n return (\n <div\n {...props}\n className={[styles.tabs, styles[orientation], fitted && styles.fitted, fillHeight && styles.fillHeight, className]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={styles.list}\n role=\"tablist\"\n aria-label={label}\n aria-orientation={orientation}\n onKeyDown={handleKeyDown}\n >\n {items.map((item) => (\n <button\n key={item.key}\n ref={(node) => {\n if (node) {\n nodes.current.set(item.key, node);\n } else {\n nodes.current.delete(item.key);\n }\n }}\n className={[styles.tab, ativa === item.key && styles.active].filter(Boolean).join(' ')}\n type=\"button\"\n role=\"tab\"\n id={`${baseId}-${item.key}`}\n aria-controls={ativa === item.key ? `${baseId}-${item.key}-panel` : undefined}\n aria-selected={ativa === item.key}\n disabled={item.disabled}\n tabIndex={parada === item.key ? 0 : -1}\n onClick={() => selection.select(item.key)}\n >\n {item.label}\n </button>\n ))}\n </div>\n {painel && (\n <div\n className={styles.panel}\n role=\"tabpanel\"\n id={`${baseId}-${painel.key}-panel`}\n aria-labelledby={`${baseId}-${painel.key}`}\n tabIndex={0}\n >\n {painel.content}\n </div>\n )}\n </div>\n );\n}\n\n// Percorre em circulo, como o APG define para abas.\nfunction proximaChave(items: readonly SelectionItem[], from: string | undefined, passo: 1 | -1) {\n const total = items.length;\n const inicio = items.findIndex((item) => item.key === from);\n\n for (let i = 1; i <= total; i += 1) {\n const item = items[(inicio + passo * i + total * total) % total];\n if (!item.disabled) {\n return item.key;\n }\n }\n\n return from;\n}\n"],"names":["Tabs","className","defaultSelectedKey","fillHeight","fitted","items","label","onSelectionChange","orientation","selectedKey","props","baseId","useId","nodes","useRef","collection","useMemo","item","primeira","_a","selection","useSelection","keys","escolhida","ativa","painel","parada","useEffect","mover","proxima","handleKeyDown","event","atual","avancar","voltar","proximaChave","_b","jsxs","styles","jsx","node","from","passo","total","inicio","i"],"mappings":"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"}
@@ -1,96 +1,105 @@
1
- import { jsxs as B, jsx as $ } from "react/jsx-runtime";
2
- import { useId as E, useRef as M, useMemo as R, useEffect as g } from "react";
3
- import i from "./Tabs.module.css.js";
4
- import { useSelection as z } from "../../../hooks/useSelection/useSelection.js";
5
- function V({
1
+ import { jsxs as E, jsx as w } from "react/jsx-runtime";
2
+ import { useId as H, useRef as M, useMemo as R, useEffect as z } from "react";
3
+ import l from "./Tabs.module.css.js";
4
+ import { useSelection as L } from "../../../hooks/useSelection/useSelection.js";
5
+ function F({
6
6
  className: c,
7
- defaultSelectedKey: y,
8
- items: d,
9
- label: n,
10
- onSelectionChange: f,
11
- orientation: a = "horizontal",
12
- selectedKey: t,
13
- ...I
7
+ defaultSelectedKey: f,
8
+ fillHeight: p = !1,
9
+ fitted: t = !1,
10
+ items: i,
11
+ label: s,
12
+ onSelectionChange: n,
13
+ orientation: y = "horizontal",
14
+ selectedKey: v,
15
+ ...A
14
16
  }) {
15
- var h;
16
- const u = `tabs-${E()}`, p = M(/* @__PURE__ */ new Map()), o = R(
17
- () => d.map((e) => ({ key: e.key, disabled: e.disabled, textValue: e.label })),
18
- [d]
19
- ), w = (h = o.find((e) => !e.disabled)) == null ? void 0 : h.key, s = z({
17
+ var D;
18
+ const u = `tabs-${H()}`, $ = M(/* @__PURE__ */ new Map()), o = R(
19
+ () => i.map((e) => ({ key: e.key, disabled: e.disabled, textValue: e.label })),
20
+ [i]
21
+ ), x = (D = o.find((e) => !e.disabled)) == null ? void 0 : D.key, d = L({
20
22
  items: o,
21
23
  mode: "single",
22
- defaultSelectedKeys: t === void 0 ? [y ?? w ?? ""] : void 0,
23
- selectedKeys: t === void 0 ? void 0 : [t],
24
+ defaultSelectedKeys: v === void 0 ? [f ?? x ?? ""] : void 0,
25
+ selectedKeys: v === void 0 ? void 0 : [v],
24
26
  onSelectionChange: (e) => {
25
- const [l] = e;
26
- l !== void 0 && (f == null || f(l));
27
+ const [a] = e;
28
+ a !== void 0 && (n == null || n(a));
27
29
  }
28
- }), [r] = s.selectedKeys, b = d.find((e) => e.key === r), j = o.some((e) => e.key === r && !e.disabled) ? r : w;
29
- g(() => {
30
+ }), [r] = d.selectedKeys, b = i.find((e) => e.key === r), N = o.some((e) => e.key === r && !e.disabled) ? r : x;
31
+ z(() => {
30
32
  var e;
31
- s.focusedKey && ((e = p.current.get(s.focusedKey)) == null || e.focus());
32
- }, [s.focusedKey]);
33
+ d.focusedKey && ((e = $.current.get(d.focusedKey)) == null || e.focus());
34
+ }, [d.focusedKey]);
33
35
  function k(e) {
34
- e && s.select(e);
36
+ e && d.select(e);
35
37
  }
36
- function A(e) {
37
- var x, D;
38
- const l = s.focusedKey ?? r, N = a === "vertical" ? "ArrowDown" : "ArrowRight", m = a === "vertical" ? "ArrowUp" : "ArrowLeft";
39
- e.key === N ? (e.preventDefault(), k(K(o, l, 1))) : e.key === m ? (e.preventDefault(), k(K(o, l, -1))) : e.key === "Home" ? (e.preventDefault(), k((x = o.find((v) => !v.disabled)) == null ? void 0 : x.key)) : e.key === "End" && (e.preventDefault(), k((D = [...o].reverse().find((v) => !v.disabled)) == null ? void 0 : D.key));
38
+ function g(e) {
39
+ var K, I;
40
+ const a = d.focusedKey ?? r, m = y === "vertical" ? "ArrowDown" : "ArrowRight", B = y === "vertical" ? "ArrowUp" : "ArrowLeft";
41
+ e.key === m ? (e.preventDefault(), k(j(o, a, 1))) : e.key === B ? (e.preventDefault(), k(j(o, a, -1))) : e.key === "Home" ? (e.preventDefault(), k((K = o.find((h) => !h.disabled)) == null ? void 0 : K.key)) : e.key === "End" && (e.preventDefault(), k((I = [...o].reverse().find((h) => !h.disabled)) == null ? void 0 : I.key));
40
42
  }
41
- return /* @__PURE__ */ B("div", { ...I, className: [i.tabs, i[a], c].filter(Boolean).join(" "), children: [
42
- /* @__PURE__ */ $(
43
- "div",
44
- {
45
- className: i.list,
46
- role: "tablist",
47
- "aria-label": n,
48
- "aria-orientation": a,
49
- onKeyDown: A,
50
- children: d.map((e) => /* @__PURE__ */ $(
51
- "button",
43
+ return /* @__PURE__ */ E(
44
+ "div",
45
+ {
46
+ ...A,
47
+ className: [l.tabs, l[y], t && l.fitted, p && l.fillHeight, c].filter(Boolean).join(" "),
48
+ children: [
49
+ /* @__PURE__ */ w(
50
+ "div",
52
51
  {
53
- ref: (l) => {
54
- l ? p.current.set(e.key, l) : p.current.delete(e.key);
55
- },
56
- className: [i.tab, r === e.key && i.active].filter(Boolean).join(" "),
57
- type: "button",
58
- role: "tab",
59
- id: `${u}-${e.key}`,
60
- "aria-controls": r === e.key ? `${u}-${e.key}-panel` : void 0,
61
- "aria-selected": r === e.key,
62
- disabled: e.disabled,
63
- tabIndex: j === e.key ? 0 : -1,
64
- onClick: () => s.select(e.key),
65
- children: e.label
66
- },
67
- e.key
68
- ))
69
- }
70
- ),
71
- b && /* @__PURE__ */ $(
72
- "div",
73
- {
74
- className: i.panel,
75
- role: "tabpanel",
76
- id: `${u}-${b.key}-panel`,
77
- "aria-labelledby": `${u}-${b.key}`,
78
- tabIndex: 0,
79
- children: b.content
80
- }
81
- )
82
- ] });
52
+ className: l.list,
53
+ role: "tablist",
54
+ "aria-label": s,
55
+ "aria-orientation": y,
56
+ onKeyDown: g,
57
+ children: i.map((e) => /* @__PURE__ */ w(
58
+ "button",
59
+ {
60
+ ref: (a) => {
61
+ a ? $.current.set(e.key, a) : $.current.delete(e.key);
62
+ },
63
+ className: [l.tab, r === e.key && l.active].filter(Boolean).join(" "),
64
+ type: "button",
65
+ role: "tab",
66
+ id: `${u}-${e.key}`,
67
+ "aria-controls": r === e.key ? `${u}-${e.key}-panel` : void 0,
68
+ "aria-selected": r === e.key,
69
+ disabled: e.disabled,
70
+ tabIndex: N === e.key ? 0 : -1,
71
+ onClick: () => d.select(e.key),
72
+ children: e.label
73
+ },
74
+ e.key
75
+ ))
76
+ }
77
+ ),
78
+ b && /* @__PURE__ */ w(
79
+ "div",
80
+ {
81
+ className: l.panel,
82
+ role: "tabpanel",
83
+ id: `${u}-${b.key}-panel`,
84
+ "aria-labelledby": `${u}-${b.key}`,
85
+ tabIndex: 0,
86
+ children: b.content
87
+ }
88
+ )
89
+ ]
90
+ }
91
+ );
83
92
  }
84
- function K(c, y, d) {
85
- const n = c.length, f = c.findIndex((a) => a.key === y);
86
- for (let a = 1; a <= n; a += 1) {
87
- const t = c[(f + d * a + n * n) % n];
88
- if (!t.disabled)
89
- return t.key;
93
+ function j(c, f, p) {
94
+ const t = c.length, i = c.findIndex((s) => s.key === f);
95
+ for (let s = 1; s <= t; s += 1) {
96
+ const n = c[(i + p * s + t * t) % t];
97
+ if (!n.disabled)
98
+ return n.key;
90
99
  }
91
- return y;
100
+ return f;
92
101
  }
93
102
  export {
94
- V as Tabs
103
+ F as Tabs
95
104
  };
96
105
  //# sourceMappingURL=Tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../../src/components/navigation/Tabs/Tabs.tsx"],"sourcesContent":["import {\n useEffect,\n useId,\n useMemo,\n useRef,\n type ComponentPropsWithRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { useSelection, type SelectionItem } from '../../../hooks/useSelection';\nimport styles from './Tabs.module.css';\n\nexport interface TabItem {\n content: ReactNode;\n disabled?: boolean;\n key: string;\n label: string;\n}\n\nexport type TabsOrientation = 'horizontal' | 'vertical';\n\nexport interface TabsProps extends ComponentPropsWithRef<'div'> {\n defaultSelectedKey?: string;\n items: readonly TabItem[];\n label: string;\n onSelectionChange?: (key: string) => void;\n orientation?: TabsOrientation;\n selectedKey?: string;\n}\n\nexport function Tabs({\n className,\n defaultSelectedKey,\n items,\n label,\n onSelectionChange,\n orientation = 'horizontal',\n selectedKey,\n ...props\n}: TabsProps) {\n const baseId = `tabs-${useId()}`;\n const nodes = useRef(new Map<string, HTMLElement>());\n const collection = useMemo<SelectionItem[]>(\n () => items.map((item) => ({ key: item.key, disabled: item.disabled, textValue: item.label })),\n [items],\n );\n const primeira = collection.find((item) => !item.disabled)?.key;\n const selection = useSelection({\n items: collection,\n mode: 'single',\n defaultSelectedKeys: selectedKey === undefined ? [defaultSelectedKey ?? primeira ?? ''] : undefined,\n selectedKeys: selectedKey === undefined ? undefined : [selectedKey],\n onSelectionChange: (keys) => {\n const [escolhida] = keys;\n if (escolhida !== undefined) {\n onSelectionChange?.(escolhida);\n }\n },\n });\n const [ativa] = selection.selectedKeys;\n const painel = items.find((item) => item.key === ativa);\n // A lista sempre tem uma parada de Tab: com a escolhida inexistente ou desabilitada, nenhuma aba era alcancavel.\n const parada = collection.some((item) => item.key === ativa && !item.disabled) ? ativa : primeira;\n\n useEffect(() => {\n if (selection.focusedKey) {\n nodes.current.get(selection.focusedKey)?.focus();\n }\n }, [selection.focusedKey]);\n\n // Ativacao automatica: mover o foco troca a aba, conforme o padrao do APG\n // para paineis que carregam instantaneamente.\n function mover(proxima: string | undefined) {\n if (proxima) {\n selection.select(proxima);\n }\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const atual = selection.focusedKey ?? ativa;\n const avancar = orientation === 'vertical' ? 'ArrowDown' : 'ArrowRight';\n const voltar = orientation === 'vertical' ? 'ArrowUp' : 'ArrowLeft';\n\n if (event.key === avancar) {\n event.preventDefault();\n mover(proximaChave(collection, atual, 1));\n } else if (event.key === voltar) {\n event.preventDefault();\n mover(proximaChave(collection, atual, -1));\n } else if (event.key === 'Home') {\n event.preventDefault();\n mover(collection.find((item) => !item.disabled)?.key);\n } else if (event.key === 'End') {\n event.preventDefault();\n mover([...collection].reverse().find((item) => !item.disabled)?.key);\n }\n }\n\n return (\n <div {...props} className={[styles.tabs, styles[orientation], className].filter(Boolean).join(' ')}>\n <div\n className={styles.list}\n role=\"tablist\"\n aria-label={label}\n aria-orientation={orientation}\n onKeyDown={handleKeyDown}\n >\n {items.map((item) => (\n <button\n key={item.key}\n ref={(node) => {\n if (node) {\n nodes.current.set(item.key, node);\n } else {\n nodes.current.delete(item.key);\n }\n }}\n className={[styles.tab, ativa === item.key && styles.active].filter(Boolean).join(' ')}\n type=\"button\"\n role=\"tab\"\n id={`${baseId}-${item.key}`}\n aria-controls={ativa === item.key ? `${baseId}-${item.key}-panel` : undefined}\n aria-selected={ativa === item.key}\n disabled={item.disabled}\n tabIndex={parada === item.key ? 0 : -1}\n onClick={() => selection.select(item.key)}\n >\n {item.label}\n </button>\n ))}\n </div>\n {painel && (\n <div\n className={styles.panel}\n role=\"tabpanel\"\n id={`${baseId}-${painel.key}-panel`}\n aria-labelledby={`${baseId}-${painel.key}`}\n tabIndex={0}\n >\n {painel.content}\n </div>\n )}\n </div>\n );\n}\n\n// Percorre em circulo, como o APG define para abas.\nfunction proximaChave(items: readonly SelectionItem[], from: string | undefined, passo: 1 | -1) {\n const total = items.length;\n const inicio = items.findIndex((item) => item.key === from);\n\n for (let i = 1; i <= total; i += 1) {\n const item = items[(inicio + passo * i + total * total) % total];\n if (!item.disabled) {\n return item.key;\n }\n }\n\n return from;\n}\n"],"names":["Tabs","className","defaultSelectedKey","items","label","onSelectionChange","orientation","selectedKey","props","baseId","useId","nodes","useRef","collection","useMemo","item","primeira","_a","selection","useSelection","keys","escolhida","ativa","painel","parada","useEffect","mover","proxima","handleKeyDown","event","atual","avancar","voltar","proximaChave","_b","styles","jsx","node","from","passo","total","inicio","i"],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../src/components/navigation/Tabs/Tabs.tsx"],"sourcesContent":["import {\n useEffect,\n useId,\n useMemo,\n useRef,\n type ComponentPropsWithRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { useSelection, type SelectionItem } from '../../../hooks/useSelection';\nimport styles from './Tabs.module.css';\n\nexport interface TabItem {\n content: ReactNode;\n disabled?: boolean;\n key: string;\n label: string;\n}\n\nexport type TabsOrientation = 'horizontal' | 'vertical';\n\nexport interface TabsProps extends ComponentPropsWithRef<'div'> {\n defaultSelectedKey?: string;\n /** O painel ocupa a altura que sobra nas abas e rola por dentro. As abas precisam de altura, dada por quem as usa. */\n fillHeight?: boolean;\n /** As abas dividem a largura em partes iguais, em vez de ficar do tamanho do rotulo. */\n fitted?: boolean;\n items: readonly TabItem[];\n label: string;\n onSelectionChange?: (key: string) => void;\n orientation?: TabsOrientation;\n selectedKey?: string;\n}\n\nexport function Tabs({\n className,\n defaultSelectedKey,\n fillHeight = false,\n fitted = false,\n items,\n label,\n onSelectionChange,\n orientation = 'horizontal',\n selectedKey,\n ...props\n}: TabsProps) {\n const baseId = `tabs-${useId()}`;\n const nodes = useRef(new Map<string, HTMLElement>());\n const collection = useMemo<SelectionItem[]>(\n () => items.map((item) => ({ key: item.key, disabled: item.disabled, textValue: item.label })),\n [items],\n );\n const primeira = collection.find((item) => !item.disabled)?.key;\n const selection = useSelection({\n items: collection,\n mode: 'single',\n defaultSelectedKeys: selectedKey === undefined ? [defaultSelectedKey ?? primeira ?? ''] : undefined,\n selectedKeys: selectedKey === undefined ? undefined : [selectedKey],\n onSelectionChange: (keys) => {\n const [escolhida] = keys;\n if (escolhida !== undefined) {\n onSelectionChange?.(escolhida);\n }\n },\n });\n const [ativa] = selection.selectedKeys;\n const painel = items.find((item) => item.key === ativa);\n // A lista sempre tem uma parada de Tab: com a escolhida inexistente ou desabilitada, nenhuma aba era alcancavel.\n const parada = collection.some((item) => item.key === ativa && !item.disabled) ? ativa : primeira;\n\n useEffect(() => {\n if (selection.focusedKey) {\n nodes.current.get(selection.focusedKey)?.focus();\n }\n }, [selection.focusedKey]);\n\n // Ativacao automatica: mover o foco troca a aba, conforme o padrao do APG\n // para paineis que carregam instantaneamente.\n function mover(proxima: string | undefined) {\n if (proxima) {\n selection.select(proxima);\n }\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const atual = selection.focusedKey ?? ativa;\n const avancar = orientation === 'vertical' ? 'ArrowDown' : 'ArrowRight';\n const voltar = orientation === 'vertical' ? 'ArrowUp' : 'ArrowLeft';\n\n if (event.key === avancar) {\n event.preventDefault();\n mover(proximaChave(collection, atual, 1));\n } else if (event.key === voltar) {\n event.preventDefault();\n mover(proximaChave(collection, atual, -1));\n } else if (event.key === 'Home') {\n event.preventDefault();\n mover(collection.find((item) => !item.disabled)?.key);\n } else if (event.key === 'End') {\n event.preventDefault();\n mover([...collection].reverse().find((item) => !item.disabled)?.key);\n }\n }\n\n return (\n <div\n {...props}\n className={[styles.tabs, styles[orientation], fitted && styles.fitted, fillHeight && styles.fillHeight, className]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={styles.list}\n role=\"tablist\"\n aria-label={label}\n aria-orientation={orientation}\n onKeyDown={handleKeyDown}\n >\n {items.map((item) => (\n <button\n key={item.key}\n ref={(node) => {\n if (node) {\n nodes.current.set(item.key, node);\n } else {\n nodes.current.delete(item.key);\n }\n }}\n className={[styles.tab, ativa === item.key && styles.active].filter(Boolean).join(' ')}\n type=\"button\"\n role=\"tab\"\n id={`${baseId}-${item.key}`}\n aria-controls={ativa === item.key ? `${baseId}-${item.key}-panel` : undefined}\n aria-selected={ativa === item.key}\n disabled={item.disabled}\n tabIndex={parada === item.key ? 0 : -1}\n onClick={() => selection.select(item.key)}\n >\n {item.label}\n </button>\n ))}\n </div>\n {painel && (\n <div\n className={styles.panel}\n role=\"tabpanel\"\n id={`${baseId}-${painel.key}-panel`}\n aria-labelledby={`${baseId}-${painel.key}`}\n tabIndex={0}\n >\n {painel.content}\n </div>\n )}\n </div>\n );\n}\n\n// Percorre em circulo, como o APG define para abas.\nfunction proximaChave(items: readonly SelectionItem[], from: string | undefined, passo: 1 | -1) {\n const total = items.length;\n const inicio = items.findIndex((item) => item.key === from);\n\n for (let i = 1; i <= total; i += 1) {\n const item = items[(inicio + passo * i + total * total) % total];\n if (!item.disabled) {\n return item.key;\n }\n }\n\n return from;\n}\n"],"names":["Tabs","className","defaultSelectedKey","fillHeight","fitted","items","label","onSelectionChange","orientation","selectedKey","props","baseId","useId","nodes","useRef","collection","useMemo","item","primeira","_a","selection","useSelection","keys","escolhida","ativa","painel","parada","useEffect","mover","proxima","handleKeyDown","event","atual","avancar","voltar","proximaChave","_b","jsxs","styles","jsx","node","from","passo","total","inicio","i"],"mappings":";;;;AAkCO,SAASA,EAAK;AAAA,EACnB,WAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,QAAAC,IAAS;AAAA,EACT,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,aAAAC;AAAA,EACA,GAAGC;AACL,GAAc;;AACZ,QAAMC,IAAS,QAAQC,EAAA,CAAO,IACxBC,IAAQC,EAAO,oBAAI,KAA0B,GAC7CC,IAAaC;AAAA,IACjB,MAAMX,EAAM,IAAI,CAACY,OAAU,EAAE,KAAKA,EAAK,KAAK,UAAUA,EAAK,UAAU,WAAWA,EAAK,QAAQ;AAAA,IAC7F,CAACZ,CAAK;AAAA,EAAA,GAEFa,KAAWC,IAAAJ,EAAW,KAAK,CAACE,MAAS,CAACA,EAAK,QAAQ,MAAxC,gBAAAE,EAA2C,KACtDC,IAAYC,EAAa;AAAA,IAC7B,OAAON;AAAA,IACP,MAAM;AAAA,IACN,qBAAqBN,MAAgB,SAAY,CAACP,KAAsBgB,KAAY,EAAE,IAAI;AAAA,IAC1F,cAAcT,MAAgB,SAAY,SAAY,CAACA,CAAW;AAAA,IAClE,mBAAmB,CAACa,MAAS;AAC3B,YAAM,CAACC,CAAS,IAAID;AACpB,MAAIC,MAAc,WAChBhB,KAAA,QAAAA,EAAoBgB;AAAA,IAExB;AAAA,EAAA,CACD,GACK,CAACC,CAAK,IAAIJ,EAAU,cACpBK,IAASpB,EAAM,KAAK,CAACY,MAASA,EAAK,QAAQO,CAAK,GAEhDE,IAASX,EAAW,KAAK,CAACE,MAASA,EAAK,QAAQO,KAAS,CAACP,EAAK,QAAQ,IAAIO,IAAQN;AAEzF,EAAAS,EAAU,MAAM;;AACd,IAAIP,EAAU,gBACZD,IAAAN,EAAM,QAAQ,IAAIO,EAAU,UAAU,MAAtC,QAAAD,EAAyC;AAAA,EAE7C,GAAG,CAACC,EAAU,UAAU,CAAC;AAIzB,WAASQ,EAAMC,GAA6B;AAC1C,IAAIA,KACFT,EAAU,OAAOS,CAAO;AAAA,EAE5B;AAEA,WAASC,EAAcC,GAAsC;;AAC3D,UAAMC,IAAQZ,EAAU,cAAcI,GAChCS,IAAUzB,MAAgB,aAAa,cAAc,cACrD0B,IAAS1B,MAAgB,aAAa,YAAY;AAExD,IAAIuB,EAAM,QAAQE,KAChBF,EAAM,eAAA,GACNH,EAAMO,EAAapB,GAAYiB,GAAO,CAAC,CAAC,KAC/BD,EAAM,QAAQG,KACvBH,EAAM,eAAA,GACNH,EAAMO,EAAapB,GAAYiB,GAAO,EAAE,CAAC,KAChCD,EAAM,QAAQ,UACvBA,EAAM,eAAA,GACNH,GAAMT,IAAAJ,EAAW,KAAK,CAACE,MAAS,CAACA,EAAK,QAAQ,MAAxC,gBAAAE,EAA2C,GAAG,KAC3CY,EAAM,QAAQ,UACvBA,EAAM,eAAA,GACNH,GAAMQ,IAAA,CAAC,GAAGrB,CAAU,EAAE,QAAA,EAAU,KAAK,CAACE,MAAS,CAACA,EAAK,QAAQ,MAAvD,gBAAAmB,EAA0D,GAAG;AAAA,EAEvE;AAEA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG3B;AAAA,MACJ,WAAW,CAAC4B,EAAO,MAAMA,EAAO9B,CAAW,GAAGJ,KAAUkC,EAAO,QAAQnC,KAAcmC,EAAO,YAAYrC,CAAS,EAC9G,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAsC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD,EAAO;AAAA,YAClB,MAAK;AAAA,YACL,cAAYhC;AAAA,YACZ,oBAAkBE;AAAA,YAClB,WAAWsB;AAAA,YAEV,UAAAzB,EAAM,IAAI,CAACY,MACV,gBAAAsB;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,KAAK,CAACC,MAAS;AACb,kBAAIA,IACF3B,EAAM,QAAQ,IAAII,EAAK,KAAKuB,CAAI,IAEhC3B,EAAM,QAAQ,OAAOI,EAAK,GAAG;AAAA,gBAEjC;AAAA,gBACA,WAAW,CAACqB,EAAO,KAAKd,MAAUP,EAAK,OAAOqB,EAAO,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,gBACrF,MAAK;AAAA,gBACL,MAAK;AAAA,gBACL,IAAI,GAAG3B,CAAM,IAAIM,EAAK,GAAG;AAAA,gBACzB,iBAAeO,MAAUP,EAAK,MAAM,GAAGN,CAAM,IAAIM,EAAK,GAAG,WAAW;AAAA,gBACpE,iBAAeO,MAAUP,EAAK;AAAA,gBAC9B,UAAUA,EAAK;AAAA,gBACf,UAAUS,MAAWT,EAAK,MAAM,IAAI;AAAA,gBACpC,SAAS,MAAMG,EAAU,OAAOH,EAAK,GAAG;AAAA,gBAEvC,UAAAA,EAAK;AAAA,cAAA;AAAA,cAlBDA,EAAK;AAAA,YAAA,CAoBb;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFQ,KACC,gBAAAc;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD,EAAO;AAAA,YAClB,MAAK;AAAA,YACL,IAAI,GAAG3B,CAAM,IAAIc,EAAO,GAAG;AAAA,YAC3B,mBAAiB,GAAGd,CAAM,IAAIc,EAAO,GAAG;AAAA,YACxC,UAAU;AAAA,YAET,UAAAA,EAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MACV;AAAA,IAAA;AAAA,EAAA;AAIR;AAGA,SAASU,EAAa9B,GAAiCoC,GAA0BC,GAAe;AAC9F,QAAMC,IAAQtC,EAAM,QACduC,IAASvC,EAAM,UAAU,CAACY,MAASA,EAAK,QAAQwB,CAAI;AAE1D,WAASI,IAAI,GAAGA,KAAKF,GAAOE,KAAK,GAAG;AAClC,UAAM5B,IAAOZ,GAAOuC,IAASF,IAAQG,IAAIF,IAAQA,KAASA,CAAK;AAC/D,QAAI,CAAC1B,EAAK;AACR,aAAOA,EAAK;AAAA,EAEhB;AAEA,SAAOwB;AACT;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_tabs_runad_1",a="_horizontal_runad_7",e="_list_runad_11",n="_active_runad_17",l="_vertical_runad_23",_="_tab_runad_1",s="_panel_runad_45",o={tabs:t,horizontal:a,list:e,active:n,vertical:l,tab:_,panel:s};exports.active=n;exports.default=o;exports.horizontal=a;exports.list=e;exports.panel=s;exports.tab=_;exports.tabs=t;exports.vertical=l;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_tabs_cf8v3_1",e="_horizontal_cf8v3_7",i="_list_cf8v3_11",l="_active_cf8v3_17",c="_vertical_cf8v3_23",_="_tab_cf8v3_1",a="_panel_cf8v3_45",s="_fitted_cf8v3_89",o="_fillHeight_cf8v3_95",n={tabs:t,horizontal:e,list:i,active:l,vertical:c,tab:_,panel:a,fitted:s,fillHeight:o};exports.active=l;exports.default=n;exports.fillHeight=o;exports.fitted=s;exports.horizontal=e;exports.list=i;exports.panel=a;exports.tab=_;exports.tabs=t;exports.vertical=c;
2
2
  //# sourceMappingURL=Tabs.module.css.cjs.map
@@ -1,20 +1,24 @@
1
- const t = "_tabs_runad_1", a = "_horizontal_runad_7", n = "_list_runad_11", _ = "_active_runad_17", s = "_vertical_runad_23", o = "_tab_runad_1", c = "_panel_runad_45", l = {
1
+ const t = "_tabs_cf8v3_1", _ = "_horizontal_cf8v3_7", c = "_list_cf8v3_11", i = "_active_cf8v3_17", a = "_vertical_cf8v3_23", l = "_tab_cf8v3_1", s = "_panel_cf8v3_45", e = "_fitted_cf8v3_89", o = "_fillHeight_cf8v3_95", f = {
2
2
  tabs: t,
3
- horizontal: a,
4
- list: n,
5
- active: _,
6
- vertical: s,
7
- tab: o,
8
- panel: c
3
+ horizontal: _,
4
+ list: c,
5
+ active: i,
6
+ vertical: a,
7
+ tab: l,
8
+ panel: s,
9
+ fitted: e,
10
+ fillHeight: o
9
11
  };
10
12
  export {
11
- _ as active,
12
- l as default,
13
- a as horizontal,
14
- n as list,
15
- c as panel,
16
- o as tab,
13
+ i as active,
14
+ f as default,
15
+ o as fillHeight,
16
+ e as fitted,
17
+ _ as horizontal,
18
+ c as list,
19
+ s as panel,
20
+ l as tab,
17
21
  t as tabs,
18
- s as vertical
22
+ a as vertical
19
23
  };
20
24
  //# sourceMappingURL=Tabs.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"Tabs.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),e=require("./TabsNav.module.css.cjs");function d({as:s="a",className:t,current:n,fitted:i=!1,items:u,label:o,...c}){return l.jsx("nav",{...c,"aria-label":o,className:[e.default.tabsNav,i&&e.default.fitted,t].filter(Boolean).join(" "),children:l.jsx("ul",{className:e.default.list,children:u.map(a=>{const r=a.key===n;return l.jsx("li",{className:e.default.item,children:l.jsx(s,{"aria-current":r?"page":void 0,className:[e.default.link,r&&e.default.current].filter(Boolean).join(" "),href:a.href,...a.linkProps,children:a.label})},a.key)})})})}exports.TabsNav=d;
2
+ //# sourceMappingURL=TabsNav.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsNav.cjs","sources":["../../../../src/components/navigation/TabsNav/TabsNav.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ElementType } from 'react';\nimport styles from './TabsNav.module.css';\n\nexport interface TabsNavItem {\n href?: string;\n key: string;\n label: string;\n /** Propriedades entregues inteiras ao componente de link, para o roteador que não usa `href`. */\n linkProps?: Record<string, unknown>;\n}\n\nexport interface TabsNavProps extends Omit<ComponentPropsWithRef<'nav'>, 'aria-label'> {\n /** Componente de link da aplicação, para não acoplar o sistema a um roteador. */\n as?: ElementType;\n /** Chave da aba do endereço atual. */\n current: string;\n /** As abas dividem a largura em partes iguais, em vez de ficar do tamanho do rótulo. */\n fitted?: boolean;\n items: readonly TabsNavItem[];\n label: string;\n}\n\n/** Abas que são endereços: cada uma é um link, e a da página atual leva `aria-current=\"page\"`. */\nexport function TabsNav({ as: Link = 'a', className, current, fitted = false, items, label, ...props }: TabsNavProps) {\n return (\n <nav {...props} aria-label={label} className={[styles.tabsNav, fitted && styles.fitted, className].filter(Boolean).join(' ')}>\n <ul className={styles.list}>\n {items.map((item) => {\n const atual = item.key === current;\n\n return (\n <li className={styles.item} key={item.key}>\n <Link\n aria-current={atual ? 'page' : undefined}\n className={[styles.link, atual && styles.current].filter(Boolean).join(' ')}\n href={item.href}\n {...item.linkProps}\n >\n {item.label}\n </Link>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n"],"names":["TabsNav","Link","className","current","fitted","items","label","props","jsx","styles","item","atual"],"mappings":"2JAuBO,SAASA,EAAQ,CAAE,GAAIC,EAAO,IAAK,UAAAC,EAAW,QAAAC,EAAS,OAAAC,EAAS,GAAO,MAAAC,EAAO,MAAAC,EAAO,GAAGC,GAAuB,CACpH,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EAAO,aAAYD,EAAO,UAAW,CAACG,EAAAA,QAAO,QAASL,GAAUK,EAAAA,QAAO,OAAQP,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EACzH,SAAAM,EAAAA,IAAC,KAAA,CAAG,UAAWC,EAAAA,QAAO,KACnB,SAAAJ,EAAM,IAAKK,GAAS,CACnB,MAAMC,EAAQD,EAAK,MAAQP,EAE3B,OACEK,EAAAA,IAAC,KAAA,CAAG,UAAWC,EAAAA,QAAO,KACpB,SAAAD,EAAAA,IAACP,EAAA,CACC,eAAcU,EAAQ,OAAS,OAC/B,UAAW,CAACF,EAAAA,QAAO,KAAME,GAASF,EAAAA,QAAO,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC1E,KAAMC,EAAK,KACV,GAAGA,EAAK,UAER,SAAAA,EAAK,KAAA,CAAA,CACR,EAR+BA,EAAK,GAStC,CAEJ,CAAC,EACH,EACF,CAEJ"}
@@ -0,0 +1,21 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import a from "./TabsNav.module.css.js";
3
+ function h({ as: n = "a", className: s, current: i, fitted: o = !1, items: t, label: c, ...f }) {
4
+ return /* @__PURE__ */ l("nav", { ...f, "aria-label": c, className: [a.tabsNav, o && a.fitted, s].filter(Boolean).join(" "), children: /* @__PURE__ */ l("ul", { className: a.list, children: t.map((e) => {
5
+ const r = e.key === i;
6
+ return /* @__PURE__ */ l("li", { className: a.item, children: /* @__PURE__ */ l(
7
+ n,
8
+ {
9
+ "aria-current": r ? "page" : void 0,
10
+ className: [a.link, r && a.current].filter(Boolean).join(" "),
11
+ href: e.href,
12
+ ...e.linkProps,
13
+ children: e.label
14
+ }
15
+ ) }, e.key);
16
+ }) }) });
17
+ }
18
+ export {
19
+ h as TabsNav
20
+ };
21
+ //# sourceMappingURL=TabsNav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsNav.js","sources":["../../../../src/components/navigation/TabsNav/TabsNav.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ElementType } from 'react';\nimport styles from './TabsNav.module.css';\n\nexport interface TabsNavItem {\n href?: string;\n key: string;\n label: string;\n /** Propriedades entregues inteiras ao componente de link, para o roteador que não usa `href`. */\n linkProps?: Record<string, unknown>;\n}\n\nexport interface TabsNavProps extends Omit<ComponentPropsWithRef<'nav'>, 'aria-label'> {\n /** Componente de link da aplicação, para não acoplar o sistema a um roteador. */\n as?: ElementType;\n /** Chave da aba do endereço atual. */\n current: string;\n /** As abas dividem a largura em partes iguais, em vez de ficar do tamanho do rótulo. */\n fitted?: boolean;\n items: readonly TabsNavItem[];\n label: string;\n}\n\n/** Abas que são endereços: cada uma é um link, e a da página atual leva `aria-current=\"page\"`. */\nexport function TabsNav({ as: Link = 'a', className, current, fitted = false, items, label, ...props }: TabsNavProps) {\n return (\n <nav {...props} aria-label={label} className={[styles.tabsNav, fitted && styles.fitted, className].filter(Boolean).join(' ')}>\n <ul className={styles.list}>\n {items.map((item) => {\n const atual = item.key === current;\n\n return (\n <li className={styles.item} key={item.key}>\n <Link\n aria-current={atual ? 'page' : undefined}\n className={[styles.link, atual && styles.current].filter(Boolean).join(' ')}\n href={item.href}\n {...item.linkProps}\n >\n {item.label}\n </Link>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n"],"names":["TabsNav","Link","className","current","fitted","items","label","props","jsx","styles","item","atual"],"mappings":";;AAuBO,SAASA,EAAQ,EAAE,IAAIC,IAAO,KAAK,WAAAC,GAAW,SAAAC,GAAS,QAAAC,IAAS,IAAO,OAAAC,GAAO,OAAAC,GAAO,GAAGC,KAAuB;AACpH,SACE,gBAAAC,EAAC,OAAA,EAAK,GAAGD,GAAO,cAAYD,GAAO,WAAW,CAACG,EAAO,SAASL,KAAUK,EAAO,QAAQP,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GACzH,UAAA,gBAAAM,EAAC,MAAA,EAAG,WAAWC,EAAO,MACnB,UAAAJ,EAAM,IAAI,CAACK,MAAS;AACnB,UAAMC,IAAQD,EAAK,QAAQP;AAE3B,WACE,gBAAAK,EAAC,MAAA,EAAG,WAAWC,EAAO,MACpB,UAAA,gBAAAD;AAAA,MAACP;AAAA,MAAA;AAAA,QACC,gBAAcU,IAAQ,SAAS;AAAA,QAC/B,WAAW,CAACF,EAAO,MAAME,KAASF,EAAO,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,QAC1E,MAAMC,EAAK;AAAA,QACV,GAAGA,EAAK;AAAA,QAER,UAAAA,EAAK;AAAA,MAAA;AAAA,IAAA,EACR,GAR+BA,EAAK,GAStC;AAAA,EAEJ,CAAC,GACH,GACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_tabsNav_13l4d_2",e="_list_13l4d_6",_="_item_13l4d_16",i="_link_13l4d_21 _tab_cf8v3_1",l="_current_13l4d_26 _active_cf8v3_17",s="_fitted_13l4d_31",n={tabsNav:t,list:e,item:_,link:i,current:l,fitted:s};exports.current=l;exports.default=n;exports.fitted=s;exports.item=_;exports.link=i;exports.list=e;exports.tabsNav=t;
2
+ //# sourceMappingURL=TabsNav.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsNav.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ const t = "_tabsNav_13l4d_2", _ = "_list_13l4d_6", s = "_item_13l4d_16", l = "_link_13l4d_21 _tab_cf8v3_1", c = "_current_13l4d_26 _active_cf8v3_17", e = "_fitted_13l4d_31", i = {
2
+ tabsNav: t,
3
+ list: _,
4
+ item: s,
5
+ link: l,
6
+ current: c,
7
+ fitted: e
8
+ };
9
+ export {
10
+ c as current,
11
+ i as default,
12
+ e as fitted,
13
+ s as item,
14
+ l as link,
15
+ _ as list,
16
+ t as tabsNav
17
+ };
18
+ //# sourceMappingURL=TabsNav.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsNav.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),D=require("react-dom"),q=require("@react-aria/focus"),o=require("@react-aria/overlays"),I=require("../../../hooks/useMergedRefs.cjs"),r=require("./Dialog.module.css.cjs"),P=require("../../icons/icons.cjs");function R({open:s,...a}){return!s||typeof document>"u"?null:D.createPortal(e.jsx(F,{...a}),document.body)}function F({children:s,className:a,description:i,dismissable:l=!0,footer:n,icon:u,onClose:c,ref:h,role:x="dialog",size:y="md",title:g,...v}){const t=d.useRef(null),b=I.useMergedRefs(t,h),f=d.useId(),m=`${f}-title`,j=`${f}-description`,{overlayProps:p,underlayProps:N}=o.useOverlay({isOpen:!0,onClose:c,isDismissable:l,isKeyboardDismissDisabled:!l},t);return o.usePreventScroll(),d.useEffect(()=>t.current?o.ariaHideOutside([t.current]):void 0,[]),e.jsx("div",{...N,className:r.default.underlay,children:e.jsx(q.FocusScope,{contain:!0,restoreFocus:!0,autoFocus:!0,children:e.jsxs("div",{...v,...p,ref:b,className:[r.default.dialog,r.default[y],a].filter(Boolean).join(" "),role:x,"aria-modal":"true","aria-labelledby":m,"aria-describedby":i?j:void 0,children:[e.jsxs("header",{className:[r.default.header,s&&r.default.headerDivided].filter(Boolean).join(" "),children:[u&&e.jsx("span",{"aria-hidden":"true",className:r.default.icon,children:u}),e.jsxs("div",{className:r.default.heading,children:[e.jsx("h2",{className:r.default.title,id:m,children:g}),i&&e.jsx("p",{className:r.default.description,id:j,children:i})]}),l&&e.jsx("button",{className:r.default.close,type:"button","aria-label":"Fechar",onClick:c,children:e.jsx(P.IconClose,{size:20})})]}),s&&e.jsx("div",{className:r.default.body,children:s}),n&&e.jsx("div",{className:r.default.footer,children:n})]})})})}exports.Dialog=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),o=require("./DialogFrame.cjs"),e=require("./Dialog.module.css.cjs");function u({size:a="md",...l}){return r.jsx(o.DialogFrame,{...l,surfaceClassName:[e.default.dialog,e.default[a]].join(" "),underlayClassName:e.default.underlay})}exports.Dialog=u;
2
2
  //# sourceMappingURL=Dialog.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.cjs","sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { useEffect, useId, useRef, type ComponentPropsWithRef, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { FocusScope } from '@react-aria/focus';\nimport { ariaHideOutside, useOverlay, usePreventScroll } from '@react-aria/overlays';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport styles from './Dialog.module.css';\nimport { IconClose } from '../../icons';\n\nexport type DialogSize = 'sm' | 'md' | 'lg';\nexport type DialogRole = 'dialog' | 'alertdialog';\n\n/** As propriedades nativas vao ao elemento do dialogo; o `className` soma ao do sistema. */\nexport interface DialogProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'role' | 'title'> {\n children?: ReactNode;\n description?: string;\n dismissable?: boolean;\n footer?: ReactNode;\n /** Opcional. Desenhado ao lado do titulo, fora da leitura: quem fala e o titulo. */\n icon?: ReactNode;\n onClose: () => void;\n open: boolean;\n /** `alertdialog` para a confirmacao que interrompe e exige resposta, como a de uma acao destrutiva. */\n role?: DialogRole;\n size?: DialogSize;\n title: string;\n}\n\nexport function Dialog({ open, ...props }: DialogProps) {\n // No servidor nao ha `document` para o portal; o Dialog nasce na hidratacao.\n if (!open || typeof document === 'undefined') {\n return null;\n }\n\n return createPortal(<DialogContent {...props} />, document.body);\n}\n\nfunction DialogContent({\n children,\n className,\n description,\n dismissable = true,\n footer,\n icon,\n onClose,\n ref: refDoConsumidor,\n role = 'dialog',\n size = 'md',\n title,\n ...props\n}: Omit<DialogProps, 'open'>) {\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRefs(ref, refDoConsumidor);\n const generatedId = useId();\n const titleId = `${generatedId}-title`;\n const descriptionId = `${generatedId}-description`;\n\n const { overlayProps, underlayProps } = useOverlay(\n {\n isOpen: true,\n onClose,\n isDismissable: dismissable,\n isKeyboardDismissDisabled: !dismissable,\n },\n ref,\n );\n\n usePreventScroll();\n\n useEffect(() => (ref.current ? ariaHideOutside([ref.current]) : undefined), []);\n\n return (\n <div {...underlayProps} className={styles.underlay}>\n <FocusScope contain restoreFocus autoFocus>\n <div\n {...props}\n {...overlayProps}\n ref={mergedRef}\n className={[styles.dialog, styles[size], className].filter(Boolean).join(' ')}\n role={role}\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n >\n <header className={[styles.header, children && styles.headerDivided].filter(Boolean).join(' ')}>\n {icon && (\n <span aria-hidden=\"true\" className={styles.icon}>\n {icon}\n </span>\n )}\n <div className={styles.heading}>\n <h2 className={styles.title} id={titleId}>{title}</h2>\n {description && <p className={styles.description} id={descriptionId}>{description}</p>}\n </div>\n {dismissable && (\n <button className={styles.close} type=\"button\" aria-label=\"Fechar\" onClick={onClose}>\n <IconClose size={20} />\n </button>\n )}\n </header>\n {children && <div className={styles.body}>{children}</div>}\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n </FocusScope>\n </div>\n );\n}\n"],"names":["Dialog","open","props","createPortal","jsx","DialogContent","children","className","description","dismissable","footer","icon","onClose","refDoConsumidor","role","size","title","ref","useRef","mergedRef","useMergedRefs","generatedId","useId","titleId","descriptionId","overlayProps","underlayProps","useOverlay","usePreventScroll","useEffect","ariaHideOutside","styles","FocusScope","jsxs","IconClose"],"mappings":"sVA2BO,SAASA,EAAO,CAAE,KAAAC,EAAM,GAAGC,GAAsB,CAEtD,MAAI,CAACD,GAAQ,OAAO,SAAa,IACxB,KAGFE,EAAAA,aAAaC,EAAAA,IAACC,EAAA,CAAe,GAAGH,EAAO,EAAI,SAAS,IAAI,CACjE,CAEA,SAASG,EAAc,CACrB,SAAAC,EACA,UAAAC,EACA,YAAAC,EACA,YAAAC,EAAc,GACd,OAAAC,EACA,KAAAC,EACA,QAAAC,EACA,IAAKC,EACL,KAAAC,EAAO,SACP,KAAAC,EAAO,KACP,MAAAC,EACA,GAAGd,CACL,EAA8B,CAC5B,MAAMe,EAAMC,EAAAA,OAAuB,IAAI,EACjCC,EAAYC,EAAAA,cAAcH,EAAKJ,CAAe,EAC9CQ,EAAcC,EAAAA,MAAA,EACdC,EAAU,GAAGF,CAAW,SACxBG,EAAgB,GAAGH,CAAW,eAE9B,CAAE,aAAAI,EAAc,cAAAC,CAAA,EAAkBC,EAAAA,WACtC,CACE,OAAQ,GACR,QAAAf,EACA,cAAeH,EACf,0BAA2B,CAACA,CAAA,EAE9BQ,CAAA,EAGFW,OAAAA,mBAAA,EAEAC,YAAU,IAAOZ,EAAI,QAAUa,EAAAA,gBAAgB,CAACb,EAAI,OAAO,CAAC,EAAI,OAAY,EAAE,EAG5Eb,EAAAA,IAAC,MAAA,CAAK,GAAGsB,EAAe,UAAWK,EAAAA,QAAO,SACxC,SAAA3B,EAAAA,IAAC4B,EAAAA,WAAA,CAAW,QAAO,GAAC,aAAY,GAAC,UAAS,GACxC,SAAAC,EAAAA,KAAC,MAAA,CACE,GAAG/B,EACH,GAAGuB,EACJ,IAAKN,EACL,UAAW,CAACY,EAAAA,QAAO,OAAQA,EAAAA,QAAOhB,CAAI,EAAGR,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC5E,KAAAO,EACA,aAAW,OACX,kBAAiBS,EACjB,mBAAkBf,EAAcgB,EAAgB,OAEhD,SAAA,CAAAS,EAAAA,KAAC,SAAA,CAAO,UAAW,CAACF,EAAAA,QAAO,OAAQzB,GAAYyB,EAAAA,QAAO,aAAa,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC1F,SAAA,CAAApB,SACE,OAAA,CAAK,cAAY,OAAO,UAAWoB,UAAO,KACxC,SAAApB,CAAA,CACH,EAEFsB,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,QACrB,SAAA,CAAA3B,MAAC,MAAG,UAAW2B,EAAAA,QAAO,MAAO,GAAIR,EAAU,SAAAP,EAAM,EAChDR,SAAgB,IAAA,CAAE,UAAWuB,EAAAA,QAAO,YAAa,GAAIP,EAAgB,SAAAhB,CAAA,CAAY,CAAA,EACpF,EACCC,GACCL,EAAAA,IAAC,SAAA,CAAO,UAAW2B,EAAAA,QAAO,MAAO,KAAK,SAAS,aAAW,SAAS,QAASnB,EAC1E,SAAAR,EAAAA,IAAC8B,EAAAA,UAAA,CAAU,KAAM,GAAI,CAAA,CACvB,CAAA,EAEJ,EACC5B,GAAYF,EAAAA,IAAC,MAAA,CAAI,UAAW2B,UAAO,KAAO,SAAAzB,EAAS,EACnDI,GAAUN,EAAAA,IAAC,MAAA,CAAI,UAAW2B,EAAAA,QAAO,OAAS,SAAArB,CAAA,CAAO,CAAA,CAAA,CAAA,EAEtD,CAAA,CACF,CAEJ"}
1
+ {"version":3,"file":"Dialog.cjs","sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from 'react';\nimport { DialogFrame } from './DialogFrame';\nimport styles from './Dialog.module.css';\n\nexport type DialogSize = 'sm' | 'md' | 'lg';\nexport type DialogRole = 'dialog' | 'alertdialog';\n\n/** O que o `Dialog` e o `Drawer` compartilham. As propriedades nativas vao ao elemento do dialogo. */\nexport interface DialogBaseProps extends Omit<ComponentPropsWithRef<'div'>, 'aria-label' | 'children' | 'role' | 'title'> {\n children?: ReactNode;\n dismissable?: boolean;\n footer?: ReactNode;\n onClose: () => void;\n open: boolean;\n}\n\nexport interface DialogTitledProps {\n 'aria-label'?: never;\n description?: string;\n /** Opcional. Desenhado ao lado do titulo, fora da leitura: quem fala e o titulo. */\n icon?: ReactNode;\n title: string;\n}\n\n/** Sem titulo, sem cabecalho: o nome vem do `aria-label`, como na paleta de busca. Esc continua fechando. */\nexport interface DialogUntitledProps {\n 'aria-label': string;\n description?: never;\n icon?: never;\n title?: never;\n}\n\nexport type DialogProps = DialogBaseProps &\n (DialogTitledProps | DialogUntitledProps) & {\n /** `alertdialog` para a confirmacao que interrompe e exige resposta, como a de uma acao destrutiva. */\n role?: DialogRole;\n size?: DialogSize;\n };\n\nexport function Dialog({ size = 'md', ...props }: DialogProps) {\n return (\n <DialogFrame\n {...props}\n surfaceClassName={[styles.dialog, styles[size]].join(' ')}\n underlayClassName={styles.underlay}\n />\n );\n}\n"],"names":["Dialog","size","props","jsx","DialogFrame","styles"],"mappings":"yLAuCO,SAASA,EAAO,CAAE,KAAAC,EAAO,KAAM,GAAGC,GAAsB,CAC7D,OACEC,EAAAA,IAACC,EAAAA,YAAA,CACE,GAAGF,EACJ,iBAAkB,CAACG,EAAAA,QAAO,OAAQA,EAAAA,QAAOJ,CAAI,CAAC,EAAE,KAAK,GAAG,EACxD,kBAAmBI,EAAAA,QAAO,QAAA,CAAA,CAGhC"}
@@ -1,64 +1,17 @@
1
- import { jsx as r, jsxs as d } from "react/jsx-runtime";
2
- import { useRef as I, useId as j, useEffect as F } from "react";
3
- import { createPortal as P } from "react-dom";
4
- import { FocusScope as x } from "@react-aria/focus";
5
- import { useOverlay as O, usePreventScroll as R, ariaHideOutside as B } from "@react-aria/overlays";
6
- import { useMergedRefs as C } from "../../../hooks/useMergedRefs.js";
7
- import e from "./Dialog.module.css.js";
8
- import { IconClose as S } from "../../icons/icons.js";
9
- function A({ open: i, ...t }) {
10
- return !i || typeof document > "u" ? null : P(/* @__PURE__ */ r($, { ...t }), document.body);
11
- }
12
- function $({
13
- children: i,
14
- className: t,
15
- description: a,
16
- dismissable: s = !0,
17
- footer: l,
18
- icon: n,
19
- onClose: c,
20
- ref: p,
21
- role: h = "dialog",
22
- size: y = "md",
23
- title: v,
24
- ...b
25
- }) {
26
- const o = I(null), N = C(o, p), u = j(), m = `${u}-title`, f = `${u}-description`, { overlayProps: g, underlayProps: D } = O(
27
- {
28
- isOpen: !0,
29
- onClose: c,
30
- isDismissable: s,
31
- isKeyboardDismissDisabled: !s
32
- },
33
- o
34
- );
35
- return R(), F(() => o.current ? B([o.current]) : void 0, []), /* @__PURE__ */ r("div", { ...D, className: e.underlay, children: /* @__PURE__ */ r(x, { contain: !0, restoreFocus: !0, autoFocus: !0, children: /* @__PURE__ */ d(
36
- "div",
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { DialogFrame as e } from "./DialogFrame.js";
3
+ import r from "./Dialog.module.css.js";
4
+ function t({ size: o = "md", ...a }) {
5
+ return /* @__PURE__ */ m(
6
+ e,
37
7
  {
38
- ...b,
39
- ...g,
40
- ref: N,
41
- className: [e.dialog, e[y], t].filter(Boolean).join(" "),
42
- role: h,
43
- "aria-modal": "true",
44
- "aria-labelledby": m,
45
- "aria-describedby": a ? f : void 0,
46
- children: [
47
- /* @__PURE__ */ d("header", { className: [e.header, i && e.headerDivided].filter(Boolean).join(" "), children: [
48
- n && /* @__PURE__ */ r("span", { "aria-hidden": "true", className: e.icon, children: n }),
49
- /* @__PURE__ */ d("div", { className: e.heading, children: [
50
- /* @__PURE__ */ r("h2", { className: e.title, id: m, children: v }),
51
- a && /* @__PURE__ */ r("p", { className: e.description, id: f, children: a })
52
- ] }),
53
- s && /* @__PURE__ */ r("button", { className: e.close, type: "button", "aria-label": "Fechar", onClick: c, children: /* @__PURE__ */ r(S, { size: 20 }) })
54
- ] }),
55
- i && /* @__PURE__ */ r("div", { className: e.body, children: i }),
56
- l && /* @__PURE__ */ r("div", { className: e.footer, children: l })
57
- ]
8
+ ...a,
9
+ surfaceClassName: [r.dialog, r[o]].join(" "),
10
+ underlayClassName: r.underlay
58
11
  }
59
- ) }) });
12
+ );
60
13
  }
61
14
  export {
62
- A as Dialog
15
+ t as Dialog
63
16
  };
64
17
  //# sourceMappingURL=Dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { useEffect, useId, useRef, type ComponentPropsWithRef, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { FocusScope } from '@react-aria/focus';\nimport { ariaHideOutside, useOverlay, usePreventScroll } from '@react-aria/overlays';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport styles from './Dialog.module.css';\nimport { IconClose } from '../../icons';\n\nexport type DialogSize = 'sm' | 'md' | 'lg';\nexport type DialogRole = 'dialog' | 'alertdialog';\n\n/** As propriedades nativas vao ao elemento do dialogo; o `className` soma ao do sistema. */\nexport interface DialogProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'role' | 'title'> {\n children?: ReactNode;\n description?: string;\n dismissable?: boolean;\n footer?: ReactNode;\n /** Opcional. Desenhado ao lado do titulo, fora da leitura: quem fala e o titulo. */\n icon?: ReactNode;\n onClose: () => void;\n open: boolean;\n /** `alertdialog` para a confirmacao que interrompe e exige resposta, como a de uma acao destrutiva. */\n role?: DialogRole;\n size?: DialogSize;\n title: string;\n}\n\nexport function Dialog({ open, ...props }: DialogProps) {\n // No servidor nao ha `document` para o portal; o Dialog nasce na hidratacao.\n if (!open || typeof document === 'undefined') {\n return null;\n }\n\n return createPortal(<DialogContent {...props} />, document.body);\n}\n\nfunction DialogContent({\n children,\n className,\n description,\n dismissable = true,\n footer,\n icon,\n onClose,\n ref: refDoConsumidor,\n role = 'dialog',\n size = 'md',\n title,\n ...props\n}: Omit<DialogProps, 'open'>) {\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRefs(ref, refDoConsumidor);\n const generatedId = useId();\n const titleId = `${generatedId}-title`;\n const descriptionId = `${generatedId}-description`;\n\n const { overlayProps, underlayProps } = useOverlay(\n {\n isOpen: true,\n onClose,\n isDismissable: dismissable,\n isKeyboardDismissDisabled: !dismissable,\n },\n ref,\n );\n\n usePreventScroll();\n\n useEffect(() => (ref.current ? ariaHideOutside([ref.current]) : undefined), []);\n\n return (\n <div {...underlayProps} className={styles.underlay}>\n <FocusScope contain restoreFocus autoFocus>\n <div\n {...props}\n {...overlayProps}\n ref={mergedRef}\n className={[styles.dialog, styles[size], className].filter(Boolean).join(' ')}\n role={role}\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n >\n <header className={[styles.header, children && styles.headerDivided].filter(Boolean).join(' ')}>\n {icon && (\n <span aria-hidden=\"true\" className={styles.icon}>\n {icon}\n </span>\n )}\n <div className={styles.heading}>\n <h2 className={styles.title} id={titleId}>{title}</h2>\n {description && <p className={styles.description} id={descriptionId}>{description}</p>}\n </div>\n {dismissable && (\n <button className={styles.close} type=\"button\" aria-label=\"Fechar\" onClick={onClose}>\n <IconClose size={20} />\n </button>\n )}\n </header>\n {children && <div className={styles.body}>{children}</div>}\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n </FocusScope>\n </div>\n );\n}\n"],"names":["Dialog","open","props","createPortal","jsx","DialogContent","children","className","description","dismissable","footer","icon","onClose","refDoConsumidor","role","size","title","ref","useRef","mergedRef","useMergedRefs","generatedId","useId","titleId","descriptionId","overlayProps","underlayProps","useOverlay","usePreventScroll","useEffect","ariaHideOutside","styles","FocusScope","jsxs","IconClose"],"mappings":";;;;;;;;AA2BO,SAASA,EAAO,EAAE,MAAAC,GAAM,GAAGC,KAAsB;AAEtD,SAAI,CAACD,KAAQ,OAAO,WAAa,MACxB,OAGFE,EAAa,gBAAAC,EAACC,GAAA,EAAe,GAAGH,GAAO,GAAI,SAAS,IAAI;AACjE;AAEA,SAASG,EAAc;AAAA,EACrB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAKC;AAAA,EACL,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,GAAGd;AACL,GAA8B;AAC5B,QAAMe,IAAMC,EAAuB,IAAI,GACjCC,IAAYC,EAAcH,GAAKJ,CAAe,GAC9CQ,IAAcC,EAAA,GACdC,IAAU,GAAGF,CAAW,UACxBG,IAAgB,GAAGH,CAAW,gBAE9B,EAAE,cAAAI,GAAc,eAAAC,EAAA,IAAkBC;AAAA,IACtC;AAAA,MACE,QAAQ;AAAA,MACR,SAAAf;AAAA,MACA,eAAeH;AAAA,MACf,2BAA2B,CAACA;AAAA,IAAA;AAAA,IAE9BQ;AAAA,EAAA;AAGF,SAAAW,EAAA,GAEAC,EAAU,MAAOZ,EAAI,UAAUa,EAAgB,CAACb,EAAI,OAAO,CAAC,IAAI,QAAY,EAAE,GAG5E,gBAAAb,EAAC,OAAA,EAAK,GAAGsB,GAAe,WAAWK,EAAO,UACxC,UAAA,gBAAA3B,EAAC4B,GAAA,EAAW,SAAO,IAAC,cAAY,IAAC,WAAS,IACxC,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG/B;AAAA,MACH,GAAGuB;AAAA,MACJ,KAAKN;AAAA,MACL,WAAW,CAACY,EAAO,QAAQA,EAAOhB,CAAI,GAAGR,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MAC5E,MAAAO;AAAA,MACA,cAAW;AAAA,MACX,mBAAiBS;AAAA,MACjB,oBAAkBf,IAAcgB,IAAgB;AAAA,MAEhD,UAAA;AAAA,QAAA,gBAAAS,EAAC,UAAA,EAAO,WAAW,CAACF,EAAO,QAAQzB,KAAYyB,EAAO,aAAa,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAC1F,UAAA;AAAA,UAAApB,uBACE,QAAA,EAAK,eAAY,QAAO,WAAWoB,EAAO,MACxC,UAAApB,EAAA,CACH;AAAA,UAEF,gBAAAsB,EAAC,OAAA,EAAI,WAAWF,EAAO,SACrB,UAAA;AAAA,YAAA,gBAAA3B,EAAC,QAAG,WAAW2B,EAAO,OAAO,IAAIR,GAAU,UAAAP,GAAM;AAAA,YAChDR,uBAAgB,KAAA,EAAE,WAAWuB,EAAO,aAAa,IAAIP,GAAgB,UAAAhB,EAAA,CAAY;AAAA,UAAA,GACpF;AAAA,UACCC,KACC,gBAAAL,EAAC,UAAA,EAAO,WAAW2B,EAAO,OAAO,MAAK,UAAS,cAAW,UAAS,SAASnB,GAC1E,UAAA,gBAAAR,EAAC8B,GAAA,EAAU,MAAM,IAAI,EAAA,CACvB;AAAA,QAAA,GAEJ;AAAA,QACC5B,KAAY,gBAAAF,EAAC,OAAA,EAAI,WAAW2B,EAAO,MAAO,UAAAzB,GAAS;AAAA,QACnDI,KAAU,gBAAAN,EAAC,OAAA,EAAI,WAAW2B,EAAO,QAAS,UAAArB,EAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEtD,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from 'react';\nimport { DialogFrame } from './DialogFrame';\nimport styles from './Dialog.module.css';\n\nexport type DialogSize = 'sm' | 'md' | 'lg';\nexport type DialogRole = 'dialog' | 'alertdialog';\n\n/** O que o `Dialog` e o `Drawer` compartilham. As propriedades nativas vao ao elemento do dialogo. */\nexport interface DialogBaseProps extends Omit<ComponentPropsWithRef<'div'>, 'aria-label' | 'children' | 'role' | 'title'> {\n children?: ReactNode;\n dismissable?: boolean;\n footer?: ReactNode;\n onClose: () => void;\n open: boolean;\n}\n\nexport interface DialogTitledProps {\n 'aria-label'?: never;\n description?: string;\n /** Opcional. Desenhado ao lado do titulo, fora da leitura: quem fala e o titulo. */\n icon?: ReactNode;\n title: string;\n}\n\n/** Sem titulo, sem cabecalho: o nome vem do `aria-label`, como na paleta de busca. Esc continua fechando. */\nexport interface DialogUntitledProps {\n 'aria-label': string;\n description?: never;\n icon?: never;\n title?: never;\n}\n\nexport type DialogProps = DialogBaseProps &\n (DialogTitledProps | DialogUntitledProps) & {\n /** `alertdialog` para a confirmacao que interrompe e exige resposta, como a de uma acao destrutiva. */\n role?: DialogRole;\n size?: DialogSize;\n };\n\nexport function Dialog({ size = 'md', ...props }: DialogProps) {\n return (\n <DialogFrame\n {...props}\n surfaceClassName={[styles.dialog, styles[size]].join(' ')}\n underlayClassName={styles.underlay}\n />\n );\n}\n"],"names":["Dialog","size","props","jsx","DialogFrame","styles"],"mappings":";;;AAuCO,SAASA,EAAO,EAAE,MAAAC,IAAO,MAAM,GAAGC,KAAsB;AAC7D,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,kBAAkB,CAACG,EAAO,QAAQA,EAAOJ,CAAI,CAAC,EAAE,KAAK,GAAG;AAAA,MACxD,mBAAmBI,EAAO;AAAA,IAAA;AAAA,EAAA;AAGhC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),q=require("react-dom"),F=require("@react-aria/focus"),n=require("@react-aria/overlays"),I=require("../../../hooks/useMergedRefs.cjs"),r=require("./Dialog.module.css.cjs"),P=require("../../icons/icons.cjs");function R({open:s,...t}){return!s||typeof document>"u"?null:q.createPortal(e.jsx(O,{...t}),document.body)}function O({children:s,className:t,description:i,dismissable:o=!0,footer:c,icon:u,onClose:f,ref:v,role:x="dialog",surfaceClassName:y,title:d,underlayClassName:b,...g}){const a=l.useRef(null),p=I.useMergedRefs(a,v),m=l.useId(),j=`${m}-title`,h=`${m}-description`,{overlayProps:N,underlayProps:D}=n.useOverlay({isOpen:!0,onClose:f,isDismissable:o,isKeyboardDismissDisabled:!o},a);return n.usePreventScroll(),l.useEffect(()=>a.current?n.ariaHideOutside([a.current]):void 0,[]),e.jsx("div",{...D,className:b,children:e.jsx(F.FocusScope,{contain:!0,restoreFocus:!0,autoFocus:!0,children:e.jsxs("div",{...g,...N,ref:p,className:[y,t].filter(Boolean).join(" "),role:x,"aria-modal":"true","aria-labelledby":d?j:void 0,"aria-describedby":i?h:void 0,children:[d&&e.jsxs("header",{className:[r.default.header,s&&r.default.headerDivided].filter(Boolean).join(" "),children:[u&&e.jsx("span",{"aria-hidden":"true",className:r.default.icon,children:u}),e.jsxs("div",{className:r.default.heading,children:[e.jsx("h2",{className:r.default.title,id:j,children:d}),i&&e.jsx("p",{className:r.default.description,id:h,children:i})]}),o&&e.jsx("button",{className:r.default.close,type:"button","aria-label":"Fechar",onClick:f,children:e.jsx(P.IconClose,{size:20})})]}),s&&e.jsx("div",{className:r.default.body,children:s}),c&&e.jsx("div",{className:r.default.footer,children:c})]})})})}exports.DialogFrame=R;
2
+ //# sourceMappingURL=DialogFrame.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogFrame.cjs","sources":["../../../../src/components/overlays/Dialog/DialogFrame.tsx"],"sourcesContent":["import { useEffect, useId, useRef, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { FocusScope } from '@react-aria/focus';\nimport { ariaHideOutside, useOverlay, usePreventScroll } from '@react-aria/overlays';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { IconClose } from '../../icons';\nimport type { DialogBaseProps, DialogRole } from './Dialog';\nimport styles from './Dialog.module.css';\n\nexport interface DialogFrameProps extends DialogBaseProps {\n 'aria-label'?: string;\n description?: string;\n icon?: ReactNode;\n role?: DialogRole;\n surfaceClassName: string;\n title?: string;\n underlayClassName: string;\n}\n\n/** Mecanica modal do `Dialog` e do `Drawer`: portal, foco preso, rolagem travada, cabecalho, corpo e rodape. Interna. */\nexport function DialogFrame({ open, ...props }: DialogFrameProps) {\n // No servidor nao ha `document` para o portal; o modal nasce na hidratacao.\n if (!open || typeof document === 'undefined') {\n return null;\n }\n\n return createPortal(<DialogFrameContent {...props} />, document.body);\n}\n\nfunction DialogFrameContent({\n children,\n className,\n description,\n dismissable = true,\n footer,\n icon,\n onClose,\n ref: refDoConsumidor,\n role = 'dialog',\n surfaceClassName,\n title,\n underlayClassName,\n ...props\n}: Omit<DialogFrameProps, 'open'>) {\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRefs(ref, refDoConsumidor);\n const generatedId = useId();\n const titleId = `${generatedId}-title`;\n const descriptionId = `${generatedId}-description`;\n\n const { overlayProps, underlayProps } = useOverlay(\n {\n isOpen: true,\n onClose,\n isDismissable: dismissable,\n isKeyboardDismissDisabled: !dismissable,\n },\n ref,\n );\n\n usePreventScroll();\n\n useEffect(() => (ref.current ? ariaHideOutside([ref.current]) : undefined), []);\n\n return (\n <div {...underlayProps} className={underlayClassName}>\n <FocusScope contain restoreFocus autoFocus>\n <div\n {...props}\n {...overlayProps}\n ref={mergedRef}\n className={[surfaceClassName, className].filter(Boolean).join(' ')}\n role={role}\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={description ? descriptionId : undefined}\n >\n {title && (\n <header className={[styles.header, children && styles.headerDivided].filter(Boolean).join(' ')}>\n {icon && (\n <span aria-hidden=\"true\" className={styles.icon}>\n {icon}\n </span>\n )}\n <div className={styles.heading}>\n <h2 className={styles.title} id={titleId}>{title}</h2>\n {description && <p className={styles.description} id={descriptionId}>{description}</p>}\n </div>\n {dismissable && (\n <button className={styles.close} type=\"button\" aria-label=\"Fechar\" onClick={onClose}>\n <IconClose size={20} />\n </button>\n )}\n </header>\n )}\n {children && <div className={styles.body}>{children}</div>}\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n </FocusScope>\n </div>\n );\n}\n"],"names":["DialogFrame","open","props","createPortal","jsx","DialogFrameContent","children","className","description","dismissable","footer","icon","onClose","refDoConsumidor","role","surfaceClassName","title","underlayClassName","ref","useRef","mergedRef","useMergedRefs","generatedId","useId","titleId","descriptionId","overlayProps","underlayProps","useOverlay","usePreventScroll","useEffect","ariaHideOutside","FocusScope","jsxs","styles","IconClose"],"mappings":"sVAoBO,SAASA,EAAY,CAAE,KAAAC,EAAM,GAAGC,GAA2B,CAEhE,MAAI,CAACD,GAAQ,OAAO,SAAa,IACxB,KAGFE,EAAAA,aAAaC,EAAAA,IAACC,EAAA,CAAoB,GAAGH,EAAO,EAAI,SAAS,IAAI,CACtE,CAEA,SAASG,EAAmB,CAC1B,SAAAC,EACA,UAAAC,EACA,YAAAC,EACA,YAAAC,EAAc,GACd,OAAAC,EACA,KAAAC,EACA,QAAAC,EACA,IAAKC,EACL,KAAAC,EAAO,SACP,iBAAAC,EACA,MAAAC,EACA,kBAAAC,EACA,GAAGf,CACL,EAAmC,CACjC,MAAMgB,EAAMC,EAAAA,OAAuB,IAAI,EACjCC,EAAYC,EAAAA,cAAcH,EAAKL,CAAe,EAC9CS,EAAcC,EAAAA,MAAA,EACdC,EAAU,GAAGF,CAAW,SACxBG,EAAgB,GAAGH,CAAW,eAE9B,CAAE,aAAAI,EAAc,cAAAC,CAAA,EAAkBC,EAAAA,WACtC,CACE,OAAQ,GACR,QAAAhB,EACA,cAAeH,EACf,0BAA2B,CAACA,CAAA,EAE9BS,CAAA,EAGFW,OAAAA,mBAAA,EAEAC,YAAU,IAAOZ,EAAI,QAAUa,EAAAA,gBAAgB,CAACb,EAAI,OAAO,CAAC,EAAI,OAAY,EAAE,EAG5Ed,EAAAA,IAAC,MAAA,CAAK,GAAGuB,EAAe,UAAWV,EACjC,SAAAb,EAAAA,IAAC4B,EAAAA,WAAA,CAAW,QAAO,GAAC,aAAY,GAAC,UAAS,GACxC,SAAAC,EAAAA,KAAC,MAAA,CACE,GAAG/B,EACH,GAAGwB,EACJ,IAAKN,EACL,UAAW,CAACL,EAAkBR,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EACjE,KAAAO,EACA,aAAW,OACX,kBAAiBE,EAAQQ,EAAU,OACnC,mBAAkBhB,EAAciB,EAAgB,OAE/C,SAAA,CAAAT,GACCiB,EAAAA,KAAC,SAAA,CAAO,UAAW,CAACC,EAAAA,QAAO,OAAQ5B,GAAY4B,EAAAA,QAAO,aAAa,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC1F,SAAA,CAAAvB,SACE,OAAA,CAAK,cAAY,OAAO,UAAWuB,UAAO,KACxC,SAAAvB,CAAA,CACH,EAEFsB,EAAAA,KAAC,MAAA,CAAI,UAAWC,EAAAA,QAAO,QACrB,SAAA,CAAA9B,MAAC,MAAG,UAAW8B,EAAAA,QAAO,MAAO,GAAIV,EAAU,SAAAR,EAAM,EAChDR,SAAgB,IAAA,CAAE,UAAW0B,EAAAA,QAAO,YAAa,GAAIT,EAAgB,SAAAjB,CAAA,CAAY,CAAA,EACpF,EACCC,GACCL,EAAAA,IAAC,SAAA,CAAO,UAAW8B,EAAAA,QAAO,MAAO,KAAK,SAAS,aAAW,SAAS,QAAStB,EAC1E,SAAAR,EAAAA,IAAC+B,EAAAA,UAAA,CAAU,KAAM,GAAI,CAAA,CACvB,CAAA,EAEJ,EAED7B,GAAYF,EAAAA,IAAC,MAAA,CAAI,UAAW8B,UAAO,KAAO,SAAA5B,EAAS,EACnDI,GAAUN,EAAAA,IAAC,MAAA,CAAI,UAAW8B,EAAAA,QAAO,OAAS,SAAAxB,CAAA,CAAO,CAAA,CAAA,CAAA,EAEtD,CAAA,CACF,CAEJ"}