@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,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { X } from "lucide-react";
|
|
5
|
+
import { AnimatePresence, motion, useReducedMotion } from "motion/react";
|
|
6
|
+
import { forwardRef, useCallback, useState } from "react";
|
|
7
|
+
import { cn } from "../lib/cn.js";
|
|
8
|
+
import { Button } from "./button.js";
|
|
9
|
+
/**
|
|
10
|
+
* Dismissible announcement / promo bar — a full-width horizontal strip pinned
|
|
11
|
+
* to the top of a page or section (the "Top Banner" of a billing SDK). Renders
|
|
12
|
+
* an optional leading icon, the message (a `title` + optional `description`, or
|
|
13
|
+
* free-form `children`), an optional right-aligned `action` (a CTA Button or
|
|
14
|
+
* link), and — when `dismissible` — a trailing close button.
|
|
15
|
+
*
|
|
16
|
+
* Colour strategy mirrors {@link Alert}: semantic variants tint the surface
|
|
17
|
+
* wash + border + icon while the body text stays on `fg`/`fg-secondary` (which
|
|
18
|
+
* meet AA against every surface), so contrast is safe across themes/modes
|
|
19
|
+
* without low-chroma coloured body text. The `brand` variant is the exception:
|
|
20
|
+
* it's a solid `bg-primary` promo fill carrying `primary-foreground` text, and
|
|
21
|
+
* everything inside (icon, action, close) inherits that foreground.
|
|
22
|
+
*/
|
|
23
|
+
const bannerVariants = cva("flex w-full items-center gap-x-3 gap-y-1 border-b px-4 py-2.5 text-sm [&>svg]:size-5 [&>svg]:shrink-0", {
|
|
24
|
+
variants: {
|
|
25
|
+
variant: {
|
|
26
|
+
default: "bg-surface-overlay text-fg border-border [&>svg]:text-fg-secondary",
|
|
27
|
+
// Solid primary promo fill; icon/action/close inherit the foreground.
|
|
28
|
+
brand: "bg-primary text-primary-foreground border-transparent [&>svg]:text-primary-foreground",
|
|
29
|
+
info: "bg-info/10 text-fg border-info/30 [&>svg]:text-info",
|
|
30
|
+
success: "bg-success/10 text-fg border-success/30 [&>svg]:text-success",
|
|
31
|
+
warning: "bg-warning/10 text-fg border-warning/30 [&>svg]:text-warning",
|
|
32
|
+
error: "bg-error/10 text-fg border-error/30 [&>svg]:text-error",
|
|
33
|
+
},
|
|
34
|
+
align: {
|
|
35
|
+
start: "text-left",
|
|
36
|
+
// Centre the message block; the action + close are still pinned to the
|
|
37
|
+
// far right via `ml-auto`, so "centre" balances the message in the gap.
|
|
38
|
+
center: "text-center",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
defaultVariants: { variant: "default", align: "center" },
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Collapse + fade used on dismiss. Honours `prefers-reduced-motion`: opted-out
|
|
45
|
+
* users get an instant unmount (the variant resolves to a no-op below).
|
|
46
|
+
*/
|
|
47
|
+
const COLLAPSE = {
|
|
48
|
+
initial: { opacity: 0, height: 0 },
|
|
49
|
+
animate: { opacity: 1, height: "auto" },
|
|
50
|
+
exit: { opacity: 0, height: 0 },
|
|
51
|
+
};
|
|
52
|
+
export const Banner = forwardRef(({ className, variant, align, title, description, icon, action, dismissible = true, onDismiss, open: openProp, defaultOpen = true, label = "Announcement", children, ...props }, ref) => {
|
|
53
|
+
const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
|
|
54
|
+
const isControlled = openProp !== undefined;
|
|
55
|
+
const isOpen = isControlled ? openProp : uncontrolledOpen;
|
|
56
|
+
const prefersReducedMotion = useReducedMotion();
|
|
57
|
+
const handleDismiss = useCallback(() => {
|
|
58
|
+
if (!isControlled) {
|
|
59
|
+
setUncontrolledOpen(false);
|
|
60
|
+
}
|
|
61
|
+
onDismiss?.();
|
|
62
|
+
}, [isControlled, onDismiss]);
|
|
63
|
+
// Brand fill wants action/close on the primary foreground; tinted variants
|
|
64
|
+
// keep the muted-foreground treatment from the shared Button styles.
|
|
65
|
+
const onBrand = variant === "brand";
|
|
66
|
+
return (_jsx(AnimatePresence, { initial: false, children: isOpen ? (_jsx(motion.div
|
|
67
|
+
// The collapse wrapper owns overflow so the height tween clips cleanly;
|
|
68
|
+
// the visual bar (border/padding/colour) lives on the inner element.
|
|
69
|
+
, {
|
|
70
|
+
// The collapse wrapper owns overflow so the height tween clips cleanly;
|
|
71
|
+
// the visual bar (border/padding/colour) lives on the inner element.
|
|
72
|
+
initial: prefersReducedMotion ? false : COLLAPSE.initial, animate: prefersReducedMotion ? undefined : COLLAPSE.animate, exit: prefersReducedMotion ? undefined : COLLAPSE.exit, transition: { duration: 0.2, ease: [0.16, 1, 0.3, 1] }, className: "overflow-hidden", children: _jsxs("section", { ref: ref, "aria-label": label, "data-slot": "banner", className: cn(bannerVariants({ variant, align }), className), ...props, children: [icon, _jsxs("div", { "data-slot": "banner-content", className: cn("flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-0.5", align === "center" && "justify-center"), children: [title ? (_jsx("span", { "data-slot": "banner-title", className: "font-medium", children: title })) : null, description ? (_jsx("span", { "data-slot": "banner-description", className: cn(onBrand ? "text-primary-foreground/85" : "text-fg-secondary"), children: description })) : null, children] }), action ? (_jsx("div", { "data-slot": "banner-action", className: "ml-auto flex shrink-0 items-center gap-2", children: action })) : null, dismissible ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", "aria-label": "Dismiss", "data-slot": "banner-dismiss", onClick: handleDismiss, className: cn("shrink-0",
|
|
73
|
+
// Without an `action`, the close button absorbs the auto margin
|
|
74
|
+
// so it still sits flush right.
|
|
75
|
+
!action && "ml-auto", onBrand &&
|
|
76
|
+
"text-primary-foreground hover:bg-primary-foreground/15 hover:text-primary-foreground"), children: _jsx(X, { "aria-hidden": "true" }) })) : null] }) })) : null }));
|
|
77
|
+
});
|
|
78
|
+
Banner.displayName = "Banner";
|
|
79
|
+
export { bannerVariants };
|
|
80
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
import { type ChartSeries } from "./chart.js";
|
|
3
|
+
export interface BarChartProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
data: Record<string, unknown>[];
|
|
5
|
+
xKey?: string;
|
|
6
|
+
series: ChartSeries[];
|
|
7
|
+
stacked?: boolean;
|
|
8
|
+
formatValue?: (value: number, name: string) => string;
|
|
9
|
+
}
|
|
10
|
+
export declare function BarChart({ data, xKey, series, stacked, formatValue, className, ...props }: BarChartProps): import("react").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=bar-chart.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Bar, CartesianGrid, BarChart as RechartsBarChart, XAxis } from "recharts";
|
|
3
|
+
import { cn } from "../lib/cn.js";
|
|
4
|
+
import { ChartContainer, ChartCursor, ChartTooltip, ChartTooltipContent, chartSeriesConfig, } from "./chart.js";
|
|
5
|
+
export function BarChart({ data, xKey = "month", series, stacked = false, formatValue, className, ...props }) {
|
|
6
|
+
const config = chartSeriesConfig(series);
|
|
7
|
+
return (_jsx("div", { "data-slot": "bar-chart", className: cn("h-64 w-full", className), ...props, children: _jsx(ChartContainer, { config: config, className: "h-full w-full", children: _jsxs(RechartsBarChart, { accessibilityLayer: true, data: data, margin: { left: 8, right: 8, top: 8 }, children: [_jsx(CartesianGrid, { vertical: false, strokeDasharray: "4 4" }), _jsx(XAxis, { dataKey: xKey, tickLine: false, axisLine: false, tickMargin: 12 }), _jsx(ChartTooltip, { cursor: _jsx(ChartCursor, { labelKey: xKey }), content: _jsx(ChartTooltipContent, { formatValue: formatValue }) }), series.map((item) => (_jsx(Bar, { dataKey: item.key, fill: `var(--color-${item.key})`, radius: 4, stackId: stacked ? "stack" : undefined, animationDuration: 1100 }, item.key)))] }) }) }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=bar-chart.js.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type HTMLAttributes } from "react";
|
|
2
|
+
export interface BorderBeamProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Length of the luminous head, in pixels. Also sets the corner radius of the
|
|
5
|
+
* travel path so the beam rounds the corners smoothly. Larger values read as a
|
|
6
|
+
* longer comet trail. Defaults to `60`.
|
|
7
|
+
*/
|
|
8
|
+
size?: number;
|
|
9
|
+
/** Seconds for one full lap around the perimeter. Defaults to `8` (a calm, premium drift). */
|
|
10
|
+
duration?: number;
|
|
11
|
+
/**
|
|
12
|
+
* Phase offset in seconds — the beam starts as if it had already been running
|
|
13
|
+
* for this long, so two beams on stacked cards can be staggered around the
|
|
14
|
+
* loop instead of moving in lockstep. Defaults to `0`.
|
|
15
|
+
*/
|
|
16
|
+
delay?: number;
|
|
17
|
+
/** Colour of the leading edge of the beam. Defaults to `var(--cronus-fg)`. */
|
|
18
|
+
colorFrom?: string;
|
|
19
|
+
/** Colour the trail fades through before it dissolves. Defaults to transparent. */
|
|
20
|
+
colorTo?: string;
|
|
21
|
+
/** Thickness of the border band the beam rides in, in pixels. Defaults to `1` (hairline). */
|
|
22
|
+
borderWidth?: number;
|
|
23
|
+
/** Travel counter-clockwise instead of clockwise. Defaults to `false`. */
|
|
24
|
+
reverse?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A single bright light head that continuously orbits the element's border, like
|
|
28
|
+
* a comet tracing the perimeter of a card or CTA. The head rides the border via
|
|
29
|
+
* CSS Motion Path (`offset-path`/`offset-distance`) and is clipped to a thin
|
|
30
|
+
* border band with a two-layer mask, so it reads as a beam *on* the border rather
|
|
31
|
+
* than a dot floating on the edge. This is distinct from the static
|
|
32
|
+
* `GradientBorder`: nothing is painted until the beam sweeps past, giving a live,
|
|
33
|
+
* premium shimmer.
|
|
34
|
+
*
|
|
35
|
+
* **Performance:** the whole effect is one composited CSS animation on
|
|
36
|
+
* `offset-distance` (hinted with `will-change`) — no JS, no timers, no re-renders;
|
|
37
|
+
* every knob (size, duration, delay, colours, thickness) rides a CSS variable.
|
|
38
|
+
*
|
|
39
|
+
* **Accessibility & motion:** the beam layer is purely decorative
|
|
40
|
+
* (`aria-hidden`), sits behind the content, and is fully suppressed under
|
|
41
|
+
* `prefers-reduced-motion: reduce` (`motion-reduce:hidden`) — it carries no
|
|
42
|
+
* information, so reduced-motion visitors simply see the card with no animation.
|
|
43
|
+
*/
|
|
44
|
+
export declare const BorderBeam: import("react").ForwardRefExoticComponent<BorderBeamProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
45
|
+
//# sourceMappingURL=border-beam.d.ts.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../lib/cn.js";
|
|
4
|
+
// Two-layer mask: layer 1 (clipped to padding-box) hides, layer 2 (clipped to
|
|
5
|
+
// border-box) shows; `mask-composite: intersect` leaves only the border band, so
|
|
6
|
+
// the comet is visible strictly along the perimeter and never over the content.
|
|
7
|
+
const BEAM_MASK_IMAGE = "linear-gradient(transparent, transparent), linear-gradient(#000, #000)";
|
|
8
|
+
/**
|
|
9
|
+
* A single bright light head that continuously orbits the element's border, like
|
|
10
|
+
* a comet tracing the perimeter of a card or CTA. The head rides the border via
|
|
11
|
+
* CSS Motion Path (`offset-path`/`offset-distance`) and is clipped to a thin
|
|
12
|
+
* border band with a two-layer mask, so it reads as a beam *on* the border rather
|
|
13
|
+
* than a dot floating on the edge. This is distinct from the static
|
|
14
|
+
* `GradientBorder`: nothing is painted until the beam sweeps past, giving a live,
|
|
15
|
+
* premium shimmer.
|
|
16
|
+
*
|
|
17
|
+
* **Performance:** the whole effect is one composited CSS animation on
|
|
18
|
+
* `offset-distance` (hinted with `will-change`) — no JS, no timers, no re-renders;
|
|
19
|
+
* every knob (size, duration, delay, colours, thickness) rides a CSS variable.
|
|
20
|
+
*
|
|
21
|
+
* **Accessibility & motion:** the beam layer is purely decorative
|
|
22
|
+
* (`aria-hidden`), sits behind the content, and is fully suppressed under
|
|
23
|
+
* `prefers-reduced-motion: reduce` (`motion-reduce:hidden`) — it carries no
|
|
24
|
+
* information, so reduced-motion visitors simply see the card with no animation.
|
|
25
|
+
*/
|
|
26
|
+
export const BorderBeam = forwardRef(({ className, children, size = 60, duration = 8, delay = 0, colorFrom = "var(--cronus-fg)", colorTo = "transparent", borderWidth = 1, reverse = false, style, ...props }, ref) => {
|
|
27
|
+
const beamStyle = {
|
|
28
|
+
"--beam-size": `${size}px`,
|
|
29
|
+
"--beam-duration": `${duration}s`,
|
|
30
|
+
// Negative delay offsets the phase without an initial pause, so staggered
|
|
31
|
+
// beams are already mid-lap on first paint.
|
|
32
|
+
"--beam-delay": `${-delay}s`,
|
|
33
|
+
"--beam-border-width": `${borderWidth}px`,
|
|
34
|
+
"--beam-color-from": colorFrom,
|
|
35
|
+
"--beam-color-to": colorTo,
|
|
36
|
+
};
|
|
37
|
+
return (_jsxs("div", { ref: ref, "data-slot": "border-beam", className: cn("relative rounded-2xl", className), style: { ...beamStyle, ...style }, ...props, children: [_jsxs("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-0 rounded-[inherit] motion-reduce:hidden", style: {
|
|
38
|
+
border: "var(--beam-border-width) solid transparent",
|
|
39
|
+
maskClip: "padding-box, border-box",
|
|
40
|
+
maskComposite: "intersect",
|
|
41
|
+
maskImage: BEAM_MASK_IMAGE,
|
|
42
|
+
WebkitMaskImage: BEAM_MASK_IMAGE,
|
|
43
|
+
}, children: [_jsx("style", { children: "@keyframes cronus-border-beam{from{offset-distance:0%}to{offset-distance:100%}}" }), _jsx("div", { className: cn("absolute aspect-square w-[var(--beam-size)]", "[offset-path:rect(0_auto_auto_0_round_var(--beam-size))]", "[animation-name:cronus-border-beam] [animation-duration:var(--beam-duration)]", "[animation-timing-function:linear] [animation-iteration-count:infinite]", "[animation-delay:var(--beam-delay)] [will-change:offset-distance]", reverse && "[animation-direction:reverse]"), style: {
|
|
44
|
+
background: "linear-gradient(to left, var(--beam-color-from), var(--beam-color-to), transparent)",
|
|
45
|
+
} })] }), _jsx("div", { className: "relative", children: children })] }));
|
|
46
|
+
});
|
|
47
|
+
BorderBeam.displayName = "BorderBeam";
|
|
48
|
+
//# sourceMappingURL=border-beam.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type AnchorHTMLAttributes, type HTMLAttributes, type LiHTMLAttributes, type OlHTMLAttributes } from "react";
|
|
2
|
+
export declare const Breadcrumb: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLElement>>;
|
|
3
|
+
export declare const BreadcrumbList: import("react").ForwardRefExoticComponent<OlHTMLAttributes<HTMLOListElement> & import("react").RefAttributes<HTMLOListElement>>;
|
|
4
|
+
export declare const BreadcrumbItem: import("react").ForwardRefExoticComponent<LiHTMLAttributes<HTMLLIElement> & import("react").RefAttributes<HTMLLIElement>>;
|
|
5
|
+
export interface BreadcrumbLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
6
|
+
asChild?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const BreadcrumbLink: import("react").ForwardRefExoticComponent<BreadcrumbLinkProps & import("react").RefAttributes<HTMLAnchorElement>>;
|
|
9
|
+
export declare const BreadcrumbPage: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
10
|
+
export declare const BreadcrumbSeparator: import("react").ForwardRefExoticComponent<LiHTMLAttributes<HTMLLIElement> & import("react").RefAttributes<HTMLLIElement>>;
|
|
11
|
+
export declare const BreadcrumbEllipsis: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
12
|
+
//# sourceMappingURL=breadcrumb.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
+
import { ChevronRight, MoreHorizontal } from "lucide-react";
|
|
4
|
+
import { forwardRef, } from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
export const Breadcrumb = forwardRef(({ ...props }, ref) => {
|
|
7
|
+
return _jsx("nav", { ref: ref, "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
|
|
8
|
+
});
|
|
9
|
+
Breadcrumb.displayName = "Breadcrumb";
|
|
10
|
+
export const BreadcrumbList = forwardRef(({ className, ...props }, ref) => {
|
|
11
|
+
return (_jsx("ol", { ref: ref, "data-slot": "breadcrumb-list", className: cn("flex flex-wrap items-center gap-1.5 text-sm text-fg-tertiary", className), ...props }));
|
|
12
|
+
});
|
|
13
|
+
BreadcrumbList.displayName = "BreadcrumbList";
|
|
14
|
+
export const BreadcrumbItem = forwardRef(({ className, ...props }, ref) => {
|
|
15
|
+
return (_jsx("li", { ref: ref, "data-slot": "breadcrumb-item", className: cn("inline-flex items-center gap-1.5", className), ...props }));
|
|
16
|
+
});
|
|
17
|
+
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
18
|
+
export const BreadcrumbLink = forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
19
|
+
const Comp = asChild ? Slot : "a";
|
|
20
|
+
return (_jsx(Comp, { ref: ref, "data-slot": "breadcrumb-link", className: cn("transition-colors hover:text-fg", className), ...props }));
|
|
21
|
+
});
|
|
22
|
+
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
23
|
+
export const BreadcrumbPage = forwardRef(({ className, ...props }, ref) => {
|
|
24
|
+
return (_jsx("span", { ref: ref, "aria-current": "page", "data-slot": "breadcrumb-page", className: cn("font-normal text-fg", className), ...props }));
|
|
25
|
+
});
|
|
26
|
+
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
27
|
+
export const BreadcrumbSeparator = forwardRef(({ className, children, ...props }, ref) => {
|
|
28
|
+
return (_jsx("li", { ref: ref, role: "presentation", "aria-hidden": "true", "data-slot": "breadcrumb-separator", className: cn("[&_svg]:size-3.5", className), ...props, children: children ?? _jsx(ChevronRight, {}) }));
|
|
29
|
+
});
|
|
30
|
+
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
31
|
+
export const BreadcrumbEllipsis = forwardRef(({ className, ...props }, ref) => {
|
|
32
|
+
return (_jsxs("span", { ref: ref, role: "presentation", "aria-hidden": "true", "data-slot": "breadcrumb-ellipsis", className: cn("flex items-center justify-center", className), ...props, children: [_jsx(MoreHorizontal, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "More" })] }));
|
|
33
|
+
});
|
|
34
|
+
BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
|
|
35
|
+
//# sourceMappingURL=breadcrumb.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type HTMLAttributes } from "react";
|
|
2
|
+
export interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Layout direction of the grouped buttons. */
|
|
4
|
+
orientation?: "horizontal" | "vertical";
|
|
5
|
+
}
|
|
6
|
+
export declare const ButtonGroup: import("react").ForwardRefExoticComponent<ButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
7
|
+
//# sourceMappingURL=button-group.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../lib/cn.js";
|
|
4
|
+
export const ButtonGroup = forwardRef(({ className, orientation = "horizontal", ...props }, ref) => {
|
|
5
|
+
return (_jsx("div", { ref: ref, role: "group", "data-slot": "button-group", "data-orientation": orientation, className: cn("inline-flex", orientation === "horizontal"
|
|
6
|
+
? "flex-row [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none [&>*:not(:first-child)]:-ml-px"
|
|
7
|
+
: "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none [&>*:not(:first-child)]:-mt-px", "[&>*:focus-visible]:relative [&>*:focus-visible]:z-10", className), ...props }));
|
|
8
|
+
});
|
|
9
|
+
ButtonGroup.displayName = "ButtonGroup";
|
|
10
|
+
//# sourceMappingURL=button-group.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import { type ButtonHTMLAttributes } from "react";
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "link" | "destructive" | "primary" | "secondary" | "outline" | "ghost" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | "lg" | "icon" | "icon-sm" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
export { buttonVariants };
|
|
12
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { forwardRef } from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition-[background,border-color,box-shadow,transform,opacity] duration-150 ease-[var(--ease-out-quart)] outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base disabled:opacity-50 disabled:pointer-events-none active:scale-[0.98] [&_svg]:shrink-0 [&_svg]:pointer-events-none", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
primary: "bg-primary text-primary-foreground shadow-xs hover:opacity-90",
|
|
10
|
+
secondary: "bg-surface-overlay text-fg border border-border hover:border-border-strong",
|
|
11
|
+
outline: "border border-border bg-transparent text-fg shadow-xs hover:bg-surface-overlay",
|
|
12
|
+
ghost: "text-fg-secondary hover:bg-surface-overlay hover:text-fg",
|
|
13
|
+
// `text-white` on the raw `error` token fails AA (≥4.5:1) in every dark
|
|
14
|
+
// theme (error is a light rose ~3.7:1). Darkening the surface toward
|
|
15
|
+
// black lifts every theme/mode above 4.5:1 (min 6.63:1) while staying
|
|
16
|
+
// theme-relative.
|
|
17
|
+
destructive: "bg-[color-mix(in_oklch,var(--cronus-error),black_30%)] text-white hover:opacity-90 shadow-xs",
|
|
18
|
+
// `text-primary-strong` (not `text-primary`): a link is small body text,
|
|
19
|
+
// and the raw brand primary reads <4.5:1 on surface-base in the bright
|
|
20
|
+
// light themes; the -strong variant is the AA-tuned same-hue text color.
|
|
21
|
+
link: "text-primary-strong underline-offset-4 hover:underline",
|
|
22
|
+
},
|
|
23
|
+
size: {
|
|
24
|
+
sm: "h-8 gap-1.5 px-3 text-xs [&_svg]:size-3.5",
|
|
25
|
+
md: "h-10 px-4 [&_svg]:size-4",
|
|
26
|
+
lg: "h-11 px-6 text-base [&_svg]:size-4",
|
|
27
|
+
icon: "size-9 [&_svg]:size-4",
|
|
28
|
+
"icon-sm": "size-8 [&_svg]:size-3.5",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
defaultVariants: { variant: "primary", size: "md" },
|
|
32
|
+
});
|
|
33
|
+
export const Button = forwardRef(({ className, variant, size, asChild = false, type, ...props }, ref) => {
|
|
34
|
+
const Comp = asChild ? Slot : "button";
|
|
35
|
+
return (_jsx(Comp, { ref: ref, "data-slot": "button", "data-variant": variant ?? "primary", type: asChild ? undefined : (type ?? "button"), className: cn(buttonVariants({ variant, size }), className), ...props }));
|
|
36
|
+
});
|
|
37
|
+
Button.displayName = "Button";
|
|
38
|
+
export { buttonVariants };
|
|
39
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DayPicker } from "react-day-picker";
|
|
2
|
+
export type CalendarProps = React.ComponentProps<typeof DayPicker>;
|
|
3
|
+
export declare function Calendar({ className, classNames, components, showOutsideDays, ...props }: CalendarProps): import("react").JSX.Element;
|
|
4
|
+
export declare namespace Calendar {
|
|
5
|
+
var displayName: string;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=calendar.d.ts.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { ChevronDown, ChevronLeft, ChevronRight, ChevronUp } from "lucide-react";
|
|
4
|
+
import { DayButton, DayPicker } from "react-day-picker";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
import { buttonVariants } from "./button.js";
|
|
7
|
+
/** Navigation (and dropdown) chevron, sized to match the v8 icons. */
|
|
8
|
+
function CalendarChevron({ orientation = "left" }) {
|
|
9
|
+
const Icon = {
|
|
10
|
+
up: ChevronUp,
|
|
11
|
+
down: ChevronDown,
|
|
12
|
+
left: ChevronLeft,
|
|
13
|
+
right: ChevronRight,
|
|
14
|
+
}[orientation];
|
|
15
|
+
return _jsx(Icon, { className: "size-4" });
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* react-day-picker v9+ hangs the selection/flag modifiers on the grid cell
|
|
19
|
+
* (`td`) instead of the day button, while our ghost-variant button paints its
|
|
20
|
+
* own text colour on top. To keep the established look (rounded primary chip
|
|
21
|
+
* for selected days, muted outside/disabled days) the modifier styling is
|
|
22
|
+
* re-applied on the button itself, where `cn` resolves conflicts
|
|
23
|
+
* deterministically.
|
|
24
|
+
*/
|
|
25
|
+
function CalendarDayButton({ className, ...props }) {
|
|
26
|
+
const { modifiers } = props;
|
|
27
|
+
return (_jsx(DayButton, { ...props, className: cn(className, modifiers.today && "bg-surface-overlay text-fg", modifiers.outside && "day-outside text-fg-muted", modifiers.disabled && "text-fg-muted opacity-60",
|
|
28
|
+
// Range middles stay transparent so the cell's overlay strip shows.
|
|
29
|
+
modifiers.range_middle && "bg-transparent text-fg opacity-100 hover:bg-transparent", modifiers.selected &&
|
|
30
|
+
!modifiers.range_middle &&
|
|
31
|
+
"bg-primary text-primary-foreground opacity-100 hover:bg-primary") }));
|
|
32
|
+
}
|
|
33
|
+
export function Calendar({ className, classNames, components, showOutsideDays = true, ...props }) {
|
|
34
|
+
return (_jsx(DayPicker
|
|
35
|
+
// react-day-picker DayPickerProps does not extend HTMLAttributes, so the
|
|
36
|
+
// data-slot marker rides on the "calendar" class rather than a typed attribute.
|
|
37
|
+
, {
|
|
38
|
+
// react-day-picker DayPickerProps does not extend HTMLAttributes, so the
|
|
39
|
+
// data-slot marker rides on the "calendar" class rather than a typed attribute.
|
|
40
|
+
showOutsideDays: showOutsideDays, className: cn("calendar p-3", className), classNames: {
|
|
41
|
+
months: "relative flex flex-col sm:flex-row gap-4",
|
|
42
|
+
month: "flex flex-col gap-4",
|
|
43
|
+
month_caption: "flex justify-center pt-1 relative items-center",
|
|
44
|
+
caption_label: "text-sm font-medium text-fg",
|
|
45
|
+
// v9+ wraps both buttons in a single <nav>; it overlays the caption row
|
|
46
|
+
// (out of flow) so the buttons keep their absolute logical offsets.
|
|
47
|
+
nav: "absolute inset-x-0 top-0 flex items-center gap-1",
|
|
48
|
+
// Logical (start/end) utilities so nav buttons and range rounding
|
|
49
|
+
// follow the writing direction under dir="rtl".
|
|
50
|
+
button_previous: cn(buttonVariants({ variant: "outline" }), "size-7 p-0 opacity-60 hover:opacity-100 absolute start-1 top-0"),
|
|
51
|
+
button_next: cn(buttonVariants({ variant: "outline" }), "size-7 p-0 opacity-60 hover:opacity-100 absolute end-1 top-0"),
|
|
52
|
+
month_grid: "w-full border-collapse space-y-1",
|
|
53
|
+
weekdays: "flex",
|
|
54
|
+
weekday: "text-fg-tertiary rounded-md w-9 font-normal text-xs",
|
|
55
|
+
week: "flex w-full mt-2",
|
|
56
|
+
// The cell itself now carries `aria-selected`/`data-*` state (the v8
|
|
57
|
+
// :has() hooks are gone), so the range strip + rounding read those.
|
|
58
|
+
day: "relative p-0 text-center text-sm focus-within:relative focus-within:z-20 aria-selected:bg-surface-overlay data-outside:aria-selected:bg-surface-overlay/50 first:aria-selected:rounded-s-md last:aria-selected:rounded-e-md",
|
|
59
|
+
day_button: cn(buttonVariants({ variant: "ghost" }), "size-9 p-0 font-normal"),
|
|
60
|
+
range_start: "day-range-start",
|
|
61
|
+
range_end: "day-range-end rounded-e-md",
|
|
62
|
+
hidden: "invisible",
|
|
63
|
+
...classNames,
|
|
64
|
+
}, components: {
|
|
65
|
+
Chevron: CalendarChevron,
|
|
66
|
+
DayButton: CalendarDayButton,
|
|
67
|
+
...components,
|
|
68
|
+
}, ...props }));
|
|
69
|
+
}
|
|
70
|
+
Calendar.displayName = "Calendar";
|
|
71
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
export interface CandlestickPoint {
|
|
3
|
+
date: string;
|
|
4
|
+
open: number;
|
|
5
|
+
high: number;
|
|
6
|
+
low: number;
|
|
7
|
+
close: number;
|
|
8
|
+
}
|
|
9
|
+
export interface CandlestickChartProps extends HTMLAttributes<HTMLDivElement> {
|
|
10
|
+
data: CandlestickPoint[];
|
|
11
|
+
}
|
|
12
|
+
export declare function CandlestickChart({ data, className, ...props }: CandlestickChartProps): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=candlestick-chart.d.ts.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { CartesianGrid, ComposedChart, Scatter, usePlotArea, useXAxisScale, useYAxisScale, XAxis, YAxis, } from "recharts";
|
|
4
|
+
import { cn } from "../lib/cn.js";
|
|
5
|
+
import { ChartContainer, ChartCursor, ChartTooltip, ChartTooltipContent } from "./chart.js";
|
|
6
|
+
function ohlcDomain(data) {
|
|
7
|
+
const first = data[0];
|
|
8
|
+
if (!first)
|
|
9
|
+
return [0, 1];
|
|
10
|
+
let min = first.low;
|
|
11
|
+
let max = first.high;
|
|
12
|
+
for (const point of data) {
|
|
13
|
+
if (point.low < min)
|
|
14
|
+
min = point.low;
|
|
15
|
+
if (point.high > max)
|
|
16
|
+
max = point.high;
|
|
17
|
+
}
|
|
18
|
+
const pad = Math.max(2, (max - min) * 0.08);
|
|
19
|
+
return [min - pad, max + pad];
|
|
20
|
+
}
|
|
21
|
+
/** Recharts 3 calls Scatter `shape` as a function, so this cannot use hooks. */
|
|
22
|
+
function CandleHit({ cx, cy }) {
|
|
23
|
+
if (cx == null || cy == null)
|
|
24
|
+
return null;
|
|
25
|
+
return _jsx("rect", { x: cx - 8, y: cy - 24, width: 16, height: 48, fill: "transparent" });
|
|
26
|
+
}
|
|
27
|
+
function CloseTooltip(props) {
|
|
28
|
+
return (_jsx(ChartTooltipContent, { ...props, payload: props.payload?.filter((item) => String(item.dataKey) === "close") }));
|
|
29
|
+
}
|
|
30
|
+
function CandleMarks({ data }) {
|
|
31
|
+
const xScale = useXAxisScale();
|
|
32
|
+
const yScale = useYAxisScale();
|
|
33
|
+
const plot = usePlotArea();
|
|
34
|
+
if (!xScale || !yScale || data.length === 0)
|
|
35
|
+
return null;
|
|
36
|
+
const step = plot && data.length > 0 ? plot.width / data.length : 16;
|
|
37
|
+
const bodyW = Math.max(4, Math.min(12, step * 0.5));
|
|
38
|
+
return (_jsx("g", { "data-slot": "candlestick-marks", children: data.map((point) => {
|
|
39
|
+
const cx = xScale(point.date, { position: "middle" });
|
|
40
|
+
const yHigh = yScale(point.high);
|
|
41
|
+
const yLow = yScale(point.low);
|
|
42
|
+
const yOpen = yScale(point.open);
|
|
43
|
+
const yClose = yScale(point.close);
|
|
44
|
+
if (cx == null ||
|
|
45
|
+
yHigh == null ||
|
|
46
|
+
yLow == null ||
|
|
47
|
+
yOpen == null ||
|
|
48
|
+
yClose == null ||
|
|
49
|
+
!Number.isFinite(cx) ||
|
|
50
|
+
!Number.isFinite(yHigh) ||
|
|
51
|
+
!Number.isFinite(yLow) ||
|
|
52
|
+
!Number.isFinite(yOpen) ||
|
|
53
|
+
!Number.isFinite(yClose)) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const up = point.close >= point.open;
|
|
57
|
+
const color = up ? "var(--cronus-success)" : "var(--cronus-error)";
|
|
58
|
+
const bodyTop = Math.min(yOpen, yClose);
|
|
59
|
+
const bodyH = Math.max(2, Math.abs(yClose - yOpen));
|
|
60
|
+
return (_jsxs("g", { children: [_jsx("line", { x1: cx, x2: cx, y1: yHigh, y2: yLow, stroke: color, strokeWidth: 1 }), _jsx("rect", { x: cx - bodyW / 2, y: bodyTop, width: bodyW, height: bodyH, fill: color, rx: 1 })] }, point.date));
|
|
61
|
+
}) }));
|
|
62
|
+
}
|
|
63
|
+
export function CandlestickChart({ data, className, ...props }) {
|
|
64
|
+
return (_jsx("div", { "data-slot": "candlestick-chart", className: cn("h-64 w-full", className), ...props, children: _jsx(ChartContainer, { config: { close: { label: "Close", color: "var(--cronus-chart-1)" } }, className: "h-full w-full", children: _jsxs(ComposedChart, { data: data, margin: { left: 8, right: 8, top: 8 }, children: [_jsx(CartesianGrid, { vertical: false, strokeDasharray: "4 4" }), _jsx(XAxis, { dataKey: "date", tickLine: false, axisLine: false, tickMargin: 12, minTickGap: 24 }), _jsx(YAxis, { hide: true, domain: ohlcDomain(data) }), _jsx(ChartTooltip, { cursor: _jsx(ChartCursor, { labelKey: "date", showAxisLabel: false }), content: _jsx(CloseTooltip, {}) }), _jsx(Scatter, { dataKey: "close", shape: CandleHit, legendType: "none", isAnimationActive: false }), _jsx(CandleMarks, { data: data })] }) }) }));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=candlestick-chart.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode, type Ref } from "react";
|
|
2
|
+
export interface CardStackItem {
|
|
3
|
+
/** Stable identity used as the React key and the accessible name fallback. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Visible card body. */
|
|
6
|
+
content: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export interface CardStackProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
|
|
9
|
+
ref?: Ref<HTMLElement>;
|
|
10
|
+
items: CardStackItem[];
|
|
11
|
+
/**
|
|
12
|
+
* Accessible name for the stack. Defaults to `"Card stack"`.
|
|
13
|
+
*/
|
|
14
|
+
labels?: {
|
|
15
|
+
region?: string;
|
|
16
|
+
next?: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A fanned stack of cards. Click or press ArrowRight / Space on the front
|
|
21
|
+
* card to cycle it to the back. Reduced-motion visitors keep the same
|
|
22
|
+
* stacking, without the slide.
|
|
23
|
+
*/
|
|
24
|
+
export declare function CardStack({ ref, className, items, labels, ...props }: CardStackProps): import("react").JSX.Element;
|
|
25
|
+
export declare namespace CardStack {
|
|
26
|
+
var displayName: string;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=card-stack.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { motion, useReducedMotion } from "motion/react";
|
|
4
|
+
import { useCallback, useId, useState, } from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
/**
|
|
7
|
+
* A fanned stack of cards. Click or press ArrowRight / Space on the front
|
|
8
|
+
* card to cycle it to the back. Reduced-motion visitors keep the same
|
|
9
|
+
* stacking, without the slide.
|
|
10
|
+
*/
|
|
11
|
+
export function CardStack({ ref, className, items, labels, ...props }) {
|
|
12
|
+
const reduce = !!useReducedMotion();
|
|
13
|
+
const labelId = useId();
|
|
14
|
+
const [order, setOrder] = useState(() => items.map((item) => item.id));
|
|
15
|
+
const regionLabel = labels?.region ?? "Card stack";
|
|
16
|
+
const nextLabel = labels?.next ?? "Show next card";
|
|
17
|
+
const cycle = useCallback(() => {
|
|
18
|
+
setOrder((current) => {
|
|
19
|
+
if (current.length < 2)
|
|
20
|
+
return current;
|
|
21
|
+
const [first, ...rest] = current;
|
|
22
|
+
return first === undefined ? current : [...rest, first];
|
|
23
|
+
});
|
|
24
|
+
}, []);
|
|
25
|
+
const onKeyDown = useCallback((event) => {
|
|
26
|
+
if (event.key === "Enter" || event.key === " " || event.key === "ArrowRight") {
|
|
27
|
+
event.preventDefault();
|
|
28
|
+
cycle();
|
|
29
|
+
}
|
|
30
|
+
}, [cycle]);
|
|
31
|
+
const lookup = new Map(items.map((item) => [item.id, item]));
|
|
32
|
+
const visible = order
|
|
33
|
+
.map((id) => lookup.get(id))
|
|
34
|
+
.filter((item) => item !== undefined);
|
|
35
|
+
return (_jsxs("section", { ref: ref, "data-slot": "card-stack", "aria-labelledby": labelId, className: cn("relative isolate h-56 w-full max-w-sm", className), ...props, children: [_jsx("span", { id: labelId, className: "sr-only", children: regionLabel }), visible.map((item, index) => {
|
|
36
|
+
const isFront = index === 0;
|
|
37
|
+
const depth = Math.min(index, 3);
|
|
38
|
+
return (_jsx(motion.div, { "data-slot": "card-stack-item", layout: !reduce, role: isFront ? "button" : undefined, tabIndex: isFront ? 0 : -1, "aria-label": isFront ? nextLabel : undefined, "aria-hidden": isFront ? undefined : true, className: cn("absolute inset-0 rounded-2xl border border-border bg-surface-raised p-5 shadow-sm outline-none", isFront &&
|
|
39
|
+
"z-10 cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base"), style: {
|
|
40
|
+
translate: `${depth * 10}px ${depth * 10}px`,
|
|
41
|
+
zIndex: visible.length - index,
|
|
42
|
+
transformOrigin: "top center",
|
|
43
|
+
}, animate: reduce ? undefined : { scale: 1 - depth * 0.04, rotate: isFront ? 0 : depth * -1.5 }, transition: { type: "spring", stiffness: 260, damping: 26 }, onClick: isFront ? cycle : undefined, onKeyDown: isFront ? onKeyDown : undefined, children: item.content }, item.id));
|
|
44
|
+
})] }));
|
|
45
|
+
}
|
|
46
|
+
CardStack.displayName = "CardStack";
|
|
47
|
+
//# sourceMappingURL=card-stack.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type HTMLAttributes } from "react";
|
|
2
|
+
export declare const Card: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export declare const CardHeader: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export declare const CardTitle: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export declare const CardDescription: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export declare const CardAction: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
7
|
+
export declare const CardContent: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export declare const CardFooter: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
|
|
9
|
+
//# sourceMappingURL=card.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../lib/cn.js";
|
|
4
|
+
export const Card = forwardRef(({ className, ...props }, ref) => {
|
|
5
|
+
return (_jsx("div", { ref: ref, "data-slot": "card", className: cn("flex w-full min-w-0 flex-col gap-6 rounded-xl border border-border bg-surface-raised py-6 text-fg shadow-sm", className), ...props }));
|
|
6
|
+
});
|
|
7
|
+
Card.displayName = "Card";
|
|
8
|
+
export const CardHeader = forwardRef(({ className, ...props }, ref) => {
|
|
9
|
+
return (_jsx("div", { ref: ref, "data-slot": "card-header", className: cn("grid min-w-0 auto-rows-min grid-cols-[minmax(0,1fr)_auto] items-start gap-1.5 px-4 sm:px-6", className), ...props }));
|
|
10
|
+
});
|
|
11
|
+
CardHeader.displayName = "CardHeader";
|
|
12
|
+
export const CardTitle = forwardRef(({ className, ...props }, ref) => {
|
|
13
|
+
return (_jsx("div", { ref: ref, "data-slot": "card-title", className: cn("min-w-0 break-words font-display font-semibold leading-none text-fg", className), ...props }));
|
|
14
|
+
});
|
|
15
|
+
CardTitle.displayName = "CardTitle";
|
|
16
|
+
export const CardDescription = forwardRef(({ className, ...props }, ref) => {
|
|
17
|
+
return (_jsx("div", { ref: ref, "data-slot": "card-description", className: cn("col-span-full text-sm text-fg-secondary", className), ...props }));
|
|
18
|
+
});
|
|
19
|
+
CardDescription.displayName = "CardDescription";
|
|
20
|
+
export const CardAction = forwardRef(({ className, ...props }, ref) => {
|
|
21
|
+
return (_jsx("div", { ref: ref, "data-slot": "card-action", className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className), ...props }));
|
|
22
|
+
});
|
|
23
|
+
CardAction.displayName = "CardAction";
|
|
24
|
+
export const CardContent = forwardRef(({ className, ...props }, ref) => {
|
|
25
|
+
return (_jsx("div", { ref: ref, "data-slot": "card-content", className: cn("min-w-0 px-4 text-fg-secondary sm:px-6", className), ...props }));
|
|
26
|
+
});
|
|
27
|
+
CardContent.displayName = "CardContent";
|
|
28
|
+
export const CardFooter = forwardRef(({ className, ...props }, ref) => {
|
|
29
|
+
return (_jsx("div", { ref: ref, "data-slot": "card-footer", className: cn("flex min-w-0 items-center gap-3 px-4 sm:px-6", className), ...props }));
|
|
30
|
+
});
|
|
31
|
+
CardFooter.displayName = "CardFooter";
|
|
32
|
+
//# sourceMappingURL=card.js.map
|