@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,86 @@
|
|
|
1
|
+
import { jsxs as m, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as u, useRef as g, useEffect as p } from "react";
|
|
3
|
+
import { getLocalTimeZone as N } from "@internationalized/date";
|
|
4
|
+
import n from "./DatePicker.module.css.js";
|
|
5
|
+
import { useCalendar as F } from "../../../hooks/useCalendar/useCalendar.js";
|
|
6
|
+
import { IconChevronLeft as I, IconChevronRight as S } from "../../icons/icons.js";
|
|
7
|
+
function z({ autoFocus: b = !1, locale: r = "pt-BR", onSelect: y, value: D, ...w }) {
|
|
8
|
+
const o = F({ ...w, locale: r, onSelect: y, value: D }), c = N(), v = u(() => new Intl.DateTimeFormat(r, { month: "long", year: "numeric" }), [r]), T = u(() => new Intl.DateTimeFormat(r, { dateStyle: "long" }), [r]), k = u(() => {
|
|
9
|
+
const e = new Intl.DateTimeFormat(r, { weekday: "short" }), a = new Intl.DateTimeFormat(r, { weekday: "long" });
|
|
10
|
+
return o.weeks[0].map((i) => {
|
|
11
|
+
const s = i.date.toDate(c);
|
|
12
|
+
return { curto: e.format(s).replace(".", ""), longo: a.format(s) };
|
|
13
|
+
});
|
|
14
|
+
}, [o.weeks, c, r]), f = v.format(o.visibleMonth.toDate(c)), l = g(null), d = g(!1), h = o.focusedDate.toString();
|
|
15
|
+
p(() => {
|
|
16
|
+
var e;
|
|
17
|
+
b && ((e = l.current) == null || e.focus());
|
|
18
|
+
}, []), p(() => {
|
|
19
|
+
var e;
|
|
20
|
+
d.current && ((e = l.current) == null || e.focus());
|
|
21
|
+
}, [h]);
|
|
22
|
+
function C(e) {
|
|
23
|
+
e.relatedTarget && !e.currentTarget.contains(e.relatedTarget) && (d.current = !1);
|
|
24
|
+
}
|
|
25
|
+
return /* @__PURE__ */ m("div", { className: n.calendar, children: [
|
|
26
|
+
/* @__PURE__ */ m("div", { className: n.calendarHeader, children: [
|
|
27
|
+
/* @__PURE__ */ t(
|
|
28
|
+
"button",
|
|
29
|
+
{
|
|
30
|
+
"aria-label": "Mês anterior",
|
|
31
|
+
className: n.navigate,
|
|
32
|
+
onClick: () => o.goToMonth(-1),
|
|
33
|
+
type: "button",
|
|
34
|
+
children: /* @__PURE__ */ t(I, { size: 14 })
|
|
35
|
+
}
|
|
36
|
+
),
|
|
37
|
+
/* @__PURE__ */ t("span", { "aria-live": "polite", className: n.month, children: f }),
|
|
38
|
+
/* @__PURE__ */ t(
|
|
39
|
+
"button",
|
|
40
|
+
{
|
|
41
|
+
"aria-label": "Próximo mês",
|
|
42
|
+
className: n.navigate,
|
|
43
|
+
onClick: () => o.goToMonth(1),
|
|
44
|
+
type: "button",
|
|
45
|
+
children: /* @__PURE__ */ t(S, { size: 14 })
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
] }),
|
|
49
|
+
/* @__PURE__ */ m(
|
|
50
|
+
"table",
|
|
51
|
+
{
|
|
52
|
+
"aria-label": f,
|
|
53
|
+
className: n.grid,
|
|
54
|
+
onBlur: C,
|
|
55
|
+
onFocus: () => d.current = !0,
|
|
56
|
+
onKeyDown: o.handleKeyDown,
|
|
57
|
+
role: "grid",
|
|
58
|
+
children: [
|
|
59
|
+
/* @__PURE__ */ t("thead", { children: /* @__PURE__ */ t("tr", { children: k.map((e) => /* @__PURE__ */ t("th", { abbr: e.longo, className: n.weekday, scope: "col", children: e.curto }, e.longo)) }) }),
|
|
60
|
+
/* @__PURE__ */ t("tbody", { children: o.weeks.map((e) => /* @__PURE__ */ t("tr", { children: e.map((a) => {
|
|
61
|
+
const i = o.isSelected(a.date), s = a.date.toString() === h;
|
|
62
|
+
return /* @__PURE__ */ t("td", { className: n.dayCell, children: /* @__PURE__ */ t(
|
|
63
|
+
"button",
|
|
64
|
+
{
|
|
65
|
+
"aria-current": o.isToday(a.date) ? "date" : void 0,
|
|
66
|
+
"aria-disabled": a.unavailable || void 0,
|
|
67
|
+
"aria-label": T.format(a.date.toDate(c)),
|
|
68
|
+
"aria-pressed": i,
|
|
69
|
+
className: [n.day, a.outside && n.outside, i && n.selectedDay].filter(Boolean).join(" "),
|
|
70
|
+
onClick: () => o.select(a.date),
|
|
71
|
+
ref: s ? l : void 0,
|
|
72
|
+
tabIndex: s ? 0 : -1,
|
|
73
|
+
type: "button",
|
|
74
|
+
children: a.date.day
|
|
75
|
+
}
|
|
76
|
+
) }, a.date.toString());
|
|
77
|
+
}) }, e[0].date.toString())) })
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
] });
|
|
82
|
+
}
|
|
83
|
+
export {
|
|
84
|
+
z as Calendar
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=Calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calendar.js","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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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),s=require("react"),ce=require("react-dom"),M=require("@react-aria/overlays"),A=require("@internationalized/date"),ue=require("../../../hooks/useFormReset.cjs"),de=require("../../../hooks/useMergedRefs.cjs"),fe=require("../../../hooks/useCalendar/calendar.cjs"),me=require("../Field/FormValue.cjs"),pe=require("./Calendar.cjs"),u=require("./iso.cjs"),i=require("./DatePicker.module.css.cjs"),ye=require("../Field/Field.cjs"),ge=require("../../icons/icons.cjs"),S=require("../../actions/Button/Button.cjs"),T=require("../../../utils/formatters/formatarEntradaData.cjs");function ve({"aria-describedby":U,className:w,defaultValue:q,name:H,disabled:p=!1,error:C,hint:L,id:Z,isDateUnavailable:k,label:y,locale:_="pt-BR",max:G,min:J,onValueChange:g,onBlur:v,onKeyDown:D,placeholder:K="dd/mm/aaaa",required:b=!1,size:Q="md",ref:V,value:F,...W}){const j=s.useRef(null),R=s.useRef(null),O=s.useRef(null),[n,x]=s.useState(!1),d={isDateUnavailable:k&&(e=>k(e.toString())),max:u.readIsoDate(G),min:u.readIsoDate(J)},[X,I]=s.useState(()=>u.readIsoDate(q)??null),P=F===void 0?void 0:u.readIsoDate(F)??null,o=(P===void 0?X:P)??void 0,[Y,$]=s.useState(""),[ee,f]=s.useState(!1),E=s.useRef(null),te=ue.useFormReset(()=>{I(u.readIsoDate(q)??null),f(!1)}),ae=de.useMergedRefs(E,te,V),[N,h]=s.useState(o),[se,re]=s.useState(0);s.useEffect(()=>{n&&h(o)},[n]);const ne=ee?Y:o?[String(o.day).padStart(2,"0"),String(o.month).padStart(2,"0"),o.year].join("/"):"";function z(e){I(e),g==null||g((e==null?void 0:e.toString())??null)}function l(e=!0){var r;x(!1),e&&((r=O.current)==null||r.focus())}function oe(e){const r=T.formatarEntradaData(e);f(!0),$(r);const c=T.lerEntradaData(r),a=c&&!fe.isUnavailable(c,d)?c:null;z(a)}function ie(e){D==null||D(e),e.key==="ArrowDown"&&!n?(e.preventDefault(),x(!0)):e.key==="Escape"&&n&&l(!1)}const{overlayProps:m}=M.useOverlay({isOpen:n,onClose:()=>l(!1),isDismissable:!0,shouldCloseOnBlur:!1,shouldCloseOnInteractOutside:e=>{var r;return!((r=j.current)!=null&&r.contains(e))}},R),{overlayProps:le}=M.useOverlayPosition({targetRef:j,overlayRef:R,placement:"bottom start",offset:6,containerPadding:8,isOpen:n});return t.jsx(ye.Field,{"aria-describedby":U,error:C,hint:L,id:Z,label:y,required:b,children:({id:e,describedBy:r,invalid:c})=>t.jsxs(t.Fragment,{children:[t.jsx(me.FormValue,{disabled:p,name:H,onFocus:()=>{var a;return(a=E.current)==null?void 0:a.focus()},required:b,value:(o==null?void 0:o.toString())??""}),t.jsxs("div",{className:[i.default.field,i.default[Q],C&&i.default.error,w].filter(Boolean).join(" "),ref:j,children:[t.jsx("input",{...W,"aria-describedby":r,"aria-invalid":c||void 0,"aria-required":b||void 0,autoComplete:"off",className:i.default.input,disabled:p,id:e,inputMode:"numeric",onBlur:a=>{f(!1),v==null||v(a)},onChange:a=>oe(a.target.value),onKeyDown:ie,placeholder:K,ref:ae,type:"text",value:ne}),t.jsx("button",{"aria-expanded":n,"aria-haspopup":"dialog","aria-label":"Abrir calendário",className:i.default.trigger,disabled:p,onClick:()=>n?l():x(!0),ref:O,type:"button",children:t.jsx(ge.IconCalendar,{size:15})})]}),n&&ce.createPortal(t.jsxs("div",{...m,"aria-label":y?"Calendário de "+y:"Calendário",className:i.default.panel,"data-react-aria-top-layer":"true",onKeyDown:a=>{var B;a.key==="Escape"&&l(),(B=m.onKeyDown)==null||B.call(m,a)},ref:R,role:"dialog",style:le.style,children:[t.jsx(pe.Calendar,{autoFocus:!0,isDateUnavailable:d.isDateUnavailable,locale:_,max:d.max,min:d.min,onSelect:h,value:N},se),t.jsxs("div",{className:i.default.footer,children:[t.jsx(S.Button,{onClick:()=>{h(A.today(A.getLocalTimeZone())),re(a=>a+1)},size:"sm",variant:"ghost",type:"button",children:"Hoje"}),t.jsxs("div",{className:i.default.actions,children:[t.jsx(S.Button,{onClick:()=>l(),size:"sm",variant:"secondary",type:"button",children:"Cancelar"}),t.jsx(S.Button,{onClick:()=>{z(N??null),f(!1),l()},size:"sm",type:"button",children:"Aplicar"})]})]})]}),document.body)]})})}exports.DatePicker=ve;
|
|
2
|
+
//# sourceMappingURL=DatePicker.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.cjs","sources":["../../../../src/components/forms/DatePicker/DatePicker.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ComponentPropsWithRef, type KeyboardEvent } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useOverlay, useOverlayPosition } from '@react-aria/overlays';\nimport { getLocalTimeZone, today, type CalendarDate } from '@internationalized/date';\nimport { useFormReset } from '../../../hooks/useFormReset';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { formatarEntradaData, lerEntradaData } from '../../../utils/formatters';\nimport { Button } from '../../actions/Button';\nimport { isUnavailable, type CalendarLimits } from '../../../hooks/useCalendar/calendar';\nimport { Field } from '../Field';\nimport { FormValue } from '../Field/FormValue';\nimport { Calendar } from './Calendar';\nimport { readIsoDate } from './iso';\nimport styles from './DatePicker.module.css';\nimport { IconCalendar } from '../../icons';\n\nexport type DatePickerSize = 'sm' | 'md';\n\n/**\n * As propriedades nativas vao ao campo de texto, que e o controle; o `className` soma a caixa do campo, que e o que\n * se posiciona e dimensiona.\n */\nexport interface DatePickerProps\n extends Omit<\n ComponentPropsWithRef<'input'>,\n 'defaultValue' | 'max' | 'min' | 'name' | 'onChange' | 'size' | 'type' | 'value'\n > {\n /** Data em ISO, `2026-03-09`, como no `FormData`: a API nao expoe tipo de biblioteca de terceiros. */\n defaultValue?: string;\n disabled?: boolean;\n error?: string;\n hint?: string;\n id?: string;\n isDateUnavailable?: (date: string) => boolean;\n label?: string;\n /**\n * Nome do campo no formulario. Com ele, um input oculto carrega o valor para\n * o `FormData`: sem controle nativo por baixo, o envio ignorava o campo.\n */\n name?: string;\n locale?: string;\n max?: string;\n min?: string;\n /** Sem data inteira e permitida, o valor e `null`, que mantem o campo controlado e vazio. */\n onValueChange?: (value: string | null) => void;\n placeholder?: string;\n required?: boolean;\n size?: DatePickerSize;\n /**\n * `null` e \"controlado e vazio\": devolver a propriedade a `undefined` nao\n * limpa o campo, porque ali ele volta a ser nao controlado.\n */\n value?: string | null;\n}\n\nexport function DatePicker({\n 'aria-describedby': ariaDescribedBy,\n className,\n defaultValue,\n name,\n disabled = false,\n error,\n hint,\n id: providedId,\n isDateUnavailable,\n label,\n locale = 'pt-BR',\n max,\n min,\n onValueChange,\n onBlur,\n onKeyDown,\n placeholder = 'dd/mm/aaaa',\n required = false,\n size = 'md',\n ref,\n value,\n ...props\n}: DatePickerProps) {\n const fieldRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n const limites: CalendarLimits = {\n isDateUnavailable: isDateUnavailable && ((data) => isDateUnavailable(data.toString())),\n max: readIsoDate(max),\n min: readIsoDate(min),\n };\n const [internalValue, setInternalValue] = useState<CalendarDate | null>(() => readIsoDate(defaultValue) ?? null);\n const controlado = value === undefined ? undefined : (readIsoDate(value) ?? null);\n const escolhido = (controlado === undefined ? internalValue : controlado) ?? undefined;\n const [texto, setTexto] = useState('');\n const [digitando, setDigitando] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n const resetRef = useFormReset<HTMLInputElement>(() => {\n setInternalValue(readIsoDate(defaultValue) ?? null);\n setDigitando(false);\n });\n const mergedRef = useMergedRefs(inputRef, resetRef, ref);\n const [rascunho, setRascunho] = useState(escolhido);\n const [versaoDoCalendario, setVersaoDoCalendario] = useState(0);\n\n useEffect(() => {\n if (open) {\n setRascunho(escolhido);\n }\n }, [open]);\n\n const exibido = digitando\n ? texto\n : escolhido\n ? [String(escolhido.day).padStart(2, '0'), String(escolhido.month).padStart(2, '0'), escolhido.year].join('/')\n : '';\n\n // O interno acompanha mesmo controlado: se o consumidor devolver `undefined`, nao ressurge um valor velho.\n function definir(proximo: CalendarDate | null) {\n setInternalValue(proximo);\n onValueChange?.(proximo?.toString() ?? null);\n }\n\n function fechar(devolverFoco = true) {\n setOpen(false);\n\n if (devolverFoco) {\n triggerRef.current?.focus();\n }\n }\n\n function handleChange(entrada: string) {\n const mascarado = formatarEntradaData(entrada);\n\n setDigitando(true);\n setTexto(mascarado);\n\n // Data fora dos limites nao se grava: o calendario ja a recusa, e o campo\n // digitado nao pode ser a porta dos fundos dela.\n const lido = lerEntradaData(mascarado);\n const permitido = lido && !isUnavailable(lido, limites) ? lido : null;\n\n definir(permitido);\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLInputElement>) {\n onKeyDown?.(event);\n\n if (event.key === 'ArrowDown' && !open) {\n event.preventDefault();\n setOpen(true);\n } else if (event.key === 'Escape' && open) {\n fechar(false);\n }\n }\n\n const { overlayProps } = useOverlay(\n {\n isOpen: open,\n onClose: () => fechar(false),\n isDismissable: true,\n shouldCloseOnBlur: false,\n // O gatilho nao conta como \"fora\": sem isto o ponteiro fecha o painel e o\n // clique dele reabre em seguida, e ele pisca sem abrir.\n shouldCloseOnInteractOutside: (elemento) => !fieldRef.current?.contains(elemento),\n },\n panelRef,\n );\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: fieldRef,\n overlayRef: panelRef,\n placement: 'bottom start',\n offset: 6,\n containerPadding: 8,\n isOpen: open,\n });\n\n return (\n <Field aria-describedby={ariaDescribedBy} error={error} hint={hint} id={providedId} label={label} required={required}>\n {({ id, describedBy, invalid }) => (\n <>\n <FormValue\n disabled={disabled}\n name={name}\n onFocus={() => inputRef.current?.focus()}\n required={required}\n value={escolhido?.toString() ?? ''}\n />\n <div\n className={[styles.field, styles[size], error && styles.error, className].filter(Boolean).join(' ')}\n ref={fieldRef}\n >\n <input\n {...props}\n aria-describedby={describedBy}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n autoComplete=\"off\"\n className={styles.input}\n disabled={disabled}\n id={id}\n inputMode=\"numeric\"\n onBlur={(event) => {\n setDigitando(false);\n onBlur?.(event);\n }}\n onChange={(event) => handleChange(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={mergedRef}\n type=\"text\"\n value={exibido}\n />\n <button\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-label=\"Abrir calendário\"\n className={styles.trigger}\n disabled={disabled}\n onClick={() => (open ? fechar() : setOpen(true))}\n ref={triggerRef}\n type=\"button\"\n >\n <IconCalendar size={15} />\n </button>\n </div>\n {open &&\n createPortal(\n <div\n {...overlayProps}\n aria-label={label ? 'Calendário de ' + label : 'Calendário'}\n className={styles.panel}\n // Camada de cima: o `ariaHideOutside` do Dialog ignora quem a declara.\n data-react-aria-top-layer=\"true\"\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n fechar();\n }\n overlayProps.onKeyDown?.(event);\n }}\n ref={panelRef}\n role=\"dialog\"\n style={positionProps.style}\n >\n <Calendar\n autoFocus\n key={versaoDoCalendario}\n isDateUnavailable={limites.isDateUnavailable}\n locale={locale}\n max={limites.max}\n min={limites.min}\n onSelect={setRascunho}\n value={rascunho}\n />\n <div className={styles.footer}>\n <Button\n onClick={() => {\n // Remontada, a grade volta ao mes de hoje mesmo que o rascunho ja fosse hoje.\n setRascunho(today(getLocalTimeZone()));\n setVersaoDoCalendario((versao) => versao + 1);\n }}\n size=\"sm\"\n variant=\"ghost\"\n type=\"button\"\n >\n Hoje\n </Button>\n <div className={styles.actions}>\n <Button onClick={() => fechar()} size=\"sm\" variant=\"secondary\" type=\"button\">\n Cancelar\n </Button>\n <Button\n onClick={() => {\n definir(rascunho ?? null);\n setDigitando(false);\n fechar();\n }}\n size=\"sm\"\n type=\"button\"\n >\n Aplicar\n </Button>\n </div>\n </div>\n </div>,\n document.body,\n )}\n </>\n )}\n </Field>\n );\n}\n"],"names":["DatePicker","ariaDescribedBy","className","defaultValue","name","disabled","error","hint","providedId","isDateUnavailable","label","locale","max","min","onValueChange","onBlur","onKeyDown","placeholder","required","size","ref","value","props","fieldRef","useRef","panelRef","triggerRef","open","setOpen","useState","limites","data","readIsoDate","internalValue","setInternalValue","controlado","escolhido","texto","setTexto","digitando","setDigitando","inputRef","resetRef","useFormReset","mergedRef","useMergedRefs","rascunho","setRascunho","versaoDoCalendario","setVersaoDoCalendario","useEffect","exibido","definir","proximo","fechar","devolverFoco","_a","handleChange","entrada","mascarado","formatarEntradaData","lido","lerEntradaData","permitido","isUnavailable","handleKeyDown","event","overlayProps","useOverlay","elemento","positionProps","useOverlayPosition","Field","id","describedBy","invalid","jsxs","Fragment","jsx","FormValue","styles","IconCalendar","createPortal","Calendar","Button","today","getLocalTimeZone","versao"],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { jsx as i, jsxs as d, Fragment as le } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as y, useState as l, useEffect as ce } from "react";
|
|
3
|
+
import { createPortal as de } from "react-dom";
|
|
4
|
+
import { useOverlay as fe, useOverlayPosition as me } from "@react-aria/overlays";
|
|
5
|
+
import { today as ue, getLocalTimeZone as pe } from "@internationalized/date";
|
|
6
|
+
import { useFormReset as ye } from "../../../hooks/useFormReset.js";
|
|
7
|
+
import { useMergedRefs as ve } from "../../../hooks/useMergedRefs.js";
|
|
8
|
+
import { isUnavailable as ge } from "../../../hooks/useCalendar/calendar.js";
|
|
9
|
+
import { FormValue as be } from "../Field/FormValue.js";
|
|
10
|
+
import { Calendar as he } from "./Calendar.js";
|
|
11
|
+
import { readIsoDate as f } from "./iso.js";
|
|
12
|
+
import n from "./DatePicker.module.css.js";
|
|
13
|
+
import { Field as Ce } from "../Field/Field.js";
|
|
14
|
+
import { IconCalendar as Re } from "../../icons/icons.js";
|
|
15
|
+
import { Button as x } from "../../actions/Button/Button.js";
|
|
16
|
+
import { formatarEntradaData as De, lerEntradaData as Se } from "../../../utils/formatters/formatarEntradaData.js";
|
|
17
|
+
function He({
|
|
18
|
+
"aria-describedby": T,
|
|
19
|
+
className: B,
|
|
20
|
+
defaultValue: F,
|
|
21
|
+
name: H,
|
|
22
|
+
disabled: v = !1,
|
|
23
|
+
error: N,
|
|
24
|
+
hint: L,
|
|
25
|
+
id: Z,
|
|
26
|
+
isDateUnavailable: j,
|
|
27
|
+
label: g,
|
|
28
|
+
locale: G = "pt-BR",
|
|
29
|
+
max: J,
|
|
30
|
+
min: K,
|
|
31
|
+
onValueChange: b,
|
|
32
|
+
onBlur: h,
|
|
33
|
+
onKeyDown: C,
|
|
34
|
+
placeholder: Q = "dd/mm/aaaa",
|
|
35
|
+
required: R = !1,
|
|
36
|
+
size: W = "md",
|
|
37
|
+
ref: X,
|
|
38
|
+
value: E,
|
|
39
|
+
...Y
|
|
40
|
+
}) {
|
|
41
|
+
const D = y(null), S = y(null), P = y(null), [o, k] = l(!1), m = {
|
|
42
|
+
isDateUnavailable: j && ((e) => j(e.toString())),
|
|
43
|
+
max: f(J),
|
|
44
|
+
min: f(K)
|
|
45
|
+
}, [_, z] = l(() => f(F) ?? null), I = E === void 0 ? void 0 : f(E) ?? null, r = (I === void 0 ? _ : I) ?? void 0, [$, q] = l(""), [V, u] = l(!1), A = y(null), ee = ye(() => {
|
|
46
|
+
z(f(F) ?? null), u(!1);
|
|
47
|
+
}), te = ve(A, ee, X), [U, O] = l(r), [ae, oe] = l(0);
|
|
48
|
+
ce(() => {
|
|
49
|
+
o && O(r);
|
|
50
|
+
}, [o]);
|
|
51
|
+
const re = V ? $ : r ? [String(r.day).padStart(2, "0"), String(r.month).padStart(2, "0"), r.year].join("/") : "";
|
|
52
|
+
function w(e) {
|
|
53
|
+
z(e), b == null || b((e == null ? void 0 : e.toString()) ?? null);
|
|
54
|
+
}
|
|
55
|
+
function s(e = !0) {
|
|
56
|
+
var a;
|
|
57
|
+
k(!1), e && ((a = P.current) == null || a.focus());
|
|
58
|
+
}
|
|
59
|
+
function ie(e) {
|
|
60
|
+
const a = De(e);
|
|
61
|
+
u(!0), q(a);
|
|
62
|
+
const c = Se(a), t = c && !ge(c, m) ? c : null;
|
|
63
|
+
w(t);
|
|
64
|
+
}
|
|
65
|
+
function ne(e) {
|
|
66
|
+
C == null || C(e), e.key === "ArrowDown" && !o ? (e.preventDefault(), k(!0)) : e.key === "Escape" && o && s(!1);
|
|
67
|
+
}
|
|
68
|
+
const { overlayProps: p } = fe(
|
|
69
|
+
{
|
|
70
|
+
isOpen: o,
|
|
71
|
+
onClose: () => s(!1),
|
|
72
|
+
isDismissable: !0,
|
|
73
|
+
shouldCloseOnBlur: !1,
|
|
74
|
+
// O gatilho nao conta como "fora": sem isto o ponteiro fecha o painel e o
|
|
75
|
+
// clique dele reabre em seguida, e ele pisca sem abrir.
|
|
76
|
+
shouldCloseOnInteractOutside: (e) => {
|
|
77
|
+
var a;
|
|
78
|
+
return !((a = D.current) != null && a.contains(e));
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
S
|
|
82
|
+
), { overlayProps: se } = me({
|
|
83
|
+
targetRef: D,
|
|
84
|
+
overlayRef: S,
|
|
85
|
+
placement: "bottom start",
|
|
86
|
+
offset: 6,
|
|
87
|
+
containerPadding: 8,
|
|
88
|
+
isOpen: o
|
|
89
|
+
});
|
|
90
|
+
return /* @__PURE__ */ i(Ce, { "aria-describedby": T, error: N, hint: L, id: Z, label: g, required: R, children: ({ id: e, describedBy: a, invalid: c }) => /* @__PURE__ */ d(le, { children: [
|
|
91
|
+
/* @__PURE__ */ i(
|
|
92
|
+
be,
|
|
93
|
+
{
|
|
94
|
+
disabled: v,
|
|
95
|
+
name: H,
|
|
96
|
+
onFocus: () => {
|
|
97
|
+
var t;
|
|
98
|
+
return (t = A.current) == null ? void 0 : t.focus();
|
|
99
|
+
},
|
|
100
|
+
required: R,
|
|
101
|
+
value: (r == null ? void 0 : r.toString()) ?? ""
|
|
102
|
+
}
|
|
103
|
+
),
|
|
104
|
+
/* @__PURE__ */ d(
|
|
105
|
+
"div",
|
|
106
|
+
{
|
|
107
|
+
className: [n.field, n[W], N && n.error, B].filter(Boolean).join(" "),
|
|
108
|
+
ref: D,
|
|
109
|
+
children: [
|
|
110
|
+
/* @__PURE__ */ i(
|
|
111
|
+
"input",
|
|
112
|
+
{
|
|
113
|
+
...Y,
|
|
114
|
+
"aria-describedby": a,
|
|
115
|
+
"aria-invalid": c || void 0,
|
|
116
|
+
"aria-required": R || void 0,
|
|
117
|
+
autoComplete: "off",
|
|
118
|
+
className: n.input,
|
|
119
|
+
disabled: v,
|
|
120
|
+
id: e,
|
|
121
|
+
inputMode: "numeric",
|
|
122
|
+
onBlur: (t) => {
|
|
123
|
+
u(!1), h == null || h(t);
|
|
124
|
+
},
|
|
125
|
+
onChange: (t) => ie(t.target.value),
|
|
126
|
+
onKeyDown: ne,
|
|
127
|
+
placeholder: Q,
|
|
128
|
+
ref: te,
|
|
129
|
+
type: "text",
|
|
130
|
+
value: re
|
|
131
|
+
}
|
|
132
|
+
),
|
|
133
|
+
/* @__PURE__ */ i(
|
|
134
|
+
"button",
|
|
135
|
+
{
|
|
136
|
+
"aria-expanded": o,
|
|
137
|
+
"aria-haspopup": "dialog",
|
|
138
|
+
"aria-label": "Abrir calendário",
|
|
139
|
+
className: n.trigger,
|
|
140
|
+
disabled: v,
|
|
141
|
+
onClick: () => o ? s() : k(!0),
|
|
142
|
+
ref: P,
|
|
143
|
+
type: "button",
|
|
144
|
+
children: /* @__PURE__ */ i(Re, { size: 15 })
|
|
145
|
+
}
|
|
146
|
+
)
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
),
|
|
150
|
+
o && de(
|
|
151
|
+
/* @__PURE__ */ d(
|
|
152
|
+
"div",
|
|
153
|
+
{
|
|
154
|
+
...p,
|
|
155
|
+
"aria-label": g ? "Calendário de " + g : "Calendário",
|
|
156
|
+
className: n.panel,
|
|
157
|
+
"data-react-aria-top-layer": "true",
|
|
158
|
+
onKeyDown: (t) => {
|
|
159
|
+
var M;
|
|
160
|
+
t.key === "Escape" && s(), (M = p.onKeyDown) == null || M.call(p, t);
|
|
161
|
+
},
|
|
162
|
+
ref: S,
|
|
163
|
+
role: "dialog",
|
|
164
|
+
style: se.style,
|
|
165
|
+
children: [
|
|
166
|
+
/* @__PURE__ */ i(
|
|
167
|
+
he,
|
|
168
|
+
{
|
|
169
|
+
autoFocus: !0,
|
|
170
|
+
isDateUnavailable: m.isDateUnavailable,
|
|
171
|
+
locale: G,
|
|
172
|
+
max: m.max,
|
|
173
|
+
min: m.min,
|
|
174
|
+
onSelect: O,
|
|
175
|
+
value: U
|
|
176
|
+
},
|
|
177
|
+
ae
|
|
178
|
+
),
|
|
179
|
+
/* @__PURE__ */ d("div", { className: n.footer, children: [
|
|
180
|
+
/* @__PURE__ */ i(
|
|
181
|
+
x,
|
|
182
|
+
{
|
|
183
|
+
onClick: () => {
|
|
184
|
+
O(ue(pe())), oe((t) => t + 1);
|
|
185
|
+
},
|
|
186
|
+
size: "sm",
|
|
187
|
+
variant: "ghost",
|
|
188
|
+
type: "button",
|
|
189
|
+
children: "Hoje"
|
|
190
|
+
}
|
|
191
|
+
),
|
|
192
|
+
/* @__PURE__ */ d("div", { className: n.actions, children: [
|
|
193
|
+
/* @__PURE__ */ i(x, { onClick: () => s(), size: "sm", variant: "secondary", type: "button", children: "Cancelar" }),
|
|
194
|
+
/* @__PURE__ */ i(
|
|
195
|
+
x,
|
|
196
|
+
{
|
|
197
|
+
onClick: () => {
|
|
198
|
+
w(U ?? null), u(!1), s();
|
|
199
|
+
},
|
|
200
|
+
size: "sm",
|
|
201
|
+
type: "button",
|
|
202
|
+
children: "Aplicar"
|
|
203
|
+
}
|
|
204
|
+
)
|
|
205
|
+
] })
|
|
206
|
+
] })
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
),
|
|
210
|
+
document.body
|
|
211
|
+
)
|
|
212
|
+
] }) });
|
|
213
|
+
}
|
|
214
|
+
export {
|
|
215
|
+
He as DatePicker
|
|
216
|
+
};
|
|
217
|
+
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sources":["../../../../src/components/forms/DatePicker/DatePicker.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ComponentPropsWithRef, type KeyboardEvent } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useOverlay, useOverlayPosition } from '@react-aria/overlays';\nimport { getLocalTimeZone, today, type CalendarDate } from '@internationalized/date';\nimport { useFormReset } from '../../../hooks/useFormReset';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { formatarEntradaData, lerEntradaData } from '../../../utils/formatters';\nimport { Button } from '../../actions/Button';\nimport { isUnavailable, type CalendarLimits } from '../../../hooks/useCalendar/calendar';\nimport { Field } from '../Field';\nimport { FormValue } from '../Field/FormValue';\nimport { Calendar } from './Calendar';\nimport { readIsoDate } from './iso';\nimport styles from './DatePicker.module.css';\nimport { IconCalendar } from '../../icons';\n\nexport type DatePickerSize = 'sm' | 'md';\n\n/**\n * As propriedades nativas vao ao campo de texto, que e o controle; o `className` soma a caixa do campo, que e o que\n * se posiciona e dimensiona.\n */\nexport interface DatePickerProps\n extends Omit<\n ComponentPropsWithRef<'input'>,\n 'defaultValue' | 'max' | 'min' | 'name' | 'onChange' | 'size' | 'type' | 'value'\n > {\n /** Data em ISO, `2026-03-09`, como no `FormData`: a API nao expoe tipo de biblioteca de terceiros. */\n defaultValue?: string;\n disabled?: boolean;\n error?: string;\n hint?: string;\n id?: string;\n isDateUnavailable?: (date: string) => boolean;\n label?: string;\n /**\n * Nome do campo no formulario. Com ele, um input oculto carrega o valor para\n * o `FormData`: sem controle nativo por baixo, o envio ignorava o campo.\n */\n name?: string;\n locale?: string;\n max?: string;\n min?: string;\n /** Sem data inteira e permitida, o valor e `null`, que mantem o campo controlado e vazio. */\n onValueChange?: (value: string | null) => void;\n placeholder?: string;\n required?: boolean;\n size?: DatePickerSize;\n /**\n * `null` e \"controlado e vazio\": devolver a propriedade a `undefined` nao\n * limpa o campo, porque ali ele volta a ser nao controlado.\n */\n value?: string | null;\n}\n\nexport function DatePicker({\n 'aria-describedby': ariaDescribedBy,\n className,\n defaultValue,\n name,\n disabled = false,\n error,\n hint,\n id: providedId,\n isDateUnavailable,\n label,\n locale = 'pt-BR',\n max,\n min,\n onValueChange,\n onBlur,\n onKeyDown,\n placeholder = 'dd/mm/aaaa',\n required = false,\n size = 'md',\n ref,\n value,\n ...props\n}: DatePickerProps) {\n const fieldRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const [open, setOpen] = useState(false);\n const limites: CalendarLimits = {\n isDateUnavailable: isDateUnavailable && ((data) => isDateUnavailable(data.toString())),\n max: readIsoDate(max),\n min: readIsoDate(min),\n };\n const [internalValue, setInternalValue] = useState<CalendarDate | null>(() => readIsoDate(defaultValue) ?? null);\n const controlado = value === undefined ? undefined : (readIsoDate(value) ?? null);\n const escolhido = (controlado === undefined ? internalValue : controlado) ?? undefined;\n const [texto, setTexto] = useState('');\n const [digitando, setDigitando] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n const resetRef = useFormReset<HTMLInputElement>(() => {\n setInternalValue(readIsoDate(defaultValue) ?? null);\n setDigitando(false);\n });\n const mergedRef = useMergedRefs(inputRef, resetRef, ref);\n const [rascunho, setRascunho] = useState(escolhido);\n const [versaoDoCalendario, setVersaoDoCalendario] = useState(0);\n\n useEffect(() => {\n if (open) {\n setRascunho(escolhido);\n }\n }, [open]);\n\n const exibido = digitando\n ? texto\n : escolhido\n ? [String(escolhido.day).padStart(2, '0'), String(escolhido.month).padStart(2, '0'), escolhido.year].join('/')\n : '';\n\n // O interno acompanha mesmo controlado: se o consumidor devolver `undefined`, nao ressurge um valor velho.\n function definir(proximo: CalendarDate | null) {\n setInternalValue(proximo);\n onValueChange?.(proximo?.toString() ?? null);\n }\n\n function fechar(devolverFoco = true) {\n setOpen(false);\n\n if (devolverFoco) {\n triggerRef.current?.focus();\n }\n }\n\n function handleChange(entrada: string) {\n const mascarado = formatarEntradaData(entrada);\n\n setDigitando(true);\n setTexto(mascarado);\n\n // Data fora dos limites nao se grava: o calendario ja a recusa, e o campo\n // digitado nao pode ser a porta dos fundos dela.\n const lido = lerEntradaData(mascarado);\n const permitido = lido && !isUnavailable(lido, limites) ? lido : null;\n\n definir(permitido);\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLInputElement>) {\n onKeyDown?.(event);\n\n if (event.key === 'ArrowDown' && !open) {\n event.preventDefault();\n setOpen(true);\n } else if (event.key === 'Escape' && open) {\n fechar(false);\n }\n }\n\n const { overlayProps } = useOverlay(\n {\n isOpen: open,\n onClose: () => fechar(false),\n isDismissable: true,\n shouldCloseOnBlur: false,\n // O gatilho nao conta como \"fora\": sem isto o ponteiro fecha o painel e o\n // clique dele reabre em seguida, e ele pisca sem abrir.\n shouldCloseOnInteractOutside: (elemento) => !fieldRef.current?.contains(elemento),\n },\n panelRef,\n );\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: fieldRef,\n overlayRef: panelRef,\n placement: 'bottom start',\n offset: 6,\n containerPadding: 8,\n isOpen: open,\n });\n\n return (\n <Field aria-describedby={ariaDescribedBy} error={error} hint={hint} id={providedId} label={label} required={required}>\n {({ id, describedBy, invalid }) => (\n <>\n <FormValue\n disabled={disabled}\n name={name}\n onFocus={() => inputRef.current?.focus()}\n required={required}\n value={escolhido?.toString() ?? ''}\n />\n <div\n className={[styles.field, styles[size], error && styles.error, className].filter(Boolean).join(' ')}\n ref={fieldRef}\n >\n <input\n {...props}\n aria-describedby={describedBy}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n autoComplete=\"off\"\n className={styles.input}\n disabled={disabled}\n id={id}\n inputMode=\"numeric\"\n onBlur={(event) => {\n setDigitando(false);\n onBlur?.(event);\n }}\n onChange={(event) => handleChange(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={mergedRef}\n type=\"text\"\n value={exibido}\n />\n <button\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-label=\"Abrir calendário\"\n className={styles.trigger}\n disabled={disabled}\n onClick={() => (open ? fechar() : setOpen(true))}\n ref={triggerRef}\n type=\"button\"\n >\n <IconCalendar size={15} />\n </button>\n </div>\n {open &&\n createPortal(\n <div\n {...overlayProps}\n aria-label={label ? 'Calendário de ' + label : 'Calendário'}\n className={styles.panel}\n // Camada de cima: o `ariaHideOutside` do Dialog ignora quem a declara.\n data-react-aria-top-layer=\"true\"\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n fechar();\n }\n overlayProps.onKeyDown?.(event);\n }}\n ref={panelRef}\n role=\"dialog\"\n style={positionProps.style}\n >\n <Calendar\n autoFocus\n key={versaoDoCalendario}\n isDateUnavailable={limites.isDateUnavailable}\n locale={locale}\n max={limites.max}\n min={limites.min}\n onSelect={setRascunho}\n value={rascunho}\n />\n <div className={styles.footer}>\n <Button\n onClick={() => {\n // Remontada, a grade volta ao mes de hoje mesmo que o rascunho ja fosse hoje.\n setRascunho(today(getLocalTimeZone()));\n setVersaoDoCalendario((versao) => versao + 1);\n }}\n size=\"sm\"\n variant=\"ghost\"\n type=\"button\"\n >\n Hoje\n </Button>\n <div className={styles.actions}>\n <Button onClick={() => fechar()} size=\"sm\" variant=\"secondary\" type=\"button\">\n Cancelar\n </Button>\n <Button\n onClick={() => {\n definir(rascunho ?? null);\n setDigitando(false);\n fechar();\n }}\n size=\"sm\"\n type=\"button\"\n >\n Aplicar\n </Button>\n </div>\n </div>\n </div>,\n document.body,\n )}\n </>\n )}\n </Field>\n );\n}\n"],"names":["DatePicker","ariaDescribedBy","className","defaultValue","name","disabled","error","hint","providedId","isDateUnavailable","label","locale","max","min","onValueChange","onBlur","onKeyDown","placeholder","required","size","ref","value","props","fieldRef","useRef","panelRef","triggerRef","open","setOpen","useState","limites","data","readIsoDate","internalValue","setInternalValue","controlado","escolhido","texto","setTexto","digitando","setDigitando","inputRef","resetRef","useFormReset","mergedRef","useMergedRefs","rascunho","setRascunho","versaoDoCalendario","setVersaoDoCalendario","useEffect","exibido","definir","proximo","fechar","devolverFoco","_a","handleChange","entrada","mascarado","formatarEntradaData","lido","lerEntradaData","permitido","isUnavailable","handleKeyDown","event","overlayProps","useOverlay","elemento","positionProps","useOverlayPosition","Field","id","describedBy","invalid","jsxs","Fragment","jsx","FormValue","styles","IconCalendar","createPortal","Calendar","Button","today","getLocalTimeZone","versao"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_field_6g4z6_2",t="_error_6g4z6_12",_="_input_6g4z6_12",a="_sm_6g4z6_54",n="_md_6g4z6_59",o="_trigger_6g4z6_72",d="_panel_6g4z6_97",r="_calendar_6g4z6_106",s="_calendarHeader_6g4z6_112",c="_month_6g4z6_119",g="_navigate_6g4z6_127",l="_grid_6g4z6_150",i="_weekday_6g4z6_154",z="_dayCell_6g4z6_164",y="_day_6g4z6_164",u="_outside_6g4z6_190",m="_selectedDay_6g4z6_200",f="_footer_6g4z6_213",p="_actions_6g4z6_223",v={field:e,error:t,input:_,sm:a,md:n,trigger:o,panel:d,calendar:r,calendarHeader:s,month:c,navigate:g,grid:l,weekday:i,dayCell:z,day:y,outside:u,selectedDay:m,footer:f,actions:p};exports.actions=p;exports.calendar=r;exports.calendarHeader=s;exports.day=y;exports.dayCell=z;exports.default=v;exports.error=t;exports.field=e;exports.footer=f;exports.grid=l;exports.input=_;exports.md=n;exports.month=c;exports.navigate=g;exports.outside=u;exports.panel=d;exports.selectedDay=m;exports.sm=a;exports.trigger=o;exports.weekday=i;
|
|
2
|
+
//# sourceMappingURL=DatePicker.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const _ = "_field_6g4z6_2", e = "_error_6g4z6_12", t = "_input_6g4z6_12", a = "_sm_6g4z6_54", n = "_md_6g4z6_59", o = "_trigger_6g4z6_72", s = "_panel_6g4z6_97", d = "_calendar_6g4z6_106", c = "_calendarHeader_6g4z6_112", g = "_month_6g4z6_119", r = "_navigate_6g4z6_127", l = "_grid_6g4z6_150", i = "_weekday_6g4z6_154", z = "_dayCell_6g4z6_164", y = "_day_6g4z6_164", m = "_outside_6g4z6_190", f = "_selectedDay_6g4z6_200", p = "_footer_6g4z6_213", u = "_actions_6g4z6_223", h = {
|
|
2
|
+
field: _,
|
|
3
|
+
error: e,
|
|
4
|
+
input: t,
|
|
5
|
+
sm: a,
|
|
6
|
+
md: n,
|
|
7
|
+
trigger: o,
|
|
8
|
+
panel: s,
|
|
9
|
+
calendar: d,
|
|
10
|
+
calendarHeader: c,
|
|
11
|
+
month: g,
|
|
12
|
+
navigate: r,
|
|
13
|
+
grid: l,
|
|
14
|
+
weekday: i,
|
|
15
|
+
dayCell: z,
|
|
16
|
+
day: y,
|
|
17
|
+
outside: m,
|
|
18
|
+
selectedDay: f,
|
|
19
|
+
footer: p,
|
|
20
|
+
actions: u
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
u as actions,
|
|
24
|
+
d as calendar,
|
|
25
|
+
c as calendarHeader,
|
|
26
|
+
y as day,
|
|
27
|
+
z as dayCell,
|
|
28
|
+
h as default,
|
|
29
|
+
e as error,
|
|
30
|
+
_ as field,
|
|
31
|
+
p as footer,
|
|
32
|
+
l as grid,
|
|
33
|
+
t as input,
|
|
34
|
+
n as md,
|
|
35
|
+
g as month,
|
|
36
|
+
r as navigate,
|
|
37
|
+
m as outside,
|
|
38
|
+
s as panel,
|
|
39
|
+
f as selectedDay,
|
|
40
|
+
a as sm,
|
|
41
|
+
o as trigger,
|
|
42
|
+
i as weekday
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=DatePicker.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@internationalized/date");function o(e,r){if(e)try{return r(e)}catch{return}}const s=e=>o(e,t.parseDate),i=e=>o(e,t.parseTime),a=e=>o(e,t.parseDateTime),n=e=>e.toString().slice(0,5),c=e=>e.toString().slice(0,16);exports.readIsoDate=s;exports.readIsoDateTime=a;exports.readIsoTime=i;exports.toIsoDateTime=c;exports.toIsoTime=n;
|
|
2
|
+
//# sourceMappingURL=iso.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iso.cjs","sources":["../../../../src/components/forms/DatePicker/iso.ts"],"sourcesContent":["import { parseDate, parseDateTime, parseTime, type CalendarDateTime, type Time } from '@internationalized/date';\n\n/** A API publica fala em texto ISO; o que nao e data valida conta como ausente, em vez de derrubar o componente. */\nfunction ler<T>(texto: string | null | undefined, interpretar: (texto: string) => T) {\n if (!texto) {\n return undefined;\n }\n\n try {\n return interpretar(texto);\n } catch {\n return undefined;\n }\n}\n\nexport const readIsoDate = (texto?: string | null) => ler(texto, parseDate);\nexport const readIsoTime = (texto?: string | null) => ler(texto, parseTime);\nexport const readIsoDateTime = (texto?: string | null) => ler(texto, parseDateTime);\n\n/** Hora e data com hora saem sem segundos, que os seletores nao escolhem: `09:30` e `2026-03-09T09:30`. */\nexport const toIsoTime = (hora: Time) => hora.toString().slice(0, 5);\nexport const toIsoDateTime = (instante: CalendarDateTime) => instante.toString().slice(0, 16);\n"],"names":["ler","texto","interpretar","readIsoDate","parseDate","readIsoTime","parseTime","readIsoDateTime","parseDateTime","toIsoTime","hora","toIsoDateTime","instante"],"mappings":"2HAGA,SAASA,EAAOC,EAAkCC,EAAmC,CACnF,GAAKD,EAIL,GAAI,CACF,OAAOC,EAAYD,CAAK,CAC1B,MAAQ,CACN,MACF,CACF,CAEO,MAAME,EAAeF,GAA0BD,EAAIC,EAAOG,EAAAA,SAAS,EAC7DC,EAAeJ,GAA0BD,EAAIC,EAAOK,EAAAA,SAAS,EAC7DC,EAAmBN,GAA0BD,EAAIC,EAAOO,EAAAA,aAAa,EAGrEC,EAAaC,GAAeA,EAAK,WAAW,MAAM,EAAG,CAAC,EACtDC,EAAiBC,GAA+BA,EAAS,WAAW,MAAM,EAAG,EAAE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { parseDate as r, parseTime as i, parseDateTime as s } from "@internationalized/date";
|
|
2
|
+
function t(e, o) {
|
|
3
|
+
if (e)
|
|
4
|
+
try {
|
|
5
|
+
return o(e);
|
|
6
|
+
} catch {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const n = (e) => t(e, r), c = (e) => t(e, i), m = (e) => t(e, s), T = (e) => e.toString().slice(0, 5), d = (e) => e.toString().slice(0, 16);
|
|
11
|
+
export {
|
|
12
|
+
n as readIsoDate,
|
|
13
|
+
m as readIsoDateTime,
|
|
14
|
+
c as readIsoTime,
|
|
15
|
+
d as toIsoDateTime,
|
|
16
|
+
T as toIsoTime
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=iso.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iso.js","sources":["../../../../src/components/forms/DatePicker/iso.ts"],"sourcesContent":["import { parseDate, parseDateTime, parseTime, type CalendarDateTime, type Time } from '@internationalized/date';\n\n/** A API publica fala em texto ISO; o que nao e data valida conta como ausente, em vez de derrubar o componente. */\nfunction ler<T>(texto: string | null | undefined, interpretar: (texto: string) => T) {\n if (!texto) {\n return undefined;\n }\n\n try {\n return interpretar(texto);\n } catch {\n return undefined;\n }\n}\n\nexport const readIsoDate = (texto?: string | null) => ler(texto, parseDate);\nexport const readIsoTime = (texto?: string | null) => ler(texto, parseTime);\nexport const readIsoDateTime = (texto?: string | null) => ler(texto, parseDateTime);\n\n/** Hora e data com hora saem sem segundos, que os seletores nao escolhem: `09:30` e `2026-03-09T09:30`. */\nexport const toIsoTime = (hora: Time) => hora.toString().slice(0, 5);\nexport const toIsoDateTime = (instante: CalendarDateTime) => instante.toString().slice(0, 16);\n"],"names":["ler","texto","interpretar","readIsoDate","parseDate","readIsoTime","parseTime","readIsoDateTime","parseDateTime","toIsoTime","hora","toIsoDateTime","instante"],"mappings":";AAGA,SAASA,EAAOC,GAAkCC,GAAmC;AACnF,MAAKD;AAIL,QAAI;AACF,aAAOC,EAAYD,CAAK;AAAA,IAC1B,QAAQ;AACN;AAAA,IACF;AACF;AAEO,MAAME,IAAc,CAACF,MAA0BD,EAAIC,GAAOG,CAAS,GAC7DC,IAAc,CAACJ,MAA0BD,EAAIC,GAAOK,CAAS,GAC7DC,IAAkB,CAACN,MAA0BD,EAAIC,GAAOO,CAAa,GAGrEC,IAAY,CAACC,MAAeA,EAAK,WAAW,MAAM,GAAG,CAAC,GACtDC,IAAgB,CAACC,MAA+BA,EAAS,WAAW,MAAM,GAAG,EAAE;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),o=require("react"),ye=require("react-dom"),M=require("@react-aria/overlays"),r=require("@internationalized/date"),pe=require("../../../hooks/useFormReset.cjs"),De=require("../../../hooks/useMergedRefs.cjs"),he=require("../DatePicker/Calendar.cjs"),u=require("../DatePicker/iso.cjs"),xe=require("../TimePicker/TimeSlots.cjs"),ge=require("../../../hooks/useCalendar/calendar.cjs"),be=require("../Field/FormValue.cjs"),c=require("./DateTimePicker.module.css.cjs"),je=require("../Field/Field.cjs"),Ce=require("../../icons/icons.cjs"),I=require("../../actions/Button/Button.cjs"),L=require("../../../utils/formatters/formatarEntradaHora.cjs"),x=i=>String(i).padStart(2,"0");function ve(i){return i?[x(i.day),x(i.month),i.year].join("/")+" "+x(i.hour)+":"+x(i.minute):""}function Re({"aria-describedby":i,className:k,defaultValue:F,name:U,disabled:g=!1,error:O,hint:Z,id:_,isDateUnavailable:P,label:b,locale:$="pt-BR",max:G,min:J,step:K=30,onValueChange:j,onBlur:C,onKeyDown:v,placeholder:Q="dd/mm/aaaa hh:mm",required:R=!1,size:V="md",ref:W,value:w,...X}){const T=o.useRef(null),q=o.useRef(null),N=o.useRef(null),Y=`datetime-hora-${o.useId()}`,[l,S]=o.useState(!1),y={isDateUnavailable:P&&(e=>P(e.toString())),max:u.readIsoDate(G),min:u.readIsoDate(J)},[ee,E]=o.useState(()=>u.readIsoDateTime(F)??null),[te,ae]=o.useState(""),[se,p]=o.useState(!1),z=w===void 0?void 0:u.readIsoDateTime(w)??null,m=(z===void 0?ee:z)??void 0,[a,D]=o.useState(m),[ne,oe]=o.useState(0),A=o.useRef(null),ie=pe.useFormReset(()=>{E(u.readIsoDateTime(F)??null),p(!1)}),re=De.useMergedRefs(A,ie,W);o.useEffect(()=>{l&&D(m)},[l]);const le=se?te:ve(m);function B(e){E(e),j==null||j(e?u.toIsoDateTime(e):null)}function ce(e){D(new r.CalendarDateTime(e.year,e.month,e.day,(a==null?void 0:a.hour)??0,(a==null?void 0:a.minute)??0))}function ue(e){const s=a??r.today(r.getLocalTimeZone());D(new r.CalendarDateTime(s.year,s.month,s.day,e.hour,e.minute))}function d(e=!0){var s;S(!1),e&&((s=N.current)==null||s.focus())}function de(e){const s=L.formatarEntradaDataHora(e);p(!0),ae(s);const f=L.lerEntradaDataHora(s),n=f&&r.toCalendarDate(f);B(f&&n&&!ge.isUnavailable(n,y)?f:null)}function fe(e){v==null||v(e),e.key==="ArrowDown"&&!l?(e.preventDefault(),S(!0)):e.key==="Escape"&&l&&d(!1)}const{overlayProps:h}=M.useOverlay({isOpen:l,onClose:()=>d(!1),isDismissable:!0,shouldCloseOnBlur:!1,shouldCloseOnInteractOutside:e=>{var s;return!((s=T.current)!=null&&s.contains(e))}},q),{overlayProps:me}=M.useOverlayPosition({targetRef:T,overlayRef:q,placement:"bottom start",offset:6,containerPadding:8,isOpen:l});return t.jsx(je.Field,{"aria-describedby":i,error:O,hint:Z,id:_,label:b,required:R,children:({id:e,describedBy:s,invalid:f})=>t.jsxs(t.Fragment,{children:[t.jsx(be.FormValue,{disabled:g,name:U,onFocus:()=>{var n;return(n=A.current)==null?void 0:n.focus()},required:R,value:m?u.toIsoDateTime(m):""}),t.jsxs("div",{className:[c.default.field,c.default[V],O&&c.default.error,k].filter(Boolean).join(" "),ref:T,children:[t.jsx("input",{...X,"aria-describedby":s,"aria-invalid":f||void 0,"aria-required":R||void 0,autoComplete:"off",className:c.default.input,disabled:g,id:e,inputMode:"numeric",onBlur:n=>{p(!1),C==null||C(n)},onChange:n=>de(n.target.value),onKeyDown:fe,placeholder:Q,ref:re,type:"text",value:le}),t.jsx("button",{"aria-expanded":l,"aria-haspopup":"dialog","aria-label":"Abrir calendário",className:c.default.trigger,disabled:g,onClick:()=>l?d():S(!0),ref:N,type:"button",children:t.jsx(Ce.IconCalendar,{size:15})})]}),l&&ye.createPortal(t.jsxs("div",{...h,"aria-label":b?"Calendário de "+b:"Calendário",className:c.default.panel,"data-react-aria-top-layer":"true",onKeyDown:n=>{var H;n.key==="Escape"&&d(),(H=h.onKeyDown)==null||H.call(h,n)},ref:q,role:"dialog",style:me.style,children:[t.jsxs("div",{className:c.default.columns,children:[t.jsx(he.Calendar,{autoFocus:!0,isDateUnavailable:y.isDateUnavailable,locale:$,max:y.max,min:y.min,onSelect:ce,value:a&&new r.CalendarDate(a.year,a.month,a.day)},ne),t.jsx(xe.TimeSlots,{baseId:Y,onChange:ue,step:K,value:a&&new r.Time(a.hour,a.minute)})]}),t.jsxs("div",{className:c.default.footer,children:[t.jsx(I.Button,{onClick:()=>{D(r.toCalendarDateTime(r.now(r.getLocalTimeZone())).set({second:0,millisecond:0})),oe(n=>n+1)},size:"sm",variant:"ghost",type:"button",children:"Agora"}),t.jsxs("div",{className:c.default.actions,children:[t.jsx(I.Button,{onClick:()=>d(),size:"sm",variant:"secondary",type:"button",children:"Cancelar"}),t.jsx(I.Button,{onClick:()=>{B(a??null),p(!1),d()},size:"sm",type:"button",children:"Aplicar"})]})]})]}),document.body)]})})}exports.DateTimePicker=Re;
|
|
2
|
+
//# sourceMappingURL=DateTimePicker.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimePicker.cjs","sources":["../../../../src/components/forms/DateTimePicker/DateTimePicker.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState, type ComponentPropsWithRef, type KeyboardEvent } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useOverlay, useOverlayPosition } from '@react-aria/overlays';\nimport {\n CalendarDate,\n CalendarDateTime,\n Time,\n getLocalTimeZone,\n now,\n toCalendarDate,\n toCalendarDateTime,\n today,\n} from '@internationalized/date';\nimport { useFormReset } from '../../../hooks/useFormReset';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { formatarEntradaDataHora, lerEntradaDataHora } from '../../../utils/formatters';\nimport { Button } from '../../actions/Button';\nimport { Calendar } from '../DatePicker/Calendar';\nimport { readIsoDate, readIsoDateTime, toIsoDateTime } from '../DatePicker/iso';\nimport { TimeSlots } from '../TimePicker/TimeSlots';\nimport { isUnavailable, type CalendarLimits } from '../../../hooks/useCalendar/calendar';\nimport { Field } from '../Field';\nimport { FormValue } from '../Field/FormValue';\nimport styles from './DateTimePicker.module.css';\nimport { IconCalendar } from '../../icons';\n\nexport type DateTimePickerSize = 'sm' | 'md';\n\n/**\n * As propriedades nativas vao ao campo de texto, que e o controle; o `className` soma a caixa do campo, que e o que\n * se posiciona e dimensiona.\n */\nexport interface DateTimePickerProps\n extends Omit<\n ComponentPropsWithRef<'input'>,\n 'defaultValue' | 'max' | 'min' | 'name' | 'onChange' | 'size' | 'type' | 'value' | 'step'\n > {\n /** Data e hora em ISO, `2026-03-09T18:40`, como no `FormData`: a API nao expoe tipo de biblioteca de terceiros. */\n defaultValue?: string;\n disabled?: boolean;\n error?: string;\n hint?: string;\n id?: string;\n isDateUnavailable?: (date: string) => boolean;\n label?: string;\n /**\n * Nome do campo no formulario. Com ele, um input oculto carrega o valor para\n * o `FormData`: sem controle nativo por baixo, o envio ignorava o campo.\n */\n name?: string;\n locale?: string;\n /** Limites de data, em `2026-03-09`. */\n max?: string;\n min?: string;\n step?: number;\n /** Sem data e hora inteiras e permitidas, o valor e `null`, que mantem o campo controlado e vazio. */\n onValueChange?: (value: string | null) => void;\n placeholder?: string;\n required?: boolean;\n size?: DateTimePickerSize;\n /**\n * `null` e \"controlado e vazio\": devolver a propriedade a `undefined` nao\n * limpa o campo, porque ali ele volta a ser nao controlado.\n */\n value?: string | null;\n}\n\nconst doisDigitos = (valor: number) => String(valor).padStart(2, '0');\n\nfunction paraTexto(valor?: CalendarDateTime) {\n if (!valor) {\n return '';\n }\n\n const data = [doisDigitos(valor.day), doisDigitos(valor.month), valor.year].join('/');\n\n return data + ' ' + doisDigitos(valor.hour) + ':' + doisDigitos(valor.minute);\n}\n\nexport function DateTimePicker({\n 'aria-describedby': ariaDescribedBy,\n className,\n defaultValue,\n name,\n disabled = false,\n error,\n hint,\n id: providedId,\n isDateUnavailable,\n label,\n locale = 'pt-BR',\n max,\n min,\n step = 30,\n onValueChange,\n onBlur,\n onKeyDown,\n placeholder = 'dd/mm/aaaa hh:mm',\n required = false,\n size = 'md',\n ref,\n value,\n ...props\n}: DateTimePickerProps) {\n const fieldRef = useRef<HTMLDivElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n // Fixo, o id fazia dois seletores dividirem os ids das opcoes de hora.\n const idDaLista = `datetime-hora-${useId()}`;\n const [open, setOpen] = useState(false);\n const limites: CalendarLimits = {\n isDateUnavailable: isDateUnavailable && ((data) => isDateUnavailable(data.toString())),\n max: readIsoDate(max),\n min: readIsoDate(min),\n };\n const [internalValue, setInternalValue] = useState<CalendarDateTime | null>(() => readIsoDateTime(defaultValue) ?? null);\n const [texto, setTexto] = useState('');\n const [digitando, setDigitando] = useState(false);\n const controlado = value === undefined ? undefined : (readIsoDateTime(value) ?? null);\n const escolhido = (controlado === undefined ? internalValue : controlado) ?? undefined;\n const [rascunho, setRascunho] = useState(escolhido);\n const [versaoDoCalendario, setVersaoDoCalendario] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n const resetRef = useFormReset<HTMLInputElement>(() => {\n setInternalValue(readIsoDateTime(defaultValue) ?? null);\n setDigitando(false);\n });\n const mergedRef = useMergedRefs(inputRef, resetRef, ref);\n\n useEffect(() => {\n if (open) {\n setRascunho(escolhido);\n }\n }, [open]);\n const exibido = digitando ? texto : paraTexto(escolhido);\n\n // O interno acompanha mesmo controlado: se o consumidor devolver `undefined`, nao ressurge um valor velho.\n function definir(proximo: CalendarDateTime | null) {\n setInternalValue(proximo);\n onValueChange?.(proximo ? toIsoDateTime(proximo) : null);\n }\n\n function rascunharData(data: CalendarDate) {\n setRascunho(new CalendarDateTime(data.year, data.month, data.day, rascunho?.hour ?? 0, rascunho?.minute ?? 0));\n }\n\n // Sem data escolhida, a hora se apoia em hoje: inventar outra data\n // faria o campo exibir um dia que o usuario nunca escolheu.\n function rascunharHora(hora: Time) {\n const base = rascunho ?? today(getLocalTimeZone());\n\n setRascunho(new CalendarDateTime(base.year, base.month, base.day, hora.hour, hora.minute));\n }\n\n function fechar(devolverFoco = true) {\n setOpen(false);\n\n if (devolverFoco) {\n triggerRef.current?.focus();\n }\n }\n\n function handleChange(entrada: string) {\n const mascarado = formatarEntradaDataHora(entrada);\n\n setDigitando(true);\n setTexto(mascarado);\n\n // O texto e o valor tem de concordar. Enquanto o que esta escrito nao e uma\n // data e hora inteiras, o campo nao tem valor — segurar o ultimo deixava o\n // consumidor com meia-noite enquanto a tela mostrava `18:4`.\n const lido = lerEntradaDataHora(mascarado);\n const dia = lido && toCalendarDate(lido);\n\n definir(lido && dia && !isUnavailable(dia, limites) ? lido : null);\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLInputElement>) {\n onKeyDown?.(event);\n\n if (event.key === 'ArrowDown' && !open) {\n event.preventDefault();\n setOpen(true);\n } else if (event.key === 'Escape' && open) {\n fechar(false);\n }\n }\n\n const { overlayProps } = useOverlay(\n {\n isOpen: open,\n onClose: () => fechar(false),\n isDismissable: true,\n shouldCloseOnBlur: false,\n // O gatilho nao conta como \"fora\": sem isto o ponteiro fecha o painel e o\n // clique dele reabre em seguida, e ele pisca sem abrir.\n shouldCloseOnInteractOutside: (elemento) => !fieldRef.current?.contains(elemento),\n },\n panelRef,\n );\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: fieldRef,\n overlayRef: panelRef,\n placement: 'bottom start',\n offset: 6,\n containerPadding: 8,\n isOpen: open,\n });\n\n return (\n <Field aria-describedby={ariaDescribedBy} error={error} hint={hint} id={providedId} label={label} required={required}>\n {({ id, describedBy, invalid }) => (\n <>\n <FormValue\n disabled={disabled}\n name={name}\n onFocus={() => inputRef.current?.focus()}\n required={required}\n value={escolhido ? toIsoDateTime(escolhido) : ''}\n />\n <div\n className={[styles.field, styles[size], error && styles.error, className].filter(Boolean).join(' ')}\n ref={fieldRef}\n >\n <input\n {...props}\n aria-describedby={describedBy}\n aria-invalid={invalid || undefined}\n aria-required={required || undefined}\n autoComplete=\"off\"\n className={styles.input}\n disabled={disabled}\n id={id}\n inputMode=\"numeric\"\n onBlur={(event) => {\n setDigitando(false);\n onBlur?.(event);\n }}\n onChange={(event) => handleChange(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={mergedRef}\n type=\"text\"\n value={exibido}\n />\n <button\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-label=\"Abrir calendário\"\n className={styles.trigger}\n disabled={disabled}\n onClick={() => (open ? fechar() : setOpen(true))}\n ref={triggerRef}\n type=\"button\"\n >\n <IconCalendar size={15} />\n </button>\n </div>\n {open &&\n createPortal(\n <div\n {...overlayProps}\n aria-label={label ? 'Calendário de ' + label : 'Calendário'}\n className={styles.panel}\n // Camada de cima: o `ariaHideOutside` do Dialog ignora quem a declara.\n data-react-aria-top-layer=\"true\"\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n fechar();\n }\n overlayProps.onKeyDown?.(event);\n }}\n ref={panelRef}\n role=\"dialog\"\n style={positionProps.style}\n >\n <div className={styles.columns}>\n <Calendar\n autoFocus\n key={versaoDoCalendario}\n isDateUnavailable={limites.isDateUnavailable}\n locale={locale}\n max={limites.max}\n min={limites.min}\n onSelect={rascunharData}\n value={rascunho && new CalendarDate(rascunho.year, rascunho.month, rascunho.day)}\n />\n <TimeSlots\n baseId={idDaLista}\n onChange={rascunharHora}\n step={step}\n value={rascunho && new Time(rascunho.hour, rascunho.minute)}\n />\n </div>\n <div className={styles.footer}>\n <Button\n onClick={() => {\n // Remontada, a grade volta ao mes de hoje mesmo que o rascunho ja fosse hoje.\n setRascunho(toCalendarDateTime(now(getLocalTimeZone())).set({ second: 0, millisecond: 0 }));\n setVersaoDoCalendario((versao) => versao + 1);\n }}\n size=\"sm\"\n variant=\"ghost\"\n type=\"button\"\n >\n Agora\n </Button>\n <div className={styles.actions}>\n <Button onClick={() => fechar()} size=\"sm\" variant=\"secondary\" type=\"button\">\n Cancelar\n </Button>\n <Button\n onClick={() => {\n definir(rascunho ?? null);\n setDigitando(false);\n fechar();\n }}\n size=\"sm\"\n type=\"button\"\n >\n Aplicar\n </Button>\n </div>\n </div>\n </div>,\n document.body,\n )}\n </>\n )}\n </Field>\n );\n}\n"],"names":["doisDigitos","valor","paraTexto","DateTimePicker","ariaDescribedBy","className","defaultValue","name","disabled","error","hint","providedId","isDateUnavailable","label","locale","max","min","step","onValueChange","onBlur","onKeyDown","placeholder","required","size","ref","value","props","fieldRef","useRef","panelRef","triggerRef","idDaLista","useId","open","setOpen","useState","limites","data","readIsoDate","internalValue","setInternalValue","readIsoDateTime","texto","setTexto","digitando","setDigitando","controlado","escolhido","rascunho","setRascunho","versaoDoCalendario","setVersaoDoCalendario","inputRef","resetRef","useFormReset","mergedRef","useMergedRefs","useEffect","exibido","definir","proximo","toIsoDateTime","rascunharData","CalendarDateTime","rascunharHora","hora","base","today","getLocalTimeZone","fechar","devolverFoco","_a","handleChange","entrada","mascarado","formatarEntradaDataHora","lido","lerEntradaDataHora","dia","toCalendarDate","isUnavailable","handleKeyDown","event","overlayProps","useOverlay","elemento","positionProps","useOverlayPosition","Field","id","describedBy","invalid","jsxs","Fragment","jsx","FormValue","styles","IconCalendar","createPortal","Calendar","CalendarDate","TimeSlots","Time","Button","toCalendarDateTime","now","versao"],"mappings":"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"}
|