@epilot/spark-ui 0.10.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 +201 -0
- package/NOTICE +2 -0
- package/README.md +32 -0
- package/dist/chunk-DY84GLCh.cjs +29 -0
- package/dist/components/accordion.cjs +57 -0
- package/dist/components/accordion.cjs.map +1 -0
- package/dist/components/accordion.d.cts +44 -0
- package/dist/components/accordion.d.ts +44 -0
- package/dist/components/accordion.js +51 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.cjs +137 -0
- package/dist/components/alert-dialog.cjs.map +1 -0
- package/dist/components/alert-dialog.d.cts +62 -0
- package/dist/components/alert-dialog.d.ts +62 -0
- package/dist/components/alert-dialog.js +123 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/attachment.cjs +119 -0
- package/dist/components/attachment.cjs.map +1 -0
- package/dist/components/attachment.d.cts +65 -0
- package/dist/components/attachment.d.ts +65 -0
- package/dist/components/attachment.js +108 -0
- package/dist/components/attachment.js.map +1 -0
- package/dist/components/avatar.cjs +56 -0
- package/dist/components/avatar.cjs.map +1 -0
- package/dist/components/avatar.d.cts +26 -0
- package/dist/components/avatar.d.ts +26 -0
- package/dist/components/avatar.js +52 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.cjs +25 -0
- package/dist/components/badge.cjs.map +1 -0
- package/dist/components/badge.d.cts +16 -0
- package/dist/components/badge.d.ts +16 -0
- package/dist/components/badge.js +22 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/bar-chart.cjs +584 -0
- package/dist/components/bar-chart.cjs.map +1 -0
- package/dist/components/bar-chart.d.cts +102 -0
- package/dist/components/bar-chart.d.ts +102 -0
- package/dist/components/bar-chart.js +583 -0
- package/dist/components/bar-chart.js.map +1 -0
- package/dist/components/battery-progress-row.cjs +133 -0
- package/dist/components/battery-progress-row.cjs.map +1 -0
- package/dist/components/battery-progress-row.d.cts +77 -0
- package/dist/components/battery-progress-row.d.ts +77 -0
- package/dist/components/battery-progress-row.js +123 -0
- package/dist/components/battery-progress-row.js.map +1 -0
- package/dist/components/breadcrumbs.cjs +64 -0
- package/dist/components/breadcrumbs.cjs.map +1 -0
- package/dist/components/breadcrumbs.d.cts +42 -0
- package/dist/components/breadcrumbs.d.ts +42 -0
- package/dist/components/breadcrumbs.js +58 -0
- package/dist/components/breadcrumbs.js.map +1 -0
- package/dist/components/bubble.cjs +84 -0
- package/dist/components/bubble.cjs.map +1 -0
- package/dist/components/bubble.d.cts +39 -0
- package/dist/components/bubble.d.ts +39 -0
- package/dist/components/bubble.js +78 -0
- package/dist/components/bubble.js.map +1 -0
- package/dist/components/button-group.cjs +72 -0
- package/dist/components/button-group.cjs.map +1 -0
- package/dist/components/button-group.d.cts +29 -0
- package/dist/components/button-group.d.ts +29 -0
- package/dist/components/button-group.js +64 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.cjs +58 -0
- package/dist/components/button.cjs.map +1 -0
- package/dist/components/button.d.cts +29 -0
- package/dist/components/button.d.ts +29 -0
- package/dist/components/button.js +54 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.cjs +59 -0
- package/dist/components/calendar.cjs.map +1 -0
- package/dist/components/calendar.d.cts +20 -0
- package/dist/components/calendar.d.ts +20 -0
- package/dist/components/calendar.js +56 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/callout.cjs +95 -0
- package/dist/components/callout.cjs.map +1 -0
- package/dist/components/callout.d.cts +42 -0
- package/dist/components/callout.d.ts +42 -0
- package/dist/components/callout.js +88 -0
- package/dist/components/callout.js.map +1 -0
- package/dist/components/card.cjs +100 -0
- package/dist/components/card.cjs.map +1 -0
- package/dist/components/card.d.cts +34 -0
- package/dist/components/card.d.ts +34 -0
- package/dist/components/card.js +90 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/chart.cjs +110 -0
- package/dist/components/chart.cjs.map +1 -0
- package/dist/components/chart.d.cts +92 -0
- package/dist/components/chart.d.ts +92 -0
- package/dist/components/chart.js +104 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.cjs +44 -0
- package/dist/components/checkbox.cjs.map +1 -0
- package/dist/components/checkbox.d.cts +26 -0
- package/dist/components/checkbox.d.ts +26 -0
- package/dist/components/checkbox.js +41 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/circular-gauge.cjs +74 -0
- package/dist/components/circular-gauge.cjs.map +1 -0
- package/dist/components/circular-gauge.d.cts +37 -0
- package/dist/components/circular-gauge.d.ts +37 -0
- package/dist/components/circular-gauge.js +71 -0
- package/dist/components/circular-gauge.js.map +1 -0
- package/dist/components/day-of-week-picker.cjs +123 -0
- package/dist/components/day-of-week-picker.cjs.map +1 -0
- package/dist/components/day-of-week-picker.d.cts +39 -0
- package/dist/components/day-of-week-picker.d.ts +39 -0
- package/dist/components/day-of-week-picker.js +119 -0
- package/dist/components/day-of-week-picker.js.map +1 -0
- package/dist/components/device-card.cjs +118 -0
- package/dist/components/device-card.cjs.map +1 -0
- package/dist/components/device-card.d.cts +70 -0
- package/dist/components/device-card.d.ts +70 -0
- package/dist/components/device-card.js +104 -0
- package/dist/components/device-card.js.map +1 -0
- package/dist/components/dialog.cjs +115 -0
- package/dist/components/dialog.cjs.map +1 -0
- package/dist/components/dialog.d.cts +44 -0
- package/dist/components/dialog.d.ts +44 -0
- package/dist/components/dialog.js +103 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/donut-chart.cjs +70 -0
- package/dist/components/donut-chart.cjs.map +1 -0
- package/dist/components/donut-chart.d.cts +20 -0
- package/dist/components/donut-chart.d.ts +20 -0
- package/dist/components/donut-chart.js +69 -0
- package/dist/components/donut-chart.js.map +1 -0
- package/dist/components/drawer.cjs +95 -0
- package/dist/components/drawer.cjs.map +1 -0
- package/dist/components/drawer.d.cts +45 -0
- package/dist/components/drawer.d.ts +45 -0
- package/dist/components/drawer.js +83 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.cjs +165 -0
- package/dist/components/dropdown-menu.cjs.map +1 -0
- package/dist/components/dropdown-menu.d.cts +92 -0
- package/dist/components/dropdown-menu.d.ts +92 -0
- package/dist/components/dropdown-menu.js +148 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/empty-state.cjs +41 -0
- package/dist/components/empty-state.cjs.map +1 -0
- package/dist/components/empty-state.d.cts +26 -0
- package/dist/components/empty-state.d.ts +26 -0
- package/dist/components/empty-state.js +41 -0
- package/dist/components/empty-state.js.map +1 -0
- package/dist/components/energy-bar-chart.cjs +23 -0
- package/dist/components/energy-bar-chart.cjs.map +1 -0
- package/dist/components/energy-bar-chart.d.cts +43 -0
- package/dist/components/energy-bar-chart.d.ts +43 -0
- package/dist/components/energy-bar-chart.js +22 -0
- package/dist/components/energy-bar-chart.js.map +1 -0
- package/dist/components/energy-breakdown.cjs +80 -0
- package/dist/components/energy-breakdown.cjs.map +1 -0
- package/dist/components/energy-breakdown.d.cts +24 -0
- package/dist/components/energy-breakdown.d.ts +24 -0
- package/dist/components/energy-breakdown.js +79 -0
- package/dist/components/energy-breakdown.js.map +1 -0
- package/dist/components/energy-history-chart.cjs +63 -0
- package/dist/components/energy-history-chart.cjs.map +1 -0
- package/dist/components/energy-history-chart.d.cts +64 -0
- package/dist/components/energy-history-chart.d.ts +64 -0
- package/dist/components/energy-history-chart.js +62 -0
- package/dist/components/energy-history-chart.js.map +1 -0
- package/dist/components/feed-in-hero.cjs +55 -0
- package/dist/components/feed-in-hero.cjs.map +1 -0
- package/dist/components/feed-in-hero.d.cts +32 -0
- package/dist/components/feed-in-hero.d.ts +32 -0
- package/dist/components/feed-in-hero.js +51 -0
- package/dist/components/feed-in-hero.js.map +1 -0
- package/dist/components/field.cjs +257 -0
- package/dist/components/field.cjs.map +1 -0
- package/dist/components/field.d.cts +103 -0
- package/dist/components/field.d.ts +103 -0
- package/dist/components/field.js +243 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/icon.cjs +35 -0
- package/dist/components/icon.cjs.map +1 -0
- package/dist/components/icon.d.cts +26 -0
- package/dist/components/icon.d.ts +26 -0
- package/dist/components/icon.js +32 -0
- package/dist/components/icon.js.map +1 -0
- package/dist/components/info-block.cjs +75 -0
- package/dist/components/info-block.cjs.map +1 -0
- package/dist/components/info-block.d.cts +19 -0
- package/dist/components/info-block.d.ts +19 -0
- package/dist/components/info-block.js +65 -0
- package/dist/components/info-block.js.map +1 -0
- package/dist/components/input-group.cjs +165 -0
- package/dist/components/input-group.cjs.map +1 -0
- package/dist/components/input-group.d.cts +27 -0
- package/dist/components/input-group.d.ts +27 -0
- package/dist/components/input-group.js +159 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input-otp.cjs +112 -0
- package/dist/components/input-otp.cjs.map +1 -0
- package/dist/components/input-otp.d.cts +24 -0
- package/dist/components/input-otp.d.ts +24 -0
- package/dist/components/input-otp.js +111 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.cjs +113 -0
- package/dist/components/input.cjs.map +1 -0
- package/dist/components/input.d.cts +14 -0
- package/dist/components/input.d.ts +14 -0
- package/dist/components/input.js +110 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.cjs +18 -0
- package/dist/components/label.cjs.map +1 -0
- package/dist/components/label.d.cts +10 -0
- package/dist/components/label.d.ts +10 -0
- package/dist/components/label.js +15 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layout.cjs +14 -0
- package/dist/components/layout.cjs.map +1 -0
- package/dist/components/layout.d.cts +11 -0
- package/dist/components/layout.d.ts +12 -0
- package/dist/components/layout.js +14 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/line-chart.cjs +538 -0
- package/dist/components/line-chart.cjs.map +1 -0
- package/dist/components/line-chart.d.cts +90 -0
- package/dist/components/line-chart.d.ts +90 -0
- package/dist/components/line-chart.js +536 -0
- package/dist/components/line-chart.js.map +1 -0
- package/dist/components/list.cjs +132 -0
- package/dist/components/list.cjs.map +1 -0
- package/dist/components/list.d.cts +71 -0
- package/dist/components/list.d.ts +71 -0
- package/dist/components/list.js +122 -0
- package/dist/components/list.js.map +1 -0
- package/dist/components/marker.cjs +52 -0
- package/dist/components/marker.cjs.map +1 -0
- package/dist/components/marker.d.cts +27 -0
- package/dist/components/marker.d.ts +27 -0
- package/dist/components/marker.js +46 -0
- package/dist/components/marker.js.map +1 -0
- package/dist/components/message-scroller.cjs +73 -0
- package/dist/components/message-scroller.cjs.map +1 -0
- package/dist/components/message-scroller.d.cts +38 -0
- package/dist/components/message-scroller.d.ts +38 -0
- package/dist/components/message-scroller.js +62 -0
- package/dist/components/message-scroller.js.map +1 -0
- package/dist/components/message.cjs +60 -0
- package/dist/components/message.cjs.map +1 -0
- package/dist/components/message.d.cts +35 -0
- package/dist/components/message.d.ts +35 -0
- package/dist/components/message.js +52 -0
- package/dist/components/message.js.map +1 -0
- package/dist/components/metering-row.cjs +42 -0
- package/dist/components/metering-row.cjs.map +1 -0
- package/dist/components/metering-row.d.cts +31 -0
- package/dist/components/metering-row.d.ts +31 -0
- package/dist/components/metering-row.js +38 -0
- package/dist/components/metering-row.js.map +1 -0
- package/dist/components/money-saved-block.cjs +86 -0
- package/dist/components/money-saved-block.cjs.map +1 -0
- package/dist/components/money-saved-block.d.cts +55 -0
- package/dist/components/money-saved-block.d.ts +55 -0
- package/dist/components/money-saved-block.js +79 -0
- package/dist/components/money-saved-block.js.map +1 -0
- package/dist/components/number-flow.cjs +44 -0
- package/dist/components/number-flow.cjs.map +1 -0
- package/dist/components/number-flow.d.cts +4 -0
- package/dist/components/number-flow.d.ts +4 -0
- package/dist/components/number-flow.js +42 -0
- package/dist/components/number-flow.js.map +1 -0
- package/dist/components/on-off-button.cjs +35 -0
- package/dist/components/on-off-button.cjs.map +1 -0
- package/dist/components/on-off-button.d.cts +18 -0
- package/dist/components/on-off-button.d.ts +18 -0
- package/dist/components/on-off-button.js +34 -0
- package/dist/components/on-off-button.js.map +1 -0
- package/dist/components/onboarding-layout.cjs +67 -0
- package/dist/components/onboarding-layout.cjs.map +1 -0
- package/dist/components/onboarding-layout.d.cts +44 -0
- package/dist/components/onboarding-layout.d.ts +44 -0
- package/dist/components/onboarding-layout.js +60 -0
- package/dist/components/onboarding-layout.js.map +1 -0
- package/dist/components/page-header.cjs +50 -0
- package/dist/components/page-header.cjs.map +1 -0
- package/dist/components/page-header.d.cts +25 -0
- package/dist/components/page-header.d.ts +25 -0
- package/dist/components/page-header.js +44 -0
- package/dist/components/page-header.js.map +1 -0
- package/dist/components/page-spinner.cjs +18 -0
- package/dist/components/page-spinner.cjs.map +1 -0
- package/dist/components/page-spinner.d.cts +12 -0
- package/dist/components/page-spinner.d.ts +12 -0
- package/dist/components/page-spinner.js +17 -0
- package/dist/components/page-spinner.js.map +1 -0
- package/dist/components/period-tabs.cjs +78 -0
- package/dist/components/period-tabs.cjs.map +1 -0
- package/dist/components/period-tabs.d.cts +50 -0
- package/dist/components/period-tabs.d.ts +50 -0
- package/dist/components/period-tabs.js +73 -0
- package/dist/components/period-tabs.js.map +1 -0
- package/dist/components/pill.cjs +62 -0
- package/dist/components/pill.cjs.map +1 -0
- package/dist/components/pill.d.cts +29 -0
- package/dist/components/pill.d.ts +29 -0
- package/dist/components/pill.js +59 -0
- package/dist/components/pill.js.map +1 -0
- package/dist/components/popover.cjs +62 -0
- package/dist/components/popover.cjs.map +1 -0
- package/dist/components/popover.d.cts +28 -0
- package/dist/components/popover.d.ts +28 -0
- package/dist/components/popover.js +56 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/power-history-chart.cjs +498 -0
- package/dist/components/power-history-chart.cjs.map +1 -0
- package/dist/components/power-history-chart.d.cts +71 -0
- package/dist/components/power-history-chart.d.ts +71 -0
- package/dist/components/power-history-chart.js +496 -0
- package/dist/components/power-history-chart.js.map +1 -0
- package/dist/components/power-history.cjs +114 -0
- package/dist/components/power-history.cjs.map +1 -0
- package/dist/components/power-history.d.cts +40 -0
- package/dist/components/power-history.d.ts +41 -0
- package/dist/components/power-history.js +114 -0
- package/dist/components/power-history.js.map +1 -0
- package/dist/components/power-network.cjs +562 -0
- package/dist/components/power-network.cjs.map +1 -0
- package/dist/components/power-network.d.cts +80 -0
- package/dist/components/power-network.d.ts +80 -0
- package/dist/components/power-network.js +556 -0
- package/dist/components/power-network.js.map +1 -0
- package/dist/components/progress.cjs +34 -0
- package/dist/components/progress.cjs.map +1 -0
- package/dist/components/progress.d.cts +17 -0
- package/dist/components/progress.d.ts +17 -0
- package/dist/components/progress.js +31 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-card-group.cjs +94 -0
- package/dist/components/radio-card-group.cjs.map +1 -0
- package/dist/components/radio-card-group.d.cts +21 -0
- package/dist/components/radio-card-group.d.ts +21 -0
- package/dist/components/radio-card-group.js +90 -0
- package/dist/components/radio-card-group.js.map +1 -0
- package/dist/components/radio.cjs +41 -0
- package/dist/components/radio.cjs.map +1 -0
- package/dist/components/radio.d.cts +32 -0
- package/dist/components/radio.d.ts +32 -0
- package/dist/components/radio.js +37 -0
- package/dist/components/radio.js.map +1 -0
- package/dist/components/reparent.cjs +55 -0
- package/dist/components/reparent.cjs.map +1 -0
- package/dist/components/reparent.d.cts +28 -0
- package/dist/components/reparent.d.ts +28 -0
- package/dist/components/reparent.js +49 -0
- package/dist/components/reparent.js.map +1 -0
- package/dist/components/sankey-chart.cjs +187 -0
- package/dist/components/sankey-chart.cjs.map +1 -0
- package/dist/components/sankey-chart.d.cts +66 -0
- package/dist/components/sankey-chart.d.ts +66 -0
- package/dist/components/sankey-chart.js +185 -0
- package/dist/components/sankey-chart.js.map +1 -0
- package/dist/components/schedule-editor.cjs +82 -0
- package/dist/components/schedule-editor.cjs.map +1 -0
- package/dist/components/schedule-editor.d.cts +25 -0
- package/dist/components/schedule-editor.d.ts +25 -0
- package/dist/components/schedule-editor.js +72 -0
- package/dist/components/schedule-editor.js.map +1 -0
- package/dist/components/schedule-list.cjs +110 -0
- package/dist/components/schedule-list.cjs.map +1 -0
- package/dist/components/schedule-list.d.cts +29 -0
- package/dist/components/schedule-list.d.ts +29 -0
- package/dist/components/schedule-list.js +99 -0
- package/dist/components/schedule-list.js.map +1 -0
- package/dist/components/scroll-area.cjs +53 -0
- package/dist/components/scroll-area.cjs.map +1 -0
- package/dist/components/scroll-area.d.cts +24 -0
- package/dist/components/scroll-area.d.ts +24 -0
- package/dist/components/scroll-area.js +44 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/segmented-control.cjs +44 -0
- package/dist/components/segmented-control.cjs.map +1 -0
- package/dist/components/segmented-control.d.cts +32 -0
- package/dist/components/segmented-control.d.ts +32 -0
- package/dist/components/segmented-control.js +40 -0
- package/dist/components/segmented-control.js.map +1 -0
- package/dist/components/select.cjs +136 -0
- package/dist/components/select.cjs.map +1 -0
- package/dist/components/select.d.cts +62 -0
- package/dist/components/select.d.ts +62 -0
- package/dist/components/select.js +124 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.cjs +38 -0
- package/dist/components/separator.cjs.map +1 -0
- package/dist/components/separator.d.cts +13 -0
- package/dist/components/separator.d.ts +13 -0
- package/dist/components/separator.js +35 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/series-legend.cjs +38 -0
- package/dist/components/series-legend.cjs.map +1 -0
- package/dist/components/series-legend.d.cts +29 -0
- package/dist/components/series-legend.d.ts +29 -0
- package/dist/components/series-legend.js +37 -0
- package/dist/components/series-legend.js.map +1 -0
- package/dist/components/sheet.cjs +102 -0
- package/dist/components/sheet.cjs.map +1 -0
- package/dist/components/sheet.d.cts +45 -0
- package/dist/components/sheet.d.ts +45 -0
- package/dist/components/sheet.js +90 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/skeleton.cjs +23 -0
- package/dist/components/skeleton.cjs.map +1 -0
- package/dist/components/skeleton.d.cts +23 -0
- package/dist/components/skeleton.d.ts +23 -0
- package/dist/components/skeleton.js +21 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.cjs +263 -0
- package/dist/components/slider.cjs.map +1 -0
- package/dist/components/slider.d.cts +136 -0
- package/dist/components/slider.d.ts +136 -0
- package/dist/components/slider.js +253 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/smart-toggle-button.cjs +27 -0
- package/dist/components/smart-toggle-button.cjs.map +1 -0
- package/dist/components/smart-toggle-button.d.cts +16 -0
- package/dist/components/smart-toggle-button.d.ts +16 -0
- package/dist/components/smart-toggle-button.js +26 -0
- package/dist/components/smart-toggle-button.js.map +1 -0
- package/dist/components/solar-forecast-chart.cjs +109 -0
- package/dist/components/solar-forecast-chart.cjs.map +1 -0
- package/dist/components/solar-forecast-chart.d.cts +77 -0
- package/dist/components/solar-forecast-chart.d.ts +77 -0
- package/dist/components/solar-forecast-chart.js +104 -0
- package/dist/components/solar-forecast-chart.js.map +1 -0
- package/dist/components/sortable-list.cjs +68 -0
- package/dist/components/sortable-list.cjs.map +1 -0
- package/dist/components/sortable-list.d.cts +45 -0
- package/dist/components/sortable-list.d.ts +45 -0
- package/dist/components/sortable-list.js +67 -0
- package/dist/components/sortable-list.js.map +1 -0
- package/dist/components/spinner.cjs +42 -0
- package/dist/components/spinner.cjs.map +1 -0
- package/dist/components/spinner.d.cts +15 -0
- package/dist/components/spinner.d.ts +15 -0
- package/dist/components/spinner.js +39 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/stat-card.cjs +57 -0
- package/dist/components/stat-card.cjs.map +1 -0
- package/dist/components/stat-card.d.cts +34 -0
- package/dist/components/stat-card.d.ts +34 -0
- package/dist/components/stat-card.js +50 -0
- package/dist/components/stat-card.js.map +1 -0
- package/dist/components/stepper.cjs +79 -0
- package/dist/components/stepper.cjs.map +1 -0
- package/dist/components/stepper.d.cts +33 -0
- package/dist/components/stepper.d.ts +33 -0
- package/dist/components/stepper.js +76 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/switch.cjs +26 -0
- package/dist/components/switch.cjs.map +1 -0
- package/dist/components/switch.d.cts +32 -0
- package/dist/components/switch.d.ts +32 -0
- package/dist/components/switch.js +25 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/tabs.cjs +178 -0
- package/dist/components/tabs.cjs.map +1 -0
- package/dist/components/tabs.d.cts +44 -0
- package/dist/components/tabs.d.ts +44 -0
- package/dist/components/tabs.js +170 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.cjs +128 -0
- package/dist/components/textarea.cjs.map +1 -0
- package/dist/components/textarea.d.cts +15 -0
- package/dist/components/textarea.d.ts +15 -0
- package/dist/components/textarea.js +125 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/theme.cjs +122 -0
- package/dist/components/theme.cjs.map +1 -0
- package/dist/components/theme.d.cts +36 -0
- package/dist/components/theme.d.ts +36 -0
- package/dist/components/theme.js +118 -0
- package/dist/components/theme.js.map +1 -0
- package/dist/components/thumbnail.cjs +54 -0
- package/dist/components/thumbnail.cjs.map +1 -0
- package/dist/components/thumbnail.d.cts +33 -0
- package/dist/components/thumbnail.d.ts +33 -0
- package/dist/components/thumbnail.js +51 -0
- package/dist/components/thumbnail.js.map +1 -0
- package/dist/components/time-picker.cjs +105 -0
- package/dist/components/time-picker.cjs.map +1 -0
- package/dist/components/time-picker.d.cts +43 -0
- package/dist/components/time-picker.d.ts +43 -0
- package/dist/components/time-picker.js +101 -0
- package/dist/components/time-picker.js.map +1 -0
- package/dist/components/toast.cjs +192 -0
- package/dist/components/toast.cjs.map +1 -0
- package/dist/components/toast.d.cts +59 -0
- package/dist/components/toast.d.ts +59 -0
- package/dist/components/toast.js +188 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/tooltip.cjs +85 -0
- package/dist/components/tooltip.cjs.map +1 -0
- package/dist/components/tooltip.d.cts +48 -0
- package/dist/components/tooltip.d.ts +48 -0
- package/dist/components/tooltip.js +77 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/typography.cjs +51 -0
- package/dist/components/typography.cjs.map +1 -0
- package/dist/components/typography.d.cts +30 -0
- package/dist/components/typography.d.ts +30 -0
- package/dist/components/typography.js +45 -0
- package/dist/components/typography.js.map +1 -0
- package/dist/generate-radix-colors-Bw-RYaV4.d.cts +33 -0
- package/dist/generate-radix-colors-Bw-RYaV4.d.ts +33 -0
- package/dist/hooks/use-chart-zoom.cjs +236 -0
- package/dist/hooks/use-chart-zoom.cjs.map +1 -0
- package/dist/hooks/use-chart-zoom.d.cts +53 -0
- package/dist/hooks/use-chart-zoom.d.ts +53 -0
- package/dist/hooks/use-chart-zoom.js +234 -0
- package/dist/hooks/use-chart-zoom.js.map +1 -0
- package/dist/hooks/use-container-width.cjs +21 -0
- package/dist/hooks/use-container-width.cjs.map +1 -0
- package/dist/hooks/use-container-width.d.cts +7 -0
- package/dist/hooks/use-container-width.d.ts +7 -0
- package/dist/hooks/use-container-width.js +20 -0
- package/dist/hooks/use-container-width.js.map +1 -0
- package/dist/hooks/use-reduced-motion.cjs +21 -0
- package/dist/hooks/use-reduced-motion.cjs.map +1 -0
- package/dist/hooks/use-reduced-motion.d.cts +7 -0
- package/dist/hooks/use-reduced-motion.d.ts +7 -0
- package/dist/hooks/use-reduced-motion.js +20 -0
- package/dist/hooks/use-reduced-motion.js.map +1 -0
- package/dist/icons/index.cjs +7 -0
- package/dist/icons/index.d.cts +4 -0
- package/dist/icons/index.d.ts +4 -0
- package/dist/icons/index.js +3 -0
- package/dist/icons/material-symbol.cjs +104 -0
- package/dist/icons/material-symbol.cjs.map +1 -0
- package/dist/icons/material-symbol.d.cts +21 -0
- package/dist/icons/material-symbol.d.ts +21 -0
- package/dist/icons/material-symbol.js +100 -0
- package/dist/icons/material-symbol.js.map +1 -0
- package/dist/lib/accent-colors.cjs +14 -0
- package/dist/lib/accent-colors.cjs.map +1 -0
- package/dist/lib/accent-colors.d.cts +8 -0
- package/dist/lib/accent-colors.d.ts +8 -0
- package/dist/lib/accent-colors.js +13 -0
- package/dist/lib/accent-colors.js.map +1 -0
- package/dist/lib/accent-theme.cjs +130 -0
- package/dist/lib/accent-theme.cjs.map +1 -0
- package/dist/lib/accent-theme.d.cts +35 -0
- package/dist/lib/accent-theme.d.ts +35 -0
- package/dist/lib/accent-theme.js +122 -0
- package/dist/lib/accent-theme.js.map +1 -0
- package/dist/lib/generate-radix-colors.cjs +364 -0
- package/dist/lib/generate-radix-colors.cjs.map +1 -0
- package/dist/lib/generate-radix-colors.d.cts +4 -0
- package/dist/lib/generate-radix-colors.d.ts +4 -0
- package/dist/lib/generate-radix-colors.js +357 -0
- package/dist/lib/generate-radix-colors.js.map +1 -0
- package/dist/lib/input-box-variants.cjs +30 -0
- package/dist/lib/input-box-variants.cjs.map +1 -0
- package/dist/lib/input-box-variants.d.cts +10 -0
- package/dist/lib/input-box-variants.d.ts +10 -0
- package/dist/lib/input-box-variants.js +28 -0
- package/dist/lib/input-box-variants.js.map +1 -0
- package/dist/lib/theme-types.cjs +1 -0
- package/dist/lib/theme-types.d.cts +4 -0
- package/dist/lib/theme-types.d.ts +4 -0
- package/dist/lib/theme-types.js +2 -0
- package/dist/lib/tones.cjs +14 -0
- package/dist/lib/tones.cjs.map +1 -0
- package/dist/lib/tones.d.cts +8 -0
- package/dist/lib/tones.d.ts +8 -0
- package/dist/lib/tones.js +13 -0
- package/dist/lib/tones.js.map +1 -0
- package/dist/number-flow-Bch81ixZ.d.cts +14 -0
- package/dist/number-flow-Bch81ixZ.d.ts +14 -0
- package/dist/styles/index.css +447 -0
- package/dist/styles/internal.css +5 -0
- package/dist/styles/material-symbol.css +22 -0
- package/dist/styles/spark-default.css +980 -0
- package/dist/styles/theme.css +623 -0
- package/dist/styles/utilities.css +557 -0
- package/dist/theme-types-8wjgiNA_.d.cts +29 -0
- package/dist/theme-types-8wjgiNA_.d.ts +29 -0
- package/dist/utils/build-sankey-nodes.cjs +72 -0
- package/dist/utils/build-sankey-nodes.cjs.map +1 -0
- package/dist/utils/build-sankey-nodes.d.cts +27 -0
- package/dist/utils/build-sankey-nodes.d.ts +27 -0
- package/dist/utils/build-sankey-nodes.js +71 -0
- package/dist/utils/build-sankey-nodes.js.map +1 -0
- package/dist/utils/chars.cjs +18 -0
- package/dist/utils/chars.cjs.map +1 -0
- package/dist/utils/chars.d.cts +10 -0
- package/dist/utils/chars.d.ts +10 -0
- package/dist/utils/chars.js +14 -0
- package/dist/utils/chars.js.map +1 -0
- package/dist/utils/chart-scale.cjs +54 -0
- package/dist/utils/chart-scale.cjs.map +1 -0
- package/dist/utils/chart-scale.d.cts +29 -0
- package/dist/utils/chart-scale.d.ts +29 -0
- package/dist/utils/chart-scale.js +51 -0
- package/dist/utils/chart-scale.js.map +1 -0
- package/dist/utils/chart-time-ticks.cjs +35 -0
- package/dist/utils/chart-time-ticks.cjs.map +1 -0
- package/dist/utils/chart-time-ticks.d.cts +7 -0
- package/dist/utils/chart-time-ticks.d.ts +7 -0
- package/dist/utils/chart-time-ticks.js +34 -0
- package/dist/utils/chart-time-ticks.js.map +1 -0
- package/dist/utils/chart-zoom.cjs +84 -0
- package/dist/utils/chart-zoom.cjs.map +1 -0
- package/dist/utils/chart-zoom.d.cts +14 -0
- package/dist/utils/chart-zoom.d.ts +14 -0
- package/dist/utils/chart-zoom.js +77 -0
- package/dist/utils/chart-zoom.js.map +1 -0
- package/dist/utils/cn.cjs +9 -0
- package/dist/utils/cn.d.cts +4 -0
- package/dist/utils/cn.d.ts +4 -0
- package/dist/utils/cn.js +3 -0
- package/dist/utils/date-mask.cjs +45 -0
- package/dist/utils/date-mask.cjs.map +1 -0
- package/dist/utils/date-mask.d.cts +17 -0
- package/dist/utils/date-mask.d.ts +17 -0
- package/dist/utils/date-mask.js +41 -0
- package/dist/utils/date-mask.js.map +1 -0
- package/dist/utils/format.cjs +57 -0
- package/dist/utils/format.cjs.map +1 -0
- package/dist/utils/format.d.cts +23 -0
- package/dist/utils/format.d.ts +23 -0
- package/dist/utils/format.js +47 -0
- package/dist/utils/format.js.map +1 -0
- package/package.json +109 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/chart.d.ts
|
|
6
|
+
type ChartConfig = Record<string, {
|
|
7
|
+
label?: React$1.ReactNode;
|
|
8
|
+
color?: string;
|
|
9
|
+
}>;
|
|
10
|
+
interface ChartTooltipRow {
|
|
11
|
+
key: string;
|
|
12
|
+
label: React$1.ReactNode;
|
|
13
|
+
/** CSS color value for the legend swatch (e.g. `var(--orange-a9)`). */
|
|
14
|
+
color: string;
|
|
15
|
+
value: React$1.ReactNode;
|
|
16
|
+
/** Swatch shape: `dot` (default) for solid series, `dashed-line` for dashed ones. */
|
|
17
|
+
marker?: 'dot' | 'dashed-line';
|
|
18
|
+
}
|
|
19
|
+
interface ChartTooltipCardProps {
|
|
20
|
+
label?: React$1.ReactNode;
|
|
21
|
+
rows: ChartTooltipRow[];
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
interface ChartZoomResetButtonProps {
|
|
25
|
+
label: string;
|
|
26
|
+
onReset: () => void;
|
|
27
|
+
}
|
|
28
|
+
declare function ChartZoomResetButton({
|
|
29
|
+
label,
|
|
30
|
+
onReset
|
|
31
|
+
}: ChartZoomResetButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* Tracks an element's rendered size via ResizeObserver. The element must stay
|
|
34
|
+
* mounted (e.g. an always-rendered, possibly-hidden tooltip wrapper) so the ref
|
|
35
|
+
* is attached when the observer is set up.
|
|
36
|
+
*/
|
|
37
|
+
declare function useMeasuredSize<T extends HTMLElement>(): readonly [React$1.RefObject<T | null>, {
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
}];
|
|
41
|
+
interface ClampTooltipArgs {
|
|
42
|
+
/** Anchor point (chart-local px) the tooltip should sit at, horizontally centred. */
|
|
43
|
+
anchorX: number;
|
|
44
|
+
anchorY: number;
|
|
45
|
+
/** Chart bounds (px). */
|
|
46
|
+
width: number;
|
|
47
|
+
height: number;
|
|
48
|
+
/** Measured tooltip size (px). */
|
|
49
|
+
tipWidth: number;
|
|
50
|
+
tipHeight: number;
|
|
51
|
+
/** Gap between the anchor and the tooltip. */
|
|
52
|
+
gap?: number;
|
|
53
|
+
/** Minimum distance kept from every chart edge. */
|
|
54
|
+
pad?: number;
|
|
55
|
+
/**
|
|
56
|
+
* `above` (default): centred above the anchor, flipped below if it would clip
|
|
57
|
+
* the top — good for bars. `beside`: offset to the side of the anchor so it
|
|
58
|
+
* never sits on top of the hovered point/line — good for line/area charts.
|
|
59
|
+
*/
|
|
60
|
+
placement?: 'above' | 'beside';
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Positions a tooltip relative to an anchor while keeping it fully inside the
|
|
64
|
+
* chart: clamped on every edge, flipped above/below or left/right as needed.
|
|
65
|
+
*/
|
|
66
|
+
declare function clampTooltipPosition({
|
|
67
|
+
anchorX,
|
|
68
|
+
anchorY,
|
|
69
|
+
width,
|
|
70
|
+
height,
|
|
71
|
+
tipWidth,
|
|
72
|
+
tipHeight,
|
|
73
|
+
gap,
|
|
74
|
+
pad,
|
|
75
|
+
placement
|
|
76
|
+
}: ClampTooltipArgs): {
|
|
77
|
+
left: number;
|
|
78
|
+
top: number;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Card-style multi-series tooltip body: an optional header plus one
|
|
82
|
+
* coloured-dot row per series. Rendered inside `@visx/tooltip` by the chart
|
|
83
|
+
* components so every chart shares the same tooltip look.
|
|
84
|
+
*/
|
|
85
|
+
declare function ChartTooltipCard({
|
|
86
|
+
label,
|
|
87
|
+
rows,
|
|
88
|
+
className
|
|
89
|
+
}: ChartTooltipCardProps): import("react/jsx-runtime").JSX.Element | null;
|
|
90
|
+
//#endregion
|
|
91
|
+
export { ChartConfig, ChartTooltipCard, ChartTooltipCardProps, ChartTooltipRow, ChartZoomResetButton, clampTooltipPosition, useMeasuredSize };
|
|
92
|
+
//# sourceMappingURL=chart.d.cts.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/chart.d.ts
|
|
6
|
+
type ChartConfig = Record<string, {
|
|
7
|
+
label?: React$1.ReactNode;
|
|
8
|
+
color?: string;
|
|
9
|
+
}>;
|
|
10
|
+
interface ChartTooltipRow {
|
|
11
|
+
key: string;
|
|
12
|
+
label: React$1.ReactNode;
|
|
13
|
+
/** CSS color value for the legend swatch (e.g. `var(--orange-a9)`). */
|
|
14
|
+
color: string;
|
|
15
|
+
value: React$1.ReactNode;
|
|
16
|
+
/** Swatch shape: `dot` (default) for solid series, `dashed-line` for dashed ones. */
|
|
17
|
+
marker?: 'dot' | 'dashed-line';
|
|
18
|
+
}
|
|
19
|
+
interface ChartTooltipCardProps {
|
|
20
|
+
label?: React$1.ReactNode;
|
|
21
|
+
rows: ChartTooltipRow[];
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
interface ChartZoomResetButtonProps {
|
|
25
|
+
label: string;
|
|
26
|
+
onReset: () => void;
|
|
27
|
+
}
|
|
28
|
+
declare function ChartZoomResetButton({
|
|
29
|
+
label,
|
|
30
|
+
onReset
|
|
31
|
+
}: ChartZoomResetButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* Tracks an element's rendered size via ResizeObserver. The element must stay
|
|
34
|
+
* mounted (e.g. an always-rendered, possibly-hidden tooltip wrapper) so the ref
|
|
35
|
+
* is attached when the observer is set up.
|
|
36
|
+
*/
|
|
37
|
+
declare function useMeasuredSize<T extends HTMLElement>(): readonly [React$1.RefObject<T | null>, {
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
}];
|
|
41
|
+
interface ClampTooltipArgs {
|
|
42
|
+
/** Anchor point (chart-local px) the tooltip should sit at, horizontally centred. */
|
|
43
|
+
anchorX: number;
|
|
44
|
+
anchorY: number;
|
|
45
|
+
/** Chart bounds (px). */
|
|
46
|
+
width: number;
|
|
47
|
+
height: number;
|
|
48
|
+
/** Measured tooltip size (px). */
|
|
49
|
+
tipWidth: number;
|
|
50
|
+
tipHeight: number;
|
|
51
|
+
/** Gap between the anchor and the tooltip. */
|
|
52
|
+
gap?: number;
|
|
53
|
+
/** Minimum distance kept from every chart edge. */
|
|
54
|
+
pad?: number;
|
|
55
|
+
/**
|
|
56
|
+
* `above` (default): centred above the anchor, flipped below if it would clip
|
|
57
|
+
* the top — good for bars. `beside`: offset to the side of the anchor so it
|
|
58
|
+
* never sits on top of the hovered point/line — good for line/area charts.
|
|
59
|
+
*/
|
|
60
|
+
placement?: 'above' | 'beside';
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Positions a tooltip relative to an anchor while keeping it fully inside the
|
|
64
|
+
* chart: clamped on every edge, flipped above/below or left/right as needed.
|
|
65
|
+
*/
|
|
66
|
+
declare function clampTooltipPosition({
|
|
67
|
+
anchorX,
|
|
68
|
+
anchorY,
|
|
69
|
+
width,
|
|
70
|
+
height,
|
|
71
|
+
tipWidth,
|
|
72
|
+
tipHeight,
|
|
73
|
+
gap,
|
|
74
|
+
pad,
|
|
75
|
+
placement
|
|
76
|
+
}: ClampTooltipArgs): {
|
|
77
|
+
left: number;
|
|
78
|
+
top: number;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Card-style multi-series tooltip body: an optional header plus one
|
|
82
|
+
* coloured-dot row per series. Rendered inside `@visx/tooltip` by the chart
|
|
83
|
+
* components so every chart shares the same tooltip look.
|
|
84
|
+
*/
|
|
85
|
+
declare function ChartTooltipCard({
|
|
86
|
+
label,
|
|
87
|
+
rows,
|
|
88
|
+
className
|
|
89
|
+
}: ChartTooltipCardProps): import("react/jsx-runtime").JSX.Element | null;
|
|
90
|
+
//#endregion
|
|
91
|
+
export { ChartConfig, ChartTooltipCard, ChartTooltipCardProps, ChartTooltipRow, ChartZoomResetButton, clampTooltipPosition, useMeasuredSize };
|
|
92
|
+
//# sourceMappingURL=chart.d.ts.map
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { Button } from "./button.js";
|
|
4
|
+
import { useEffect, useRef, useState } from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/chart.tsx
|
|
7
|
+
function ChartZoomResetButton({ label, onReset }) {
|
|
8
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
9
|
+
className: "absolute top-2 right-2 z-20 h-11 bg-gray-1 text-gray hover:bg-gray-2",
|
|
10
|
+
color: "neutral",
|
|
11
|
+
onClick: onReset,
|
|
12
|
+
styleVariant: "surface",
|
|
13
|
+
type: "button",
|
|
14
|
+
children: label
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Tracks an element's rendered size via ResizeObserver. The element must stay
|
|
19
|
+
* mounted (e.g. an always-rendered, possibly-hidden tooltip wrapper) so the ref
|
|
20
|
+
* is attached when the observer is set up.
|
|
21
|
+
*/
|
|
22
|
+
function useMeasuredSize() {
|
|
23
|
+
const ref = useRef(null);
|
|
24
|
+
const [size, setSize] = useState({
|
|
25
|
+
width: 0,
|
|
26
|
+
height: 0
|
|
27
|
+
});
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
const element = ref.current;
|
|
30
|
+
if (!element) return;
|
|
31
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
32
|
+
const entry = entries[0];
|
|
33
|
+
if (!entry) return;
|
|
34
|
+
setSize({
|
|
35
|
+
width: entry.contentRect.width,
|
|
36
|
+
height: entry.contentRect.height
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
resizeObserver.observe(element);
|
|
40
|
+
return () => resizeObserver.disconnect();
|
|
41
|
+
}, []);
|
|
42
|
+
return [ref, size];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Positions a tooltip relative to an anchor while keeping it fully inside the
|
|
46
|
+
* chart: clamped on every edge, flipped above/below or left/right as needed.
|
|
47
|
+
*/
|
|
48
|
+
function clampTooltipPosition({ anchorX, anchorY, width, height, tipWidth, tipHeight, gap = 12, pad = 8, placement = "above" }) {
|
|
49
|
+
const maxLeft = Math.max(pad, width - tipWidth - pad);
|
|
50
|
+
const maxTop = Math.max(pad, height - tipHeight - pad);
|
|
51
|
+
if (placement === "beside") {
|
|
52
|
+
const right = anchorX + gap;
|
|
53
|
+
const left = right + tipWidth + pad <= width ? right : anchorX - gap - tipWidth;
|
|
54
|
+
return {
|
|
55
|
+
left: Math.min(Math.max(left, pad), maxLeft),
|
|
56
|
+
top: Math.min(Math.max(anchorY, pad), maxTop)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const above = anchorY - gap - tipHeight;
|
|
60
|
+
const desiredTop = above >= pad ? above : anchorY + gap;
|
|
61
|
+
return {
|
|
62
|
+
left: Math.min(Math.max(anchorX - tipWidth / 2, pad), maxLeft),
|
|
63
|
+
top: Math.min(Math.max(desiredTop, pad), maxTop)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Card-style multi-series tooltip body: an optional header plus one
|
|
68
|
+
* coloured-dot row per series. Rendered inside `@visx/tooltip` by the chart
|
|
69
|
+
* components so every chart shares the same tooltip look.
|
|
70
|
+
*/
|
|
71
|
+
function ChartTooltipCard({ label, rows, className }) {
|
|
72
|
+
if (rows.length === 0) return null;
|
|
73
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
74
|
+
className: cn("grid min-w-40 gap-1.5 rounded-lg border border-gray-a6 bg-gray-1 px-3 py-2 text-xs shadow-lg shadow-gray-a3", className),
|
|
75
|
+
children: [label !== void 0 && label !== null && /* @__PURE__ */ jsx("div", {
|
|
76
|
+
className: "font-medium text-gray",
|
|
77
|
+
children: label
|
|
78
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
79
|
+
className: "grid gap-1.5",
|
|
80
|
+
children: rows.map((row) => /* @__PURE__ */ jsxs("div", {
|
|
81
|
+
className: "flex items-center justify-between gap-4",
|
|
82
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
83
|
+
className: "flex items-center gap-1.5 text-gray-light",
|
|
84
|
+
children: [row.marker === "dashed-line" ? /* @__PURE__ */ jsx("span", {
|
|
85
|
+
"aria-hidden": "true",
|
|
86
|
+
className: "w-3 shrink-0 border-t-2 border-dashed",
|
|
87
|
+
style: { borderColor: row.color }
|
|
88
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
89
|
+
"aria-hidden": "true",
|
|
90
|
+
className: "size-2 shrink-0 rounded-[2px]",
|
|
91
|
+
style: { backgroundColor: row.color }
|
|
92
|
+
}), row.label]
|
|
93
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
94
|
+
className: "font-medium whitespace-nowrap text-gray tabular-nums",
|
|
95
|
+
children: row.value
|
|
96
|
+
})]
|
|
97
|
+
}, row.key))
|
|
98
|
+
})]
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
//#endregion
|
|
102
|
+
export { ChartTooltipCard, ChartZoomResetButton, clampTooltipPosition, useMeasuredSize };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart.js","names":[],"sources":["../../src/components/chart.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useEffect, useRef, useState } from 'react'\nimport { cn } from '../utils/cn'\nimport { Button } from './button'\n\nexport type ChartConfig = Record<\n string,\n {\n label?: React.ReactNode\n color?: string\n }\n>\n\nexport interface ChartTooltipRow {\n key: string\n label: React.ReactNode\n /** CSS color value for the legend swatch (e.g. `var(--orange-a9)`). */\n color: string\n value: React.ReactNode\n /** Swatch shape: `dot` (default) for solid series, `dashed-line` for dashed ones. */\n marker?: 'dot' | 'dashed-line'\n}\n\nexport interface ChartTooltipCardProps {\n label?: React.ReactNode\n rows: ChartTooltipRow[]\n className?: string\n}\n\ninterface ChartZoomResetButtonProps {\n label: string\n onReset: () => void\n}\n\nexport function ChartZoomResetButton({\n label,\n onReset,\n}: ChartZoomResetButtonProps) {\n return (\n <Button\n className=\"absolute top-2 right-2 z-20 h-11 bg-gray-1 text-gray hover:bg-gray-2\"\n color=\"neutral\"\n onClick={onReset}\n styleVariant=\"surface\"\n type=\"button\"\n >\n {label}\n </Button>\n )\n}\n\n/**\n * Tracks an element's rendered size via ResizeObserver. The element must stay\n * mounted (e.g. an always-rendered, possibly-hidden tooltip wrapper) so the ref\n * is attached when the observer is set up.\n */\nexport function useMeasuredSize<T extends HTMLElement>() {\n const ref = useRef<T>(null)\n const [size, setSize] = useState({ width: 0, height: 0 })\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0]\n if (!entry) return\n setSize({\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n })\n })\n\n resizeObserver.observe(element)\n return () => resizeObserver.disconnect()\n }, [])\n\n return [ref, size] as const\n}\n\ninterface ClampTooltipArgs {\n /** Anchor point (chart-local px) the tooltip should sit at, horizontally centred. */\n anchorX: number\n anchorY: number\n /** Chart bounds (px). */\n width: number\n height: number\n /** Measured tooltip size (px). */\n tipWidth: number\n tipHeight: number\n /** Gap between the anchor and the tooltip. */\n gap?: number\n /** Minimum distance kept from every chart edge. */\n pad?: number\n /**\n * `above` (default): centred above the anchor, flipped below if it would clip\n * the top — good for bars. `beside`: offset to the side of the anchor so it\n * never sits on top of the hovered point/line — good for line/area charts.\n */\n placement?: 'above' | 'beside'\n}\n\n/**\n * Positions a tooltip relative to an anchor while keeping it fully inside the\n * chart: clamped on every edge, flipped above/below or left/right as needed.\n */\nexport function clampTooltipPosition({\n anchorX,\n anchorY,\n width,\n height,\n tipWidth,\n tipHeight,\n gap = 12,\n pad = 8,\n placement = 'above',\n}: ClampTooltipArgs): { left: number; top: number } {\n const maxLeft = Math.max(pad, width - tipWidth - pad)\n const maxTop = Math.max(pad, height - tipHeight - pad)\n\n if (placement === 'beside') {\n // Prefer the right of the anchor; flip to the left if it would overflow.\n const right = anchorX + gap\n const left =\n right + tipWidth + pad <= width ? right : anchorX - gap - tipWidth\n return {\n left: Math.min(Math.max(left, pad), maxLeft),\n top: Math.min(Math.max(anchorY, pad), maxTop),\n }\n }\n\n const above = anchorY - gap - tipHeight\n const desiredTop = above >= pad ? above : anchorY + gap\n return {\n left: Math.min(Math.max(anchorX - tipWidth / 2, pad), maxLeft),\n top: Math.min(Math.max(desiredTop, pad), maxTop),\n }\n}\n\n/**\n * Card-style multi-series tooltip body: an optional header plus one\n * coloured-dot row per series. Rendered inside `@visx/tooltip` by the chart\n * components so every chart shares the same tooltip look.\n */\nexport function ChartTooltipCard({\n label,\n rows,\n className,\n}: ChartTooltipCardProps) {\n if (rows.length === 0) return null\n\n return (\n <div\n className={cn(\n 'grid min-w-40 gap-1.5 rounded-lg border border-gray-a6 bg-gray-1 px-3 py-2 text-xs shadow-lg shadow-gray-a3',\n className,\n )}\n >\n {label !== undefined && label !== null && (\n <div className=\"font-medium text-gray\">{label}</div>\n )}\n <div className=\"grid gap-1.5\">\n {rows.map((row) => (\n <div\n key={row.key}\n className=\"flex items-center justify-between gap-4\"\n >\n <span className=\"flex items-center gap-1.5 text-gray-light\">\n {row.marker === 'dashed-line' ? (\n <span\n aria-hidden=\"true\"\n className=\"w-3 shrink-0 border-t-2 border-dashed\"\n style={{ borderColor: row.color }}\n />\n ) : (\n <span\n aria-hidden=\"true\"\n className=\"size-2 shrink-0 rounded-[2px]\"\n style={{ backgroundColor: row.color }}\n />\n )}\n {row.label}\n </span>\n <span className=\"font-medium whitespace-nowrap text-gray tabular-nums\">\n {row.value}\n </span>\n </div>\n ))}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;;;AAkCA,SAAgB,qBAAqB,EACnC,OACA,WAC4B;CAC5B,OACE,oBAAC,QAAD;EACE,WAAU;EACV,OAAM;EACN,SAAS;EACT,cAAa;EACb,MAAK;YAEJ;CACK,CAAA;AAEZ;;;;;;AAOA,SAAgB,kBAAyC;CACvD,MAAM,MAAM,OAAU,IAAI;CAC1B,MAAM,CAAC,MAAM,WAAW,SAAS;EAAE,OAAO;EAAG,QAAQ;CAAE,CAAC;CAExD,gBAAgB;EACd,MAAM,UAAU,IAAI;EACpB,IAAI,CAAC,SAAS;EAEd,MAAM,iBAAiB,IAAI,gBAAgB,YAAY;GACrD,MAAM,QAAQ,QAAQ;GACtB,IAAI,CAAC,OAAO;GACZ,QAAQ;IACN,OAAO,MAAM,YAAY;IACzB,QAAQ,MAAM,YAAY;GAC5B,CAAC;EACH,CAAC;EAED,eAAe,QAAQ,OAAO;EAC9B,aAAa,eAAe,WAAW;CACzC,GAAG,CAAC,CAAC;CAEL,OAAO,CAAC,KAAK,IAAI;AACnB;;;;;AA4BA,SAAgB,qBAAqB,EACnC,SACA,SACA,OACA,QACA,UACA,WACA,MAAM,IACN,MAAM,GACN,YAAY,WACsC;CAClD,MAAM,UAAU,KAAK,IAAI,KAAK,QAAQ,WAAW,GAAG;CACpD,MAAM,SAAS,KAAK,IAAI,KAAK,SAAS,YAAY,GAAG;CAErD,IAAI,cAAc,UAAU;EAE1B,MAAM,QAAQ,UAAU;EACxB,MAAM,OACJ,QAAQ,WAAW,OAAO,QAAQ,QAAQ,UAAU,MAAM;EAC5D,OAAO;GACL,MAAM,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,GAAG,OAAO;GAC3C,KAAK,KAAK,IAAI,KAAK,IAAI,SAAS,GAAG,GAAG,MAAM;EAC9C;CACF;CAEA,MAAM,QAAQ,UAAU,MAAM;CAC9B,MAAM,aAAa,SAAS,MAAM,QAAQ,UAAU;CACpD,OAAO;EACL,MAAM,KAAK,IAAI,KAAK,IAAI,UAAU,WAAW,GAAG,GAAG,GAAG,OAAO;EAC7D,KAAK,KAAK,IAAI,KAAK,IAAI,YAAY,GAAG,GAAG,MAAM;CACjD;AACF;;;;;;AAOA,SAAgB,iBAAiB,EAC/B,OACA,MACA,aACwB;CACxB,IAAI,KAAK,WAAW,GAAG,OAAO;CAE9B,OACE,qBAAC,OAAD;EACE,WAAW,GACT,+GACA,SACF;YAJF,CAMG,UAAU,KAAA,KAAa,UAAU,QAChC,oBAAC,OAAD;GAAK,WAAU;aAAyB;EAAW,CAAA,GAErD,oBAAC,OAAD;GAAK,WAAU;aACZ,KAAK,KAAK,QACT,qBAAC,OAAD;IAEE,WAAU;cAFZ,CAIE,qBAAC,QAAD;KAAM,WAAU;eAAhB,CACG,IAAI,WAAW,gBACd,oBAAC,QAAD;MACE,eAAY;MACZ,WAAU;MACV,OAAO,EAAE,aAAa,IAAI,MAAM;KACjC,CAAA,IAED,oBAAC,QAAD;MACE,eAAY;MACZ,WAAU;MACV,OAAO,EAAE,iBAAiB,IAAI,MAAM;KACrC,CAAA,GAEF,IAAI,KACD;QACN,oBAAC,QAAD;KAAM,WAAU;eACb,IAAI;IACD,CAAA,CACH;MAtBE,IAAI,GAsBN,CACN;EACE,CAAA,CACF;;AAET"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_chunk = require("../chunk-DY84GLCh.cjs");
|
|
4
|
+
const require_lib_accent_colors = require("../lib/accent-colors.cjs");
|
|
5
|
+
let react = require("react");
|
|
6
|
+
react = require_chunk.__toESM(react);
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let _base_ui_react_checkbox = require("@base-ui/react/checkbox");
|
|
9
|
+
let cnfast = require("cnfast");
|
|
10
|
+
//#region src/components/checkbox.tsx
|
|
11
|
+
const Checkbox = react.forwardRef(({ className, size: _size, bordered: _bordered, styleVariant, color, ...props }, ref) => {
|
|
12
|
+
const dataStyle = styleVariant !== void 0 || color !== void 0 ? styleVariant ?? "solid" : void 0;
|
|
13
|
+
const dataAccentColor = color ? require_lib_accent_colors.accentByColor[color] : void 0;
|
|
14
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_checkbox.Checkbox.Root, {
|
|
15
|
+
"data-style": dataStyle,
|
|
16
|
+
"data-accent-color": dataAccentColor,
|
|
17
|
+
className: (0, cnfast.cn)("peer relative inline-flex size-6 shrink-0 cursor-pointer items-center justify-center border-(length:--spark-style-border-width,2px) transition-colors", "before:absolute before:top-1/2 before:left-1/2 before:size-10 before:-translate-x-1/2 before:-translate-y-1/2 before:content-['']", "rounded-[min(var(--spark-rounded-sm),40%)]", "focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden", "data-disabled:cursor-not-allowed data-disabled:opacity-50", "border-(--spark-style-idle-border,var(--spark-a7)) bg-base-accent-soft", "data-checked:border-(--spark-style-border,var(--spark-9)) data-checked:bg-(--spark-style-bg,var(--spark-9))", "data-indeterminate:border-(--spark-style-border,var(--spark-9)) data-indeterminate:bg-(--spark-style-bg,var(--spark-9))", className),
|
|
18
|
+
ref,
|
|
19
|
+
...props,
|
|
20
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_checkbox.Checkbox.Indicator, {
|
|
21
|
+
className: "group inline-flex items-center justify-center text-(--spark-style-fg,var(--spark-on-solid))",
|
|
22
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
23
|
+
"aria-hidden": "true",
|
|
24
|
+
className: "hidden size-5 group-data-checked:block",
|
|
25
|
+
fill: "none",
|
|
26
|
+
viewBox: "0 0 24 24",
|
|
27
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
28
|
+
className: "animate-check-draw [stroke-dasharray:1] motion-reduce:animate-none",
|
|
29
|
+
d: "M5.5 12.5 L10 17 L18.5 7.5",
|
|
30
|
+
pathLength: 1,
|
|
31
|
+
stroke: "currentColor",
|
|
32
|
+
strokeLinecap: "round",
|
|
33
|
+
strokeLinejoin: "round",
|
|
34
|
+
strokeWidth: 2.5
|
|
35
|
+
})
|
|
36
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "hidden h-0.5 w-3 origin-center animate-dash-pop rounded-full bg-current group-data-indeterminate:block motion-reduce:animate-none" })]
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
Checkbox.displayName = "Checkbox";
|
|
41
|
+
//#endregion
|
|
42
|
+
exports.Checkbox = Checkbox;
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=checkbox.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.cjs","names":["React","accentByColor","CheckboxPrimitive"],"sources":["../../src/components/checkbox.tsx"],"sourcesContent":["import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\nexport type SparkCheckboxColor = 'accent' | 'neutral' | 'danger'\n\ntype CheckboxProps = CheckboxPrimitive.Root.Props & {\n /**\n * @deprecated The checkbox now renders a single 24px size (with a 40px hit\n * area). Accepted for back-compat but ignored.\n */\n size?: 'default' | 'large'\n /**\n * @deprecated The checkbox is always bordered now. Accepted for back-compat\n * but ignored.\n */\n bordered?: boolean\n styleVariant?: SparkStyle\n color?: SparkCheckboxColor\n}\n\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(\n (\n {\n className,\n size: _size,\n bordered: _bordered,\n styleVariant,\n color,\n ...props\n },\n ref,\n ) => {\n const hasLook = styleVariant !== undefined || color !== undefined\n const dataStyle = hasLook ? (styleVariant ?? 'solid') : undefined\n const dataAccentColor = color ? accentByColor[color] : undefined\n\n return (\n <CheckboxPrimitive.Root\n data-style={dataStyle}\n data-accent-color={dataAccentColor}\n className={cn(\n 'peer relative inline-flex size-6 shrink-0 cursor-pointer items-center justify-center border-(length:--spark-style-border-width,2px) transition-colors',\n \"before:absolute before:top-1/2 before:left-1/2 before:size-10 before:-translate-x-1/2 before:-translate-y-1/2 before:content-['']\",\n 'rounded-[min(var(--spark-rounded-sm),40%)]',\n 'focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'data-disabled:cursor-not-allowed data-disabled:opacity-50',\n 'border-(--spark-style-idle-border,var(--spark-a7)) bg-base-accent-soft',\n 'data-checked:border-(--spark-style-border,var(--spark-9)) data-checked:bg-(--spark-style-bg,var(--spark-9))',\n 'data-indeterminate:border-(--spark-style-border,var(--spark-9)) data-indeterminate:bg-(--spark-style-bg,var(--spark-9))',\n className,\n )}\n ref={ref}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"group inline-flex items-center justify-center text-(--spark-style-fg,var(--spark-on-solid))\">\n {/* custom-drawn glyphs; group-data toggles which one the mounted indicator shows */}\n <svg\n aria-hidden=\"true\"\n className=\"hidden size-5 group-data-checked:block\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n className=\"animate-check-draw [stroke-dasharray:1] motion-reduce:animate-none\"\n d=\"M5.5 12.5 L10 17 L18.5 7.5\"\n pathLength={1}\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2.5}\n />\n </svg>\n <span className=\"hidden h-0.5 w-3 origin-center animate-dash-pop rounded-full bg-current group-data-indeterminate:block motion-reduce:animate-none\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n },\n)\n\nCheckbox.displayName = 'Checkbox'\n\nexport { Checkbox }\nexport type { CheckboxProps }\n"],"mappings":";;;;;;;;;;AAuBA,MAAM,WAAWA,MAAM,YAKnB,EACE,WACA,MAAM,OACN,UAAU,WACV,cACA,OACA,GAAG,SAEL,QACG;CAEH,MAAM,YADU,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAC3B,gBAAgB,UAAW,KAAA;CACxD,MAAM,kBAAkB,QAAQC,0BAAAA,cAAc,SAAS,KAAA;CAEvD,OACE,iBAAA,GAAA,kBAAA,KAACC,wBAAAA,SAAkB,MAAnB;EACE,cAAY;EACZ,qBAAmB;EACnB,YAAA,GAAA,OAAA,IACE,yJACA,qIACA,8CACA,iFACA,6DACA,0EACA,+GACA,2HACA,SACF;EACK;EACL,GAAI;YAEJ,iBAAA,GAAA,kBAAA,MAACA,wBAAAA,SAAkB,WAAnB;GAA6B,WAAU;aAAvC,CAEE,iBAAA,GAAA,kBAAA,KAAC,OAAD;IACE,eAAY;IACZ,WAAU;IACV,MAAK;IACL,SAAQ;cAER,iBAAA,GAAA,kBAAA,KAAC,QAAD;KACE,WAAU;KACV,GAAE;KACF,YAAY;KACZ,QAAO;KACP,eAAc;KACd,gBAAe;KACf,aAAa;IACd,CAAA;GACE,CAAA,GACL,iBAAA,GAAA,kBAAA,KAAC,QAAD,EAAM,WAAU,oIAAqI,CAAA,CAC1H;;CACP,CAAA;AAE5B,CACF;AAEA,SAAS,cAAc"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { u as SparkStyle } from "../theme-types-8wjgiNA_.cjs";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
|
|
6
|
+
|
|
7
|
+
//#region src/components/checkbox.d.ts
|
|
8
|
+
type SparkCheckboxColor = 'accent' | 'neutral' | 'danger';
|
|
9
|
+
type CheckboxProps = Checkbox$1.Root.Props & {
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated The checkbox now renders a single 24px size (with a 40px hit
|
|
12
|
+
* area). Accepted for back-compat but ignored.
|
|
13
|
+
*/
|
|
14
|
+
size?: 'default' | 'large';
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated The checkbox is always bordered now. Accepted for back-compat
|
|
17
|
+
* but ignored.
|
|
18
|
+
*/
|
|
19
|
+
bordered?: boolean;
|
|
20
|
+
styleVariant?: SparkStyle;
|
|
21
|
+
color?: SparkCheckboxColor;
|
|
22
|
+
};
|
|
23
|
+
declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxProps, "ref"> & React$1.RefAttributes<HTMLElement>>;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { Checkbox, type CheckboxProps, SparkCheckboxColor };
|
|
26
|
+
//# sourceMappingURL=checkbox.d.cts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { u as SparkStyle } from "../theme-types-8wjgiNA_.js";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
|
|
6
|
+
|
|
7
|
+
//#region src/components/checkbox.d.ts
|
|
8
|
+
type SparkCheckboxColor = 'accent' | 'neutral' | 'danger';
|
|
9
|
+
type CheckboxProps = Checkbox$1.Root.Props & {
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated The checkbox now renders a single 24px size (with a 40px hit
|
|
12
|
+
* area). Accepted for back-compat but ignored.
|
|
13
|
+
*/
|
|
14
|
+
size?: 'default' | 'large';
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated The checkbox is always bordered now. Accepted for back-compat
|
|
17
|
+
* but ignored.
|
|
18
|
+
*/
|
|
19
|
+
bordered?: boolean;
|
|
20
|
+
styleVariant?: SparkStyle;
|
|
21
|
+
color?: SparkCheckboxColor;
|
|
22
|
+
};
|
|
23
|
+
declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxProps, "ref"> & React$1.RefAttributes<HTMLElement>>;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { Checkbox, type CheckboxProps, SparkCheckboxColor };
|
|
26
|
+
//# sourceMappingURL=checkbox.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { accentByColor } from "../lib/accent-colors.js";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
|
|
7
|
+
//#region src/components/checkbox.tsx
|
|
8
|
+
const Checkbox = React$1.forwardRef(({ className, size: _size, bordered: _bordered, styleVariant, color, ...props }, ref) => {
|
|
9
|
+
const dataStyle = styleVariant !== void 0 || color !== void 0 ? styleVariant ?? "solid" : void 0;
|
|
10
|
+
const dataAccentColor = color ? accentByColor[color] : void 0;
|
|
11
|
+
return /* @__PURE__ */ jsx(Checkbox$1.Root, {
|
|
12
|
+
"data-style": dataStyle,
|
|
13
|
+
"data-accent-color": dataAccentColor,
|
|
14
|
+
className: cn("peer relative inline-flex size-6 shrink-0 cursor-pointer items-center justify-center border-(length:--spark-style-border-width,2px) transition-colors", "before:absolute before:top-1/2 before:left-1/2 before:size-10 before:-translate-x-1/2 before:-translate-y-1/2 before:content-['']", "rounded-[min(var(--spark-rounded-sm),40%)]", "focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden", "data-disabled:cursor-not-allowed data-disabled:opacity-50", "border-(--spark-style-idle-border,var(--spark-a7)) bg-base-accent-soft", "data-checked:border-(--spark-style-border,var(--spark-9)) data-checked:bg-(--spark-style-bg,var(--spark-9))", "data-indeterminate:border-(--spark-style-border,var(--spark-9)) data-indeterminate:bg-(--spark-style-bg,var(--spark-9))", className),
|
|
15
|
+
ref,
|
|
16
|
+
...props,
|
|
17
|
+
children: /* @__PURE__ */ jsxs(Checkbox$1.Indicator, {
|
|
18
|
+
className: "group inline-flex items-center justify-center text-(--spark-style-fg,var(--spark-on-solid))",
|
|
19
|
+
children: [/* @__PURE__ */ jsx("svg", {
|
|
20
|
+
"aria-hidden": "true",
|
|
21
|
+
className: "hidden size-5 group-data-checked:block",
|
|
22
|
+
fill: "none",
|
|
23
|
+
viewBox: "0 0 24 24",
|
|
24
|
+
children: /* @__PURE__ */ jsx("path", {
|
|
25
|
+
className: "animate-check-draw [stroke-dasharray:1] motion-reduce:animate-none",
|
|
26
|
+
d: "M5.5 12.5 L10 17 L18.5 7.5",
|
|
27
|
+
pathLength: 1,
|
|
28
|
+
stroke: "currentColor",
|
|
29
|
+
strokeLinecap: "round",
|
|
30
|
+
strokeLinejoin: "round",
|
|
31
|
+
strokeWidth: 2.5
|
|
32
|
+
})
|
|
33
|
+
}), /* @__PURE__ */ jsx("span", { className: "hidden h-0.5 w-3 origin-center animate-dash-pop rounded-full bg-current group-data-indeterminate:block motion-reduce:animate-none" })]
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
Checkbox.displayName = "Checkbox";
|
|
38
|
+
//#endregion
|
|
39
|
+
export { Checkbox };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","names":["React","CheckboxPrimitive"],"sources":["../../src/components/checkbox.tsx"],"sourcesContent":["import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\nexport type SparkCheckboxColor = 'accent' | 'neutral' | 'danger'\n\ntype CheckboxProps = CheckboxPrimitive.Root.Props & {\n /**\n * @deprecated The checkbox now renders a single 24px size (with a 40px hit\n * area). Accepted for back-compat but ignored.\n */\n size?: 'default' | 'large'\n /**\n * @deprecated The checkbox is always bordered now. Accepted for back-compat\n * but ignored.\n */\n bordered?: boolean\n styleVariant?: SparkStyle\n color?: SparkCheckboxColor\n}\n\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(\n (\n {\n className,\n size: _size,\n bordered: _bordered,\n styleVariant,\n color,\n ...props\n },\n ref,\n ) => {\n const hasLook = styleVariant !== undefined || color !== undefined\n const dataStyle = hasLook ? (styleVariant ?? 'solid') : undefined\n const dataAccentColor = color ? accentByColor[color] : undefined\n\n return (\n <CheckboxPrimitive.Root\n data-style={dataStyle}\n data-accent-color={dataAccentColor}\n className={cn(\n 'peer relative inline-flex size-6 shrink-0 cursor-pointer items-center justify-center border-(length:--spark-style-border-width,2px) transition-colors',\n \"before:absolute before:top-1/2 before:left-1/2 before:size-10 before:-translate-x-1/2 before:-translate-y-1/2 before:content-['']\",\n 'rounded-[min(var(--spark-rounded-sm),40%)]',\n 'focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'data-disabled:cursor-not-allowed data-disabled:opacity-50',\n 'border-(--spark-style-idle-border,var(--spark-a7)) bg-base-accent-soft',\n 'data-checked:border-(--spark-style-border,var(--spark-9)) data-checked:bg-(--spark-style-bg,var(--spark-9))',\n 'data-indeterminate:border-(--spark-style-border,var(--spark-9)) data-indeterminate:bg-(--spark-style-bg,var(--spark-9))',\n className,\n )}\n ref={ref}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"group inline-flex items-center justify-center text-(--spark-style-fg,var(--spark-on-solid))\">\n {/* custom-drawn glyphs; group-data toggles which one the mounted indicator shows */}\n <svg\n aria-hidden=\"true\"\n className=\"hidden size-5 group-data-checked:block\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n className=\"animate-check-draw [stroke-dasharray:1] motion-reduce:animate-none\"\n d=\"M5.5 12.5 L10 17 L18.5 7.5\"\n pathLength={1}\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2.5}\n />\n </svg>\n <span className=\"hidden h-0.5 w-3 origin-center animate-dash-pop rounded-full bg-current group-data-indeterminate:block motion-reduce:animate-none\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n },\n)\n\nCheckbox.displayName = 'Checkbox'\n\nexport { Checkbox }\nexport type { CheckboxProps }\n"],"mappings":";;;;;;;AAuBA,MAAM,WAAWA,QAAM,YAKnB,EACE,WACA,MAAM,OACN,UAAU,WACV,cACA,OACA,GAAG,SAEL,QACG;CAEH,MAAM,YADU,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAC3B,gBAAgB,UAAW,KAAA;CACxD,MAAM,kBAAkB,QAAQ,cAAc,SAAS,KAAA;CAEvD,OACE,oBAACC,WAAkB,MAAnB;EACE,cAAY;EACZ,qBAAmB;EACnB,WAAW,GACT,yJACA,qIACA,8CACA,iFACA,6DACA,0EACA,+GACA,2HACA,SACF;EACK;EACL,GAAI;YAEJ,qBAACA,WAAkB,WAAnB;GAA6B,WAAU;aAAvC,CAEE,oBAAC,OAAD;IACE,eAAY;IACZ,WAAU;IACV,MAAK;IACL,SAAQ;cAER,oBAAC,QAAD;KACE,WAAU;KACV,GAAE;KACF,YAAY;KACZ,QAAO;KACP,eAAc;KACd,gBAAe;KACf,aAAa;IACd,CAAA;GACE,CAAA,GACL,oBAAC,QAAD,EAAM,WAAU,oIAAqI,CAAA,CAC1H;;CACP,CAAA;AAE5B,CACF;AAEA,SAAS,cAAc"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_chunk = require("../chunk-DY84GLCh.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
react = require_chunk.__toESM(react);
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
let cnfast = require("cnfast");
|
|
8
|
+
//#region src/components/circular-gauge.tsx
|
|
9
|
+
const TRACK_TONE_CLASSES = {
|
|
10
|
+
success: "stroke-base-success-soft",
|
|
11
|
+
warning: "stroke-base-warning-soft",
|
|
12
|
+
error: "stroke-base-error-soft",
|
|
13
|
+
accent: "stroke-base-accent-soft",
|
|
14
|
+
neutral: "stroke-base-gray-soft"
|
|
15
|
+
};
|
|
16
|
+
const INDICATOR_TONE_CLASSES = {
|
|
17
|
+
success: "stroke-base-success-solid",
|
|
18
|
+
warning: "stroke-warning-active",
|
|
19
|
+
error: "stroke-error-active",
|
|
20
|
+
accent: "stroke-accent",
|
|
21
|
+
neutral: "stroke-gray"
|
|
22
|
+
};
|
|
23
|
+
const CircularGauge = ({ className, value, max = 100, tone = "accent", size = 44, strokeWidth = 4, children, ...rest }) => {
|
|
24
|
+
const clamped = Math.min(Math.max(value, 0), max);
|
|
25
|
+
const radius = (size - strokeWidth) / 2;
|
|
26
|
+
const circumference = 2 * Math.PI * radius;
|
|
27
|
+
const offset = circumference * (1 - clamped / max);
|
|
28
|
+
const percent = Math.round(clamped / max * 100);
|
|
29
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
30
|
+
className: (0, cnfast.cn)("relative inline-flex shrink-0", className),
|
|
31
|
+
style: {
|
|
32
|
+
width: size,
|
|
33
|
+
height: size
|
|
34
|
+
},
|
|
35
|
+
role: "meter",
|
|
36
|
+
"aria-valuemin": 0,
|
|
37
|
+
"aria-valuemax": max,
|
|
38
|
+
"aria-valuenow": value,
|
|
39
|
+
"aria-valuetext": `${percent}%`,
|
|
40
|
+
...rest,
|
|
41
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
42
|
+
className: "size-full -rotate-90",
|
|
43
|
+
width: size,
|
|
44
|
+
height: size,
|
|
45
|
+
viewBox: `0 0 ${size} ${size}`,
|
|
46
|
+
"aria-hidden": "true",
|
|
47
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
|
|
48
|
+
cx: size / 2,
|
|
49
|
+
cy: size / 2,
|
|
50
|
+
r: radius,
|
|
51
|
+
fill: "none",
|
|
52
|
+
strokeWidth,
|
|
53
|
+
className: TRACK_TONE_CLASSES[tone]
|
|
54
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
|
|
55
|
+
cx: size / 2,
|
|
56
|
+
cy: size / 2,
|
|
57
|
+
r: radius,
|
|
58
|
+
fill: "none",
|
|
59
|
+
strokeWidth,
|
|
60
|
+
strokeLinecap: "round",
|
|
61
|
+
strokeDasharray: circumference,
|
|
62
|
+
strokeDashoffset: offset,
|
|
63
|
+
className: (0, cnfast.cn)("transition-[stroke-dashoffset] duration-300", INDICATOR_TONE_CLASSES[tone])
|
|
64
|
+
})]
|
|
65
|
+
}), children !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
66
|
+
className: "absolute inset-0 flex items-center justify-center text-[11px] leading-none font-semibold tabular-nums",
|
|
67
|
+
children
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
//#endregion
|
|
72
|
+
exports.CircularGauge = CircularGauge;
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=circular-gauge.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circular-gauge.cjs","names":[],"sources":["../../src/components/circular-gauge.tsx"],"sourcesContent":["import * as React from 'react'\nimport type { Tone } from '../lib/tones'\nimport { cn } from '../utils/cn'\n\nconst TRACK_TONE_CLASSES: Record<Tone, string> = {\n success: 'stroke-base-success-soft',\n warning: 'stroke-base-warning-soft',\n error: 'stroke-base-error-soft',\n accent: 'stroke-base-accent-soft',\n neutral: 'stroke-base-gray-soft',\n}\n\nconst INDICATOR_TONE_CLASSES: Record<Tone, string> = {\n // solid ramp, not `-active`: keeps the ring in step with DeviceCardState's dot\n success: 'stroke-base-success-solid',\n warning: 'stroke-warning-active',\n error: 'stroke-error-active',\n accent: 'stroke-accent',\n neutral: 'stroke-gray',\n}\n\n/**\n * Consumers should pass an `aria-label` to name the metric the gauge represents\n * (e.g. \"Battery\"); `aria-valuetext` defaults to the value as a percentage.\n */\nexport interface CircularGaugeProps extends Omit<\n React.ComponentProps<'div'>,\n 'children'\n> {\n /** Current value (0–max). */\n value: number\n /** Maximum value. Default: 100 */\n max?: number\n /** Tone color for the indicator/track pair. Default: \"accent\" */\n tone?: Tone\n /** Diameter in pixels. Default: 44 */\n size?: number\n /** Stroke thickness in pixels. Default: 4 */\n strokeWidth?: number\n /** Optional content rendered centered inside the gauge (e.g. percentage, icon). */\n children?: React.ReactNode\n}\n\nconst CircularGauge = ({\n className,\n value,\n max = 100,\n tone = 'accent',\n size = 44,\n strokeWidth = 4,\n children,\n ...rest\n}: CircularGaugeProps) => {\n const clamped = Math.min(Math.max(value, 0), max)\n const radius = (size - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const offset = circumference * (1 - clamped / max)\n const percent = Math.round((clamped / max) * 100)\n\n return (\n <div\n className={cn('relative inline-flex shrink-0', className)}\n style={{ width: size, height: size }}\n role=\"meter\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-valuetext={`${percent}%`}\n {...rest}\n >\n <svg\n className=\"size-full -rotate-90\"\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n aria-hidden=\"true\"\n >\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n className={TRACK_TONE_CLASSES[tone]}\n />\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n className={cn(\n 'transition-[stroke-dashoffset] duration-300',\n INDICATOR_TONE_CLASSES[tone],\n )}\n />\n </svg>\n {children !== undefined && (\n <span className=\"absolute inset-0 flex items-center justify-center text-[11px] leading-none font-semibold tabular-nums\">\n {children}\n </span>\n )}\n </div>\n )\n}\n\nexport { CircularGauge }\n"],"mappings":";;;;;;;;AAIA,MAAM,qBAA2C;CAC/C,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACR,SAAS;AACX;AAEA,MAAM,yBAA+C;CAEnD,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;CACR,SAAS;AACX;AAwBA,MAAM,iBAAiB,EACrB,WACA,OACA,MAAM,KACN,OAAO,UACP,OAAO,IACP,cAAc,GACd,UACA,GAAG,WACqB;CACxB,MAAM,UAAU,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,GAAG;CAChD,MAAM,UAAU,OAAO,eAAe;CACtC,MAAM,gBAAgB,IAAI,KAAK,KAAK;CACpC,MAAM,SAAS,iBAAiB,IAAI,UAAU;CAC9C,MAAM,UAAU,KAAK,MAAO,UAAU,MAAO,GAAG;CAEhD,OACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EACE,YAAA,GAAA,OAAA,IAAc,iCAAiC,SAAS;EACxD,OAAO;GAAE,OAAO;GAAM,QAAQ;EAAK;EACnC,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,iBAAe;EACf,kBAAgB,GAAG,QAAQ;EAC3B,GAAI;YARN,CAUE,iBAAA,GAAA,kBAAA,MAAC,OAAD;GACE,WAAU;GACV,OAAO;GACP,QAAQ;GACR,SAAS,OAAO,KAAK,GAAG;GACxB,eAAY;aALd,CAOE,iBAAA,GAAA,kBAAA,KAAC,UAAD;IACE,IAAI,OAAO;IACX,IAAI,OAAO;IACX,GAAG;IACH,MAAK;IACQ;IACb,WAAW,mBAAmB;GAC/B,CAAA,GACD,iBAAA,GAAA,kBAAA,KAAC,UAAD;IACE,IAAI,OAAO;IACX,IAAI,OAAO;IACX,GAAG;IACH,MAAK;IACQ;IACb,eAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,YAAA,GAAA,OAAA,IACE,+CACA,uBAAuB,KACzB;GACD,CAAA,CACE;MACJ,aAAa,KAAA,KACZ,iBAAA,GAAA,kBAAA,KAAC,QAAD;GAAM,WAAU;GACb;EACG,CAAA,CAEL;;AAET"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { Tone } from "../lib/tones.cjs";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/circular-gauge.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Consumers should pass an `aria-label` to name the metric the gauge represents
|
|
9
|
+
* (e.g. "Battery"); `aria-valuetext` defaults to the value as a percentage.
|
|
10
|
+
*/
|
|
11
|
+
interface CircularGaugeProps extends Omit<React$1.ComponentProps<'div'>, 'children'> {
|
|
12
|
+
/** Current value (0–max). */
|
|
13
|
+
value: number;
|
|
14
|
+
/** Maximum value. Default: 100 */
|
|
15
|
+
max?: number;
|
|
16
|
+
/** Tone color for the indicator/track pair. Default: "accent" */
|
|
17
|
+
tone?: Tone;
|
|
18
|
+
/** Diameter in pixels. Default: 44 */
|
|
19
|
+
size?: number;
|
|
20
|
+
/** Stroke thickness in pixels. Default: 4 */
|
|
21
|
+
strokeWidth?: number;
|
|
22
|
+
/** Optional content rendered centered inside the gauge (e.g. percentage, icon). */
|
|
23
|
+
children?: React$1.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
declare const CircularGauge: ({
|
|
26
|
+
className,
|
|
27
|
+
value,
|
|
28
|
+
max,
|
|
29
|
+
tone,
|
|
30
|
+
size,
|
|
31
|
+
strokeWidth,
|
|
32
|
+
children,
|
|
33
|
+
...rest
|
|
34
|
+
}: CircularGaugeProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
//#endregion
|
|
36
|
+
export { CircularGauge, CircularGaugeProps };
|
|
37
|
+
//# sourceMappingURL=circular-gauge.d.cts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { Tone } from "../lib/tones.js";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/circular-gauge.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Consumers should pass an `aria-label` to name the metric the gauge represents
|
|
9
|
+
* (e.g. "Battery"); `aria-valuetext` defaults to the value as a percentage.
|
|
10
|
+
*/
|
|
11
|
+
interface CircularGaugeProps extends Omit<React$1.ComponentProps<'div'>, 'children'> {
|
|
12
|
+
/** Current value (0–max). */
|
|
13
|
+
value: number;
|
|
14
|
+
/** Maximum value. Default: 100 */
|
|
15
|
+
max?: number;
|
|
16
|
+
/** Tone color for the indicator/track pair. Default: "accent" */
|
|
17
|
+
tone?: Tone;
|
|
18
|
+
/** Diameter in pixels. Default: 44 */
|
|
19
|
+
size?: number;
|
|
20
|
+
/** Stroke thickness in pixels. Default: 4 */
|
|
21
|
+
strokeWidth?: number;
|
|
22
|
+
/** Optional content rendered centered inside the gauge (e.g. percentage, icon). */
|
|
23
|
+
children?: React$1.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
declare const CircularGauge: ({
|
|
26
|
+
className,
|
|
27
|
+
value,
|
|
28
|
+
max,
|
|
29
|
+
tone,
|
|
30
|
+
size,
|
|
31
|
+
strokeWidth,
|
|
32
|
+
children,
|
|
33
|
+
...rest
|
|
34
|
+
}: CircularGaugeProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
//#endregion
|
|
36
|
+
export { CircularGauge, CircularGaugeProps };
|
|
37
|
+
//# sourceMappingURL=circular-gauge.d.ts.map
|