@plenustech/design-system 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/actions/Button/Button.cjs +2 -0
- package/dist/components/actions/Button/Button.cjs.map +1 -0
- package/dist/components/actions/Button/Button.js +47 -0
- package/dist/components/actions/Button/Button.js.map +1 -0
- package/dist/components/actions/Button/Button.module.css.cjs +2 -0
- package/dist/components/actions/Button/Button.module.css.cjs.map +1 -0
- package/dist/components/actions/Button/Button.module.css.js +24 -0
- package/dist/components/actions/Button/Button.module.css.js.map +1 -0
- package/dist/components/actions/ButtonIcon/ButtonIcon.cjs +2 -0
- package/dist/components/actions/ButtonIcon/ButtonIcon.cjs.map +1 -0
- package/dist/components/actions/ButtonIcon/ButtonIcon.js +21 -0
- package/dist/components/actions/ButtonIcon/ButtonIcon.js.map +1 -0
- package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.cjs +2 -0
- package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.cjs.map +1 -0
- package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.js +14 -0
- package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.js.map +1 -0
- package/dist/components/charts/ChartArea/ChartArea.cjs +2 -0
- package/dist/components/charts/ChartArea/ChartArea.cjs.map +1 -0
- package/dist/components/charts/ChartArea/ChartArea.js +205 -0
- package/dist/components/charts/ChartArea/ChartArea.js.map +1 -0
- package/dist/components/charts/ChartArea/ChartArea.module.css.cjs +2 -0
- package/dist/components/charts/ChartArea/ChartArea.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartArea/ChartArea.module.css.js +18 -0
- package/dist/components/charts/ChartArea/ChartArea.module.css.js.map +1 -0
- package/dist/components/charts/ChartBar/ChartBar.cjs +2 -0
- package/dist/components/charts/ChartBar/ChartBar.cjs.map +1 -0
- package/dist/components/charts/ChartBar/ChartBar.js +216 -0
- package/dist/components/charts/ChartBar/ChartBar.js.map +1 -0
- package/dist/components/charts/ChartBar/ChartBar.module.css.cjs +2 -0
- package/dist/components/charts/ChartBar/ChartBar.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartBar/ChartBar.module.css.js +14 -0
- package/dist/components/charts/ChartBar/ChartBar.module.css.js.map +1 -0
- package/dist/components/charts/ChartCombo/ChartCombo.cjs +2 -0
- package/dist/components/charts/ChartCombo/ChartCombo.cjs.map +1 -0
- package/dist/components/charts/ChartCombo/ChartCombo.js +248 -0
- package/dist/components/charts/ChartCombo/ChartCombo.js.map +1 -0
- package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs +2 -0
- package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartCombo/ChartCombo.module.css.js +20 -0
- package/dist/components/charts/ChartCombo/ChartCombo.module.css.js.map +1 -0
- package/dist/components/charts/ChartDonut/ChartDonut.cjs +2 -0
- package/dist/components/charts/ChartDonut/ChartDonut.cjs.map +1 -0
- package/dist/components/charts/ChartDonut/ChartDonut.js +107 -0
- package/dist/components/charts/ChartDonut/ChartDonut.js.map +1 -0
- package/dist/components/charts/ChartDonut/ChartDonut.module.css.cjs +2 -0
- package/dist/components/charts/ChartDonut/ChartDonut.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartDonut/ChartDonut.module.css.js +14 -0
- package/dist/components/charts/ChartDonut/ChartDonut.module.css.js.map +1 -0
- package/dist/components/charts/ChartLine/ChartLine.cjs +2 -0
- package/dist/components/charts/ChartLine/ChartLine.cjs.map +1 -0
- package/dist/components/charts/ChartLine/ChartLine.js +166 -0
- package/dist/components/charts/ChartLine/ChartLine.js.map +1 -0
- package/dist/components/charts/ChartLine/ChartLine.module.css.cjs +2 -0
- package/dist/components/charts/ChartLine/ChartLine.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartLine/ChartLine.module.css.js +18 -0
- package/dist/components/charts/ChartLine/ChartLine.module.css.js.map +1 -0
- package/dist/components/charts/ChartPie/ChartPie.cjs +2 -0
- package/dist/components/charts/ChartPie/ChartPie.cjs.map +1 -0
- package/dist/components/charts/ChartPie/ChartPie.js +99 -0
- package/dist/components/charts/ChartPie/ChartPie.js.map +1 -0
- package/dist/components/charts/ChartPie/ChartPie.module.css.cjs +2 -0
- package/dist/components/charts/ChartPie/ChartPie.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartPie/ChartPie.module.css.js +10 -0
- package/dist/components/charts/ChartPie/ChartPie.module.css.js.map +1 -0
- package/dist/components/charts/ChartRadial/ChartRadial.cjs +2 -0
- package/dist/components/charts/ChartRadial/ChartRadial.cjs.map +1 -0
- package/dist/components/charts/ChartRadial/ChartRadial.js +121 -0
- package/dist/components/charts/ChartRadial/ChartRadial.js.map +1 -0
- package/dist/components/charts/ChartRadial/ChartRadial.module.css.cjs +2 -0
- package/dist/components/charts/ChartRadial/ChartRadial.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartRadial/ChartRadial.module.css.js +16 -0
- package/dist/components/charts/ChartRadial/ChartRadial.module.css.js.map +1 -0
- package/dist/components/charts/ChartSankey/ChartSankey.cjs +2 -0
- package/dist/components/charts/ChartSankey/ChartSankey.cjs.map +1 -0
- package/dist/components/charts/ChartSankey/ChartSankey.js +209 -0
- package/dist/components/charts/ChartSankey/ChartSankey.js.map +1 -0
- package/dist/components/charts/ChartSankey/ChartSankey.module.css.cjs +2 -0
- package/dist/components/charts/ChartSankey/ChartSankey.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartSankey/ChartSankey.module.css.js +22 -0
- package/dist/components/charts/ChartSankey/ChartSankey.module.css.js.map +1 -0
- package/dist/components/charts/ChartScatter/ChartScatter.cjs +2 -0
- package/dist/components/charts/ChartScatter/ChartScatter.cjs.map +1 -0
- package/dist/components/charts/ChartScatter/ChartScatter.js +137 -0
- package/dist/components/charts/ChartScatter/ChartScatter.js.map +1 -0
- package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs +2 -0
- package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartScatter/ChartScatter.module.css.js +14 -0
- package/dist/components/charts/ChartScatter/ChartScatter.module.css.js.map +1 -0
- package/dist/components/charts/ChartSunburst/ChartSunburst.cjs +2 -0
- package/dist/components/charts/ChartSunburst/ChartSunburst.cjs.map +1 -0
- package/dist/components/charts/ChartSunburst/ChartSunburst.js +144 -0
- package/dist/components/charts/ChartSunburst/ChartSunburst.js.map +1 -0
- package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.cjs +2 -0
- package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.js +16 -0
- package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.js.map +1 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +2 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.js +113 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.cjs +2 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.js +32 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.js.map +1 -0
- package/dist/components/charts/ChartTreemap/ChartTreemap.cjs +2 -0
- package/dist/components/charts/ChartTreemap/ChartTreemap.cjs.map +1 -0
- package/dist/components/charts/ChartTreemap/ChartTreemap.js +122 -0
- package/dist/components/charts/ChartTreemap/ChartTreemap.js.map +1 -0
- package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.cjs +2 -0
- package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.js +14 -0
- package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.js.map +1 -0
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs +2 -0
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs.map +1 -0
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.js +168 -0
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.js.map +1 -0
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs +2 -0
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js +12 -0
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js.map +1 -0
- package/dist/components/charts/core/Axis.cjs +2 -0
- package/dist/components/charts/core/Axis.cjs.map +1 -0
- package/dist/components/charts/core/Axis.js +40 -0
- package/dist/components/charts/core/Axis.js.map +1 -0
- package/dist/components/charts/core/BandCursor.cjs +2 -0
- package/dist/components/charts/core/BandCursor.cjs.map +1 -0
- package/dist/components/charts/core/BandCursor.js +19 -0
- package/dist/components/charts/core/BandCursor.js.map +1 -0
- package/dist/components/charts/core/CartesianFrame.cjs +2 -0
- package/dist/components/charts/core/CartesianFrame.cjs.map +1 -0
- package/dist/components/charts/core/CartesianFrame.js +120 -0
- package/dist/components/charts/core/CartesianFrame.js.map +1 -0
- package/dist/components/charts/core/Chart.module.css.cjs +2 -0
- package/dist/components/charts/core/Chart.module.css.cjs.map +1 -0
- package/dist/components/charts/core/Chart.module.css.js +68 -0
- package/dist/components/charts/core/Chart.module.css.js.map +1 -0
- package/dist/components/charts/core/ChartFrame.cjs +2 -0
- package/dist/components/charts/core/ChartFrame.cjs.map +1 -0
- package/dist/components/charts/core/ChartFrame.js +65 -0
- package/dist/components/charts/core/ChartFrame.js.map +1 -0
- package/dist/components/charts/core/ChartLegend.cjs +2 -0
- package/dist/components/charts/core/ChartLegend.cjs.map +1 -0
- package/dist/components/charts/core/ChartLegend.js +44 -0
- package/dist/components/charts/core/ChartLegend.js.map +1 -0
- package/dist/components/charts/core/Grid.cjs +2 -0
- package/dist/components/charts/core/Grid.cjs.map +1 -0
- package/dist/components/charts/core/Grid.js +20 -0
- package/dist/components/charts/core/Grid.js.map +1 -0
- package/dist/components/charts/core/arcs.cjs +2 -0
- package/dist/components/charts/core/arcs.cjs.map +1 -0
- package/dist/components/charts/core/arcs.js +26 -0
- package/dist/components/charts/core/arcs.js.map +1 -0
- package/dist/components/charts/core/cartesianLayout.cjs +2 -0
- package/dist/components/charts/core/cartesianLayout.cjs.map +1 -0
- package/dist/components/charts/core/cartesianLayout.js +59 -0
- package/dist/components/charts/core/cartesianLayout.js.map +1 -0
- package/dist/components/charts/core/centerText.cjs +2 -0
- package/dist/components/charts/core/centerText.cjs.map +1 -0
- package/dist/components/charts/core/centerText.js +31 -0
- package/dist/components/charts/core/centerText.js.map +1 -0
- package/dist/components/charts/core/measureText.cjs +2 -0
- package/dist/components/charts/core/measureText.cjs.map +1 -0
- package/dist/components/charts/core/measureText.js +55 -0
- package/dist/components/charts/core/measureText.js.map +1 -0
- package/dist/components/charts/core/shapes.cjs +2 -0
- package/dist/components/charts/core/shapes.cjs.map +1 -0
- package/dist/components/charts/core/shapes.js +31 -0
- package/dist/components/charts/core/shapes.js.map +1 -0
- package/dist/components/charts/core/slices.cjs +2 -0
- package/dist/components/charts/core/slices.cjs.map +1 -0
- package/dist/components/charts/core/slices.js +22 -0
- package/dist/components/charts/core/slices.js.map +1 -0
- package/dist/components/charts/core/spacing.cjs +2 -0
- package/dist/components/charts/core/spacing.cjs.map +1 -0
- package/dist/components/charts/core/spacing.js +26 -0
- package/dist/components/charts/core/spacing.js.map +1 -0
- package/dist/components/charts/core/useChartMetrics.cjs +2 -0
- package/dist/components/charts/core/useChartMetrics.cjs.map +1 -0
- package/dist/components/charts/core/useChartMetrics.js +39 -0
- package/dist/components/charts/core/useChartMetrics.js.map +1 -0
- package/dist/components/charts/core/useHoveredBand.cjs +2 -0
- package/dist/components/charts/core/useHoveredBand.cjs.map +1 -0
- package/dist/components/charts/core/useHoveredBand.js +14 -0
- package/dist/components/charts/core/useHoveredBand.js.map +1 -0
- package/dist/components/charts/core/useSeriesToggle.cjs +2 -0
- package/dist/components/charts/core/useSeriesToggle.cjs.map +1 -0
- package/dist/components/charts/core/useSeriesToggle.js +22 -0
- package/dist/components/charts/core/useSeriesToggle.js.map +1 -0
- package/dist/components/charts/core/useSliceRing.cjs +2 -0
- package/dist/components/charts/core/useSliceRing.cjs.map +1 -0
- package/dist/components/charts/core/useSliceRing.js +55 -0
- package/dist/components/charts/core/useSliceRing.js.map +1 -0
- package/dist/components/charts/core/useTweenedNumbers.cjs +2 -0
- package/dist/components/charts/core/useTweenedNumbers.cjs.map +1 -0
- package/dist/components/charts/core/useTweenedNumbers.js +31 -0
- package/dist/components/charts/core/useTweenedNumbers.js.map +1 -0
- package/dist/components/charts/palette/palette.cjs +2 -0
- package/dist/components/charts/palette/palette.cjs.map +1 -0
- package/dist/components/charts/palette/palette.js +26 -0
- package/dist/components/charts/palette/palette.js.map +1 -0
- package/dist/components/charts/palette/seriesColor.cjs +2 -0
- package/dist/components/charts/palette/seriesColor.cjs.map +1 -0
- package/dist/components/charts/palette/seriesColor.js +43 -0
- package/dist/components/charts/palette/seriesColor.js.map +1 -0
- package/dist/components/charts/scales/scales.cjs +2 -0
- package/dist/components/charts/scales/scales.cjs.map +1 -0
- package/dist/components/charts/scales/scales.js +74 -0
- package/dist/components/charts/scales/scales.js.map +1 -0
- package/dist/components/data-display/Accordion/Accordion.cjs +2 -0
- package/dist/components/data-display/Accordion/Accordion.cjs.map +1 -0
- package/dist/components/data-display/Accordion/Accordion.js +91 -0
- package/dist/components/data-display/Accordion/Accordion.js.map +1 -0
- package/dist/components/data-display/Accordion/Accordion.module.css.cjs +2 -0
- package/dist/components/data-display/Accordion/Accordion.module.css.cjs.map +1 -0
- package/dist/components/data-display/Accordion/Accordion.module.css.js +26 -0
- package/dist/components/data-display/Accordion/Accordion.module.css.js.map +1 -0
- package/dist/components/data-display/Avatar/Avatar.cjs +2 -0
- package/dist/components/data-display/Avatar/Avatar.cjs.map +1 -0
- package/dist/components/data-display/Avatar/Avatar.js +20 -0
- package/dist/components/data-display/Avatar/Avatar.js.map +1 -0
- package/dist/components/data-display/Avatar/Avatar.module.css.cjs +2 -0
- package/dist/components/data-display/Avatar/Avatar.module.css.cjs.map +1 -0
- package/dist/components/data-display/Avatar/Avatar.module.css.js +14 -0
- package/dist/components/data-display/Avatar/Avatar.module.css.js.map +1 -0
- package/dist/components/data-display/Badge/Badge.cjs +2 -0
- package/dist/components/data-display/Badge/Badge.cjs.map +1 -0
- package/dist/components/data-display/Badge/Badge.js +13 -0
- package/dist/components/data-display/Badge/Badge.js.map +1 -0
- package/dist/components/data-display/Badge/Badge.module.css.cjs +2 -0
- package/dist/components/data-display/Badge/Badge.module.css.cjs.map +1 -0
- package/dist/components/data-display/Badge/Badge.module.css.js +22 -0
- package/dist/components/data-display/Badge/Badge.module.css.js.map +1 -0
- package/dist/components/data-display/Card/Card.cjs +2 -0
- package/dist/components/data-display/Card/Card.cjs.map +1 -0
- package/dist/components/data-display/Card/Card.js +51 -0
- package/dist/components/data-display/Card/Card.js.map +1 -0
- package/dist/components/data-display/Card/Card.module.css.cjs +2 -0
- package/dist/components/data-display/Card/Card.module.css.cjs.map +1 -0
- package/dist/components/data-display/Card/Card.module.css.js +26 -0
- package/dist/components/data-display/Card/Card.module.css.js.map +1 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.cjs +2 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.cjs.map +1 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.js +65 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.js.map +1 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.module.css.cjs +2 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.module.css.cjs.map +1 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.module.css.js +47 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.module.css.js.map +1 -0
- package/dist/components/data-display/CodeBlock/syntax.cjs +24 -0
- package/dist/components/data-display/CodeBlock/syntax.cjs.map +1 -0
- package/dist/components/data-display/CodeBlock/syntax.js +124 -0
- package/dist/components/data-display/CodeBlock/syntax.js.map +1 -0
- package/dist/components/data-display/List/List.cjs +2 -0
- package/dist/components/data-display/List/List.cjs.map +1 -0
- package/dist/components/data-display/List/List.js +99 -0
- package/dist/components/data-display/List/List.js.map +1 -0
- package/dist/components/data-display/List/List.module.css.cjs +2 -0
- package/dist/components/data-display/List/List.module.css.cjs.map +1 -0
- package/dist/components/data-display/List/List.module.css.js +32 -0
- package/dist/components/data-display/List/List.module.css.js.map +1 -0
- package/dist/components/data-display/List/ListingOptions.cjs +2 -0
- package/dist/components/data-display/List/ListingOptions.cjs.map +1 -0
- package/dist/components/data-display/List/ListingOptions.js +115 -0
- package/dist/components/data-display/List/ListingOptions.js.map +1 -0
- package/dist/components/data-display/List/useListing.cjs +2 -0
- package/dist/components/data-display/List/useListing.cjs.map +1 -0
- package/dist/components/data-display/List/useListing.js +85 -0
- package/dist/components/data-display/List/useListing.js.map +1 -0
- package/dist/components/data-display/List/useVirtualWindow.cjs +2 -0
- package/dist/components/data-display/List/useVirtualWindow.cjs.map +1 -0
- package/dist/components/data-display/List/useVirtualWindow.js +58 -0
- package/dist/components/data-display/List/useVirtualWindow.js.map +1 -0
- package/dist/components/data-display/Table/Table.cjs +2 -0
- package/dist/components/data-display/Table/Table.cjs.map +1 -0
- package/dist/components/data-display/Table/Table.js +238 -0
- package/dist/components/data-display/Table/Table.js.map +1 -0
- package/dist/components/data-display/Table/Table.module.css.cjs +2 -0
- package/dist/components/data-display/Table/Table.module.css.cjs.map +1 -0
- package/dist/components/data-display/Table/Table.module.css.js +69 -0
- package/dist/components/data-display/Table/Table.module.css.js.map +1 -0
- package/dist/components/feedback/Alert/Alert.cjs +2 -0
- package/dist/components/feedback/Alert/Alert.cjs.map +1 -0
- package/dist/components/feedback/Alert/Alert.js +13 -0
- package/dist/components/feedback/Alert/Alert.js.map +1 -0
- package/dist/components/feedback/Alert/Alert.module.css.cjs +2 -0
- package/dist/components/feedback/Alert/Alert.module.css.cjs.map +1 -0
- package/dist/components/feedback/Alert/Alert.module.css.js +20 -0
- package/dist/components/feedback/Alert/Alert.module.css.js.map +1 -0
- package/dist/components/feedback/EmptyState/EmptyState.cjs +2 -0
- package/dist/components/feedback/EmptyState/EmptyState.cjs.map +1 -0
- package/dist/components/feedback/EmptyState/EmptyState.js +49 -0
- package/dist/components/feedback/EmptyState/EmptyState.js.map +1 -0
- package/dist/components/feedback/EmptyState/EmptyState.module.css.cjs +2 -0
- package/dist/components/feedback/EmptyState/EmptyState.module.css.cjs.map +1 -0
- package/dist/components/feedback/EmptyState/EmptyState.module.css.js +36 -0
- package/dist/components/feedback/EmptyState/EmptyState.module.css.js.map +1 -0
- package/dist/components/feedback/Progress/Progress.cjs +2 -0
- package/dist/components/feedback/Progress/Progress.cjs.map +1 -0
- package/dist/components/feedback/Progress/Progress.js +34 -0
- package/dist/components/feedback/Progress/Progress.js.map +1 -0
- package/dist/components/feedback/Progress/Progress.module.css.cjs +2 -0
- package/dist/components/feedback/Progress/Progress.module.css.cjs.map +1 -0
- package/dist/components/feedback/Progress/Progress.module.css.js +21 -0
- package/dist/components/feedback/Progress/Progress.module.css.js.map +1 -0
- package/dist/components/feedback/Spinner/Spinner.cjs +2 -0
- package/dist/components/feedback/Spinner/Spinner.cjs.map +1 -0
- package/dist/components/feedback/Spinner/Spinner.js +10 -0
- package/dist/components/feedback/Spinner/Spinner.js.map +1 -0
- package/dist/components/feedback/Spinner/Spinner.module.css.cjs +2 -0
- package/dist/components/feedback/Spinner/Spinner.module.css.cjs.map +1 -0
- package/dist/components/feedback/Spinner/Spinner.module.css.js +15 -0
- package/dist/components/feedback/Spinner/Spinner.module.css.js.map +1 -0
- package/dist/components/forms/Checkbox/Checkbox.cjs +2 -0
- package/dist/components/forms/Checkbox/Checkbox.cjs.map +1 -0
- package/dist/components/forms/Checkbox/Checkbox.js +45 -0
- package/dist/components/forms/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/forms/Checkbox/Checkbox.module.css.cjs +2 -0
- package/dist/components/forms/Checkbox/Checkbox.module.css.cjs.map +1 -0
- package/dist/components/forms/Checkbox/Checkbox.module.css.js +20 -0
- package/dist/components/forms/Checkbox/Checkbox.module.css.js.map +1 -0
- package/dist/components/forms/ComboBox/ComboBox.cjs +3 -0
- package/dist/components/forms/ComboBox/ComboBox.cjs.map +1 -0
- package/dist/components/forms/ComboBox/ComboBox.js +223 -0
- package/dist/components/forms/ComboBox/ComboBox.js.map +1 -0
- package/dist/components/forms/ComboBox/ComboBox.module.css.cjs +2 -0
- package/dist/components/forms/ComboBox/ComboBox.module.css.cjs.map +1 -0
- package/dist/components/forms/ComboBox/ComboBox.module.css.js +28 -0
- package/dist/components/forms/ComboBox/ComboBox.module.css.js.map +1 -0
- package/dist/components/forms/DatePicker/Calendar.cjs +2 -0
- package/dist/components/forms/DatePicker/Calendar.cjs.map +1 -0
- package/dist/components/forms/DatePicker/Calendar.js +86 -0
- package/dist/components/forms/DatePicker/Calendar.js.map +1 -0
- package/dist/components/forms/DatePicker/DatePicker.cjs +2 -0
- package/dist/components/forms/DatePicker/DatePicker.cjs.map +1 -0
- package/dist/components/forms/DatePicker/DatePicker.js +217 -0
- package/dist/components/forms/DatePicker/DatePicker.js.map +1 -0
- package/dist/components/forms/DatePicker/DatePicker.module.css.cjs +2 -0
- package/dist/components/forms/DatePicker/DatePicker.module.css.cjs.map +1 -0
- package/dist/components/forms/DatePicker/DatePicker.module.css.js +44 -0
- package/dist/components/forms/DatePicker/DatePicker.module.css.js.map +1 -0
- package/dist/components/forms/DatePicker/iso.cjs +2 -0
- package/dist/components/forms/DatePicker/iso.cjs.map +1 -0
- package/dist/components/forms/DatePicker/iso.js +18 -0
- package/dist/components/forms/DatePicker/iso.js.map +1 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.cjs +2 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.cjs.map +1 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.js +241 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.js.map +1 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.cjs +2 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.cjs.map +1 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.js +26 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.js.map +1 -0
- package/dist/components/forms/Field/Field.cjs +2 -0
- package/dist/components/forms/Field/Field.cjs.map +1 -0
- package/dist/components/forms/Field/Field.js +34 -0
- package/dist/components/forms/Field/Field.js.map +1 -0
- package/dist/components/forms/Field/Field.module.css.cjs +2 -0
- package/dist/components/forms/Field/Field.module.css.cjs.map +1 -0
- package/dist/components/forms/Field/Field.module.css.js +16 -0
- package/dist/components/forms/Field/Field.module.css.js.map +1 -0
- package/dist/components/forms/Field/FormValue.cjs +2 -0
- package/dist/components/forms/Field/FormValue.cjs.map +1 -0
- package/dist/components/forms/Field/FormValue.js +24 -0
- package/dist/components/forms/Field/FormValue.js.map +1 -0
- package/dist/components/forms/InputCurrency/InputCurrency.cjs +2 -0
- package/dist/components/forms/InputCurrency/InputCurrency.cjs.map +1 -0
- package/dist/components/forms/InputCurrency/InputCurrency.js +41 -0
- package/dist/components/forms/InputCurrency/InputCurrency.js.map +1 -0
- package/dist/components/forms/InputNumber/InputNumber.cjs +2 -0
- package/dist/components/forms/InputNumber/InputNumber.cjs.map +1 -0
- package/dist/components/forms/InputNumber/InputNumber.js +39 -0
- package/dist/components/forms/InputNumber/InputNumber.js.map +1 -0
- package/dist/components/forms/InputPassword/InputPassword.cjs +2 -0
- package/dist/components/forms/InputPassword/InputPassword.cjs.map +1 -0
- package/dist/components/forms/InputPassword/InputPassword.js +110 -0
- package/dist/components/forms/InputPassword/InputPassword.js.map +1 -0
- package/dist/components/forms/InputPassword/InputPassword.module.css.cjs +2 -0
- package/dist/components/forms/InputPassword/InputPassword.module.css.cjs.map +1 -0
- package/dist/components/forms/InputPassword/InputPassword.module.css.js +18 -0
- package/dist/components/forms/InputPassword/InputPassword.module.css.js.map +1 -0
- package/dist/components/forms/InputText/InputText.cjs +2 -0
- package/dist/components/forms/InputText/InputText.cjs.map +1 -0
- package/dist/components/forms/InputText/InputText.js +62 -0
- package/dist/components/forms/InputText/InputText.js.map +1 -0
- package/dist/components/forms/InputText/InputText.module.css.cjs +2 -0
- package/dist/components/forms/InputText/InputText.module.css.cjs.map +1 -0
- package/dist/components/forms/InputText/InputText.module.css.js +14 -0
- package/dist/components/forms/InputText/InputText.module.css.js.map +1 -0
- package/dist/components/forms/Label/Label.cjs +2 -0
- package/dist/components/forms/Label/Label.cjs.map +1 -0
- package/dist/components/forms/Label/Label.js +13 -0
- package/dist/components/forms/Label/Label.js.map +1 -0
- package/dist/components/forms/Label/Label.module.css.cjs +2 -0
- package/dist/components/forms/Label/Label.module.css.cjs.map +1 -0
- package/dist/components/forms/Label/Label.module.css.js +10 -0
- package/dist/components/forms/Label/Label.module.css.js.map +1 -0
- package/dist/components/forms/RadioGroup/Radio.cjs +2 -0
- package/dist/components/forms/RadioGroup/Radio.cjs.map +1 -0
- package/dist/components/forms/RadioGroup/Radio.js +43 -0
- package/dist/components/forms/RadioGroup/Radio.js.map +1 -0
- package/dist/components/forms/RadioGroup/RadioGroup.cjs +2 -0
- package/dist/components/forms/RadioGroup/RadioGroup.cjs.map +1 -0
- package/dist/components/forms/RadioGroup/RadioGroup.js +58 -0
- package/dist/components/forms/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs +2 -0
- package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs.map +1 -0
- package/dist/components/forms/RadioGroup/RadioGroup.module.css.js +26 -0
- package/dist/components/forms/RadioGroup/RadioGroup.module.css.js.map +1 -0
- package/dist/components/forms/Select/Select.cjs +2 -0
- package/dist/components/forms/Select/Select.cjs.map +1 -0
- package/dist/components/forms/Select/Select.js +191 -0
- package/dist/components/forms/Select/Select.js.map +1 -0
- package/dist/components/forms/Select/Select.module.css.cjs +2 -0
- package/dist/components/forms/Select/Select.module.css.cjs.map +1 -0
- package/dist/components/forms/Select/Select.module.css.js +22 -0
- package/dist/components/forms/Select/Select.module.css.js.map +1 -0
- package/dist/components/forms/Switch/Switch.cjs +2 -0
- package/dist/components/forms/Switch/Switch.cjs.map +1 -0
- package/dist/components/forms/Switch/Switch.js +39 -0
- package/dist/components/forms/Switch/Switch.js.map +1 -0
- package/dist/components/forms/Switch/Switch.module.css.cjs +2 -0
- package/dist/components/forms/Switch/Switch.module.css.cjs.map +1 -0
- package/dist/components/forms/Switch/Switch.module.css.js +20 -0
- package/dist/components/forms/Switch/Switch.module.css.js.map +1 -0
- package/dist/components/forms/Textarea/Textarea.cjs +2 -0
- package/dist/components/forms/Textarea/Textarea.cjs.map +1 -0
- package/dist/components/forms/Textarea/Textarea.js +64 -0
- package/dist/components/forms/Textarea/Textarea.js.map +1 -0
- package/dist/components/forms/Textarea/Textarea.module.css.cjs +2 -0
- package/dist/components/forms/Textarea/Textarea.module.css.cjs.map +1 -0
- package/dist/components/forms/Textarea/Textarea.module.css.js +14 -0
- package/dist/components/forms/Textarea/Textarea.module.css.js.map +1 -0
- package/dist/components/forms/TimePicker/TimePicker.cjs +2 -0
- package/dist/components/forms/TimePicker/TimePicker.cjs.map +1 -0
- package/dist/components/forms/TimePicker/TimePicker.js +176 -0
- package/dist/components/forms/TimePicker/TimePicker.js.map +1 -0
- package/dist/components/forms/TimePicker/TimePicker.module.css.cjs +2 -0
- package/dist/components/forms/TimePicker/TimePicker.module.css.cjs.map +1 -0
- package/dist/components/forms/TimePicker/TimePicker.module.css.js +26 -0
- package/dist/components/forms/TimePicker/TimePicker.module.css.js.map +1 -0
- package/dist/components/forms/TimePicker/TimeSlots.cjs +2 -0
- package/dist/components/forms/TimePicker/TimeSlots.cjs.map +1 -0
- package/dist/components/forms/TimePicker/TimeSlots.js +81 -0
- package/dist/components/forms/TimePicker/TimeSlots.js.map +1 -0
- package/dist/components/icons/Icon.cjs +2 -0
- package/dist/components/icons/Icon.cjs.map +1 -0
- package/dist/components/icons/Icon.js +24 -0
- package/dist/components/icons/Icon.js.map +1 -0
- package/dist/components/icons/icons.cjs +2 -0
- package/dist/components/icons/icons.cjs.map +1 -0
- package/dist/components/icons/icons.js +116 -0
- package/dist/components/icons/icons.js.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs +2 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js +22 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.cjs +2 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.cjs.map +1 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.js +16 -0
- package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.js.map +1 -0
- package/dist/components/navigation/Pagination/Pagination.cjs +2 -0
- package/dist/components/navigation/Pagination/Pagination.cjs.map +1 -0
- package/dist/components/navigation/Pagination/Pagination.js +70 -0
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -0
- package/dist/components/navigation/Pagination/Pagination.module.css.cjs +2 -0
- package/dist/components/navigation/Pagination/Pagination.module.css.cjs.map +1 -0
- package/dist/components/navigation/Pagination/Pagination.module.css.js +18 -0
- package/dist/components/navigation/Pagination/Pagination.module.css.js.map +1 -0
- package/dist/components/navigation/Tabs/Tabs.cjs +2 -0
- package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -0
- package/dist/components/navigation/Tabs/Tabs.js +96 -0
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -0
- package/dist/components/navigation/Tabs/Tabs.module.css.cjs +2 -0
- package/dist/components/navigation/Tabs/Tabs.module.css.cjs.map +1 -0
- package/dist/components/navigation/Tabs/Tabs.module.css.js +20 -0
- package/dist/components/navigation/Tabs/Tabs.module.css.js.map +1 -0
- package/dist/components/overlays/Dialog/Dialog.cjs +2 -0
- package/dist/components/overlays/Dialog/Dialog.cjs.map +1 -0
- package/dist/components/overlays/Dialog/Dialog.js +64 -0
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -0
- package/dist/components/overlays/Dialog/Dialog.module.css.cjs +2 -0
- package/dist/components/overlays/Dialog/Dialog.module.css.cjs.map +1 -0
- package/dist/components/overlays/Dialog/Dialog.module.css.js +36 -0
- package/dist/components/overlays/Dialog/Dialog.module.css.js.map +1 -0
- package/dist/components/overlays/Menu/Menu.cjs +2 -0
- package/dist/components/overlays/Menu/Menu.cjs.map +1 -0
- package/dist/components/overlays/Menu/Menu.js +137 -0
- package/dist/components/overlays/Menu/Menu.js.map +1 -0
- package/dist/components/overlays/Menu/Menu.module.css.cjs +2 -0
- package/dist/components/overlays/Menu/Menu.module.css.cjs.map +1 -0
- package/dist/components/overlays/Menu/Menu.module.css.js +10 -0
- package/dist/components/overlays/Menu/Menu.module.css.js.map +1 -0
- package/dist/components/overlays/Popover/Popover.cjs +2 -0
- package/dist/components/overlays/Popover/Popover.cjs.map +1 -0
- package/dist/components/overlays/Popover/Popover.js +59 -0
- package/dist/components/overlays/Popover/Popover.js.map +1 -0
- package/dist/components/overlays/Popover/Popover.module.css.cjs +2 -0
- package/dist/components/overlays/Popover/Popover.module.css.cjs.map +1 -0
- package/dist/components/overlays/Popover/Popover.module.css.js +8 -0
- package/dist/components/overlays/Popover/Popover.module.css.js.map +1 -0
- package/dist/components/overlays/Tooltip/Tooltip.cjs +2 -0
- package/dist/components/overlays/Tooltip/Tooltip.cjs.map +1 -0
- package/dist/components/overlays/Tooltip/Tooltip.js +84 -0
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/overlays/Tooltip/Tooltip.module.css.cjs +2 -0
- package/dist/components/overlays/Tooltip/Tooltip.module.css.cjs.map +1 -0
- package/dist/components/overlays/Tooltip/Tooltip.module.css.js +8 -0
- package/dist/components/overlays/Tooltip/Tooltip.module.css.js.map +1 -0
- package/dist/design-system.css +1 -1
- package/dist/hooks/useCalendar/calendar.cjs +2 -0
- package/dist/hooks/useCalendar/calendar.cjs.map +1 -0
- package/dist/hooks/useCalendar/calendar.js +56 -0
- package/dist/hooks/useCalendar/calendar.js.map +1 -0
- package/dist/hooks/useCalendar/useCalendar.cjs +2 -0
- package/dist/hooks/useCalendar/useCalendar.cjs.map +1 -0
- package/dist/hooks/useCalendar/useCalendar.js +48 -0
- package/dist/hooks/useCalendar/useCalendar.js.map +1 -0
- package/dist/hooks/useCharacterCount/useCharacterCount.cjs +2 -0
- package/dist/hooks/useCharacterCount/useCharacterCount.cjs.map +1 -0
- package/dist/hooks/useCharacterCount/useCharacterCount.js +27 -0
- package/dist/hooks/useCharacterCount/useCharacterCount.js.map +1 -0
- package/dist/hooks/useDecimalInput.cjs +2 -0
- package/dist/hooks/useDecimalInput.cjs.map +1 -0
- package/dist/hooks/useDecimalInput.js +17 -0
- package/dist/hooks/useDecimalInput.js.map +1 -0
- package/dist/hooks/useFormReset.cjs +2 -0
- package/dist/hooks/useFormReset.cjs.map +1 -0
- package/dist/hooks/useFormReset.js +16 -0
- package/dist/hooks/useFormReset.js.map +1 -0
- package/dist/hooks/useMergedRefs.cjs +2 -0
- package/dist/hooks/useMergedRefs.cjs.map +1 -0
- package/dist/hooks/useMergedRefs.js +24 -0
- package/dist/hooks/useMergedRefs.js.map +1 -0
- package/dist/hooks/useSelection/selection.cjs +2 -0
- package/dist/hooks/useSelection/selection.cjs.map +1 -0
- package/dist/hooks/useSelection/selection.js +78 -0
- package/dist/hooks/useSelection/selection.js.map +1 -0
- package/dist/hooks/useSelection/useSelection.cjs +2 -0
- package/dist/hooks/useSelection/useSelection.cjs.map +1 -0
- package/dist/hooks/useSelection/useSelection.js +68 -0
- package/dist/hooks/useSelection/useSelection.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +131 -0
- package/dist/index.js.map +1 -0
- package/dist/types/components/actions/ButtonIcon/ButtonIcon.d.ts +12 -0
- package/dist/types/components/actions/ButtonIcon/index.d.ts +2 -0
- package/dist/types/components/data-display/CodeBlock/CodeBlock.d.ts +16 -0
- package/dist/types/components/data-display/CodeBlock/index.d.ts +3 -0
- package/dist/types/components/data-display/CodeBlock/syntax.d.ts +15 -0
- package/dist/types/components/data-display/Table/Table.d.ts +4 -2
- package/dist/types/components/feedback/EmptyState/EmptyState.d.ts +14 -0
- package/dist/types/components/feedback/EmptyState/index.d.ts +2 -0
- package/dist/types/components/icons/icons.d.ts +2 -0
- package/dist/types/components/icons/index.d.ts +1 -1
- package/dist/types/components/overlays/Dialog/Dialog.d.ts +2 -0
- package/dist/types/index.d.ts +7 -1
- package/dist/utils/formatters/formatarData.cjs +2 -0
- package/dist/utils/formatters/formatarData.cjs.map +1 -0
- package/dist/utils/formatters/formatarData.js +32 -0
- package/dist/utils/formatters/formatarData.js.map +1 -0
- package/dist/utils/formatters/formatarEntradaData.cjs +2 -0
- package/dist/utils/formatters/formatarEntradaData.cjs.map +1 -0
- package/dist/utils/formatters/formatarEntradaData.js +22 -0
- package/dist/utils/formatters/formatarEntradaData.js.map +1 -0
- package/dist/utils/formatters/formatarEntradaDecimal.cjs +2 -0
- package/dist/utils/formatters/formatarEntradaDecimal.cjs.map +1 -0
- package/dist/utils/formatters/formatarEntradaDecimal.js +35 -0
- package/dist/utils/formatters/formatarEntradaDecimal.js.map +1 -0
- package/dist/utils/formatters/formatarEntradaHora.cjs +2 -0
- package/dist/utils/formatters/formatarEntradaHora.cjs.map +1 -0
- package/dist/utils/formatters/formatarEntradaHora.js +32 -0
- package/dist/utils/formatters/formatarEntradaHora.js.map +1 -0
- package/dist/utils/formatters/formatarEntradaMonetaria.cjs +2 -0
- package/dist/utils/formatters/formatarEntradaMonetaria.cjs.map +1 -0
- package/dist/utils/formatters/formatarEntradaMonetaria.js +17 -0
- package/dist/utils/formatters/formatarEntradaMonetaria.js.map +1 -0
- package/dist/utils/formatters/formatarNumero.cjs +2 -0
- package/dist/utils/formatters/formatarNumero.cjs.map +1 -0
- package/dist/utils/formatters/formatarNumero.js +28 -0
- package/dist/utils/formatters/formatarNumero.js.map +1 -0
- package/dist/utils/formatters/mascararPartes.cjs +2 -0
- package/dist/utils/formatters/mascararPartes.cjs.map +1 -0
- package/dist/utils/formatters/mascararPartes.js +17 -0
- package/dist/utils/formatters/mascararPartes.js.map +1 -0
- package/dist/utils/textSearch/textSearch.cjs +2 -0
- package/dist/utils/textSearch/textSearch.cjs.map +1 -0
- package/dist/utils/textSearch/textSearch.js +22 -0
- package/dist/utils/textSearch/textSearch.js.map +1 -0
- package/package.json +5 -5
- package/dist/plenus-design-system.cjs +0 -3
- package/dist/plenus-design-system.cjs.map +0 -1
- package/dist/plenus-design-system.es.js +0 -6387
- package/dist/plenus-design-system.es.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.js","sources":["../../../../src/components/feedback/Progress/Progress.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react';\nimport styles from './Progress.module.css';\n\nexport type ProgressSize = 'sm' | 'md';\n\nexport interface ProgressProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n label: string;\n max?: number;\n showValue?: boolean;\n size?: ProgressSize;\n value?: number;\n}\n\nexport function Progress({ className, label, max = 100, showValue = false, size = 'md', value, ...props }: ProgressProps) {\n const indeterminate = value === undefined;\n const limitado = indeterminate ? 0 : Math.min(Math.max(value, 0), max);\n const percentual = max > 0 ? (limitado / max) * 100 : 0;\n const classes = [styles.progress, styles[size], className].filter(Boolean).join(' ');\n\n return (\n <div\n {...props}\n className={classes}\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={indeterminate ? undefined : limitado}\n >\n <div className={styles.track}>\n <div\n className={indeterminate ? styles.indeterminate : styles.fill}\n style={indeterminate ? undefined : { width: `${percentual}%` }}\n />\n </div>\n {showValue && !indeterminate && (\n <span className={styles.value}>{Math.round(percentual)}%</span>\n )}\n </div>\n );\n}\n"],"names":["Progress","className","label","max","showValue","size","value","props","indeterminate","limitado","percentual","classes","styles","jsxs","jsx"],"mappings":";;AAaO,SAASA,EAAS,EAAE,WAAAC,GAAW,OAAAC,GAAO,KAAAC,IAAM,KAAK,WAAAC,IAAY,IAAO,MAAAC,IAAO,MAAM,OAAAC,GAAO,GAAGC,KAAwB;AACxH,QAAMC,IAAgBF,MAAU,QAC1BG,IAAWD,IAAgB,IAAI,KAAK,IAAI,KAAK,IAAIF,GAAO,CAAC,GAAGH,CAAG,GAC/DO,IAAaP,IAAM,IAAKM,IAAWN,IAAO,MAAM,GAChDQ,IAAU,CAACC,EAAO,UAAUA,EAAOP,CAAI,GAAGJ,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAEnF,SACE,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGN;AAAA,MACJ,WAAWI;AAAA,MACX,MAAK;AAAA,MACL,cAAYT;AAAA,MACZ,iBAAe;AAAA,MACf,iBAAeC;AAAA,MACf,iBAAeK,IAAgB,SAAYC;AAAA,MAE3C,UAAA;AAAA,QAAA,gBAAAK,EAAC,OAAA,EAAI,WAAWF,EAAO,OACrB,UAAA,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWN,IAAgBI,EAAO,gBAAgBA,EAAO;AAAA,YACzD,OAAOJ,IAAgB,SAAY,EAAE,OAAO,GAAGE,CAAU,IAAA;AAAA,UAAI;AAAA,QAAA,GAEjE;AAAA,QACCN,KAAa,CAACI,uBACZ,QAAA,EAAK,WAAWI,EAAO,OAAQ,UAAA;AAAA,UAAA,KAAK,MAAMF,CAAU;AAAA,UAAE;AAAA,QAAA,EAAA,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIhE;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_progress_1cfl0_1",t="_track_1cfl0_8",l="_fill_1cfl0_15",s="_indeterminate_1cfl0_22",_="_value_1cfl0_30",r="_sm_1cfl0_40",c="_md_1cfl0_44",n={progress:e,track:t,fill:l,indeterminate:s,"pl-indeterminate":"_pl-indeterminate_1cfl0_1",value:_,sm:r,md:c};exports.default=n;exports.fill=l;exports.indeterminate=s;exports.md=c;exports.progress=e;exports.sm=r;exports.track=t;exports.value=_;
|
|
2
|
+
//# sourceMappingURL=Progress.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const e = "_progress_1cfl0_1", t = "_track_1cfl0_8", _ = "_fill_1cfl0_15", l = "_indeterminate_1cfl0_22", s = "_value_1cfl0_30", c = "_sm_1cfl0_40", n = "_md_1cfl0_44", r = {
|
|
2
|
+
progress: e,
|
|
3
|
+
track: t,
|
|
4
|
+
fill: _,
|
|
5
|
+
indeterminate: l,
|
|
6
|
+
"pl-indeterminate": "_pl-indeterminate_1cfl0_1",
|
|
7
|
+
value: s,
|
|
8
|
+
sm: c,
|
|
9
|
+
md: n
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
r as default,
|
|
13
|
+
_ as fill,
|
|
14
|
+
l as indeterminate,
|
|
15
|
+
n as md,
|
|
16
|
+
e as progress,
|
|
17
|
+
c as sm,
|
|
18
|
+
t as track,
|
|
19
|
+
s as value
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=Progress.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),t=require("./Spinner.module.css.cjs");function u({className:a,label:e,size:i="md",...n}){const r=[t.default.spinner,t.default[i],a].filter(Boolean).join(" ");return e?s.jsx("span",{...n,className:r,role:"status","aria-label":e}):s.jsx("span",{...n,className:r,"aria-hidden":"true"})}exports.Spinner=u;
|
|
2
|
+
//# sourceMappingURL=Spinner.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.cjs","sources":["../../../../src/components/feedback/Spinner/Spinner.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport styles from './Spinner.module.css';\n\nexport type SpinnerSize = 'sm' | 'md' | 'lg';\n\nexport interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {\n size?: SpinnerSize;\n label?: string;\n}\n\nexport function Spinner({ className, label, size = 'md', ...props }: SpinnerProps) {\n const classes = [styles.spinner, styles[size], className].filter(Boolean).join(' ');\n\n if (!label) {\n return <span {...props} className={classes} aria-hidden=\"true\" />;\n }\n\n return <span {...props} className={classes} role=\"status\" aria-label={label} />;\n}\n"],"names":["Spinner","className","label","size","props","classes","styles","jsx"],"mappings":"2JAUO,SAASA,EAAQ,CAAE,UAAAC,EAAW,MAAAC,EAAO,KAAAC,EAAO,KAAM,GAAGC,GAAuB,CACjF,MAAMC,EAAU,CAACC,EAAAA,QAAO,QAASA,EAAAA,QAAOH,CAAI,EAAGF,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAElF,OAAKC,EAIEK,MAAC,QAAM,GAAGH,EAAO,UAAWC,EAAS,KAAK,SAAS,aAAYH,CAAA,CAAO,QAHnE,OAAA,CAAM,GAAGE,EAAO,UAAWC,EAAS,cAAY,OAAO,CAInE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import a from "./Spinner.module.css.js";
|
|
3
|
+
function m({ className: t, label: r, size: i = "md", ...s }) {
|
|
4
|
+
const e = [a.spinner, a[i], t].filter(Boolean).join(" ");
|
|
5
|
+
return r ? /* @__PURE__ */ n("span", { ...s, className: e, role: "status", "aria-label": r }) : /* @__PURE__ */ n("span", { ...s, className: e, "aria-hidden": "true" });
|
|
6
|
+
}
|
|
7
|
+
export {
|
|
8
|
+
m as Spinner
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","sources":["../../../../src/components/feedback/Spinner/Spinner.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport styles from './Spinner.module.css';\n\nexport type SpinnerSize = 'sm' | 'md' | 'lg';\n\nexport interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {\n size?: SpinnerSize;\n label?: string;\n}\n\nexport function Spinner({ className, label, size = 'md', ...props }: SpinnerProps) {\n const classes = [styles.spinner, styles[size], className].filter(Boolean).join(' ');\n\n if (!label) {\n return <span {...props} className={classes} aria-hidden=\"true\" />;\n }\n\n return <span {...props} className={classes} role=\"status\" aria-label={label} />;\n}\n"],"names":["Spinner","className","label","size","props","classes","styles","jsx"],"mappings":";;AAUO,SAASA,EAAQ,EAAE,WAAAC,GAAW,OAAAC,GAAO,MAAAC,IAAO,MAAM,GAAGC,KAAuB;AACjF,QAAMC,IAAU,CAACC,EAAO,SAASA,EAAOH,CAAI,GAAGF,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAElF,SAAKC,IAIE,gBAAAK,EAAC,UAAM,GAAGH,GAAO,WAAWC,GAAS,MAAK,UAAS,cAAYH,EAAA,CAAO,sBAHnE,QAAA,EAAM,GAAGE,GAAO,WAAWC,GAAS,eAAY,QAAO;AAInE;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n="_spinner_nob8y_1",s="_sm_nob8y_10",e="_md_nob8y_15",_="_lg_nob8y_21",o={spinner:n,"pl-spin":"_pl-spin_nob8y_1",sm:s,md:e,lg:_};exports.default=o;exports.lg=_;exports.md=e;exports.sm=s;exports.spinner=n;
|
|
2
|
+
//# sourceMappingURL=Spinner.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const n = "_spinner_nob8y_1", s = "_sm_nob8y_10", _ = "_md_nob8y_15", o = "_lg_nob8y_21", p = {
|
|
2
|
+
spinner: n,
|
|
3
|
+
"pl-spin": "_pl-spin_nob8y_1",
|
|
4
|
+
sm: s,
|
|
5
|
+
md: _,
|
|
6
|
+
lg: o
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
p as default,
|
|
10
|
+
o as lg,
|
|
11
|
+
_ as md,
|
|
12
|
+
s as sm,
|
|
13
|
+
n as spinner
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=Spinner.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),o=require("react"),k=require("../../../hooks/useMergedRefs.cjs"),s=require("./Checkbox.module.css.cjs");function y({"aria-describedby":r,"aria-invalid":u,className:f,error:e,hint:i,id:b,indeterminate:c=!1,label:d,ref:m,...x}){const g=o.useId(),t=b??`checkbox-${g}`,l=`${t}-message`,h=[r,e||i?l:void 0].filter(Boolean).join(" ")||void 0,j=[s.default.input,e&&s.default.error,f].filter(Boolean).join(" "),p=o.useCallback(n=>{n&&(n.indeterminate=c)},[c]),v=k.useMergedRefs(p,m);return a.jsxs("div",{className:s.default.field,children:[a.jsxs("label",{className:s.default.control,htmlFor:t,children:[a.jsx("input",{...x,ref:v,className:j,id:t,"aria-describedby":h,"aria-invalid":e?!0:u,type:"checkbox"}),d&&a.jsx("span",{className:s.default.text,children:d})]}),(e||i)&&a.jsx("span",{className:e?s.default.errorMessage:s.default.hint,id:l,role:e?"alert":void 0,children:e||i})]})}exports.Checkbox=y;
|
|
2
|
+
//# sourceMappingURL=Checkbox.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.cjs","sources":["../../../../src/components/forms/Checkbox/Checkbox.tsx"],"sourcesContent":["import { useCallback, useId, type ComponentPropsWithRef, type ReactNode } from 'react';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport styles from './Checkbox.module.css';\n\nexport interface CheckboxProps extends Omit<ComponentPropsWithRef<'input'>, 'type' | 'size'> {\n error?: string;\n hint?: string;\n indeterminate?: boolean;\n /** Sem rotulo visivel, o nome vem de `aria-label` ou `aria-labelledby`. */\n label?: ReactNode;\n}\n\nexport function Checkbox({\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n className,\n error,\n hint,\n id: providedId,\n indeterminate = false,\n label,\n ref,\n ...props\n}: CheckboxProps) {\n const generatedId = useId();\n const id = providedId ?? `checkbox-${generatedId}`;\n const messageId = `${id}-message`;\n const describedBy = [ariaDescribedBy, error || hint ? messageId : undefined]\n .filter(Boolean)\n .join(' ') || undefined;\n const classes = [styles.input, error && styles.error, className].filter(Boolean).join(' ');\n\n const aplicarIndeterminado = useCallback(\n (node: HTMLInputElement | null) => {\n if (node) {\n node.indeterminate = indeterminate;\n }\n },\n [indeterminate],\n );\n const mergedRef = useMergedRefs(aplicarIndeterminado, ref);\n\n return (\n <div className={styles.field}>\n <label className={styles.control} htmlFor={id}>\n <input\n {...props}\n ref={mergedRef}\n className={classes}\n id={id}\n aria-describedby={describedBy}\n aria-invalid={error ? true : ariaInvalid}\n type=\"checkbox\"\n />\n {label && <span className={styles.text}>{label}</span>}\n </label>\n {(error || hint) && (\n <span className={error ? styles.errorMessage : styles.hint} id={messageId} role={error ? 'alert' : undefined}>\n {error || hint}\n </span>\n )}\n </div>\n );\n}\n"],"names":["Checkbox","ariaDescribedBy","ariaInvalid","className","error","hint","providedId","indeterminate","label","ref","props","generatedId","useId","id","messageId","describedBy","classes","styles","aplicarIndeterminado","useCallback","node","mergedRef","useMergedRefs","jsxs","jsx"],"mappings":"6NAYO,SAASA,EAAS,CACvB,mBAAoBC,EACpB,eAAgBC,EAChB,UAAAC,EACA,MAAAC,EACA,KAAAC,EACA,GAAIC,EACJ,cAAAC,EAAgB,GAChB,MAAAC,EACA,IAAAC,EACA,GAAGC,CACL,EAAkB,CAChB,MAAMC,EAAcC,EAAAA,MAAA,EACdC,EAAKP,GAAc,YAAYK,CAAW,GAC1CG,EAAY,GAAGD,CAAE,WACjBE,EAAc,CAACd,EAAiBG,GAASC,EAAOS,EAAY,MAAS,EACxE,OAAO,OAAO,EACd,KAAK,GAAG,GAAK,OACVE,EAAU,CAACC,EAAAA,QAAO,MAAOb,GAASa,EAAAA,QAAO,MAAOd,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAEnFe,EAAuBC,EAAAA,YAC1BC,GAAkC,CAC7BA,IACFA,EAAK,cAAgBb,EAEzB,EACA,CAACA,CAAa,CAAA,EAEVc,EAAYC,EAAAA,cAAcJ,EAAsBT,CAAG,EAEzD,OACEc,EAAAA,KAAC,MAAA,CAAI,UAAWN,EAAAA,QAAO,MACrB,SAAA,CAAAM,OAAC,QAAA,CAAM,UAAWN,EAAAA,QAAO,QAAS,QAASJ,EACzC,SAAA,CAAAW,EAAAA,IAAC,QAAA,CACE,GAAGd,EACJ,IAAKW,EACL,UAAWL,EACX,GAAAH,EACA,mBAAkBE,EAClB,eAAcX,EAAQ,GAAOF,EAC7B,KAAK,UAAA,CAAA,EAENM,GAASgB,EAAAA,IAAC,OAAA,CAAK,UAAWP,EAAAA,QAAO,KAAO,SAAAT,CAAA,CAAM,CAAA,EACjD,GACEJ,GAASC,IACTmB,MAAC,OAAA,CAAK,UAAWpB,EAAQa,EAAAA,QAAO,aAAeA,EAAAA,QAAO,KAAM,GAAIH,EAAW,KAAMV,EAAQ,QAAU,OAChG,YAASC,CAAA,CACZ,CAAA,EAEJ,CAEJ"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsxs as n, jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import { useId as N, useCallback as j } from "react";
|
|
3
|
+
import { useMergedRefs as k } from "../../../hooks/useMergedRefs.js";
|
|
4
|
+
import s from "./Checkbox.module.css.js";
|
|
5
|
+
function R({
|
|
6
|
+
"aria-describedby": r,
|
|
7
|
+
"aria-invalid": m,
|
|
8
|
+
className: f,
|
|
9
|
+
error: e,
|
|
10
|
+
hint: a,
|
|
11
|
+
id: p,
|
|
12
|
+
indeterminate: o = !1,
|
|
13
|
+
label: d,
|
|
14
|
+
ref: b,
|
|
15
|
+
...u
|
|
16
|
+
}) {
|
|
17
|
+
const h = N(), i = p ?? `checkbox-${h}`, t = `${i}-message`, x = [r, e || a ? t : void 0].filter(Boolean).join(" ") || void 0, g = [s.input, e && s.error, f].filter(Boolean).join(" "), v = j(
|
|
18
|
+
(l) => {
|
|
19
|
+
l && (l.indeterminate = o);
|
|
20
|
+
},
|
|
21
|
+
[o]
|
|
22
|
+
), y = k(v, b);
|
|
23
|
+
return /* @__PURE__ */ n("div", { className: s.field, children: [
|
|
24
|
+
/* @__PURE__ */ n("label", { className: s.control, htmlFor: i, children: [
|
|
25
|
+
/* @__PURE__ */ c(
|
|
26
|
+
"input",
|
|
27
|
+
{
|
|
28
|
+
...u,
|
|
29
|
+
ref: y,
|
|
30
|
+
className: g,
|
|
31
|
+
id: i,
|
|
32
|
+
"aria-describedby": x,
|
|
33
|
+
"aria-invalid": e ? !0 : m,
|
|
34
|
+
type: "checkbox"
|
|
35
|
+
}
|
|
36
|
+
),
|
|
37
|
+
d && /* @__PURE__ */ c("span", { className: s.text, children: d })
|
|
38
|
+
] }),
|
|
39
|
+
(e || a) && /* @__PURE__ */ c("span", { className: e ? s.errorMessage : s.hint, id: t, role: e ? "alert" : void 0, children: e || a })
|
|
40
|
+
] });
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
R as Checkbox
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../../src/components/forms/Checkbox/Checkbox.tsx"],"sourcesContent":["import { useCallback, useId, type ComponentPropsWithRef, type ReactNode } from 'react';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport styles from './Checkbox.module.css';\n\nexport interface CheckboxProps extends Omit<ComponentPropsWithRef<'input'>, 'type' | 'size'> {\n error?: string;\n hint?: string;\n indeterminate?: boolean;\n /** Sem rotulo visivel, o nome vem de `aria-label` ou `aria-labelledby`. */\n label?: ReactNode;\n}\n\nexport function Checkbox({\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n className,\n error,\n hint,\n id: providedId,\n indeterminate = false,\n label,\n ref,\n ...props\n}: CheckboxProps) {\n const generatedId = useId();\n const id = providedId ?? `checkbox-${generatedId}`;\n const messageId = `${id}-message`;\n const describedBy = [ariaDescribedBy, error || hint ? messageId : undefined]\n .filter(Boolean)\n .join(' ') || undefined;\n const classes = [styles.input, error && styles.error, className].filter(Boolean).join(' ');\n\n const aplicarIndeterminado = useCallback(\n (node: HTMLInputElement | null) => {\n if (node) {\n node.indeterminate = indeterminate;\n }\n },\n [indeterminate],\n );\n const mergedRef = useMergedRefs(aplicarIndeterminado, ref);\n\n return (\n <div className={styles.field}>\n <label className={styles.control} htmlFor={id}>\n <input\n {...props}\n ref={mergedRef}\n className={classes}\n id={id}\n aria-describedby={describedBy}\n aria-invalid={error ? true : ariaInvalid}\n type=\"checkbox\"\n />\n {label && <span className={styles.text}>{label}</span>}\n </label>\n {(error || hint) && (\n <span className={error ? styles.errorMessage : styles.hint} id={messageId} role={error ? 'alert' : undefined}>\n {error || hint}\n </span>\n )}\n </div>\n );\n}\n"],"names":["Checkbox","ariaDescribedBy","ariaInvalid","className","error","hint","providedId","indeterminate","label","ref","props","generatedId","useId","id","messageId","describedBy","classes","styles","aplicarIndeterminado","useCallback","node","mergedRef","useMergedRefs","jsxs","jsx"],"mappings":";;;;AAYO,SAASA,EAAS;AAAA,EACvB,oBAAoBC;AAAA,EACpB,gBAAgBC;AAAA,EAChB,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,IAAIC;AAAA,EACJ,eAAAC,IAAgB;AAAA,EAChB,OAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,GAAkB;AAChB,QAAMC,IAAcC,EAAA,GACdC,IAAKP,KAAc,YAAYK,CAAW,IAC1CG,IAAY,GAAGD,CAAE,YACjBE,IAAc,CAACd,GAAiBG,KAASC,IAAOS,IAAY,MAAS,EACxE,OAAO,OAAO,EACd,KAAK,GAAG,KAAK,QACVE,IAAU,CAACC,EAAO,OAAOb,KAASa,EAAO,OAAOd,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAEnFe,IAAuBC;AAAA,IAC3B,CAACC,MAAkC;AACjC,MAAIA,MACFA,EAAK,gBAAgBb;AAAA,IAEzB;AAAA,IACA,CAACA,CAAa;AAAA,EAAA,GAEVc,IAAYC,EAAcJ,GAAsBT,CAAG;AAEzD,SACE,gBAAAc,EAAC,OAAA,EAAI,WAAWN,EAAO,OACrB,UAAA;AAAA,IAAA,gBAAAM,EAAC,SAAA,EAAM,WAAWN,EAAO,SAAS,SAASJ,GACzC,UAAA;AAAA,MAAA,gBAAAW;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGd;AAAA,UACJ,KAAKW;AAAA,UACL,WAAWL;AAAA,UACX,IAAAH;AAAA,UACA,oBAAkBE;AAAA,UAClB,gBAAcX,IAAQ,KAAOF;AAAA,UAC7B,MAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAENM,KAAS,gBAAAgB,EAAC,QAAA,EAAK,WAAWP,EAAO,MAAO,UAAAT,EAAA,CAAM;AAAA,IAAA,GACjD;AAAA,KACEJ,KAASC,MACT,gBAAAmB,EAAC,QAAA,EAAK,WAAWpB,IAAQa,EAAO,eAAeA,EAAO,MAAM,IAAIH,GAAW,MAAMV,IAAQ,UAAU,QAChG,eAASC,EAAA,CACZ;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_field_thq98_1",e="_control_thq98_8",r="_input_thq98_15",o="_error_thq98_36",_="_text_thq98_76",s="_hint_thq98_84 _hint_wy7pm_8",n="_errorMessage_thq98_88 _errorMessage_wy7pm_9",i={field:t,control:e,input:r,error:o,text:_,hint:s,errorMessage:n};exports.control=e;exports.default=i;exports.error=o;exports.errorMessage=n;exports.field=t;exports.hint=s;exports.input=r;exports.text=_;
|
|
2
|
+
//# sourceMappingURL=Checkbox.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const t = "_field_thq98_1", _ = "_control_thq98_8", r = "_input_thq98_15", e = "_error_thq98_36", o = "_text_thq98_76", s = "_hint_thq98_84 _hint_wy7pm_8", n = "_errorMessage_thq98_88 _errorMessage_wy7pm_9", c = {
|
|
2
|
+
field: t,
|
|
3
|
+
control: _,
|
|
4
|
+
input: r,
|
|
5
|
+
error: e,
|
|
6
|
+
text: o,
|
|
7
|
+
hint: s,
|
|
8
|
+
errorMessage: n
|
|
9
|
+
};
|
|
10
|
+
export {
|
|
11
|
+
_ as control,
|
|
12
|
+
c as default,
|
|
13
|
+
e as error,
|
|
14
|
+
n as errorMessage,
|
|
15
|
+
t as field,
|
|
16
|
+
s as hint,
|
|
17
|
+
r as input,
|
|
18
|
+
o as text
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=Checkbox.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),i=require("react"),O=require("react-dom"),fe=require("@react-aria/overlays"),_=require("../../data-display/List/ListingOptions.cjs"),me=require("../../data-display/List/useListing.cjs"),he=require("../../../hooks/useFormReset.cjs"),ge=require("../../../hooks/useMergedRefs.cjs"),be=require("../Field/FormValue.cjs"),r=require("./ComboBox.module.css.cjs"),ve=require("../Field/Field.cjs"),ye=require("../../data-display/Badge/Badge.cjs");function G(s){if(s!==void 0)return(typeof s=="string"?[s]:s).map(f=>({value:f,label:""}))}function pe(s,f){var y,p;if(s.selectionMode==="multiple"){(y=s.onValueChange)==null||y.call(s,f.map(x=>x.value));return}const[v]=f;v&&((p=s.onValueChange)==null||p.call(s,v.value))}function xe(s){var A;const{"aria-describedby":f,className:v,defaultValue:y,name:p,disabled:x=!1,emptyMessage:J="Nenhum resultado",error:q,hint:Q,id:U,label:w,loading:X=!1,onBlur:F,onClick:D,onKeyDown:B,onSearch:Y,onValueChange:Re,options:Z,placeholder:I,ref:ee,required:S=!1,selectionMode:L="single",size:V="md",value:te,...se}=s,l=L==="multiple",m=i.useRef(null),M=i.useRef(null),E=i.useRef(null),N=`combobox-${i.useId()}`,[c,R]=i.useState(!1),[ae,k]=i.useState(!1),ne=he.useFormReset(()=>{n.reset(),g()}),oe=ge.useMergedRefs(m,ne,ee),n=me.useListing({items:Z,selectionMode:L,defaultValue:G(y),value:G(te),onSearch:Y,onSelectionChange:e=>pe(s,e)}),o=n.selected,[h]=o,P=l||ae?n.term:(h==null?void 0:h.label)??"",C=l?M:m,K=n.visible.findIndex(e=>e.value===n.focusedKey),{overlayProps:z}=fe.useOverlayPosition({targetRef:C,overlayRef:E,placement:"bottom start",offset:6,containerPadding:8,isOpen:c}),[re,le]=i.useState(),ie=Math.min(Number((A=z.style)==null?void 0:A.maxHeight)||280,280);i.useLayoutEffect(()=>{var e;le((e=C.current)==null?void 0:e.offsetWidth)},[C,c]);const[W,H]=i.useState(!0),$=i.useRef(null),ue=o.map(e=>e.value).join(`
|
|
2
|
+
`);i.useLayoutEffect(()=>{const e=M.current;if(!e||typeof ResizeObserver>"u")return;const d=new ResizeObserver(()=>{O.flushSync(()=>H(!1));const u=$.current;O.flushSync(()=>H(!!(u&&u.scrollWidth>u.clientWidth)))});return d.observe(e),()=>d.disconnect()},[ue,l]);function ce(){k(!1),n.filter("")}function g(){R(!1),ce()}function de(e){if(B==null||B(e),e.key==="ArrowDown"&&!c){e.preventDefault(),R(!0),n.focusFirst();return}if(e.key==="Escape"){g();return}if(e.key==="Enter"){const u=n.visible.find(j=>j.value===n.focusedKey);c&&u&&!u.disabled&&(e.preventDefault(),n.select(u),l||g());return}const d=o[o.length-1];if(e.key==="Backspace"&&l&&P===""&&d){n.select(d);return}n.handleKeyDown(e)}return a.jsx(ve.Field,{"aria-describedby":f,error:q,hint:Q,id:U,label:w,required:S,children:({id:e,describedBy:d,invalid:u})=>{const j=e+"-selection",T=a.jsx("input",{...se,ref:oe,className:[l?r.default.search:r.default.input,!l&&r.default[V],!l&&q&&r.default.error,v].filter(Boolean).join(" "),id:e,type:"text",role:"combobox",autoComplete:"off","aria-describedby":[d,l&&o.length>0&&j].filter(Boolean).join(" ")||void 0,"aria-invalid":u||void 0,"aria-expanded":c,"aria-autocomplete":"list","aria-controls":c?N+"-options":void 0,"aria-activedescendant":c&&K>=0?_.optionId(N,K):void 0,"aria-required":S||void 0,disabled:x,placeholder:I,value:P,onBlur:t=>{g(),F==null||F(t)},onChange:t=>{k(!0),R(!0),n.filter(t.target.value)},onClick:t=>{R(!0),D==null||D(t)},onKeyDown:de});return a.jsxs(a.Fragment,{children:[(o.length>0?o:[void 0]).map(t=>a.jsx(be.FormValue,{disabled:x,name:p,onFocus:()=>{var b;return(b=m.current)==null?void 0:b.focus()},required:S,value:(t==null?void 0:t.value)??""},(t==null?void 0:t.value)??"")),l?a.jsxs("div",{className:[r.default.control,r.default[V],q&&r.default.error].filter(Boolean).join(" "),onMouseDown:t=>{var b;t.target!==m.current&&(t.preventDefault(),(b=m.current)==null||b.focus())},ref:M,children:[h&&a.jsxs(a.Fragment,{children:[a.jsxs("span",{"aria-hidden":"true",className:r.default.selection,ref:$,children:[(W?[h]:o).map(t=>a.jsx(ye.Badge,{children:t.label},t.value)),W&&o.length>1&&a.jsxs("span",{className:r.default.rest,children:["+",o.length-1]})]}),a.jsxs("span",{className:r.default.summary,id:j,children:[o.length===1?"1 selecionado":`${o.length} selecionados`,":"," ",o.map(t=>t.label).join(", ")]})]}),T]}):T,c&&O.createPortal(a.jsx("div",{ref:E,className:r.default.panel,"data-react-aria-top-layer":"true",onMouseDown:t=>t.preventDefault(),style:{...z.style,width:re,maxHeight:ie},children:a.jsx(_.ListingOptions,{baseId:N,empty:a.jsx("p",{className:r.default.empty,children:J}),holdsFocus:!1,label:w??I??"Opções",listing:n,loading:X,onSelect:l?void 0:g})}),document.body)]})}})}exports.ComboBox=xe;
|
|
3
|
+
//# sourceMappingURL=ComboBox.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboBox.cjs","sources":["../../../../src/components/forms/ComboBox/ComboBox.tsx"],"sourcesContent":["import {\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react';\nimport { createPortal, flushSync } from 'react-dom';\nimport { useOverlayPosition } from '@react-aria/overlays';\nimport { ListingOptions, optionId } from '../../data-display/List/ListingOptions';\nimport { useListing, type ListingItem } from '../../data-display/List/useListing';\nimport { Badge } from '../../data-display/Badge';\nimport { useFormReset } from '../../../hooks/useFormReset';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { Field } from '../Field';\nimport { FormValue } from '../Field/FormValue';\nimport styles from './ComboBox.module.css';\n\nexport type ComboBoxSize = 'sm' | 'md';\n\nexport interface ComboBoxOption {\n disabled?: boolean;\n label: string;\n value: string;\n}\n\n/** As propriedades nativas vao ao campo de texto, que e o controle; o `className` soma ao do sistema. */\ninterface ComboBoxBaseProps\n extends Omit<ComponentPropsWithRef<'input'>, 'defaultValue' | 'name' | 'onChange' | 'size' | 'type' | 'value'> {\n emptyMessage?: string;\n error?: string;\n hint?: string;\n label?: string;\n /**\n * Nome do campo no formulario. Com ele, um input oculto carrega o valor para\n * o `FormData`: sem controle nativo por baixo, o envio ignorava o campo.\n */\n name?: string;\n loading?: boolean;\n onSearch?: (term: string) => void;\n options: readonly ComboBoxOption[];\n size?: ComboBoxSize;\n}\n\nexport interface ComboBoxSingleProps extends ComboBoxBaseProps {\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n selectionMode?: 'single';\n value?: string;\n}\n\nexport interface ComboBoxMultipleProps extends ComboBoxBaseProps {\n defaultValue?: readonly string[];\n onValueChange?: (values: readonly string[]) => void;\n selectionMode: 'multiple';\n value?: readonly string[];\n}\n\nexport type ComboBoxProps = ComboBoxSingleProps | ComboBoxMultipleProps;\n\nfunction comoItens(valor: string | readonly string[] | undefined): ListingItem[] | undefined {\n if (valor === undefined) {\n return undefined;\n }\n\n return (typeof valor === 'string' ? [valor] : valor).map((value) => ({ value, label: '' }));\n}\n\nfunction relatarEscolha(props: ComboBoxProps, escolhidos: readonly ListingItem[]) {\n if (props.selectionMode === 'multiple') {\n props.onValueChange?.(escolhidos.map((item) => item.value));\n return;\n }\n\n const [primeiro] = escolhidos;\n\n if (primeiro) {\n props.onValueChange?.(primeiro.value);\n }\n}\n\nexport function ComboBox(allProps: ComboBoxProps) {\n const {\n 'aria-describedby': ariaDescribedBy,\n className,\n defaultValue,\n name,\n disabled = false,\n emptyMessage = 'Nenhum resultado',\n error,\n hint,\n id: providedId,\n label,\n loading = false,\n onBlur,\n onClick,\n onKeyDown,\n onSearch,\n // Fora do resto, que vai ao campo: quem o chama e `relatarEscolha`, que conhece o modo.\n onValueChange,\n options,\n placeholder,\n ref,\n required = false,\n selectionMode = 'single',\n size = 'md',\n value,\n ...props\n } = allProps;\n const multiple = selectionMode === 'multiple';\n const inputRef = useRef<HTMLInputElement>(null);\n const controlRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const baseId = `combobox-${useId()}`;\n const [open, setOpen] = useState(false);\n const [filtering, setFiltering] = useState(false);\n const resetRef = useFormReset<HTMLInputElement>(() => {\n listing.reset();\n fechar();\n });\n const mergedRef = useMergedRefs(inputRef, resetRef, ref);\n\n // O valor e a chave, e nao a opcao: com opcoes que chegam depois, filtrar por elas perdia a escolha.\n const listing = useListing({\n items: options,\n selectionMode,\n defaultValue: comoItens(defaultValue),\n value: comoItens(value),\n onSearch,\n onSelectionChange: (escolhidos) => relatarEscolha(allProps, escolhidos),\n });\n\n const escolhidos = listing.selected;\n const [chosen] = escolhidos;\n // Na escolha multipla o campo so guarda a busca: quem mostra o que esta escolhido sao as etiquetas.\n const texto = multiple || filtering ? listing.term : chosen?.label ?? '';\n const ancoraRef = multiple ? controlRef : inputRef;\n const activeIndex = listing.visible.findIndex((option) => option.value === listing.focusedKey);\n\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: ancoraRef,\n overlayRef: panelRef,\n placement: 'bottom start',\n offset: 6,\n containerPadding: 8,\n isOpen: open,\n });\n const [largura, setLargura] = useState<number>();\n const alturaMaxima = Math.min(Number(positionProps.style?.maxHeight) || 280, 280);\n\n useLayoutEffect(() => {\n setLargura(ancoraRef.current?.offsetWidth);\n }, [ancoraRef, open]);\n\n // Sem medida, como no servidor, o campo resume as escolhas; medido, mostra todas as etiquetas enquanto couberem.\n const [resumir, setResumir] = useState(true);\n const selecaoRef = useRef<HTMLSpanElement>(null);\n const chaveDasEscolhas = escolhidos.map((item) => item.value).join('\\n');\n\n useLayoutEffect(() => {\n const moldura = controlRef.current;\n\n if (!moldura || typeof ResizeObserver === 'undefined') {\n return;\n }\n\n // Desenhar todas e medir na mesma passada, antes da pintura, para o campo nao piscar ao redimensionar.\n const observador = new ResizeObserver(() => {\n flushSync(() => setResumir(false));\n const selecao = selecaoRef.current;\n flushSync(() => setResumir(Boolean(selecao && selecao.scrollWidth > selecao.clientWidth)));\n });\n\n observador.observe(moldura);\n\n return () => observador.disconnect();\n }, [chaveDasEscolhas, multiple]);\n\n function encerrarFiltro() {\n setFiltering(false);\n listing.filter('');\n }\n\n function fechar() {\n setOpen(false);\n encerrarFiltro();\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLInputElement>) {\n onKeyDown?.(event);\n\n if (event.key === 'ArrowDown' && !open) {\n event.preventDefault();\n setOpen(true);\n listing.focusFirst();\n return;\n }\n\n if (event.key === 'Escape') {\n fechar();\n return;\n }\n\n if (event.key === 'Enter') {\n const alvo = listing.visible.find((option) => option.value === listing.focusedKey);\n\n if (open && alvo && !alvo.disabled) {\n event.preventDefault();\n listing.select(alvo);\n\n if (!multiple) {\n fechar();\n }\n }\n return;\n }\n\n const ultimo = escolhidos[escolhidos.length - 1];\n\n if (event.key === 'Backspace' && multiple && texto === '' && ultimo) {\n listing.select(ultimo);\n return;\n }\n\n listing.handleKeyDown(event);\n }\n\n return (\n <Field aria-describedby={ariaDescribedBy} error={error} hint={hint} id={providedId} label={label} required={required}>\n {({ id, describedBy, invalid }) => {\n const resumoId = id + '-selection';\n const campo = (\n <input\n {...props}\n ref={mergedRef}\n className={[multiple ? styles.search : styles.input, !multiple && styles[size], !multiple && error && styles.error, className]\n .filter(Boolean)\n .join(' ')}\n id={id}\n type=\"text\"\n role=\"combobox\"\n autoComplete=\"off\"\n aria-describedby={[describedBy, multiple && escolhidos.length > 0 && resumoId].filter(Boolean).join(' ') || undefined}\n aria-invalid={invalid || undefined}\n aria-expanded={open}\n aria-autocomplete=\"list\"\n aria-controls={open ? baseId + '-options' : undefined}\n aria-activedescendant={open && activeIndex >= 0 ? optionId(baseId, activeIndex) : undefined}\n aria-required={required || undefined}\n disabled={disabled}\n placeholder={placeholder}\n value={texto}\n // Sair do campo desfaz a busca: o texto volta a dizer o que esta escolhido.\n onBlur={(event: FocusEvent<HTMLInputElement>) => {\n fechar();\n onBlur?.(event);\n }}\n onChange={(event) => {\n setFiltering(true);\n setOpen(true);\n listing.filter(event.target.value);\n }}\n onClick={(event: MouseEvent<HTMLInputElement>) => {\n setOpen(true);\n onClick?.(event);\n }}\n onKeyDown={handleKeyDown}\n />\n );\n\n return (\n <>\n {(escolhidos.length > 0 ? escolhidos : [undefined]).map((item) => (\n <FormValue\n disabled={disabled}\n key={item?.value ?? ''}\n name={name}\n onFocus={() => inputRef.current?.focus()}\n required={required}\n value={item?.value ?? ''}\n />\n ))}\n {multiple ? (\n <div\n className={[styles.control, styles[size], error && styles.error].filter(Boolean).join(' ')}\n // O clique na moldura, fora do campo, leva o foco a ele em vez de tira-lo.\n onMouseDown={(event) => {\n if (event.target !== inputRef.current) {\n event.preventDefault();\n inputRef.current?.focus();\n }\n }}\n ref={controlRef}\n >\n {chosen && (\n <>\n <span aria-hidden=\"true\" className={styles.selection} ref={selecaoRef}>\n {(resumir ? [chosen] : escolhidos).map((item) => (\n <Badge key={item.value}>{item.label}</Badge>\n ))}\n {resumir && escolhidos.length > 1 && (\n <span className={styles.rest}>+{escolhidos.length - 1}</span>\n )}\n </span>\n <span className={styles.summary} id={resumoId}>\n {escolhidos.length === 1 ? '1 selecionado' : `${escolhidos.length} selecionados`}:{' '}\n {escolhidos.map((item) => item.label).join(', ')}\n </span>\n </>\n )}\n {campo}\n </div>\n ) : (\n campo\n )}\n {open &&\n createPortal(\n <div\n ref={panelRef}\n className={styles.panel}\n // Camada de cima: o `ariaHideOutside` do Dialog ignora quem a declara.\n data-react-aria-top-layer=\"true\"\n // O clique no painel, fora de uma opcao, nao tira o foco do campo nem fecha a lista.\n onMouseDown={(event) => event.preventDefault()}\n style={{ ...positionProps.style, width: largura, maxHeight: alturaMaxima }}\n >\n <ListingOptions\n baseId={baseId}\n empty={<p className={styles.empty}>{emptyMessage}</p>}\n holdsFocus={false}\n label={label ?? placeholder ?? 'Opções'}\n listing={listing}\n loading={loading}\n onSelect={multiple ? undefined : fechar}\n />\n </div>,\n document.body,\n )}\n </>\n );\n }}\n </Field>\n );\n}\n"],"names":["comoItens","valor","value","relatarEscolha","props","escolhidos","_a","item","primeiro","_b","ComboBox","allProps","ariaDescribedBy","className","defaultValue","name","disabled","emptyMessage","error","hint","providedId","label","loading","onBlur","onClick","onKeyDown","onSearch","onValueChange","options","placeholder","ref","required","selectionMode","size","multiple","inputRef","useRef","controlRef","panelRef","baseId","useId","open","setOpen","useState","filtering","setFiltering","resetRef","useFormReset","listing","fechar","mergedRef","useMergedRefs","useListing","chosen","texto","ancoraRef","activeIndex","option","positionProps","useOverlayPosition","largura","setLargura","alturaMaxima","useLayoutEffect","resumir","setResumir","selecaoRef","chaveDasEscolhas","moldura","observador","flushSync","selecao","encerrarFiltro","handleKeyDown","event","alvo","ultimo","jsx","Field","id","describedBy","invalid","resumoId","campo","styles","optionId","jsxs","Fragment","FormValue","Badge","createPortal","ListingOptions"],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { jsx as u, jsxs as f, Fragment as Q } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as N, useId as he, useState as F, useLayoutEffect as T } from "react";
|
|
3
|
+
import { flushSync as U, createPortal as ge } from "react-dom";
|
|
4
|
+
import { useOverlayPosition as ve } from "@react-aria/overlays";
|
|
5
|
+
import { optionId as be, ListingOptions as ye } from "../../data-display/List/ListingOptions.js";
|
|
6
|
+
import { useListing as Re } from "../../data-display/List/useListing.js";
|
|
7
|
+
import { useFormReset as xe } from "../../../hooks/useFormReset.js";
|
|
8
|
+
import { useMergedRefs as De } from "../../../hooks/useMergedRefs.js";
|
|
9
|
+
import { FormValue as Ne } from "../Field/FormValue.js";
|
|
10
|
+
import a from "./ComboBox.module.css.js";
|
|
11
|
+
import { Field as Fe } from "../Field/Field.js";
|
|
12
|
+
import { Badge as we } from "../../data-display/Badge/Badge.js";
|
|
13
|
+
function X(t) {
|
|
14
|
+
if (t !== void 0)
|
|
15
|
+
return (typeof t == "string" ? [t] : t).map((d) => ({ value: d, label: "" }));
|
|
16
|
+
}
|
|
17
|
+
function Be(t, d) {
|
|
18
|
+
var b, y;
|
|
19
|
+
if (t.selectionMode === "multiple") {
|
|
20
|
+
(b = t.onValueChange) == null || b.call(t, d.map((R) => R.value));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const [v] = d;
|
|
24
|
+
v && ((y = t.onValueChange) == null || y.call(t, v.value));
|
|
25
|
+
}
|
|
26
|
+
function We(t) {
|
|
27
|
+
var G;
|
|
28
|
+
const {
|
|
29
|
+
"aria-describedby": d,
|
|
30
|
+
className: v,
|
|
31
|
+
defaultValue: b,
|
|
32
|
+
name: y,
|
|
33
|
+
disabled: R = !1,
|
|
34
|
+
emptyMessage: Y = "Nenhum resultado",
|
|
35
|
+
error: w,
|
|
36
|
+
hint: Z,
|
|
37
|
+
id: _,
|
|
38
|
+
label: k,
|
|
39
|
+
loading: ee = !1,
|
|
40
|
+
onBlur: B,
|
|
41
|
+
onClick: I,
|
|
42
|
+
onKeyDown: M,
|
|
43
|
+
onSearch: oe,
|
|
44
|
+
// Fora do resto, que vai ao campo: quem o chama e `relatarEscolha`, que conhece o modo.
|
|
45
|
+
onValueChange: Ie,
|
|
46
|
+
options: te,
|
|
47
|
+
placeholder: E,
|
|
48
|
+
ref: re,
|
|
49
|
+
required: j = !1,
|
|
50
|
+
selectionMode: S = "single",
|
|
51
|
+
size: K = "md",
|
|
52
|
+
value: ne,
|
|
53
|
+
...ae
|
|
54
|
+
} = t, l = S === "multiple", m = N(null), C = N(null), L = N(null), O = `combobox-${he()}`, [i, x] = F(!1), [le, P] = F(!1), se = xe(() => {
|
|
55
|
+
r.reset(), h();
|
|
56
|
+
}), ie = De(m, se, re), r = Re({
|
|
57
|
+
items: te,
|
|
58
|
+
selectionMode: S,
|
|
59
|
+
defaultValue: X(b),
|
|
60
|
+
value: X(ne),
|
|
61
|
+
onSearch: oe,
|
|
62
|
+
onSelectionChange: (e) => Be(t, e)
|
|
63
|
+
}), n = r.selected, [p] = n, z = l || le ? r.term : (p == null ? void 0 : p.label) ?? "", V = l ? C : m, W = r.visible.findIndex((e) => e.value === r.focusedKey), { overlayProps: q } = ve({
|
|
64
|
+
targetRef: V,
|
|
65
|
+
overlayRef: L,
|
|
66
|
+
placement: "bottom start",
|
|
67
|
+
offset: 6,
|
|
68
|
+
containerPadding: 8,
|
|
69
|
+
isOpen: i
|
|
70
|
+
}), [ce, ue] = F(), de = Math.min(Number((G = q.style) == null ? void 0 : G.maxHeight) || 280, 280);
|
|
71
|
+
T(() => {
|
|
72
|
+
var e;
|
|
73
|
+
ue((e = V.current) == null ? void 0 : e.offsetWidth);
|
|
74
|
+
}, [V, i]);
|
|
75
|
+
const [H, $] = F(!0), A = N(null), fe = n.map((e) => e.value).join(`
|
|
76
|
+
`);
|
|
77
|
+
T(() => {
|
|
78
|
+
const e = C.current;
|
|
79
|
+
if (!e || typeof ResizeObserver > "u")
|
|
80
|
+
return;
|
|
81
|
+
const c = new ResizeObserver(() => {
|
|
82
|
+
U(() => $(!1));
|
|
83
|
+
const s = A.current;
|
|
84
|
+
U(() => $(!!(s && s.scrollWidth > s.clientWidth)));
|
|
85
|
+
});
|
|
86
|
+
return c.observe(e), () => c.disconnect();
|
|
87
|
+
}, [fe, l]);
|
|
88
|
+
function me() {
|
|
89
|
+
P(!1), r.filter("");
|
|
90
|
+
}
|
|
91
|
+
function h() {
|
|
92
|
+
x(!1), me();
|
|
93
|
+
}
|
|
94
|
+
function pe(e) {
|
|
95
|
+
if (M == null || M(e), e.key === "ArrowDown" && !i) {
|
|
96
|
+
e.preventDefault(), x(!0), r.focusFirst();
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (e.key === "Escape") {
|
|
100
|
+
h();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (e.key === "Enter") {
|
|
104
|
+
const s = r.visible.find((D) => D.value === r.focusedKey);
|
|
105
|
+
i && s && !s.disabled && (e.preventDefault(), r.select(s), l || h());
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const c = n[n.length - 1];
|
|
109
|
+
if (e.key === "Backspace" && l && z === "" && c) {
|
|
110
|
+
r.select(c);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
r.handleKeyDown(e);
|
|
114
|
+
}
|
|
115
|
+
return /* @__PURE__ */ u(Fe, { "aria-describedby": d, error: w, hint: Z, id: _, label: k, required: j, children: ({ id: e, describedBy: c, invalid: s }) => {
|
|
116
|
+
const D = e + "-selection", J = /* @__PURE__ */ u(
|
|
117
|
+
"input",
|
|
118
|
+
{
|
|
119
|
+
...ae,
|
|
120
|
+
ref: ie,
|
|
121
|
+
className: [l ? a.search : a.input, !l && a[K], !l && w && a.error, v].filter(Boolean).join(" "),
|
|
122
|
+
id: e,
|
|
123
|
+
type: "text",
|
|
124
|
+
role: "combobox",
|
|
125
|
+
autoComplete: "off",
|
|
126
|
+
"aria-describedby": [c, l && n.length > 0 && D].filter(Boolean).join(" ") || void 0,
|
|
127
|
+
"aria-invalid": s || void 0,
|
|
128
|
+
"aria-expanded": i,
|
|
129
|
+
"aria-autocomplete": "list",
|
|
130
|
+
"aria-controls": i ? O + "-options" : void 0,
|
|
131
|
+
"aria-activedescendant": i && W >= 0 ? be(O, W) : void 0,
|
|
132
|
+
"aria-required": j || void 0,
|
|
133
|
+
disabled: R,
|
|
134
|
+
placeholder: E,
|
|
135
|
+
value: z,
|
|
136
|
+
onBlur: (o) => {
|
|
137
|
+
h(), B == null || B(o);
|
|
138
|
+
},
|
|
139
|
+
onChange: (o) => {
|
|
140
|
+
P(!0), x(!0), r.filter(o.target.value);
|
|
141
|
+
},
|
|
142
|
+
onClick: (o) => {
|
|
143
|
+
x(!0), I == null || I(o);
|
|
144
|
+
},
|
|
145
|
+
onKeyDown: pe
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
return /* @__PURE__ */ f(Q, { children: [
|
|
149
|
+
(n.length > 0 ? n : [void 0]).map((o) => /* @__PURE__ */ u(
|
|
150
|
+
Ne,
|
|
151
|
+
{
|
|
152
|
+
disabled: R,
|
|
153
|
+
name: y,
|
|
154
|
+
onFocus: () => {
|
|
155
|
+
var g;
|
|
156
|
+
return (g = m.current) == null ? void 0 : g.focus();
|
|
157
|
+
},
|
|
158
|
+
required: j,
|
|
159
|
+
value: (o == null ? void 0 : o.value) ?? ""
|
|
160
|
+
},
|
|
161
|
+
(o == null ? void 0 : o.value) ?? ""
|
|
162
|
+
)),
|
|
163
|
+
l ? /* @__PURE__ */ f(
|
|
164
|
+
"div",
|
|
165
|
+
{
|
|
166
|
+
className: [a.control, a[K], w && a.error].filter(Boolean).join(" "),
|
|
167
|
+
onMouseDown: (o) => {
|
|
168
|
+
var g;
|
|
169
|
+
o.target !== m.current && (o.preventDefault(), (g = m.current) == null || g.focus());
|
|
170
|
+
},
|
|
171
|
+
ref: C,
|
|
172
|
+
children: [
|
|
173
|
+
p && /* @__PURE__ */ f(Q, { children: [
|
|
174
|
+
/* @__PURE__ */ f("span", { "aria-hidden": "true", className: a.selection, ref: A, children: [
|
|
175
|
+
(H ? [p] : n).map((o) => /* @__PURE__ */ u(we, { children: o.label }, o.value)),
|
|
176
|
+
H && n.length > 1 && /* @__PURE__ */ f("span", { className: a.rest, children: [
|
|
177
|
+
"+",
|
|
178
|
+
n.length - 1
|
|
179
|
+
] })
|
|
180
|
+
] }),
|
|
181
|
+
/* @__PURE__ */ f("span", { className: a.summary, id: D, children: [
|
|
182
|
+
n.length === 1 ? "1 selecionado" : `${n.length} selecionados`,
|
|
183
|
+
":",
|
|
184
|
+
" ",
|
|
185
|
+
n.map((o) => o.label).join(", ")
|
|
186
|
+
] })
|
|
187
|
+
] }),
|
|
188
|
+
J
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
) : J,
|
|
192
|
+
i && ge(
|
|
193
|
+
/* @__PURE__ */ u(
|
|
194
|
+
"div",
|
|
195
|
+
{
|
|
196
|
+
ref: L,
|
|
197
|
+
className: a.panel,
|
|
198
|
+
"data-react-aria-top-layer": "true",
|
|
199
|
+
onMouseDown: (o) => o.preventDefault(),
|
|
200
|
+
style: { ...q.style, width: ce, maxHeight: de },
|
|
201
|
+
children: /* @__PURE__ */ u(
|
|
202
|
+
ye,
|
|
203
|
+
{
|
|
204
|
+
baseId: O,
|
|
205
|
+
empty: /* @__PURE__ */ u("p", { className: a.empty, children: Y }),
|
|
206
|
+
holdsFocus: !1,
|
|
207
|
+
label: k ?? E ?? "Opções",
|
|
208
|
+
listing: r,
|
|
209
|
+
loading: ee,
|
|
210
|
+
onSelect: l ? void 0 : h
|
|
211
|
+
}
|
|
212
|
+
)
|
|
213
|
+
}
|
|
214
|
+
),
|
|
215
|
+
document.body
|
|
216
|
+
)
|
|
217
|
+
] });
|
|
218
|
+
} });
|
|
219
|
+
}
|
|
220
|
+
export {
|
|
221
|
+
We as ComboBox
|
|
222
|
+
};
|
|
223
|
+
//# sourceMappingURL=ComboBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboBox.js","sources":["../../../../src/components/forms/ComboBox/ComboBox.tsx"],"sourcesContent":["import {\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react';\nimport { createPortal, flushSync } from 'react-dom';\nimport { useOverlayPosition } from '@react-aria/overlays';\nimport { ListingOptions, optionId } from '../../data-display/List/ListingOptions';\nimport { useListing, type ListingItem } from '../../data-display/List/useListing';\nimport { Badge } from '../../data-display/Badge';\nimport { useFormReset } from '../../../hooks/useFormReset';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { Field } from '../Field';\nimport { FormValue } from '../Field/FormValue';\nimport styles from './ComboBox.module.css';\n\nexport type ComboBoxSize = 'sm' | 'md';\n\nexport interface ComboBoxOption {\n disabled?: boolean;\n label: string;\n value: string;\n}\n\n/** As propriedades nativas vao ao campo de texto, que e o controle; o `className` soma ao do sistema. */\ninterface ComboBoxBaseProps\n extends Omit<ComponentPropsWithRef<'input'>, 'defaultValue' | 'name' | 'onChange' | 'size' | 'type' | 'value'> {\n emptyMessage?: string;\n error?: string;\n hint?: string;\n label?: string;\n /**\n * Nome do campo no formulario. Com ele, um input oculto carrega o valor para\n * o `FormData`: sem controle nativo por baixo, o envio ignorava o campo.\n */\n name?: string;\n loading?: boolean;\n onSearch?: (term: string) => void;\n options: readonly ComboBoxOption[];\n size?: ComboBoxSize;\n}\n\nexport interface ComboBoxSingleProps extends ComboBoxBaseProps {\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n selectionMode?: 'single';\n value?: string;\n}\n\nexport interface ComboBoxMultipleProps extends ComboBoxBaseProps {\n defaultValue?: readonly string[];\n onValueChange?: (values: readonly string[]) => void;\n selectionMode: 'multiple';\n value?: readonly string[];\n}\n\nexport type ComboBoxProps = ComboBoxSingleProps | ComboBoxMultipleProps;\n\nfunction comoItens(valor: string | readonly string[] | undefined): ListingItem[] | undefined {\n if (valor === undefined) {\n return undefined;\n }\n\n return (typeof valor === 'string' ? [valor] : valor).map((value) => ({ value, label: '' }));\n}\n\nfunction relatarEscolha(props: ComboBoxProps, escolhidos: readonly ListingItem[]) {\n if (props.selectionMode === 'multiple') {\n props.onValueChange?.(escolhidos.map((item) => item.value));\n return;\n }\n\n const [primeiro] = escolhidos;\n\n if (primeiro) {\n props.onValueChange?.(primeiro.value);\n }\n}\n\nexport function ComboBox(allProps: ComboBoxProps) {\n const {\n 'aria-describedby': ariaDescribedBy,\n className,\n defaultValue,\n name,\n disabled = false,\n emptyMessage = 'Nenhum resultado',\n error,\n hint,\n id: providedId,\n label,\n loading = false,\n onBlur,\n onClick,\n onKeyDown,\n onSearch,\n // Fora do resto, que vai ao campo: quem o chama e `relatarEscolha`, que conhece o modo.\n onValueChange,\n options,\n placeholder,\n ref,\n required = false,\n selectionMode = 'single',\n size = 'md',\n value,\n ...props\n } = allProps;\n const multiple = selectionMode === 'multiple';\n const inputRef = useRef<HTMLInputElement>(null);\n const controlRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const baseId = `combobox-${useId()}`;\n const [open, setOpen] = useState(false);\n const [filtering, setFiltering] = useState(false);\n const resetRef = useFormReset<HTMLInputElement>(() => {\n listing.reset();\n fechar();\n });\n const mergedRef = useMergedRefs(inputRef, resetRef, ref);\n\n // O valor e a chave, e nao a opcao: com opcoes que chegam depois, filtrar por elas perdia a escolha.\n const listing = useListing({\n items: options,\n selectionMode,\n defaultValue: comoItens(defaultValue),\n value: comoItens(value),\n onSearch,\n onSelectionChange: (escolhidos) => relatarEscolha(allProps, escolhidos),\n });\n\n const escolhidos = listing.selected;\n const [chosen] = escolhidos;\n // Na escolha multipla o campo so guarda a busca: quem mostra o que esta escolhido sao as etiquetas.\n const texto = multiple || filtering ? listing.term : chosen?.label ?? '';\n const ancoraRef = multiple ? controlRef : inputRef;\n const activeIndex = listing.visible.findIndex((option) => option.value === listing.focusedKey);\n\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: ancoraRef,\n overlayRef: panelRef,\n placement: 'bottom start',\n offset: 6,\n containerPadding: 8,\n isOpen: open,\n });\n const [largura, setLargura] = useState<number>();\n const alturaMaxima = Math.min(Number(positionProps.style?.maxHeight) || 280, 280);\n\n useLayoutEffect(() => {\n setLargura(ancoraRef.current?.offsetWidth);\n }, [ancoraRef, open]);\n\n // Sem medida, como no servidor, o campo resume as escolhas; medido, mostra todas as etiquetas enquanto couberem.\n const [resumir, setResumir] = useState(true);\n const selecaoRef = useRef<HTMLSpanElement>(null);\n const chaveDasEscolhas = escolhidos.map((item) => item.value).join('\\n');\n\n useLayoutEffect(() => {\n const moldura = controlRef.current;\n\n if (!moldura || typeof ResizeObserver === 'undefined') {\n return;\n }\n\n // Desenhar todas e medir na mesma passada, antes da pintura, para o campo nao piscar ao redimensionar.\n const observador = new ResizeObserver(() => {\n flushSync(() => setResumir(false));\n const selecao = selecaoRef.current;\n flushSync(() => setResumir(Boolean(selecao && selecao.scrollWidth > selecao.clientWidth)));\n });\n\n observador.observe(moldura);\n\n return () => observador.disconnect();\n }, [chaveDasEscolhas, multiple]);\n\n function encerrarFiltro() {\n setFiltering(false);\n listing.filter('');\n }\n\n function fechar() {\n setOpen(false);\n encerrarFiltro();\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLInputElement>) {\n onKeyDown?.(event);\n\n if (event.key === 'ArrowDown' && !open) {\n event.preventDefault();\n setOpen(true);\n listing.focusFirst();\n return;\n }\n\n if (event.key === 'Escape') {\n fechar();\n return;\n }\n\n if (event.key === 'Enter') {\n const alvo = listing.visible.find((option) => option.value === listing.focusedKey);\n\n if (open && alvo && !alvo.disabled) {\n event.preventDefault();\n listing.select(alvo);\n\n if (!multiple) {\n fechar();\n }\n }\n return;\n }\n\n const ultimo = escolhidos[escolhidos.length - 1];\n\n if (event.key === 'Backspace' && multiple && texto === '' && ultimo) {\n listing.select(ultimo);\n return;\n }\n\n listing.handleKeyDown(event);\n }\n\n return (\n <Field aria-describedby={ariaDescribedBy} error={error} hint={hint} id={providedId} label={label} required={required}>\n {({ id, describedBy, invalid }) => {\n const resumoId = id + '-selection';\n const campo = (\n <input\n {...props}\n ref={mergedRef}\n className={[multiple ? styles.search : styles.input, !multiple && styles[size], !multiple && error && styles.error, className]\n .filter(Boolean)\n .join(' ')}\n id={id}\n type=\"text\"\n role=\"combobox\"\n autoComplete=\"off\"\n aria-describedby={[describedBy, multiple && escolhidos.length > 0 && resumoId].filter(Boolean).join(' ') || undefined}\n aria-invalid={invalid || undefined}\n aria-expanded={open}\n aria-autocomplete=\"list\"\n aria-controls={open ? baseId + '-options' : undefined}\n aria-activedescendant={open && activeIndex >= 0 ? optionId(baseId, activeIndex) : undefined}\n aria-required={required || undefined}\n disabled={disabled}\n placeholder={placeholder}\n value={texto}\n // Sair do campo desfaz a busca: o texto volta a dizer o que esta escolhido.\n onBlur={(event: FocusEvent<HTMLInputElement>) => {\n fechar();\n onBlur?.(event);\n }}\n onChange={(event) => {\n setFiltering(true);\n setOpen(true);\n listing.filter(event.target.value);\n }}\n onClick={(event: MouseEvent<HTMLInputElement>) => {\n setOpen(true);\n onClick?.(event);\n }}\n onKeyDown={handleKeyDown}\n />\n );\n\n return (\n <>\n {(escolhidos.length > 0 ? escolhidos : [undefined]).map((item) => (\n <FormValue\n disabled={disabled}\n key={item?.value ?? ''}\n name={name}\n onFocus={() => inputRef.current?.focus()}\n required={required}\n value={item?.value ?? ''}\n />\n ))}\n {multiple ? (\n <div\n className={[styles.control, styles[size], error && styles.error].filter(Boolean).join(' ')}\n // O clique na moldura, fora do campo, leva o foco a ele em vez de tira-lo.\n onMouseDown={(event) => {\n if (event.target !== inputRef.current) {\n event.preventDefault();\n inputRef.current?.focus();\n }\n }}\n ref={controlRef}\n >\n {chosen && (\n <>\n <span aria-hidden=\"true\" className={styles.selection} ref={selecaoRef}>\n {(resumir ? [chosen] : escolhidos).map((item) => (\n <Badge key={item.value}>{item.label}</Badge>\n ))}\n {resumir && escolhidos.length > 1 && (\n <span className={styles.rest}>+{escolhidos.length - 1}</span>\n )}\n </span>\n <span className={styles.summary} id={resumoId}>\n {escolhidos.length === 1 ? '1 selecionado' : `${escolhidos.length} selecionados`}:{' '}\n {escolhidos.map((item) => item.label).join(', ')}\n </span>\n </>\n )}\n {campo}\n </div>\n ) : (\n campo\n )}\n {open &&\n createPortal(\n <div\n ref={panelRef}\n className={styles.panel}\n // Camada de cima: o `ariaHideOutside` do Dialog ignora quem a declara.\n data-react-aria-top-layer=\"true\"\n // O clique no painel, fora de uma opcao, nao tira o foco do campo nem fecha a lista.\n onMouseDown={(event) => event.preventDefault()}\n style={{ ...positionProps.style, width: largura, maxHeight: alturaMaxima }}\n >\n <ListingOptions\n baseId={baseId}\n empty={<p className={styles.empty}>{emptyMessage}</p>}\n holdsFocus={false}\n label={label ?? placeholder ?? 'Opções'}\n listing={listing}\n loading={loading}\n onSelect={multiple ? undefined : fechar}\n />\n </div>,\n document.body,\n )}\n </>\n );\n }}\n </Field>\n );\n}\n"],"names":["comoItens","valor","value","relatarEscolha","props","escolhidos","_a","item","primeiro","_b","ComboBox","allProps","ariaDescribedBy","className","defaultValue","name","disabled","emptyMessage","error","hint","providedId","label","loading","onBlur","onClick","onKeyDown","onSearch","onValueChange","options","placeholder","ref","required","selectionMode","size","multiple","inputRef","useRef","controlRef","panelRef","baseId","useId","open","setOpen","useState","filtering","setFiltering","resetRef","useFormReset","listing","fechar","mergedRef","useMergedRefs","useListing","chosen","texto","ancoraRef","activeIndex","option","positionProps","useOverlayPosition","largura","setLargura","alturaMaxima","useLayoutEffect","resumir","setResumir","selecaoRef","chaveDasEscolhas","moldura","observador","flushSync","selecao","encerrarFiltro","handleKeyDown","event","alvo","ultimo","jsx","Field","id","describedBy","invalid","resumoId","campo","styles","optionId","jsxs","Fragment","FormValue","Badge","createPortal","ListingOptions"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_input_at14z_1",e="_error_at14z_17",s="_sm_at14z_47",_="_md_at14z_53",o="_control_at14z_58 _input_at14z_1",r="_search_at14z_76",n="_selection_at14z_95",a="_rest_at14z_105",c="_summary_at14z_111",m="_panel_at14z_120",l="_empty_at14z_132",u={input:t,error:e,sm:s,md:_,control:o,search:r,selection:n,rest:a,summary:c,panel:m,empty:l};exports.control=o;exports.default=u;exports.empty=l;exports.error=e;exports.input=t;exports.md=_;exports.panel=m;exports.rest=a;exports.search=r;exports.selection=n;exports.sm=s;exports.summary=c;
|
|
2
|
+
//# sourceMappingURL=ComboBox.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboBox.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const t = "_input_at14z_1", _ = "_error_at14z_17", s = "_sm_at14z_47", n = "_md_at14z_53", o = "_control_at14z_58 _input_at14z_1", e = "_search_at14z_76", a = "_selection_at14z_95", r = "_rest_at14z_105", c = "_summary_at14z_111", m = "_panel_at14z_120", z = "_empty_at14z_132", l = {
|
|
2
|
+
input: t,
|
|
3
|
+
error: _,
|
|
4
|
+
sm: s,
|
|
5
|
+
md: n,
|
|
6
|
+
control: o,
|
|
7
|
+
search: e,
|
|
8
|
+
selection: a,
|
|
9
|
+
rest: r,
|
|
10
|
+
summary: c,
|
|
11
|
+
panel: m,
|
|
12
|
+
empty: z
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
o as control,
|
|
16
|
+
l as default,
|
|
17
|
+
z as empty,
|
|
18
|
+
_ as error,
|
|
19
|
+
t as input,
|
|
20
|
+
n as md,
|
|
21
|
+
m as panel,
|
|
22
|
+
r as rest,
|
|
23
|
+
e as search,
|
|
24
|
+
a as selection,
|
|
25
|
+
s as sm,
|
|
26
|
+
c as summary
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=ComboBox.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboBox.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),s=require("react"),w=require("@internationalized/date"),n=require("./DatePicker.module.css.cjs"),T=require("../../../hooks/useCalendar/useCalendar.cjs"),h=require("../../icons/icons.cjs");function C({autoFocus:g=!1,locale:r="pt-BR",onSelect:b,value:j,...x}){const a=T.useCalendar({...x,locale:r,onSelect:b,value:j}),c=w.getLocalTimeZone(),y=s.useMemo(()=>new Intl.DateTimeFormat(r,{month:"long",year:"numeric"}),[r]),D=s.useMemo(()=>new Intl.DateTimeFormat(r,{dateStyle:"long"}),[r]),p=s.useMemo(()=>{const e=new Intl.DateTimeFormat(r,{weekday:"short"}),o=new Intl.DateTimeFormat(r,{weekday:"long"});return a.weeks[0].map(i=>{const l=i.date.toDate(c);return{curto:e.format(l).replace(".",""),longo:o.format(l)}})},[a.weeks,c,r]),m=y.format(a.visibleMonth.toDate(c)),d=s.useRef(null),u=s.useRef(!1),f=a.focusedDate.toString();s.useEffect(()=>{var e;g&&((e=d.current)==null||e.focus())},[]),s.useEffect(()=>{var e;u.current&&((e=d.current)==null||e.focus())},[f]);function v(e){e.relatedTarget&&!e.currentTarget.contains(e.relatedTarget)&&(u.current=!1)}return t.jsxs("div",{className:n.default.calendar,children:[t.jsxs("div",{className:n.default.calendarHeader,children:[t.jsx("button",{"aria-label":"Mês anterior",className:n.default.navigate,onClick:()=>a.goToMonth(-1),type:"button",children:t.jsx(h.IconChevronLeft,{size:14})}),t.jsx("span",{"aria-live":"polite",className:n.default.month,children:m}),t.jsx("button",{"aria-label":"Próximo mês",className:n.default.navigate,onClick:()=>a.goToMonth(1),type:"button",children:t.jsx(h.IconChevronRight,{size:14})})]}),t.jsxs("table",{"aria-label":m,className:n.default.grid,onBlur:v,onFocus:()=>u.current=!0,onKeyDown:a.handleKeyDown,role:"grid",children:[t.jsx("thead",{children:t.jsx("tr",{children:p.map(e=>t.jsx("th",{abbr:e.longo,className:n.default.weekday,scope:"col",children:e.curto},e.longo))})}),t.jsx("tbody",{children:a.weeks.map(e=>t.jsx("tr",{children:e.map(o=>{const i=a.isSelected(o.date),l=o.date.toString()===f;return t.jsx("td",{className:n.default.dayCell,children:t.jsx("button",{"aria-current":a.isToday(o.date)?"date":void 0,"aria-disabled":o.unavailable||void 0,"aria-label":D.format(o.date.toDate(c)),"aria-pressed":i,className:[n.default.day,o.outside&&n.default.outside,i&&n.default.selectedDay].filter(Boolean).join(" "),onClick:()=>a.select(o.date),ref:l?d:void 0,tabIndex:l?0:-1,type:"button",children:o.date.day})},o.date.toString())})},e[0].date.toString()))})]})]})}exports.Calendar=C;
|
|
2
|
+
//# sourceMappingURL=Calendar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calendar.cjs","sources":["../../../../src/components/forms/DatePicker/Calendar.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, type FocusEvent } from 'react';\nimport { getLocalTimeZone, type CalendarDate } from '@internationalized/date';\nimport { useCalendar, type CalendarLimits } from '../../../hooks/useCalendar';\nimport styles from './DatePicker.module.css';\nimport { IconChevronLeft, IconChevronRight } from '../../icons';\n\nexport interface CalendarProps extends CalendarLimits {\n autoFocus?: boolean;\n locale?: string;\n onSelect: (date: CalendarDate) => void;\n value?: CalendarDate;\n}\n\nexport function Calendar({ autoFocus = false, locale = 'pt-BR', onSelect, value, ...limits }: CalendarProps) {\n const calendario = useCalendar({ ...limits, locale, onSelect, value });\n const fuso = getLocalTimeZone();\n const nomeDoMes = useMemo(() => new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' }), [locale]);\n const nomeDoDia = useMemo(() => new Intl.DateTimeFormat(locale, { dateStyle: 'long' }), [locale]);\n const diasDaSemana = useMemo(() => {\n const curto = new Intl.DateTimeFormat(locale, { weekday: 'short' });\n const longo = new Intl.DateTimeFormat(locale, { weekday: 'long' });\n\n return calendario.weeks[0].map((dia) => {\n const data = dia.date.toDate(fuso);\n return { curto: curto.format(data).replace('.', ''), longo: longo.format(data) };\n });\n }, [calendario.weeks, fuso, locale]);\n\n const titulo = nomeDoMes.format(calendario.visibleMonth.toDate(fuso));\n const diaEmFoco = useRef<HTMLButtonElement>(null);\n const gradeComFoco = useRef(false);\n const chaveEmFoco = calendario.focusedDate.toString();\n\n useEffect(() => {\n if (autoFocus) {\n diaEmFoco.current?.focus();\n }\n }, []);\n\n // O foco do teclado anda com o dia, mas so se ja estava na grade: o clique no mes seguinte nao o puxa para ca.\n useEffect(() => {\n if (gradeComFoco.current) {\n diaEmFoco.current?.focus();\n }\n }, [chaveEmFoco]);\n\n // Sem destino, o foco saiu com o dia que deixou a grade na troca de mes, e nao da grade.\n function handleBlur(event: FocusEvent<HTMLTableElement>) {\n if (event.relatedTarget && !event.currentTarget.contains(event.relatedTarget)) {\n gradeComFoco.current = false;\n }\n }\n\n return (\n <div className={styles.calendar}>\n <div className={styles.calendarHeader}>\n <button\n aria-label=\"Mês anterior\"\n className={styles.navigate}\n onClick={() => calendario.goToMonth(-1)}\n type=\"button\"\n >\n <IconChevronLeft size={14} />\n </button>\n <span aria-live=\"polite\" className={styles.month}>\n {titulo}\n </span>\n <button\n aria-label=\"Próximo mês\"\n className={styles.navigate}\n onClick={() => calendario.goToMonth(1)}\n type=\"button\"\n >\n <IconChevronRight size={14} />\n </button>\n </div>\n <table\n aria-label={titulo}\n className={styles.grid}\n onBlur={handleBlur}\n onFocus={() => (gradeComFoco.current = true)}\n onKeyDown={calendario.handleKeyDown}\n role=\"grid\"\n >\n <thead>\n <tr>\n {diasDaSemana.map((dia) => (\n <th abbr={dia.longo} className={styles.weekday} key={dia.longo} scope=\"col\">\n {dia.curto}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {calendario.weeks.map((semana) => (\n <tr key={semana[0].date.toString()}>\n {semana.map((dia) => {\n const selecionado = calendario.isSelected(dia.date);\n const focado = dia.date.toString() === chaveEmFoco;\n\n return (\n <td className={styles.dayCell} key={dia.date.toString()}>\n {/* Dia indisponivel continua focavel, como o teclado o alcanca; quem recusa a escolha e o motor. */}\n <button\n aria-current={calendario.isToday(dia.date) ? 'date' : undefined}\n aria-disabled={dia.unavailable || undefined}\n aria-label={nomeDoDia.format(dia.date.toDate(fuso))}\n aria-pressed={selecionado}\n className={[styles.day, dia.outside && styles.outside, selecionado && styles.selectedDay]\n .filter(Boolean)\n .join(' ')}\n onClick={() => calendario.select(dia.date)}\n ref={focado ? diaEmFoco : undefined}\n tabIndex={focado ? 0 : -1}\n type=\"button\"\n >\n {dia.date.day}\n </button>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n"],"names":["Calendar","autoFocus","locale","onSelect","value","limits","calendario","useCalendar","fuso","getLocalTimeZone","nomeDoMes","useMemo","nomeDoDia","diasDaSemana","curto","longo","dia","data","titulo","diaEmFoco","useRef","gradeComFoco","chaveEmFoco","useEffect","_a","handleBlur","event","jsxs","styles","jsx","IconChevronLeft","IconChevronRight","semana","selecionado","focado"],"mappings":"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"}
|