@plenustech/design-system 0.2.0 → 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 +5 -3
- 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/forms/Checkbox/Checkbox.d.ts +3 -2
- package/dist/types/components/forms/ComboBox/ComboBox.d.ts +15 -4
- package/dist/types/components/forms/ComboBox/index.d.ts +1 -1
- package/dist/types/components/icons/icons.d.ts +4 -0
- package/dist/types/components/icons/index.d.ts +1 -1
- package/dist/types/components/navigation/Pagination/Pagination.d.ts +3 -1
- package/dist/types/components/overlays/Dialog/Dialog.d.ts +6 -1
- package/dist/types/components/overlays/Dialog/index.d.ts +1 -1
- package/dist/types/index.d.ts +9 -3
- 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 -2
- package/dist/plenus-design-system.cjs.map +0 -1
- package/dist/plenus-design-system.es.js +0 -6297
- package/dist/plenus-design-system.es.js.map +0 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsxs as l, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { useState as j, useEffect as k } from "react";
|
|
3
|
+
import e from "./CodeBlock.module.css.js";
|
|
4
|
+
import { SYNTAX_LABELS as x, tokenizeLines as E } from "./syntax.js";
|
|
5
|
+
import { Button as L } from "../../actions/Button/Button.js";
|
|
6
|
+
const T = 2e3;
|
|
7
|
+
function D({
|
|
8
|
+
className: u,
|
|
9
|
+
code: c,
|
|
10
|
+
copyable: d = !0,
|
|
11
|
+
fileName: i,
|
|
12
|
+
highlightedLines: f = [],
|
|
13
|
+
language: N,
|
|
14
|
+
lineNumbers: B = !1,
|
|
15
|
+
syntax: n,
|
|
16
|
+
wrap: m = !1,
|
|
17
|
+
...C
|
|
18
|
+
}) {
|
|
19
|
+
const [o, p] = j(!1);
|
|
20
|
+
k(() => {
|
|
21
|
+
if (!o)
|
|
22
|
+
return;
|
|
23
|
+
const a = setTimeout(() => p(!1), T);
|
|
24
|
+
return () => clearTimeout(a);
|
|
25
|
+
}, [o]);
|
|
26
|
+
const g = new Set(f), r = N ?? (n && x[n]), v = !!(i || r) || d;
|
|
27
|
+
return /* @__PURE__ */ l("div", { ...C, className: [e.codeBlock, u].filter(Boolean).join(" "), children: [
|
|
28
|
+
v && /* @__PURE__ */ l("div", { className: e.header, children: [
|
|
29
|
+
/* @__PURE__ */ l("span", { className: e.meta, children: [
|
|
30
|
+
i && /* @__PURE__ */ s("span", { className: e.fileName, children: i }),
|
|
31
|
+
r && /* @__PURE__ */ s("span", { className: e.language, children: r })
|
|
32
|
+
] }),
|
|
33
|
+
d && /* @__PURE__ */ s(
|
|
34
|
+
L,
|
|
35
|
+
{
|
|
36
|
+
onClick: () => {
|
|
37
|
+
var a;
|
|
38
|
+
return void ((a = navigator.clipboard) == null ? void 0 : a.writeText(c).then(() => p(!0)));
|
|
39
|
+
},
|
|
40
|
+
size: "sm",
|
|
41
|
+
variant: "ghost",
|
|
42
|
+
children: o ? "Copiado" : "Copiar"
|
|
43
|
+
}
|
|
44
|
+
),
|
|
45
|
+
/* @__PURE__ */ s("span", { className: e.status, role: "status", children: o ? "Código copiado" : "" })
|
|
46
|
+
] }),
|
|
47
|
+
/* @__PURE__ */ s(
|
|
48
|
+
"pre",
|
|
49
|
+
{
|
|
50
|
+
className: [e.body, m && e.wrap, B && e.numbered].filter(Boolean).join(" "),
|
|
51
|
+
tabIndex: m ? void 0 : 0,
|
|
52
|
+
children: /* @__PURE__ */ s("code", { className: e.code, children: E(c, n).map((a, h) => {
|
|
53
|
+
const S = g.has(h + 1) ? "mark" : "span";
|
|
54
|
+
return /* @__PURE__ */ s(S, { className: e.line, children: /* @__PURE__ */ s("span", { className: e.content, children: a.map(
|
|
55
|
+
(t, b) => t.kind ? /* @__PURE__ */ s("span", { className: e[t.kind], children: t.text }, b) : t.text
|
|
56
|
+
) }) }, h);
|
|
57
|
+
}) })
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
] });
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
D as CodeBlock
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=CodeBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.js","sources":["../../../../src/components/data-display/CodeBlock/CodeBlock.tsx"],"sourcesContent":["import { useEffect, useState, type ComponentPropsWithRef } from 'react';\nimport { Button } from '../../actions/Button';\nimport styles from './CodeBlock.module.css';\nimport { SYNTAX_LABELS, tokenizeLines, type CodeSyntax } from './syntax';\n\nconst COPY_FEEDBACK_MS = 2000;\n\nexport interface CodeBlockProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n code: string;\n copyable?: boolean;\n fileName?: string;\n /** Linhas destacadas, contadas a partir de 1. */\n highlightedLines?: readonly number[];\n /** Rotulo do cabecalho. Sem ele, vale o nome da sintaxe. */\n language?: string;\n lineNumbers?: boolean;\n /** Linguagem do realce de cores. Sem ela, o codigo sai numa cor so. */\n syntax?: CodeSyntax;\n wrap?: boolean;\n}\n\nexport function CodeBlock({\n className,\n code,\n copyable = true,\n fileName,\n highlightedLines = [],\n language,\n lineNumbers = false,\n syntax,\n wrap = false,\n ...props\n}: CodeBlockProps) {\n const [copied, setCopied] = useState(false);\n\n useEffect(() => {\n if (!copied) {\n return;\n }\n\n const timer = setTimeout(() => setCopied(false), COPY_FEEDBACK_MS);\n\n return () => clearTimeout(timer);\n }, [copied]);\n\n const highlighted = new Set(highlightedLines);\n const label = language ?? (syntax && SYNTAX_LABELS[syntax]);\n const hasHeader = Boolean(fileName || label) || copyable;\n\n return (\n <div {...props} className={[styles.codeBlock, className].filter(Boolean).join(' ')}>\n {hasHeader && (\n <div className={styles.header}>\n <span className={styles.meta}>\n {fileName && <span className={styles.fileName}>{fileName}</span>}\n {label && <span className={styles.language}>{label}</span>}\n </span>\n {copyable && (\n <Button\n onClick={() => void navigator.clipboard?.writeText(code).then(() => setCopied(true))}\n size=\"sm\"\n variant=\"ghost\"\n >\n {copied ? 'Copiado' : 'Copiar'}\n </Button>\n )}\n <span className={styles.status} role=\"status\">\n {copied ? 'Código copiado' : ''}\n </span>\n </div>\n )}\n {/* Sem quebra, a linha longa rola de lado, e quem usa teclado so a alcanca se o bloco receber foco. */}\n <pre\n className={[styles.body, wrap && styles.wrap, lineNumbers && styles.numbered].filter(Boolean).join(' ')}\n tabIndex={wrap ? undefined : 0}\n >\n <code className={styles.code}>\n {tokenizeLines(code, syntax).map((tokens, index) => {\n const Line = highlighted.has(index + 1) ? 'mark' : 'span';\n\n return (\n <Line className={styles.line} key={index}>\n <span className={styles.content}>\n {tokens.map((token, position) =>\n token.kind ? (\n <span className={styles[token.kind]} key={position}>\n {token.text}\n </span>\n ) : (\n token.text\n ),\n )}\n </span>\n </Line>\n );\n })}\n </code>\n </pre>\n </div>\n );\n}\n"],"names":["COPY_FEEDBACK_MS","CodeBlock","className","code","copyable","fileName","highlightedLines","language","lineNumbers","syntax","wrap","props","copied","setCopied","useState","useEffect","timer","highlighted","label","SYNTAX_LABELS","hasHeader","jsxs","styles","jsx","Button","_a","tokenizeLines","tokens","index","Line","token","position"],"mappings":";;;;;AAKA,MAAMA,IAAmB;AAgBlB,SAASC,EAAU;AAAA,EACxB,WAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,UAAAC;AAAA,EACA,kBAAAC,IAAmB,CAAA;AAAA,EACnB,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,QAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GAAmB;AACjB,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK;AAE1C,EAAAC,EAAU,MAAM;AACd,QAAI,CAACH;AACH;AAGF,UAAMI,IAAQ,WAAW,MAAMH,EAAU,EAAK,GAAGb,CAAgB;AAEjE,WAAO,MAAM,aAAagB,CAAK;AAAA,EACjC,GAAG,CAACJ,CAAM,CAAC;AAEX,QAAMK,IAAc,IAAI,IAAIX,CAAgB,GACtCY,IAAQX,MAAaE,KAAUU,EAAcV,CAAM,IACnDW,IAAY,GAAQf,KAAYa,MAAUd;AAEhD,SACE,gBAAAiB,EAAC,OAAA,EAAK,GAAGV,GAAO,WAAW,CAACW,EAAO,WAAWpB,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAC9E,UAAA;AAAA,IAAAkB,KACC,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAO,QACrB,UAAA;AAAA,MAAA,gBAAAD,EAAC,QAAA,EAAK,WAAWC,EAAO,MACrB,UAAA;AAAA,QAAAjB,KAAY,gBAAAkB,EAAC,QAAA,EAAK,WAAWD,EAAO,UAAW,UAAAjB,GAAS;AAAA,QACxDa,KAAS,gBAAAK,EAAC,QAAA,EAAK,WAAWD,EAAO,UAAW,UAAAJ,EAAA,CAAM;AAAA,MAAA,GACrD;AAAA,MACCd,KACC,gBAAAmB;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,SAAS,MAAA;;AAAM,0BAAKC,IAAA,UAAU,cAAV,gBAAAA,EAAqB,UAAUtB,GAAM,KAAK,MAAMU,EAAU,EAAI;AAAA;AAAA,UAClF,MAAK;AAAA,UACL,SAAQ;AAAA,UAEP,cAAS,YAAY;AAAA,QAAA;AAAA,MAAA;AAAA,MAG1B,gBAAAU,EAAC,UAAK,WAAWD,EAAO,QAAQ,MAAK,UAClC,UAAAV,IAAS,mBAAmB,GAAA,CAC/B;AAAA,IAAA,GACF;AAAA,IAGF,gBAAAW;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,CAACD,EAAO,MAAMZ,KAAQY,EAAO,MAAMd,KAAec,EAAO,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,QACtG,UAAUZ,IAAO,SAAY;AAAA,QAE7B,UAAA,gBAAAa,EAAC,QAAA,EAAK,WAAWD,EAAO,MACrB,UAAAI,EAAcvB,GAAMM,CAAM,EAAE,IAAI,CAACkB,GAAQC,MAAU;AAClD,gBAAMC,IAAOZ,EAAY,IAAIW,IAAQ,CAAC,IAAI,SAAS;AAEnD,iBACE,gBAAAL,EAACM,GAAA,EAAK,WAAWP,EAAO,MACtB,4BAAC,QAAA,EAAK,WAAWA,EAAO,SACrB,UAAAK,EAAO;AAAA,YAAI,CAACG,GAAOC,MAClBD,EAAM,yBACH,QAAA,EAAK,WAAWR,EAAOQ,EAAM,IAAI,GAC/B,UAAAA,EAAM,QADiCC,CAE1C,IAEAD,EAAM;AAAA,UAAA,EAEV,CACF,KAXiCF,CAYnC;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_codeBlock_w5psy_1",e="_header_w5psy_9",n="_meta_w5psy_19",o="_fileName_w5psy_31",_="_language_w5psy_37",s="_status_w5psy_41",a="_body_w5psy_50",c="_wrap_w5psy_68",r="_code_w5psy_1",y="_line_w5psy_84",p="_content_w5psy_96",u="_keyword_w5psy_100",w="_string_w5psy_104",d="_number_w5psy_108",i="_comment_w5psy_112",m="_annotation_w5psy_116",l="_property_w5psy_124",b="_tag_w5psy_128",g="_attribute_w5psy_132",f="_numbered_w5psy_137",k={codeBlock:t,header:e,meta:n,fileName:o,language:_,status:s,body:a,wrap:c,code:r,line:y,content:p,keyword:u,string:w,number:d,comment:i,annotation:m,function:"_function_w5psy_120",property:l,tag:b,attribute:g,numbered:f};exports.annotation=m;exports.attribute=g;exports.body=a;exports.code=r;exports.codeBlock=t;exports.comment=i;exports.content=p;exports.default=k;exports.fileName=o;exports.header=e;exports.keyword=u;exports.language=_;exports.line=y;exports.meta=n;exports.number=d;exports.numbered=f;exports.property=l;exports.status=s;exports.string=w;exports.tag=b;exports.wrap=c;
|
|
2
|
+
//# sourceMappingURL=CodeBlock.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const t = "_codeBlock_w5psy_1", _ = "_header_w5psy_9", n = "_meta_w5psy_19", e = "_fileName_w5psy_31", o = "_language_w5psy_37", s = "_status_w5psy_41", c = "_body_w5psy_50", a = "_wrap_w5psy_68", p = "_code_w5psy_1", y = "_line_w5psy_84", r = "_content_w5psy_96", w = "_keyword_w5psy_100", d = "_string_w5psy_104", m = "_number_w5psy_108", u = "_comment_w5psy_112", i = "_annotation_w5psy_116", l = "_property_w5psy_124", b = "_tag_w5psy_128", g = "_attribute_w5psy_132", f = "_numbered_w5psy_137", k = {
|
|
2
|
+
codeBlock: t,
|
|
3
|
+
header: _,
|
|
4
|
+
meta: n,
|
|
5
|
+
fileName: e,
|
|
6
|
+
language: o,
|
|
7
|
+
status: s,
|
|
8
|
+
body: c,
|
|
9
|
+
wrap: a,
|
|
10
|
+
code: p,
|
|
11
|
+
line: y,
|
|
12
|
+
content: r,
|
|
13
|
+
keyword: w,
|
|
14
|
+
string: d,
|
|
15
|
+
number: m,
|
|
16
|
+
comment: u,
|
|
17
|
+
annotation: i,
|
|
18
|
+
function: "_function_w5psy_120",
|
|
19
|
+
property: l,
|
|
20
|
+
tag: b,
|
|
21
|
+
attribute: g,
|
|
22
|
+
numbered: f
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
i as annotation,
|
|
26
|
+
g as attribute,
|
|
27
|
+
c as body,
|
|
28
|
+
p as code,
|
|
29
|
+
t as codeBlock,
|
|
30
|
+
u as comment,
|
|
31
|
+
r as content,
|
|
32
|
+
k as default,
|
|
33
|
+
e as fileName,
|
|
34
|
+
_ as header,
|
|
35
|
+
w as keyword,
|
|
36
|
+
o as language,
|
|
37
|
+
y as line,
|
|
38
|
+
n as meta,
|
|
39
|
+
m as number,
|
|
40
|
+
f as numbered,
|
|
41
|
+
l as property,
|
|
42
|
+
s as status,
|
|
43
|
+
d as string,
|
|
44
|
+
b as tag,
|
|
45
|
+
a as wrap
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=CodeBlock.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A={java:"Java",javascript:"JavaScript",jsx:"JSX",typescript:"TypeScript",tsx:"TSX",sql:"SQL",json:"JSON",shell:"Shell"};function a(e){return new RegExp(`\\b(?:${e.trim().split(/\s+/).join("|")})\\b`)}const d=/\/\*[\s\S]*?(?:\*\/|$)/,b=/\/\/.*/,c=/"(?:\\.|[^"\\\n])*"?/,S=/'(?:\\.|[^'\\\n])*'?/,l=/\b(?:0[xX][\da-fA-F_]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[eE][+-]?\d+)?)[lLfFdDn]?\b/,u=/\b[A-Za-z_$][\w$]*(?=\s*\()/,w=/@[A-Za-z_]\w*/,x=a(`
|
|
2
|
+
abstract assert boolean break byte case catch char class const continue default do double else enum extends
|
|
3
|
+
final finally float for goto if implements import instanceof int interface long native new package private
|
|
4
|
+
protected public record return sealed short static strictfp super switch synchronized this throw throws
|
|
5
|
+
transient try var void volatile while yield true false null
|
|
6
|
+
`),y=`
|
|
7
|
+
async await break case catch class const continue debugger default delete do else export extends finally for
|
|
8
|
+
from function get if import in instanceof let new of return set static super switch this throw try typeof var
|
|
9
|
+
void while with yield true false null undefined
|
|
10
|
+
`,L=`
|
|
11
|
+
abstract any as asserts bigint boolean declare enum implements infer interface is keyof namespace never number
|
|
12
|
+
object private protected public readonly satisfies string symbol type unique unknown
|
|
13
|
+
`,_=a(`
|
|
14
|
+
add all alter and as asc begin between by case check column commit constraint create cross database default
|
|
15
|
+
delete desc distinct drop else end exists foreign from full grant group having if in index inner insert into
|
|
16
|
+
is join key left like limit not null offset on or order outer primary procedure references returning revoke
|
|
17
|
+
right rollback schema select set table then transaction trigger true false union unique update values view
|
|
18
|
+
when where with
|
|
19
|
+
`),T=a(`
|
|
20
|
+
case declare do done elif else esac exit export fi for function if in local readonly return select then until
|
|
21
|
+
while
|
|
22
|
+
`),E=[["comment",b],["comment",d],["string",/`(?:\\[\s\S]|[^`\\])*`?/],["string",c],["string",S],["number",l]],p=[...E,["keyword",a(y)],["function",u]],m=[...E,["annotation",w],["keyword",a(y+L)],["function",u]],g=[[void 0,new RegExp("(?<=>)[^<>{}\\n]+(?=<)")],["tag",new RegExp("(?<=<\\/|(?:^|[^\\w$)\\]])<)[A-Za-z][\\w.]*")],["attribute",/\b[A-Za-z_][\w-]*(?==[{"'])/]],O={java:[["comment",b],["comment",d],["string",/"""[\s\S]*?(?:"""|$)/],["string",c],["string",/'(?:\\.|[^'\\\n])'/],["annotation",w],["number",l],["keyword",x],["function",u]],javascript:p,jsx:[...g,...p],typescript:m,tsx:[...g,...m],sql:[["comment",/--.*/],["comment",d],["string",/'(?:''|[^'])*'?/],["number",l],["keyword",_],["function",u]],json:[["property",/"(?:\\.|[^"\\\n])*"(?=\s*:)/],["string",c],["number",/-?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b/],["keyword",/\b(?:true|false|null)\b/]],shell:[["comment",new RegExp("(?<![^\\s;])#.*")],["string",c],["string",S],["property",/\$(?:\{[^}\n]*\}|\w+|[@*#?$!])/],["keyword",T],["number",l]]},R=new Set(["sql"]),h=new Map;function j(e){const i=h.get(e);if(i)return i;const s=O[e],r=R.has(e)?"gi":"g",n={kinds:s.map(([t])=>t),pattern:new RegExp(s.map(([,t])=>`(${t.source})`).join("|"),r)};return h.set(e,n),n}function k(e,i){const{kinds:s,pattern:r}=j(i),n=[];let t=0;for(const o of e.matchAll(r)){o.index>t&&n.push({text:e.slice(t,o.index)});const f=s[o.slice(1).findIndex(v=>v!==void 0)];n.push(f?{kind:f,text:o[0]}:{text:o[0]}),t=o.index+o[0].length}return t<e.length&&n.push({text:e.slice(t)}),n}function N(e,i){const s=[[]];for(const r of i?k(e,i):[{text:e}])r.text.split(`
|
|
23
|
+
`).forEach((n,t)=>{t>0&&s.push([]),n&&s[s.length-1].push({...r,text:n})});return s}exports.SYNTAX_LABELS=A;exports.tokenize=k;exports.tokenizeLines=N;
|
|
24
|
+
//# sourceMappingURL=syntax.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax.cjs","sources":["../../../../src/components/data-display/CodeBlock/syntax.ts"],"sourcesContent":["/**\n * Realce de sintaxe por regras lexicas, sem analisador de linguagem: reconhece o\n * que ajuda a ler o trecho — palavra reservada, texto, numero, comentario,\n * anotacao, chamada, propriedade, tag e atributo — e deixa o resto sem cor.\n */\n\nexport type CodeSyntax = 'java' | 'javascript' | 'jsx' | 'typescript' | 'tsx' | 'sql' | 'json' | 'shell';\n\nexport type CodeTokenKind =\n | 'annotation'\n | 'attribute'\n | 'comment'\n | 'function'\n | 'keyword'\n | 'number'\n | 'property'\n | 'string'\n | 'tag';\n\nexport interface CodeToken {\n kind?: CodeTokenKind;\n text: string;\n}\n\n/** Regra sem papel reconhece um trecho para que nenhuma outra o pinte, como o texto entre tags. */\ntype Rule = readonly [CodeTokenKind | undefined, RegExp];\n\ninterface Grammar {\n kinds: readonly (CodeTokenKind | undefined)[];\n pattern: RegExp;\n}\n\nexport const SYNTAX_LABELS: Readonly<Record<CodeSyntax, string>> = {\n java: 'Java',\n javascript: 'JavaScript',\n jsx: 'JSX',\n typescript: 'TypeScript',\n tsx: 'TSX',\n sql: 'SQL',\n json: 'JSON',\n shell: 'Shell',\n};\n\nfunction words(list: string): RegExp {\n return new RegExp(`\\\\b(?:${list.trim().split(/\\s+/).join('|')})\\\\b`);\n}\n\nconst BLOCK_COMMENT = /\\/\\*[\\s\\S]*?(?:\\*\\/|$)/;\nconst LINE_COMMENT = /\\/\\/.*/;\nconst DOUBLE_QUOTED = /\"(?:\\\\.|[^\"\\\\\\n])*\"?/;\nconst SINGLE_QUOTED = /'(?:\\\\.|[^'\\\\\\n])*'?/;\nconst NUMBER = /\\b(?:0[xX][\\da-fA-F_]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[eE][+-]?\\d+)?)[lLfFdDn]?\\b/;\nconst CALL = /\\b[A-Za-z_$][\\w$]*(?=\\s*\\()/;\nconst ANNOTATION = /@[A-Za-z_]\\w*/;\n\nconst JAVA_KEYWORDS = words(`\n abstract assert boolean break byte case catch char class const continue default do double else enum extends\n final finally float for goto if implements import instanceof int interface long native new package private\n protected public record return sealed short static strictfp super switch synchronized this throw throws\n transient try var void volatile while yield true false null\n`);\n\nconst JAVASCRIPT_WORDS = `\n async await break case catch class const continue debugger default delete do else export extends finally for\n from function get if import in instanceof let new of return set static super switch this throw try typeof var\n void while with yield true false null undefined\n`;\n\nconst TYPESCRIPT_WORDS = `\n abstract any as asserts bigint boolean declare enum implements infer interface is keyof namespace never number\n object private protected public readonly satisfies string symbol type unique unknown\n`;\n\nconst SQL_KEYWORDS = words(`\n add all alter and as asc begin between by case check column commit constraint create cross database default\n delete desc distinct drop else end exists foreign from full grant group having if in index inner insert into\n is join key left like limit not null offset on or order outer primary procedure references returning revoke\n right rollback schema select set table then transaction trigger true false union unique update values view\n when where with\n`);\n\nconst SHELL_KEYWORDS = words(`\n case declare do done elif else esac exit export fi for function if in local readonly return select then until\n while\n`);\n\nconst JAVASCRIPT_RULES: readonly Rule[] = [\n ['comment', LINE_COMMENT],\n ['comment', BLOCK_COMMENT],\n ['string', /`(?:\\\\[\\s\\S]|[^`\\\\])*`?/],\n ['string', DOUBLE_QUOTED],\n ['string', SINGLE_QUOTED],\n ['number', NUMBER],\n];\n\nconst JAVASCRIPT: readonly Rule[] = [...JAVASCRIPT_RULES, ['keyword', words(JAVASCRIPT_WORDS)], ['function', CALL]];\n\nconst TYPESCRIPT: readonly Rule[] = [\n ...JAVASCRIPT_RULES,\n ['annotation', ANNOTATION],\n ['keyword', words(JAVASCRIPT_WORDS + TYPESCRIPT_WORDS)],\n ['function', CALL],\n];\n\n/**\n * Vem antes das regras da linguagem. O `<` colado a um nome e o generico de `useState<string>`, e nao uma tag; o\n * texto entre `>` e `<` e conteudo, e o numero dentro dele nao e literal.\n */\nconst JSX_RULES: readonly Rule[] = [\n [undefined, /(?<=>)[^<>{}\\n]+(?=<)/],\n ['tag', /(?<=<\\/|(?:^|[^\\w$)\\]])<)[A-Za-z][\\w.]*/],\n ['attribute', /\\b[A-Za-z_][\\w-]*(?==[{\"'])/],\n];\n\nconst RULES: Readonly<Record<CodeSyntax, readonly Rule[]>> = {\n java: [\n ['comment', LINE_COMMENT],\n ['comment', BLOCK_COMMENT],\n ['string', /\"\"\"[\\s\\S]*?(?:\"\"\"|$)/],\n ['string', DOUBLE_QUOTED],\n ['string', /'(?:\\\\.|[^'\\\\\\n])'/],\n ['annotation', ANNOTATION],\n ['number', NUMBER],\n ['keyword', JAVA_KEYWORDS],\n ['function', CALL],\n ],\n javascript: JAVASCRIPT,\n jsx: [...JSX_RULES, ...JAVASCRIPT],\n typescript: TYPESCRIPT,\n tsx: [...JSX_RULES, ...TYPESCRIPT],\n sql: [\n ['comment', /--.*/],\n ['comment', BLOCK_COMMENT],\n ['string', /'(?:''|[^'])*'?/],\n ['number', NUMBER],\n ['keyword', SQL_KEYWORDS],\n ['function', CALL],\n ],\n json: [\n ['property', /\"(?:\\\\.|[^\"\\\\\\n])*\"(?=\\s*:)/],\n ['string', DOUBLE_QUOTED],\n ['number', /-?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b/],\n ['keyword', /\\b(?:true|false|null)\\b/],\n ],\n shell: [\n ['comment', /(?<![^\\s;])#.*/],\n ['string', DOUBLE_QUOTED],\n ['string', SINGLE_QUOTED],\n ['property', /\\$(?:\\{[^}\\n]*\\}|\\w+|[@*#?$!])/],\n ['keyword', SHELL_KEYWORDS],\n ['number', NUMBER],\n ],\n};\n\n/** O SQL e lido sem distincao de caixa: `select` e `SELECT` sao a mesma palavra. */\nconst CASE_INSENSITIVE: ReadonlySet<CodeSyntax> = new Set(['sql']);\n\nconst grammars = new Map<CodeSyntax, Grammar>();\n\nfunction grammarOf(syntax: CodeSyntax): Grammar {\n const cached = grammars.get(syntax);\n\n if (cached) {\n return cached;\n }\n\n const rules = RULES[syntax];\n const flags = CASE_INSENSITIVE.has(syntax) ? 'gi' : 'g';\n const grammar = {\n kinds: rules.map(([kind]) => kind),\n pattern: new RegExp(rules.map(([, rule]) => `(${rule.source})`).join('|'), flags),\n };\n\n grammars.set(syntax, grammar);\n\n return grammar;\n}\n\nexport function tokenize(code: string, syntax: CodeSyntax): CodeToken[] {\n const { kinds, pattern } = grammarOf(syntax);\n const tokens: CodeToken[] = [];\n let end = 0;\n\n for (const match of code.matchAll(pattern)) {\n if (match.index > end) {\n tokens.push({ text: code.slice(end, match.index) });\n }\n\n const kind = kinds[match.slice(1).findIndex((group) => group !== undefined)];\n\n tokens.push(kind ? { kind, text: match[0] } : { text: match[0] });\n end = match.index + match[0].length;\n }\n\n if (end < code.length) {\n tokens.push({ text: code.slice(end) });\n }\n\n return tokens;\n}\n\n/** As linhas do trecho, cada uma com os seus pedacos: o comentario de bloco que atravessa linhas e partido nelas. */\nexport function tokenizeLines(code: string, syntax?: CodeSyntax): CodeToken[][] {\n const lines: CodeToken[][] = [[]];\n\n for (const token of syntax ? tokenize(code, syntax) : [{ text: code }]) {\n token.text.split('\\n').forEach((part, index) => {\n if (index > 0) {\n lines.push([]);\n }\n\n if (part) {\n lines[lines.length - 1].push({ ...token, text: part });\n }\n });\n }\n\n return lines;\n}\n"],"names":["SYNTAX_LABELS","words","list","BLOCK_COMMENT","LINE_COMMENT","DOUBLE_QUOTED","SINGLE_QUOTED","NUMBER","CALL","ANNOTATION","JAVA_KEYWORDS","JAVASCRIPT_WORDS","TYPESCRIPT_WORDS","SQL_KEYWORDS","SHELL_KEYWORDS","JAVASCRIPT_RULES","JAVASCRIPT","TYPESCRIPT","JSX_RULES","RULES","CASE_INSENSITIVE","grammars","grammarOf","syntax","cached","rules","flags","grammar","kind","rule","tokenize","code","kinds","pattern","tokens","end","match","group","tokenizeLines","lines","token","part","index"],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
const j = {
|
|
2
|
+
java: "Java",
|
|
3
|
+
javascript: "JavaScript",
|
|
4
|
+
jsx: "JSX",
|
|
5
|
+
typescript: "TypeScript",
|
|
6
|
+
tsx: "TSX",
|
|
7
|
+
sql: "SQL",
|
|
8
|
+
json: "JSON",
|
|
9
|
+
shell: "Shell"
|
|
10
|
+
};
|
|
11
|
+
function a(e) {
|
|
12
|
+
return new RegExp(`\\b(?:${e.trim().split(/\s+/).join("|")})\\b`);
|
|
13
|
+
}
|
|
14
|
+
const d = /\/\*[\s\S]*?(?:\*\/|$)/, b = /\/\/.*/, c = /"(?:\\.|[^"\\\n])*"?/, w = /'(?:\\.|[^'\\\n])*'?/, l = /\b(?:0[xX][\da-fA-F_]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[eE][+-]?\d+)?)[lLfFdDn]?\b/, u = /\b[A-Za-z_$][\w$]*(?=\s*\()/, S = /@[A-Za-z_]\w*/, x = a(`
|
|
15
|
+
abstract assert boolean break byte case catch char class const continue default do double else enum extends
|
|
16
|
+
final finally float for goto if implements import instanceof int interface long native new package private
|
|
17
|
+
protected public record return sealed short static strictfp super switch synchronized this throw throws
|
|
18
|
+
transient try var void volatile while yield true false null
|
|
19
|
+
`), y = `
|
|
20
|
+
async await break case catch class const continue debugger default delete do else export extends finally for
|
|
21
|
+
from function get if import in instanceof let new of return set static super switch this throw try typeof var
|
|
22
|
+
void while with yield true false null undefined
|
|
23
|
+
`, v = `
|
|
24
|
+
abstract any as asserts bigint boolean declare enum implements infer interface is keyof namespace never number
|
|
25
|
+
object private protected public readonly satisfies string symbol type unique unknown
|
|
26
|
+
`, A = a(`
|
|
27
|
+
add all alter and as asc begin between by case check column commit constraint create cross database default
|
|
28
|
+
delete desc distinct drop else end exists foreign from full grant group having if in index inner insert into
|
|
29
|
+
is join key left like limit not null offset on or order outer primary procedure references returning revoke
|
|
30
|
+
right rollback schema select set table then transaction trigger true false union unique update values view
|
|
31
|
+
when where with
|
|
32
|
+
`), _ = a(`
|
|
33
|
+
case declare do done elif else esac exit export fi for function if in local readonly return select then until
|
|
34
|
+
while
|
|
35
|
+
`), E = [
|
|
36
|
+
["comment", b],
|
|
37
|
+
["comment", d],
|
|
38
|
+
["string", /`(?:\\[\s\S]|[^`\\])*`?/],
|
|
39
|
+
["string", c],
|
|
40
|
+
["string", w],
|
|
41
|
+
["number", l]
|
|
42
|
+
], p = [...E, ["keyword", a(y)], ["function", u]], m = [
|
|
43
|
+
...E,
|
|
44
|
+
["annotation", S],
|
|
45
|
+
["keyword", a(y + v)],
|
|
46
|
+
["function", u]
|
|
47
|
+
], h = [
|
|
48
|
+
[void 0, new RegExp("(?<=>)[^<>{}\\n]+(?=<)")],
|
|
49
|
+
["tag", new RegExp("(?<=<\\/|(?:^|[^\\w$)\\]])<)[A-Za-z][\\w.]*")],
|
|
50
|
+
["attribute", /\b[A-Za-z_][\w-]*(?==[{"'])/]
|
|
51
|
+
], L = {
|
|
52
|
+
java: [
|
|
53
|
+
["comment", b],
|
|
54
|
+
["comment", d],
|
|
55
|
+
["string", /"""[\s\S]*?(?:"""|$)/],
|
|
56
|
+
["string", c],
|
|
57
|
+
["string", /'(?:\\.|[^'\\\n])'/],
|
|
58
|
+
["annotation", S],
|
|
59
|
+
["number", l],
|
|
60
|
+
["keyword", x],
|
|
61
|
+
["function", u]
|
|
62
|
+
],
|
|
63
|
+
javascript: p,
|
|
64
|
+
jsx: [...h, ...p],
|
|
65
|
+
typescript: m,
|
|
66
|
+
tsx: [...h, ...m],
|
|
67
|
+
sql: [
|
|
68
|
+
["comment", /--.*/],
|
|
69
|
+
["comment", d],
|
|
70
|
+
["string", /'(?:''|[^'])*'?/],
|
|
71
|
+
["number", l],
|
|
72
|
+
["keyword", A],
|
|
73
|
+
["function", u]
|
|
74
|
+
],
|
|
75
|
+
json: [
|
|
76
|
+
["property", /"(?:\\.|[^"\\\n])*"(?=\s*:)/],
|
|
77
|
+
["string", c],
|
|
78
|
+
["number", /-?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b/],
|
|
79
|
+
["keyword", /\b(?:true|false|null)\b/]
|
|
80
|
+
],
|
|
81
|
+
shell: [
|
|
82
|
+
["comment", new RegExp("(?<![^\\s;])#.*")],
|
|
83
|
+
["string", c],
|
|
84
|
+
["string", w],
|
|
85
|
+
["property", /\$(?:\{[^}\n]*\}|\w+|[@*#?$!])/],
|
|
86
|
+
["keyword", _],
|
|
87
|
+
["number", l]
|
|
88
|
+
]
|
|
89
|
+
}, T = /* @__PURE__ */ new Set(["sql"]), g = /* @__PURE__ */ new Map();
|
|
90
|
+
function R(e) {
|
|
91
|
+
const r = g.get(e);
|
|
92
|
+
if (r)
|
|
93
|
+
return r;
|
|
94
|
+
const s = L[e], i = T.has(e) ? "gi" : "g", n = {
|
|
95
|
+
kinds: s.map(([t]) => t),
|
|
96
|
+
pattern: new RegExp(s.map(([, t]) => `(${t.source})`).join("|"), i)
|
|
97
|
+
};
|
|
98
|
+
return g.set(e, n), n;
|
|
99
|
+
}
|
|
100
|
+
function O(e, r) {
|
|
101
|
+
const { kinds: s, pattern: i } = R(r), n = [];
|
|
102
|
+
let t = 0;
|
|
103
|
+
for (const o of e.matchAll(i)) {
|
|
104
|
+
o.index > t && n.push({ text: e.slice(t, o.index) });
|
|
105
|
+
const f = s[o.slice(1).findIndex((k) => k !== void 0)];
|
|
106
|
+
n.push(f ? { kind: f, text: o[0] } : { text: o[0] }), t = o.index + o[0].length;
|
|
107
|
+
}
|
|
108
|
+
return t < e.length && n.push({ text: e.slice(t) }), n;
|
|
109
|
+
}
|
|
110
|
+
function I(e, r) {
|
|
111
|
+
const s = [[]];
|
|
112
|
+
for (const i of r ? O(e, r) : [{ text: e }])
|
|
113
|
+
i.text.split(`
|
|
114
|
+
`).forEach((n, t) => {
|
|
115
|
+
t > 0 && s.push([]), n && s[s.length - 1].push({ ...i, text: n });
|
|
116
|
+
});
|
|
117
|
+
return s;
|
|
118
|
+
}
|
|
119
|
+
export {
|
|
120
|
+
j as SYNTAX_LABELS,
|
|
121
|
+
O as tokenize,
|
|
122
|
+
I as tokenizeLines
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=syntax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax.js","sources":["../../../../src/components/data-display/CodeBlock/syntax.ts"],"sourcesContent":["/**\n * Realce de sintaxe por regras lexicas, sem analisador de linguagem: reconhece o\n * que ajuda a ler o trecho — palavra reservada, texto, numero, comentario,\n * anotacao, chamada, propriedade, tag e atributo — e deixa o resto sem cor.\n */\n\nexport type CodeSyntax = 'java' | 'javascript' | 'jsx' | 'typescript' | 'tsx' | 'sql' | 'json' | 'shell';\n\nexport type CodeTokenKind =\n | 'annotation'\n | 'attribute'\n | 'comment'\n | 'function'\n | 'keyword'\n | 'number'\n | 'property'\n | 'string'\n | 'tag';\n\nexport interface CodeToken {\n kind?: CodeTokenKind;\n text: string;\n}\n\n/** Regra sem papel reconhece um trecho para que nenhuma outra o pinte, como o texto entre tags. */\ntype Rule = readonly [CodeTokenKind | undefined, RegExp];\n\ninterface Grammar {\n kinds: readonly (CodeTokenKind | undefined)[];\n pattern: RegExp;\n}\n\nexport const SYNTAX_LABELS: Readonly<Record<CodeSyntax, string>> = {\n java: 'Java',\n javascript: 'JavaScript',\n jsx: 'JSX',\n typescript: 'TypeScript',\n tsx: 'TSX',\n sql: 'SQL',\n json: 'JSON',\n shell: 'Shell',\n};\n\nfunction words(list: string): RegExp {\n return new RegExp(`\\\\b(?:${list.trim().split(/\\s+/).join('|')})\\\\b`);\n}\n\nconst BLOCK_COMMENT = /\\/\\*[\\s\\S]*?(?:\\*\\/|$)/;\nconst LINE_COMMENT = /\\/\\/.*/;\nconst DOUBLE_QUOTED = /\"(?:\\\\.|[^\"\\\\\\n])*\"?/;\nconst SINGLE_QUOTED = /'(?:\\\\.|[^'\\\\\\n])*'?/;\nconst NUMBER = /\\b(?:0[xX][\\da-fA-F_]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[eE][+-]?\\d+)?)[lLfFdDn]?\\b/;\nconst CALL = /\\b[A-Za-z_$][\\w$]*(?=\\s*\\()/;\nconst ANNOTATION = /@[A-Za-z_]\\w*/;\n\nconst JAVA_KEYWORDS = words(`\n abstract assert boolean break byte case catch char class const continue default do double else enum extends\n final finally float for goto if implements import instanceof int interface long native new package private\n protected public record return sealed short static strictfp super switch synchronized this throw throws\n transient try var void volatile while yield true false null\n`);\n\nconst JAVASCRIPT_WORDS = `\n async await break case catch class const continue debugger default delete do else export extends finally for\n from function get if import in instanceof let new of return set static super switch this throw try typeof var\n void while with yield true false null undefined\n`;\n\nconst TYPESCRIPT_WORDS = `\n abstract any as asserts bigint boolean declare enum implements infer interface is keyof namespace never number\n object private protected public readonly satisfies string symbol type unique unknown\n`;\n\nconst SQL_KEYWORDS = words(`\n add all alter and as asc begin between by case check column commit constraint create cross database default\n delete desc distinct drop else end exists foreign from full grant group having if in index inner insert into\n is join key left like limit not null offset on or order outer primary procedure references returning revoke\n right rollback schema select set table then transaction trigger true false union unique update values view\n when where with\n`);\n\nconst SHELL_KEYWORDS = words(`\n case declare do done elif else esac exit export fi for function if in local readonly return select then until\n while\n`);\n\nconst JAVASCRIPT_RULES: readonly Rule[] = [\n ['comment', LINE_COMMENT],\n ['comment', BLOCK_COMMENT],\n ['string', /`(?:\\\\[\\s\\S]|[^`\\\\])*`?/],\n ['string', DOUBLE_QUOTED],\n ['string', SINGLE_QUOTED],\n ['number', NUMBER],\n];\n\nconst JAVASCRIPT: readonly Rule[] = [...JAVASCRIPT_RULES, ['keyword', words(JAVASCRIPT_WORDS)], ['function', CALL]];\n\nconst TYPESCRIPT: readonly Rule[] = [\n ...JAVASCRIPT_RULES,\n ['annotation', ANNOTATION],\n ['keyword', words(JAVASCRIPT_WORDS + TYPESCRIPT_WORDS)],\n ['function', CALL],\n];\n\n/**\n * Vem antes das regras da linguagem. O `<` colado a um nome e o generico de `useState<string>`, e nao uma tag; o\n * texto entre `>` e `<` e conteudo, e o numero dentro dele nao e literal.\n */\nconst JSX_RULES: readonly Rule[] = [\n [undefined, /(?<=>)[^<>{}\\n]+(?=<)/],\n ['tag', /(?<=<\\/|(?:^|[^\\w$)\\]])<)[A-Za-z][\\w.]*/],\n ['attribute', /\\b[A-Za-z_][\\w-]*(?==[{\"'])/],\n];\n\nconst RULES: Readonly<Record<CodeSyntax, readonly Rule[]>> = {\n java: [\n ['comment', LINE_COMMENT],\n ['comment', BLOCK_COMMENT],\n ['string', /\"\"\"[\\s\\S]*?(?:\"\"\"|$)/],\n ['string', DOUBLE_QUOTED],\n ['string', /'(?:\\\\.|[^'\\\\\\n])'/],\n ['annotation', ANNOTATION],\n ['number', NUMBER],\n ['keyword', JAVA_KEYWORDS],\n ['function', CALL],\n ],\n javascript: JAVASCRIPT,\n jsx: [...JSX_RULES, ...JAVASCRIPT],\n typescript: TYPESCRIPT,\n tsx: [...JSX_RULES, ...TYPESCRIPT],\n sql: [\n ['comment', /--.*/],\n ['comment', BLOCK_COMMENT],\n ['string', /'(?:''|[^'])*'?/],\n ['number', NUMBER],\n ['keyword', SQL_KEYWORDS],\n ['function', CALL],\n ],\n json: [\n ['property', /\"(?:\\\\.|[^\"\\\\\\n])*\"(?=\\s*:)/],\n ['string', DOUBLE_QUOTED],\n ['number', /-?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b/],\n ['keyword', /\\b(?:true|false|null)\\b/],\n ],\n shell: [\n ['comment', /(?<![^\\s;])#.*/],\n ['string', DOUBLE_QUOTED],\n ['string', SINGLE_QUOTED],\n ['property', /\\$(?:\\{[^}\\n]*\\}|\\w+|[@*#?$!])/],\n ['keyword', SHELL_KEYWORDS],\n ['number', NUMBER],\n ],\n};\n\n/** O SQL e lido sem distincao de caixa: `select` e `SELECT` sao a mesma palavra. */\nconst CASE_INSENSITIVE: ReadonlySet<CodeSyntax> = new Set(['sql']);\n\nconst grammars = new Map<CodeSyntax, Grammar>();\n\nfunction grammarOf(syntax: CodeSyntax): Grammar {\n const cached = grammars.get(syntax);\n\n if (cached) {\n return cached;\n }\n\n const rules = RULES[syntax];\n const flags = CASE_INSENSITIVE.has(syntax) ? 'gi' : 'g';\n const grammar = {\n kinds: rules.map(([kind]) => kind),\n pattern: new RegExp(rules.map(([, rule]) => `(${rule.source})`).join('|'), flags),\n };\n\n grammars.set(syntax, grammar);\n\n return grammar;\n}\n\nexport function tokenize(code: string, syntax: CodeSyntax): CodeToken[] {\n const { kinds, pattern } = grammarOf(syntax);\n const tokens: CodeToken[] = [];\n let end = 0;\n\n for (const match of code.matchAll(pattern)) {\n if (match.index > end) {\n tokens.push({ text: code.slice(end, match.index) });\n }\n\n const kind = kinds[match.slice(1).findIndex((group) => group !== undefined)];\n\n tokens.push(kind ? { kind, text: match[0] } : { text: match[0] });\n end = match.index + match[0].length;\n }\n\n if (end < code.length) {\n tokens.push({ text: code.slice(end) });\n }\n\n return tokens;\n}\n\n/** As linhas do trecho, cada uma com os seus pedacos: o comentario de bloco que atravessa linhas e partido nelas. */\nexport function tokenizeLines(code: string, syntax?: CodeSyntax): CodeToken[][] {\n const lines: CodeToken[][] = [[]];\n\n for (const token of syntax ? tokenize(code, syntax) : [{ text: code }]) {\n token.text.split('\\n').forEach((part, index) => {\n if (index > 0) {\n lines.push([]);\n }\n\n if (part) {\n lines[lines.length - 1].push({ ...token, text: part });\n }\n });\n }\n\n return lines;\n}\n"],"names":["SYNTAX_LABELS","words","list","BLOCK_COMMENT","LINE_COMMENT","DOUBLE_QUOTED","SINGLE_QUOTED","NUMBER","CALL","ANNOTATION","JAVA_KEYWORDS","JAVASCRIPT_WORDS","TYPESCRIPT_WORDS","SQL_KEYWORDS","SHELL_KEYWORDS","JAVASCRIPT_RULES","JAVASCRIPT","TYPESCRIPT","JSX_RULES","RULES","CASE_INSENSITIVE","grammars","grammarOf","syntax","cached","rules","flags","grammar","kind","rule","tokenize","code","kinds","pattern","tokens","end","match","group","tokenizeLines","lines","token","part","index"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),r=require("react"),f=require("./ListingOptions.cjs"),C=require("./useListing.cjs"),u=require("./List.module.css.cjs"),q=require("../../forms/Checkbox/Checkbox.cjs"),E=require("../../feedback/EmptyState/EmptyState.cjs"),g=r.createContext(void 0);function d(t){const e=r.useContext(g);if(!e)throw new Error(t+" deve ser usado dentro de List.");return e}function c({children:t,className:e,defaultValue:n,items:l,label:s,loading:a=!1,loadingMessage:i="Carregando",onSearch:m,onSelectionChange:h,selectionMode:x="none",value:p,...L}){const v=r.useId(),[y,b]=r.useState(!1),S=C.useListing({defaultValue:n,items:l,onSearch:m,onSelectionChange:h,selectionMode:x,value:p}),j={baseId:v,claimFocus:r.useCallback(()=>b(!0),[]),label:s,listing:S,loading:a,loadingMessage:i,searchPresent:y};return o.jsx("div",{...L,className:[u.default.list,e].filter(Boolean).join(" "),children:o.jsx(g.Provider,{value:j,children:t})})}function I({placeholder:t="Buscar"}){const{baseId:e,claimFocus:n,label:l,listing:s}=d("List.Search");r.useEffect(n,[n]);const a=s.visible.findIndex(i=>i.value===s.focusedKey);return o.jsx("input",{"aria-activedescendant":a>=0?f.optionId(e,a):void 0,"aria-controls":e+"-options","aria-label":l?"Buscar em "+l:t,autoComplete:"off",className:u.default.search,onChange:i=>s.filter(i.target.value),onKeyDown:s.handleKeyDown,placeholder:t,type:"search",value:s.term})}function w({height:t}){const{baseId:e,label:n,listing:l,loading:s,loadingMessage:a,searchPresent:i}=d("List.Options");return o.jsx(f.ListingOptions,{baseId:e,height:t,label:n,holdsFocus:!i,listing:l,loading:s,loadingMessage:a,onKeyDown:i?void 0:l.handleKeyDown})}function O({label:t="Selecionar todos"}){const{listing:e}=d("List.SelectAll");return e.selectionMode!=="multiple"?null:o.jsx("div",{className:u.default.selectAll,children:o.jsx(q.Checkbox,{checked:e.status==="all",indeterminate:e.status==="partial",label:t,onChange:()=>e.toggleAll()})})}function A({children:t}){const{listing:e,loading:n}=d("List.Empty");return n||e.visible.length>0?null:o.jsx("div",{className:u.default.empty,children:o.jsx(E.EmptyState,{size:"sm",title:t})})}c.Search=I;c.SelectAll=O;c.Options=w;c.Empty=A;exports.List=c;
|
|
2
|
+
//# sourceMappingURL=List.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.cjs","sources":["../../../../src/components/data-display/List/List.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useState,\n type ComponentPropsWithRef,\n type ReactNode,\n} from 'react';\nimport { EmptyState } from '../../feedback/EmptyState';\nimport { Checkbox } from '../../forms/Checkbox';\nimport { ListingOptions, optionId } from './ListingOptions';\nimport { useListing, type Listing, type ListingItem, type ListingSelectionMode } from './useListing';\nimport styles from './List.module.css';\n\nexport type ListSelectionMode = ListingSelectionMode;\nexport type ListItem = ListingItem;\n\nexport interface ListProps extends Omit<ComponentPropsWithRef<'div'>, 'defaultValue'> {\n children: ReactNode;\n defaultValue?: readonly ListItem[];\n items: readonly ListItem[];\n label?: string;\n loading?: boolean;\n loadingMessage?: string;\n onSearch?: (term: string) => void;\n onSelectionChange?: (items: readonly ListItem[]) => void;\n selectionMode?: ListSelectionMode;\n value?: readonly ListItem[];\n}\n\ninterface ListContextValue {\n baseId: string;\n claimFocus: () => void;\n label?: string;\n listing: Listing;\n loading: boolean;\n loadingMessage: string;\n searchPresent: boolean;\n}\n\nconst ListContext = createContext<ListContextValue | undefined>(undefined);\n\nfunction useListContext(part: string) {\n const context = useContext(ListContext);\n\n if (!context) {\n throw new Error(part + ' deve ser usado dentro de List.');\n }\n\n return context;\n}\n\nexport function List({\n children,\n className,\n defaultValue,\n items,\n label,\n loading = false,\n loadingMessage = 'Carregando',\n onSearch,\n onSelectionChange,\n selectionMode = 'none',\n value,\n ...props\n}: ListProps) {\n const baseId = useId();\n const [searchPresent, setSearchPresent] = useState(false);\n const listing = useListing({ defaultValue, items, onSearch, onSelectionChange, selectionMode, value });\n\n const context: ListContextValue = {\n baseId,\n claimFocus: useCallback(() => setSearchPresent(true), []),\n label,\n listing,\n loading,\n loadingMessage,\n searchPresent,\n };\n\n return (\n <div {...props} className={[styles.list, className].filter(Boolean).join(' ')}>\n <ListContext.Provider value={context}>{children}</ListContext.Provider>\n </div>\n );\n}\n\nexport interface ListSearchProps {\n placeholder?: string;\n}\n\nfunction ListSearch({ placeholder = 'Buscar' }: ListSearchProps) {\n const { baseId, claimFocus, label, listing } = useListContext('List.Search');\n\n useEffect(claimFocus, [claimFocus]);\n\n const activeIndex = listing.visible.findIndex((item) => item.value === listing.focusedKey);\n\n return (\n <input\n aria-activedescendant={activeIndex >= 0 ? optionId(baseId, activeIndex) : undefined}\n aria-controls={baseId + '-options'}\n aria-label={label ? 'Buscar em ' + label : placeholder}\n autoComplete=\"off\"\n className={styles.search}\n onChange={(event) => listing.filter(event.target.value)}\n onKeyDown={listing.handleKeyDown}\n placeholder={placeholder}\n type=\"search\"\n value={listing.term}\n />\n );\n}\n\nexport interface ListOptionsProps {\n height?: number;\n}\n\nfunction ListOptions({ height }: ListOptionsProps) {\n const { baseId, label, listing, loading, loadingMessage, searchPresent } = useListContext('List.Options');\n\n return (\n <ListingOptions\n baseId={baseId}\n height={height}\n label={label}\n holdsFocus={!searchPresent}\n listing={listing}\n loading={loading}\n loadingMessage={loadingMessage}\n onKeyDown={searchPresent ? undefined : listing.handleKeyDown}\n />\n );\n}\n\nexport interface ListSelectAllProps {\n label?: string;\n}\n\nfunction ListSelectAll({ label = 'Selecionar todos' }: ListSelectAllProps) {\n const { listing } = useListContext('List.SelectAll');\n\n if (listing.selectionMode !== 'multiple') {\n return null;\n }\n\n return (\n <div className={styles.selectAll}>\n <Checkbox\n checked={listing.status === 'all'}\n indeterminate={listing.status === 'partial'}\n label={label}\n onChange={() => listing.toggleAll()}\n />\n </div>\n );\n}\n\nexport interface ListEmptyProps {\n children: ReactNode;\n}\n\nfunction ListEmpty({ children }: ListEmptyProps) {\n const { listing, loading } = useListContext('List.Empty');\n\n if (loading || listing.visible.length > 0) {\n return null;\n }\n\n return (\n <div className={styles.empty}>\n <EmptyState size=\"sm\" title={children} />\n </div>\n );\n}\n\nList.Search = ListSearch;\nList.SelectAll = ListSelectAll;\nList.Options = ListOptions;\nList.Empty = ListEmpty;\n"],"names":["ListContext","createContext","useListContext","part","context","useContext","List","children","className","defaultValue","items","label","loading","loadingMessage","onSearch","onSelectionChange","selectionMode","value","props","baseId","useId","searchPresent","setSearchPresent","useState","listing","useListing","useCallback","jsx","styles","ListSearch","placeholder","claimFocus","useEffect","activeIndex","item","optionId","event","ListOptions","height","ListingOptions","ListSelectAll","Checkbox","ListEmpty","EmptyState"],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { useId as C, useState as S, useCallback as I, createContext as w, useEffect as E, useContext as A } from "react";
|
|
3
|
+
import { optionId as K, ListingOptions as D } from "./ListingOptions.js";
|
|
4
|
+
import { useListing as N } from "./useListing.js";
|
|
5
|
+
import a from "./List.module.css.js";
|
|
6
|
+
import { Checkbox as O } from "../../forms/Checkbox/Checkbox.js";
|
|
7
|
+
import { EmptyState as P } from "../../feedback/EmptyState/EmptyState.js";
|
|
8
|
+
const d = w(void 0);
|
|
9
|
+
function c(t) {
|
|
10
|
+
const e = A(d);
|
|
11
|
+
if (!e)
|
|
12
|
+
throw new Error(t + " deve ser usado dentro de List.");
|
|
13
|
+
return e;
|
|
14
|
+
}
|
|
15
|
+
function u({
|
|
16
|
+
children: t,
|
|
17
|
+
className: e,
|
|
18
|
+
defaultValue: s,
|
|
19
|
+
items: l,
|
|
20
|
+
label: n,
|
|
21
|
+
loading: r = !1,
|
|
22
|
+
loadingMessage: i = "Carregando",
|
|
23
|
+
onSearch: m,
|
|
24
|
+
onSelectionChange: f,
|
|
25
|
+
selectionMode: p = "none",
|
|
26
|
+
value: h,
|
|
27
|
+
...g
|
|
28
|
+
}) {
|
|
29
|
+
const v = C(), [L, y] = S(!1), x = N({ defaultValue: s, items: l, onSearch: m, onSelectionChange: f, selectionMode: p, value: h }), b = {
|
|
30
|
+
baseId: v,
|
|
31
|
+
claimFocus: I(() => y(!0), []),
|
|
32
|
+
label: n,
|
|
33
|
+
listing: x,
|
|
34
|
+
loading: r,
|
|
35
|
+
loadingMessage: i,
|
|
36
|
+
searchPresent: L
|
|
37
|
+
};
|
|
38
|
+
return /* @__PURE__ */ o("div", { ...g, className: [a.list, e].filter(Boolean).join(" "), children: /* @__PURE__ */ o(d.Provider, { value: b, children: t }) });
|
|
39
|
+
}
|
|
40
|
+
function k({ placeholder: t = "Buscar" }) {
|
|
41
|
+
const { baseId: e, claimFocus: s, label: l, listing: n } = c("List.Search");
|
|
42
|
+
E(s, [s]);
|
|
43
|
+
const r = n.visible.findIndex((i) => i.value === n.focusedKey);
|
|
44
|
+
return /* @__PURE__ */ o(
|
|
45
|
+
"input",
|
|
46
|
+
{
|
|
47
|
+
"aria-activedescendant": r >= 0 ? K(e, r) : void 0,
|
|
48
|
+
"aria-controls": e + "-options",
|
|
49
|
+
"aria-label": l ? "Buscar em " + l : t,
|
|
50
|
+
autoComplete: "off",
|
|
51
|
+
className: a.search,
|
|
52
|
+
onChange: (i) => n.filter(i.target.value),
|
|
53
|
+
onKeyDown: n.handleKeyDown,
|
|
54
|
+
placeholder: t,
|
|
55
|
+
type: "search",
|
|
56
|
+
value: n.term
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
function B({ height: t }) {
|
|
61
|
+
const { baseId: e, label: s, listing: l, loading: n, loadingMessage: r, searchPresent: i } = c("List.Options");
|
|
62
|
+
return /* @__PURE__ */ o(
|
|
63
|
+
D,
|
|
64
|
+
{
|
|
65
|
+
baseId: e,
|
|
66
|
+
height: t,
|
|
67
|
+
label: s,
|
|
68
|
+
holdsFocus: !i,
|
|
69
|
+
listing: l,
|
|
70
|
+
loading: n,
|
|
71
|
+
loadingMessage: r,
|
|
72
|
+
onKeyDown: i ? void 0 : l.handleKeyDown
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
function F({ label: t = "Selecionar todos" }) {
|
|
77
|
+
const { listing: e } = c("List.SelectAll");
|
|
78
|
+
return e.selectionMode !== "multiple" ? null : /* @__PURE__ */ o("div", { className: a.selectAll, children: /* @__PURE__ */ o(
|
|
79
|
+
O,
|
|
80
|
+
{
|
|
81
|
+
checked: e.status === "all",
|
|
82
|
+
indeterminate: e.status === "partial",
|
|
83
|
+
label: t,
|
|
84
|
+
onChange: () => e.toggleAll()
|
|
85
|
+
}
|
|
86
|
+
) });
|
|
87
|
+
}
|
|
88
|
+
function j({ children: t }) {
|
|
89
|
+
const { listing: e, loading: s } = c("List.Empty");
|
|
90
|
+
return s || e.visible.length > 0 ? null : /* @__PURE__ */ o("div", { className: a.empty, children: /* @__PURE__ */ o(P, { size: "sm", title: t }) });
|
|
91
|
+
}
|
|
92
|
+
u.Search = k;
|
|
93
|
+
u.SelectAll = F;
|
|
94
|
+
u.Options = B;
|
|
95
|
+
u.Empty = j;
|
|
96
|
+
export {
|
|
97
|
+
u as List
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=List.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.js","sources":["../../../../src/components/data-display/List/List.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useState,\n type ComponentPropsWithRef,\n type ReactNode,\n} from 'react';\nimport { EmptyState } from '../../feedback/EmptyState';\nimport { Checkbox } from '../../forms/Checkbox';\nimport { ListingOptions, optionId } from './ListingOptions';\nimport { useListing, type Listing, type ListingItem, type ListingSelectionMode } from './useListing';\nimport styles from './List.module.css';\n\nexport type ListSelectionMode = ListingSelectionMode;\nexport type ListItem = ListingItem;\n\nexport interface ListProps extends Omit<ComponentPropsWithRef<'div'>, 'defaultValue'> {\n children: ReactNode;\n defaultValue?: readonly ListItem[];\n items: readonly ListItem[];\n label?: string;\n loading?: boolean;\n loadingMessage?: string;\n onSearch?: (term: string) => void;\n onSelectionChange?: (items: readonly ListItem[]) => void;\n selectionMode?: ListSelectionMode;\n value?: readonly ListItem[];\n}\n\ninterface ListContextValue {\n baseId: string;\n claimFocus: () => void;\n label?: string;\n listing: Listing;\n loading: boolean;\n loadingMessage: string;\n searchPresent: boolean;\n}\n\nconst ListContext = createContext<ListContextValue | undefined>(undefined);\n\nfunction useListContext(part: string) {\n const context = useContext(ListContext);\n\n if (!context) {\n throw new Error(part + ' deve ser usado dentro de List.');\n }\n\n return context;\n}\n\nexport function List({\n children,\n className,\n defaultValue,\n items,\n label,\n loading = false,\n loadingMessage = 'Carregando',\n onSearch,\n onSelectionChange,\n selectionMode = 'none',\n value,\n ...props\n}: ListProps) {\n const baseId = useId();\n const [searchPresent, setSearchPresent] = useState(false);\n const listing = useListing({ defaultValue, items, onSearch, onSelectionChange, selectionMode, value });\n\n const context: ListContextValue = {\n baseId,\n claimFocus: useCallback(() => setSearchPresent(true), []),\n label,\n listing,\n loading,\n loadingMessage,\n searchPresent,\n };\n\n return (\n <div {...props} className={[styles.list, className].filter(Boolean).join(' ')}>\n <ListContext.Provider value={context}>{children}</ListContext.Provider>\n </div>\n );\n}\n\nexport interface ListSearchProps {\n placeholder?: string;\n}\n\nfunction ListSearch({ placeholder = 'Buscar' }: ListSearchProps) {\n const { baseId, claimFocus, label, listing } = useListContext('List.Search');\n\n useEffect(claimFocus, [claimFocus]);\n\n const activeIndex = listing.visible.findIndex((item) => item.value === listing.focusedKey);\n\n return (\n <input\n aria-activedescendant={activeIndex >= 0 ? optionId(baseId, activeIndex) : undefined}\n aria-controls={baseId + '-options'}\n aria-label={label ? 'Buscar em ' + label : placeholder}\n autoComplete=\"off\"\n className={styles.search}\n onChange={(event) => listing.filter(event.target.value)}\n onKeyDown={listing.handleKeyDown}\n placeholder={placeholder}\n type=\"search\"\n value={listing.term}\n />\n );\n}\n\nexport interface ListOptionsProps {\n height?: number;\n}\n\nfunction ListOptions({ height }: ListOptionsProps) {\n const { baseId, label, listing, loading, loadingMessage, searchPresent } = useListContext('List.Options');\n\n return (\n <ListingOptions\n baseId={baseId}\n height={height}\n label={label}\n holdsFocus={!searchPresent}\n listing={listing}\n loading={loading}\n loadingMessage={loadingMessage}\n onKeyDown={searchPresent ? undefined : listing.handleKeyDown}\n />\n );\n}\n\nexport interface ListSelectAllProps {\n label?: string;\n}\n\nfunction ListSelectAll({ label = 'Selecionar todos' }: ListSelectAllProps) {\n const { listing } = useListContext('List.SelectAll');\n\n if (listing.selectionMode !== 'multiple') {\n return null;\n }\n\n return (\n <div className={styles.selectAll}>\n <Checkbox\n checked={listing.status === 'all'}\n indeterminate={listing.status === 'partial'}\n label={label}\n onChange={() => listing.toggleAll()}\n />\n </div>\n );\n}\n\nexport interface ListEmptyProps {\n children: ReactNode;\n}\n\nfunction ListEmpty({ children }: ListEmptyProps) {\n const { listing, loading } = useListContext('List.Empty');\n\n if (loading || listing.visible.length > 0) {\n return null;\n }\n\n return (\n <div className={styles.empty}>\n <EmptyState size=\"sm\" title={children} />\n </div>\n );\n}\n\nList.Search = ListSearch;\nList.SelectAll = ListSelectAll;\nList.Options = ListOptions;\nList.Empty = ListEmpty;\n"],"names":["ListContext","createContext","useListContext","part","context","useContext","List","children","className","defaultValue","items","label","loading","loadingMessage","onSearch","onSelectionChange","selectionMode","value","props","baseId","useId","searchPresent","setSearchPresent","useState","listing","useListing","useCallback","jsx","styles","ListSearch","placeholder","claimFocus","useEffect","activeIndex","item","optionId","event","ListOptions","height","ListingOptions","ListSelectAll","Checkbox","ListEmpty","EmptyState"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_list_1nie5_1",s="_search_1nie5_12",t="_options_1nie5_35",o="_spacer_1nie5_53",_="_option_1nie5_35",c="_selectAll_1nie5_72",n="_disabled_1nie5_76",i="_focused_1nie5_81",l="_box_1nie5_93",p="_checked_1nie5_102",a="_group_1nie5_108",d="_status_1nie5_118",u="_empty_1nie5_127",r={list:e,search:s,options:t,spacer:o,option:_,selectAll:c,disabled:n,focused:i,box:l,checked:p,group:a,status:d,empty:u};exports.box=l;exports.checked=p;exports.default=r;exports.disabled=n;exports.empty=u;exports.focused=i;exports.group=a;exports.list=e;exports.option=_;exports.options=t;exports.search=s;exports.selectAll=c;exports.spacer=o;exports.status=d;
|
|
2
|
+
//# sourceMappingURL=List.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const s = "_list_1nie5_1", e = "_search_1nie5_12", _ = "_options_1nie5_35", t = "_spacer_1nie5_53", o = "_option_1nie5_35", n = "_selectAll_1nie5_72", c = "_disabled_1nie5_76", i = "_focused_1nie5_81", l = "_box_1nie5_93", p = "_checked_1nie5_102", a = "_group_1nie5_108", d = "_status_1nie5_118", r = "_empty_1nie5_127", u = {
|
|
2
|
+
list: s,
|
|
3
|
+
search: e,
|
|
4
|
+
options: _,
|
|
5
|
+
spacer: t,
|
|
6
|
+
option: o,
|
|
7
|
+
selectAll: n,
|
|
8
|
+
disabled: c,
|
|
9
|
+
focused: i,
|
|
10
|
+
box: l,
|
|
11
|
+
checked: p,
|
|
12
|
+
group: a,
|
|
13
|
+
status: d,
|
|
14
|
+
empty: r
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
l as box,
|
|
18
|
+
p as checked,
|
|
19
|
+
u as default,
|
|
20
|
+
c as disabled,
|
|
21
|
+
r as empty,
|
|
22
|
+
i as focused,
|
|
23
|
+
a as group,
|
|
24
|
+
s as list,
|
|
25
|
+
o as option,
|
|
26
|
+
_ as options,
|
|
27
|
+
e as search,
|
|
28
|
+
n as selectAll,
|
|
29
|
+
t as spacer,
|
|
30
|
+
d as status
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=List.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),D=require("react"),A=require("./useVirtualWindow.cjs"),t=require("./List.module.css.cjs");function f(l,n){return l+"-option-"+n}function G({baseId:l,className:n,elementRef:v,empty:m,height:h,holdsFocus:p=!0,label:K,listing:M,loading:r=!1,loadingMessage:y="Carregando",onKeyDown:S,onSelect:x,style:N,tabIndex:T=0}){const{detached:g,focusedKey:d,isSelected:W,select:z,selectionMode:j,visible:s}=M,B=s.findIndex(e=>e.value===d);function P(e,a){e.disabled||(z(e,a),x==null||x(e))}const{active:I,attachScroll:k,measureItem:q,onScroll:w,padding:o,scrollToIndex:O,start:C,end:_}=A.useVirtualWindow(s.length,h),E=D.useCallback(e=>{k(e),v&&(v.current=e)},[k,v]);D.useEffect(()=>{var a,u;const e=s.findIndex(c=>c.value===d);d===void 0||e<0||(I?O(e):(u=(a=document.getElementById(f(l,e)))==null?void 0:a.scrollIntoView)==null||u.call(a,{block:"nearest"}))},[I,l,d,O,s]);const L=s.slice(C,_);if(j==="none")return i.jsxs("ul",{"aria-busy":r||void 0,className:[t.default.options,n].filter(Boolean).join(" "),id:l+"-options",onScroll:w,ref:E,style:{height:h,...N},children:[r&&i.jsx("li",{className:t.default.status,children:y}),i.jsx("li",{"aria-hidden":"true",className:t.default.spacer,style:{height:o.before}}),L.map((e,a)=>i.jsx("li",{className:t.default.option,ref:a===0?q:void 0,children:e.label},e.value)),i.jsx("li",{"aria-hidden":"true",className:t.default.spacer,style:{height:o.after}}),!r&&s.length===0&&m]});function V(e,a,u){const c=W(e.value);return i.jsxs("div",{"aria-disabled":e.disabled||void 0,"aria-posinset":a>0?a:void 0,"aria-selected":c,"aria-setsize":a>0?s.length:void 0,className:[t.default.option,d===e.value&&t.default.focused,e.disabled&&t.default.disabled].filter(Boolean).join(" "),id:a>0?f(l,a-1):void 0,onClick:b=>P(e,b.shiftKey),onMouseDown:p?void 0:b=>b.preventDefault(),ref:u?q:void 0,role:"option",children:[j==="multiple"&&i.jsx("span",{"aria-hidden":"true",className:[t.default.box,c&&t.default.checked].filter(Boolean).join(" ")}),e.label]},e.value)}return i.jsxs("div",{"aria-activedescendant":p&&B>=0?f(l,B):void 0,"aria-busy":r||void 0,"aria-label":K,"aria-multiselectable":j==="multiple"||void 0,className:[t.default.options,n].filter(Boolean).join(" "),id:l+"-options",onKeyDown:S,onScroll:w,ref:E,role:"listbox",style:{height:h,...N},tabIndex:p?T:void 0,children:[r&&i.jsx("p",{className:t.default.status,children:y}),g.length>0&&i.jsx("div",{"aria-label":"Selecionados",className:t.default.group,role:"group",children:g.map(e=>V(e,0,!1))}),i.jsx("div",{"aria-hidden":"true",className:t.default.spacer,style:{height:o.before}}),L.map((e,a)=>V(e,C+a+1,a===0)),i.jsx("div",{"aria-hidden":"true",className:t.default.spacer,style:{height:o.after}}),!r&&s.length===0&&m]})}exports.ListingOptions=G;exports.optionId=f;
|
|
2
|
+
//# sourceMappingURL=ListingOptions.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListingOptions.cjs","sources":["../../../../src/components/data-display/List/ListingOptions.tsx"],"sourcesContent":["import { useCallback, useEffect, type CSSProperties, type KeyboardEvent, type ReactNode, type RefObject } from 'react';\nimport type { Listing, ListingItem } from './useListing';\nimport { useVirtualWindow } from './useVirtualWindow';\nimport styles from './List.module.css';\n\nexport interface ListingOptionsProps {\n baseId: string;\n className?: string;\n elementRef?: RefObject<HTMLElement | null>;\n empty?: ReactNode;\n height?: number;\n label?: string;\n listing: Listing;\n loading?: boolean;\n loadingMessage?: string;\n holdsFocus?: boolean;\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n onSelect?: (item: ListingItem) => void;\n style?: CSSProperties;\n tabIndex?: number;\n}\n\nexport function optionId(baseId: string, index: number) {\n return baseId + '-option-' + index;\n}\n\nexport function ListingOptions({\n baseId,\n className,\n elementRef,\n empty,\n height,\n holdsFocus = true,\n label,\n listing,\n loading = false,\n loadingMessage = 'Carregando',\n onKeyDown,\n onSelect,\n style,\n tabIndex = 0,\n}: ListingOptionsProps) {\n const { detached, focusedKey, isSelected, select, selectionMode, visible } = listing;\n const activeIndex = visible.findIndex((item) => item.value === focusedKey);\n\n function choose(item: ListingItem, extend: boolean) {\n if (item.disabled) {\n return;\n }\n\n select(item, extend);\n onSelect?.(item);\n }\n const { active, attachScroll, measureItem, onScroll, padding, scrollToIndex, start, end } = useVirtualWindow(\n visible.length,\n height,\n );\n\n const attachElement = useCallback(\n (node: HTMLElement | null) => {\n attachScroll(node);\n\n if (elementRef) {\n elementRef.current = node;\n }\n },\n [attachScroll, elementRef],\n );\n\n useEffect(() => {\n const index = visible.findIndex((item) => item.value === focusedKey);\n\n if (focusedKey === undefined || index < 0) {\n return;\n }\n\n if (active) {\n scrollToIndex(index);\n } else {\n document.getElementById(optionId(baseId, index))?.scrollIntoView?.({ block: 'nearest' });\n }\n }, [active, baseId, focusedKey, scrollToIndex, visible]);\n\n const rendered = visible.slice(start, end);\n\n if (selectionMode === 'none') {\n return (\n <ul\n aria-busy={loading || undefined}\n className={[styles.options, className].filter(Boolean).join(' ')}\n id={baseId + '-options'}\n onScroll={onScroll}\n ref={attachElement}\n style={{ height, ...style }}\n >\n {loading && <li className={styles.status}>{loadingMessage}</li>}\n <li aria-hidden=\"true\" className={styles.spacer} style={{ height: padding.before }} />\n {rendered.map((item, index) => (\n <li className={styles.option} key={item.value} ref={index === 0 ? measureItem : undefined}>\n {item.label}\n </li>\n ))}\n <li aria-hidden=\"true\" className={styles.spacer} style={{ height: padding.after }} />\n {!loading && visible.length === 0 && empty}\n </ul>\n );\n }\n\n function renderOption(item: ListingItem, position: number, measured: boolean) {\n const selected = isSelected(item.value);\n\n return (\n <div\n aria-disabled={item.disabled || undefined}\n aria-posinset={position > 0 ? position : undefined}\n aria-selected={selected}\n aria-setsize={position > 0 ? visible.length : undefined}\n className={[styles.option, focusedKey === item.value && styles.focused, item.disabled && styles.disabled]\n .filter(Boolean)\n .join(' ')}\n id={position > 0 ? optionId(baseId, position - 1) : undefined}\n key={item.value}\n onClick={(event) => choose(item, event.shiftKey)}\n // So segura o foco onde ele esta quando quem o tem e o campo de busca; a lista que detem o foco o recebe.\n onMouseDown={holdsFocus ? undefined : (event) => event.preventDefault()}\n ref={measured ? measureItem : undefined}\n role=\"option\"\n >\n {selectionMode === 'multiple' && (\n <span aria-hidden=\"true\" className={[styles.box, selected && styles.checked].filter(Boolean).join(' ')} />\n )}\n {item.label}\n </div>\n );\n }\n\n return (\n <div\n aria-activedescendant={holdsFocus && activeIndex >= 0 ? optionId(baseId, activeIndex) : undefined}\n aria-busy={loading || undefined}\n aria-label={label}\n aria-multiselectable={selectionMode === 'multiple' || undefined}\n className={[styles.options, className].filter(Boolean).join(' ')}\n id={baseId + '-options'}\n onKeyDown={onKeyDown}\n onScroll={onScroll}\n ref={attachElement}\n role=\"listbox\"\n style={{ height, ...style }}\n tabIndex={holdsFocus ? tabIndex : undefined}\n >\n {loading && <p className={styles.status}>{loadingMessage}</p>}\n {detached.length > 0 && (\n <div aria-label=\"Selecionados\" className={styles.group} role=\"group\">\n {detached.map((item) => renderOption(item, 0, false))}\n </div>\n )}\n <div aria-hidden=\"true\" className={styles.spacer} style={{ height: padding.before }} />\n {rendered.map((item, index) => renderOption(item, start + index + 1, index === 0))}\n <div aria-hidden=\"true\" className={styles.spacer} style={{ height: padding.after }} />\n {!loading && visible.length === 0 && empty}\n </div>\n );\n}\n"],"names":["optionId","baseId","index","ListingOptions","className","elementRef","empty","height","holdsFocus","label","listing","loading","loadingMessage","onKeyDown","onSelect","style","tabIndex","detached","focusedKey","isSelected","select","selectionMode","visible","activeIndex","item","choose","extend","active","attachScroll","measureItem","onScroll","padding","scrollToIndex","start","end","useVirtualWindow","attachElement","useCallback","node","useEffect","_b","_a","rendered","jsxs","styles","jsx","renderOption","position","measured","selected","event"],"mappings":"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"}
|