@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Cronus
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
# @cronus-ui/ui
|
|
2
|
+
|
|
3
|
+
The Cronus UI component library — a themeable, accessible, shadcn-class set of
|
|
4
|
+
React components built on Radix UI, [CVA](https://cva.style/), and Tailwind v4.
|
|
5
|
+
|
|
6
|
+
Components are unstyled at the structural level and rendered against semantic
|
|
7
|
+
[`@cronus-ui/tokens`](../tokens) (`bg-primary`, `text-fg-secondary`, `rounded-lg`,
|
|
8
|
+
`shadow-glow`, …), so the entire library re-themes from one token change — and can
|
|
9
|
+
be re-themed live by [`@cronus-ui/theme`](../theme). New components take `ref` as a
|
|
10
|
+
prop (React 19). Existing ones may still use `forwardRef`. Every component
|
|
11
|
+
carries `data-slot` and visible `focus-visible` rings.
|
|
12
|
+
|
|
13
|
+
Reach for this package when you want production-ready Cronus components as a managed
|
|
14
|
+
dependency. Prefer to own the source instead? Copy components into your project
|
|
15
|
+
with `npx cronus-ui add` (see [Copy-in option](#copy-in-option-cli)).
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
> Published on npm under the `@cronus-ui` scope.
|
|
20
|
+
> Install all three packages:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
# npm
|
|
24
|
+
npm i @cronus-ui/ui @cronus-ui/tokens @cronus-ui/theme
|
|
25
|
+
# pnpm
|
|
26
|
+
pnpm add @cronus-ui/ui @cronus-ui/tokens @cronus-ui/theme
|
|
27
|
+
# bun
|
|
28
|
+
bun add @cronus-ui/ui @cronus-ui/tokens @cronus-ui/theme
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`@cronus-ui/ui` renders against the token bridge and runtime provider, so install
|
|
32
|
+
[`@cronus-ui/tokens`](../tokens) and [`@cronus-ui/theme`](../theme) alongside it.
|
|
33
|
+
|
|
34
|
+
### Prerequisites
|
|
35
|
+
|
|
36
|
+
- **React 19** (also works with React 18.3+) — `react` and `react-dom` are peers.
|
|
37
|
+
- **Tailwind v4** (or v3) configured with the `@cronus-ui/tokens` bridge or preset.
|
|
38
|
+
- A few heavy, component-specific packages are **optional** peers — install them
|
|
39
|
+
only for the components you use. See
|
|
40
|
+
[Optional peer dependencies](#optional-peer-dependencies).
|
|
41
|
+
|
|
42
|
+
### Optional peer dependencies
|
|
43
|
+
|
|
44
|
+
Most components work out of the box. A handful sit on top of a heavy
|
|
45
|
+
third-party library that is only needed by that component, so those libraries
|
|
46
|
+
are declared as **optional peer dependencies** and are *not* installed with
|
|
47
|
+
`@cronus-ui/ui`. Install the matching package(s) only when you import the
|
|
48
|
+
component:
|
|
49
|
+
|
|
50
|
+
| Component(s) | Package(s) | Install |
|
|
51
|
+
| -------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
|
|
52
|
+
| `Chart` | `recharts` | `npm i recharts` |
|
|
53
|
+
| `RichTextEditor` | `@tiptap/react`, `@tiptap/pm`, `@tiptap/starter-kit` | `npm i @tiptap/react @tiptap/pm @tiptap/starter-kit` |
|
|
54
|
+
| `Kanban` | `@dnd-kit/core`, `@dnd-kit/sortable`, `@dnd-kit/utilities` | `npm i @dnd-kit/core @dnd-kit/sortable @dnd-kit/utilities` |
|
|
55
|
+
| `DataTable` | `@tanstack/react-table` | `npm i @tanstack/react-table` |
|
|
56
|
+
| `Calendar` | `react-day-picker` | `npm i react-day-picker` |
|
|
57
|
+
| `DatePicker`, `DateRangePicker` | `react-day-picker`, `date-fns` | `npm i react-day-picker date-fns` |
|
|
58
|
+
| `Scheduler` | `date-fns` | `npm i date-fns` |
|
|
59
|
+
| `Form` | `react-hook-form`, `zod`, `@hookform/resolvers` | `npm i react-hook-form zod @hookform/resolvers` |
|
|
60
|
+
|
|
61
|
+
Importing one of these components without its peer installed fails at
|
|
62
|
+
build/bundle time with a module-not-found error for the missing package —
|
|
63
|
+
installing the package(s) from the table fixes it.
|
|
64
|
+
|
|
65
|
+
> Using the CLI instead (`npx cronus-ui add <slug>`)? Nothing changes for you:
|
|
66
|
+
> the registry tracks each component's real imports and `add` installs them.
|
|
67
|
+
|
|
68
|
+
### Wire up styling
|
|
69
|
+
|
|
70
|
+
Tailwind does not scan `node_modules` by default, so the utility classes baked
|
|
71
|
+
into the shipped components must be opted back into content detection — otherwise
|
|
72
|
+
the markup is correct but **no CSS is generated**.
|
|
73
|
+
|
|
74
|
+
**Tailwind v4** — in your global stylesheet:
|
|
75
|
+
|
|
76
|
+
```css
|
|
77
|
+
@import "tailwindcss";
|
|
78
|
+
@import "@cronus-ui/tokens/styles.css";
|
|
79
|
+
|
|
80
|
+
/* REQUIRED: emit the utilities used inside the shipped components. */
|
|
81
|
+
@source "../node_modules/@cronus-ui/ui/dist/**/*.js";
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Tailwind v3** — in `tailwind.config.js`:
|
|
85
|
+
|
|
86
|
+
```js
|
|
87
|
+
import cronusPreset from "@cronus-ui/tokens/preset";
|
|
88
|
+
|
|
89
|
+
export default {
|
|
90
|
+
presets: [cronusPreset],
|
|
91
|
+
content: [
|
|
92
|
+
"./src/**/*.{ts,tsx}",
|
|
93
|
+
// REQUIRED: keep the utilities used inside the shipped components.
|
|
94
|
+
"./node_modules/@cronus-ui/ui/dist/**/*.js",
|
|
95
|
+
],
|
|
96
|
+
};
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
See [`@cronus-ui/tokens`](../tokens) for the full Tailwind v3/v4 setup details.
|
|
100
|
+
|
|
101
|
+
## Usage
|
|
102
|
+
|
|
103
|
+
Wrap the app in the provider once, then import components anywhere.
|
|
104
|
+
|
|
105
|
+
```tsx
|
|
106
|
+
// app/layout.tsx — or your root
|
|
107
|
+
import "@cronus-ui/tokens/styles.css";
|
|
108
|
+
import { CronusUIProvider } from "@cronus-ui/theme";
|
|
109
|
+
|
|
110
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
111
|
+
return (
|
|
112
|
+
<html lang="en">
|
|
113
|
+
<body>
|
|
114
|
+
<CronusUIProvider asRoot defaultThemeName="aurora" defaultModeName="dark">
|
|
115
|
+
{children}
|
|
116
|
+
</CronusUIProvider>
|
|
117
|
+
</body>
|
|
118
|
+
</html>
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
```tsx
|
|
124
|
+
// any component
|
|
125
|
+
import { Button, Card, CardHeader, CardTitle, CardContent, Badge } from "@cronus-ui/ui";
|
|
126
|
+
|
|
127
|
+
export function Example() {
|
|
128
|
+
return (
|
|
129
|
+
<Card>
|
|
130
|
+
<CardHeader>
|
|
131
|
+
<CardTitle>Ship it</CardTitle>
|
|
132
|
+
<Badge>New</Badge>
|
|
133
|
+
</CardHeader>
|
|
134
|
+
<CardContent>
|
|
135
|
+
<Button variant="primary">Get started</Button>
|
|
136
|
+
</CardContent>
|
|
137
|
+
</Card>
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Subpath imports
|
|
143
|
+
|
|
144
|
+
Every component is also exposed as its own entry point for finer-grained imports,
|
|
145
|
+
e.g. `import { Button } from "@cronus-ui/ui/button"`. The `cn` class-merge helper used
|
|
146
|
+
by every component is available at `import { cn } from "@cronus-ui/ui/cn"`.
|
|
147
|
+
|
|
148
|
+
## Components
|
|
149
|
+
|
|
150
|
+
Foundations and forms — Button, Input, Label, Badge, Card, Separator, Skeleton,
|
|
151
|
+
Spinner, Textarea, Checkbox, Switch, RadioGroup, Select, Slider, Toggle, Field,
|
|
152
|
+
Form (react-hook-form + zod), InputOTP, FileDropzone, NumberInput, Combobox,
|
|
153
|
+
MultiSelect, SegmentedControl, Autocomplete.
|
|
154
|
+
|
|
155
|
+
Overlays and navigation — Dialog, Sheet, AlertDialog, DropdownMenu, Popover,
|
|
156
|
+
MorphingPopover, HoverCard, Tooltip, Tabs, Accordion, Collapsible, Drawer, Toast
|
|
157
|
+
(Sonner), Command palette, NavigationMenu, Breadcrumb, Pagination, Sidebar,
|
|
158
|
+
AppShell.
|
|
159
|
+
|
|
160
|
+
Data and display — Table, DataTable (TanStack), Avatar, Progress, ScrollArea,
|
|
161
|
+
Calendar, DatePicker, DateRangePicker, Chart (Recharts), Empty, Metric, Kbd,
|
|
162
|
+
CodeBlock, CopyButton, Carousel.
|
|
163
|
+
|
|
164
|
+
Premium and brand — GlassCard, GradientBorder, GradientText, SpotlightCard,
|
|
165
|
+
AuroraBackground, Shimmer, AnimatedButton, AnimatedNumber, Reveal, TextEffect,
|
|
166
|
+
LogoCarousel, and motion presets — the Aurora layer of glass, gradients, springs,
|
|
167
|
+
and scroll reveals.
|
|
168
|
+
|
|
169
|
+
Browse them all, with live previews and props, on the [docs site](../../apps/www).
|
|
170
|
+
|
|
171
|
+
## Theming
|
|
172
|
+
|
|
173
|
+
Components consume semantic tokens only — never raw colors — so they re-theme
|
|
174
|
+
with the active theme/mode and with any runtime override. Switch theme or override
|
|
175
|
+
tokens through [`@cronus-ui/theme`](../theme):
|
|
176
|
+
|
|
177
|
+
```tsx
|
|
178
|
+
const { setTheme, setMode, setOverrides } = useTheme();
|
|
179
|
+
setOverrides({ radius: "20px", primary: "#7c3aed" }); // re-themes the subtree, no re-render
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
The OKLCH token scale and the two built-in themes (Aurora, Neutral) live in
|
|
183
|
+
[`@cronus-ui/tokens`](../tokens).
|
|
184
|
+
|
|
185
|
+
## Testing
|
|
186
|
+
|
|
187
|
+
`@cronus-ui/ui/testing` ships first-class helpers for testing apps built on
|
|
188
|
+
Cronus UI with [Testing Library](https://testing-library.com/) under jsdom
|
|
189
|
+
(Vitest or Jest). The subpath is not part of the main barrel, so test helpers
|
|
190
|
+
can never leak into an app bundle.
|
|
191
|
+
|
|
192
|
+
```sh
|
|
193
|
+
npm i -D @testing-library/react vitest-axe
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Both are **optional peer dependencies** — only `@cronus-ui/ui/testing` uses
|
|
197
|
+
them, never the runtime components, and `vitest-axe` is only required if you
|
|
198
|
+
call `expectNoA11yViolations`.
|
|
199
|
+
|
|
200
|
+
```tsx
|
|
201
|
+
import { expectNoA11yViolations, findDialog, renderWithCronus } from "@cronus-ui/ui/testing";
|
|
202
|
+
import { screen } from "@testing-library/react";
|
|
203
|
+
import userEvent from "@testing-library/user-event";
|
|
204
|
+
import { expect, it } from "vitest";
|
|
205
|
+
|
|
206
|
+
it("invite dialog works and stays accessible in every theme", async () => {
|
|
207
|
+
const user = userEvent.setup();
|
|
208
|
+
const { baseElement, rerenderWithTheme } = renderWithCronus(<InvitePanel />, {
|
|
209
|
+
theme: "aurora",
|
|
210
|
+
mode: "dark",
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
await user.click(screen.getByRole("button", { name: "Invite teammate" }));
|
|
214
|
+
await findDialog("Invite teammate"); // portaled to document.body — still found
|
|
215
|
+
await expectNoA11yViolations(baseElement);
|
|
216
|
+
|
|
217
|
+
rerenderWithTheme("neutral", "light"); // remounts the scope in the new theme
|
|
218
|
+
expect(screen.getByRole("button", { name: "Invite teammate" })).toBeVisible();
|
|
219
|
+
});
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
- `renderWithCronus(ui, { theme?, mode?, ...rtlOptions })` — Testing Library's
|
|
223
|
+
`render` with the UI wrapped in a scoped `CronusUIProvider`. The theme lands
|
|
224
|
+
on a wrapper `<div data-cronus-theme data-cronus-mode>` (never on `<html>`), so
|
|
225
|
+
tests can't bleed theme state into each other. Returns the usual render
|
|
226
|
+
result plus `rerenderWithTheme(theme, mode?)`, which remounts the scope under
|
|
227
|
+
another theme/mode.
|
|
228
|
+
- `findDialog(name?)` / `findTooltip(text?)` — async queries scoped to
|
|
229
|
+
`document.body`, so they find Radix surfaces that render through portals
|
|
230
|
+
(outside the container `render` returns).
|
|
231
|
+
- `expectNoA11yViolations(baseElement, axeOptions?)` — runs axe-core and fails
|
|
232
|
+
with the formatted violations, the same gate this library's own component
|
|
233
|
+
suite runs. Pass `baseElement` (not `container`) so portaled overlays are
|
|
234
|
+
included in the scan.
|
|
235
|
+
|
|
236
|
+
> Radix overlays portal to `document.body`, outside the themed wrapper div —
|
|
237
|
+
> assert on their behavior and accessibility here, and cover theme-dependent
|
|
238
|
+
> visuals with your app-level (`asRoot`) provider in the browser.
|
|
239
|
+
|
|
240
|
+
## Copy-in option (CLI)
|
|
241
|
+
|
|
242
|
+
Prefer to own the component source, shadcn-style? The `cronus-ui` CLI copies the
|
|
243
|
+
real component sources into your project and rewrites imports to your aliases:
|
|
244
|
+
|
|
245
|
+
```sh
|
|
246
|
+
npx cronus-ui init # write cronus-ui.json + the cn() helper
|
|
247
|
+
npx cronus-ui add button card dialog # copy components in (resolves dependencies)
|
|
248
|
+
npx cronus-ui add dashboard # also pulls full-page blocks
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Both distribution modes share one source of truth. See the
|
|
252
|
+
[CLI README](../cli/README.md) for commands and configuration.
|
|
253
|
+
|
|
254
|
+
## Related packages
|
|
255
|
+
|
|
256
|
+
- [`@cronus-ui/tokens`](../tokens) — the OKLCH design tokens these components render against.
|
|
257
|
+
- [`@cronus-ui/theme`](../theme) — the runtime provider + `useTheme` hook.
|
|
258
|
+
- [`cronus-ui`](../cli) — the CLI for copying components into your project.
|
|
259
|
+
|
|
260
|
+
## License
|
|
261
|
+
|
|
262
|
+
MIT
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Transition } from "motion/react";
|
|
2
|
+
/** Default clip-reveal easing for cartesian charts. */
|
|
3
|
+
export declare const DEFAULT_ANIMATION_EASING = "cubic-bezier(0.85, 0, 0.15, 1)";
|
|
4
|
+
export declare const DEFAULT_ANIMATION_DURATION_MS = 1100;
|
|
5
|
+
/** Default enter transition — matches the original line chart reveal. */
|
|
6
|
+
export declare const DEFAULT_CHART_ENTER_TRANSITION: Transition;
|
|
7
|
+
/**
|
|
8
|
+
* Clip-path width reveal must use tween — spring does not reliably animate SVG width.
|
|
9
|
+
*/
|
|
10
|
+
export declare function clipRevealTransition(enterTransition?: Transition): Transition;
|
|
11
|
+
//# sourceMappingURL=animation.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Default clip-reveal easing for cartesian charts. */
|
|
2
|
+
export const DEFAULT_ANIMATION_EASING = "cubic-bezier(0.85, 0, 0.15, 1)";
|
|
3
|
+
export const DEFAULT_ANIMATION_DURATION_MS = 1100;
|
|
4
|
+
/** Default enter transition — matches the original line chart reveal. */
|
|
5
|
+
export const DEFAULT_CHART_ENTER_TRANSITION = {
|
|
6
|
+
type: "tween",
|
|
7
|
+
duration: DEFAULT_ANIMATION_DURATION_MS / 1000,
|
|
8
|
+
ease: [0.85, 0, 0.15, 1],
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Clip-path width reveal must use tween — spring does not reliably animate SVG width.
|
|
12
|
+
*/
|
|
13
|
+
export function clipRevealTransition(enterTransition) {
|
|
14
|
+
if (enterTransition?.type === "tween") {
|
|
15
|
+
return {
|
|
16
|
+
...enterTransition,
|
|
17
|
+
ease: enterTransition.ease ?? DEFAULT_CHART_ENTER_TRANSITION.ease,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const duration = typeof enterTransition?.duration === "number"
|
|
21
|
+
? enterTransition.duration
|
|
22
|
+
: DEFAULT_ANIMATION_DURATION_MS / 1000;
|
|
23
|
+
return {
|
|
24
|
+
type: "tween",
|
|
25
|
+
duration,
|
|
26
|
+
ease: DEFAULT_CHART_ENTER_TRANSITION.ease,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=animation.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Margin } from "./chart-context.js";
|
|
2
|
+
import type { LoadingStyle } from "./chart-phase.js";
|
|
3
|
+
export interface AreaChartLoadingProps {
|
|
4
|
+
/** Chart margins */
|
|
5
|
+
margin?: Partial<Margin>;
|
|
6
|
+
/** Stroke color for the animated loading segment. */
|
|
7
|
+
stroke?: string;
|
|
8
|
+
/** Stroke opacity for the animated loading segment. Default: 0.5 */
|
|
9
|
+
strokeOpacity?: number;
|
|
10
|
+
/** Grid line stroke (color and opacity via color-mix or oklch alpha). */
|
|
11
|
+
gridStroke?: string;
|
|
12
|
+
/** Shimmer band stroke (color and opacity via color-mix or oklch alpha). */
|
|
13
|
+
gridShimmerStroke?: string;
|
|
14
|
+
/** Animate a shimmer band across grid lines. Default: true */
|
|
15
|
+
gridShimmer?: boolean;
|
|
16
|
+
/** Shimmer band width in pixels. Default: 140 */
|
|
17
|
+
gridShimmerLength?: number;
|
|
18
|
+
/** Shimmer speed multiplier (higher = faster). Default: 1 */
|
|
19
|
+
gridShimmerSpeed?: number;
|
|
20
|
+
/** Match shimmer loop to the loading line pulse (cycle + inter-loop pause). */
|
|
21
|
+
gridShimmerSync?: boolean;
|
|
22
|
+
/** Loading animation: `"pulse"` (default traveling pulse) or `"sweep"` (a
|
|
23
|
+
* diagonal shimmer across the skeleton area). Default: `"pulse"`. */
|
|
24
|
+
loadingStyle?: LoadingStyle;
|
|
25
|
+
/** Centered shimmer label text. Default: "Loading" */
|
|
26
|
+
label?: string;
|
|
27
|
+
/** Aspect ratio as "width / height". Default: "2 / 1" */
|
|
28
|
+
aspectRatio?: string;
|
|
29
|
+
/** Additional class name for the container */
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function AreaChartLoading({ margin, stroke, strokeOpacity, gridStroke, gridShimmerStroke, gridShimmer, gridShimmerLength, gridShimmerSpeed, gridShimmerSync, loadingStyle, label, aspectRatio, className, }: AreaChartLoadingProps): import("react").JSX.Element;
|
|
33
|
+
export default AreaChartLoading;
|
|
34
|
+
//# sourceMappingURL=area-chart-loading.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { curveNatural } from "@visx/curve";
|
|
4
|
+
import { useMemo } from "react";
|
|
5
|
+
import { Area } from "./area.js";
|
|
6
|
+
import { AreaChart } from "./area-chart.js";
|
|
7
|
+
import { DEFAULT_SKELETON_DATA_KEY, DEFAULT_SKELETON_POINT_COUNT, generateChartSkeletonData, } from "./generate-chart-skeleton-data.js";
|
|
8
|
+
import { Grid } from "./grid.js";
|
|
9
|
+
const LOADING_DATA_KEY = DEFAULT_SKELETON_DATA_KEY;
|
|
10
|
+
const DEFAULT_LOADING_STROKE = "var(--foreground)";
|
|
11
|
+
const DEFAULT_LOADING_GRID_STROKE = "color-mix(in oklch, var(--chart-grid) 50%, transparent)";
|
|
12
|
+
const DEFAULT_LOADING_GRID_SHIMMER_STROKE = "color-mix(in oklch, var(--foreground) 68%, transparent)";
|
|
13
|
+
const DEFAULT_LOADING_STROKE_OPACITY = 0.5;
|
|
14
|
+
export function AreaChartLoading({ margin, stroke = DEFAULT_LOADING_STROKE, strokeOpacity = DEFAULT_LOADING_STROKE_OPACITY, gridStroke = DEFAULT_LOADING_GRID_STROKE, gridShimmerStroke = DEFAULT_LOADING_GRID_SHIMMER_STROKE, gridShimmer = true, gridShimmerLength, gridShimmerSpeed, gridShimmerSync = false, loadingStyle = "pulse", label = "Loading", aspectRatio = "2 / 1", className = "", }) {
|
|
15
|
+
const data = useMemo(() => generateChartSkeletonData({
|
|
16
|
+
dataKey: DEFAULT_SKELETON_DATA_KEY,
|
|
17
|
+
pointCount: DEFAULT_SKELETON_POINT_COUNT,
|
|
18
|
+
}), []);
|
|
19
|
+
return (_jsxs(AreaChart, { animationDuration: 0, aspectRatio: aspectRatio, className: className, data: data, loadingLabel: label, margin: margin, status: "loading", children: [_jsx(Grid, { horizontal: true, shimmer: loadingStyle === "sweep" ? false : gridShimmer, shimmerLength: gridShimmerLength, shimmerSpeed: gridShimmerSpeed, shimmerStroke: gridShimmerStroke, shimmerSync: gridShimmerSync, stroke: gridStroke }), _jsx(Area, { curve: curveNatural, dataKey: LOADING_DATA_KEY, fadeEdges: false, fill: "transparent", fillOpacity: 0, loading: true, loadingStroke: stroke, loadingStrokeOpacity: strokeOpacity, loadingStyle: loadingStyle, showHighlight: false, showLine: true, stroke: "transparent", strokeWidth: 2 })] }));
|
|
20
|
+
}
|
|
21
|
+
export default AreaChartLoading;
|
|
22
|
+
//# sourceMappingURL=area-chart-loading.js.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Transition } from "motion/react";
|
|
2
|
+
import { type CSSProperties, type ReactNode } from "react";
|
|
3
|
+
import type { Margin } from "./chart-context.js";
|
|
4
|
+
import { type ChartPhase, type ChartStatus } from "./chart-phase.js";
|
|
5
|
+
export interface AreaChartProps {
|
|
6
|
+
/** Data array - each item should have a date field and numeric values */
|
|
7
|
+
data: Record<string, unknown>[];
|
|
8
|
+
/** Key in data for the x-axis (date). Default: "date" */
|
|
9
|
+
xDataKey?: string;
|
|
10
|
+
/** Chart margins */
|
|
11
|
+
margin?: Partial<Margin>;
|
|
12
|
+
/** Animation duration in milliseconds. Default: 1100 */
|
|
13
|
+
animationDuration?: number;
|
|
14
|
+
/** CSS easing for clip-reveal. Default: cubic-bezier(0.85, 0, 0.15, 1) */
|
|
15
|
+
animationEasing?: string;
|
|
16
|
+
/** Motion enter transition (spring or cubic-bezier tween). */
|
|
17
|
+
enterTransition?: Transition;
|
|
18
|
+
/** Signature of motion URL state — triggers reveal replay when it changes. */
|
|
19
|
+
revealSignature?: string;
|
|
20
|
+
/** Aspect ratio as "width / height". Default: "2 / 1" */
|
|
21
|
+
aspectRatio?: string;
|
|
22
|
+
/** Additional class name for the container */
|
|
23
|
+
className?: string;
|
|
24
|
+
/** Loading vs ready — drives chart phase and loading chrome. Default: `"ready"`. */
|
|
25
|
+
status?: ChartStatus;
|
|
26
|
+
/** Centered shimmer label while loading. */
|
|
27
|
+
loadingLabel?: string;
|
|
28
|
+
/** Animate y-domain over this duration (ms) on status transitions. Default: 500. */
|
|
29
|
+
yDomainTweenDuration?: number;
|
|
30
|
+
/** Animate y-domain when status or target domain changes. Default: true */
|
|
31
|
+
yDomainTween?: boolean;
|
|
32
|
+
/** Visible x-domain for brush zoom. */
|
|
33
|
+
xDomain?: [Date, Date];
|
|
34
|
+
/** Full dataset length for x-scale padding when `xDomain` is set. */
|
|
35
|
+
xDomainSlotCount?: number;
|
|
36
|
+
/** Tween y-domain when brush changes the visible x-range. Default: false */
|
|
37
|
+
tweenYDomainOnXDomainChange?: boolean;
|
|
38
|
+
/** Inline container styles (e.g. fixed height for brush strip). */
|
|
39
|
+
style?: CSSProperties;
|
|
40
|
+
/** Fires when the internal chart phase changes (e.g. OG capture readiness). */
|
|
41
|
+
onPhaseChange?: (phase: ChartPhase) => void;
|
|
42
|
+
/** Child components (Area, Grid, ChartTooltip, etc.) */
|
|
43
|
+
children: ReactNode;
|
|
44
|
+
}
|
|
45
|
+
export declare function AreaChart({ data, xDataKey, margin: marginProp, animationDuration, animationEasing, enterTransition, revealSignature, aspectRatio, className, status, loadingLabel, yDomainTweenDuration, yDomainTween, xDomain, xDomainSlotCount, tweenYDomainOnXDomainChange, style, onPhaseChange, children, }: AreaChartProps): import("react").JSX.Element;
|
|
46
|
+
export { Area, type AreaProps } from "./area.js";
|
|
47
|
+
export default AreaChart;
|
|
48
|
+
//# sourceMappingURL=area-chart.d.ts.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ParentSize } from "@visx/responsive";
|
|
4
|
+
import { Children, isValidElement, useCallback, useMemo, useRef, useState, } from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
import { Area } from "./area.js";
|
|
7
|
+
import { ChartLoadingLabel } from "./chart-loading-label.js";
|
|
8
|
+
import { DEFAULT_CHART_STATUS, DEFAULT_Y_DOMAIN_TWEEN_MS, resolveRestingChartPhase, } from "./chart-phase.js";
|
|
9
|
+
import { PatternArea } from "./pattern-area.js";
|
|
10
|
+
import { TimeSeriesChartInner } from "./time-series-chart-shell.js";
|
|
11
|
+
const DEFAULT_MARGIN = { top: 40, right: 40, bottom: 40, left: 40 };
|
|
12
|
+
function extractAreaConfigs(children) {
|
|
13
|
+
const configs = [];
|
|
14
|
+
Children.forEach(children, (child) => {
|
|
15
|
+
if (!isValidElement(child)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const childType = child.type;
|
|
19
|
+
const componentName = typeof child.type === "function" ? childType.displayName || childType.name || "" : "";
|
|
20
|
+
const props = child.props;
|
|
21
|
+
const isPatternArea = componentName === "PatternArea" || child.type === PatternArea;
|
|
22
|
+
const isAreaComponent = componentName === "Area" ||
|
|
23
|
+
child.type === Area ||
|
|
24
|
+
(props && typeof props.dataKey === "string" && props.dataKey.length > 0 && !isPatternArea);
|
|
25
|
+
if (isAreaComponent && props?.dataKey) {
|
|
26
|
+
configs.push({
|
|
27
|
+
dataKey: props.dataKey,
|
|
28
|
+
stroke: props.stroke || props.fill || "var(--chart-line-primary)",
|
|
29
|
+
strokeWidth: props.strokeWidth || 2,
|
|
30
|
+
yAxisId: props.yAxisId,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return configs;
|
|
35
|
+
}
|
|
36
|
+
function ChartInner({ width, height, data, xDataKey, margin, animationDuration, animationEasing, enterTransition, revealSignature, chartStatus, loadingLabel, yDomainTweenDuration, yDomainTween, xDomain, xDomainSlotCount, tweenYDomainOnXDomainChange, children, containerRef, onPhaseChange, }) {
|
|
37
|
+
const lines = useMemo(() => extractAreaConfigs(children), [children]);
|
|
38
|
+
return (_jsx(TimeSeriesChartInner, { animationDuration: animationDuration, animationEasing: animationEasing, chartStatus: chartStatus, clipPathId: "chart-area-grow-clip", containerRef: containerRef, data: data, enterTransition: enterTransition, height: height, lines: lines, loadingLabel: loadingLabel, margin: margin, onPhaseChange: onPhaseChange, revealSignature: revealSignature, tweenYDomainOnXDomainChange: tweenYDomainOnXDomainChange, width: width, xDataKey: xDataKey, xDomain: xDomain, xDomainSlotCount: xDomainSlotCount, yDomainTween: yDomainTween, yDomainTweenDuration: yDomainTweenDuration, children: children }));
|
|
39
|
+
}
|
|
40
|
+
export function AreaChart({ data, xDataKey = "date", margin: marginProp, animationDuration = 1100, animationEasing, enterTransition, revealSignature, aspectRatio = "2 / 1", className = "", status = DEFAULT_CHART_STATUS, loadingLabel, yDomainTweenDuration = DEFAULT_Y_DOMAIN_TWEEN_MS, yDomainTween = true, xDomain, xDomainSlotCount, tweenYDomainOnXDomainChange = false, style, onPhaseChange, children, }) {
|
|
41
|
+
const containerRef = useRef(null);
|
|
42
|
+
const margin = { ...DEFAULT_MARGIN, ...marginProp };
|
|
43
|
+
const [chartPhase, setChartPhase] = useState(() => resolveRestingChartPhase(status));
|
|
44
|
+
const handlePhaseChange = useCallback((phase) => {
|
|
45
|
+
setChartPhase(phase);
|
|
46
|
+
onPhaseChange?.(phase);
|
|
47
|
+
}, [onPhaseChange]);
|
|
48
|
+
const showLoadingLabel = Boolean(loadingLabel?.trim() &&
|
|
49
|
+
(chartPhase === "loading" ||
|
|
50
|
+
chartPhase === "exiting" ||
|
|
51
|
+
chartPhase === "gridTweenReady" ||
|
|
52
|
+
chartPhase === "revealingLoading"));
|
|
53
|
+
return (_jsxs("div", { "data-slot": "area-chart", className: cn("relative w-full", className), ref: containerRef, style: { aspectRatio, touchAction: "none", ...style }, children: [_jsx(ParentSize, { debounceTime: 10, children: ({ width, height }) => (_jsx(ChartInner, { animationDuration: animationDuration, animationEasing: animationEasing, chartStatus: status, containerRef: containerRef, data: data, enterTransition: enterTransition, height: height, loadingLabel: loadingLabel, margin: margin, onPhaseChange: handlePhaseChange, revealSignature: revealSignature, tweenYDomainOnXDomainChange: tweenYDomainOnXDomainChange, width: width, xDataKey: xDataKey, xDomain: xDomain, xDomainSlotCount: xDomainSlotCount, yDomainTween: yDomainTween, yDomainTweenDuration: yDomainTweenDuration, children: children })) }), showLoadingLabel ? (_jsx(ChartLoadingLabel, { exiting: chartPhase !== "loading", text: loadingLabel })) : null] }));
|
|
54
|
+
}
|
|
55
|
+
export { Area } from "./area.js";
|
|
56
|
+
export default AreaChart;
|
|
57
|
+
//# sourceMappingURL=area-chart.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FadeEdges } from "./fade-edges.js";
|
|
2
|
+
interface AreaGradientDefsProps {
|
|
3
|
+
gradientId: string;
|
|
4
|
+
strokeGradientId: string;
|
|
5
|
+
edgeMaskId: string;
|
|
6
|
+
edgeGradientId: string;
|
|
7
|
+
fill: string;
|
|
8
|
+
fillOpacity: number;
|
|
9
|
+
gradientToOpacity: number;
|
|
10
|
+
/** 0–1: where the bottom stop sits (1 = full-height gradient). */
|
|
11
|
+
gradientSpan?: number;
|
|
12
|
+
resolvedStroke: string;
|
|
13
|
+
isPatternFill: boolean;
|
|
14
|
+
fadeEdges: FadeEdges;
|
|
15
|
+
innerWidth: number;
|
|
16
|
+
innerHeight: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function AreaGradientDefs({ gradientId, strokeGradientId, edgeMaskId, edgeGradientId, fill, fillOpacity, gradientToOpacity, gradientSpan, resolvedStroke, isPatternFill, fadeEdges, innerWidth, innerHeight, }: AreaGradientDefsProps): import("react").JSX.Element;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=area-gradient-defs.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { fadeGradientStops, resolveFadeSides, viewportFadeGradientAttrs, } from "./fade-edges.js";
|
|
3
|
+
export function AreaGradientDefs({ gradientId, strokeGradientId, edgeMaskId, edgeGradientId, fill, fillOpacity, gradientToOpacity, gradientSpan = 1, resolvedStroke, isPatternFill, fadeEdges, innerWidth, innerHeight, }) {
|
|
4
|
+
const sides = resolveFadeSides(fadeEdges);
|
|
5
|
+
// Stroke gradient mirrors the area's edge fade so the line doesn't pop in
|
|
6
|
+
// past the faded fill. Skip emitting it when neither edge fades — the line
|
|
7
|
+
// can then paint a solid stroke instead of an unnecessary url(#...) ref.
|
|
8
|
+
const strokeStops = sides.any ? fadeGradientStops(sides) : null;
|
|
9
|
+
const showEdgeMask = sides.any && !isPatternFill;
|
|
10
|
+
const edgeStops = showEdgeMask ? fadeGradientStops(sides) : null;
|
|
11
|
+
const span = Math.min(1, Math.max(0.01, gradientSpan));
|
|
12
|
+
const midOffset = `${span * 100}%`;
|
|
13
|
+
return (_jsxs("defs", { children: [isPatternFill ? null : (_jsxs("linearGradient", { id: gradientId, x1: "0%", x2: "0%", y1: "0%", y2: "100%", children: [_jsx("stop", { offset: "0%", style: { stopColor: fill, stopOpacity: fillOpacity } }), _jsx("stop", { offset: midOffset, style: { stopColor: fill, stopOpacity: gradientToOpacity } }), span < 1 ? (_jsx("stop", { offset: "100%", style: { stopColor: fill, stopOpacity: gradientToOpacity } })) : null] })), strokeStops ? (_jsx("linearGradient", { id: strokeGradientId, ...viewportFadeGradientAttrs(innerWidth), children: strokeStops.map((stop) => (_jsx("stop", { offset: stop.offset, style: { stopColor: resolvedStroke, stopOpacity: stop.opacity } }, stop.offset))) })) : null, edgeStops ? (_jsxs(_Fragment, { children: [_jsx("linearGradient", { id: edgeGradientId, ...viewportFadeGradientAttrs(innerWidth), children: edgeStops.map((stop) => (_jsx("stop", { offset: stop.offset, style: { stopColor: "white", stopOpacity: stop.opacity } }, stop.offset))) }), _jsx("mask", { id: edgeMaskId, children: _jsx("rect", { fill: `url(#${edgeGradientId})`, height: innerHeight, width: innerWidth, x: "0", y: "0" }) })] })) : null] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=area-gradient-defs.js.map
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
type CurveFactory = any;
|
|
2
|
+
import type { LoadingStyle } from "./chart-phase.js";
|
|
3
|
+
import { type FadeEdges } from "./fade-edges.js";
|
|
4
|
+
import { type LineLoadingPulseMode } from "./line-loading-pulse.js";
|
|
5
|
+
import type { SeriesPointMarkerStyle } from "./series-point-marker.js";
|
|
6
|
+
export interface AreaProps {
|
|
7
|
+
/** Key in data to use for y values */
|
|
8
|
+
dataKey: string;
|
|
9
|
+
/** Y-scale group id (Recharts `yAxisId`). Default: `"left"`. */
|
|
10
|
+
yAxisId?: string | number;
|
|
11
|
+
/** Fill color for the area gradient start. Default: var(--chart-line-primary) */
|
|
12
|
+
fill?: string;
|
|
13
|
+
/** Fill opacity at the top of the area. Default: 0.4 */
|
|
14
|
+
fillOpacity?: number;
|
|
15
|
+
/** Stroke color for the line. Default: same as fill */
|
|
16
|
+
stroke?: string;
|
|
17
|
+
/** Stroke width. Default: 2 */
|
|
18
|
+
strokeWidth?: number;
|
|
19
|
+
/** Curve function. Default: curveMonotoneX */
|
|
20
|
+
curve?: CurveFactory;
|
|
21
|
+
/** Whether to animate the area. Default: true */
|
|
22
|
+
animate?: boolean;
|
|
23
|
+
/** Whether to show the stroke line. Default: true */
|
|
24
|
+
showLine?: boolean;
|
|
25
|
+
/** Whether to show highlight segment on hover. Default: true */
|
|
26
|
+
showHighlight?: boolean;
|
|
27
|
+
/** Gradient opacity at bottom (0 = fully transparent). Default: 0 */
|
|
28
|
+
gradientToOpacity?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Vertical extent of the fill gradient (0–1). `1` fades across the full
|
|
31
|
+
* height; lower values compress the gradient toward the top.
|
|
32
|
+
*/
|
|
33
|
+
gradientSpan?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Fade the area fill (and stroke) toward transparent at the chart edges.
|
|
36
|
+
* - `true` fades both edges, `false` disables the fade entirely.
|
|
37
|
+
* - `"left"` / `"right"` fades only that side — useful when the opposite
|
|
38
|
+
* edge butts up against another element you don't want to fade into.
|
|
39
|
+
* Default: false
|
|
40
|
+
*/
|
|
41
|
+
fadeEdges?: FadeEdges;
|
|
42
|
+
/** Render scatter-style circle markers at each data point. Default: false */
|
|
43
|
+
showMarkers?: boolean;
|
|
44
|
+
/** Marker styling (same options as Scatter). */
|
|
45
|
+
markers?: SeriesPointMarkerStyle;
|
|
46
|
+
/**
|
|
47
|
+
* Data index from which the line stroke becomes dashed (inclusive).
|
|
48
|
+
* Useful for projecting incomplete periods, e.g. dashed from yesterday through today.
|
|
49
|
+
*/
|
|
50
|
+
dashFromIndex?: number;
|
|
51
|
+
/** Dash pattern for the tail segment when `dashFromIndex` is set. Default: "6,4" */
|
|
52
|
+
dashArray?: string;
|
|
53
|
+
/** Pulse stroke color while chart is loading. Default: var(--foreground) */
|
|
54
|
+
loadingStroke?: string;
|
|
55
|
+
/** Pulse stroke opacity while chart is loading. Default: 0.5 */
|
|
56
|
+
loadingStrokeOpacity?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Show the loading pulse overlay. Default: follows chart loading phase.
|
|
59
|
+
* Set `false` to disable even during loading.
|
|
60
|
+
*/
|
|
61
|
+
loading?: boolean;
|
|
62
|
+
/** Override pulse animation mode (loop / exit / enter). */
|
|
63
|
+
loadingPulseMode?: LineLoadingPulseMode;
|
|
64
|
+
/**
|
|
65
|
+
* Loading animation while the chart is in loading status: the default
|
|
66
|
+
* traveling `"pulse"`, or a diagonal `"sweep"` shimmer across the skeleton
|
|
67
|
+
* area. Default: `"pulse"`.
|
|
68
|
+
*/
|
|
69
|
+
loadingStyle?: LoadingStyle;
|
|
70
|
+
}
|
|
71
|
+
export declare function Area({ dataKey, yAxisId, fill, fillOpacity, stroke, strokeWidth, curve, animate, showLine, showHighlight, gradientToOpacity, gradientSpan, fadeEdges, showMarkers, markers, dashFromIndex, dashArray, loading, loadingStroke, loadingStrokeOpacity, loadingPulseMode, loadingStyle, }: AreaProps): import("react").JSX.Element;
|
|
72
|
+
export declare namespace Area {
|
|
73
|
+
var displayName: string;
|
|
74
|
+
}
|
|
75
|
+
export default Area;
|
|
76
|
+
//# sourceMappingURL=area.d.ts.map
|