@cronus-ui/ui 0.6.0
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/LICENSE +21 -0
- package/README.md +262 -0
- package/dist/charts/animation.d.ts +11 -0
- package/dist/charts/animation.js +29 -0
- package/dist/charts/area-chart-loading.d.ts +34 -0
- package/dist/charts/area-chart-loading.js +22 -0
- package/dist/charts/area-chart.d.ts +48 -0
- package/dist/charts/area-chart.js +57 -0
- package/dist/charts/area-gradient-defs.d.ts +20 -0
- package/dist/charts/area-gradient-defs.js +15 -0
- package/dist/charts/area.d.ts +76 -0
- package/dist/charts/area.js +104 -0
- package/dist/charts/background.d.ts +27 -0
- package/dist/charts/background.js +68 -0
- package/dist/charts/bar-chart-loading.d.ts +17 -0
- package/dist/charts/bar-chart-loading.js +14 -0
- package/dist/charts/bar-chart.d.ts +55 -0
- package/dist/charts/bar-chart.js +432 -0
- package/dist/charts/bar-depth-geometry.d.ts +33 -0
- package/dist/charts/bar-depth-geometry.js +38 -0
- package/dist/charts/bar-depth.d.ts +157 -0
- package/dist/charts/bar-depth.js +586 -0
- package/dist/charts/bar-squares-layout.d.ts +28 -0
- package/dist/charts/bar-squares-layout.js +47 -0
- package/dist/charts/bar-squares.d.ts +49 -0
- package/dist/charts/bar-squares.js +207 -0
- package/dist/charts/bar-x-axis.d.ts +14 -0
- package/dist/charts/bar-x-axis.js +73 -0
- package/dist/charts/bar-y-axis.d.ts +12 -0
- package/dist/charts/bar-y-axis.js +64 -0
- package/dist/charts/bar.d.ts +41 -0
- package/dist/charts/bar.js +208 -0
- package/dist/charts/candlestick-chart.d.ts +46 -0
- package/dist/charts/candlestick-chart.js +203 -0
- package/dist/charts/candlestick.d.ts +24 -0
- package/dist/charts/candlestick.js +139 -0
- package/dist/charts/chart-brush-handle.d.ts +15 -0
- package/dist/charts/chart-brush-handle.js +47 -0
- package/dist/charts/chart-brush-layout.d.ts +27 -0
- package/dist/charts/chart-brush-layout.js +42 -0
- package/dist/charts/chart-brush-selection-overlay.d.ts +19 -0
- package/dist/charts/chart-brush-selection-overlay.js +44 -0
- package/dist/charts/chart-brush-track-overlay.d.ts +23 -0
- package/dist/charts/chart-brush-track-overlay.js +65 -0
- package/dist/charts/chart-brush.d.ts +32 -0
- package/dist/charts/chart-brush.js +116 -0
- package/dist/charts/chart-center-typography.d.ts +12 -0
- package/dist/charts/chart-center-typography.js +12 -0
- package/dist/charts/chart-child-passthrough.d.ts +17 -0
- package/dist/charts/chart-child-passthrough.js +74 -0
- package/dist/charts/chart-config-context.d.ts +26 -0
- package/dist/charts/chart-config-context.js +47 -0
- package/dist/charts/chart-context.d.ts +199 -0
- package/dist/charts/chart-context.js +201 -0
- package/dist/charts/chart-defs.d.ts +13 -0
- package/dist/charts/chart-defs.js +49 -0
- package/dist/charts/chart-formatters.d.ts +10 -0
- package/dist/charts/chart-formatters.js +28 -0
- package/dist/charts/chart-legend-hover.d.ts +13 -0
- package/dist/charts/chart-legend-hover.js +18 -0
- package/dist/charts/chart-legend.d.ts +55 -0
- package/dist/charts/chart-legend.js +30 -0
- package/dist/charts/chart-loading-label.d.ts +10 -0
- package/dist/charts/chart-loading-label.js +21 -0
- package/dist/charts/chart-phase.d.ts +31 -0
- package/dist/charts/chart-phase.js +21 -0
- package/dist/charts/chart-reveal-clip.d.ts +24 -0
- package/dist/charts/chart-reveal-clip.js +24 -0
- package/dist/charts/chart-scale.d.ts +12 -0
- package/dist/charts/chart-scale.js +17 -0
- package/dist/charts/chart-stat-flow.d.ts +36 -0
- package/dist/charts/chart-stat-flow.js +23 -0
- package/dist/charts/choropleth/choropleth-chart.d.ts +43 -0
- package/dist/charts/choropleth/choropleth-chart.js +218 -0
- package/dist/charts/choropleth/choropleth-context.d.ts +86 -0
- package/dist/charts/choropleth/choropleth-context.js +106 -0
- package/dist/charts/choropleth/choropleth-feature.d.ts +13 -0
- package/dist/charts/choropleth/choropleth-feature.js +125 -0
- package/dist/charts/choropleth/choropleth-graticule.d.ts +11 -0
- package/dist/charts/choropleth/choropleth-graticule.js +12 -0
- package/dist/charts/choropleth/choropleth-tooltip.d.ts +31 -0
- package/dist/charts/choropleth/choropleth-tooltip.js +50 -0
- package/dist/charts/choropleth/index.d.ts +7 -0
- package/dist/charts/choropleth/index.js +6 -0
- package/dist/charts/composed-chart.d.ts +36 -0
- package/dist/charts/composed-chart.js +152 -0
- package/dist/charts/dash-tail-stroke.d.ts +18 -0
- package/dist/charts/dash-tail-stroke.js +13 -0
- package/dist/charts/decimate-time-series.d.ts +10 -0
- package/dist/charts/decimate-time-series.js +112 -0
- package/dist/charts/fade-edges.d.ts +34 -0
- package/dist/charts/fade-edges.js +35 -0
- package/dist/charts/filter-data-by-x-domain.d.ts +5 -0
- package/dist/charts/filter-data-by-x-domain.js +42 -0
- package/dist/charts/funnel-chart.d.ts +91 -0
- package/dist/charts/funnel-chart.js +302 -0
- package/dist/charts/gauge-label-layout.d.ts +22 -0
- package/dist/charts/gauge-label-layout.js +44 -0
- package/dist/charts/gauge.d.ts +56 -0
- package/dist/charts/gauge.js +307 -0
- package/dist/charts/generate-chart-skeleton-data.d.ts +16 -0
- package/dist/charts/generate-chart-skeleton-data.js +25 -0
- package/dist/charts/grid.d.ts +58 -0
- package/dist/charts/grid.js +80 -0
- package/dist/charts/heatmap/generate-heatmap-skeleton-data.d.ts +4 -0
- package/dist/charts/heatmap/generate-heatmap-skeleton-data.js +12 -0
- package/dist/charts/heatmap/heatmap-animation.d.ts +41 -0
- package/dist/charts/heatmap/heatmap-animation.js +85 -0
- package/dist/charts/heatmap/heatmap-cells.d.ts +21 -0
- package/dist/charts/heatmap/heatmap-cells.js +265 -0
- package/dist/charts/heatmap/heatmap-chart-loading.d.ts +21 -0
- package/dist/charts/heatmap/heatmap-chart-loading.js +14 -0
- package/dist/charts/heatmap/heatmap-chart.d.ts +80 -0
- package/dist/charts/heatmap/heatmap-chart.js +275 -0
- package/dist/charts/heatmap/heatmap-colors.d.ts +70 -0
- package/dist/charts/heatmap/heatmap-colors.js +113 -0
- package/dist/charts/heatmap/heatmap-context.d.ts +109 -0
- package/dist/charts/heatmap/heatmap-context.js +69 -0
- package/dist/charts/heatmap/heatmap-legend-gradient.d.ts +20 -0
- package/dist/charts/heatmap/heatmap-legend-gradient.js +44 -0
- package/dist/charts/heatmap/heatmap-legend-swatch.d.ts +8 -0
- package/dist/charts/heatmap/heatmap-legend-swatch.js +26 -0
- package/dist/charts/heatmap/heatmap-legend.d.ts +41 -0
- package/dist/charts/heatmap/heatmap-legend.js +68 -0
- package/dist/charts/heatmap/heatmap-pattern-defs.d.ts +5 -0
- package/dist/charts/heatmap/heatmap-pattern-defs.js +25 -0
- package/dist/charts/heatmap/heatmap-resolve-separator.d.ts +8 -0
- package/dist/charts/heatmap/heatmap-resolve-separator.js +82 -0
- package/dist/charts/heatmap/heatmap-separator.d.ts +63 -0
- package/dist/charts/heatmap/heatmap-separator.js +71 -0
- package/dist/charts/heatmap/heatmap-tooltip.d.ts +30 -0
- package/dist/charts/heatmap/heatmap-tooltip.js +20 -0
- package/dist/charts/heatmap/heatmap-utils.d.ts +175 -0
- package/dist/charts/heatmap/heatmap-utils.js +595 -0
- package/dist/charts/heatmap/heatmap-x-axis.d.ts +7 -0
- package/dist/charts/heatmap/heatmap-x-axis.js +54 -0
- package/dist/charts/heatmap/heatmap-y-axis.d.ts +14 -0
- package/dist/charts/heatmap/heatmap-y-axis.js +37 -0
- package/dist/charts/heatmap/index.d.ts +15 -0
- package/dist/charts/heatmap/index.js +15 -0
- package/dist/charts/heatmap/use-delayed-tooltip-data.d.ts +3 -0
- package/dist/charts/heatmap/use-delayed-tooltip-data.js +53 -0
- package/dist/charts/highlight-segment-bounds.d.ts +18 -0
- package/dist/charts/highlight-segment-bounds.js +36 -0
- package/dist/charts/highlight-segment.d.ts +22 -0
- package/dist/charts/highlight-segment.js +14 -0
- package/dist/charts/index.d.ts +106 -0
- package/dist/charts/index.js +133 -0
- package/dist/charts/indicator-fade.d.ts +15 -0
- package/dist/charts/indicator-fade.js +42 -0
- package/dist/charts/legend/index.d.ts +8 -0
- package/dist/charts/legend/index.js +10 -0
- package/dist/charts/legend/legend-context.d.ts +48 -0
- package/dist/charts/legend/legend-context.js +34 -0
- package/dist/charts/legend/legend-item.d.ts +12 -0
- package/dist/charts/legend/legend-item.js +11 -0
- package/dist/charts/legend/legend-label.d.ts +9 -0
- package/dist/charts/legend/legend-label.js +10 -0
- package/dist/charts/legend/legend-marker.d.ts +9 -0
- package/dist/charts/legend/legend-marker.js +11 -0
- package/dist/charts/legend/legend-progress.d.ts +13 -0
- package/dist/charts/legend/legend-progress.js +15 -0
- package/dist/charts/legend/legend-value.d.ts +17 -0
- package/dist/charts/legend/legend-value.js +11 -0
- package/dist/charts/legend/legend.d.ts +23 -0
- package/dist/charts/legend/legend.js +43 -0
- package/dist/charts/line-chart-loading.d.ts +34 -0
- package/dist/charts/line-chart-loading.js +22 -0
- package/dist/charts/line-chart.d.ts +46 -0
- package/dist/charts/line-chart.js +91 -0
- package/dist/charts/line-loading-pulse.d.ts +20 -0
- package/dist/charts/line-loading-pulse.js +124 -0
- package/dist/charts/line-loading-timing.d.ts +10 -0
- package/dist/charts/line-loading-timing.js +10 -0
- package/dist/charts/line-series-terminal-marker.d.ts +16 -0
- package/dist/charts/line-series-terminal-marker.js +46 -0
- package/dist/charts/line.d.ts +64 -0
- package/dist/charts/line.js +96 -0
- package/dist/charts/live-line-chart.d.ts +35 -0
- package/dist/charts/live-line-chart.js +374 -0
- package/dist/charts/live-line.d.ts +39 -0
- package/dist/charts/live-line.js +78 -0
- package/dist/charts/live-x-axis.d.ts +12 -0
- package/dist/charts/live-x-axis.js +85 -0
- package/dist/charts/live-y-axis.d.ts +16 -0
- package/dist/charts/live-y-axis.js +137 -0
- package/dist/charts/loading-sweep.d.ts +66 -0
- package/dist/charts/loading-sweep.js +174 -0
- package/dist/charts/markers/chart-markers.d.ts +25 -0
- package/dist/charts/markers/chart-markers.js +87 -0
- package/dist/charts/markers/index.d.ts +3 -0
- package/dist/charts/markers/index.js +3 -0
- package/dist/charts/markers/marker-group.d.ts +88 -0
- package/dist/charts/markers/marker-group.js +171 -0
- package/dist/charts/motion-utils.d.ts +9 -0
- package/dist/charts/motion-utils.js +28 -0
- package/dist/charts/notch-gauge-shared.d.ts +49 -0
- package/dist/charts/notch-gauge-shared.js +103 -0
- package/dist/charts/path-stroke-utils.d.ts +20 -0
- package/dist/charts/path-stroke-utils.js +55 -0
- package/dist/charts/pattern-area.d.ts +21 -0
- package/dist/charts/pattern-area.js +19 -0
- package/dist/charts/pattern-preset.d.ts +26 -0
- package/dist/charts/pattern-preset.js +83 -0
- package/dist/charts/pie-center-shell.d.ts +24 -0
- package/dist/charts/pie-center-shell.js +109 -0
- package/dist/charts/pie-center.d.ts +46 -0
- package/dist/charts/pie-center.js +46 -0
- package/dist/charts/pie-chart.d.ts +50 -0
- package/dist/charts/pie-chart.js +248 -0
- package/dist/charts/pie-context.d.ts +74 -0
- package/dist/charts/pie-context.js +95 -0
- package/dist/charts/pie-slice.d.ts +28 -0
- package/dist/charts/pie-slice.js +180 -0
- package/dist/charts/profit-loss-legend-hover.d.ts +11 -0
- package/dist/charts/profit-loss-legend-hover.js +12 -0
- package/dist/charts/profit-loss-legend.d.ts +17 -0
- package/dist/charts/profit-loss-legend.js +18 -0
- package/dist/charts/profit-loss-line.d.ts +27 -0
- package/dist/charts/profit-loss-line.js +77 -0
- package/dist/charts/profit-loss-segments.d.ts +12 -0
- package/dist/charts/profit-loss-segments.js +86 -0
- package/dist/charts/projection-config.d.ts +11 -0
- package/dist/charts/projection-config.js +80 -0
- package/dist/charts/projection-line-end-marker.d.ts +15 -0
- package/dist/charts/projection-line-end-marker.js +27 -0
- package/dist/charts/projection-line.d.ts +40 -0
- package/dist/charts/projection-line.js +79 -0
- package/dist/charts/projection-utils.d.ts +46 -0
- package/dist/charts/projection-utils.js +253 -0
- package/dist/charts/radar-area.d.ts +17 -0
- package/dist/charts/radar-area.js +84 -0
- package/dist/charts/radar-axis.d.ts +14 -0
- package/dist/charts/radar-axis.js +24 -0
- package/dist/charts/radar-chart.d.ts +36 -0
- package/dist/charts/radar-chart.js +89 -0
- package/dist/charts/radar-context.d.ts +68 -0
- package/dist/charts/radar-context.js +87 -0
- package/dist/charts/radar-grid.d.ts +16 -0
- package/dist/charts/radar-grid.js +40 -0
- package/dist/charts/radar-labels.d.ts +16 -0
- package/dist/charts/radar-labels.js +29 -0
- package/dist/charts/reference-area-config.d.ts +10 -0
- package/dist/charts/reference-area-config.js +39 -0
- package/dist/charts/reference-area-geometry.d.ts +23 -0
- package/dist/charts/reference-area-geometry.js +68 -0
- package/dist/charts/reference-area-registration-context.d.ts +8 -0
- package/dist/charts/reference-area-registration-context.js +7 -0
- package/dist/charts/reference-area.d.ts +52 -0
- package/dist/charts/reference-area.js +101 -0
- package/dist/charts/ring-center.d.ts +46 -0
- package/dist/charts/ring-center.js +41 -0
- package/dist/charts/ring-chart.d.ts +41 -0
- package/dist/charts/ring-chart.js +212 -0
- package/dist/charts/ring-context.d.ts +66 -0
- package/dist/charts/ring-context.js +92 -0
- package/dist/charts/ring.d.ts +11 -0
- package/dist/charts/ring.js +104 -0
- package/dist/charts/sankey/index.d.ts +6 -0
- package/dist/charts/sankey/index.js +6 -0
- package/dist/charts/sankey/sankey-chart.d.ts +39 -0
- package/dist/charts/sankey/sankey-chart.js +117 -0
- package/dist/charts/sankey/sankey-context.d.ts +69 -0
- package/dist/charts/sankey/sankey-context.js +23 -0
- package/dist/charts/sankey/sankey-link.d.ts +26 -0
- package/dist/charts/sankey/sankey-link.js +155 -0
- package/dist/charts/sankey/sankey-node.d.ts +29 -0
- package/dist/charts/sankey/sankey-node.js +200 -0
- package/dist/charts/sankey/sankey-tooltip.d.ts +24 -0
- package/dist/charts/sankey/sankey-tooltip.js +70 -0
- package/dist/charts/scatter-chart-shell.d.ts +21 -0
- package/dist/charts/scatter-chart-shell.js +152 -0
- package/dist/charts/scatter-chart.d.ts +32 -0
- package/dist/charts/scatter-chart.js +56 -0
- package/dist/charts/scatter-svg.d.ts +6 -0
- package/dist/charts/scatter-svg.js +16 -0
- package/dist/charts/scatter.d.ts +21 -0
- package/dist/charts/scatter.js +30 -0
- package/dist/charts/segment.d.ts +26 -0
- package/dist/charts/segment.js +42 -0
- package/dist/charts/series-bar-layout.d.ts +18 -0
- package/dist/charts/series-bar-layout.js +31 -0
- package/dist/charts/series-bar.d.ts +20 -0
- package/dist/charts/series-bar.js +120 -0
- package/dist/charts/series-dash-tail-overlay.d.ts +17 -0
- package/dist/charts/series-dash-tail-overlay.js +39 -0
- package/dist/charts/series-highlight-layer.d.ts +23 -0
- package/dist/charts/series-highlight-layer.js +21 -0
- package/dist/charts/series-hover-dim.d.ts +29 -0
- package/dist/charts/series-hover-dim.js +26 -0
- package/dist/charts/series-markers.d.ts +14 -0
- package/dist/charts/series-markers.js +98 -0
- package/dist/charts/series-path-utils.d.ts +19 -0
- package/dist/charts/series-path-utils.js +60 -0
- package/dist/charts/series-point-marker.d.ts +48 -0
- package/dist/charts/series-point-marker.js +48 -0
- package/dist/charts/shimmering-text.d.ts +23 -0
- package/dist/charts/shimmering-text.js +31 -0
- package/dist/charts/static-chart-preview-context.d.ts +7 -0
- package/dist/charts/static-chart-preview-context.js +12 -0
- package/dist/charts/sunburst-breadcrumb.d.ts +16 -0
- package/dist/charts/sunburst-breadcrumb.js +26 -0
- package/dist/charts/sunburst-center.d.ts +5 -0
- package/dist/charts/sunburst-center.js +17 -0
- package/dist/charts/sunburst-chart.d.ts +30 -0
- package/dist/charts/sunburst-chart.js +263 -0
- package/dist/charts/sunburst-context.d.ts +61 -0
- package/dist/charts/sunburst-context.js +112 -0
- package/dist/charts/sunburst-data.d.ts +9 -0
- package/dist/charts/sunburst-data.js +2 -0
- package/dist/charts/sunburst-hint.d.ts +13 -0
- package/dist/charts/sunburst-hint.js +31 -0
- package/dist/charts/sunburst-labels.d.ts +9 -0
- package/dist/charts/sunburst-labels.js +63 -0
- package/dist/charts/sunburst-segment.d.ts +11 -0
- package/dist/charts/sunburst-segment.js +78 -0
- package/dist/charts/sunburst.d.ts +101 -0
- package/dist/charts/sunburst.js +396 -0
- package/dist/charts/time-series-chart-shell.d.ts +47 -0
- package/dist/charts/time-series-chart-shell.js +390 -0
- package/dist/charts/tooltip/chart-tooltip.d.ts +76 -0
- package/dist/charts/tooltip/chart-tooltip.js +150 -0
- package/dist/charts/tooltip/date-ticker.d.ts +11 -0
- package/dist/charts/tooltip/date-ticker.js +77 -0
- package/dist/charts/tooltip/index.d.ts +7 -0
- package/dist/charts/tooltip/index.js +7 -0
- package/dist/charts/tooltip/tooltip-box.d.ts +48 -0
- package/dist/charts/tooltip/tooltip-box.js +114 -0
- package/dist/charts/tooltip/tooltip-content.d.ts +18 -0
- package/dist/charts/tooltip/tooltip-content.js +9 -0
- package/dist/charts/tooltip/tooltip-dot.d.ts +28 -0
- package/dist/charts/tooltip/tooltip-dot.js +54 -0
- package/dist/charts/tooltip/tooltip-indicator.d.ts +45 -0
- package/dist/charts/tooltip/tooltip-indicator.js +65 -0
- package/dist/charts/use-animated-series-path.d.ts +19 -0
- package/dist/charts/use-animated-series-path.js +93 -0
- package/dist/charts/use-animated-y-domains.d.ts +14 -0
- package/dist/charts/use-animated-y-domains.js +150 -0
- package/dist/charts/use-chart-interaction.d.ts +41 -0
- package/dist/charts/use-chart-interaction.js +244 -0
- package/dist/charts/use-chart-phase-orchestrator.d.ts +23 -0
- package/dist/charts/use-chart-phase-orchestrator.js +139 -0
- package/dist/charts/use-enter-complete.d.ts +8 -0
- package/dist/charts/use-enter-complete.js +23 -0
- package/dist/charts/use-grid-shimmer.d.ts +16 -0
- package/dist/charts/use-grid-shimmer.js +63 -0
- package/dist/charts/use-highlight-segment.d.ts +14 -0
- package/dist/charts/use-highlight-segment.js +34 -0
- package/dist/charts/use-mount-progress.d.ts +4 -0
- package/dist/charts/use-mount-progress.js +22 -0
- package/dist/charts/use-scatter-chart-interaction.d.ts +35 -0
- package/dist/charts/use-scatter-chart-interaction.js +228 -0
- package/dist/charts/use-scheduled-tooltip.d.ts +9 -0
- package/dist/charts/use-scheduled-tooltip.js +76 -0
- package/dist/charts/visx-pattern.d.ts +19 -0
- package/dist/charts/visx-pattern.js +20 -0
- package/dist/charts/x-axis.d.ts +27 -0
- package/dist/charts/x-axis.js +415 -0
- package/dist/charts/y-axis-scales.d.ts +26 -0
- package/dist/charts/y-axis-scales.js +72 -0
- package/dist/charts/y-axis-ticks.d.ts +12 -0
- package/dist/charts/y-axis-ticks.js +24 -0
- package/dist/charts/y-axis.d.ts +22 -0
- package/dist/charts/y-axis.js +80 -0
- package/dist/charts/y-domain-utils.d.ts +27 -0
- package/dist/charts/y-domain-utils.js +88 -0
- package/dist/components/accordion.d.ts +6 -0
- package/dist/components/accordion.js +20 -0
- package/dist/components/alert-dialog.d.ts +18 -0
- package/dist/components/alert-dialog.js +41 -0
- package/dist/components/alert.d.ts +24 -0
- package/dist/components/alert.js +46 -0
- package/dist/components/animated-button.d.ts +5 -0
- package/dist/components/animated-button.js +16 -0
- package/dist/components/animated-list.d.ts +26 -0
- package/dist/components/animated-list.js +25 -0
- package/dist/components/animated-number.d.ts +67 -0
- package/dist/components/animated-number.js +131 -0
- package/dist/components/app-shell.d.ts +27 -0
- package/dist/components/app-shell.js +18 -0
- package/dist/components/area-chart.d.ts +11 -0
- package/dist/components/area-chart.js +12 -0
- package/dist/components/aspect-ratio.d.ts +16 -0
- package/dist/components/aspect-ratio.js +14 -0
- package/dist/components/aurora-background.d.ts +3 -0
- package/dist/components/aurora-background.js +8 -0
- package/dist/components/autocomplete.d.ts +55 -0
- package/dist/components/autocomplete.js +279 -0
- package/dist/components/avatar-group.d.ts +39 -0
- package/dist/components/avatar-group.js +50 -0
- package/dist/components/avatar.d.ts +5 -0
- package/dist/components/avatar.js +17 -0
- package/dist/components/badge.d.ts +10 -0
- package/dist/components/badge.js +35 -0
- package/dist/components/banner.d.ts +45 -0
- package/dist/components/banner.js +80 -0
- package/dist/components/bar-chart.d.ts +11 -0
- package/dist/components/bar-chart.js +9 -0
- package/dist/components/border-beam.d.ts +45 -0
- package/dist/components/border-beam.js +48 -0
- package/dist/components/breadcrumb.d.ts +12 -0
- package/dist/components/breadcrumb.js +35 -0
- package/dist/components/button-group.d.ts +7 -0
- package/dist/components/button-group.js +10 -0
- package/dist/components/button.d.ts +12 -0
- package/dist/components/button.js +39 -0
- package/dist/components/calendar.d.ts +7 -0
- package/dist/components/calendar.js +71 -0
- package/dist/components/candlestick-chart.d.ts +13 -0
- package/dist/components/candlestick-chart.js +66 -0
- package/dist/components/card-stack.d.ts +28 -0
- package/dist/components/card-stack.js +47 -0
- package/dist/components/card.d.ts +9 -0
- package/dist/components/card.js +32 -0
- package/dist/components/carousel.d.ts +82 -0
- package/dist/components/carousel.js +310 -0
- package/dist/components/chart.d.ts +100 -0
- package/dist/components/chart.js +210 -0
- package/dist/components/checkbox.d.ts +3 -0
- package/dist/components/checkbox.js +11 -0
- package/dist/components/chip.d.ts +80 -0
- package/dist/components/chip.js +186 -0
- package/dist/components/choropleth-chart.d.ts +12 -0
- package/dist/components/choropleth-chart.js +31 -0
- package/dist/components/click-spark.d.ts +19 -0
- package/dist/components/click-spark.js +51 -0
- package/dist/components/code-block.d.ts +13 -0
- package/dist/components/code-block.js +20 -0
- package/dist/components/code-tabs.d.ts +51 -0
- package/dist/components/code-tabs.js +150 -0
- package/dist/components/collapsible.d.ts +5 -0
- package/dist/components/collapsible.js +12 -0
- package/dist/components/color-picker.d.ts +30 -0
- package/dist/components/color-picker.js +300 -0
- package/dist/components/combobox.d.ts +33 -0
- package/dist/components/combobox.js +32 -0
- package/dist/components/command.d.ts +87 -0
- package/dist/components/command.js +44 -0
- package/dist/components/comparison-slider.d.ts +17 -0
- package/dist/components/comparison-slider.js +81 -0
- package/dist/components/composed-chart.d.ts +13 -0
- package/dist/components/composed-chart.js +22 -0
- package/dist/components/confetti.d.ts +21 -0
- package/dist/components/confetti.js +111 -0
- package/dist/components/confirmation-dialog.d.ts +46 -0
- package/dist/components/confirmation-dialog.js +102 -0
- package/dist/components/context-menu.d.ts +28 -0
- package/dist/components/context-menu.js +52 -0
- package/dist/components/copy-button.d.ts +13 -0
- package/dist/components/copy-button.js +72 -0
- package/dist/components/countdown.d.ts +58 -0
- package/dist/components/countdown.js +106 -0
- package/dist/components/credit-card-input.d.ts +62 -0
- package/dist/components/credit-card-input.js +211 -0
- package/dist/components/currency-input.d.ts +86 -0
- package/dist/components/currency-input.js +215 -0
- package/dist/components/data-table.d.ts +232 -0
- package/dist/components/data-table.js +359 -0
- package/dist/components/date-picker.d.ts +66 -0
- package/dist/components/date-picker.js +55 -0
- package/dist/components/date-range-picker.d.ts +59 -0
- package/dist/components/date-range-picker.js +59 -0
- package/dist/components/description-list.d.ts +84 -0
- package/dist/components/description-list.js +138 -0
- package/dist/components/dialog.d.ts +26 -0
- package/dist/components/dialog.js +35 -0
- package/dist/components/dock.d.ts +34 -0
- package/dist/components/dock.js +61 -0
- package/dist/components/dot-pattern.d.ts +24 -0
- package/dist/components/dot-pattern.js +19 -0
- package/dist/components/drawer.d.ts +22 -0
- package/dist/components/drawer.js +37 -0
- package/dist/components/dropdown-menu.d.ts +32 -0
- package/dist/components/dropdown-menu.js +56 -0
- package/dist/components/dynamic-island.d.ts +26 -0
- package/dist/components/dynamic-island.js +31 -0
- package/dist/components/empty.d.ts +7 -0
- package/dist/components/empty.js +24 -0
- package/dist/components/expandable-tabs.d.ts +24 -0
- package/dist/components/expandable-tabs.js +30 -0
- package/dist/components/fab.d.ts +35 -0
- package/dist/components/fab.js +36 -0
- package/dist/components/field.d.ts +6 -0
- package/dist/components/field.js +22 -0
- package/dist/components/file-dropzone.d.ts +28 -0
- package/dist/components/file-dropzone.js +59 -0
- package/dist/components/flickering-grid.d.ts +25 -0
- package/dist/components/flickering-grid.js +30 -0
- package/dist/components/flip-card.d.ts +70 -0
- package/dist/components/flip-card.js +117 -0
- package/dist/components/floating-label-input.d.ts +34 -0
- package/dist/components/floating-label-input.js +25 -0
- package/dist/components/form.d.ts +25 -0
- package/dist/components/form.js +68 -0
- package/dist/components/frame.d.ts +12 -0
- package/dist/components/frame.js +10 -0
- package/dist/components/funnel-chart.d.ts +11 -0
- package/dist/components/funnel-chart.js +16 -0
- package/dist/components/gauge-chart.d.ts +8 -0
- package/dist/components/gauge-chart.js +10 -0
- package/dist/components/glare-hover.d.ts +15 -0
- package/dist/components/glare-hover.js +64 -0
- package/dist/components/glass-card.d.ts +3 -0
- package/dist/components/glass-card.js +8 -0
- package/dist/components/gradient-border.d.ts +7 -0
- package/dist/components/gradient-border.js +8 -0
- package/dist/components/gradient-text.d.ts +6 -0
- package/dist/components/gradient-text.js +10 -0
- package/dist/components/grid-pattern.d.ts +23 -0
- package/dist/components/grid-pattern.js +18 -0
- package/dist/components/heatmap-chart.d.ts +6 -0
- package/dist/components/heatmap-chart.js +8 -0
- package/dist/components/heatmap.d.ts +28 -0
- package/dist/components/heatmap.js +41 -0
- package/dist/components/highlighter.d.ts +20 -0
- package/dist/components/highlighter.js +19 -0
- package/dist/components/hover-card.d.ts +5 -0
- package/dist/components/hover-card.js +12 -0
- package/dist/components/image-zoom.d.ts +47 -0
- package/dist/components/image-zoom.js +125 -0
- package/dist/components/input-group.d.ts +10 -0
- package/dist/components/input-group.js +12 -0
- package/dist/components/input-otp.d.ts +18 -0
- package/dist/components/input-otp.js +38 -0
- package/dist/components/input.d.ts +6 -0
- package/dist/components/input.js +8 -0
- package/dist/components/json-viewer.d.ts +43 -0
- package/dist/components/json-viewer.js +313 -0
- package/dist/components/kanban.d.ts +31 -0
- package/dist/components/kanban.js +143 -0
- package/dist/components/kbd.d.ts +3 -0
- package/dist/components/kbd.js +8 -0
- package/dist/components/label.d.ts +3 -0
- package/dist/components/label.js +9 -0
- package/dist/components/light-rays.d.ts +19 -0
- package/dist/components/light-rays.js +20 -0
- package/dist/components/lightbox.d.ts +24 -0
- package/dist/components/lightbox.js +68 -0
- package/dist/components/line-chart.d.ts +10 -0
- package/dist/components/line-chart.js +9 -0
- package/dist/components/live-line-chart.d.ts +12 -0
- package/dist/components/live-line-chart.js +42 -0
- package/dist/components/logo-carousel.d.ts +27 -0
- package/dist/components/logo-carousel.js +101 -0
- package/dist/components/magnetic.d.ts +44 -0
- package/dist/components/magnetic.js +172 -0
- package/dist/components/marquee.d.ts +71 -0
- package/dist/components/marquee.js +141 -0
- package/dist/components/masonry.d.ts +16 -0
- package/dist/components/masonry.js +84 -0
- package/dist/components/menubar.d.ts +33 -0
- package/dist/components/menubar.js +56 -0
- package/dist/components/meteors.d.ts +20 -0
- package/dist/components/meteors.js +39 -0
- package/dist/components/metric.d.ts +9 -0
- package/dist/components/metric.js +35 -0
- package/dist/components/mode-toggle.d.ts +32 -0
- package/dist/components/mode-toggle.js +40 -0
- package/dist/components/morphing-popover.d.ts +91 -0
- package/dist/components/morphing-popover.js +194 -0
- package/dist/components/motion-presets.d.ts +9 -0
- package/dist/components/motion-presets.js +20 -0
- package/dist/components/multi-select.d.ts +54 -0
- package/dist/components/multi-select.js +0 -0
- package/dist/components/navigation-menu.d.ts +12 -0
- package/dist/components/navigation-menu.js +42 -0
- package/dist/components/noise.d.ts +19 -0
- package/dist/components/noise.js +18 -0
- package/dist/components/notification-center.d.ts +68 -0
- package/dist/components/notification-center.js +57 -0
- package/dist/components/number-input.d.ts +45 -0
- package/dist/components/number-input.js +148 -0
- package/dist/components/orbit.d.ts +77 -0
- package/dist/components/orbit.js +100 -0
- package/dist/components/pagination.d.ts +16 -0
- package/dist/components/pagination.js +34 -0
- package/dist/components/particles.d.ts +18 -0
- package/dist/components/particles.js +92 -0
- package/dist/components/password-input.d.ts +16 -0
- package/dist/components/password-input.js +49 -0
- package/dist/components/phone-input.d.ts +67 -0
- package/dist/components/phone-input.js +225 -0
- package/dist/components/pie-chart.d.ts +12 -0
- package/dist/components/pie-chart.js +13 -0
- package/dist/components/pill-nav.d.ts +25 -0
- package/dist/components/pill-nav.js +66 -0
- package/dist/components/popover.d.ts +7 -0
- package/dist/components/popover.js +15 -0
- package/dist/components/profit-loss-chart.d.ts +10 -0
- package/dist/components/profit-loss-chart.js +8 -0
- package/dist/components/progress.d.ts +10 -0
- package/dist/components/progress.js +17 -0
- package/dist/components/progressive-blur.d.ts +24 -0
- package/dist/components/progressive-blur.js +43 -0
- package/dist/components/radar-chart.d.ts +9 -0
- package/dist/components/radar-chart.js +9 -0
- package/dist/components/radio-group.d.ts +4 -0
- package/dist/components/radio-group.js +15 -0
- package/dist/components/rating.d.ts +29 -0
- package/dist/components/rating.js +94 -0
- package/dist/components/resizable.d.ts +57 -0
- package/dist/components/resizable.js +73 -0
- package/dist/components/retro-grid.d.ts +25 -0
- package/dist/components/retro-grid.js +26 -0
- package/dist/components/reveal.d.ts +9 -0
- package/dist/components/reveal.js +14 -0
- package/dist/components/rich-text-editor.d.ts +28 -0
- package/dist/components/rich-text-editor.js +83 -0
- package/dist/components/ring-chart.d.ts +13 -0
- package/dist/components/ring-chart.js +16 -0
- package/dist/components/ripple.d.ts +25 -0
- package/dist/components/ripple.js +26 -0
- package/dist/components/sankey-chart.d.ts +16 -0
- package/dist/components/sankey-chart.js +8 -0
- package/dist/components/scatter-chart.d.ts +12 -0
- package/dist/components/scatter-chart.js +9 -0
- package/dist/components/scheduler.d.ts +50 -0
- package/dist/components/scheduler.js +93 -0
- package/dist/components/scramble-text.d.ts +39 -0
- package/dist/components/scramble-text.js +78 -0
- package/dist/components/scroll-area.d.ts +13 -0
- package/dist/components/scroll-area.js +14 -0
- package/dist/components/scroll-progress.d.ts +19 -0
- package/dist/components/scroll-progress.js +67 -0
- package/dist/components/segmented-control.d.ts +48 -0
- package/dist/components/segmented-control.js +222 -0
- package/dist/components/select.d.ts +12 -0
- package/dist/components/select.js +43 -0
- package/dist/components/separator.d.ts +3 -0
- package/dist/components/separator.js +9 -0
- package/dist/components/sheet.d.ts +25 -0
- package/dist/components/sheet.js +47 -0
- package/dist/components/shimmer.d.ts +3 -0
- package/dist/components/shimmer.js +8 -0
- package/dist/components/shiny-text.d.ts +20 -0
- package/dist/components/shiny-text.js +24 -0
- package/dist/components/sidebar.d.ts +92 -0
- package/dist/components/sidebar.js +290 -0
- package/dist/components/signature-pad.d.ts +44 -0
- package/dist/components/signature-pad.js +317 -0
- package/dist/components/skeleton.d.ts +3 -0
- package/dist/components/skeleton.js +8 -0
- package/dist/components/slider.d.ts +10 -0
- package/dist/components/slider.js +27 -0
- package/dist/components/sonner.d.ts +9 -0
- package/dist/components/sonner.js +17 -0
- package/dist/components/sparkles-text.d.ts +19 -0
- package/dist/components/sparkles-text.js +36 -0
- package/dist/components/sparkline.d.ts +22 -0
- package/dist/components/sparkline.js +100 -0
- package/dist/components/spinner.d.ts +10 -0
- package/dist/components/spinner.js +20 -0
- package/dist/components/spinning-text.d.ts +29 -0
- package/dist/components/spinning-text.js +40 -0
- package/dist/components/split-button.d.ts +71 -0
- package/dist/components/split-button.js +30 -0
- package/dist/components/spotlight-card.d.ts +11 -0
- package/dist/components/spotlight-card.js +63 -0
- package/dist/components/star-border.d.ts +19 -0
- package/dist/components/star-border.js +18 -0
- package/dist/components/status-dot.d.ts +60 -0
- package/dist/components/status-dot.js +76 -0
- package/dist/components/stepper.d.ts +98 -0
- package/dist/components/stepper.js +164 -0
- package/dist/components/sunburst-chart.d.ts +11 -0
- package/dist/components/sunburst-chart.js +45 -0
- package/dist/components/switch.d.ts +3 -0
- package/dist/components/switch.js +10 -0
- package/dist/components/table-of-contents.d.ts +64 -0
- package/dist/components/table-of-contents.js +0 -0
- package/dist/components/table.d.ts +10 -0
- package/dist/components/table.js +38 -0
- package/dist/components/tabs.d.ts +6 -0
- package/dist/components/tabs.js +22 -0
- package/dist/components/tags-input.d.ts +39 -0
- package/dist/components/tags-input.js +86 -0
- package/dist/components/terminal.d.ts +86 -0
- package/dist/components/terminal.js +182 -0
- package/dist/components/text-effect.d.ts +71 -0
- package/dist/components/text-effect.js +166 -0
- package/dist/components/textarea.d.ts +6 -0
- package/dist/components/textarea.js +8 -0
- package/dist/components/tilt-card.d.ts +30 -0
- package/dist/components/tilt-card.js +84 -0
- package/dist/components/time-picker.d.ts +58 -0
- package/dist/components/time-picker.js +245 -0
- package/dist/components/timeline.d.ts +81 -0
- package/dist/components/timeline.js +165 -0
- package/dist/components/toggle-group.d.ts +12 -0
- package/dist/components/toggle-group.js +23 -0
- package/dist/components/toggle.d.ts +12 -0
- package/dist/components/toggle.js +25 -0
- package/dist/components/toolbar.d.ts +14 -0
- package/dist/components/toolbar.js +89 -0
- package/dist/components/tooltip.d.ts +29 -0
- package/dist/components/tooltip.js +48 -0
- package/dist/components/tree-view.d.ts +45 -0
- package/dist/components/tree-view.js +197 -0
- package/dist/components/typing-text.d.ts +49 -0
- package/dist/components/typing-text.js +90 -0
- package/dist/components/usage-meter.d.ts +30 -0
- package/dist/components/usage-meter.js +90 -0
- package/dist/components/video-player.d.ts +48 -0
- package/dist/components/video-player.js +216 -0
- package/dist/components/word-rotate.d.ts +40 -0
- package/dist/components/word-rotate.js +34 -0
- package/dist/index.d.ts +306 -0
- package/dist/index.js +179 -0
- package/dist/lib/cn.d.ts +7 -0
- package/dist/lib/cn.js +10 -0
- package/dist/lib/demo-saas.d.ts +171 -0
- package/dist/lib/demo-saas.js +210 -0
- package/dist/lib/demo-store.d.ts +157 -0
- package/dist/lib/demo-store.js +353 -0
- package/dist/testing/index.d.ts +76 -0
- package/dist/testing/index.js +116 -0
- package/package.json +941 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { motion } from "motion/react";
|
|
4
|
+
import { radarCssVars, useRadarStable } from "./radar-context.js";
|
|
5
|
+
export function RadarAxis({ stroke = radarCssVars.border, strokeOpacity = 0.6, className = "", }) {
|
|
6
|
+
const { metrics, radius, getAngle, animate } = useRadarStable();
|
|
7
|
+
// Animation delay base
|
|
8
|
+
const axisBaseDelay = 0;
|
|
9
|
+
return (_jsx("g", { className: className, children: metrics.map((metric, i) => {
|
|
10
|
+
const angle = getAngle(i);
|
|
11
|
+
const targetX = radius * Math.cos(angle);
|
|
12
|
+
const targetY = radius * Math.sin(angle);
|
|
13
|
+
return (_jsx(motion.line, { animate: { x2: targetX, y2: targetY }, initial: animate ? { x2: 0, y2: 0 } : { x2: targetX, y2: targetY }, stroke: stroke, strokeOpacity: strokeOpacity, strokeWidth: 1, transition: {
|
|
14
|
+
type: "spring",
|
|
15
|
+
stiffness: 80,
|
|
16
|
+
damping: 15,
|
|
17
|
+
mass: 1,
|
|
18
|
+
delay: animate ? axisBaseDelay + i * 0.05 : 0,
|
|
19
|
+
}, x1: 0, y1: 0 }, `axis-${metric.key}`));
|
|
20
|
+
}) }));
|
|
21
|
+
}
|
|
22
|
+
RadarAxis.displayName = "RadarAxis";
|
|
23
|
+
export default RadarAxis;
|
|
24
|
+
//# sourceMappingURL=radar-axis.js.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Transition } from "motion/react";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
import { type RadarData, type RadarMetric } from "./radar-context.js";
|
|
4
|
+
export interface RadarChartProps {
|
|
5
|
+
/** Data array - each item represents a data series (polygon) */
|
|
6
|
+
data: RadarData[];
|
|
7
|
+
/** Metrics to display on the radar */
|
|
8
|
+
metrics: RadarMetric[];
|
|
9
|
+
/** Chart size in pixels. If not provided, uses parent container size */
|
|
10
|
+
size?: number;
|
|
11
|
+
/** Number of concentric grid circles. Default: 5 */
|
|
12
|
+
levels?: number;
|
|
13
|
+
/** Margin around the chart. Default: 60 */
|
|
14
|
+
margin?: number;
|
|
15
|
+
/** Enable animations. Default: true */
|
|
16
|
+
animate?: boolean;
|
|
17
|
+
/** Enter animation budget in ms. Default: 1100 */
|
|
18
|
+
enterDurationMs?: number;
|
|
19
|
+
/** Scales stagger timing (1 = default). */
|
|
20
|
+
staggerScale?: number;
|
|
21
|
+
/** Motion enter transition (spring or cubic-bezier tween). */
|
|
22
|
+
enterTransition?: Transition;
|
|
23
|
+
/** Changes when motion settings change — replays enter animations. */
|
|
24
|
+
motionReplayKey?: string;
|
|
25
|
+
/** Controlled hover state - index of hovered area */
|
|
26
|
+
hoveredIndex?: number | null;
|
|
27
|
+
/** Callback when hover state changes */
|
|
28
|
+
onHoverChange?: (index: number | null) => void;
|
|
29
|
+
/** Additional class name for the container */
|
|
30
|
+
className?: string;
|
|
31
|
+
/** Child components (RadarGrid, RadarAxis, RadarLabels, RadarArea) */
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
}
|
|
34
|
+
export declare function RadarChart({ data, metrics, size: fixedSize, levels, margin, animate, enterDurationMs, staggerScale, enterTransition, motionReplayKey, className, hoveredIndex, onHoverChange, children, }: RadarChartProps): import("react").JSX.Element;
|
|
35
|
+
export default RadarChart;
|
|
36
|
+
//# sourceMappingURL=radar-chart.d.ts.map
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Group } from "@visx/group";
|
|
4
|
+
import { ParentSize } from "@visx/responsive";
|
|
5
|
+
import { scaleLinear } from "@visx/scale";
|
|
6
|
+
import { useCallback, useState } from "react";
|
|
7
|
+
import { cn } from "../lib/cn.js";
|
|
8
|
+
import { defaultRadarColors, RadarProvider, } from "./radar-context.js";
|
|
9
|
+
function RadarChartInner({ width, height, data, metrics, levels, margin, animate, enterDurationMs, staggerScale, enterTransition, motionReplayKey, children, hoveredIndexProp, onHoverChange, }) {
|
|
10
|
+
const [internalHoveredIndex, setInternalHoveredIndex] = useState(null);
|
|
11
|
+
// Use controlled or uncontrolled hover state
|
|
12
|
+
const isControlled = hoveredIndexProp !== undefined;
|
|
13
|
+
const hoveredIndex = isControlled ? hoveredIndexProp : internalHoveredIndex;
|
|
14
|
+
const setHoveredIndex = useCallback((index) => {
|
|
15
|
+
if (isControlled) {
|
|
16
|
+
onHoverChange?.(index);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
setInternalHoveredIndex(index);
|
|
20
|
+
}
|
|
21
|
+
}, [isControlled, onHoverChange]);
|
|
22
|
+
// Use the smaller dimension
|
|
23
|
+
const size = Math.min(width, height);
|
|
24
|
+
const radius = (size - margin * 2) / 2;
|
|
25
|
+
// Scale for converting values (0-100) to radius
|
|
26
|
+
const yScale = useCallback((value) => {
|
|
27
|
+
const scale = scaleLinear({
|
|
28
|
+
range: [0, radius],
|
|
29
|
+
domain: [0, 100],
|
|
30
|
+
});
|
|
31
|
+
return scale(value) ?? 0;
|
|
32
|
+
}, [radius]);
|
|
33
|
+
// Get angle for a metric index (rotated so first metric is at top)
|
|
34
|
+
const getAngle = useCallback((metricIndex) => {
|
|
35
|
+
const step = (Math.PI * 2) / metrics.length;
|
|
36
|
+
const angleOffset = -Math.PI / 2; // Rotate so first axis is at top
|
|
37
|
+
return metricIndex * step + angleOffset;
|
|
38
|
+
}, [metrics.length]);
|
|
39
|
+
// Get x,y position for a metric at a given value
|
|
40
|
+
const getPointPosition = useCallback((metricIndex, value) => {
|
|
41
|
+
const angle = getAngle(metricIndex);
|
|
42
|
+
const r = yScale(value);
|
|
43
|
+
return {
|
|
44
|
+
x: r * Math.cos(angle),
|
|
45
|
+
y: r * Math.sin(angle),
|
|
46
|
+
};
|
|
47
|
+
}, [getAngle, yScale]);
|
|
48
|
+
// Get color for a data index
|
|
49
|
+
const getColor = useCallback((index) => {
|
|
50
|
+
const item = data[index];
|
|
51
|
+
if (item?.color) {
|
|
52
|
+
return item.color;
|
|
53
|
+
}
|
|
54
|
+
return defaultRadarColors[index % defaultRadarColors.length];
|
|
55
|
+
}, [data]);
|
|
56
|
+
// Early return if dimensions not ready
|
|
57
|
+
if (size < 10) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const contextValue = {
|
|
61
|
+
data,
|
|
62
|
+
metrics,
|
|
63
|
+
size,
|
|
64
|
+
radius,
|
|
65
|
+
levels,
|
|
66
|
+
hoveredIndex,
|
|
67
|
+
setHoveredIndex,
|
|
68
|
+
animate,
|
|
69
|
+
enterDurationMs,
|
|
70
|
+
staggerScale,
|
|
71
|
+
enterTransition,
|
|
72
|
+
motionReplayKey,
|
|
73
|
+
getColor,
|
|
74
|
+
getAngle,
|
|
75
|
+
getPointPosition,
|
|
76
|
+
yScale,
|
|
77
|
+
};
|
|
78
|
+
return (_jsx(RadarProvider, { value: contextValue, children: _jsx("svg", { "aria-hidden": "true", height: size, style: { overflow: "visible" }, width: size, children: _jsx(Group, { left: size / 2, top: size / 2, children: children }) }) }));
|
|
79
|
+
}
|
|
80
|
+
export function RadarChart({ data, metrics, size: fixedSize, levels = 5, margin = 60, animate = true, enterDurationMs = 1100, staggerScale = 1, enterTransition, motionReplayKey = "", className = "", hoveredIndex, onHoverChange, children, }) {
|
|
81
|
+
// If fixed size is provided, use it directly
|
|
82
|
+
if (fixedSize) {
|
|
83
|
+
return (_jsx("div", { "data-slot": "radar-chart", className: cn("relative flex items-center justify-center", className), style: { width: fixedSize, height: fixedSize }, children: _jsx(RadarChartInner, { animate: animate, data: data, enterDurationMs: enterDurationMs, enterTransition: enterTransition, height: fixedSize, hoveredIndexProp: hoveredIndex, levels: levels, margin: margin, metrics: metrics, motionReplayKey: motionReplayKey, onHoverChange: onHoverChange, staggerScale: staggerScale, width: fixedSize, children: children }) }));
|
|
84
|
+
}
|
|
85
|
+
// Otherwise use ParentSize for responsive sizing
|
|
86
|
+
return (_jsx("div", { className: cn("relative aspect-square w-full", className), children: _jsx(ParentSize, { debounceTime: 10, children: ({ width, height }) => (_jsx(RadarChartInner, { animate: animate, data: data, enterDurationMs: enterDurationMs, enterTransition: enterTransition, height: height, hoveredIndexProp: hoveredIndex, levels: levels, margin: margin, metrics: metrics, motionReplayKey: motionReplayKey, onHoverChange: onHoverChange, staggerScale: staggerScale, width: width, children: children })) }) }));
|
|
87
|
+
}
|
|
88
|
+
export default RadarChart;
|
|
89
|
+
//# sourceMappingURL=radar-chart.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Transition } from "motion/react";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
export declare const radarCssVars: {
|
|
4
|
+
background: string;
|
|
5
|
+
foreground: string;
|
|
6
|
+
foregroundMuted: string;
|
|
7
|
+
label: string;
|
|
8
|
+
grid: string;
|
|
9
|
+
border: string;
|
|
10
|
+
area1: string;
|
|
11
|
+
area2: string;
|
|
12
|
+
area3: string;
|
|
13
|
+
area4: string;
|
|
14
|
+
area5: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const defaultRadarColors: string[];
|
|
17
|
+
export interface RadarMetric {
|
|
18
|
+
/** Unique key for the metric */
|
|
19
|
+
key: string;
|
|
20
|
+
/** Display label for the metric */
|
|
21
|
+
label: string;
|
|
22
|
+
}
|
|
23
|
+
export interface RadarData {
|
|
24
|
+
/** Display label for this data series */
|
|
25
|
+
label: string;
|
|
26
|
+
/** Color for this data series (defaults to chart-1 through chart-5) */
|
|
27
|
+
color?: string;
|
|
28
|
+
/** Metric values (key -> value, normalized 0-100) */
|
|
29
|
+
values: Record<string, number>;
|
|
30
|
+
}
|
|
31
|
+
export interface RadarHoverContextValue {
|
|
32
|
+
hoveredIndex: number | null;
|
|
33
|
+
setHoveredIndex: (index: number | null) => void;
|
|
34
|
+
}
|
|
35
|
+
export interface RadarStableContextValue {
|
|
36
|
+
data: RadarData[];
|
|
37
|
+
metrics: RadarMetric[];
|
|
38
|
+
size: number;
|
|
39
|
+
radius: number;
|
|
40
|
+
levels: number;
|
|
41
|
+
animate: boolean;
|
|
42
|
+
/** Total enter animation budget in ms */
|
|
43
|
+
enterDurationMs: number;
|
|
44
|
+
/** Scales stagger delays between grid / campaigns / metrics */
|
|
45
|
+
staggerScale: number;
|
|
46
|
+
/** Motion enter transition (spring or cubic-bezier tween). */
|
|
47
|
+
enterTransition?: Transition;
|
|
48
|
+
/** Changes when motion settings change — replays enter animations. */
|
|
49
|
+
motionReplayKey: string;
|
|
50
|
+
getColor: (index: number) => string;
|
|
51
|
+
getAngle: (metricIndex: number) => number;
|
|
52
|
+
getPointPosition: (metricIndex: number, value: number) => {
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
};
|
|
56
|
+
yScale: (value: number) => number;
|
|
57
|
+
}
|
|
58
|
+
export type RadarContextValue = RadarStableContextValue & RadarHoverContextValue;
|
|
59
|
+
declare const RadarStableContext: import("react").Context<RadarStableContextValue | null>;
|
|
60
|
+
export declare function RadarProvider({ children, value, }: {
|
|
61
|
+
children: ReactNode;
|
|
62
|
+
value: RadarContextValue;
|
|
63
|
+
}): import("react").JSX.Element;
|
|
64
|
+
export declare function useRadarStable(): RadarStableContextValue;
|
|
65
|
+
export declare function useRadarHover(): RadarHoverContextValue;
|
|
66
|
+
export declare function useRadar(): RadarContextValue;
|
|
67
|
+
export default RadarStableContext;
|
|
68
|
+
//# sourceMappingURL=radar-context.d.ts.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext, useMemo } from "react";
|
|
4
|
+
// CSS variable references for radar chart theming
|
|
5
|
+
export const radarCssVars = {
|
|
6
|
+
background: "var(--chart-background)",
|
|
7
|
+
foreground: "var(--chart-foreground)",
|
|
8
|
+
foregroundMuted: "var(--chart-foreground-muted)",
|
|
9
|
+
label: "var(--chart-label, oklch(0.65 0.01 260))",
|
|
10
|
+
grid: "var(--chart-grid)",
|
|
11
|
+
border: "var(--border)",
|
|
12
|
+
// Default radar colors from chart palette
|
|
13
|
+
area1: "var(--chart-1)",
|
|
14
|
+
area2: "var(--chart-2)",
|
|
15
|
+
area3: "var(--chart-3)",
|
|
16
|
+
area4: "var(--chart-4)",
|
|
17
|
+
area5: "var(--chart-5)",
|
|
18
|
+
};
|
|
19
|
+
// Default radar color palette
|
|
20
|
+
export const defaultRadarColors = [
|
|
21
|
+
radarCssVars.area1,
|
|
22
|
+
radarCssVars.area2,
|
|
23
|
+
radarCssVars.area3,
|
|
24
|
+
radarCssVars.area4,
|
|
25
|
+
radarCssVars.area5,
|
|
26
|
+
];
|
|
27
|
+
const RadarStableContext = createContext(null);
|
|
28
|
+
const RadarHoverContext = createContext(null);
|
|
29
|
+
export function RadarProvider({ children, value, }) {
|
|
30
|
+
const stable = useMemo(() => ({
|
|
31
|
+
data: value.data,
|
|
32
|
+
metrics: value.metrics,
|
|
33
|
+
size: value.size,
|
|
34
|
+
radius: value.radius,
|
|
35
|
+
levels: value.levels,
|
|
36
|
+
animate: value.animate,
|
|
37
|
+
enterDurationMs: value.enterDurationMs,
|
|
38
|
+
staggerScale: value.staggerScale,
|
|
39
|
+
enterTransition: value.enterTransition,
|
|
40
|
+
motionReplayKey: value.motionReplayKey,
|
|
41
|
+
getColor: value.getColor,
|
|
42
|
+
getAngle: value.getAngle,
|
|
43
|
+
getPointPosition: value.getPointPosition,
|
|
44
|
+
yScale: value.yScale,
|
|
45
|
+
}), [
|
|
46
|
+
value.data,
|
|
47
|
+
value.metrics,
|
|
48
|
+
value.size,
|
|
49
|
+
value.radius,
|
|
50
|
+
value.levels,
|
|
51
|
+
value.animate,
|
|
52
|
+
value.enterDurationMs,
|
|
53
|
+
value.staggerScale,
|
|
54
|
+
value.enterTransition,
|
|
55
|
+
value.motionReplayKey,
|
|
56
|
+
value.getColor,
|
|
57
|
+
value.getAngle,
|
|
58
|
+
value.getPointPosition,
|
|
59
|
+
value.yScale,
|
|
60
|
+
]);
|
|
61
|
+
const hover = useMemo(() => ({
|
|
62
|
+
hoveredIndex: value.hoveredIndex,
|
|
63
|
+
setHoveredIndex: value.setHoveredIndex,
|
|
64
|
+
}), [value.hoveredIndex, value.setHoveredIndex]);
|
|
65
|
+
return (_jsx(RadarStableContext.Provider, { value: stable, children: _jsx(RadarHoverContext.Provider, { value: hover, children: children }) }));
|
|
66
|
+
}
|
|
67
|
+
export function useRadarStable() {
|
|
68
|
+
const context = useContext(RadarStableContext);
|
|
69
|
+
if (!context) {
|
|
70
|
+
throw new Error("useRadarStable must be used within a RadarProvider. " +
|
|
71
|
+
"Make sure your component is wrapped in <RadarChart>.");
|
|
72
|
+
}
|
|
73
|
+
return context;
|
|
74
|
+
}
|
|
75
|
+
export function useRadarHover() {
|
|
76
|
+
const context = useContext(RadarHoverContext);
|
|
77
|
+
if (!context) {
|
|
78
|
+
throw new Error("useRadarHover must be used within a RadarProvider. " +
|
|
79
|
+
"Make sure your component is wrapped in <RadarChart>.");
|
|
80
|
+
}
|
|
81
|
+
return context;
|
|
82
|
+
}
|
|
83
|
+
export function useRadar() {
|
|
84
|
+
return { ...useRadarStable(), ...useRadarHover() };
|
|
85
|
+
}
|
|
86
|
+
export default RadarStableContext;
|
|
87
|
+
//# sourceMappingURL=radar-context.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface RadarGridProps {
|
|
2
|
+
/** Show level value labels. Default: true */
|
|
3
|
+
showLabels?: boolean;
|
|
4
|
+
/** Grid line stroke color. Default: var(--border) */
|
|
5
|
+
stroke?: string;
|
|
6
|
+
/** Grid line stroke opacity. Default: 0.6 */
|
|
7
|
+
strokeOpacity?: number;
|
|
8
|
+
/** Additional class name */
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function RadarGrid({ showLabels, stroke, strokeOpacity, className, }: RadarGridProps): import("react").JSX.Element;
|
|
12
|
+
export declare namespace RadarGrid {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
export default RadarGrid;
|
|
16
|
+
//# sourceMappingURL=radar-grid.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { scaleLinear } from "@visx/scale";
|
|
4
|
+
import { LineRadial } from "@visx/shape";
|
|
5
|
+
import { motion } from "motion/react";
|
|
6
|
+
import { transitionWithDelay } from "./motion-utils.js";
|
|
7
|
+
import { radarCssVars, useRadarStable } from "./radar-context.js";
|
|
8
|
+
export function RadarGrid({ showLabels = true, stroke = radarCssVars.border, strokeOpacity = 0.6, className = "", }) {
|
|
9
|
+
const { metrics, radius, levels, animate, enterTransition, staggerScale, enterDurationMs, motionReplayKey, } = useRadarStable();
|
|
10
|
+
const durationFactor = enterDurationMs / 1100;
|
|
11
|
+
const gridStagger = 0.08 * staggerScale * durationFactor;
|
|
12
|
+
// Generate angles for the radial lines (one per metric)
|
|
13
|
+
const degrees = 360;
|
|
14
|
+
const angles = [...new Array(metrics.length + 1)].map((_, i) => ({
|
|
15
|
+
angle: i * (degrees / metrics.length) + degrees / metrics.length / 2,
|
|
16
|
+
}));
|
|
17
|
+
// Radial scale for converting degrees to radians
|
|
18
|
+
const radialScale = scaleLinear({
|
|
19
|
+
range: [0, Math.PI * 2],
|
|
20
|
+
domain: [degrees, 0],
|
|
21
|
+
});
|
|
22
|
+
const labelDelay = levels * gridStagger * 0.5;
|
|
23
|
+
return (_jsxs("g", { className: className, children: [[...new Array(levels)].map((_, i) => {
|
|
24
|
+
const targetRadius = ((i + 1) * radius) / levels;
|
|
25
|
+
return (_jsx(motion.g, { animate: { scale: 1, opacity: 1 }, initial: animate ? { scale: 0, opacity: 0 } : { scale: 1, opacity: 1 }, style: { transformOrigin: "0px 0px" }, transition: animate
|
|
26
|
+
? transitionWithDelay(enterTransition, i * gridStagger, {
|
|
27
|
+
type: "spring",
|
|
28
|
+
stiffness: 100,
|
|
29
|
+
damping: 15,
|
|
30
|
+
mass: 1,
|
|
31
|
+
})
|
|
32
|
+
: undefined, children: _jsx(LineRadial, { angle: (d) => radialScale(d.angle) ?? 0, data: angles, fill: "none", radius: targetRadius, stroke: stroke, strokeLinecap: "round", strokeOpacity: strokeOpacity, strokeWidth: 1 }) }, `grid-${i}-${motionReplayKey}`));
|
|
33
|
+
}), showLabels &&
|
|
34
|
+
[...new Array(levels)].map((_, i) => (_jsx(motion.g, { animate: { opacity: 1 }, initial: animate ? { opacity: 0 } : { opacity: 1 }, transition: animate
|
|
35
|
+
? transitionWithDelay(enterTransition, labelDelay + i * 0.06 * durationFactor)
|
|
36
|
+
: undefined, children: _jsx("text", { dominantBaseline: "middle", fill: radarCssVars.foregroundMuted, fontSize: 9, textAnchor: "start", x: 4, y: -((i + 1) * radius) / levels, children: ((i + 1) * 100) / levels }) }, `level-label-${i}-${motionReplayKey}`)))] }));
|
|
37
|
+
}
|
|
38
|
+
RadarGrid.displayName = "RadarGrid";
|
|
39
|
+
export default RadarGrid;
|
|
40
|
+
//# sourceMappingURL=radar-grid.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface RadarLabelsProps {
|
|
2
|
+
/** Distance from the chart edge. Default: 24 */
|
|
3
|
+
offset?: number;
|
|
4
|
+
/** Font size for labels. Default: 11 */
|
|
5
|
+
fontSize?: number;
|
|
6
|
+
/** Enable interactive hover on labels. Default: false */
|
|
7
|
+
interactive?: boolean;
|
|
8
|
+
/** Additional class name */
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function RadarLabels({ offset, fontSize, interactive, className, }: RadarLabelsProps): import("react").JSX.Element;
|
|
12
|
+
export declare namespace RadarLabels {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
export default RadarLabels;
|
|
16
|
+
//# sourceMappingURL=radar-labels.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { motion } from "motion/react";
|
|
4
|
+
import { radarCssVars, useRadarStable } from "./radar-context.js";
|
|
5
|
+
export function RadarLabels({ offset = 24, fontSize = 11, interactive = false, className = "", }) {
|
|
6
|
+
const { metrics, radius, levels, getAngle, animate } = useRadarStable();
|
|
7
|
+
// Label animation delay (starts after grid begins)
|
|
8
|
+
const gridStagger = 0.08;
|
|
9
|
+
const labelDelay = levels * gridStagger * 0.5;
|
|
10
|
+
const labelRadius = radius + offset;
|
|
11
|
+
return (_jsx("g", { className: className, children: metrics.map((metric, i) => {
|
|
12
|
+
const angle = getAngle(i);
|
|
13
|
+
const x = labelRadius * Math.cos(angle);
|
|
14
|
+
const y = labelRadius * Math.sin(angle);
|
|
15
|
+
return (_jsx(motion.g, { animate: { opacity: 1, x, y }, initial: animate ? { opacity: 0, x: 0, y: 0 } : { opacity: 1, x, y }, transition: {
|
|
16
|
+
opacity: {
|
|
17
|
+
duration: 0.5,
|
|
18
|
+
delay: animate ? labelDelay + i * 0.08 : 0,
|
|
19
|
+
},
|
|
20
|
+
x: { type: "spring", stiffness: 80, damping: 15 },
|
|
21
|
+
y: { type: "spring", stiffness: 80, damping: 15 },
|
|
22
|
+
}, children: _jsx("text", { className: interactive
|
|
23
|
+
? "cursor-pointer transition-opacity duration-150 hover:opacity-100"
|
|
24
|
+
: "", dominantBaseline: "middle", fontSize: fontSize, fontWeight: 500, opacity: interactive ? 0.8 : 1, style: { fill: radarCssVars.label }, textAnchor: "middle", x: 0, y: 0, children: metric.label }) }, `label-${metric.key}`));
|
|
25
|
+
}) }));
|
|
26
|
+
}
|
|
27
|
+
RadarLabels.displayName = "RadarLabels";
|
|
28
|
+
export default RadarLabels;
|
|
29
|
+
//# sourceMappingURL=radar-labels.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface ReferenceAreaConfig {
|
|
3
|
+
yAxisId: string;
|
|
4
|
+
y1?: number;
|
|
5
|
+
y2?: number;
|
|
6
|
+
axisLabelColor?: string;
|
|
7
|
+
}
|
|
8
|
+
/** Collect {@link ReferenceArea} props from chart children for axis label styling. */
|
|
9
|
+
export declare function extractReferenceAreaConfigs(children: ReactNode): ReferenceAreaConfig[];
|
|
10
|
+
//# sourceMappingURL=reference-area-config.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Children, isValidElement } from "react";
|
|
2
|
+
import { normalizeYAxisId } from "./y-axis-scales.js";
|
|
3
|
+
function getChildComponentName(child) {
|
|
4
|
+
const childType = child.type;
|
|
5
|
+
return typeof child.type === "function" ? childType.displayName || childType.name || "" : "";
|
|
6
|
+
}
|
|
7
|
+
function isReferenceAreaElement(child) {
|
|
8
|
+
return getChildComponentName(child) === "ReferenceArea";
|
|
9
|
+
}
|
|
10
|
+
/** Collect {@link ReferenceArea} props from chart children for axis label styling. */
|
|
11
|
+
export function extractReferenceAreaConfigs(children) {
|
|
12
|
+
const configs = [];
|
|
13
|
+
const visit = (node) => {
|
|
14
|
+
Children.forEach(node, (child) => {
|
|
15
|
+
if (!isValidElement(child)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (isReferenceAreaElement(child)) {
|
|
19
|
+
const props = child.props;
|
|
20
|
+
if (props) {
|
|
21
|
+
configs.push({
|
|
22
|
+
yAxisId: normalizeYAxisId(props.yAxisId),
|
|
23
|
+
y1: props.y1,
|
|
24
|
+
y2: props.y2,
|
|
25
|
+
axisLabelColor: props.axisLabelColor,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const childProps = child.props;
|
|
31
|
+
if (childProps?.children) {
|
|
32
|
+
visit(childProps.children);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
visit(children);
|
|
37
|
+
return configs;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=reference-area-config.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ReferenceAreaIfOverflow = "hidden" | "visible" | "discard";
|
|
2
|
+
export interface ReferenceAreaRect {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ComputeReferenceAreaRectOptions {
|
|
9
|
+
innerWidth: number;
|
|
10
|
+
innerHeight: number;
|
|
11
|
+
x1?: Date | number;
|
|
12
|
+
x2?: Date | number;
|
|
13
|
+
y1?: number;
|
|
14
|
+
y2?: number;
|
|
15
|
+
ifOverflow?: ReferenceAreaIfOverflow;
|
|
16
|
+
xScale: (value: Date) => number;
|
|
17
|
+
yScale: (value: number) => number;
|
|
18
|
+
}
|
|
19
|
+
/** Map data bounds to plot pixels for a reference rectangle. */
|
|
20
|
+
export declare function computeReferenceAreaRect(options: ComputeReferenceAreaRectOptions): ReferenceAreaRect | null;
|
|
21
|
+
/** Inclusive data range for axis label highlighting. */
|
|
22
|
+
export declare function resolveReferenceDataRange(y1: number | undefined, y2: number | undefined, domain: [number, number]): [number, number];
|
|
23
|
+
//# sourceMappingURL=reference-area-geometry.d.ts.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
function toDate(value) {
|
|
2
|
+
return value instanceof Date ? value : new Date(value);
|
|
3
|
+
}
|
|
4
|
+
function resolveXPixel(xScale, value, fallback) {
|
|
5
|
+
if (value == null) {
|
|
6
|
+
return fallback;
|
|
7
|
+
}
|
|
8
|
+
return xScale(toDate(value));
|
|
9
|
+
}
|
|
10
|
+
function resolveYPixel(yScale, value, fallback) {
|
|
11
|
+
if (value == null) {
|
|
12
|
+
return fallback;
|
|
13
|
+
}
|
|
14
|
+
return yScale(value);
|
|
15
|
+
}
|
|
16
|
+
function clampRectToPlot(rect, innerWidth, innerHeight) {
|
|
17
|
+
const x1 = Math.max(0, rect.x);
|
|
18
|
+
const y1 = Math.max(0, rect.y);
|
|
19
|
+
const x2 = Math.min(innerWidth, rect.x + rect.width);
|
|
20
|
+
const y2 = Math.min(innerHeight, rect.y + rect.height);
|
|
21
|
+
const width = x2 - x1;
|
|
22
|
+
const height = y2 - y1;
|
|
23
|
+
if (width <= 0 || height <= 0) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return { x: x1, y: y1, width, height };
|
|
27
|
+
}
|
|
28
|
+
function isFullyInsidePlot(rect, innerWidth, innerHeight) {
|
|
29
|
+
return (rect.x >= 0 &&
|
|
30
|
+
rect.y >= 0 &&
|
|
31
|
+
rect.x + rect.width <= innerWidth &&
|
|
32
|
+
rect.y + rect.height <= innerHeight);
|
|
33
|
+
}
|
|
34
|
+
/** Map data bounds to plot pixels for a reference rectangle. */
|
|
35
|
+
export function computeReferenceAreaRect(options) {
|
|
36
|
+
const { innerWidth, innerHeight, x1, x2, y1, y2, ifOverflow = "hidden", xScale, yScale, } = options;
|
|
37
|
+
if (innerWidth <= 0 || innerHeight <= 0) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const left = resolveXPixel(xScale, x1, 0);
|
|
41
|
+
const right = resolveXPixel(xScale, x2, innerWidth);
|
|
42
|
+
const top = resolveYPixel(yScale, y1, 0);
|
|
43
|
+
const bottom = resolveYPixel(yScale, y2, innerHeight);
|
|
44
|
+
const x = Math.min(left, right);
|
|
45
|
+
const y = Math.min(top, bottom);
|
|
46
|
+
const width = Math.abs(right - left);
|
|
47
|
+
const height = Math.abs(bottom - top);
|
|
48
|
+
if (width <= 0 || height <= 0) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const rect = { x, y, width, height };
|
|
52
|
+
if (ifOverflow === "visible") {
|
|
53
|
+
return rect;
|
|
54
|
+
}
|
|
55
|
+
if (ifOverflow === "discard") {
|
|
56
|
+
return isFullyInsidePlot(rect, innerWidth, innerHeight) ? rect : null;
|
|
57
|
+
}
|
|
58
|
+
return clampRectToPlot(rect, innerWidth, innerHeight);
|
|
59
|
+
}
|
|
60
|
+
/** Inclusive data range for axis label highlighting. */
|
|
61
|
+
export function resolveReferenceDataRange(y1, y2, domain) {
|
|
62
|
+
const dMin = Math.min(domain[0], domain[1]);
|
|
63
|
+
const dMax = Math.max(domain[0], domain[1]);
|
|
64
|
+
const low = y1 ?? dMin;
|
|
65
|
+
const high = y2 ?? dMax;
|
|
66
|
+
return [Math.min(low, high), Math.max(low, high)];
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=reference-area-geometry.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReferenceAreaConfig } from "./reference-area-config.js";
|
|
2
|
+
export interface ReferenceAreaRegistrationContextValue {
|
|
3
|
+
registerReferenceArea: (id: string, config: ReferenceAreaConfig) => void;
|
|
4
|
+
unregisterReferenceArea: (id: string) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const ReferenceAreaRegistrationContext: import("react").Context<ReferenceAreaRegistrationContextValue | null>;
|
|
7
|
+
export declare function useReferenceAreaRegistration(): ReferenceAreaRegistrationContextValue | null;
|
|
8
|
+
//# sourceMappingURL=reference-area-registration-context.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
export const ReferenceAreaRegistrationContext = createContext(null);
|
|
4
|
+
export function useReferenceAreaRegistration() {
|
|
5
|
+
return useContext(ReferenceAreaRegistrationContext);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=reference-area-registration-context.js.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type PatternPresetId } from "./pattern-preset.js";
|
|
2
|
+
import { type ReferenceAreaIfOverflow } from "./reference-area-geometry.js";
|
|
3
|
+
export type ReferenceAreaStrokeStyle = "solid" | "dashed";
|
|
4
|
+
export interface ReferenceAreaProps {
|
|
5
|
+
/** Lower Y data bound (extends to plot top when omitted). */
|
|
6
|
+
y1?: number;
|
|
7
|
+
/** Upper Y data bound (extends to plot bottom when omitted). */
|
|
8
|
+
y2?: number;
|
|
9
|
+
/** Starting X data coordinate (extends to plot left when omitted). */
|
|
10
|
+
x1?: Date | number;
|
|
11
|
+
/** Ending X data coordinate (extends to plot right when omitted). */
|
|
12
|
+
x2?: Date | number;
|
|
13
|
+
/** Y-scale group id. Default: `"left"`. */
|
|
14
|
+
yAxisId?: string | number;
|
|
15
|
+
/** Solid fill when `pattern` is `"none"`. */
|
|
16
|
+
fill?: string;
|
|
17
|
+
fillOpacity?: number;
|
|
18
|
+
/** Pattern preset. `"none"` uses solid `fill`. */
|
|
19
|
+
pattern?: PatternPresetId;
|
|
20
|
+
/** Pattern stroke / tile color. */
|
|
21
|
+
patternColor?: string;
|
|
22
|
+
patternScale?: number;
|
|
23
|
+
patternStrokeWidth?: number;
|
|
24
|
+
patternRadius?: number;
|
|
25
|
+
patternComplement?: boolean;
|
|
26
|
+
patternFill?: string;
|
|
27
|
+
patternDotFill?: boolean;
|
|
28
|
+
patternTileBackground?: string;
|
|
29
|
+
stroke?: string;
|
|
30
|
+
strokeWidth?: number;
|
|
31
|
+
strokeStyle?: ReferenceAreaStrokeStyle;
|
|
32
|
+
/** Dash array when `strokeStyle` is `"dashed"`. Default: `"4,4"`. */
|
|
33
|
+
strokeDasharray?: string;
|
|
34
|
+
/** Fade fill and edge lines at left/right. Default: true */
|
|
35
|
+
fadeEdges?: boolean;
|
|
36
|
+
/** Horizontal fade zone as % of plot width per edge. Default: 10 */
|
|
37
|
+
fadeEdgesLength?: number;
|
|
38
|
+
/** Y-axis tick label color for values inside this band. */
|
|
39
|
+
axisLabelColor?: string;
|
|
40
|
+
/** Inward bracket markers at the horizontal center of the band. */
|
|
41
|
+
showMarkers?: boolean;
|
|
42
|
+
markerColor?: string;
|
|
43
|
+
markerSize?: number;
|
|
44
|
+
ifOverflow?: ReferenceAreaIfOverflow;
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare function ReferenceArea({ y1, y2, x1, x2, yAxisId, fill, fillOpacity, pattern, patternColor, patternScale, patternStrokeWidth, patternRadius, patternComplement, patternFill, patternDotFill, patternTileBackground, stroke, strokeWidth, strokeStyle, strokeDasharray, fadeEdges, fadeEdgesLength, axisLabelColor, showMarkers, markerColor, markerSize, ifOverflow, className, }: ReferenceAreaProps): import("react").JSX.Element | null;
|
|
48
|
+
export declare namespace ReferenceArea {
|
|
49
|
+
var displayName: string;
|
|
50
|
+
}
|
|
51
|
+
export default ReferenceArea;
|
|
52
|
+
//# sourceMappingURL=reference-area.d.ts.map
|