@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,87 @@
|
|
|
1
|
+
import { type ComponentProps } from "react";
|
|
2
|
+
import { Dialog } from "./dialog.js";
|
|
3
|
+
export declare const Command: import("react").ForwardRefExoticComponent<Omit<{
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
} & Pick<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
6
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
7
|
+
} & {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
}, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
10
|
+
label?: string;
|
|
11
|
+
shouldFilter?: boolean;
|
|
12
|
+
filter?: (value: string, search: string, keywords?: string[]) => number;
|
|
13
|
+
defaultValue?: string;
|
|
14
|
+
value?: string;
|
|
15
|
+
onValueChange?: (value: string) => void;
|
|
16
|
+
loop?: boolean;
|
|
17
|
+
disablePointerSelection?: boolean;
|
|
18
|
+
vimBindings?: boolean;
|
|
19
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
20
|
+
export interface CommandDialogProps extends ComponentProps<typeof Dialog> {
|
|
21
|
+
title?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const CommandDialog: {
|
|
25
|
+
({ title, description, children, ...props }: CommandDialogProps): import("react").JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
};
|
|
28
|
+
export declare const CommandInput: import("react").ForwardRefExoticComponent<Omit<Omit<Pick<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof import("react").InputHTMLAttributes<HTMLInputElement>> & {
|
|
29
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
30
|
+
} & {
|
|
31
|
+
asChild?: boolean;
|
|
32
|
+
}, "key" | "asChild" | keyof import("react").InputHTMLAttributes<HTMLInputElement>>, "onChange" | "value" | "type"> & {
|
|
33
|
+
value?: string;
|
|
34
|
+
onValueChange?: (search: string) => void;
|
|
35
|
+
} & import("react").RefAttributes<HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
36
|
+
export declare const CommandList: import("react").ForwardRefExoticComponent<Omit<{
|
|
37
|
+
children?: React.ReactNode;
|
|
38
|
+
} & Pick<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
39
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
40
|
+
} & {
|
|
41
|
+
asChild?: boolean;
|
|
42
|
+
}, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
43
|
+
label?: string;
|
|
44
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
45
|
+
export declare const CommandEmpty: import("react").ForwardRefExoticComponent<Omit<{
|
|
46
|
+
children?: React.ReactNode;
|
|
47
|
+
} & Pick<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
48
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
49
|
+
} & {
|
|
50
|
+
asChild?: boolean;
|
|
51
|
+
}, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "asChild"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
52
|
+
export declare const CommandGroup: import("react").ForwardRefExoticComponent<Omit<{
|
|
53
|
+
children?: React.ReactNode;
|
|
54
|
+
} & Omit<Pick<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
55
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
56
|
+
} & {
|
|
57
|
+
asChild?: boolean;
|
|
58
|
+
}, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "asChild">, "heading" | "value"> & {
|
|
59
|
+
heading?: React.ReactNode;
|
|
60
|
+
value?: string;
|
|
61
|
+
forceMount?: boolean;
|
|
62
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
63
|
+
export declare const CommandItem: import("react").ForwardRefExoticComponent<Omit<{
|
|
64
|
+
children?: React.ReactNode;
|
|
65
|
+
} & Omit<Pick<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
66
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
67
|
+
} & {
|
|
68
|
+
asChild?: boolean;
|
|
69
|
+
}, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "disabled" | "value"> & {
|
|
70
|
+
disabled?: boolean;
|
|
71
|
+
onSelect?: (value: string) => void;
|
|
72
|
+
value?: string;
|
|
73
|
+
keywords?: string[];
|
|
74
|
+
forceMount?: boolean;
|
|
75
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
76
|
+
export declare const CommandShortcut: {
|
|
77
|
+
({ className, ...props }: ComponentProps<"span">): import("react").JSX.Element;
|
|
78
|
+
displayName: string;
|
|
79
|
+
};
|
|
80
|
+
export declare const CommandSeparator: import("react").ForwardRefExoticComponent<Omit<Pick<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
81
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
82
|
+
} & {
|
|
83
|
+
asChild?: boolean;
|
|
84
|
+
}, "key" | keyof import("react").HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
85
|
+
alwaysRender?: boolean;
|
|
86
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
87
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Command as CommandPrimitive } from "cmdk";
|
|
4
|
+
import { Search } from "lucide-react";
|
|
5
|
+
import { forwardRef, } from "react";
|
|
6
|
+
import { cn } from "../lib/cn.js";
|
|
7
|
+
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./dialog.js";
|
|
8
|
+
export const Command = forwardRef(({ className, ...props }, ref) => {
|
|
9
|
+
return (_jsx(CommandPrimitive, { ref: ref, "data-slot": "command", className: cn("flex h-full w-full flex-col overflow-hidden rounded-lg bg-surface-floating text-fg", className), ...props }));
|
|
10
|
+
});
|
|
11
|
+
Command.displayName = "Command";
|
|
12
|
+
export const CommandDialog = ({ title = "Command Menu", description = "Search for a command to run...", children, ...props }) => {
|
|
13
|
+
return (_jsx(Dialog, { ...props, children: _jsxs(DialogContent, { className: "gap-0 overflow-hidden rounded-2xl border-border-soft bg-surface-floating/65 p-0 shadow-[0_28px_90px_-12px_rgba(0,0,0,0.6)] backdrop-blur-2xl backdrop-saturate-150 before:pointer-events-none before:absolute before:inset-x-0 before:top-0 before:z-10 before:h-px before:bg-gradient-to-r before:from-transparent before:via-fg/20 before:to-transparent", children: [_jsxs(DialogHeader, { className: "sr-only", children: [_jsx(DialogTitle, { children: title }), _jsx(DialogDescription, { children: description })] }), _jsx(Command, { className: "bg-transparent [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:text-fg-tertiary [&_[cmdk-input-wrapper]]:border-border/60 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:rounded-lg [&_[cmdk-item]]:px-3 [&_[cmdk-item]]:py-2.5 [&_[cmdk-item]_svg]:size-5 [&_[cmdk-item][data-selected=true]]:bg-fg/10", children: children })] }) }));
|
|
14
|
+
};
|
|
15
|
+
CommandDialog.displayName = "CommandDialog";
|
|
16
|
+
export const CommandInput = forwardRef(({ className, ...props }, ref) => {
|
|
17
|
+
return (_jsxs("div", { "data-slot": "command-input-wrapper", className: "flex items-center gap-2 border-b border-border px-3", "cmdk-input-wrapper": "", children: [_jsx(Search, { className: "size-4 shrink-0 text-fg-tertiary" }), _jsx(CommandPrimitive.Input, { ref: ref, "data-slot": "command-input", className: cn("flex h-10 w-full bg-transparent py-3 text-sm outline-none placeholder:text-fg-tertiary disabled:opacity-50", className), ...props })] }));
|
|
18
|
+
});
|
|
19
|
+
CommandInput.displayName = "CommandInput";
|
|
20
|
+
export const CommandList = forwardRef(({ className, ...props }, ref) => {
|
|
21
|
+
return (_jsx(CommandPrimitive.List, { ref: ref, "data-slot": "command-list", className: cn("max-h-80 scroll-py-1 overflow-y-auto overflow-x-hidden p-1", className), ...props }));
|
|
22
|
+
});
|
|
23
|
+
CommandList.displayName = "CommandList";
|
|
24
|
+
export const CommandEmpty = forwardRef(({ className, ...props }, ref) => {
|
|
25
|
+
return (_jsx(CommandPrimitive.Empty, { ref: ref, "data-slot": "command-empty", className: cn("py-6 text-center text-sm text-fg-secondary", className), ...props }));
|
|
26
|
+
});
|
|
27
|
+
CommandEmpty.displayName = "CommandEmpty";
|
|
28
|
+
export const CommandGroup = forwardRef(({ className, ...props }, ref) => {
|
|
29
|
+
return (_jsx(CommandPrimitive.Group, { ref: ref, "data-slot": "command-group", className: cn("overflow-hidden p-1 text-fg [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:text-fg-tertiary", className), ...props }));
|
|
30
|
+
});
|
|
31
|
+
CommandGroup.displayName = "CommandGroup";
|
|
32
|
+
export const CommandItem = forwardRef(({ className, ...props }, ref) => {
|
|
33
|
+
return (_jsx(CommandPrimitive.Item, { ref: ref, "data-slot": "command-item", className: cn("relative flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none data-[selected=true]:bg-surface-overlay data-[selected=true]:text-fg data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none [&_svg]:size-4", className), ...props }));
|
|
34
|
+
});
|
|
35
|
+
CommandItem.displayName = "CommandItem";
|
|
36
|
+
export const CommandShortcut = ({ className, ...props }) => {
|
|
37
|
+
return (_jsx("span", { "data-slot": "command-shortcut", className: cn("ml-auto text-xs tracking-widest text-fg-tertiary", className), ...props }));
|
|
38
|
+
};
|
|
39
|
+
CommandShortcut.displayName = "CommandShortcut";
|
|
40
|
+
export const CommandSeparator = forwardRef(({ className, ...props }, ref) => {
|
|
41
|
+
return (_jsx(CommandPrimitive.Separator, { ref: ref, "data-slot": "command-separator", className: cn("-mx-1 h-px bg-border", className), ...props }));
|
|
42
|
+
});
|
|
43
|
+
CommandSeparator.displayName = "CommandSeparator";
|
|
44
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
export interface ComparisonSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
3
|
+
/** Content shown on the left, revealed by the clip (typically the "before" image). */
|
|
4
|
+
before: ReactNode;
|
|
5
|
+
/** Content shown as the full base layer (typically the "after" image). */
|
|
6
|
+
after: ReactNode;
|
|
7
|
+
/** Initial divider position as a percentage (0–100). Uncontrolled. */
|
|
8
|
+
defaultPosition?: number;
|
|
9
|
+
/** Controlled divider position as a percentage (0–100). */
|
|
10
|
+
position?: number;
|
|
11
|
+
/** Called with the next position when the divider moves. */
|
|
12
|
+
onPositionChange?: (position: number) => void;
|
|
13
|
+
/** Accessible name for the divider handle. */
|
|
14
|
+
"aria-label"?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const ComparisonSlider: import("react").ForwardRefExoticComponent<ComparisonSliderProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
17
|
+
//# sourceMappingURL=comparison-slider.d.ts.map
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ChevronsLeftRight } from "lucide-react";
|
|
4
|
+
import { forwardRef, useCallback, useRef, useState, } from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
function clamp(value) {
|
|
7
|
+
return Math.min(100, Math.max(0, value));
|
|
8
|
+
}
|
|
9
|
+
export const ComparisonSlider = forwardRef(({ before, after, defaultPosition = 50, position: controlledPosition, onPositionChange, className, "aria-label": ariaLabel = "Comparison", ...props }, ref) => {
|
|
10
|
+
const containerRef = useRef(null);
|
|
11
|
+
const draggingRef = useRef(false);
|
|
12
|
+
const [internalPosition, setInternalPosition] = useState(() => clamp(defaultPosition));
|
|
13
|
+
const isControlled = controlledPosition != null;
|
|
14
|
+
const pos = clamp(isControlled ? controlledPosition : internalPosition);
|
|
15
|
+
const setPosition = useCallback((next) => {
|
|
16
|
+
const clamped = clamp(next);
|
|
17
|
+
if (!isControlled) {
|
|
18
|
+
setInternalPosition(clamped);
|
|
19
|
+
}
|
|
20
|
+
onPositionChange?.(clamped);
|
|
21
|
+
}, [isControlled, onPositionChange]);
|
|
22
|
+
const updateFromClientX = useCallback((clientX) => {
|
|
23
|
+
const node = containerRef.current;
|
|
24
|
+
if (!node)
|
|
25
|
+
return;
|
|
26
|
+
const rect = node.getBoundingClientRect();
|
|
27
|
+
if (rect.width === 0)
|
|
28
|
+
return;
|
|
29
|
+
setPosition(((clientX - rect.left) / rect.width) * 100);
|
|
30
|
+
}, [setPosition]);
|
|
31
|
+
const handlePointerDown = (event) => {
|
|
32
|
+
draggingRef.current = true;
|
|
33
|
+
event.currentTarget.setPointerCapture?.(event.pointerId);
|
|
34
|
+
updateFromClientX(event.clientX);
|
|
35
|
+
};
|
|
36
|
+
const handlePointerMove = (event) => {
|
|
37
|
+
if (!draggingRef.current)
|
|
38
|
+
return;
|
|
39
|
+
updateFromClientX(event.clientX);
|
|
40
|
+
};
|
|
41
|
+
const handlePointerUp = (event) => {
|
|
42
|
+
draggingRef.current = false;
|
|
43
|
+
event.currentTarget.releasePointerCapture?.(event.pointerId);
|
|
44
|
+
};
|
|
45
|
+
const handleKeyDown = (event) => {
|
|
46
|
+
const step = event.shiftKey ? 10 : 1;
|
|
47
|
+
switch (event.key) {
|
|
48
|
+
case "ArrowLeft":
|
|
49
|
+
case "ArrowDown":
|
|
50
|
+
event.preventDefault();
|
|
51
|
+
setPosition(pos - step);
|
|
52
|
+
break;
|
|
53
|
+
case "ArrowRight":
|
|
54
|
+
case "ArrowUp":
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
setPosition(pos + step);
|
|
57
|
+
break;
|
|
58
|
+
case "Home":
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
setPosition(0);
|
|
61
|
+
break;
|
|
62
|
+
case "End":
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
setPosition(100);
|
|
65
|
+
break;
|
|
66
|
+
default:
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
return (_jsxs("div", { ref: (node) => {
|
|
71
|
+
containerRef.current = node;
|
|
72
|
+
if (typeof ref === "function") {
|
|
73
|
+
ref(node);
|
|
74
|
+
}
|
|
75
|
+
else if (ref) {
|
|
76
|
+
ref.current = node;
|
|
77
|
+
}
|
|
78
|
+
}, "data-slot": "comparison-slider", className: cn("relative aspect-video w-full touch-none select-none overflow-hidden rounded-xl border border-border bg-surface-inset", className), onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, onPointerCancel: handlePointerUp, ...props, children: [_jsx("div", { "data-slot": "comparison-after", className: "absolute inset-0 size-full [&_img]:pointer-events-none [&_img]:select-none", children: after }), _jsx("div", { "data-slot": "comparison-before", className: "absolute inset-0 size-full [&_img]:pointer-events-none [&_img]:select-none", style: { clipPath: `inset(0 ${100 - pos}% 0 0)` }, children: before }), _jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute inset-y-0 z-10 w-0.5 -translate-x-1/2 bg-surface-base/90 shadow-sm", style: { left: `${pos}%` } }), _jsx("div", { role: "slider", tabIndex: 0, "aria-label": ariaLabel, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": Math.round(pos), "aria-orientation": "horizontal", onKeyDown: handleKeyDown, className: "absolute top-1/2 z-20 flex size-9 -translate-x-1/2 -translate-y-1/2 cursor-ew-resize items-center justify-center rounded-full border border-border bg-surface-raised text-fg shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base", style: { left: `${pos}%` }, children: _jsx(ChevronsLeftRight, { "aria-hidden": true, className: "size-4 text-fg-secondary" }) })] }));
|
|
79
|
+
});
|
|
80
|
+
ComparisonSlider.displayName = "ComparisonSlider";
|
|
81
|
+
//# sourceMappingURL=comparison-slider.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type HTMLAttributes } from "react";
|
|
2
|
+
import { type ChartSeries } from "./chart.js";
|
|
3
|
+
export interface ComposedChartSeries extends ChartSeries {
|
|
4
|
+
type: "area" | "bar" | "line";
|
|
5
|
+
}
|
|
6
|
+
export interface ComposedChartProps extends HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
data: Record<string, unknown>[];
|
|
8
|
+
xKey?: string;
|
|
9
|
+
series: ComposedChartSeries[];
|
|
10
|
+
formatValue?: (value: number, name: string) => string;
|
|
11
|
+
}
|
|
12
|
+
export declare function ComposedChart({ data, xKey, series, formatValue, className, ...props }: ComposedChartProps): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=composed-chart.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from "react";
|
|
4
|
+
import { Area, Bar, CartesianGrid, Line, ComposedChart as RechartsComposedChart, XAxis, } from "recharts";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
import { ChartContainer, ChartCursor, ChartTooltip, ChartTooltipContent, chartSeriesConfig, } from "./chart.js";
|
|
7
|
+
export function ComposedChart({ data, xKey = "date", series, formatValue, className, ...props }) {
|
|
8
|
+
const uid = useId().replace(/:/g, "");
|
|
9
|
+
const config = chartSeriesConfig(series);
|
|
10
|
+
return (_jsx("div", { "data-slot": "composed-chart", className: cn("h-64 w-full", className), ...props, children: _jsx(ChartContainer, { config: config, className: "h-full w-full", children: _jsxs(RechartsComposedChart, { accessibilityLayer: true, data: data, margin: { left: 8, right: 8, top: 8 }, children: [_jsx("defs", { children: series
|
|
11
|
+
.filter((item) => item.type === "area")
|
|
12
|
+
.map((item) => (_jsxs("linearGradient", { id: `${uid}-${item.key}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [_jsx("stop", { offset: "0%", stopColor: `var(--color-${item.key})`, stopOpacity: 0.35 }), _jsx("stop", { offset: "100%", stopColor: `var(--color-${item.key})`, stopOpacity: 0 })] }, item.key))) }), _jsx(CartesianGrid, { vertical: false, strokeDasharray: "4 4" }), _jsx(XAxis, { dataKey: xKey, tickLine: false, axisLine: false, tickMargin: 12, minTickGap: 24 }), _jsx(ChartTooltip, { cursor: _jsx(ChartCursor, { labelKey: xKey }), content: _jsx(ChartTooltipContent, { formatValue: formatValue }) }), series.map((item) => {
|
|
13
|
+
if (item.type === "bar") {
|
|
14
|
+
return (_jsx(Bar, { dataKey: item.key, fill: `var(--color-${item.key})`, radius: 4 }, item.key));
|
|
15
|
+
}
|
|
16
|
+
if (item.type === "area") {
|
|
17
|
+
return (_jsx(Area, { type: "monotone", dataKey: item.key, stroke: `var(--color-${item.key})`, fill: `url(#${uid}-${item.key})`, strokeWidth: 2, dot: false }, item.key));
|
|
18
|
+
}
|
|
19
|
+
return (_jsx(Line, { type: "monotone", dataKey: item.key, stroke: `var(--color-${item.key})`, strokeWidth: 2, dot: false }, item.key));
|
|
20
|
+
})] }) }) }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=composed-chart.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type HTMLAttributes, type Ref } from "react";
|
|
2
|
+
export interface ConfettiProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
ref?: Ref<HTMLDivElement>;
|
|
4
|
+
/**
|
|
5
|
+
* Pieces spawned per burst.
|
|
6
|
+
* @default 48
|
|
7
|
+
*/
|
|
8
|
+
count?: number;
|
|
9
|
+
/** Fire a burst on mount. @default false */
|
|
10
|
+
fireOnMount?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Canvas confetti that bursts from the pointer (or the centre, on mount).
|
|
14
|
+
* Decorative (`aria-hidden` canvas) and a no-op under reduced motion.
|
|
15
|
+
* Click anywhere on the wrapper to fire another burst.
|
|
16
|
+
*/
|
|
17
|
+
export declare function Confetti({ ref, className, children, count, fireOnMount, onPointerDown, ...props }: ConfettiProps): import("react").JSX.Element;
|
|
18
|
+
export declare namespace Confetti {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=confetti.d.ts.map
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useEffect, useRef, } from "react";
|
|
4
|
+
import { cn } from "../lib/cn.js";
|
|
5
|
+
function finiteOr(value, fallback) {
|
|
6
|
+
return Number.isFinite(value) ? value : fallback;
|
|
7
|
+
}
|
|
8
|
+
function prefersReducedMotion() {
|
|
9
|
+
return (typeof window !== "undefined" &&
|
|
10
|
+
typeof window.matchMedia === "function" &&
|
|
11
|
+
window.matchMedia("(prefers-reduced-motion: reduce)").matches);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Canvas confetti that bursts from the pointer (or the centre, on mount).
|
|
15
|
+
* Decorative (`aria-hidden` canvas) and a no-op under reduced motion.
|
|
16
|
+
* Click anywhere on the wrapper to fire another burst.
|
|
17
|
+
*/
|
|
18
|
+
export function Confetti({ ref, className, children, count = 48, fireOnMount = false, onPointerDown, ...props }) {
|
|
19
|
+
const canvasRef = useRef(null);
|
|
20
|
+
const particles = useRef([]);
|
|
21
|
+
const frame = useRef(null);
|
|
22
|
+
const pieceCount = Math.min(160, Math.max(8, Math.round(finiteOr(count, 48))));
|
|
23
|
+
const burst = useCallback((originX, originY) => {
|
|
24
|
+
if (prefersReducedMotion())
|
|
25
|
+
return;
|
|
26
|
+
const canvas = canvasRef.current;
|
|
27
|
+
if (!canvas)
|
|
28
|
+
return;
|
|
29
|
+
for (let index = 0; index < pieceCount; index += 1) {
|
|
30
|
+
const angle = Math.random() * Math.PI * 2;
|
|
31
|
+
const speed = 3 + Math.random() * 5;
|
|
32
|
+
particles.current.push({
|
|
33
|
+
x: originX,
|
|
34
|
+
y: originY,
|
|
35
|
+
vx: Math.cos(angle) * speed,
|
|
36
|
+
vy: Math.sin(angle) * speed - 2,
|
|
37
|
+
life: 1,
|
|
38
|
+
hue: (index * 29) % 360,
|
|
39
|
+
size: 2 + Math.random() * 3,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}, [pieceCount]);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
const canvas = canvasRef.current;
|
|
45
|
+
if (!canvas)
|
|
46
|
+
return;
|
|
47
|
+
let context = null;
|
|
48
|
+
try {
|
|
49
|
+
context = canvas.getContext("2d");
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (!context)
|
|
55
|
+
return;
|
|
56
|
+
const resize = () => {
|
|
57
|
+
const parent = canvas.parentElement;
|
|
58
|
+
if (!parent)
|
|
59
|
+
return;
|
|
60
|
+
const rect = parent.getBoundingClientRect();
|
|
61
|
+
const ratio = window.devicePixelRatio || 1;
|
|
62
|
+
canvas.width = Math.max(1, Math.floor(rect.width * ratio));
|
|
63
|
+
canvas.height = Math.max(1, Math.floor(rect.height * ratio));
|
|
64
|
+
canvas.style.width = `${rect.width}px`;
|
|
65
|
+
canvas.style.height = `${rect.height}px`;
|
|
66
|
+
context.setTransform(ratio, 0, 0, ratio, 0, 0);
|
|
67
|
+
};
|
|
68
|
+
resize();
|
|
69
|
+
window.addEventListener("resize", resize);
|
|
70
|
+
const tick = () => {
|
|
71
|
+
const parent = canvas.parentElement;
|
|
72
|
+
if (!parent)
|
|
73
|
+
return;
|
|
74
|
+
const { width, height } = parent.getBoundingClientRect();
|
|
75
|
+
context.clearRect(0, 0, width, height);
|
|
76
|
+
particles.current = particles.current.filter((particle) => particle.life > 0);
|
|
77
|
+
for (const particle of particles.current) {
|
|
78
|
+
particle.x += particle.vx;
|
|
79
|
+
particle.y += particle.vy;
|
|
80
|
+
particle.vy += 0.12;
|
|
81
|
+
particle.life -= 0.016;
|
|
82
|
+
context.globalAlpha = Math.max(0, particle.life);
|
|
83
|
+
context.fillStyle = `oklch(0.75 0.18 ${particle.hue})`;
|
|
84
|
+
context.fillRect(particle.x, particle.y, particle.size, particle.size * 0.6);
|
|
85
|
+
}
|
|
86
|
+
context.globalAlpha = 1;
|
|
87
|
+
frame.current = requestAnimationFrame(tick);
|
|
88
|
+
};
|
|
89
|
+
frame.current = requestAnimationFrame(tick);
|
|
90
|
+
if (fireOnMount) {
|
|
91
|
+
const parent = canvas.parentElement;
|
|
92
|
+
if (parent) {
|
|
93
|
+
const rect = parent.getBoundingClientRect();
|
|
94
|
+
burst(rect.width / 2, rect.height / 2);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return () => {
|
|
98
|
+
window.removeEventListener("resize", resize);
|
|
99
|
+
if (frame.current !== null)
|
|
100
|
+
cancelAnimationFrame(frame.current);
|
|
101
|
+
};
|
|
102
|
+
}, [burst, fireOnMount]);
|
|
103
|
+
const handlePointerDown = useCallback((event) => {
|
|
104
|
+
onPointerDown?.(event);
|
|
105
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
106
|
+
burst(event.clientX - rect.left, event.clientY - rect.top);
|
|
107
|
+
}, [burst, onPointerDown]);
|
|
108
|
+
return (_jsxs("div", { ref: ref, "data-slot": "confetti", className: cn("relative", className), onPointerDown: handlePointerDown, ...props, children: [_jsx("canvas", { ref: canvasRef, tabIndex: -1, "aria-hidden": "true", className: "pointer-events-none absolute inset-0 motion-reduce:hidden" }), _jsx("div", { className: "relative", children: children })] }));
|
|
109
|
+
}
|
|
110
|
+
Confetti.displayName = "Confetti";
|
|
111
|
+
//# sourceMappingURL=confetti.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from "react";
|
|
2
|
+
import { AlertDialogContent } from "./alert-dialog.js";
|
|
3
|
+
export interface ConfirmationDialogProps extends Omit<ComponentPropsWithoutRef<typeof AlertDialogContent>, "title" | "children"> {
|
|
4
|
+
/** Element that opens the dialog. Rendered inside an `AlertDialogTrigger asChild`, so a single focusable child (e.g. a `Button`) is expected. Omit when driving the dialog purely via `open`. */
|
|
5
|
+
trigger?: ReactNode;
|
|
6
|
+
/** Dialog heading — labels the dialog for assistive tech (rendered as `AlertDialogTitle`). */
|
|
7
|
+
title: ReactNode;
|
|
8
|
+
/** Supporting copy describing the consequence of the action (rendered as `AlertDialogDescription`). */
|
|
9
|
+
description?: ReactNode;
|
|
10
|
+
/** Text for the confirm button. @default "Confirm" */
|
|
11
|
+
confirmLabel?: ReactNode;
|
|
12
|
+
/** Text for the cancel button. @default "Cancel" */
|
|
13
|
+
cancelLabel?: ReactNode;
|
|
14
|
+
/** Style the confirm button as a destructive (red) action and default the header icon to a warning triangle. @default false */
|
|
15
|
+
destructive?: boolean;
|
|
16
|
+
/** Icon shown in the header badge. Defaults to a warning triangle when `destructive`, otherwise none. Pass `null` to force it off. */
|
|
17
|
+
icon?: ReactNode;
|
|
18
|
+
/** Invoked when the user confirms. If it returns a promise, the confirm button shows a spinner and is disabled until it settles; on resolve the dialog closes, on reject it stays open and surfaces the error message. */
|
|
19
|
+
onConfirm?: () => void | Promise<void>;
|
|
20
|
+
/** Controlled open state. Provide alongside `onOpenChange` to control the dialog externally. */
|
|
21
|
+
open?: boolean;
|
|
22
|
+
/** Uncontrolled initial open state. @default false */
|
|
23
|
+
defaultOpen?: boolean;
|
|
24
|
+
/** Called whenever the open state changes (opening, cancelling, or confirming). Dismissal is suppressed while a confirm promise is pending. */
|
|
25
|
+
onOpenChange?: (open: boolean) => void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* An ergonomic confirmation dialog for destructive or irreversible actions,
|
|
29
|
+
* composed on top of the accessible `AlertDialog` primitive (which supplies the
|
|
30
|
+
* `alertdialog` role, focus trap, and Escape handling).
|
|
31
|
+
*
|
|
32
|
+
* Behavior: `onConfirm` may be async — while its promise is pending the confirm
|
|
33
|
+
* button shows a `Spinner`, both actions are disabled, and the dialog cannot be
|
|
34
|
+
* dismissed (Escape/Cancel are ignored) so the operation can't be interrupted
|
|
35
|
+
* mid-flight. On resolve the dialog closes; on reject it stays open and renders
|
|
36
|
+
* the error in a `role="alert"` region. Works controlled (`open`/`onOpenChange`)
|
|
37
|
+
* or uncontrolled (`defaultOpen`).
|
|
38
|
+
*
|
|
39
|
+
* Performance/a11y: no timers or animation loops of its own; late promise
|
|
40
|
+
* settlements are ignored after unmount via a mounted ref. The spinner is
|
|
41
|
+
* decorative (`aria-hidden`) with loading state conveyed through `aria-busy`,
|
|
42
|
+
* keeping the button's accessible name stable. All entrance/exit motion is owned
|
|
43
|
+
* by the underlying primitive and degrades under `prefers-reduced-motion`.
|
|
44
|
+
*/
|
|
45
|
+
export declare const ConfirmationDialog: import("react").ForwardRefExoticComponent<ConfirmationDialogProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
46
|
+
//# sourceMappingURL=confirmation-dialog.d.ts.map
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { CircleAlert, TriangleAlert } from "lucide-react";
|
|
4
|
+
import { forwardRef, useCallback, useEffect, useRef, useState, } from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "./alert-dialog.js";
|
|
7
|
+
import { buttonVariants } from "./button.js";
|
|
8
|
+
import { Spinner } from "./spinner.js";
|
|
9
|
+
function resolveErrorMessage(error) {
|
|
10
|
+
if (error instanceof Error && error.message) {
|
|
11
|
+
return error.message;
|
|
12
|
+
}
|
|
13
|
+
if (typeof error === "string" && error) {
|
|
14
|
+
return error;
|
|
15
|
+
}
|
|
16
|
+
return "Something went wrong. Please try again.";
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* An ergonomic confirmation dialog for destructive or irreversible actions,
|
|
20
|
+
* composed on top of the accessible `AlertDialog` primitive (which supplies the
|
|
21
|
+
* `alertdialog` role, focus trap, and Escape handling).
|
|
22
|
+
*
|
|
23
|
+
* Behavior: `onConfirm` may be async — while its promise is pending the confirm
|
|
24
|
+
* button shows a `Spinner`, both actions are disabled, and the dialog cannot be
|
|
25
|
+
* dismissed (Escape/Cancel are ignored) so the operation can't be interrupted
|
|
26
|
+
* mid-flight. On resolve the dialog closes; on reject it stays open and renders
|
|
27
|
+
* the error in a `role="alert"` region. Works controlled (`open`/`onOpenChange`)
|
|
28
|
+
* or uncontrolled (`defaultOpen`).
|
|
29
|
+
*
|
|
30
|
+
* Performance/a11y: no timers or animation loops of its own; late promise
|
|
31
|
+
* settlements are ignored after unmount via a mounted ref. The spinner is
|
|
32
|
+
* decorative (`aria-hidden`) with loading state conveyed through `aria-busy`,
|
|
33
|
+
* keeping the button's accessible name stable. All entrance/exit motion is owned
|
|
34
|
+
* by the underlying primitive and degrades under `prefers-reduced-motion`.
|
|
35
|
+
*/
|
|
36
|
+
export const ConfirmationDialog = forwardRef(({ trigger, title, description, confirmLabel = "Confirm", cancelLabel = "Cancel", destructive = false, icon, onConfirm, open, defaultOpen, onOpenChange, className, ...contentProps }, ref) => {
|
|
37
|
+
const isControlled = open !== undefined;
|
|
38
|
+
const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen ?? false);
|
|
39
|
+
const isOpen = isControlled ? open : uncontrolledOpen;
|
|
40
|
+
const [loading, setLoading] = useState(false);
|
|
41
|
+
const [error, setError] = useState(null);
|
|
42
|
+
const loadingRef = useRef(false);
|
|
43
|
+
const mountedRef = useRef(true);
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
mountedRef.current = true;
|
|
46
|
+
return () => {
|
|
47
|
+
mountedRef.current = false;
|
|
48
|
+
};
|
|
49
|
+
}, []);
|
|
50
|
+
const setOpen = useCallback((next) => {
|
|
51
|
+
if (!isControlled) {
|
|
52
|
+
setUncontrolledOpen(next);
|
|
53
|
+
}
|
|
54
|
+
onOpenChange?.(next);
|
|
55
|
+
}, [isControlled, onOpenChange]);
|
|
56
|
+
const handleOpenChange = useCallback((next) => {
|
|
57
|
+
// Never let the dialog be dismissed while a confirm promise is pending.
|
|
58
|
+
if (loadingRef.current && !next) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (next) {
|
|
62
|
+
setError(null);
|
|
63
|
+
}
|
|
64
|
+
setOpen(next);
|
|
65
|
+
}, [setOpen]);
|
|
66
|
+
const beginLoading = useCallback((value) => {
|
|
67
|
+
loadingRef.current = value;
|
|
68
|
+
setLoading(value);
|
|
69
|
+
}, []);
|
|
70
|
+
const handleConfirm = useCallback(async () => {
|
|
71
|
+
setError(null);
|
|
72
|
+
if (!onConfirm) {
|
|
73
|
+
setOpen(false);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const result = onConfirm();
|
|
77
|
+
if (!(result instanceof Promise)) {
|
|
78
|
+
setOpen(false);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
beginLoading(true);
|
|
82
|
+
try {
|
|
83
|
+
await result;
|
|
84
|
+
if (!mountedRef.current) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
beginLoading(false);
|
|
88
|
+
setOpen(false);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (!mountedRef.current) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
beginLoading(false);
|
|
95
|
+
setError(resolveErrorMessage(err));
|
|
96
|
+
}
|
|
97
|
+
}, [onConfirm, beginLoading, setOpen]);
|
|
98
|
+
const resolvedIcon = icon !== undefined ? icon : destructive ? _jsx(TriangleAlert, {}) : null;
|
|
99
|
+
return (_jsxs(AlertDialog, { open: isOpen, onOpenChange: handleOpenChange, children: [trigger ? _jsx(AlertDialogTrigger, { asChild: true, children: trigger }) : null, _jsxs(AlertDialogContent, { ref: ref, "data-slot": "confirmation-dialog", className: cn("max-w-md", className), ...contentProps, children: [_jsxs(AlertDialogHeader, { children: [resolvedIcon !== null ? (_jsx("div", { "aria-hidden": true, "data-slot": "confirmation-dialog-icon", className: cn("mb-1 flex size-11 items-center justify-center self-center rounded-full sm:self-start [&_svg]:size-5", destructive ? "bg-error/10 text-error" : "bg-primary/10 text-primary"), children: resolvedIcon })) : null, _jsx(AlertDialogTitle, { children: title }), description ? _jsx(AlertDialogDescription, { children: description }) : null] }), error ? (_jsxs("div", { role: "alert", "data-slot": "confirmation-dialog-error", className: "flex items-start gap-2 rounded-lg border border-error/30 bg-error/10 px-3 py-2 text-left text-sm text-error-strong", children: [_jsx(CircleAlert, { "aria-hidden": true, className: "mt-0.5 size-4 shrink-0" }), _jsx("span", { children: error })] })) : null, _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { disabled: loading, children: cancelLabel }), _jsxs("button", { type: "button", "data-slot": "confirmation-dialog-confirm", disabled: loading, "aria-busy": loading, onClick: handleConfirm, className: cn(buttonVariants({ variant: destructive ? "destructive" : "primary" }), "min-w-24"), children: [loading ? _jsx(Spinner, { size: "sm", "aria-hidden": true }) : null, confirmLabel] })] })] })] }));
|
|
100
|
+
});
|
|
101
|
+
ConfirmationDialog.displayName = "ConfirmationDialog";
|
|
102
|
+
//# sourceMappingURL=confirmation-dialog.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
2
|
+
import { type ComponentProps, type HTMLAttributes } from "react";
|
|
3
|
+
/** Non-modal by default — same scroll-lock trap as {@link DropdownMenu}. */
|
|
4
|
+
export declare function ContextMenu({ modal, ...props }: ComponentProps<typeof ContextMenuPrimitive.Root>): import("react").JSX.Element;
|
|
5
|
+
export declare const ContextMenuTrigger: import("react").ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
6
|
+
export declare const ContextMenuGroup: import("react").ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
7
|
+
export declare const ContextMenuPortal: import("react").FC<ContextMenuPrimitive.ContextMenuPortalProps>;
|
|
8
|
+
export declare const ContextMenuSub: import("react").FC<ContextMenuPrimitive.ContextMenuSubProps>;
|
|
9
|
+
export declare const ContextMenuRadioGroup: import("react").ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const ContextMenuSubTrigger: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
11
|
+
inset?: boolean;
|
|
12
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
13
|
+
export declare const ContextMenuSubContent: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
14
|
+
export declare const ContextMenuContent: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
15
|
+
export declare const ContextMenuItem: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
16
|
+
inset?: boolean;
|
|
17
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export declare const ContextMenuCheckboxItem: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
19
|
+
export declare const ContextMenuRadioItem: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
20
|
+
export declare const ContextMenuLabel: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
21
|
+
inset?: boolean;
|
|
22
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
23
|
+
export declare const ContextMenuSeparator: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
24
|
+
export declare const ContextMenuShortcut: {
|
|
25
|
+
({ className, ...props }: HTMLAttributes<HTMLSpanElement>): import("react").JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=context-menu.d.ts.map
|