@plenustech/design-system 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/actions/ButtonTile/ButtonTile.cjs +2 -0
- package/dist/components/actions/ButtonTile/ButtonTile.cjs.map +1 -0
- package/dist/components/actions/ButtonTile/ButtonTile.js +23 -0
- package/dist/components/actions/ButtonTile/ButtonTile.js.map +1 -0
- package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs +2 -0
- package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs.map +1 -0
- package/dist/components/actions/ButtonTile/ButtonTile.module.css.js +16 -0
- package/dist/components/actions/ButtonTile/ButtonTile.module.css.js.map +1 -0
- package/dist/components/actions/Toolbar/Toolbar.cjs +2 -0
- package/dist/components/actions/Toolbar/Toolbar.cjs.map +1 -0
- package/dist/components/actions/Toolbar/Toolbar.js +118 -0
- package/dist/components/actions/Toolbar/Toolbar.js.map +1 -0
- package/dist/components/actions/Toolbar/Toolbar.module.css.cjs +2 -0
- package/dist/components/actions/Toolbar/Toolbar.module.css.cjs.map +1 -0
- package/dist/components/actions/Toolbar/Toolbar.module.css.js +20 -0
- package/dist/components/actions/Toolbar/Toolbar.module.css.js.map +1 -0
- package/dist/components/charts/ChartArea/ChartArea.cjs +1 -1
- package/dist/components/charts/ChartArea/ChartArea.cjs.map +1 -1
- package/dist/components/charts/ChartArea/ChartArea.js +196 -148
- package/dist/components/charts/ChartArea/ChartArea.js.map +1 -1
- package/dist/components/charts/ChartArea/ChartArea.module.css.cjs +1 -1
- package/dist/components/charts/ChartArea/ChartArea.module.css.js +12 -10
- package/dist/components/charts/ChartArea/ChartArea.module.css.js.map +1 -1
- package/dist/components/charts/ChartBar/ChartBar.cjs +1 -1
- package/dist/components/charts/ChartBar/ChartBar.cjs.map +1 -1
- package/dist/components/charts/ChartBar/ChartBar.js +168 -145
- package/dist/components/charts/ChartBar/ChartBar.js.map +1 -1
- package/dist/components/charts/ChartBar/ChartBar.module.css.cjs +1 -1
- package/dist/components/charts/ChartBar/ChartBar.module.css.js +12 -10
- package/dist/components/charts/ChartBar/ChartBar.module.css.js.map +1 -1
- package/dist/components/charts/ChartCombo/ChartCombo.cjs +1 -1
- package/dist/components/charts/ChartCombo/ChartCombo.cjs.map +1 -1
- package/dist/components/charts/ChartCombo/ChartCombo.js +179 -154
- package/dist/components/charts/ChartCombo/ChartCombo.js.map +1 -1
- package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs +1 -1
- package/dist/components/charts/ChartCombo/ChartCombo.module.css.js +16 -14
- package/dist/components/charts/ChartCombo/ChartCombo.module.css.js.map +1 -1
- package/dist/components/charts/ChartDonut/ChartDonut.cjs +1 -1
- package/dist/components/charts/ChartDonut/ChartDonut.cjs.map +1 -1
- package/dist/components/charts/ChartDonut/ChartDonut.js +72 -61
- package/dist/components/charts/ChartDonut/ChartDonut.js.map +1 -1
- package/dist/components/charts/ChartGauge/ChartGauge.cjs +2 -0
- package/dist/components/charts/ChartGauge/ChartGauge.cjs.map +1 -0
- package/dist/components/charts/ChartGauge/ChartGauge.js +307 -0
- package/dist/components/charts/ChartGauge/ChartGauge.js.map +1 -0
- package/dist/components/charts/ChartGauge/ChartGauge.module.css.cjs +2 -0
- package/dist/components/charts/ChartGauge/ChartGauge.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartGauge/ChartGauge.module.css.js +76 -0
- package/dist/components/charts/ChartGauge/ChartGauge.module.css.js.map +1 -0
- package/dist/components/charts/ChartGauge/gaugeLayout.cjs +2 -0
- package/dist/components/charts/ChartGauge/gaugeLayout.cjs.map +1 -0
- package/dist/components/charts/ChartGauge/gaugeLayout.js +107 -0
- package/dist/components/charts/ChartGauge/gaugeLayout.js.map +1 -0
- package/dist/components/charts/ChartGauge/gaugeReading.cjs +2 -0
- package/dist/components/charts/ChartGauge/gaugeReading.cjs.map +1 -0
- package/dist/components/charts/ChartGauge/gaugeReading.js +112 -0
- package/dist/components/charts/ChartGauge/gaugeReading.js.map +1 -0
- package/dist/components/charts/ChartGauge/gaugeScale.cjs +2 -0
- package/dist/components/charts/ChartGauge/gaugeScale.cjs.map +1 -0
- package/dist/components/charts/ChartGauge/gaugeScale.js +57 -0
- package/dist/components/charts/ChartGauge/gaugeScale.js.map +1 -0
- package/dist/components/charts/ChartLine/ChartLine.cjs +1 -1
- package/dist/components/charts/ChartLine/ChartLine.cjs.map +1 -1
- package/dist/components/charts/ChartLine/ChartLine.js +196 -143
- package/dist/components/charts/ChartLine/ChartLine.js.map +1 -1
- package/dist/components/charts/ChartLine/ChartLine.module.css.cjs +1 -1
- package/dist/components/charts/ChartLine/ChartLine.module.css.js +16 -14
- package/dist/components/charts/ChartLine/ChartLine.module.css.js.map +1 -1
- package/dist/components/charts/ChartMap/ChartMap.cjs +2 -0
- package/dist/components/charts/ChartMap/ChartMap.cjs.map +1 -0
- package/dist/components/charts/ChartMap/ChartMap.js +523 -0
- package/dist/components/charts/ChartMap/ChartMap.js.map +1 -0
- package/dist/components/charts/ChartMap/ChartMap.module.css.cjs +2 -0
- package/dist/components/charts/ChartMap/ChartMap.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartMap/ChartMap.module.css.js +124 -0
- package/dist/components/charts/ChartMap/ChartMap.module.css.js.map +1 -0
- package/dist/components/charts/ChartMap/ChartMapLegend.cjs +2 -0
- package/dist/components/charts/ChartMap/ChartMapLegend.cjs.map +1 -0
- package/dist/components/charts/ChartMap/ChartMapLegend.js +102 -0
- package/dist/components/charts/ChartMap/ChartMapLegend.js.map +1 -0
- package/dist/components/charts/ChartMap/ChartMapTable.cjs +2 -0
- package/dist/components/charts/ChartMap/ChartMapTable.cjs.map +1 -0
- package/dist/components/charts/ChartMap/ChartMapTable.js +118 -0
- package/dist/components/charts/ChartMap/ChartMapTable.js.map +1 -0
- package/dist/components/charts/ChartMap/mapGeometry.cjs +2 -0
- package/dist/components/charts/ChartMap/mapGeometry.cjs.map +1 -0
- package/dist/components/charts/ChartMap/mapGeometry.js +113 -0
- package/dist/components/charts/ChartMap/mapGeometry.js.map +1 -0
- package/dist/components/charts/ChartMap/mapLabels.cjs +2 -0
- package/dist/components/charts/ChartMap/mapLabels.cjs.map +1 -0
- package/dist/components/charts/ChartMap/mapLabels.js +80 -0
- package/dist/components/charts/ChartMap/mapLabels.js.map +1 -0
- package/dist/components/charts/ChartMap/mapScales.cjs +2 -0
- package/dist/components/charts/ChartMap/mapScales.cjs.map +1 -0
- package/dist/components/charts/ChartMap/mapScales.js +131 -0
- package/dist/components/charts/ChartMap/mapScales.js.map +1 -0
- package/dist/components/charts/ChartMap/polylabel.cjs +2 -0
- package/dist/components/charts/ChartMap/polylabel.cjs.map +1 -0
- package/dist/components/charts/ChartMap/polylabel.js +50 -0
- package/dist/components/charts/ChartMap/polylabel.js.map +1 -0
- package/dist/components/charts/ChartPie/ChartPie.cjs +1 -1
- package/dist/components/charts/ChartPie/ChartPie.cjs.map +1 -1
- package/dist/components/charts/ChartPie/ChartPie.js +71 -60
- package/dist/components/charts/ChartPie/ChartPie.js.map +1 -1
- package/dist/components/charts/ChartRadial/ChartRadial.cjs +1 -1
- package/dist/components/charts/ChartRadial/ChartRadial.cjs.map +1 -1
- package/dist/components/charts/ChartRadial/ChartRadial.js +101 -84
- package/dist/components/charts/ChartRadial/ChartRadial.js.map +1 -1
- package/dist/components/charts/ChartSankey/ChartSankey.cjs +1 -1
- package/dist/components/charts/ChartSankey/ChartSankey.cjs.map +1 -1
- package/dist/components/charts/ChartSankey/ChartSankey.js +148 -125
- package/dist/components/charts/ChartSankey/ChartSankey.js.map +1 -1
- package/dist/components/charts/ChartScatter/ChartScatter.cjs +1 -1
- package/dist/components/charts/ChartScatter/ChartScatter.cjs.map +1 -1
- package/dist/components/charts/ChartScatter/ChartScatter.js +138 -106
- package/dist/components/charts/ChartScatter/ChartScatter.js.map +1 -1
- package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs +1 -1
- package/dist/components/charts/ChartScatter/ChartScatter.module.css.js +3 -3
- package/dist/components/charts/ChartSunburst/ChartSunburst.cjs +1 -1
- package/dist/components/charts/ChartSunburst/ChartSunburst.cjs.map +1 -1
- package/dist/components/charts/ChartSunburst/ChartSunburst.js +115 -100
- package/dist/components/charts/ChartSunburst/ChartSunburst.js.map +1 -1
- package/dist/components/charts/ChartTimeline/ChartTimeline.cjs +2 -0
- package/dist/components/charts/ChartTimeline/ChartTimeline.cjs.map +1 -0
- package/dist/components/charts/ChartTimeline/ChartTimeline.js +703 -0
- package/dist/components/charts/ChartTimeline/ChartTimeline.js.map +1 -0
- package/dist/components/charts/ChartTimeline/ChartTimeline.module.css.cjs +2 -0
- package/dist/components/charts/ChartTimeline/ChartTimeline.module.css.cjs.map +1 -0
- package/dist/components/charts/ChartTimeline/ChartTimeline.module.css.js +124 -0
- package/dist/components/charts/ChartTimeline/ChartTimeline.module.css.js.map +1 -0
- package/dist/components/charts/ChartTimeline/ChartTimelineTable.cjs +2 -0
- package/dist/components/charts/ChartTimeline/ChartTimelineTable.cjs.map +1 -0
- package/dist/components/charts/ChartTimeline/ChartTimelineTable.js +42 -0
- package/dist/components/charts/ChartTimeline/ChartTimelineTable.js.map +1 -0
- package/dist/components/charts/ChartTimeline/timelineLayout.cjs +2 -0
- package/dist/components/charts/ChartTimeline/timelineLayout.cjs.map +1 -0
- package/dist/components/charts/ChartTimeline/timelineLayout.js +109 -0
- package/dist/components/charts/ChartTimeline/timelineLayout.js.map +1 -0
- package/dist/components/charts/ChartTimeline/timelineTime.cjs +2 -0
- package/dist/components/charts/ChartTimeline/timelineTime.cjs.map +1 -0
- package/dist/components/charts/ChartTimeline/timelineTime.js +91 -0
- package/dist/components/charts/ChartTimeline/timelineTime.js.map +1 -0
- package/dist/components/charts/ChartTimeline/timelineTooltip.cjs +2 -0
- package/dist/components/charts/ChartTimeline/timelineTooltip.cjs.map +1 -0
- package/dist/components/charts/ChartTimeline/timelineTooltip.js +77 -0
- package/dist/components/charts/ChartTimeline/timelineTooltip.js.map +1 -0
- package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +1 -1
- package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -1
- package/dist/components/charts/ChartTooltip/ChartTooltip.js +1 -1
- package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -1
- package/dist/components/charts/ChartTreemap/ChartTreemap.cjs +1 -1
- package/dist/components/charts/ChartTreemap/ChartTreemap.cjs.map +1 -1
- package/dist/components/charts/ChartTreemap/ChartTreemap.js +100 -89
- package/dist/components/charts/ChartTreemap/ChartTreemap.js.map +1 -1
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs +1 -1
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs.map +1 -1
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.js +125 -105
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.js.map +1 -1
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs +1 -1
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js +8 -6
- package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js.map +1 -1
- package/dist/components/charts/core/CartesianFrame.cjs +1 -1
- package/dist/components/charts/core/CartesianFrame.cjs.map +1 -1
- package/dist/components/charts/core/CartesianFrame.js +61 -96
- package/dist/components/charts/core/CartesianFrame.js.map +1 -1
- package/dist/components/charts/core/Chart.module.css.cjs +1 -1
- package/dist/components/charts/core/Chart.module.css.js +52 -54
- package/dist/components/charts/core/Chart.module.css.js.map +1 -1
- package/dist/components/charts/core/ChartFrame.cjs +1 -1
- package/dist/components/charts/core/ChartFrame.cjs.map +1 -1
- package/dist/components/charts/core/ChartFrame.js +53 -47
- package/dist/components/charts/core/ChartFrame.js.map +1 -1
- package/dist/components/charts/core/ChartLegend.cjs +1 -1
- package/dist/components/charts/core/ChartLegend.cjs.map +1 -1
- package/dist/components/charts/core/ChartLegend.js +37 -25
- package/dist/components/charts/core/ChartLegend.js.map +1 -1
- package/dist/components/charts/core/PointBands.cjs +2 -0
- package/dist/components/charts/core/PointBands.cjs.map +1 -0
- package/dist/components/charts/core/PointBands.js +41 -0
- package/dist/components/charts/core/PointBands.js.map +1 -0
- package/dist/components/charts/core/cartesianLayout.cjs +1 -1
- package/dist/components/charts/core/cartesianLayout.cjs.map +1 -1
- package/dist/components/charts/core/cartesianLayout.js +49 -41
- package/dist/components/charts/core/cartesianLayout.js.map +1 -1
- package/dist/components/charts/core/hoverPath.cjs +2 -0
- package/dist/components/charts/core/hoverPath.cjs.map +1 -0
- package/dist/components/charts/core/hoverPath.js +7 -0
- package/dist/components/charts/core/hoverPath.js.map +1 -0
- package/dist/components/charts/core/pointLabels.cjs +2 -0
- package/dist/components/charts/core/pointLabels.cjs.map +1 -0
- package/dist/components/charts/core/pointLabels.js +12 -0
- package/dist/components/charts/core/pointLabels.js.map +1 -0
- package/dist/components/charts/core/tooltips.cjs +2 -0
- package/dist/components/charts/core/tooltips.cjs.map +1 -0
- package/dist/components/charts/core/tooltips.js +48 -0
- package/dist/components/charts/core/tooltips.js.map +1 -0
- package/dist/components/charts/core/useCartesianLayout.cjs +2 -0
- package/dist/components/charts/core/useCartesianLayout.cjs.map +1 -0
- package/dist/components/charts/core/useCartesianLayout.js +38 -0
- package/dist/components/charts/core/useCartesianLayout.js.map +1 -0
- package/dist/components/charts/core/useChartMetrics.cjs +1 -1
- package/dist/components/charts/core/useChartMetrics.cjs.map +1 -1
- package/dist/components/charts/core/useChartMetrics.js +20 -25
- package/dist/components/charts/core/useChartMetrics.js.map +1 -1
- package/dist/components/charts/core/useSeriesToggle.cjs +1 -1
- package/dist/components/charts/core/useSeriesToggle.cjs.map +1 -1
- package/dist/components/charts/core/useSeriesToggle.js +19 -12
- package/dist/components/charts/core/useSeriesToggle.js.map +1 -1
- package/dist/components/data-display/Accordion/Accordion.cjs +1 -1
- package/dist/components/data-display/Accordion/Accordion.cjs.map +1 -1
- package/dist/components/data-display/Accordion/Accordion.js +56 -46
- package/dist/components/data-display/Accordion/Accordion.js.map +1 -1
- package/dist/components/data-display/Accordion/Accordion.module.css.cjs +1 -1
- package/dist/components/data-display/Accordion/Accordion.module.css.js +16 -16
- package/dist/components/data-display/List/List.cjs.map +1 -1
- package/dist/components/data-display/List/List.js.map +1 -1
- package/dist/components/data-display/List/List.module.css.cjs +1 -1
- package/dist/components/data-display/List/List.module.css.js +34 -24
- package/dist/components/data-display/List/List.module.css.js.map +1 -1
- package/dist/components/data-display/List/ListingOptions.cjs +1 -1
- package/dist/components/data-display/List/ListingOptions.cjs.map +1 -1
- package/dist/components/data-display/List/ListingOptions.js +98 -74
- package/dist/components/data-display/List/ListingOptions.js.map +1 -1
- package/dist/components/data-display/List/useListing.cjs.map +1 -1
- package/dist/components/data-display/List/useListing.js.map +1 -1
- package/dist/components/data-display/SortableList/SortableList.cjs +2 -0
- package/dist/components/data-display/SortableList/SortableList.cjs.map +1 -0
- package/dist/components/data-display/SortableList/SortableList.js +168 -0
- package/dist/components/data-display/SortableList/SortableList.js.map +1 -0
- package/dist/components/data-display/SortableList/SortableList.module.css.cjs +2 -0
- package/dist/components/data-display/SortableList/SortableList.module.css.cjs.map +1 -0
- package/dist/components/data-display/SortableList/SortableList.module.css.js +34 -0
- package/dist/components/data-display/SortableList/SortableList.module.css.js.map +1 -0
- package/dist/components/data-display/Table/Table.cjs +1 -1
- package/dist/components/data-display/Table/Table.cjs.map +1 -1
- package/dist/components/data-display/Table/Table.js +86 -85
- package/dist/components/data-display/Table/Table.js.map +1 -1
- package/dist/components/data-display/Table/Table.module.css.cjs +1 -1
- package/dist/components/data-display/Table/Table.module.css.js +50 -51
- package/dist/components/data-display/Table/Table.module.css.js.map +1 -1
- package/dist/components/data-display/Tag/Tag.cjs +2 -0
- package/dist/components/data-display/Tag/Tag.cjs.map +1 -0
- package/dist/components/data-display/Tag/Tag.js +50 -0
- package/dist/components/data-display/Tag/Tag.js.map +1 -0
- package/dist/components/data-display/Tag/Tag.module.css.cjs +2 -0
- package/dist/components/data-display/Tag/Tag.module.css.cjs.map +1 -0
- package/dist/components/data-display/Tag/Tag.module.css.js +22 -0
- package/dist/components/data-display/Tag/Tag.module.css.js.map +1 -0
- package/dist/components/data-display/Timeline/Timeline.cjs +2 -0
- package/dist/components/data-display/Timeline/Timeline.cjs.map +1 -0
- package/dist/components/data-display/Timeline/Timeline.js +31 -0
- package/dist/components/data-display/Timeline/Timeline.js.map +1 -0
- package/dist/components/data-display/Timeline/Timeline.module.css.cjs +2 -0
- package/dist/components/data-display/Timeline/Timeline.module.css.cjs.map +1 -0
- package/dist/components/data-display/Timeline/Timeline.module.css.js +30 -0
- package/dist/components/data-display/Timeline/Timeline.module.css.js.map +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.cjs +2 -0
- package/dist/components/feedback/Skeleton/Skeleton.cjs.map +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.js +17 -0
- package/dist/components/feedback/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs +2 -0
- package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs.map +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.module.css.js +15 -0
- package/dist/components/feedback/Skeleton/Skeleton.module.css.js.map +1 -0
- package/dist/components/feedback/Toast/Toast.module.css.cjs +2 -0
- package/dist/components/feedback/Toast/Toast.module.css.cjs.map +1 -0
- package/dist/components/feedback/Toast/Toast.module.css.js +31 -0
- package/dist/components/feedback/Toast/Toast.module.css.js.map +1 -0
- package/dist/components/feedback/Toast/ToastRegion.cjs +2 -0
- package/dist/components/feedback/Toast/ToastRegion.cjs.map +1 -0
- package/dist/components/feedback/Toast/ToastRegion.js +62 -0
- package/dist/components/feedback/Toast/ToastRegion.js.map +1 -0
- package/dist/components/feedback/Toast/toastStore.cjs +2 -0
- package/dist/components/feedback/Toast/toastStore.cjs.map +1 -0
- package/dist/components/feedback/Toast/toastStore.js +33 -0
- package/dist/components/feedback/Toast/toastStore.js.map +1 -0
- package/dist/components/forms/Checkbox/Checkbox.cjs +1 -1
- package/dist/components/forms/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/components/forms/Checkbox/Checkbox.js +43 -31
- package/dist/components/forms/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/forms/Checkbox/Checkbox.module.css.cjs +1 -1
- package/dist/components/forms/Checkbox/Checkbox.module.css.js +1 -1
- package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs +2 -0
- package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs.map +1 -0
- package/dist/components/forms/CheckboxGroup/CheckboxGroup.js +54 -0
- package/dist/components/forms/CheckboxGroup/CheckboxGroup.js.map +1 -0
- package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs +2 -0
- package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs.map +1 -0
- package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js +22 -0
- package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js.map +1 -0
- package/dist/components/forms/ColorPicker/ColorPicker.cjs +2 -0
- package/dist/components/forms/ColorPicker/ColorPicker.cjs.map +1 -0
- package/dist/components/forms/ColorPicker/ColorPicker.js +57 -0
- package/dist/components/forms/ColorPicker/ColorPicker.js.map +1 -0
- package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs +2 -0
- package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs.map +1 -0
- package/dist/components/forms/ColorPicker/ColorPicker.module.css.js +22 -0
- package/dist/components/forms/ColorPicker/ColorPicker.module.css.js.map +1 -0
- package/dist/components/forms/ComboBox/ComboBox.cjs.map +1 -1
- package/dist/components/forms/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/forms/ComboBox/ComboBox.module.css.cjs +1 -1
- package/dist/components/forms/ComboBox/ComboBox.module.css.js +20 -20
- package/dist/components/forms/Field/Field.cjs +1 -1
- package/dist/components/forms/Field/Field.cjs.map +1 -1
- package/dist/components/forms/Field/Field.js +21 -20
- package/dist/components/forms/Field/Field.js.map +1 -1
- package/dist/components/forms/Field/Field.module.css.cjs +1 -1
- package/dist/components/forms/Field/Field.module.css.js +18 -12
- package/dist/components/forms/Field/Field.module.css.js.map +1 -1
- package/dist/components/forms/FileUpload/FileUpload.cjs +2 -0
- package/dist/components/forms/FileUpload/FileUpload.cjs.map +1 -0
- package/dist/components/forms/FileUpload/FileUpload.js +142 -0
- package/dist/components/forms/FileUpload/FileUpload.js.map +1 -0
- package/dist/components/forms/FileUpload/FileUpload.module.css.cjs +2 -0
- package/dist/components/forms/FileUpload/FileUpload.module.css.cjs.map +1 -0
- package/dist/components/forms/FileUpload/FileUpload.module.css.js +46 -0
- package/dist/components/forms/FileUpload/FileUpload.module.css.js.map +1 -0
- package/dist/components/forms/InputPassword/InputPassword.module.css.cjs +1 -1
- package/dist/components/forms/InputPassword/InputPassword.module.css.js +12 -12
- package/dist/components/forms/InputText/InputText.cjs +1 -1
- package/dist/components/forms/InputText/InputText.cjs.map +1 -1
- package/dist/components/forms/InputText/InputText.js +55 -47
- package/dist/components/forms/InputText/InputText.js.map +1 -1
- package/dist/components/forms/InputText/InputText.module.css.cjs +1 -1
- package/dist/components/forms/InputText/InputText.module.css.js +10 -10
- package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs +1 -1
- package/dist/components/forms/RadioGroup/RadioGroup.module.css.js +4 -4
- package/dist/components/forms/SegmentedControl/SegmentedControl.cjs +2 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.map +1 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.js +52 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs +2 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs.map +1 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js +22 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
- package/dist/components/forms/Select/Select.module.css.cjs +1 -1
- package/dist/components/forms/Select/Select.module.css.js +13 -13
- package/dist/components/forms/Switch/Switch.module.css.cjs +1 -1
- package/dist/components/forms/Switch/Switch.module.css.js +2 -2
- package/dist/components/icons/icons.cjs +1 -1
- package/dist/components/icons/icons.cjs.map +1 -1
- package/dist/components/icons/icons.js +198 -40
- package/dist/components/icons/icons.js.map +1 -1
- package/dist/components/navigation/SkipLink/SkipLink.cjs +2 -0
- package/dist/components/navigation/SkipLink/SkipLink.cjs.map +1 -0
- package/dist/components/navigation/SkipLink/SkipLink.js +9 -0
- package/dist/components/navigation/SkipLink/SkipLink.js.map +1 -0
- package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs +2 -0
- package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs.map +1 -0
- package/dist/components/navigation/SkipLink/SkipLink.module.css.js +8 -0
- package/dist/components/navigation/SkipLink/SkipLink.module.css.js.map +1 -0
- package/dist/components/navigation/Steps/Steps.cjs +2 -0
- package/dist/components/navigation/Steps/Steps.cjs.map +1 -0
- package/dist/components/navigation/Steps/Steps.js +30 -0
- package/dist/components/navigation/Steps/Steps.js.map +1 -0
- package/dist/components/navigation/Steps/Steps.module.css.cjs +2 -0
- package/dist/components/navigation/Steps/Steps.module.css.cjs.map +1 -0
- package/dist/components/navigation/Steps/Steps.module.css.js +26 -0
- package/dist/components/navigation/Steps/Steps.module.css.js.map +1 -0
- package/dist/components/navigation/Tabs/Tabs.cjs +1 -1
- package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +88 -79
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.module.css.cjs +1 -1
- package/dist/components/navigation/Tabs/Tabs.module.css.js +18 -14
- package/dist/components/navigation/Tabs/Tabs.module.css.js.map +1 -1
- package/dist/components/navigation/TabsNav/TabsNav.cjs +2 -0
- package/dist/components/navigation/TabsNav/TabsNav.cjs.map +1 -0
- package/dist/components/navigation/TabsNav/TabsNav.js +21 -0
- package/dist/components/navigation/TabsNav/TabsNav.js.map +1 -0
- package/dist/components/navigation/TabsNav/TabsNav.module.css.cjs +2 -0
- package/dist/components/navigation/TabsNav/TabsNav.module.css.cjs.map +1 -0
- package/dist/components/navigation/TabsNav/TabsNav.module.css.js +18 -0
- package/dist/components/navigation/TabsNav/TabsNav.module.css.js.map +1 -0
- package/dist/components/overlays/Dialog/Dialog.cjs +1 -1
- package/dist/components/overlays/Dialog/Dialog.cjs.map +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +11 -58
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogFrame.cjs +2 -0
- package/dist/components/overlays/Dialog/DialogFrame.cjs.map +1 -0
- package/dist/components/overlays/Dialog/DialogFrame.js +65 -0
- package/dist/components/overlays/Dialog/DialogFrame.js.map +1 -0
- package/dist/components/overlays/Drawer/Drawer.cjs +2 -0
- package/dist/components/overlays/Drawer/Drawer.cjs.map +1 -0
- package/dist/components/overlays/Drawer/Drawer.js +17 -0
- package/dist/components/overlays/Drawer/Drawer.js.map +1 -0
- package/dist/components/overlays/Drawer/Drawer.module.css.cjs +2 -0
- package/dist/components/overlays/Drawer/Drawer.module.css.cjs.map +1 -0
- package/dist/components/overlays/Drawer/Drawer.module.css.js +23 -0
- package/dist/components/overlays/Drawer/Drawer.module.css.js.map +1 -0
- package/dist/components/overlays/Menu/Menu.cjs +1 -1
- package/dist/components/overlays/Menu/Menu.cjs.map +1 -1
- package/dist/components/overlays/Menu/Menu.js +105 -86
- package/dist/components/overlays/Menu/Menu.js.map +1 -1
- package/dist/components/overlays/Menu/Menu.module.css.cjs +1 -1
- package/dist/components/overlays/Menu/Menu.module.css.js +24 -6
- package/dist/components/overlays/Menu/Menu.module.css.js.map +1 -1
- package/dist/design-system.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +190 -118
- package/dist/index.js.map +1 -1
- package/dist/types/components/actions/ButtonTile/ButtonTile.d.ts +14 -0
- package/dist/types/components/actions/ButtonTile/index.d.ts +2 -0
- package/dist/types/components/actions/Toolbar/Toolbar.d.ts +27 -0
- package/dist/types/components/actions/Toolbar/index.d.ts +2 -0
- package/dist/types/components/charts/ChartArea/ChartArea.d.ts +15 -4
- package/dist/types/components/charts/ChartBar/ChartBar.d.ts +11 -4
- package/dist/types/components/charts/ChartCombo/ChartCombo.d.ts +16 -4
- package/dist/types/components/charts/ChartDonut/ChartDonut.d.ts +5 -1
- package/dist/types/components/charts/ChartGauge/ChartGauge.d.ts +83 -0
- package/dist/types/components/charts/ChartGauge/gaugeLayout.d.ts +64 -0
- package/dist/types/components/charts/ChartGauge/gaugeReading.d.ts +97 -0
- package/dist/types/components/charts/ChartGauge/gaugeScale.d.ts +38 -0
- package/dist/types/components/charts/ChartGauge/index.d.ts +2 -0
- package/dist/types/components/charts/ChartLine/ChartLine.d.ts +15 -4
- package/dist/types/components/charts/ChartMap/ChartMap.d.ts +104 -0
- package/dist/types/components/charts/ChartMap/ChartMapLegend.d.ts +44 -0
- package/dist/types/components/charts/ChartMap/ChartMapTable.d.ts +38 -0
- package/dist/types/components/charts/ChartMap/index.d.ts +4 -0
- package/dist/types/components/charts/ChartMap/mapGeometry.d.ts +56 -0
- package/dist/types/components/charts/ChartMap/mapLabels.d.ts +51 -0
- package/dist/types/components/charts/ChartMap/mapScales.d.ts +76 -0
- package/dist/types/components/charts/ChartMap/polylabel.d.ts +9 -0
- package/dist/types/components/charts/ChartPie/ChartPie.d.ts +5 -1
- package/dist/types/components/charts/ChartRadial/ChartRadial.d.ts +5 -1
- package/dist/types/components/charts/ChartSankey/ChartSankey.d.ts +5 -1
- package/dist/types/components/charts/ChartScatter/ChartScatter.d.ts +7 -1
- package/dist/types/components/charts/ChartSunburst/ChartSunburst.d.ts +11 -2
- package/dist/types/components/charts/ChartTimeline/ChartTimeline.d.ts +137 -0
- package/dist/types/components/charts/ChartTimeline/ChartTimelineTable.d.ts +25 -0
- package/dist/types/components/charts/ChartTimeline/index.d.ts +2 -0
- package/dist/types/components/charts/ChartTimeline/timelineLayout.d.ts +70 -0
- package/dist/types/components/charts/ChartTimeline/timelineTime.d.ts +16 -0
- package/dist/types/components/charts/ChartTimeline/timelineTooltip.d.ts +45 -0
- package/dist/types/components/charts/ChartTooltip/ChartTooltip.d.ts +2 -0
- package/dist/types/components/charts/ChartTreemap/ChartTreemap.d.ts +11 -2
- package/dist/types/components/charts/ChartWaterfall/ChartWaterfall.d.ts +8 -3
- package/dist/types/components/charts/core/CartesianFrame.d.ts +6 -1
- package/dist/types/components/charts/core/ChartFrame.d.ts +7 -1
- package/dist/types/components/charts/core/ChartLegend.d.ts +3 -1
- package/dist/types/components/charts/core/PointBands.d.ts +22 -0
- package/dist/types/components/charts/core/cartesianLayout.d.ts +10 -4
- package/dist/types/components/charts/core/hoverPath.d.ts +10 -0
- package/dist/types/components/charts/core/index.d.ts +13 -3
- package/dist/types/components/charts/core/pointLabels.d.ts +13 -0
- package/dist/types/components/charts/core/tooltips.d.ts +49 -0
- package/dist/types/components/charts/core/useCartesianLayout.d.ts +20 -0
- package/dist/types/components/charts/core/useSeriesToggle.d.ts +15 -1
- package/dist/types/components/data-display/Accordion/Accordion.d.ts +6 -1
- package/dist/types/components/data-display/Accordion/index.d.ts +1 -1
- package/dist/types/components/data-display/List/List.d.ts +1 -1
- package/dist/types/components/data-display/List/useListing.d.ts +7 -1
- package/dist/types/components/data-display/SortableList/SortableList.d.ts +22 -0
- package/dist/types/components/data-display/SortableList/index.d.ts +2 -0
- package/dist/types/components/data-display/Tag/Tag.d.ts +13 -0
- package/dist/types/components/data-display/Tag/index.d.ts +2 -0
- package/dist/types/components/data-display/Timeline/Timeline.d.ts +15 -0
- package/dist/types/components/data-display/Timeline/index.d.ts +2 -0
- package/dist/types/components/feedback/Skeleton/Skeleton.d.ts +13 -0
- package/dist/types/components/feedback/Skeleton/index.d.ts +2 -0
- package/dist/types/components/feedback/Toast/ToastRegion.d.ts +2 -0
- package/dist/types/components/feedback/Toast/index.d.ts +3 -0
- package/dist/types/components/feedback/Toast/toastStore.d.ts +24 -0
- package/dist/types/components/forms/CheckboxGroup/CheckboxGroup.d.ts +28 -0
- package/dist/types/components/forms/CheckboxGroup/index.d.ts +2 -0
- package/dist/types/components/forms/ColorPicker/ColorPicker.d.ts +26 -0
- package/dist/types/components/forms/ColorPicker/index.d.ts +2 -0
- package/dist/types/components/forms/ComboBox/ComboBox.d.ts +7 -1
- package/dist/types/components/forms/Field/Field.d.ts +6 -2
- package/dist/types/components/forms/Field/index.d.ts +1 -1
- package/dist/types/components/forms/FileUpload/FileUpload.d.ts +37 -0
- package/dist/types/components/forms/FileUpload/index.d.ts +2 -0
- package/dist/types/components/forms/InputText/InputText.d.ts +4 -2
- package/dist/types/components/forms/SegmentedControl/SegmentedControl.d.ts +23 -0
- package/dist/types/components/forms/SegmentedControl/index.d.ts +2 -0
- package/dist/types/components/icons/icons.d.ts +29 -0
- package/dist/types/components/icons/index.d.ts +1 -1
- package/dist/types/components/navigation/SkipLink/SkipLink.d.ts +7 -0
- package/dist/types/components/navigation/SkipLink/index.d.ts +2 -0
- package/dist/types/components/navigation/Steps/Steps.d.ts +16 -0
- package/dist/types/components/navigation/Steps/index.d.ts +2 -0
- package/dist/types/components/navigation/Tabs/Tabs.d.ts +5 -1
- package/dist/types/components/navigation/TabsNav/TabsNav.d.ts +20 -0
- package/dist/types/components/navigation/TabsNav/index.d.ts +2 -0
- package/dist/types/components/overlays/Dialog/Dialog.d.ts +21 -9
- package/dist/types/components/overlays/Dialog/DialogFrame.d.ts +13 -0
- package/dist/types/components/overlays/Drawer/Drawer.d.ts +9 -0
- package/dist/types/components/overlays/Drawer/index.d.ts +2 -0
- package/dist/types/components/overlays/Menu/Menu.d.ts +16 -2
- package/dist/types/components/overlays/Menu/index.d.ts +1 -1
- package/dist/types/index.d.ts +43 -7
- package/dist/types/utils/formatters/formatarDuracao.d.ts +5 -0
- package/dist/types/utils/formatters/formatarNumero.d.ts +6 -1
- package/dist/types/utils/formatters/formatarTamanhoDeArquivo.d.ts +7 -0
- package/dist/types/utils/formatters/index.d.ts +4 -1
- package/dist/utils/formatters/formatarDuracao.cjs +2 -0
- package/dist/utils/formatters/formatarDuracao.cjs.map +1 -0
- package/dist/utils/formatters/formatarDuracao.js +10 -0
- package/dist/utils/formatters/formatarDuracao.js.map +1 -0
- package/dist/utils/formatters/formatarNumero.cjs +1 -1
- package/dist/utils/formatters/formatarNumero.cjs.map +1 -1
- package/dist/utils/formatters/formatarNumero.js +42 -17
- package/dist/utils/formatters/formatarNumero.js.map +1 -1
- package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs +2 -0
- package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs.map +1 -0
- package/dist/utils/formatters/formatarTamanhoDeArquivo.js +17 -0
- package/dist/utils/formatters/formatarTamanhoDeArquivo.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartMap.cjs","sources":["../../../../src/components/charts/ChartMap/ChartMap.tsx"],"sourcesContent":["import { sum } from 'd3-array';\nimport { geoPath, type GeoProjection } from 'd3-geo';\nimport { scaleSqrt } from 'd3-scale';\nimport { useEffect, useId, useMemo, useRef, useState, type KeyboardEvent, type SyntheticEvent } from 'react';\nimport { Button } from '../../actions/Button';\nimport { EmptyState } from '../../feedback/EmptyState';\nimport { IconChartBar } from '../../icons';\nimport { ChartTooltip, type ChartTooltipProps, type ChartTooltipRow } from '../ChartTooltip';\nimport {\n measureLabel,\n useChartMetrics,\n useSeriesToggle,\n type ChartHeight,\n type ChartLegendAlign,\n type LabelFont,\n type MarkVisibility,\n} from '../core';\nimport { resolveSeriesColors, type SeriesAppearance } from '../palette';\nimport { formatarNumero, formatarPercentual } from '../../../utils/formatters';\nimport { ChartMapLegend } from './ChartMapLegend';\nimport { ChartMapTable, type MapTableMarkerRow, type MapTableRegionRow } from './ChartMapTable';\nimport {\n fitProjection,\n naturalHeight,\n projectedBounds,\n projectedParts,\n regionsOf,\n type ChartMapFeature,\n type ChartMapFeatureCollection,\n type MapRegion,\n} from './mapGeometry';\nimport { CALLOUT_GAP, calloutWidth, planLabels, type LabelCandidate, type LabelPlan } from './mapLabels';\nimport { buildMapScale, type ChartMapColorScale, type MapScale } from './mapScales';\nimport type { Point, Ring } from './polylabel';\nimport styles from './ChartMap.module.css';\n\nexport interface ChartMapRegionDatum {\n /** `id` da categoria, na escala categorica. */\n category?: string;\n /** Casa com o identificador da feicao, lido por `featureIdKey`. */\n id: string;\n value?: number | null;\n}\n\nexport interface ChartMapMarker {\n id: string;\n label: string;\n latitude: number;\n longitude: number;\n value: number;\n}\n\nexport interface ChartMapMarkerSeries extends SeriesAppearance {\n id: string;\n label: string;\n points: readonly ChartMapMarker[];\n}\n\n/** Argumento de `onRegionClick`. */\nexport interface ChartMapRegion {\n category: string | null;\n feature: ChartMapFeature;\n id: string;\n name: string;\n value: number | null;\n}\n\n/** Argumento de `onMarkerClick`. */\nexport interface ChartMapMarkerEvent {\n id: string;\n /** `id` da serie. */\n series: string;\n value: number;\n}\n\nexport type ChartMapLegendPosition = 'top' | 'bottom' | 'right' | 'none';\n\nexport interface ChartMapProps {\n /** Cor de tema que abre a paleta das categorias e dos marcadores, como nos demais gráficos. */\n accent?: string;\n colorScale?: ChartMapColorScale;\n data?: readonly ChartMapRegionDatum[];\n /** Series ocultas de inicio, no modo nao controlado: categorias e series de marcadores, pelo `id`. */\n defaultHiddenSeries?: readonly string[];\n emptyMessage?: string;\n /** Caminho do identificador na feicao, como `properties.sigla`. E por ele que o dado casa. */\n featureIdKey?: string;\n /** Caminho do texto curto do rotulo no desenho. Sem ele, o identificador, como a sigla da UF. */\n featureLabelKey?: string;\n /** Caminho do nome exibido no balao, na tabela e na descricao. */\n featureNameKey?: string;\n /** Ids que o enquadramento abraca. As demais regioes ficam em cinza, como contexto, sem interacao. */\n focus?: readonly string[];\n formatPercent?: (ratio: number) => string;\n formatTooltipValue?: (value: number) => string;\n formatValue?: (value: number) => string;\n /** Fronteiras em GeoJSON, fornecidas pelo produto, que responde pela licenca delas. */\n geometry: ChartMapFeatureCollection;\n /** Altura maxima em px, ou `fill`. Na largura estreita, a altura encolhe ate a proporcao da geometria. */\n height?: ChartHeight;\n /** Faixas ocultas pelo indice, na escala por classes (controlado). */\n hiddenClasses?: readonly number[];\n /** Categorias e series de marcadores desligadas, pelo `id` (controlado). */\n hiddenSeries?: readonly string[];\n /** Abaixo de 640 px de largura, `right` cai para `bottom`. */\n legend?: ChartMapLegendPosition;\n legendAlign?: ChartLegendAlign;\n /** Raio maximo do marcador, em px. O raio cresce pela raiz do valor, entao a area e proporcional. */\n markerMaxSize?: number;\n markerMinSize?: number;\n markers?: readonly ChartMapMarkerSeries[];\n markerValueLabel?: string;\n noDataLabel?: string;\n noDataStyle?: 'hatch' | 'neutral';\n onHiddenClassesChange?: (hidden: readonly number[]) => void;\n onHiddenSeriesChange?: (hidden: readonly string[]) => void;\n /** Regiao sob o ponteiro ou o foco, para paineis vizinhos. */\n onHoverRegion?: (id: string | null) => void;\n /** Com ele, os marcadores viram botoes e entram no teclado. */\n onMarkerClick?: (marker: ChartMapMarkerEvent) => void;\n /** Com ele, as regioes viram botoes e entram no teclado. */\n onRegionClick?: (region: ChartMapRegion) => void;\n regionLabels?: MarkVisibility;\n selectedRegion?: string | null;\n showDataLabels?: MarkVisibility;\n /** Parte do total no balao e na tabela. So faz sentido em grandeza somavel. */\n showShare?: boolean;\n showTableToggle?: boolean;\n showTooltip?: boolean;\n /** O rotulo que nao cabe na regiao vai para uma coluna junto ao desenho, com linha guia, ou some. */\n smallRegionLabels?: 'callout' | 'hidden';\n /** Linha sob o titulo, como o total do nivel. */\n subtitle?: string;\n title: string;\n valueLabel?: string;\n}\n\ninterface RegionEntry {\n category: string | null;\n /** Nome, valor e posicao, para o leitor de tela. */\n description: string;\n /** Cor da escala; `undefined` sem dado. */\n fill: string | undefined;\n hidden: boolean;\n key: string | undefined;\n rank: number | undefined;\n region: MapRegion;\n value: number | null;\n /** Valor formatado, ou a categoria; `undefined` sem dado. */\n valueText: string | undefined;\n}\n\ninterface PlacedMarker {\n color: string;\n key: string;\n point: ChartMapMarker;\n radius: number;\n series: ChartMapMarkerSeries;\n x: number;\n y: number;\n}\n\ntype Target = { kind: 'region'; entry: RegionEntry } | { kind: 'marker'; marker: PlacedMarker };\n\nconst DEFAULT_SCALE: ChartMapColorScale = { type: 'sequential' };\nconst NARROW = 640;\nconst MIN_HEIGHT = 160;\nconst SIDE_LEGEND_MAX = 240;\nconst NO_DATA_HATCH =\n 'repeating-linear-gradient(45deg, var(--pl-chart-no-data-hatch) 0 1.5px, var(--pl-chart-no-data) 1.5px 4px)';\nconst HIDDEN_FILL = 'var(--pl-color-surface-subtle)';\n\nconst defaultPercent = (ratio: number) => formatarPercentual(ratio, { casasDecimais: 1 });\nconst plural = (count: number, one: string, many: string) => `${count} ${count === 1 ? one : many}`;\n\n/** Traco mais fino quanto mais regioes: nos municipios, a borda inteira escurecia o mapa. */\nfunction strokeWidthFor(count: number) {\n return count > 1000 ? 0.25 : count > 100 ? 0.5 : 0.8;\n}\n\ndeclare const process: { env: { NODE_ENV?: string } };\n\n// O bundler de quem consome substitui a expressão inteira; sem bundler e sem `process`, o aviso apenas não sai.\nfunction isDevelopment() {\n try {\n return process.env.NODE_ENV !== 'production';\n } catch {\n return false;\n }\n}\n\ninterface MapLayout {\n height: number;\n plan: LabelPlan;\n projection: GeoProjection;\n}\n\ninterface LayoutInput {\n all: readonly MapRegion[];\n callouts: boolean;\n /** Em `fill`, a altura e a do conteiner, e nao a que a geometria pede. */\n fixedHeight: boolean;\n font: LabelFont;\n labels: boolean;\n maxHeight: number;\n target: readonly MapRegion[];\n valueOf: (region: MapRegion) => string | undefined;\n width: number;\n}\n\n/**\n * Enquadra e rotula. A altura e a que a geometria pede na largura, ate a maxima, sem faixa vazia. Quando algum rotulo\n * vai para a coluna, o desenho cede a largura dela e e enquadrado e rotulado de novo.\n */\nfunction layoutMap({ all, callouts, fixedHeight, font, labels, maxHeight, target, valueOf, width }: LayoutInput): MapLayout {\n const measure = (text: string) => measureLabel(text, font);\n const lineHeight = font.size + 1;\n\n const pass = (drawingWidth: number): MapLayout => {\n const height = fixedHeight\n ? maxHeight\n : Math.round(Math.min(maxHeight, Math.max(MIN_HEIGHT, naturalHeight(target, drawingWidth))));\n const projection = fitProjection(target, all, drawingWidth, height);\n\n if (!labels) {\n return { height, plan: { callouts: [], inside: [] }, projection };\n }\n\n const candidates = target.map((region): LabelCandidate => {\n let parts: Ring[][] | undefined;\n\n return {\n bounds: projectedBounds(region, projection),\n id: region.id,\n get parts() {\n parts ??= projectedParts(region, projection);\n return parts;\n },\n title: region.label,\n value: valueOf(region),\n };\n });\n\n return {\n height,\n plan: planLabels(candidates, {\n callouts,\n calloutStep: font.lineHeight,\n height,\n lineHeight,\n measure,\n right: drawingWidth,\n }),\n projection,\n };\n };\n\n const first = pass(width);\n\n if (first.plan.callouts.length === 0) {\n return first;\n }\n\n const gutter = Math.ceil(Math.max(...first.plan.callouts.map((label) => calloutWidth(label, measure))) + CALLOUT_GAP + 4);\n\n return pass(Math.max(width - gutter, width / 2));\n}\n\n/**\n * Regioes pintadas pelo valor e marcadores por coordenada, sobre a geometria GeoJSON que o produto fornece. O desenho\n * e imagem nomeada pelo titulo; com `onRegionClick` ou `onMarkerClick`, um grupo cujas marcas sao botoes de tabulacao\n * movel. A leitura completa, com busca, esta na visao em tabela.\n */\nexport function ChartMap({\n accent,\n colorScale = DEFAULT_SCALE,\n data = [],\n defaultHiddenSeries,\n emptyMessage = 'Sem dados',\n featureIdKey = 'id',\n featureLabelKey,\n featureNameKey = 'properties.name',\n focus,\n formatPercent = defaultPercent,\n formatTooltipValue,\n formatValue = formatarNumero,\n geometry,\n height = 440,\n hiddenClasses,\n hiddenSeries,\n legend = 'bottom',\n legendAlign = 'center',\n markerMaxSize = 20,\n markerMinSize = 3,\n markers,\n markerValueLabel = 'Valor',\n noDataLabel = 'Sem dado',\n noDataStyle = 'hatch',\n onHiddenClassesChange,\n onHiddenSeriesChange,\n onHoverRegion,\n onMarkerClick,\n onRegionClick,\n regionLabels = 'visible',\n selectedRegion,\n showDataLabels = 'hidden',\n showShare = false,\n showTableToggle = true,\n showTooltip = true,\n smallRegionLabels = 'callout',\n subtitle,\n title,\n valueLabel = 'Valor',\n}: ChartMapProps) {\n const titleId = useId();\n const summaryId = useId();\n const hatchId = `${useId().replace(/[^\\w-]/g, '')}-hatch`;\n const outer = useChartMetrics();\n const plot = useChartMetrics();\n const svgRef = useRef<SVGSVGElement>(null);\n const seriesToggle = useSeriesToggle({ defaultHiddenSeries, hiddenSeries, onHiddenSeriesChange });\n // As faixas sao indices; a legenda liga e desliga por texto.\n const hiddenClassKeys = useMemo(() => hiddenClasses?.map(String), [hiddenClasses]);\n const classToggle = useSeriesToggle({\n hiddenSeries: hiddenClassKeys,\n onHiddenSeriesChange: onHiddenClassesChange && ((hidden) => onHiddenClassesChange(hidden.map(Number))),\n });\n const [target, setTarget] = useState<Target | null>(null);\n const [focusedMark, setFocusedMark] = useState<string | null>(null);\n const [tabStopMark, setTabStopMark] = useState<string | null>(null);\n const [highlightedKey, setHighlightedKey] = useState<string | null>(null);\n const [tableView, setTableView] = useState(false);\n\n const regions = useMemo(\n () => regionsOf(geometry, { idKey: featureIdKey, labelKey: featureLabelKey, nameKey: featureNameKey }),\n [featureIdKey, featureLabelKey, featureNameKey, geometry],\n );\n // A chave textual mantem o recorte memorizado enquanto os ids nao mudam, mesmo com outra lista a cada desenho.\n const focusKey = (focus ?? []).join('\\u0000');\n const { context, inPlay } = useMemo(() => {\n const ids = new Set(focusKey ? focusKey.split('\\u0000') : []);\n const focused = regions.filter((region) => ids.has(region.id));\n\n return focused.length > 0\n ? { context: regions.filter((region) => !ids.has(region.id)), inPlay: focused }\n : { context: [], inPlay: regions };\n }, [focusKey, regions]);\n\n const legendToggle = colorScale.type === 'categorical' ? seriesToggle : classToggle;\n const isLegendHidden = legendToggle.isHidden;\n\n // Memorizado contra o ponteiro: com milhares de municipios, refazer escala e descricoes a cada passagem pesaria.\n const { entries, ranked, scale } = useMemo(() => {\n const datumById = new Map<string, ChartMapRegionDatum>();\n data.forEach((datum) => {\n if (!datumById.has(datum.id)) {\n datumById.set(datum.id, datum);\n }\n });\n\n const read = inPlay.map((region) => {\n const datum = datumById.get(region.id);\n const value = datum?.value;\n\n return {\n category: datum?.category ?? null,\n region,\n value: typeof value === 'number' && Number.isFinite(value) ? value : null,\n };\n });\n const mapScale = buildMapScale(colorScale, read.flatMap((item) => item.value ?? []), formatValue, accent);\n const withValue = read.filter((item) => item.value !== null).sort((a, b) => b.value! - a.value!);\n const rankOf = new Map(withValue.map((item, index) => [item.region.id, index + 1]));\n const all = read.map((item): RegionEntry => {\n const key = mapScale.keyOf(item);\n const rank = rankOf.get(item.region.id);\n const valueText = mapScale.numeric\n ? item.value === null\n ? undefined\n : formatValue(item.value)\n : mapScale.labelOf(item);\n const description =\n colorScale.type === 'none'\n ? item.region.name\n : [item.region.name, valueText ?? noDataLabel, rank && `${rank}º de ${withValue.length}`]\n .filter(Boolean)\n .join(', ');\n\n return {\n ...item,\n description,\n fill: mapScale.fillOf(item),\n hidden: key !== undefined && isLegendHidden(key),\n key,\n rank,\n valueText,\n };\n });\n\n return {\n entries: all,\n ranked: all.filter((entry) => entry.rank !== undefined).sort((a, b) => a.rank! - b.rank!),\n scale: mapScale,\n };\n }, [accent, colorScale, data, formatValue, inPlay, isLegendHidden, noDataLabel]);\n const total = sum(ranked, (entry) => entry.value!);\n const noDataCount = colorScale.type === 'none' ? 0 : entries.filter((entry) => entry.fill === undefined).length;\n\n // Dado sem regiao some do desenho: em desenvolvimento, o componente avisa em vez de descartar calado.\n const orphanKey = useMemo(() => {\n const ids = new Set(regions.map((region) => region.id));\n\n return data\n .filter((datum) => !ids.has(datum.id))\n .map((datum) => datum.id)\n .join(', ');\n }, [data, regions]);\n useEffect(() => {\n if (orphanKey && isDevelopment()) {\n console.warn(`ChartMap \"${title}\": ${orphanKey.split(', ').length} dado(s) sem região na geometria, fora do desenho: ${orphanKey}.`);\n }\n }, [orphanKey, title]);\n\n const markerSeries = markers ?? [];\n const markerColors = useMemo(() => resolveSeriesColors(markerSeries, { accent }), [accent, markerSeries]);\n const validPoints = new Set(\n markerSeries.flatMap((series) =>\n series.points.filter(\n (point) => [point.latitude, point.longitude, point.value].every(Number.isFinite) && point.value >= 0,\n ),\n ),\n );\n const hasMarkers = validPoints.size > 0;\n const empty =\n regions.length === 0 ||\n (!hasMarkers &&\n (scale.numeric\n ? ranked.length === 0\n : colorScale.type === 'categorical' && entries.every((entry) => entry.fill === undefined)));\n\n const sideLegend = legend === 'right' && outer.width >= NARROW;\n const legendPosition = legend === 'right' && !sideLegend ? 'bottom' : legend;\n const width = plot.width;\n const fillHeight = height === 'fill';\n const maxHeight = fillHeight ? Math.max(plot.height, MIN_HEIGHT) : height;\n\n const labelsOn = regionLabels !== 'hidden';\n const valuesOn = showDataLabels !== 'hidden' && scale.numeric;\n const layout = useMemo(() => {\n if (width === 0 || empty) {\n return undefined;\n }\n\n const valueTexts = new Map(entries.map((entry) => [entry.region.id, entry.valueText]));\n\n return layoutMap({\n all: regions,\n callouts: smallRegionLabels === 'callout',\n fixedHeight: fillHeight,\n font: plot.font,\n labels: labelsOn,\n maxHeight,\n target: inPlay,\n valueOf: (region) => (valuesOn ? valueTexts.get(region.id) : undefined),\n width,\n });\n }, [empty, entries, fillHeight, inPlay, labelsOn, maxHeight, plot.font, regions, smallRegionLabels, valuesOn, width]);\n const projection = layout?.projection;\n const plotHeight = layout?.height ?? 0;\n const paths = useMemo(() => {\n if (!projection) {\n return new Map<string, string>();\n }\n\n const path = geoPath(projection);\n return new Map(regions.map((region) => [region.id, path(region.shape) ?? '']));\n }, [projection, regions]);\n\n const radius = scaleSqrt()\n .domain([0, Math.max(...[...validPoints].map((point) => point.value), 1)])\n .range([0, markerMaxSize]);\n const placedMarkers: PlacedMarker[] = projection\n ? markerSeries\n .flatMap((series, seriesIndex) =>\n seriesToggle.isHidden(series.id)\n ? []\n : series.points.flatMap((point, pointIndex) => {\n const position = validPoints.has(point) ? projection([point.longitude, point.latitude]) : null;\n\n return position\n ? [\n {\n color: markerColors[seriesIndex],\n key: `marker:${seriesIndex}:${pointIndex}`,\n point,\n radius: Math.max(markerMinSize, radius(point.value)),\n series,\n x: position[0],\n y: position[1],\n },\n ]\n : [];\n }),\n )\n .sort((a, b) => b.radius - a.radius)\n : [];\n\n const regionsInteractive = onRegionClick !== undefined;\n const markersInteractive = onMarkerClick !== undefined;\n const interactive = regionsInteractive || markersInteractive;\n const regionMark = (index: number) => `region:${index}`;\n const marks = [\n ...(regionsInteractive ? entries.map((_, index) => regionMark(index)) : []),\n ...(markersInteractive ? placedMarkers.map((marker) => marker.key) : []),\n ];\n const selectedIndex = entries.findIndex((entry) => entry.region.id === selectedRegion);\n const tabStop = marks.includes(tabStopMark ?? '')\n ? tabStopMark\n : regionsInteractive && selectedIndex >= 0\n ? regionMark(selectedIndex)\n : marks[0];\n\n const entryOfMark = (mark: string | null) =>\n mark?.startsWith('region:') ? entries[Number(mark.slice('region:'.length))] : undefined;\n const markerOfMark = (mark: string | null) => placedMarkers.find((marker) => marker.key === mark);\n const focusedEntry = entryOfMark(focusedMark);\n const focusedMarker = markerOfMark(focusedMark);\n const hoveredEntry = target?.kind === 'region' ? target.entry : undefined;\n const activeRegionId = hoveredEntry?.region.id ?? focusedEntry?.region.id;\n\n const regionEvent = (entry: RegionEntry): ChartMapRegion => ({\n category: entry.category,\n feature: entry.region.feature,\n id: entry.region.id,\n name: entry.region.name,\n value: entry.value,\n });\n const markerEvent = ({ point, series }: PlacedMarker): ChartMapMarkerEvent => ({\n id: point.id,\n series: series.id,\n value: point.value,\n });\n\n const describeMarker = ({ point, series }: PlacedMarker) =>\n `${point.label}, ${series.label}, ${formatValue(point.value)}`;\n\n function markFrom(event: SyntheticEvent) {\n return (event.target as Element).getAttribute?.('data-mark') ?? null;\n }\n\n function hover(mark: string | null) {\n const entry = entryOfMark(mark);\n const marker = markerOfMark(mark);\n\n setTarget(entry ? { entry, kind: 'region' } : marker ? { kind: 'marker', marker } : null);\n onHoverRegion?.(entry?.region.id ?? null);\n }\n\n function activate(mark: string | null) {\n const entry = entryOfMark(mark);\n const marker = markerOfMark(mark);\n\n if (entry && onRegionClick) {\n setTabStopMark(mark);\n onRegionClick(regionEvent(entry));\n } else if (marker && onMarkerClick) {\n setTabStopMark(mark);\n onMarkerClick(markerEvent(marker));\n }\n }\n\n /** A marca vizinha na direcao da seta, pelo centro de cada uma, como no artefato do componente. */\n function neighbor(from: string, [dx, dy]: readonly [number, number]) {\n if (!projection) {\n return undefined;\n }\n\n const path = geoPath(projection);\n const anchorOf = (mark: string): Point => {\n const entry = entryOfMark(mark);\n const marker = markerOfMark(mark);\n return entry ? path.centroid(entry.region.shape) : marker ? [marker.x, marker.y] : [0, 0];\n };\n const [x0, y0] = anchorOf(from);\n let best: string | undefined;\n let bestScore = Infinity;\n\n marks.forEach((mark) => {\n if (mark === from) {\n return;\n }\n\n const [x, y] = anchorOf(mark);\n const along = (x - x0) * dx + (y - y0) * dy;\n const score = along + 2 * Math.abs((x - x0) * dy - (y - y0) * dx);\n\n if (along > 1 && score < bestScore) {\n bestScore = score;\n best = mark;\n }\n });\n\n return best;\n }\n\n function handleKeyDown(event: KeyboardEvent<SVGGElement>) {\n const mark = markFrom(event);\n const directions: Record<string, readonly [number, number]> = {\n ArrowDown: [0, 1],\n ArrowLeft: [-1, 0],\n ArrowRight: [1, 0],\n ArrowUp: [0, -1],\n };\n\n if (!mark || !marks.includes(mark)) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n activate(mark);\n return;\n }\n\n if (event.key in directions) {\n event.preventDefault();\n const next = neighbor(mark, directions[event.key]);\n\n if (next) {\n setTabStopMark(next);\n svgRef.current?.querySelector<SVGElement>(`[data-mark=\"${next}\"]`)?.focus();\n }\n }\n }\n\n const markHandlers = {\n onBlur: () => {\n setFocusedMark(null);\n onHoverRegion?.(null);\n },\n onClick: (event: SyntheticEvent) => activate(markFrom(event)),\n onFocus: (event: SyntheticEvent) => {\n const mark = markFrom(event);\n setFocusedMark(mark);\n setTabStopMark(mark);\n onHoverRegion?.(entryOfMark(mark)?.region.id ?? null);\n },\n onKeyDown: handleKeyDown,\n onMouseOut: () => hover(null),\n onMouseOver: (event: SyntheticEvent) => hover(markFrom(event)),\n };\n\n const strokeWidth = strokeWidthFor(regions.length);\n const labelPlan = layout?.plan ?? { callouts: [], inside: [] };\n const lineHeight = plot.font.size + 1;\n const noDataFill = noDataStyle === 'hatch' ? `url(#${hatchId})` : 'var(--pl-chart-no-data)';\n\n // As regioes nao dependem do ponteiro: o balao e o contorno passam sem refazer milhares de caminhos.\n const regionShapes = useMemo(\n () =>\n entries.map((entry, index) => {\n const mark = regionMark(index);\n const dimmed = highlightedKey !== null && entry.key !== highlightedKey;\n\n return (\n <path\n aria-label={entry.description}\n aria-pressed={regionsInteractive && selectedRegion !== undefined ? entry.region.id === selectedRegion : undefined}\n className={`${styles.region} ${regionsInteractive ? styles.clickable : ''} ${dimmed ? styles.dimmed : ''}`}\n d={paths.get(entry.region.id)}\n data-mark={mark}\n fill={entry.hidden ? HIDDEN_FILL : (entry.fill ?? noDataFill)}\n key={index}\n role={regionsInteractive ? 'button' : undefined}\n strokeWidth={strokeWidth}\n tabIndex={regionsInteractive ? (mark === tabStop ? 0 : -1) : undefined}\n />\n );\n }),\n [entries, highlightedKey, noDataFill, paths, regionsInteractive, selectedRegion, strokeWidth, tabStop],\n );\n const contextShapes = useMemo(\n () =>\n context.map((region, index) => (\n <path className={styles.context} d={paths.get(region.id)} key={index} strokeWidth={strokeWidth} />\n )),\n [context, paths, strokeWidth],\n );\n\n const summary = (() => {\n const count = plural(entries.length, 'região', 'regiões');\n const missing = noDataCount > 0 ? ` ${noDataCount} sem dado.` : '';\n const hint = interactive ? ' Use as setas para percorrer as marcas.' : '';\n\n if (!scale.numeric || ranked.length === 0) {\n return `Mapa de ${count}.${missing}${hint}`;\n }\n\n const [top, bottom] = [ranked[0], ranked[ranked.length - 1]];\n return `Mapa de ${count}. Maior valor: ${top.region.name}, ${formatValue(top.value!)}. Menor: ${\n bottom.region.name\n }, ${formatValue(bottom.value!)}.${missing}${hint}`;\n })();\n\n function labelClass(id: string, onHoverOnly: boolean) {\n return `${styles.label} ${onHoverOnly ? styles.labelOnHover : ''} ${activeRegionId === id ? styles.labelActive : ''}`;\n }\n\n const svg = projection && (\n <svg\n aria-describedby={summaryId}\n aria-labelledby={titleId}\n className={`${styles.canvas} ${fillHeight ? styles.canvasFill : ''}`}\n height={plotHeight}\n ref={svgRef}\n role={interactive ? 'group' : 'img'}\n viewBox={`0 0 ${width} ${plotHeight}`}\n width={width}\n >\n <defs>\n <pattern height={6} id={hatchId} patternTransform=\"rotate(45)\" patternUnits=\"userSpaceOnUse\" width={6}>\n <rect className={styles.hatchBackground} height={6} width={6} />\n <line className={styles.hatchLine} x1={0} x2={0} y1={0} y2={6} />\n </pattern>\n </defs>\n\n <g aria-hidden=\"true\" className={styles.passThrough}>\n {contextShapes}\n </g>\n\n <g {...markHandlers}>{regionShapes}</g>\n\n <g aria-hidden=\"true\" className={styles.passThrough}>\n {selectedIndex >= 0 && (\n <path className={styles.selectedOutline} d={paths.get(entries[selectedIndex].region.id)} />\n )}\n {hoveredEntry && <path className={styles.hoverOutline} d={paths.get(hoveredEntry.region.id)} />}\n {focusedEntry && <path className={styles.focusOutline} d={paths.get(focusedEntry.region.id)} />}\n </g>\n\n <g {...markHandlers}>\n {placedMarkers.map((marker) => (\n <circle\n aria-label={describeMarker(marker)}\n className={`${styles.marker} ${markersInteractive ? styles.clickable : ''}`}\n cx={marker.x}\n cy={marker.y}\n data-mark={marker.key}\n fill={marker.color}\n key={marker.key}\n r={marker.radius}\n role={markersInteractive ? 'button' : 'img'}\n tabIndex={markersInteractive ? (marker.key === tabStop ? 0 : -1) : undefined}\n />\n ))}\n {focusedMarker && (\n <circle\n aria-hidden=\"true\"\n className={styles.focusOutline}\n cx={focusedMarker.x}\n cy={focusedMarker.y}\n r={focusedMarker.radius + 3}\n />\n )}\n </g>\n\n <g aria-hidden=\"true\" className={styles.passThrough}>\n {labelPlan.inside.map((label) => (\n <text className={labelClass(label.id, regionLabels === 'onHover')} key={label.id} x={label.x} y={label.y}>\n <tspan dominantBaseline=\"central\" x={label.x} y={label.value ? label.y - lineHeight / 2 : label.y}>\n {label.title}\n </tspan>\n {label.value && (\n <tspan\n className={`${styles.labelValue} ${showDataLabels === 'onHover' ? styles.valueOnHover : ''}`}\n dominantBaseline=\"central\"\n x={label.x}\n y={label.y + lineHeight / 2}\n >\n {label.value}\n </tspan>\n )}\n </text>\n ))}\n {labelPlan.callouts.map((label) => (\n <g className={labelClass(label.id, regionLabels === 'onHover')} key={label.id}>\n <path\n className={styles.leader}\n d={`M${label.anchor[0]},${label.anchor[1]}L${label.x - 12},${label.y}L${label.x - 4},${label.y}`}\n />\n <circle className={styles.leaderDot} cx={label.anchor[0]} cy={label.anchor[1]} r={1.8} />\n <text className={styles.callout} dominantBaseline=\"central\" x={label.x} y={label.y}>\n {label.title}\n {label.value && (\n <tspan\n className={`${styles.labelValue} ${showDataLabels === 'onHover' ? styles.valueOnHover : ''}`}\n dx={5}\n >\n {label.value}\n </tspan>\n )}\n </text>\n </g>\n ))}\n </g>\n </svg>\n );\n\n const tooltip = tooltipOf(target, {\n formatPercent,\n formatValue,\n formatTooltipValue: formatTooltipValue ?? formatValue,\n markerValueLabel,\n noDataLabel,\n rankedCount: ranked.length,\n scale,\n showShare,\n total,\n valueLabel,\n colorScale,\n });\n\n const counts = new Map<string, number>();\n entries.forEach((entry) => entry.key !== undefined && counts.set(entry.key, (counts.get(entry.key) ?? 0) + 1));\n\n const legendView = legendPosition !== 'none' && (\n <ChartMapLegend\n align={legendAlign}\n entries={scale.entries.map((entry) => ({\n ...entry,\n count: counts.get(entry.key) ?? 0,\n hidden: legendToggle.isHidden(entry.key),\n }))}\n formatValue={formatValue}\n gradient={scale.gradient}\n indicator={hoveredEntry?.value == null ? undefined : scale.gradient?.position(hoveredEntry.value)}\n markerSeries={markerSeries.map((series, index) => ({\n color: markerColors[index],\n hidden: seriesToggle.isHidden(series.id),\n key: series.id,\n label: series.label,\n }))}\n markerSizes={\n hasMarkers ? { maximum: radius.domain()[1], radiusOf: (value) => Math.max(markerMinSize, radius(value)) } : undefined\n }\n markerValueLabel={markerValueLabel}\n noData={\n noDataCount > 0\n ? { color: noDataStyle === 'hatch' ? NO_DATA_HATCH : 'var(--pl-chart-no-data)', count: noDataCount, label: noDataLabel }\n : undefined\n }\n onHighlight={(key) => setHighlightedKey(key)}\n onToggle={legendToggle.toggle}\n onToggleMarkerSeries={seriesToggle.toggle}\n position={legendPosition}\n style={sideLegend ? { width: Math.min(SIDE_LEGEND_MAX, Math.round(outer.width * 0.3)) } : undefined}\n valueLabel={valueLabel}\n />\n );\n\n const tableRegions: MapTableRegionRow[] = entries\n .filter((entry) => !entry.hidden)\n .map((entry) => ({\n classLabel: colorScale.type === 'classes' ? scale.labelOf(entry) : undefined,\n id: entry.region.id,\n name: entry.region.name,\n rank: entry.rank,\n selected: entry.region.id === selectedRegion,\n share: entry.value !== null && total > 0 ? entry.value / total : undefined,\n value: entry.value,\n valueText: entry.valueText,\n }));\n const tableMarkers: MapTableMarkerRow[] = markerSeries.flatMap((series) =>\n seriesToggle.isHidden(series.id)\n ? []\n : series.points\n .filter((point) => validPoints.has(point))\n .map((point) => ({ key: `${series.id}:${point.id}`, name: point.label, series: series.label, value: formatValue(point.value) })),\n );\n\n return (\n <figure className={styles.figure}>\n <figcaption className={styles.header}>\n <span className={styles.heading}>\n <span className={styles.title} id={titleId}>\n {title}\n </span>\n {subtitle && <span className={styles.subtitle}>{subtitle}</span>}\n </span>\n {showTableToggle && !empty && (\n <Button\n aria-pressed={tableView}\n className={styles.tableToggle}\n onClick={() => setTableView((current) => !current)}\n size=\"sm\"\n variant=\"secondary\"\n >\n Ver como tabela\n </Button>\n )}\n </figcaption>\n\n <span className={styles.visuallyHidden} id={summaryId}>\n {summary}\n </span>\n\n <div className={`${styles.body} ${sideLegend && !tableView ? styles.bodyRow : ''}`} ref={outer.ref}>\n {legendPosition === 'top' && !tableView && !empty && legendView}\n\n {empty ? (\n <div className={styles.empty}>\n <EmptyState icon={<IconChartBar />} size=\"sm\" title={emptyMessage} />\n </div>\n ) : tableView ? (\n <ChartMapTable\n markerRows={tableMarkers}\n markerValueLabel={markerValueLabel}\n maxHeight={typeof height === 'number' ? Math.max(height, MIN_HEIGHT) : undefined}\n noDataLabel={noDataLabel}\n regionRows={tableRegions}\n showClasses={colorScale.type === 'classes'}\n showRank={scale.numeric}\n showShare={showShare && scale.numeric}\n showValue={colorScale.type !== 'none'}\n formatPercent={formatPercent}\n title={title}\n valueLabel={valueLabel}\n />\n ) : (\n <div className={`${styles.plot} ${fillHeight ? styles.plotFill : ''}`} ref={plot.ref}>\n {svg && (showTooltip ? <ChartTooltip {...tooltip}>{svg}</ChartTooltip> : svg)}\n </div>\n )}\n\n {(legendPosition === 'bottom' || legendPosition === 'right') && !tableView && !empty && legendView}\n </div>\n </figure>\n );\n}\n\ninterface TooltipOptions {\n colorScale: ChartMapColorScale;\n formatPercent: (ratio: number) => string;\n formatTooltipValue: (value: number) => string;\n formatValue: (value: number) => string;\n markerValueLabel: string;\n noDataLabel: string;\n rankedCount: number;\n scale: MapScale;\n showShare: boolean;\n total: number;\n valueLabel: string;\n}\n\n/** Balao do que esta sob o ponteiro: a regiao com valor, faixa, parte do total e posicao, ou o marcador. */\nfunction tooltipOf(target: Target | null, options: TooltipOptions): Omit<ChartTooltipProps, 'children'> {\n if (target === null) {\n return { rows: [] };\n }\n\n if (target.kind === 'marker') {\n const { color, point, series } = target.marker;\n\n return {\n columns: [{ format: options.formatTooltipValue }],\n computed: 'none',\n rows: [{ color, label: options.markerValueLabel, values: [point.value] }],\n subtitle: series.label,\n title: point.label,\n };\n }\n\n const { entry } = target;\n const { region } = entry;\n const subtitle = region.label !== region.name ? region.label : undefined;\n const text = (label: string, value: string): ChartTooltipRow => ({ format: () => value, label, values: [0] });\n const rows: ChartTooltipRow[] = [];\n\n if (options.colorScale.type === 'none') {\n rows.push({ label: subtitle ?? region.name, values: [] });\n } else if (!options.scale.numeric) {\n rows.push(\n entry.valueText\n ? { ...text(options.valueLabel, entry.valueText), color: entry.fill }\n : { label: options.noDataLabel, values: [] },\n );\n } else if (entry.value === null) {\n rows.push({ label: options.noDataLabel, values: [] });\n } else {\n rows.push({ color: entry.fill, label: options.valueLabel, values: [entry.value] });\n const range = options.colorScale.type === 'classes' ? options.scale.labelOf(entry) : undefined;\n\n if (range) {\n rows.push(text('Faixa', range));\n }\n\n if (options.showShare && options.total > 0) {\n rows.push({ format: options.formatPercent, label: '% do total', values: [entry.value / options.total] });\n }\n\n rows.push(text('Posição', `${entry.rank}º de ${options.rankedCount}`));\n }\n\n if (entry.hidden) {\n rows.push({ label: 'Oculta pela legenda', values: [] });\n }\n\n return {\n columns: [{ format: options.formatTooltipValue }],\n computed: 'none',\n rows,\n subtitle,\n title: region.name,\n };\n}\n"],"names":["DEFAULT_SCALE","NARROW","MIN_HEIGHT","SIDE_LEGEND_MAX","NO_DATA_HATCH","HIDDEN_FILL","defaultPercent","ratio","formatarPercentual","plural","count","one","many","strokeWidthFor","isDevelopment","layoutMap","all","callouts","fixedHeight","font","labels","maxHeight","target","valueOf","width","measure","text","measureLabel","lineHeight","pass","drawingWidth","height","naturalHeight","projection","fitProjection","candidates","region","parts","projectedBounds","projectedParts","planLabels","first","gutter","label","calloutWidth","CALLOUT_GAP","ChartMap","accent","colorScale","data","defaultHiddenSeries","emptyMessage","featureIdKey","featureLabelKey","featureNameKey","focus","formatPercent","formatTooltipValue","formatValue","formatarNumero","geometry","hiddenClasses","hiddenSeries","legend","legendAlign","markerMaxSize","markerMinSize","markers","markerValueLabel","noDataLabel","noDataStyle","onHiddenClassesChange","onHiddenSeriesChange","onHoverRegion","onMarkerClick","onRegionClick","regionLabels","selectedRegion","showDataLabels","showShare","showTableToggle","showTooltip","smallRegionLabels","subtitle","title","valueLabel","titleId","useId","summaryId","hatchId","outer","useChartMetrics","plot","svgRef","useRef","seriesToggle","useSeriesToggle","hiddenClassKeys","useMemo","classToggle","hidden","setTarget","useState","focusedMark","setFocusedMark","tabStopMark","setTabStopMark","highlightedKey","setHighlightedKey","tableView","setTableView","regions","regionsOf","focusKey","context","inPlay","ids","focused","legendToggle","isLegendHidden","entries","ranked","scale","datumById","datum","read","value","mapScale","buildMapScale","item","withValue","a","b","rankOf","index","key","rank","valueText","description","entry","total","sum","noDataCount","orphanKey","useEffect","markerSeries","markerColors","resolveSeriesColors","validPoints","series","point","hasMarkers","empty","sideLegend","legendPosition","fillHeight","labelsOn","valuesOn","layout","valueTexts","plotHeight","paths","path","geoPath","radius","scaleSqrt","placedMarkers","seriesIndex","pointIndex","position","regionsInteractive","markersInteractive","interactive","regionMark","marks","_","marker","selectedIndex","tabStop","entryOfMark","mark","markerOfMark","focusedEntry","focusedMarker","hoveredEntry","activeRegionId","regionEvent","markerEvent","describeMarker","markFrom","event","_b","_a","hover","activate","neighbor","from","dx","dy","anchorOf","x0","y0","best","bestScore","x","y","along","score","handleKeyDown","directions","next","markHandlers","strokeWidth","labelPlan","noDataFill","regionShapes","dimmed","jsx","styles","contextShapes","summary","missing","hint","top","bottom","labelClass","id","onHoverOnly","svg","jsxs","tooltip","tooltipOf","counts","legendView","ChartMapLegend","tableRegions","tableMarkers","Button","current","EmptyState","IconChartBar","ChartMapTable","ChartTooltip","options","color","rows","range"],"mappings":"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"}
|