@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,137 @@
|
|
|
1
|
+
import { jsxs as E, Fragment as N, jsx as w } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as K, useState as O, cloneElement as S, useMemo as F, useEffect as A } from "react";
|
|
3
|
+
import { createPortal as H } from "react-dom";
|
|
4
|
+
import { FocusScope as I } from "@react-aria/focus";
|
|
5
|
+
import { useOverlay as j, useOverlayPosition as L } from "@react-aria/overlays";
|
|
6
|
+
import { useMergedRefs as T } from "../../../hooks/useMergedRefs.js";
|
|
7
|
+
import P from "./Menu.module.css.js";
|
|
8
|
+
import { useSelection as U } from "../../../hooks/useSelection/useSelection.js";
|
|
9
|
+
function R(o, f) {
|
|
10
|
+
return (s) => {
|
|
11
|
+
o == null || o(s), f(s);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function X({ children: o, defaultOpen: f = !1, items: s, label: D, onOpenChange: l, open: i }) {
|
|
15
|
+
const a = K(null), [h, g] = O(f), [u, d] = O("first"), c = i ?? h;
|
|
16
|
+
function y(t) {
|
|
17
|
+
g(t), l == null || l(t);
|
|
18
|
+
}
|
|
19
|
+
function p(t) {
|
|
20
|
+
d(t), y(!0);
|
|
21
|
+
}
|
|
22
|
+
function m(t) {
|
|
23
|
+
var b;
|
|
24
|
+
y(!1), t && ((b = a.current) == null || b.focus());
|
|
25
|
+
}
|
|
26
|
+
const n = o.props, k = T(a, n.ref), x = S(o, {
|
|
27
|
+
ref: k,
|
|
28
|
+
"aria-haspopup": "menu",
|
|
29
|
+
"aria-expanded": c,
|
|
30
|
+
onClick: R(
|
|
31
|
+
n.onClick,
|
|
32
|
+
() => c ? m(!0) : p("first")
|
|
33
|
+
),
|
|
34
|
+
onKeyDown: R(n.onKeyDown, (t) => {
|
|
35
|
+
(t.key === "ArrowDown" || t.key === "ArrowUp") && (t.preventDefault(), p(t.key === "ArrowDown" ? "first" : "last"));
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
return /* @__PURE__ */ E(N, { children: [
|
|
39
|
+
x,
|
|
40
|
+
c && typeof document < "u" && H(
|
|
41
|
+
// O escopo proprio poe o menu na arvore de escopos do Dialog, cujo `contain` puxaria o foco de volta.
|
|
42
|
+
// Sem `contain` aqui: ele disputaria o foco com o gatilho quando o menu fecha.
|
|
43
|
+
/* @__PURE__ */ w(I, { children: /* @__PURE__ */ w(
|
|
44
|
+
W,
|
|
45
|
+
{
|
|
46
|
+
items: s,
|
|
47
|
+
label: D,
|
|
48
|
+
openedWith: u,
|
|
49
|
+
onClose: m,
|
|
50
|
+
triggerRef: a
|
|
51
|
+
}
|
|
52
|
+
) }),
|
|
53
|
+
document.body
|
|
54
|
+
)
|
|
55
|
+
] });
|
|
56
|
+
}
|
|
57
|
+
function W({
|
|
58
|
+
items: o,
|
|
59
|
+
label: f,
|
|
60
|
+
onClose: s,
|
|
61
|
+
openedWith: D,
|
|
62
|
+
triggerRef: l
|
|
63
|
+
}) {
|
|
64
|
+
var M;
|
|
65
|
+
const i = K(null), a = K(/* @__PURE__ */ new Map()), h = F(
|
|
66
|
+
() => o.map((e) => ({ key: e.key, disabled: e.disabled, textValue: e.label })),
|
|
67
|
+
[o]
|
|
68
|
+
), g = U({ items: h, mode: "none" }), { focusedKey: u, focusFirst: d, focusLast: c, focusNext: y, focusPrevious: p, search: m } = g, { overlayProps: n } = j(
|
|
69
|
+
{
|
|
70
|
+
isOpen: !0,
|
|
71
|
+
onClose: () => s(!1),
|
|
72
|
+
isDismissable: !0,
|
|
73
|
+
shouldCloseOnBlur: !1,
|
|
74
|
+
shouldCloseOnInteractOutside: (e) => {
|
|
75
|
+
var r;
|
|
76
|
+
return !((r = l.current) != null && r.contains(e));
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
i
|
|
80
|
+
), { overlayProps: k } = L({
|
|
81
|
+
targetRef: l,
|
|
82
|
+
overlayRef: i,
|
|
83
|
+
placement: "bottom start",
|
|
84
|
+
offset: 6,
|
|
85
|
+
containerPadding: 8,
|
|
86
|
+
isOpen: !0
|
|
87
|
+
}), x = Math.min(Number((M = k.style) == null ? void 0 : M.maxHeight) || 360, 360);
|
|
88
|
+
A(() => {
|
|
89
|
+
D === "last" ? c() : d();
|
|
90
|
+
}, []), A(() => {
|
|
91
|
+
var e;
|
|
92
|
+
u && ((e = a.current.get(u)) == null || e.focus());
|
|
93
|
+
}, [u]);
|
|
94
|
+
function t(e) {
|
|
95
|
+
var r;
|
|
96
|
+
e.disabled || (s(!0), (r = e.onSelect) == null || r.call(e));
|
|
97
|
+
}
|
|
98
|
+
function b(e) {
|
|
99
|
+
e.key === "ArrowDown" ? (e.preventDefault(), y()) : e.key === "ArrowUp" ? (e.preventDefault(), p()) : e.key === "Home" ? (e.preventDefault(), d()) : e.key === "End" ? (e.preventDefault(), c()) : e.key === "Escape" || e.key === "Tab" ? s(!0) : e.key.length === 1 && !e.metaKey && !e.ctrlKey && m(e.key);
|
|
100
|
+
}
|
|
101
|
+
return /* @__PURE__ */ w(
|
|
102
|
+
"div",
|
|
103
|
+
{
|
|
104
|
+
...n,
|
|
105
|
+
"data-react-aria-top-layer": "true",
|
|
106
|
+
ref: i,
|
|
107
|
+
className: P.menu,
|
|
108
|
+
style: { ...k.style, maxHeight: x },
|
|
109
|
+
role: "menu",
|
|
110
|
+
"aria-label": f,
|
|
111
|
+
onKeyDown: (e) => {
|
|
112
|
+
var r;
|
|
113
|
+
b(e), (r = n.onKeyDown) == null || r.call(n, e);
|
|
114
|
+
},
|
|
115
|
+
children: o.map((e) => /* @__PURE__ */ w(
|
|
116
|
+
"button",
|
|
117
|
+
{
|
|
118
|
+
ref: (r) => {
|
|
119
|
+
r ? a.current.set(e.key, r) : a.current.delete(e.key);
|
|
120
|
+
},
|
|
121
|
+
className: P.item,
|
|
122
|
+
type: "button",
|
|
123
|
+
role: "menuitem",
|
|
124
|
+
disabled: e.disabled,
|
|
125
|
+
tabIndex: u === e.key ? 0 : -1,
|
|
126
|
+
onClick: () => t(e),
|
|
127
|
+
children: e.label
|
|
128
|
+
},
|
|
129
|
+
e.key
|
|
130
|
+
))
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
export {
|
|
135
|
+
X as Menu
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=Menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../../src/components/overlays/Menu/Menu.tsx"],"sourcesContent":["import {\n cloneElement,\n useEffect,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n type ReactElement,\n type Ref,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { FocusScope } from '@react-aria/focus';\nimport { useOverlay, useOverlayPosition } from '@react-aria/overlays';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport { useSelection, type SelectionItem } from '../../../hooks/useSelection';\nimport styles from './Menu.module.css';\n\nexport interface MenuItem {\n disabled?: boolean;\n key: string;\n label: string;\n onSelect?: () => void;\n}\n\nexport interface MenuProps {\n children: ReactElement<Record<string, unknown>>;\n /** Abertura inicial no modo nao controlado. */\n defaultOpen?: boolean;\n items: readonly MenuItem[];\n label: string;\n /** Avisa cada abertura e fechamento pedidos pelo gatilho, pelo teclado, pela opcao ou pelo clique fora. */\n onOpenChange?: (open: boolean) => void;\n /** Controla a abertura; sem ele, o menu guarda o proprio estado. */\n open?: boolean;\n}\n\n/** Encadeia o manipulador do gatilho ao do menu, em vez de substitui-lo. */\nfunction encadear<E>(proprio: ((evento: E) => void) | undefined, seguinte: (evento: E) => void) {\n return (evento: E) => {\n proprio?.(evento);\n seguinte(evento);\n };\n}\n\nexport function Menu({ children, defaultOpen = false, items, label, onOpenChange, open: controlledOpen }: MenuProps) {\n const triggerRef = useRef<HTMLElement>(null);\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const [openedWith, setOpenedWith] = useState<'first' | 'last'>('first');\n const open = controlledOpen ?? internalOpen;\n\n function setOpen(proximo: boolean) {\n setInternalOpen(proximo);\n onOpenChange?.(proximo);\n }\n\n function abrir(from: 'first' | 'last') {\n setOpenedWith(from);\n setOpen(true);\n }\n\n // O foco volta na hora, antes de o `onSelect` montar o que vem depois, como um campo com `autoFocus` ou\n // um Dialog, que guarda o elemento em foco para devolver. Clique fora nao devolve: o foco e de quem foi clicado.\n function fechar(devolverFoco: boolean) {\n setOpen(false);\n\n if (devolverFoco) {\n triggerRef.current?.focus();\n }\n }\n\n const dono = children.props;\n const mergedTriggerRef = useMergedRefs(triggerRef, dono.ref as Ref<HTMLElement> | undefined);\n const trigger = cloneElement(children, {\n ref: mergedTriggerRef,\n 'aria-haspopup': 'menu',\n 'aria-expanded': open,\n onClick: encadear(dono.onClick as (evento: unknown) => void, () =>\n open ? fechar(true) : abrir('first'),\n ),\n onKeyDown: encadear(dono.onKeyDown as (evento: KeyboardEvent) => void, (event: KeyboardEvent) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n abrir(event.key === 'ArrowDown' ? 'first' : 'last');\n }\n }),\n });\n\n return (\n <>\n {trigger}\n {open &&\n typeof document !== 'undefined' &&\n createPortal(\n // O escopo proprio poe o menu na arvore de escopos do Dialog, cujo `contain` puxaria o foco de volta.\n // Sem `contain` aqui: ele disputaria o foco com o gatilho quando o menu fecha.\n <FocusScope>\n <MenuList\n items={items}\n label={label}\n openedWith={openedWith}\n onClose={fechar}\n triggerRef={triggerRef}\n />\n </FocusScope>,\n document.body,\n )}\n </>\n );\n}\n\nfunction MenuList({\n items,\n label,\n onClose,\n openedWith,\n triggerRef,\n}: {\n items: readonly MenuItem[];\n label: string;\n onClose: (devolverFoco: boolean) => void;\n openedWith: 'first' | 'last';\n triggerRef: React.RefObject<HTMLElement | null>;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const nodes = useRef(new Map<string, HTMLElement>());\n const collection = useMemo<SelectionItem[]>(\n () => items.map((item) => ({ key: item.key, disabled: item.disabled, textValue: item.label })),\n [items],\n );\n const selection = useSelection({ items: collection, mode: 'none' });\n const { focusedKey, focusFirst, focusLast, focusNext, focusPrevious, search } = selection;\n\n // useOverlayPosition entrega toda a altura disponivel; limitamos para que\n // uma lista longa nao ocupe a tela inteira.\n // Sem isto o gatilho conta como \"fora\": o ponteiro fecha o menu e o clique\n // dele reabre em seguida, e o menu pisca sem abrir.\n const { overlayProps } = useOverlay(\n {\n isOpen: true,\n onClose: () => onClose(false),\n isDismissable: true,\n shouldCloseOnBlur: false,\n shouldCloseOnInteractOutside: (elemento) => !triggerRef.current?.contains(elemento),\n },\n ref,\n );\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef: ref,\n placement: 'bottom start',\n offset: 6,\n containerPadding: 8,\n isOpen: true,\n });\n\n const alturaMaxima = Math.min(Number(positionProps.style?.maxHeight) || 360, 360);\n\n useEffect(() => {\n if (openedWith === 'last') {\n focusLast();\n } else {\n focusFirst();\n }\n // Posicao inicial depende apenas de como o menu foi aberto.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (focusedKey) {\n nodes.current.get(focusedKey)?.focus();\n }\n }, [focusedKey]);\n\n function acionar(item: MenuItem) {\n if (item.disabled) {\n return;\n }\n\n onClose(true);\n item.onSelect?.();\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n focusNext();\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n focusPrevious();\n } else if (event.key === 'Home') {\n event.preventDefault();\n focusFirst();\n } else if (event.key === 'End') {\n event.preventDefault();\n focusLast();\n } else if (event.key === 'Escape' || event.key === 'Tab') {\n onClose(true);\n } else if (event.key.length === 1 && !event.metaKey && !event.ctrlKey) {\n search(event.key);\n }\n }\n\n return (\n <div\n {...overlayProps}\n data-react-aria-top-layer=\"true\"\n ref={ref}\n className={styles.menu}\n style={{ ...positionProps.style, maxHeight: alturaMaxima }}\n role=\"menu\"\n aria-label={label}\n onKeyDown={(event) => {\n // Espalhar overlayProps antes nao basta: este onKeyDown o substituiria.\n handleKeyDown(event);\n overlayProps.onKeyDown?.(event);\n }}\n >\n {items.map((item) => (\n <button\n key={item.key}\n ref={(node) => {\n if (node) {\n nodes.current.set(item.key, node);\n } else {\n nodes.current.delete(item.key);\n }\n }}\n className={styles.item}\n type=\"button\"\n role=\"menuitem\"\n disabled={item.disabled}\n tabIndex={focusedKey === item.key ? 0 : -1}\n onClick={() => acionar(item)}\n >\n {item.label}\n </button>\n ))}\n </div>\n );\n}\n"],"names":["encadear","proprio","seguinte","evento","Menu","children","defaultOpen","items","label","onOpenChange","controlledOpen","triggerRef","useRef","internalOpen","setInternalOpen","useState","openedWith","setOpenedWith","open","setOpen","proximo","abrir","from","fechar","devolverFoco","_a","dono","mergedTriggerRef","useMergedRefs","trigger","cloneElement","event","jsxs","Fragment","createPortal","FocusScope","jsx","MenuList","onClose","ref","nodes","collection","useMemo","item","selection","useSelection","focusedKey","focusFirst","focusLast","focusNext","focusPrevious","search","overlayProps","useOverlay","elemento","positionProps","useOverlayPosition","alturaMaxima","useEffect","acionar","handleKeyDown","styles","node"],"mappings":";;;;;;;;AAqCA,SAASA,EAAYC,GAA4CC,GAA+B;AAC9F,SAAO,CAACC,MAAc;AACpB,IAAAF,KAAA,QAAAA,EAAUE,IACVD,EAASC,CAAM;AAAA,EACjB;AACF;AAEO,SAASC,EAAK,EAAE,UAAAC,GAAU,aAAAC,IAAc,IAAO,OAAAC,GAAO,OAAAC,GAAO,cAAAC,GAAc,MAAMC,KAA6B;AACnH,QAAMC,IAAaC,EAAoB,IAAI,GACrC,CAACC,GAAcC,CAAe,IAAIC,EAAST,CAAW,GACtD,CAACU,GAAYC,CAAa,IAAIF,EAA2B,OAAO,GAChEG,IAAOR,KAAkBG;AAE/B,WAASM,EAAQC,GAAkB;AACjC,IAAAN,EAAgBM,CAAO,GACvBX,KAAA,QAAAA,EAAeW;AAAA,EACjB;AAEA,WAASC,EAAMC,GAAwB;AACrC,IAAAL,EAAcK,CAAI,GAClBH,EAAQ,EAAI;AAAA,EACd;AAIA,WAASI,EAAOC,GAAuB;;AACrC,IAAAL,EAAQ,EAAK,GAETK,OACFC,IAAAd,EAAW,YAAX,QAAAc,EAAoB;AAAA,EAExB;AAEA,QAAMC,IAAOrB,EAAS,OAChBsB,IAAmBC,EAAcjB,GAAYe,EAAK,GAAmC,GACrFG,IAAUC,EAAazB,GAAU;AAAA,IACrC,KAAKsB;AAAA,IACL,iBAAiB;AAAA,IACjB,iBAAiBT;AAAA,IACjB,SAASlB;AAAA,MAAS0B,EAAK;AAAA,MAAsC,MAC3DR,IAAOK,EAAO,EAAI,IAAIF,EAAM,OAAO;AAAA,IAAA;AAAA,IAErC,WAAWrB,EAAS0B,EAAK,WAA8C,CAACK,MAAyB;AAC/F,OAAIA,EAAM,QAAQ,eAAeA,EAAM,QAAQ,eAC7CA,EAAM,eAAA,GACNV,EAAMU,EAAM,QAAQ,cAAc,UAAU,MAAM;AAAA,IAEtD,CAAC;AAAA,EAAA,CACF;AAED,SACE,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAJ;AAAA,IACAX,KACC,OAAO,WAAa,OACpBgB;AAAA;AAAA;AAAA,wBAGGC,GAAA,EACC,UAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,OAAA9B;AAAA,UACA,OAAAC;AAAA,UACA,YAAAQ;AAAA,UACA,SAASO;AAAA,UACT,YAAAZ;AAAA,QAAA;AAAA,MAAA,GAEJ;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EACX,GACJ;AAEJ;AAEA,SAAS0B,EAAS;AAAA,EAChB,OAAA9B;AAAA,EACA,OAAAC;AAAA,EACA,SAAA8B;AAAA,EACA,YAAAtB;AAAA,EACA,YAAAL;AACF,GAMG;;AACD,QAAM4B,IAAM3B,EAAuB,IAAI,GACjC4B,IAAQ5B,EAAO,oBAAI,KAA0B,GAC7C6B,IAAaC;AAAA,IACjB,MAAMnC,EAAM,IAAI,CAACoC,OAAU,EAAE,KAAKA,EAAK,KAAK,UAAUA,EAAK,UAAU,WAAWA,EAAK,QAAQ;AAAA,IAC7F,CAACpC,CAAK;AAAA,EAAA,GAEFqC,IAAYC,EAAa,EAAE,OAAOJ,GAAY,MAAM,QAAQ,GAC5D,EAAE,YAAAK,GAAY,YAAAC,GAAY,WAAAC,GAAW,WAAAC,GAAW,eAAAC,GAAe,QAAAC,MAAWP,GAM1E,EAAE,cAAAQ,MAAiBC;AAAA,IACvB;AAAA,MACE,QAAQ;AAAA,MACR,SAAS,MAAMf,EAAQ,EAAK;AAAA,MAC5B,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,8BAA8B,CAACgB,MAAA;;AAAa,kBAAC7B,IAAAd,EAAW,YAAX,QAAAc,EAAoB,SAAS6B;AAAA;AAAA,IAAQ;AAAA,IAEpFf;AAAA,EAAA,GAEI,EAAE,cAAcgB,EAAA,IAAkBC,EAAmB;AAAA,IACzD,WAAW7C;AAAA,IACX,YAAY4B;AAAA,IACZ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,QAAQ;AAAA,EAAA,CACT,GAEKkB,IAAe,KAAK,IAAI,QAAOhC,IAAA8B,EAAc,UAAd,gBAAA9B,EAAqB,SAAS,KAAK,KAAK,GAAG;AAEhF,EAAAiC,EAAU,MAAM;AACd,IAAI1C,MAAe,SACjBgC,EAAA,IAEAD,EAAA;AAAA,EAIJ,GAAG,CAAA,CAAE,GAELW,EAAU,MAAM;;AACd,IAAIZ,OACFrB,IAAAe,EAAM,QAAQ,IAAIM,CAAU,MAA5B,QAAArB,EAA+B;AAAA,EAEnC,GAAG,CAACqB,CAAU,CAAC;AAEf,WAASa,EAAQhB,GAAgB;;AAC/B,IAAIA,EAAK,aAITL,EAAQ,EAAI,IACZb,IAAAkB,EAAK,aAAL,QAAAlB,EAAA,KAAAkB;AAAA,EACF;AAEA,WAASiB,EAAc7B,GAAsC;AAC3D,IAAIA,EAAM,QAAQ,eAChBA,EAAM,eAAA,GACNkB,EAAA,KACSlB,EAAM,QAAQ,aACvBA,EAAM,eAAA,GACNmB,EAAA,KACSnB,EAAM,QAAQ,UACvBA,EAAM,eAAA,GACNgB,EAAA,KACShB,EAAM,QAAQ,SACvBA,EAAM,eAAA,GACNiB,EAAA,KACSjB,EAAM,QAAQ,YAAYA,EAAM,QAAQ,QACjDO,EAAQ,EAAI,IACHP,EAAM,IAAI,WAAW,KAAK,CAACA,EAAM,WAAW,CAACA,EAAM,WAC5DoB,EAAOpB,EAAM,GAAG;AAAA,EAEpB;AAEA,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGgB;AAAA,MACJ,6BAA0B;AAAA,MAC1B,KAAAb;AAAA,MACA,WAAWsB,EAAO;AAAA,MAClB,OAAO,EAAE,GAAGN,EAAc,OAAO,WAAWE,EAAA;AAAA,MAC5C,MAAK;AAAA,MACL,cAAYjD;AAAA,MACZ,WAAW,CAACuB,MAAU;;AAEpB,QAAA6B,EAAc7B,CAAK,IACnBN,IAAA2B,EAAa,cAAb,QAAA3B,EAAA,KAAA2B,GAAyBrB;AAAA,MAC3B;AAAA,MAEC,UAAAxB,EAAM,IAAI,CAACoC,MACV,gBAAAP;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,KAAK,CAAC0B,MAAS;AACb,YAAIA,IACFtB,EAAM,QAAQ,IAAIG,EAAK,KAAKmB,CAAI,IAEhCtB,EAAM,QAAQ,OAAOG,EAAK,GAAG;AAAA,UAEjC;AAAA,UACA,WAAWkB,EAAO;AAAA,UAClB,MAAK;AAAA,UACL,MAAK;AAAA,UACL,UAAUlB,EAAK;AAAA,UACf,UAAUG,MAAeH,EAAK,MAAM,IAAI;AAAA,UACxC,SAAS,MAAMgB,EAAQhB,CAAI;AAAA,UAE1B,UAAAA,EAAK;AAAA,QAAA;AAAA,QAfDA,EAAK;AAAA,MAAA,CAiBb;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),P=require("react"),O=require("react-dom"),q=require("@react-aria/focus"),n=require("@react-aria/overlays"),j=require("../../../hooks/useMergedRefs.cjs"),R=require("./Popover.module.css.cjs");function b({open:e,...o}){return!e||typeof document>"u"?null:O.createPortal(t.jsx(g,{...o}),document.body)}function g({children:e,className:o,offset:l=8,onClose:c,placement:i="bottom start",ref:a,style:d,triggerRef:s,...f}){const r=P.useRef(null),p=j.useMergedRefs(r,a),{overlayProps:v}=n.useOverlay({isOpen:!0,onClose:c,isDismissable:!0,shouldCloseOnBlur:!1,shouldCloseOnInteractOutside:m=>{var u;return!((u=s.current)!=null&&u.contains(m))}},r),{overlayProps:y}=n.useOverlayPosition({targetRef:s,overlayRef:r,placement:i,offset:l,isOpen:!0});return t.jsx(q.FocusScope,{restoreFocus:!0,autoFocus:!0,children:t.jsx("div",{...f,...v,ref:p,className:[R.default.popover,o].filter(Boolean).join(" "),"data-react-aria-top-layer":"true",style:{...d,...y.style},role:"dialog",children:e})})}exports.Popover=b;
|
|
2
|
+
//# sourceMappingURL=Popover.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.cjs","sources":["../../../../src/components/overlays/Popover/Popover.tsx"],"sourcesContent":["import { useRef, type ComponentPropsWithRef, type ReactNode, type RefObject } from 'react';\nimport { createPortal } from 'react-dom';\nimport { FocusScope } from '@react-aria/focus';\nimport { useOverlay, useOverlayPosition } from '@react-aria/overlays';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport styles from './Popover.module.css';\n\nexport type PopoverPlacement =\n | 'top'\n | 'top start'\n | 'top end'\n | 'bottom'\n | 'bottom start'\n | 'bottom end'\n | 'left'\n | 'right';\n\n/** As propriedades nativas vao ao elemento do painel; o `className` soma ao do sistema. */\nexport interface PopoverProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n children: ReactNode;\n offset?: number;\n onClose: () => void;\n open: boolean;\n placement?: PopoverPlacement;\n triggerRef: RefObject<HTMLElement | null>;\n}\n\nexport function Popover({ open, ...props }: PopoverProps) {\n // No servidor nao ha `document` para o portal; o Popover nasce na hidratacao.\n if (!open || typeof document === 'undefined') {\n return null;\n }\n\n return createPortal(<PopoverContent {...props} />, document.body);\n}\n\nfunction PopoverContent({\n children,\n className,\n offset = 8,\n onClose,\n placement = 'bottom start',\n ref: refDoConsumidor,\n style,\n triggerRef,\n ...props\n}: Omit<PopoverProps, 'open'>) {\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRefs(ref, refDoConsumidor);\n\n const { overlayProps } = useOverlay(\n {\n isOpen: true,\n onClose,\n isDismissable: true,\n shouldCloseOnBlur: false,\n // O gatilho nao conta como \"fora\": o clique dele e do consumidor, que decide se alterna.\n shouldCloseOnInteractOutside: (elemento) => !triggerRef.current?.contains(elemento),\n },\n ref,\n );\n\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef: ref,\n placement,\n offset,\n isOpen: true,\n });\n\n // Sem `contain`: o Popover nao bloqueia a pagina. O `restoreFocus` leva o Tab da borda ao elemento seguinte\n // ao gatilho, e nao ao fim do `body`, onde o painel vive.\n return (\n <FocusScope restoreFocus autoFocus>\n <div\n {...props}\n {...overlayProps}\n ref={mergedRef}\n className={[styles.popover, className].filter(Boolean).join(' ')}\n // Camada de cima: o `ariaHideOutside` do Dialog ignora quem a declara.\n data-react-aria-top-layer=\"true\"\n style={{ ...style, ...positionProps.style }}\n role=\"dialog\"\n >\n {children}\n </div>\n </FocusScope>\n );\n}\n"],"names":["Popover","open","props","createPortal","jsx","PopoverContent","children","className","offset","onClose","placement","refDoConsumidor","style","triggerRef","ref","useRef","mergedRef","useMergedRefs","overlayProps","useOverlay","elemento","_a","positionProps","useOverlayPosition","FocusScope","styles"],"mappings":"oTA2BO,SAASA,EAAQ,CAAE,KAAAC,EAAM,GAAGC,GAAuB,CAExD,MAAI,CAACD,GAAQ,OAAO,SAAa,IACxB,KAGFE,EAAAA,aAAaC,EAAAA,IAACC,EAAA,CAAgB,GAAGH,EAAO,EAAI,SAAS,IAAI,CAClE,CAEA,SAASG,EAAe,CACtB,SAAAC,EACA,UAAAC,EACA,OAAAC,EAAS,EACT,QAAAC,EACA,UAAAC,EAAY,eACZ,IAAKC,EACL,MAAAC,EACA,WAAAC,EACA,GAAGX,CACL,EAA+B,CAC7B,MAAMY,EAAMC,EAAAA,OAAuB,IAAI,EACjCC,EAAYC,EAAAA,cAAcH,EAAKH,CAAe,EAE9C,CAAE,aAAAO,GAAiBC,EAAAA,WACvB,CACE,OAAQ,GACR,QAAAV,EACA,cAAe,GACf,kBAAmB,GAEnB,6BAA+BW,GAAA,OAAa,SAACC,EAAAR,EAAW,UAAX,MAAAQ,EAAoB,SAASD,IAAQ,EAEpFN,CAAA,EAGI,CAAE,aAAcQ,CAAA,EAAkBC,qBAAmB,CACzD,UAAWV,EACX,WAAYC,EACZ,UAAAJ,EACA,OAAAF,EACA,OAAQ,EAAA,CACT,EAID,OACEJ,EAAAA,IAACoB,EAAAA,WAAA,CAAW,aAAY,GAAC,UAAS,GAChC,SAAApB,EAAAA,IAAC,MAAA,CACE,GAAGF,EACH,GAAGgB,EACJ,IAAKF,EACL,UAAW,CAACS,UAAO,QAASlB,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAE/D,4BAA0B,OAC1B,MAAO,CAAE,GAAGK,EAAO,GAAGU,EAAc,KAAA,EACpC,KAAK,SAEJ,SAAAhB,CAAA,CAAA,EAEL,CAEJ"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as v } from "react";
|
|
3
|
+
import { createPortal as O } from "react-dom";
|
|
4
|
+
import { FocusScope as P } from "@react-aria/focus";
|
|
5
|
+
import { useOverlay as R, useOverlayPosition as b } from "@react-aria/overlays";
|
|
6
|
+
import { useMergedRefs as h } from "../../../hooks/useMergedRefs.js";
|
|
7
|
+
import C from "./Popover.module.css.js";
|
|
8
|
+
function N({ open: e, ...o }) {
|
|
9
|
+
return !e || typeof document > "u" ? null : O(/* @__PURE__ */ t(F, { ...o }), document.body);
|
|
10
|
+
}
|
|
11
|
+
function F({
|
|
12
|
+
children: e,
|
|
13
|
+
className: o,
|
|
14
|
+
offset: u = 8,
|
|
15
|
+
onClose: i,
|
|
16
|
+
placement: l = "bottom start",
|
|
17
|
+
ref: a,
|
|
18
|
+
style: f,
|
|
19
|
+
triggerRef: s,
|
|
20
|
+
...p
|
|
21
|
+
}) {
|
|
22
|
+
const r = v(null), m = h(r, a), { overlayProps: c } = R(
|
|
23
|
+
{
|
|
24
|
+
isOpen: !0,
|
|
25
|
+
onClose: i,
|
|
26
|
+
isDismissable: !0,
|
|
27
|
+
shouldCloseOnBlur: !1,
|
|
28
|
+
// O gatilho nao conta como "fora": o clique dele e do consumidor, que decide se alterna.
|
|
29
|
+
shouldCloseOnInteractOutside: (y) => {
|
|
30
|
+
var n;
|
|
31
|
+
return !((n = s.current) != null && n.contains(y));
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
r
|
|
35
|
+
), { overlayProps: d } = b({
|
|
36
|
+
targetRef: s,
|
|
37
|
+
overlayRef: r,
|
|
38
|
+
placement: l,
|
|
39
|
+
offset: u,
|
|
40
|
+
isOpen: !0
|
|
41
|
+
});
|
|
42
|
+
return /* @__PURE__ */ t(P, { restoreFocus: !0, autoFocus: !0, children: /* @__PURE__ */ t(
|
|
43
|
+
"div",
|
|
44
|
+
{
|
|
45
|
+
...p,
|
|
46
|
+
...c,
|
|
47
|
+
ref: m,
|
|
48
|
+
className: [C.popover, o].filter(Boolean).join(" "),
|
|
49
|
+
"data-react-aria-top-layer": "true",
|
|
50
|
+
style: { ...f, ...d.style },
|
|
51
|
+
role: "dialog",
|
|
52
|
+
children: e
|
|
53
|
+
}
|
|
54
|
+
) });
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
N as Popover
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=Popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.js","sources":["../../../../src/components/overlays/Popover/Popover.tsx"],"sourcesContent":["import { useRef, type ComponentPropsWithRef, type ReactNode, type RefObject } from 'react';\nimport { createPortal } from 'react-dom';\nimport { FocusScope } from '@react-aria/focus';\nimport { useOverlay, useOverlayPosition } from '@react-aria/overlays';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport styles from './Popover.module.css';\n\nexport type PopoverPlacement =\n | 'top'\n | 'top start'\n | 'top end'\n | 'bottom'\n | 'bottom start'\n | 'bottom end'\n | 'left'\n | 'right';\n\n/** As propriedades nativas vao ao elemento do painel; o `className` soma ao do sistema. */\nexport interface PopoverProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n children: ReactNode;\n offset?: number;\n onClose: () => void;\n open: boolean;\n placement?: PopoverPlacement;\n triggerRef: RefObject<HTMLElement | null>;\n}\n\nexport function Popover({ open, ...props }: PopoverProps) {\n // No servidor nao ha `document` para o portal; o Popover nasce na hidratacao.\n if (!open || typeof document === 'undefined') {\n return null;\n }\n\n return createPortal(<PopoverContent {...props} />, document.body);\n}\n\nfunction PopoverContent({\n children,\n className,\n offset = 8,\n onClose,\n placement = 'bottom start',\n ref: refDoConsumidor,\n style,\n triggerRef,\n ...props\n}: Omit<PopoverProps, 'open'>) {\n const ref = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRefs(ref, refDoConsumidor);\n\n const { overlayProps } = useOverlay(\n {\n isOpen: true,\n onClose,\n isDismissable: true,\n shouldCloseOnBlur: false,\n // O gatilho nao conta como \"fora\": o clique dele e do consumidor, que decide se alterna.\n shouldCloseOnInteractOutside: (elemento) => !triggerRef.current?.contains(elemento),\n },\n ref,\n );\n\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef: ref,\n placement,\n offset,\n isOpen: true,\n });\n\n // Sem `contain`: o Popover nao bloqueia a pagina. O `restoreFocus` leva o Tab da borda ao elemento seguinte\n // ao gatilho, e nao ao fim do `body`, onde o painel vive.\n return (\n <FocusScope restoreFocus autoFocus>\n <div\n {...props}\n {...overlayProps}\n ref={mergedRef}\n className={[styles.popover, className].filter(Boolean).join(' ')}\n // Camada de cima: o `ariaHideOutside` do Dialog ignora quem a declara.\n data-react-aria-top-layer=\"true\"\n style={{ ...style, ...positionProps.style }}\n role=\"dialog\"\n >\n {children}\n </div>\n </FocusScope>\n );\n}\n"],"names":["Popover","open","props","createPortal","jsx","PopoverContent","children","className","offset","onClose","placement","refDoConsumidor","style","triggerRef","ref","useRef","mergedRef","useMergedRefs","overlayProps","useOverlay","elemento","_a","positionProps","useOverlayPosition","FocusScope","styles"],"mappings":";;;;;;;AA2BO,SAASA,EAAQ,EAAE,MAAAC,GAAM,GAAGC,KAAuB;AAExD,SAAI,CAACD,KAAQ,OAAO,WAAa,MACxB,OAGFE,EAAa,gBAAAC,EAACC,GAAA,EAAgB,GAAGH,GAAO,GAAI,SAAS,IAAI;AAClE;AAEA,SAASG,EAAe;AAAA,EACtB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,KAAKC;AAAA,EACL,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGX;AACL,GAA+B;AAC7B,QAAMY,IAAMC,EAAuB,IAAI,GACjCC,IAAYC,EAAcH,GAAKH,CAAe,GAE9C,EAAE,cAAAO,MAAiBC;AAAA,IACvB;AAAA,MACE,QAAQ;AAAA,MACR,SAAAV;AAAA,MACA,eAAe;AAAA,MACf,mBAAmB;AAAA;AAAA,MAEnB,8BAA8B,CAACW,MAAA;;AAAa,kBAACC,IAAAR,EAAW,YAAX,QAAAQ,EAAoB,SAASD;AAAA;AAAA,IAAQ;AAAA,IAEpFN;AAAA,EAAA,GAGI,EAAE,cAAcQ,EAAA,IAAkBC,EAAmB;AAAA,IACzD,WAAWV;AAAA,IACX,YAAYC;AAAA,IACZ,WAAAJ;AAAA,IACA,QAAAF;AAAA,IACA,QAAQ;AAAA,EAAA,CACT;AAID,SACE,gBAAAJ,EAACoB,GAAA,EAAW,cAAY,IAAC,WAAS,IAChC,UAAA,gBAAApB;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACH,GAAGgB;AAAA,MACJ,KAAKF;AAAA,MACL,WAAW,CAACS,EAAO,SAASlB,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MAE/D,6BAA0B;AAAA,MAC1B,OAAO,EAAE,GAAGK,GAAO,GAAGU,EAAc,MAAA;AAAA,MACpC,MAAK;AAAA,MAEJ,UAAAhB;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),o=require("react"),g=require("react-dom"),R=require("@react-aria/overlays"),v=require("../../../hooks/useMergedRefs.cjs"),M=require("./Tooltip.module.css.cjs"),E=120;function c(t,u){return n=>{t==null||t(n),u(n)}}function j({children:t,content:u,delay:n=500,placement:f="top"}){const i=o.useRef(null),[a,s]=o.useState(!1),e=o.useRef(void 0),p=`tooltip-${o.useId()}`,d=o.useCallback(()=>{clearTimeout(e.current),s(!1)},[]),m=o.useCallback(()=>{clearTimeout(e.current),e.current=setTimeout(()=>s(!1),E)},[]);o.useEffect(()=>()=>clearTimeout(e.current),[]);const r=t.props,y=v.useMergedRefs(i,r.ref),T=o.cloneElement(t,{ref:y,"aria-describedby":a?[r["aria-describedby"],p].filter(Boolean).join(" "):r["aria-describedby"],onMouseEnter:c(r.onMouseEnter,()=>{clearTimeout(e.current),e.current=setTimeout(()=>s(!0),n)}),onMouseLeave:c(r.onMouseLeave,m),onFocus:c(r.onFocus,()=>s(!0)),onBlur:c(r.onBlur,d),onKeyDown:c(r.onKeyDown,b=>{b.key==="Escape"&&d()})});return l.jsxs(l.Fragment,{children:[T,a&&g.createPortal(l.jsx(q,{content:u,id:p,onMouseEnter:()=>clearTimeout(e.current),onMouseLeave:d,placement:f,triggerRef:i}),document.body)]})}function q({content:t,id:u,onMouseEnter:n,onMouseLeave:f,placement:i,triggerRef:a}){const s=o.useRef(null),{overlayProps:e}=R.useOverlayPosition({targetRef:a,overlayRef:s,placement:i,offset:6,isOpen:!0});return l.jsx("div",{ref:s,className:M.default.tooltip,"data-react-aria-top-layer":"true",id:u,onMouseEnter:n,onMouseLeave:f,role:"tooltip",style:e.style,children:t})}exports.Tooltip=j;
|
|
2
|
+
//# sourceMappingURL=Tooltip.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.cjs","sources":["../../../../src/components/overlays/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n cloneElement,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useOverlayPosition } from '@react-aria/overlays';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport styles from './Tooltip.module.css';\n\nexport type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport interface TooltipProps {\n children: ReactElement<Record<string, unknown>>;\n content: ReactNode;\n delay?: number;\n placement?: TooltipPlacement;\n}\n\n/** Tempo para o ponteiro atravessar a folga entre o gatilho e o balao. */\nconst TRAVESSIA = 120;\n\nfunction chain<E>(own: ((event: E) => void) | undefined, next: (event: E) => void) {\n return (event: E) => {\n own?.(event);\n next(event);\n };\n}\n\nexport function Tooltip({ children, content, delay = 500, placement = 'top' }: TooltipProps) {\n const triggerRef = useRef<HTMLElement>(null);\n const [open, setOpen] = useState(false);\n const timer = useRef<ReturnType<typeof setTimeout>>(undefined);\n const id = `tooltip-${useId()}`;\n\n const hide = useCallback(() => {\n clearTimeout(timer.current);\n setOpen(false);\n }, []);\n\n // O balao aceita o ponteiro (WCAG 1.4.13): sair do gatilho espera a travessia ate ele antes de fechar.\n const hideSoon = useCallback(() => {\n clearTimeout(timer.current);\n timer.current = setTimeout(() => setOpen(false), TRAVESSIA);\n }, []);\n\n useEffect(() => () => clearTimeout(timer.current), []);\n\n const props = children.props;\n const mergedTriggerRef = useMergedRefs(triggerRef, props.ref as Ref<HTMLElement> | undefined);\n const trigger = cloneElement(children, {\n ref: mergedTriggerRef,\n 'aria-describedby': open ? [props['aria-describedby'], id].filter(Boolean).join(' ') : props['aria-describedby'],\n onMouseEnter: chain(props.onMouseEnter as (e: MouseEvent) => void, () => {\n clearTimeout(timer.current);\n timer.current = setTimeout(() => setOpen(true), delay);\n }),\n onMouseLeave: chain(props.onMouseLeave as (e: MouseEvent) => void, hideSoon),\n onFocus: chain(props.onFocus as (e: FocusEvent) => void, () => setOpen(true)),\n onBlur: chain(props.onBlur as (e: FocusEvent) => void, hide),\n onKeyDown: chain(props.onKeyDown as (e: KeyboardEvent) => void, (event) => {\n if (event.key === 'Escape') {\n hide();\n }\n }),\n });\n\n return (\n <>\n {trigger}\n {open &&\n createPortal(\n <TooltipBubble\n content={content}\n id={id}\n onMouseEnter={() => clearTimeout(timer.current)}\n onMouseLeave={hide}\n placement={placement}\n triggerRef={triggerRef}\n />,\n document.body,\n )}\n </>\n );\n}\n\nfunction TooltipBubble({\n content,\n id,\n onMouseEnter,\n onMouseLeave,\n placement,\n triggerRef,\n}: {\n content: ReactNode;\n id: string;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n placement: TooltipPlacement;\n triggerRef: React.RefObject<HTMLElement | null>;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const { overlayProps } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef: ref,\n placement,\n offset: 6,\n isOpen: true,\n });\n\n return (\n <div\n ref={ref}\n className={styles.tooltip}\n data-react-aria-top-layer=\"true\"\n id={id}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n role=\"tooltip\"\n style={overlayProps.style}\n >\n {content}\n </div>\n );\n}\n"],"names":["TRAVESSIA","chain","own","next","event","Tooltip","children","content","delay","placement","triggerRef","useRef","open","setOpen","useState","timer","id","useId","hide","useCallback","hideSoon","useEffect","props","mergedTriggerRef","useMergedRefs","trigger","cloneElement","jsxs","Fragment","createPortal","jsx","TooltipBubble","onMouseEnter","onMouseLeave","ref","overlayProps","useOverlayPosition","styles"],"mappings":"qRA6BMA,EAAY,IAElB,SAASC,EAASC,EAAuCC,EAA0B,CACjF,OAAQC,GAAa,CACnBF,GAAA,MAAAA,EAAME,GACND,EAAKC,CAAK,CACZ,CACF,CAEO,SAASC,EAAQ,CAAE,SAAAC,EAAU,QAAAC,EAAS,MAAAC,EAAQ,IAAK,UAAAC,EAAY,OAAuB,CAC3F,MAAMC,EAAaC,EAAAA,OAAoB,IAAI,EACrC,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAS,EAAK,EAChCC,EAAQJ,EAAAA,OAAsC,MAAS,EACvDK,EAAK,WAAWC,EAAAA,MAAA,CAAO,GAEvBC,EAAOC,EAAAA,YAAY,IAAM,CAC7B,aAAaJ,EAAM,OAAO,EAC1BF,EAAQ,EAAK,CACf,EAAG,CAAA,CAAE,EAGCO,EAAWD,EAAAA,YAAY,IAAM,CACjC,aAAaJ,EAAM,OAAO,EAC1BA,EAAM,QAAU,WAAW,IAAMF,EAAQ,EAAK,EAAGb,CAAS,CAC5D,EAAG,CAAA,CAAE,EAELqB,EAAAA,UAAU,IAAM,IAAM,aAAaN,EAAM,OAAO,EAAG,CAAA,CAAE,EAErD,MAAMO,EAAQhB,EAAS,MACjBiB,EAAmBC,EAAAA,cAAcd,EAAYY,EAAM,GAAmC,EACtFG,EAAUC,EAAAA,aAAapB,EAAU,CACrC,IAAKiB,EACL,mBAAoBX,EAAO,CAACU,EAAM,kBAAkB,EAAGN,CAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAAIM,EAAM,kBAAkB,EAC/G,aAAcrB,EAAMqB,EAAM,aAAyC,IAAM,CACvE,aAAaP,EAAM,OAAO,EAC1BA,EAAM,QAAU,WAAW,IAAMF,EAAQ,EAAI,EAAGL,CAAK,CACvD,CAAC,EACD,aAAcP,EAAMqB,EAAM,aAAyCF,CAAQ,EAC3E,QAASnB,EAAMqB,EAAM,QAAoC,IAAMT,EAAQ,EAAI,CAAC,EAC5E,OAAQZ,EAAMqB,EAAM,OAAmCJ,CAAI,EAC3D,UAAWjB,EAAMqB,EAAM,UAA0ClB,GAAU,CACrEA,EAAM,MAAQ,UAChBc,EAAA,CAEJ,CAAC,CAAA,CACF,EAED,OACES,EAAAA,KAAAC,WAAA,CACG,SAAA,CAAAH,EACAb,GACCiB,EAAAA,aACEC,EAAAA,IAACC,EAAA,CACC,QAAAxB,EACA,GAAAS,EACA,aAAc,IAAM,aAAaD,EAAM,OAAO,EAC9C,aAAcG,EACd,UAAAT,EACA,WAAAC,CAAA,CAAA,EAEF,SAAS,IAAA,CACX,EACJ,CAEJ,CAEA,SAASqB,EAAc,CACrB,QAAAxB,EACA,GAAAS,EACA,aAAAgB,EACA,aAAAC,EACA,UAAAxB,EACA,WAAAC,CACF,EAOG,CACD,MAAMwB,EAAMvB,EAAAA,OAAuB,IAAI,EACjC,CAAE,aAAAwB,CAAA,EAAiBC,qBAAmB,CAC1C,UAAW1B,EACX,WAAYwB,EACZ,UAAAzB,EACA,OAAQ,EACR,OAAQ,EAAA,CACT,EAED,OACEqB,EAAAA,IAAC,MAAA,CACC,IAAAI,EACA,UAAWG,EAAAA,QAAO,QAClB,4BAA0B,OAC1B,GAAArB,EACA,aAAAgB,EACA,aAAAC,EACA,KAAK,UACL,MAAOE,EAAa,MAEnB,SAAA5B,CAAA,CAAA,CAGP"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsxs as v, Fragment as E, jsx as d } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as f, useState as M, useId as R, useCallback as p, useEffect as h, cloneElement as B } from "react";
|
|
3
|
+
import { createPortal as S } from "react-dom";
|
|
4
|
+
import { useOverlayPosition as j } from "@react-aria/overlays";
|
|
5
|
+
import { useMergedRefs as x } from "../../../hooks/useMergedRefs.js";
|
|
6
|
+
import F from "./Tooltip.module.css.js";
|
|
7
|
+
const L = 120;
|
|
8
|
+
function i(o, s) {
|
|
9
|
+
return (n) => {
|
|
10
|
+
o == null || o(n), s(n);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function C({ children: o, content: s, delay: n = 500, placement: a = "top" }) {
|
|
14
|
+
const u = f(null), [c, t] = M(!1), e = f(void 0), m = `tooltip-${R()}`, l = p(() => {
|
|
15
|
+
clearTimeout(e.current), t(!1);
|
|
16
|
+
}, []), y = p(() => {
|
|
17
|
+
clearTimeout(e.current), e.current = setTimeout(() => t(!1), L);
|
|
18
|
+
}, []);
|
|
19
|
+
h(() => () => clearTimeout(e.current), []);
|
|
20
|
+
const r = o.props, T = x(u, r.ref), b = B(o, {
|
|
21
|
+
ref: T,
|
|
22
|
+
"aria-describedby": c ? [r["aria-describedby"], m].filter(Boolean).join(" ") : r["aria-describedby"],
|
|
23
|
+
onMouseEnter: i(r.onMouseEnter, () => {
|
|
24
|
+
clearTimeout(e.current), e.current = setTimeout(() => t(!0), n);
|
|
25
|
+
}),
|
|
26
|
+
onMouseLeave: i(r.onMouseLeave, y),
|
|
27
|
+
onFocus: i(r.onFocus, () => t(!0)),
|
|
28
|
+
onBlur: i(r.onBlur, l),
|
|
29
|
+
onKeyDown: i(r.onKeyDown, (g) => {
|
|
30
|
+
g.key === "Escape" && l();
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
return /* @__PURE__ */ v(E, { children: [
|
|
34
|
+
b,
|
|
35
|
+
c && S(
|
|
36
|
+
/* @__PURE__ */ d(
|
|
37
|
+
O,
|
|
38
|
+
{
|
|
39
|
+
content: s,
|
|
40
|
+
id: m,
|
|
41
|
+
onMouseEnter: () => clearTimeout(e.current),
|
|
42
|
+
onMouseLeave: l,
|
|
43
|
+
placement: a,
|
|
44
|
+
triggerRef: u
|
|
45
|
+
}
|
|
46
|
+
),
|
|
47
|
+
document.body
|
|
48
|
+
)
|
|
49
|
+
] });
|
|
50
|
+
}
|
|
51
|
+
function O({
|
|
52
|
+
content: o,
|
|
53
|
+
id: s,
|
|
54
|
+
onMouseEnter: n,
|
|
55
|
+
onMouseLeave: a,
|
|
56
|
+
placement: u,
|
|
57
|
+
triggerRef: c
|
|
58
|
+
}) {
|
|
59
|
+
const t = f(null), { overlayProps: e } = j({
|
|
60
|
+
targetRef: c,
|
|
61
|
+
overlayRef: t,
|
|
62
|
+
placement: u,
|
|
63
|
+
offset: 6,
|
|
64
|
+
isOpen: !0
|
|
65
|
+
});
|
|
66
|
+
return /* @__PURE__ */ d(
|
|
67
|
+
"div",
|
|
68
|
+
{
|
|
69
|
+
ref: t,
|
|
70
|
+
className: F.tooltip,
|
|
71
|
+
"data-react-aria-top-layer": "true",
|
|
72
|
+
id: s,
|
|
73
|
+
onMouseEnter: n,
|
|
74
|
+
onMouseLeave: a,
|
|
75
|
+
role: "tooltip",
|
|
76
|
+
style: e.style,
|
|
77
|
+
children: o
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
C as Tooltip
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/overlays/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n cloneElement,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useOverlayPosition } from '@react-aria/overlays';\nimport { useMergedRefs } from '../../../hooks/useMergedRefs';\nimport styles from './Tooltip.module.css';\n\nexport type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport interface TooltipProps {\n children: ReactElement<Record<string, unknown>>;\n content: ReactNode;\n delay?: number;\n placement?: TooltipPlacement;\n}\n\n/** Tempo para o ponteiro atravessar a folga entre o gatilho e o balao. */\nconst TRAVESSIA = 120;\n\nfunction chain<E>(own: ((event: E) => void) | undefined, next: (event: E) => void) {\n return (event: E) => {\n own?.(event);\n next(event);\n };\n}\n\nexport function Tooltip({ children, content, delay = 500, placement = 'top' }: TooltipProps) {\n const triggerRef = useRef<HTMLElement>(null);\n const [open, setOpen] = useState(false);\n const timer = useRef<ReturnType<typeof setTimeout>>(undefined);\n const id = `tooltip-${useId()}`;\n\n const hide = useCallback(() => {\n clearTimeout(timer.current);\n setOpen(false);\n }, []);\n\n // O balao aceita o ponteiro (WCAG 1.4.13): sair do gatilho espera a travessia ate ele antes de fechar.\n const hideSoon = useCallback(() => {\n clearTimeout(timer.current);\n timer.current = setTimeout(() => setOpen(false), TRAVESSIA);\n }, []);\n\n useEffect(() => () => clearTimeout(timer.current), []);\n\n const props = children.props;\n const mergedTriggerRef = useMergedRefs(triggerRef, props.ref as Ref<HTMLElement> | undefined);\n const trigger = cloneElement(children, {\n ref: mergedTriggerRef,\n 'aria-describedby': open ? [props['aria-describedby'], id].filter(Boolean).join(' ') : props['aria-describedby'],\n onMouseEnter: chain(props.onMouseEnter as (e: MouseEvent) => void, () => {\n clearTimeout(timer.current);\n timer.current = setTimeout(() => setOpen(true), delay);\n }),\n onMouseLeave: chain(props.onMouseLeave as (e: MouseEvent) => void, hideSoon),\n onFocus: chain(props.onFocus as (e: FocusEvent) => void, () => setOpen(true)),\n onBlur: chain(props.onBlur as (e: FocusEvent) => void, hide),\n onKeyDown: chain(props.onKeyDown as (e: KeyboardEvent) => void, (event) => {\n if (event.key === 'Escape') {\n hide();\n }\n }),\n });\n\n return (\n <>\n {trigger}\n {open &&\n createPortal(\n <TooltipBubble\n content={content}\n id={id}\n onMouseEnter={() => clearTimeout(timer.current)}\n onMouseLeave={hide}\n placement={placement}\n triggerRef={triggerRef}\n />,\n document.body,\n )}\n </>\n );\n}\n\nfunction TooltipBubble({\n content,\n id,\n onMouseEnter,\n onMouseLeave,\n placement,\n triggerRef,\n}: {\n content: ReactNode;\n id: string;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n placement: TooltipPlacement;\n triggerRef: React.RefObject<HTMLElement | null>;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const { overlayProps } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef: ref,\n placement,\n offset: 6,\n isOpen: true,\n });\n\n return (\n <div\n ref={ref}\n className={styles.tooltip}\n data-react-aria-top-layer=\"true\"\n id={id}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n role=\"tooltip\"\n style={overlayProps.style}\n >\n {content}\n </div>\n );\n}\n"],"names":["TRAVESSIA","chain","own","next","event","Tooltip","children","content","delay","placement","triggerRef","useRef","open","setOpen","useState","timer","id","useId","hide","useCallback","hideSoon","useEffect","props","mergedTriggerRef","useMergedRefs","trigger","cloneElement","jsxs","Fragment","createPortal","jsx","TooltipBubble","onMouseEnter","onMouseLeave","ref","overlayProps","useOverlayPosition","styles"],"mappings":";;;;;;AA6BA,MAAMA,IAAY;AAElB,SAASC,EAASC,GAAuCC,GAA0B;AACjF,SAAO,CAACC,MAAa;AACnB,IAAAF,KAAA,QAAAA,EAAME,IACND,EAAKC,CAAK;AAAA,EACZ;AACF;AAEO,SAASC,EAAQ,EAAE,UAAAC,GAAU,SAAAC,GAAS,OAAAC,IAAQ,KAAK,WAAAC,IAAY,SAAuB;AAC3F,QAAMC,IAAaC,EAAoB,IAAI,GACrC,CAACC,GAAMC,CAAO,IAAIC,EAAS,EAAK,GAChCC,IAAQJ,EAAsC,MAAS,GACvDK,IAAK,WAAWC,EAAA,CAAO,IAEvBC,IAAOC,EAAY,MAAM;AAC7B,iBAAaJ,EAAM,OAAO,GAC1BF,EAAQ,EAAK;AAAA,EACf,GAAG,CAAA,CAAE,GAGCO,IAAWD,EAAY,MAAM;AACjC,iBAAaJ,EAAM,OAAO,GAC1BA,EAAM,UAAU,WAAW,MAAMF,EAAQ,EAAK,GAAGb,CAAS;AAAA,EAC5D,GAAG,CAAA,CAAE;AAEL,EAAAqB,EAAU,MAAM,MAAM,aAAaN,EAAM,OAAO,GAAG,CAAA,CAAE;AAErD,QAAMO,IAAQhB,EAAS,OACjBiB,IAAmBC,EAAcd,GAAYY,EAAM,GAAmC,GACtFG,IAAUC,EAAapB,GAAU;AAAA,IACrC,KAAKiB;AAAA,IACL,oBAAoBX,IAAO,CAACU,EAAM,kBAAkB,GAAGN,CAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,IAAIM,EAAM,kBAAkB;AAAA,IAC/G,cAAcrB,EAAMqB,EAAM,cAAyC,MAAM;AACvE,mBAAaP,EAAM,OAAO,GAC1BA,EAAM,UAAU,WAAW,MAAMF,EAAQ,EAAI,GAAGL,CAAK;AAAA,IACvD,CAAC;AAAA,IACD,cAAcP,EAAMqB,EAAM,cAAyCF,CAAQ;AAAA,IAC3E,SAASnB,EAAMqB,EAAM,SAAoC,MAAMT,EAAQ,EAAI,CAAC;AAAA,IAC5E,QAAQZ,EAAMqB,EAAM,QAAmCJ,CAAI;AAAA,IAC3D,WAAWjB,EAAMqB,EAAM,WAAyC,CAAClB,MAAU;AACzE,MAAIA,EAAM,QAAQ,YAChBc,EAAA;AAAA,IAEJ,CAAC;AAAA,EAAA,CACF;AAED,SACE,gBAAAS,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAH;AAAA,IACAb,KACCiB;AAAA,MACE,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAAxB;AAAA,UACA,IAAAS;AAAA,UACA,cAAc,MAAM,aAAaD,EAAM,OAAO;AAAA,UAC9C,cAAcG;AAAA,UACd,WAAAT;AAAA,UACA,YAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,MAEF,SAAS;AAAA,IAAA;AAAA,EACX,GACJ;AAEJ;AAEA,SAASqB,EAAc;AAAA,EACrB,SAAAxB;AAAA,EACA,IAAAS;AAAA,EACA,cAAAgB;AAAA,EACA,cAAAC;AAAA,EACA,WAAAxB;AAAA,EACA,YAAAC;AACF,GAOG;AACD,QAAMwB,IAAMvB,EAAuB,IAAI,GACjC,EAAE,cAAAwB,EAAA,IAAiBC,EAAmB;AAAA,IAC1C,WAAW1B;AAAA,IACX,YAAYwB;AAAA,IACZ,WAAAzB;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EAAA,CACT;AAED,SACE,gBAAAqB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAI;AAAA,MACA,WAAWG,EAAO;AAAA,MAClB,6BAA0B;AAAA,MAC1B,IAAArB;AAAA,MACA,cAAAgB;AAAA,MACA,cAAAC;AAAA,MACA,MAAK;AAAA,MACL,OAAOE,EAAa;AAAA,MAEnB,UAAA5B;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|