@epilot/spark-ui 1.0.0-alpha.2 → 1.0.0-alpha.4
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 +7 -1
- package/dist/chunk-aJGBMT86.cjs +29 -0
- package/dist/components/accordion.cjs +57 -0
- package/dist/components/accordion.cjs.map +1 -0
- package/dist/components/accordion.d.cts +45 -0
- package/dist/components/accordion.d.ts +45 -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 +63 -0
- package/dist/components/alert-dialog.d.ts +63 -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 +67 -0
- package/dist/components/attachment.d.ts +67 -0
- package/dist/components/attachment.js +108 -0
- package/dist/components/attachment.js.map +1 -0
- package/dist/components/badge.cjs +20 -0
- package/dist/components/badge.cjs.map +1 -0
- package/dist/components/badge.d.cts +12 -0
- package/dist/components/badge.d.ts +12 -0
- package/dist/components/badge.js +17 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/bar-chart.cjs +520 -0
- package/dist/components/bar-chart.cjs.map +1 -0
- package/dist/components/bar-chart.d.cts +88 -0
- package/dist/components/bar-chart.d.ts +88 -0
- package/dist/components/bar-chart.js +518 -0
- package/dist/components/bar-chart.js.map +1 -0
- package/dist/components/battery-progress-row.cjs +140 -0
- package/dist/components/battery-progress-row.cjs.map +1 -0
- package/dist/components/battery-progress-row.d.cts +78 -0
- package/dist/components/battery-progress-row.d.ts +78 -0
- package/dist/components/battery-progress-row.js +129 -0
- package/dist/components/battery-progress-row.js.map +1 -0
- package/dist/components/breadcrumbs.cjs +65 -0
- package/dist/components/breadcrumbs.cjs.map +1 -0
- package/dist/components/breadcrumbs.d.cts +44 -0
- package/dist/components/breadcrumbs.d.ts +44 -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 +41 -0
- package/dist/components/bubble.d.ts +41 -0
- package/dist/components/bubble.js +78 -0
- package/dist/components/bubble.js.map +1 -0
- package/dist/components/button.cjs +54 -0
- package/dist/components/button.cjs.map +1 -0
- package/dist/components/button.d.cts +42 -0
- package/dist/components/button.d.ts +42 -0
- package/dist/components/button.js +50 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.cjs +58 -0
- package/dist/components/calendar.cjs.map +1 -0
- package/dist/components/calendar.d.cts +17 -0
- package/dist/components/calendar.d.ts +17 -0
- package/dist/components/calendar.js +55 -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 +39 -0
- package/dist/components/callout.d.ts +39 -0
- package/dist/components/callout.js +88 -0
- package/dist/components/callout.js.map +1 -0
- package/dist/components/card.cjs +86 -0
- package/dist/components/card.cjs.map +1 -0
- package/dist/components/card.d.cts +28 -0
- package/dist/components/card.d.ts +28 -0
- package/dist/components/card.js +76 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/chart.cjs +93 -0
- package/dist/components/chart.cjs.map +1 -0
- package/dist/components/chart.d.cts +83 -0
- package/dist/components/chart.d.ts +83 -0
- package/dist/components/chart.js +88 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.cjs +37 -0
- package/dist/components/checkbox.cjs.map +1 -0
- package/dist/components/checkbox.d.cts +22 -0
- package/dist/components/checkbox.d.ts +22 -0
- package/dist/components/checkbox.js +34 -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 +38 -0
- package/dist/components/circular-gauge.d.ts +38 -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 +71 -0
- package/dist/components/device-card.d.ts +71 -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 +45 -0
- package/dist/components/dialog.d.ts +45 -0
- package/dist/components/dialog.js +103 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/donut-chart.cjs +71 -0
- package/dist/components/donut-chart.cjs.map +1 -0
- package/dist/components/donut-chart.d.cts +22 -0
- package/dist/components/donut-chart.d.ts +22 -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 +46 -0
- package/dist/components/drawer.d.ts +46 -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 +93 -0
- package/dist/components/dropdown-menu.d.ts +93 -0
- package/dist/components/dropdown-menu.js +148 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/empty-state.cjs +35 -0
- package/dist/components/empty-state.cjs.map +1 -0
- package/dist/components/empty-state.d.cts +22 -0
- package/dist/components/empty-state.d.ts +22 -0
- package/dist/components/empty-state.js +33 -0
- package/dist/components/empty-state.js.map +1 -0
- package/dist/components/energy-bar-chart.cjs +24 -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 +81 -0
- package/dist/components/energy-breakdown.cjs.map +1 -0
- package/dist/components/energy-breakdown.d.cts +26 -0
- package/dist/components/energy-breakdown.d.ts +26 -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 +64 -0
- package/dist/components/energy-history-chart.cjs.map +1 -0
- package/dist/components/energy-history-chart.d.cts +66 -0
- package/dist/components/energy-history-chart.d.ts +66 -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 +56 -0
- package/dist/components/feed-in-hero.cjs.map +1 -0
- package/dist/components/feed-in-hero.d.cts +33 -0
- package/dist/components/feed-in-hero.d.ts +33 -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 +104 -0
- package/dist/components/field.d.ts +104 -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 +27 -0
- package/dist/components/icon.d.ts +27 -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 +20 -0
- package/dist/components/info-block.d.ts +20 -0
- package/dist/components/info-block.js +65 -0
- package/dist/components/info-block.js.map +1 -0
- package/dist/components/input-group.cjs +164 -0
- package/dist/components/input-group.cjs.map +1 -0
- package/dist/components/input-group.d.cts +32 -0
- package/dist/components/input-group.d.ts +32 -0
- package/dist/components/input-group.js +158 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input-otp.cjs +113 -0
- package/dist/components/input-otp.cjs.map +1 -0
- package/dist/components/input-otp.d.cts +22 -0
- package/dist/components/input-otp.d.ts +22 -0
- package/dist/components/input-otp.js +111 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.cjs +112 -0
- package/dist/components/input.cjs.map +1 -0
- package/dist/components/input.d.cts +21 -0
- package/dist/components/input.d.ts +21 -0
- package/dist/components/input.js +109 -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 +15 -0
- package/dist/components/layout.cjs.map +1 -0
- package/dist/components/layout.d.cts +12 -0
- package/dist/components/layout.d.ts +13 -0
- package/dist/components/layout.js +14 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/line-chart.cjs +350 -0
- package/dist/components/line-chart.cjs.map +1 -0
- package/dist/components/line-chart.d.cts +78 -0
- package/dist/components/line-chart.d.ts +78 -0
- package/dist/components/line-chart.js +347 -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 +72 -0
- package/dist/components/list.d.ts +72 -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 +29 -0
- package/dist/components/marker.d.ts +29 -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 +39 -0
- package/dist/components/message-scroller.d.ts +39 -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 +36 -0
- package/dist/components/message.d.ts +36 -0
- package/dist/components/message.js +52 -0
- package/dist/components/message.js.map +1 -0
- package/dist/components/metering-row.cjs +43 -0
- package/dist/components/metering-row.cjs.map +1 -0
- package/dist/components/metering-row.d.cts +32 -0
- package/dist/components/metering-row.d.ts +32 -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 +87 -0
- package/dist/components/money-saved-block.cjs.map +1 -0
- package/dist/components/money-saved-block.d.cts +57 -0
- package/dist/components/money-saved-block.d.ts +57 -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 +36 -0
- package/dist/components/on-off-button.cjs.map +1 -0
- package/dist/components/on-off-button.d.cts +20 -0
- package/dist/components/on-off-button.d.ts +20 -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 +68 -0
- package/dist/components/onboarding-layout.cjs.map +1 -0
- package/dist/components/onboarding-layout.d.cts +46 -0
- package/dist/components/onboarding-layout.d.ts +46 -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 +26 -0
- package/dist/components/page-header.d.ts +26 -0
- package/dist/components/page-header.js +44 -0
- package/dist/components/page-header.js.map +1 -0
- package/dist/components/page-spinner.cjs +19 -0
- package/dist/components/page-spinner.cjs.map +1 -0
- package/dist/components/page-spinner.d.cts +14 -0
- package/dist/components/page-spinner.d.ts +14 -0
- package/dist/components/page-spinner.js +17 -0
- package/dist/components/page-spinner.js.map +1 -0
- package/dist/components/period-tabs.cjs +79 -0
- package/dist/components/period-tabs.cjs.map +1 -0
- package/dist/components/period-tabs.d.cts +51 -0
- package/dist/components/period-tabs.d.ts +51 -0
- package/dist/components/period-tabs.js +73 -0
- package/dist/components/period-tabs.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 +29 -0
- package/dist/components/popover.d.ts +29 -0
- package/dist/components/popover.js +56 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/power-history-chart.cjs +335 -0
- package/dist/components/power-history-chart.cjs.map +1 -0
- package/dist/components/power-history-chart.d.cts +63 -0
- package/dist/components/power-history-chart.d.ts +63 -0
- package/dist/components/power-history-chart.js +332 -0
- package/dist/components/power-history-chart.js.map +1 -0
- package/dist/components/power-history.cjs +115 -0
- package/dist/components/power-history.cjs.map +1 -0
- package/dist/components/power-history.d.cts +42 -0
- package/dist/components/power-history.d.ts +43 -0
- package/dist/components/power-history.js +114 -0
- package/dist/components/power-history.js.map +1 -0
- package/dist/components/power-network.cjs +530 -0
- package/dist/components/power-network.cjs.map +1 -0
- package/dist/components/power-network.d.cts +77 -0
- package/dist/components/power-network.d.ts +77 -0
- package/dist/components/power-network.js +523 -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 +69 -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 +65 -0
- package/dist/components/radio-card-group.js.map +1 -0
- package/dist/components/radio.cjs +34 -0
- package/dist/components/radio.cjs.map +1 -0
- package/dist/components/radio.d.cts +21 -0
- package/dist/components/radio.d.ts +21 -0
- package/dist/components/radio.js +30 -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 +29 -0
- package/dist/components/reparent.d.ts +29 -0
- package/dist/components/reparent.js +49 -0
- package/dist/components/reparent.js.map +1 -0
- package/dist/components/sankey-chart.cjs +188 -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 +26 -0
- package/dist/components/scroll-area.d.ts +26 -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 +33 -0
- package/dist/components/segmented-control.d.ts +33 -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 +63 -0
- package/dist/components/select.d.ts +63 -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 +39 -0
- package/dist/components/series-legend.cjs.map +1 -0
- package/dist/components/series-legend.d.cts +31 -0
- package/dist/components/series-legend.d.ts +31 -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 +46 -0
- package/dist/components/sheet.d.ts +46 -0
- package/dist/components/sheet.js +90 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/skeleton.cjs +24 -0
- package/dist/components/skeleton.cjs.map +1 -0
- package/dist/components/skeleton.d.cts +24 -0
- package/dist/components/skeleton.d.ts +24 -0
- package/dist/components/skeleton.js +21 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.cjs +276 -0
- package/dist/components/slider.cjs.map +1 -0
- package/dist/components/slider.d.cts +150 -0
- package/dist/components/slider.d.ts +150 -0
- package/dist/components/slider.js +266 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/smart-toggle-button.cjs +28 -0
- package/dist/components/smart-toggle-button.cjs.map +1 -0
- package/dist/components/smart-toggle-button.d.cts +18 -0
- package/dist/components/smart-toggle-button.d.ts +18 -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 +106 -0
- package/dist/components/solar-forecast-chart.cjs.map +1 -0
- package/dist/components/solar-forecast-chart.d.cts +69 -0
- package/dist/components/solar-forecast-chart.d.ts +69 -0
- package/dist/components/solar-forecast-chart.js +100 -0
- package/dist/components/solar-forecast-chart.js.map +1 -0
- package/dist/components/sortable-list.cjs +69 -0
- package/dist/components/sortable-list.cjs.map +1 -0
- package/dist/components/sortable-list.d.cts +46 -0
- package/dist/components/sortable-list.d.ts +46 -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 +58 -0
- package/dist/components/stat-card.cjs.map +1 -0
- package/dist/components/stat-card.d.cts +36 -0
- package/dist/components/stat-card.d.ts +36 -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 +22 -0
- package/dist/components/switch.cjs.map +1 -0
- package/dist/components/switch.d.cts +28 -0
- package/dist/components/switch.d.ts +28 -0
- package/dist/components/switch.js +20 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/tabs.cjs +175 -0
- package/dist/components/tabs.cjs.map +1 -0
- package/dist/components/tabs.d.cts +45 -0
- package/dist/components/tabs.d.ts +45 -0
- package/dist/components/tabs.js +167 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/theme.cjs +6 -0
- package/dist/components/theme.d.cts +38 -0
- package/dist/components/theme.d.ts +38 -0
- package/dist/components/theme.js +4 -0
- package/dist/components/thumbnail.cjs +54 -0
- package/dist/components/thumbnail.cjs.map +1 -0
- package/dist/components/thumbnail.d.cts +34 -0
- package/dist/components/thumbnail.d.ts +34 -0
- package/dist/components/thumbnail.js +51 -0
- package/dist/components/thumbnail.js.map +1 -0
- package/dist/components/time-picker.cjs +55 -0
- package/dist/components/time-picker.cjs.map +1 -0
- package/dist/components/time-picker.d.cts +41 -0
- package/dist/components/time-picker.d.ts +41 -0
- package/dist/components/time-picker.js +51 -0
- package/dist/components/time-picker.js.map +1 -0
- package/dist/components/toast.cjs +99 -0
- package/dist/components/toast.cjs.map +1 -0
- package/dist/components/toast.d.cts +18 -0
- package/dist/components/toast.d.ts +18 -0
- package/dist/components/toast.js +95 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/tooltip.cjs +75 -0
- package/dist/components/tooltip.cjs.map +1 -0
- package/dist/components/tooltip.d.cts +47 -0
- package/dist/components/tooltip.d.ts +47 -0
- package/dist/components/tooltip.js +67 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/typography.cjs +52 -0
- package/dist/components/typography.cjs.map +1 -0
- package/dist/components/typography.d.cts +32 -0
- package/dist/components/typography.d.ts +32 -0
- package/dist/components/typography.js +45 -0
- package/dist/components/typography.js.map +1 -0
- package/dist/hooks/use-container-width.cjs +22 -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/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 +105 -0
- package/dist/icons/material-symbol.cjs.map +1 -0
- package/dist/icons/material-symbol.d.cts +23 -0
- package/dist/icons/material-symbol.d.ts +23 -0
- package/dist/icons/material-symbol.js +100 -0
- package/dist/icons/material-symbol.js.map +1 -0
- package/dist/input-box-variants-BMDdwvqg.cjs +40 -0
- package/dist/input-box-variants-BMDdwvqg.cjs.map +1 -0
- package/dist/input-box-variants-Dr1K7uYE.js +28 -0
- package/dist/input-box-variants-Dr1K7uYE.js.map +1 -0
- package/dist/number-flow-DMJouddg.d.cts +15 -0
- package/dist/number-flow-DSbucQ_K.d.ts +15 -0
- package/dist/styles/index.css +260 -0
- package/dist/styles/internal.css +5 -0
- package/dist/styles/material-symbol.css +22 -0
- package/dist/styles/spark-default.css +888 -0
- package/dist/styles/theme.css +620 -0
- package/dist/styles/utilities.css +557 -0
- package/dist/theme-C19BbKfO.js +574 -0
- package/dist/theme-C19BbKfO.js.map +1 -0
- package/dist/theme-CfFWrMEF.cjs +592 -0
- package/dist/theme-CfFWrMEF.cjs.map +1 -0
- package/dist/theme-types-DoROIXpi.d.ts +30 -0
- package/dist/theme-types-r20EJfEC.d.cts +30 -0
- package/dist/tones-DjgKOX3s.d.cts +8 -0
- package/dist/tones-DyCkL71h.d.ts +8 -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 +43 -0
- package/dist/utils/chart-scale.cjs.map +1 -0
- package/dist/utils/chart-scale.d.cts +22 -0
- package/dist/utils/chart-scale.d.ts +22 -0
- package/dist/utils/chart-scale.js +41 -0
- package/dist/utils/chart-scale.js.map +1 -0
- package/dist/utils/cn.cjs +10 -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 +78 -63
- package/dist/index.cjs +0 -1631
- package/dist/index.cjs.map +0 -1
- package/dist/index.css +0 -1
- package/dist/index.d.cts +0 -299
- package/dist/index.d.ts +0 -299
- package/dist/index.js +0 -1518
- package/dist/index.js.map +0 -1
- package/dist/styles.js +0 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import "../utils/chars.js";
|
|
3
|
+
import { twoDecimalFormat } from "../utils/format.js";
|
|
4
|
+
import { EnergyBarChart } from "./energy-bar-chart.js";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/energy-history-chart.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Energy-per-bucket stacked bar chart: solar (orange), battery (green) and grid
|
|
9
|
+
* (blue) energy sources stacked per bucket, the total height being the energy
|
|
10
|
+
* consumed. Grid feed-in (translucent blue) dips below the baseline as an
|
|
11
|
+
* export. For cumulative energy (week/month/year views). Thin wrapper over the
|
|
12
|
+
* shared visx `BarChart`, so it inherits the card tooltip and both indicators.
|
|
13
|
+
*/
|
|
14
|
+
function EnergyHistoryChart({ data, unit, formatValue, formatBucketLabel, labels, omitSeries, highlightedBucket, showHighlightLine, title, className, height = 260, categoryTicks }) {
|
|
15
|
+
const fmtValue = (value) => formatValue ? formatValue(value) : `${twoDecimalFormat.format(value)} ${unit}`;
|
|
16
|
+
const omitted = new Set(omitSeries);
|
|
17
|
+
return /* @__PURE__ */ jsx(EnergyBarChart, {
|
|
18
|
+
data,
|
|
19
|
+
series: [
|
|
20
|
+
{
|
|
21
|
+
key: "solar",
|
|
22
|
+
label: labels.solar,
|
|
23
|
+
color: "var(--orange-9)",
|
|
24
|
+
getValue: (d) => d.solar
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: "battery",
|
|
28
|
+
label: labels.battery,
|
|
29
|
+
color: "var(--green-9)",
|
|
30
|
+
getValue: (d) => d.battery
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
key: "grid",
|
|
34
|
+
label: labels.grid,
|
|
35
|
+
color: "var(--blue-9)",
|
|
36
|
+
getValue: (d) => d.grid
|
|
37
|
+
},
|
|
38
|
+
...labels.gridFeedIn !== void 0 ? [{
|
|
39
|
+
key: "gridFeedIn",
|
|
40
|
+
label: labels.gridFeedIn,
|
|
41
|
+
color: "var(--blue-7)",
|
|
42
|
+
getValue: (d) => -Math.max(0, d.gridFeedIn ?? 0)
|
|
43
|
+
}] : []
|
|
44
|
+
].filter((s) => !omitted.has(s.key)),
|
|
45
|
+
getCategory: (d) => d.bucket,
|
|
46
|
+
title,
|
|
47
|
+
yAxisUnit: unit,
|
|
48
|
+
height,
|
|
49
|
+
className,
|
|
50
|
+
formatValue: fmtValue,
|
|
51
|
+
categoryTicks,
|
|
52
|
+
...formatBucketLabel && { formatTooltipCategory: (category) => formatBucketLabel(String(category)) },
|
|
53
|
+
totalSuffix: unit,
|
|
54
|
+
totalFormat: { maximumFractionDigits: 2 },
|
|
55
|
+
...highlightedBucket !== void 0 && { highlightedCategory: highlightedBucket },
|
|
56
|
+
...showHighlightLine !== void 0 && { showHighlightLine }
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { EnergyHistoryChart };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=energy-history-chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"energy-history-chart.js","names":["valueFormat"],"sources":["../../src/components/energy-history-chart.tsx"],"sourcesContent":["import { NARROW_NBSP } from '../utils/chars'\nimport { twoDecimalFormat as valueFormat } from '../utils/format'\nimport type { BarChartSeries } from './bar-chart'\nimport { EnergyBarChart } from './energy-bar-chart'\n\nexport interface EnergyHistoryDatum {\n /** Bucket label/id (e.g. weekday, day-of-month, month). */\n bucket: string\n /** Solar used on-site (kWh, ≥ 0). */\n solar: number\n /** Battery discharged (kWh, ≥ 0). */\n battery: number\n /** Grid imported (kWh, ≥ 0). */\n grid: number\n /** Grid feed-in (kWh, ≥ 0); drawn below the baseline as an export. */\n gridFeedIn?: number\n}\n\nexport interface EnergyHistoryChartProps {\n data: EnergyHistoryDatum[]\n /** Axis/tooltip unit, e.g. \"kWh\". */\n unit: string\n formatValue?: (value: number) => string\n /** Formats the hovered bucket in the tooltip header. Defaults to the raw bucket. */\n formatBucketLabel?: (bucket: string) => string\n labels: {\n solar: string\n battery: string\n grid: string\n /** Optional; when set, grid feed-in is drawn below the baseline. */\n gridFeedIn?: string\n }\n /** Series to drop entirely (no legend entry, bar segment, or tooltip row). */\n omitSeries?: readonly EnergyHistorySeriesKey[]\n /** Bucket to mark with the current-period dashed line. */\n highlightedBucket?: string\n showHighlightLine?: boolean\n title?: string\n className?: string\n height?: number\n /** Subset of bucket ids to label on the x-axis. Defaults to all buckets. */\n categoryTicks?: string[]\n}\n\nexport type EnergyHistorySeriesKey = 'solar' | 'battery' | 'grid' | 'gridFeedIn'\n\n/**\n * Energy-per-bucket stacked bar chart: solar (orange), battery (green) and grid\n * (blue) energy sources stacked per bucket, the total height being the energy\n * consumed. Grid feed-in (translucent blue) dips below the baseline as an\n * export. For cumulative energy (week/month/year views). Thin wrapper over the\n * shared visx `BarChart`, so it inherits the card tooltip and both indicators.\n */\nexport function EnergyHistoryChart({\n data,\n unit,\n formatValue,\n formatBucketLabel,\n labels,\n omitSeries,\n highlightedBucket,\n showHighlightLine,\n title,\n className,\n height = 260,\n categoryTicks,\n}: EnergyHistoryChartProps) {\n const fmtValue = (value: number) =>\n formatValue\n ? formatValue(value)\n : `${valueFormat.format(value)}${NARROW_NBSP}${unit}`\n\n const omitted = new Set<EnergyHistorySeriesKey>(omitSeries)\n const allSeries: BarChartSeries<EnergyHistoryDatum>[] = [\n {\n key: 'solar',\n label: labels.solar,\n color: 'var(--orange-9)',\n getValue: (d) => d.solar,\n },\n {\n key: 'battery',\n label: labels.battery,\n color: 'var(--green-9)',\n getValue: (d) => d.battery,\n },\n {\n key: 'grid',\n label: labels.grid,\n color: 'var(--blue-9)',\n getValue: (d) => d.grid,\n },\n ...(labels.gridFeedIn !== undefined\n ? [\n {\n key: 'gridFeedIn',\n label: labels.gridFeedIn,\n color: 'var(--blue-7)',\n getValue: (d: EnergyHistoryDatum) =>\n -Math.max(0, d.gridFeedIn ?? 0),\n },\n ]\n : []),\n ]\n const series = allSeries.filter(\n (s) => !omitted.has(s.key as EnergyHistorySeriesKey),\n )\n\n return (\n <EnergyBarChart<EnergyHistoryDatum>\n data={data}\n series={series}\n getCategory={(d) => d.bucket}\n title={title}\n yAxisUnit={unit}\n height={height}\n className={className}\n formatValue={fmtValue}\n categoryTicks={categoryTicks}\n {...(formatBucketLabel && {\n formatTooltipCategory: (category: string | number) =>\n formatBucketLabel(String(category)),\n })}\n totalSuffix={unit}\n totalFormat={{ maximumFractionDigits: 2 }}\n {...(highlightedBucket !== undefined && {\n highlightedCategory: highlightedBucket,\n })}\n {...(showHighlightLine !== undefined && { showHighlightLine })}\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAqDA,SAAgB,mBAAmB,EACjC,MACA,MACA,aACA,mBACA,QACA,YACA,mBACA,mBACA,OACA,WACA,SAAS,KACT,iBAC0B;CAC1B,MAAM,YAAY,UAChB,cACI,YAAY,MAAM,GAClB,GAAGA,iBAAY,OAAO,MAAM,IAAiB;CAEnD,MAAM,UAAU,IAAI,IAA4B,WAAW;AAoC3D,QACE,oBAAC,gBAAD;EACQ;EACN,QAPW;GA9Bb;IACE,KAAK;IACL,OAAO,OAAO;IACd,OAAO;IACP,WAAW,MAAM,EAAE;IACpB;GACD;IACE,KAAK;IACL,OAAO,OAAO;IACd,OAAO;IACP,WAAW,MAAM,EAAE;IACpB;GACD;IACE,KAAK;IACL,OAAO,OAAO;IACd,OAAO;IACP,WAAW,MAAM,EAAE;IACpB;GACD,GAAI,OAAO,eAAe,KAAA,IACtB,CACE;IACE,KAAK;IACL,OAAO,OAAO;IACd,OAAO;IACP,WAAW,MACT,CAAC,KAAK,IAAI,GAAG,EAAE,cAAc,EAAE;IAClC,CACF,GACD,EAAE;GAEgB,CAAC,QACtB,MAAM,CAAC,QAAQ,IAAI,EAAE,IAA8B,CAMpC;EACd,cAAc,MAAM,EAAE;EACf;EACP,WAAW;EACH;EACG;EACX,aAAa;EACE;EACf,GAAK,qBAAqB,EACxB,wBAAwB,aACtB,kBAAkB,OAAO,SAAS,CAAC,EACtC;EACD,aAAa;EACb,aAAa,EAAE,uBAAuB,GAAG;EACzC,GAAK,sBAAsB,KAAA,KAAa,EACtC,qBAAqB,mBACtB;EACD,GAAK,sBAAsB,KAAA,KAAa,EAAE,mBAAmB;EAC7D,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
require("../chunk-aJGBMT86.cjs");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let class_variance_authority = require("class-variance-authority");
|
|
6
|
+
let cnfast = require("cnfast");
|
|
7
|
+
//#region src/components/feed-in-hero.tsx
|
|
8
|
+
const FeedInHero = ({ className, ...rest }) => {
|
|
9
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
10
|
+
className: (0, cnfast.cn)("flex flex-col items-center gap-1 rounded-2xl border border-gray p-5 text-center", className),
|
|
11
|
+
...rest
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Label row above the value. Lays out children in a flex row with a small
|
|
16
|
+
* gap so a tooltip / icon can sit alongside the label text.
|
|
17
|
+
*/
|
|
18
|
+
const FeedInHeroLabel = ({ className, ...rest }) => {
|
|
19
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
20
|
+
className: (0, cnfast.cn)("flex items-center gap-1.5 text-xs font-medium text-gray-light", className),
|
|
21
|
+
...rest
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const valueToneVariants = (0, class_variance_authority.cva)("text-4xl font-bold tabular-nums", {
|
|
25
|
+
variants: { tone: {
|
|
26
|
+
success: "text-success",
|
|
27
|
+
warning: "text-warning",
|
|
28
|
+
error: "text-error",
|
|
29
|
+
accent: "text-accent",
|
|
30
|
+
neutral: "text-gray"
|
|
31
|
+
} },
|
|
32
|
+
defaultVariants: { tone: "neutral" }
|
|
33
|
+
});
|
|
34
|
+
const FeedInHeroValue = ({ className, tone, ...rest }) => {
|
|
35
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
36
|
+
className: valueToneVariants({
|
|
37
|
+
tone,
|
|
38
|
+
className
|
|
39
|
+
}),
|
|
40
|
+
...rest
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
/** Smaller-weight unit suffix that sits inline with the value (e.g. "W"). */
|
|
44
|
+
const FeedInHeroValueUnit = ({ className, ...rest }) => {
|
|
45
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
46
|
+
className: (0, cnfast.cn)("text-2xl font-semibold", className),
|
|
47
|
+
...rest
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
exports.FeedInHero = FeedInHero;
|
|
52
|
+
exports.FeedInHeroLabel = FeedInHeroLabel;
|
|
53
|
+
exports.FeedInHeroValue = FeedInHeroValue;
|
|
54
|
+
exports.FeedInHeroValueUnit = FeedInHeroValueUnit;
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=feed-in-hero.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-in-hero.cjs","names":[],"sources":["../../src/components/feed-in-hero.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport type { Tone } from '../lib/tones'\nimport { cn } from '../utils/cn'\n\nconst FeedInHero = ({ className, ...rest }: React.ComponentProps<'div'>) => {\n return (\n <div\n className={cn(\n 'flex flex-col items-center gap-1 rounded-2xl border border-gray p-5 text-center',\n className,\n )}\n {...rest}\n />\n )\n}\n\n/**\n * Label row above the value. Lays out children in a flex row with a small\n * gap so a tooltip / icon can sit alongside the label text.\n */\nconst FeedInHeroLabel = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => {\n return (\n <div\n className={cn(\n 'flex items-center gap-1.5 text-xs font-medium text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst valueToneVariants = cva('text-4xl font-bold tabular-nums', {\n variants: {\n tone: {\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n accent: 'text-accent',\n neutral: 'text-gray',\n },\n },\n defaultVariants: {\n tone: 'neutral',\n },\n})\n\nconst FeedInHeroValue = ({\n className,\n tone,\n ...rest\n}: React.ComponentProps<'span'> & { tone?: Tone }) => {\n return <span className={valueToneVariants({ tone, className })} {...rest} />\n}\n\n/** Smaller-weight unit suffix that sits inline with the value (e.g. \"W\"). */\nconst FeedInHeroValueUnit = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return <span className={cn('text-2xl font-semibold', className)} {...rest} />\n}\n\nexport { FeedInHero, FeedInHeroLabel, FeedInHeroValue, FeedInHeroValueUnit }\n"],"mappings":";;;;;;;AAIA,MAAM,cAAc,EAAE,WAAW,GAAG,WAAwC;AAC1E,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,YAAA,GAAA,OAAA,IACE,mFACA,UACD;EACD,GAAI;EACJ,CAAA;;;;;;AAQN,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC8B;AACjC,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,YAAA,GAAA,OAAA,IACE,iEACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,qBAAA,GAAA,yBAAA,KAAwB,mCAAmC;CAC/D,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;EACV,EACF;CACD,iBAAiB,EACf,MAAM,WACP;CACF,CAAC;AAEF,MAAM,mBAAmB,EACvB,WACA,MACA,GAAG,WACiD;AACpD,QAAO,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,WAAW,kBAAkB;GAAE;GAAM;GAAW,CAAC;EAAE,GAAI;EAAQ,CAAA;;;AAI9E,MAAM,uBAAuB,EAC3B,WACA,GAAG,WAC+B;AAClC,QAAO,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,YAAA,GAAA,OAAA,IAAc,0BAA0B,UAAU;EAAE,GAAI;EAAQ,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { t as Tone } from "../tones-DjgKOX3s.cjs";
|
|
4
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/feed-in-hero.d.ts
|
|
7
|
+
declare const FeedInHero: ({
|
|
8
|
+
className,
|
|
9
|
+
...rest
|
|
10
|
+
}: React.ComponentProps<"div">) => _$react_jsx_runtime0.JSX.Element;
|
|
11
|
+
/**
|
|
12
|
+
* Label row above the value. Lays out children in a flex row with a small
|
|
13
|
+
* gap so a tooltip / icon can sit alongside the label text.
|
|
14
|
+
*/
|
|
15
|
+
declare const FeedInHeroLabel: ({
|
|
16
|
+
className,
|
|
17
|
+
...rest
|
|
18
|
+
}: React.ComponentProps<"div">) => _$react_jsx_runtime0.JSX.Element;
|
|
19
|
+
declare const FeedInHeroValue: ({
|
|
20
|
+
className,
|
|
21
|
+
tone,
|
|
22
|
+
...rest
|
|
23
|
+
}: React.ComponentProps<"span"> & {
|
|
24
|
+
tone?: Tone;
|
|
25
|
+
}) => _$react_jsx_runtime0.JSX.Element;
|
|
26
|
+
/** Smaller-weight unit suffix that sits inline with the value (e.g. "W"). */
|
|
27
|
+
declare const FeedInHeroValueUnit: ({
|
|
28
|
+
className,
|
|
29
|
+
...rest
|
|
30
|
+
}: React.ComponentProps<"span">) => _$react_jsx_runtime0.JSX.Element;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { FeedInHero, FeedInHeroLabel, FeedInHeroValue, FeedInHeroValueUnit };
|
|
33
|
+
//# sourceMappingURL=feed-in-hero.d.cts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { t as Tone } from "../tones-DyCkL71h.js";
|
|
4
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/feed-in-hero.d.ts
|
|
7
|
+
declare const FeedInHero: ({
|
|
8
|
+
className,
|
|
9
|
+
...rest
|
|
10
|
+
}: React.ComponentProps<"div">) => _$react_jsx_runtime0.JSX.Element;
|
|
11
|
+
/**
|
|
12
|
+
* Label row above the value. Lays out children in a flex row with a small
|
|
13
|
+
* gap so a tooltip / icon can sit alongside the label text.
|
|
14
|
+
*/
|
|
15
|
+
declare const FeedInHeroLabel: ({
|
|
16
|
+
className,
|
|
17
|
+
...rest
|
|
18
|
+
}: React.ComponentProps<"div">) => _$react_jsx_runtime0.JSX.Element;
|
|
19
|
+
declare const FeedInHeroValue: ({
|
|
20
|
+
className,
|
|
21
|
+
tone,
|
|
22
|
+
...rest
|
|
23
|
+
}: React.ComponentProps<"span"> & {
|
|
24
|
+
tone?: Tone;
|
|
25
|
+
}) => _$react_jsx_runtime0.JSX.Element;
|
|
26
|
+
/** Smaller-weight unit suffix that sits inline with the value (e.g. "W"). */
|
|
27
|
+
declare const FeedInHeroValueUnit: ({
|
|
28
|
+
className,
|
|
29
|
+
...rest
|
|
30
|
+
}: React.ComponentProps<"span">) => _$react_jsx_runtime0.JSX.Element;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { FeedInHero, FeedInHeroLabel, FeedInHeroValue, FeedInHeroValueUnit };
|
|
33
|
+
//# sourceMappingURL=feed-in-hero.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
//#region src/components/feed-in-hero.tsx
|
|
6
|
+
const FeedInHero = ({ className, ...rest }) => {
|
|
7
|
+
return /* @__PURE__ */ jsx("div", {
|
|
8
|
+
className: cn("flex flex-col items-center gap-1 rounded-2xl border border-gray p-5 text-center", className),
|
|
9
|
+
...rest
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Label row above the value. Lays out children in a flex row with a small
|
|
14
|
+
* gap so a tooltip / icon can sit alongside the label text.
|
|
15
|
+
*/
|
|
16
|
+
const FeedInHeroLabel = ({ className, ...rest }) => {
|
|
17
|
+
return /* @__PURE__ */ jsx("div", {
|
|
18
|
+
className: cn("flex items-center gap-1.5 text-xs font-medium text-gray-light", className),
|
|
19
|
+
...rest
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const valueToneVariants = cva("text-4xl font-bold tabular-nums", {
|
|
23
|
+
variants: { tone: {
|
|
24
|
+
success: "text-success",
|
|
25
|
+
warning: "text-warning",
|
|
26
|
+
error: "text-error",
|
|
27
|
+
accent: "text-accent",
|
|
28
|
+
neutral: "text-gray"
|
|
29
|
+
} },
|
|
30
|
+
defaultVariants: { tone: "neutral" }
|
|
31
|
+
});
|
|
32
|
+
const FeedInHeroValue = ({ className, tone, ...rest }) => {
|
|
33
|
+
return /* @__PURE__ */ jsx("span", {
|
|
34
|
+
className: valueToneVariants({
|
|
35
|
+
tone,
|
|
36
|
+
className
|
|
37
|
+
}),
|
|
38
|
+
...rest
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
/** Smaller-weight unit suffix that sits inline with the value (e.g. "W"). */
|
|
42
|
+
const FeedInHeroValueUnit = ({ className, ...rest }) => {
|
|
43
|
+
return /* @__PURE__ */ jsx("span", {
|
|
44
|
+
className: cn("text-2xl font-semibold", className),
|
|
45
|
+
...rest
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { FeedInHero, FeedInHeroLabel, FeedInHeroValue, FeedInHeroValueUnit };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=feed-in-hero.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-in-hero.js","names":[],"sources":["../../src/components/feed-in-hero.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport type { Tone } from '../lib/tones'\nimport { cn } from '../utils/cn'\n\nconst FeedInHero = ({ className, ...rest }: React.ComponentProps<'div'>) => {\n return (\n <div\n className={cn(\n 'flex flex-col items-center gap-1 rounded-2xl border border-gray p-5 text-center',\n className,\n )}\n {...rest}\n />\n )\n}\n\n/**\n * Label row above the value. Lays out children in a flex row with a small\n * gap so a tooltip / icon can sit alongside the label text.\n */\nconst FeedInHeroLabel = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => {\n return (\n <div\n className={cn(\n 'flex items-center gap-1.5 text-xs font-medium text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst valueToneVariants = cva('text-4xl font-bold tabular-nums', {\n variants: {\n tone: {\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n accent: 'text-accent',\n neutral: 'text-gray',\n },\n },\n defaultVariants: {\n tone: 'neutral',\n },\n})\n\nconst FeedInHeroValue = ({\n className,\n tone,\n ...rest\n}: React.ComponentProps<'span'> & { tone?: Tone }) => {\n return <span className={valueToneVariants({ tone, className })} {...rest} />\n}\n\n/** Smaller-weight unit suffix that sits inline with the value (e.g. \"W\"). */\nconst FeedInHeroValueUnit = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return <span className={cn('text-2xl font-semibold', className)} {...rest} />\n}\n\nexport { FeedInHero, FeedInHeroLabel, FeedInHeroValue, FeedInHeroValueUnit }\n"],"mappings":";;;;;AAIA,MAAM,cAAc,EAAE,WAAW,GAAG,WAAwC;AAC1E,QACE,oBAAC,OAAD;EACE,WAAW,GACT,mFACA,UACD;EACD,GAAI;EACJ,CAAA;;;;;;AAQN,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC8B;AACjC,QACE,oBAAC,OAAD;EACE,WAAW,GACT,iEACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,oBAAoB,IAAI,mCAAmC;CAC/D,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;EACV,EACF;CACD,iBAAiB,EACf,MAAM,WACP;CACF,CAAC;AAEF,MAAM,mBAAmB,EACvB,WACA,MACA,GAAG,WACiD;AACpD,QAAO,oBAAC,QAAD;EAAM,WAAW,kBAAkB;GAAE;GAAM;GAAW,CAAC;EAAE,GAAI;EAAQ,CAAA;;;AAI9E,MAAM,uBAAuB,EAC3B,WACA,GAAG,WAC+B;AAClC,QAAO,oBAAC,QAAD;EAAM,WAAW,GAAG,0BAA0B,UAAU;EAAE,GAAI;EAAQ,CAAA"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
+
const require_chunk = require("../chunk-aJGBMT86.cjs");
|
|
5
|
+
const require_components_separator = require("./separator.cjs");
|
|
6
|
+
const require_theme = require("../theme-CfFWrMEF.cjs");
|
|
7
|
+
let react = require("react");
|
|
8
|
+
react = require_chunk.__toESM(react);
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
|
+
let class_variance_authority = require("class-variance-authority");
|
|
11
|
+
let cnfast = require("cnfast");
|
|
12
|
+
//#region src/components/field.tsx
|
|
13
|
+
const FieldContext = react.createContext(null);
|
|
14
|
+
function useFieldContext() {
|
|
15
|
+
return react.useContext(FieldContext);
|
|
16
|
+
}
|
|
17
|
+
function useFieldControl(options) {
|
|
18
|
+
const field = useFieldContext();
|
|
19
|
+
const theme = require_theme.useTheme();
|
|
20
|
+
return {
|
|
21
|
+
field,
|
|
22
|
+
id: options?.id ?? field?.id,
|
|
23
|
+
ariaDescribedBy: [field?.hasDescription ? field.descriptionId : void 0, options?.ariaDescribedBy].filter(Boolean).join(" ") || void 0,
|
|
24
|
+
inputStyle: options?.variant ?? field?.inputStyle ?? theme.inputStyle ?? "soft",
|
|
25
|
+
inputColor: field?.inputColor ?? theme.inputColor ?? "brand"
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function FieldSet({ className, ...props }) {
|
|
29
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("fieldset", {
|
|
30
|
+
"data-slot": "field-set",
|
|
31
|
+
className: (0, cnfast.cn)("flex flex-col gap-4", className),
|
|
32
|
+
...props
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function FieldLegend({ className, variant = "legend", ...props }) {
|
|
36
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("legend", {
|
|
37
|
+
"data-slot": "field-legend",
|
|
38
|
+
"data-variant": variant,
|
|
39
|
+
className: (0, cnfast.cn)("mb-1.5 font-medium text-gray data-[variant=label]:text-sm data-[variant=legend]:text-base", className),
|
|
40
|
+
...props
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function FieldGroup({ className, ...props }) {
|
|
44
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
45
|
+
"data-slot": "field-group",
|
|
46
|
+
className: (0, cnfast.cn)("group/field-group flex w-full flex-col gap-4", className),
|
|
47
|
+
...props
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const fieldVariants = (0, class_variance_authority.cva)("group/field relative flex w-full flex-col data-[invalid=true]:text-error-active", {
|
|
51
|
+
variants: {
|
|
52
|
+
labelPosition: {
|
|
53
|
+
inset: "gap-y-1 rounded-lg px-4 py-3",
|
|
54
|
+
outset: "gap-y-2"
|
|
55
|
+
},
|
|
56
|
+
inputStyle: {
|
|
57
|
+
soft: "",
|
|
58
|
+
surface: "",
|
|
59
|
+
outlined: "",
|
|
60
|
+
ghost: ""
|
|
61
|
+
},
|
|
62
|
+
inputColor: {
|
|
63
|
+
brand: "",
|
|
64
|
+
gray: ""
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
compoundVariants: [
|
|
68
|
+
{
|
|
69
|
+
labelPosition: "inset",
|
|
70
|
+
inputStyle: "soft",
|
|
71
|
+
inputColor: "brand",
|
|
72
|
+
class: "bg-input-base has-[:is(input,[data-slot=select-trigger]):not(:disabled)]:hover:bg-input-base-hover"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
labelPosition: "inset",
|
|
76
|
+
inputStyle: "soft",
|
|
77
|
+
inputColor: "gray",
|
|
78
|
+
class: "bg-base-gray-soft has-[:is(input,[data-slot=select-trigger]):not(:disabled)]:hover:bg-gray-a4"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
labelPosition: "inset",
|
|
82
|
+
inputStyle: "surface",
|
|
83
|
+
inputColor: "brand",
|
|
84
|
+
class: "border border-input bg-base-accent-surface"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
labelPosition: "inset",
|
|
88
|
+
inputStyle: "surface",
|
|
89
|
+
inputColor: "gray",
|
|
90
|
+
class: "border border-input-gray bg-base-gray-surface"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
labelPosition: "inset",
|
|
94
|
+
inputStyle: "outlined",
|
|
95
|
+
inputColor: "brand",
|
|
96
|
+
class: "border border-input"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
labelPosition: "inset",
|
|
100
|
+
inputStyle: "outlined",
|
|
101
|
+
inputColor: "gray",
|
|
102
|
+
class: "border border-input-gray"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
labelPosition: "inset",
|
|
106
|
+
inputStyle: "ghost",
|
|
107
|
+
class: "rounded-none px-0"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
labelPosition: "inset",
|
|
111
|
+
inputStyle: ["soft", "surface"],
|
|
112
|
+
class: "data-[disabled=true]:bg-base-gray-soft data-[invalid=true]:bg-base-error-soft data-[invalid=true]:has-[:is(input,[data-slot=select-trigger]):not(:disabled)]:hover:bg-red-a4"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
labelPosition: "inset",
|
|
116
|
+
inputStyle: ["surface", "outlined"],
|
|
117
|
+
class: "data-[disabled=true]:border-input-disabled data-[invalid=true]:border-input-invalid"
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
});
|
|
121
|
+
function Field({ className, labelPosition: labelPositionProp, inputStyle: inputStyleProp, inputColor: inputColorProp, ...props }) {
|
|
122
|
+
const id = (0, react.useId)();
|
|
123
|
+
const [hasDescription, setHasDescription] = react.useState(false);
|
|
124
|
+
const theme = require_theme.useTheme();
|
|
125
|
+
const labelPosition = labelPositionProp ?? theme.labelPosition ?? "inset";
|
|
126
|
+
const inputStyle = inputStyleProp ?? theme.inputStyle ?? "soft";
|
|
127
|
+
const inputColor = inputColorProp ?? theme.inputColor ?? "brand";
|
|
128
|
+
const value = react.useMemo(() => ({
|
|
129
|
+
id: `field-${id}`,
|
|
130
|
+
descriptionId: `field-${id}-description`,
|
|
131
|
+
hasDescription,
|
|
132
|
+
setHasDescription,
|
|
133
|
+
labelPosition,
|
|
134
|
+
inputStyle,
|
|
135
|
+
inputColor
|
|
136
|
+
}), [
|
|
137
|
+
id,
|
|
138
|
+
hasDescription,
|
|
139
|
+
labelPosition,
|
|
140
|
+
inputStyle,
|
|
141
|
+
inputColor
|
|
142
|
+
]);
|
|
143
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FieldContext.Provider, {
|
|
144
|
+
value,
|
|
145
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
146
|
+
role: "group",
|
|
147
|
+
"data-slot": "field",
|
|
148
|
+
"data-label-position": labelPosition,
|
|
149
|
+
"data-input-style": inputStyle,
|
|
150
|
+
"data-input-color": inputColor,
|
|
151
|
+
className: (0, cnfast.cn)(fieldVariants({
|
|
152
|
+
labelPosition,
|
|
153
|
+
inputStyle,
|
|
154
|
+
inputColor
|
|
155
|
+
}), className),
|
|
156
|
+
...props
|
|
157
|
+
})
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function FieldContent({ className, ...props }) {
|
|
161
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
162
|
+
"data-slot": "field-content",
|
|
163
|
+
className: (0, cnfast.cn)("flex min-w-0 flex-1 flex-col gap-0.5 leading-snug", className),
|
|
164
|
+
...props
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
function FieldLabel({ className, htmlFor, srOnly, ...props }) {
|
|
168
|
+
const field = useFieldContext();
|
|
169
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
|
|
170
|
+
"data-slot": "field-label",
|
|
171
|
+
className: (0, cnfast.cn)("text-sm leading-5 font-normal text-gray-light transition-all group-data-[invalid=true]/field:text-error-active! motion-reduce:transition-none", srOnly && "sr-only", className),
|
|
172
|
+
htmlFor: htmlFor ?? field?.id,
|
|
173
|
+
...props
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
function FieldValue({ className, id, title, truncate, children, ...props }) {
|
|
177
|
+
const field = useFieldContext();
|
|
178
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
179
|
+
"data-slot": "field-value",
|
|
180
|
+
id: id ?? field?.id,
|
|
181
|
+
title: title ?? (truncate && typeof children === "string" ? children : void 0),
|
|
182
|
+
className: (0, cnfast.cn)("min-h-8 w-full text-base text-gray tabular-nums group-data-[disabled=true]/field:opacity-70", truncate ? "block truncate leading-8" : "inline-flex items-center wrap-anywhere whitespace-pre-wrap", className),
|
|
183
|
+
...props,
|
|
184
|
+
children
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function FieldTitle({ className, ...props }) {
|
|
188
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
189
|
+
"data-slot": "field-title",
|
|
190
|
+
className: (0, cnfast.cn)("flex w-fit items-center gap-2 text-sm font-medium text-gray", className),
|
|
191
|
+
...props
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
function FieldDescription({ className, id, ...props }) {
|
|
195
|
+
const field = useFieldContext();
|
|
196
|
+
const setHasDescription = field?.setHasDescription;
|
|
197
|
+
react.useEffect(() => {
|
|
198
|
+
if (!setHasDescription) return;
|
|
199
|
+
setHasDescription(true);
|
|
200
|
+
return () => setHasDescription(false);
|
|
201
|
+
}, [setHasDescription]);
|
|
202
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
203
|
+
"data-slot": "field-description",
|
|
204
|
+
id: id ?? field?.descriptionId,
|
|
205
|
+
className: (0, cnfast.cn)("mt-0.5 text-sm leading-normal text-gray-light", className),
|
|
206
|
+
...props
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
function FieldSeparator({ children, className, ...props }) {
|
|
210
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
211
|
+
"data-slot": "field-separator",
|
|
212
|
+
"data-content": !!children,
|
|
213
|
+
className: (0, cnfast.cn)("relative -my-2 h-5 text-sm", className),
|
|
214
|
+
...props,
|
|
215
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_separator.Separator, { className: "absolute inset-0 top-1/2" }), children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
216
|
+
className: "relative mx-auto block w-fit bg-(--spark-background) px-2 text-gray-light",
|
|
217
|
+
"data-slot": "field-separator-content",
|
|
218
|
+
children
|
|
219
|
+
})]
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
function FieldError({ className, children, errors, ...props }) {
|
|
223
|
+
const content = react.useMemo(() => {
|
|
224
|
+
if (children) return children;
|
|
225
|
+
if (!errors?.length) return null;
|
|
226
|
+
const unique = [...new Map(errors.map((error) => [error?.message, error])).values()];
|
|
227
|
+
if (unique.length === 1) return unique[0]?.message;
|
|
228
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
229
|
+
className: "ml-4 flex list-disc flex-col gap-1",
|
|
230
|
+
children: unique.map((error, index) => error?.message && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: error.message }, index))
|
|
231
|
+
});
|
|
232
|
+
}, [children, errors]);
|
|
233
|
+
if (!content) return null;
|
|
234
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
235
|
+
role: "alert",
|
|
236
|
+
"data-slot": "field-error",
|
|
237
|
+
className: (0, cnfast.cn)("mt-0.5 text-sm font-normal text-error", className),
|
|
238
|
+
...props,
|
|
239
|
+
children: content
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
//#endregion
|
|
243
|
+
exports.Field = Field;
|
|
244
|
+
exports.FieldContent = FieldContent;
|
|
245
|
+
exports.FieldDescription = FieldDescription;
|
|
246
|
+
exports.FieldError = FieldError;
|
|
247
|
+
exports.FieldGroup = FieldGroup;
|
|
248
|
+
exports.FieldLabel = FieldLabel;
|
|
249
|
+
exports.FieldLegend = FieldLegend;
|
|
250
|
+
exports.FieldSeparator = FieldSeparator;
|
|
251
|
+
exports.FieldSet = FieldSet;
|
|
252
|
+
exports.FieldTitle = FieldTitle;
|
|
253
|
+
exports.FieldValue = FieldValue;
|
|
254
|
+
exports.useFieldContext = useFieldContext;
|
|
255
|
+
exports.useFieldControl = useFieldControl;
|
|
256
|
+
|
|
257
|
+
//# sourceMappingURL=field.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.cjs","names":["React","useTheme","Separator"],"sources":["../../src/components/field.tsx"],"sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport * as React from 'react'\nimport { useId } from 'react'\nimport type {\n SparkInputColor,\n SparkInputStyle,\n SparkLabelPosition,\n} from '../lib/theme-types'\nimport { cn } from '../utils/cn'\nimport { Separator } from './separator'\nimport { useTheme } from './theme'\n\ntype FieldContextValue = {\n id: string\n descriptionId: string\n hasDescription: boolean\n setHasDescription: (has: boolean) => void\n labelPosition: SparkLabelPosition\n inputStyle: SparkInputStyle\n inputColor: SparkInputColor\n}\n\nconst FieldContext = React.createContext<FieldContextValue | null>(null)\n\nexport function useFieldContext() {\n return React.useContext(FieldContext)\n}\n\n// Field→Theme→default resolution + id/aria-describedby wiring, shared by every\n// control that can sit inside a Field (Input, SelectTrigger, …) so they can't\n// drift on how a style/color/id resolves. `variant` is the control's own\n// per-instance override (already normalized — e.g. Input maps its 'none' to\n// undefined before calling this).\nexport function useFieldControl(options?: {\n id?: string\n ariaDescribedBy?: string\n variant?: SparkInputStyle\n}) {\n const field = useFieldContext()\n const theme = useTheme()\n const id = options?.id ?? field?.id\n const descriptionId = field?.hasDescription ? field.descriptionId : undefined\n const ariaDescribedBy =\n [descriptionId, options?.ariaDescribedBy].filter(Boolean).join(' ') ||\n undefined\n const inputStyle =\n options?.variant ?? field?.inputStyle ?? theme.inputStyle ?? 'soft'\n const inputColor = field?.inputColor ?? theme.inputColor ?? 'brand'\n return { field, id, ariaDescribedBy, inputStyle, inputColor }\n}\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn('flex flex-col gap-4', className)}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n 'mb-1.5 font-medium text-gray data-[variant=label]:text-sm data-[variant=legend]:text-base',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn('group/field-group flex w-full flex-col gap-4', className)}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\n 'group/field relative flex w-full flex-col data-[invalid=true]:text-error-active',\n {\n variants: {\n labelPosition: {\n // inset puts label + input inside one shell, so the shell is the box\n // focus inside inset is the classic underline cue, not a shell ring\n inset: 'gap-y-1 rounded-lg px-4 py-3',\n outset: 'gap-y-2',\n },\n inputStyle: { soft: '', surface: '', outlined: '', ghost: '' },\n inputColor: { brand: '', gray: '' },\n },\n compoundVariants: [\n {\n labelPosition: 'inset',\n inputStyle: 'soft',\n inputColor: 'brand',\n class:\n 'bg-input-base has-[:is(input,[data-slot=select-trigger]):not(:disabled)]:hover:bg-input-base-hover',\n },\n {\n labelPosition: 'inset',\n inputStyle: 'soft',\n inputColor: 'gray',\n class:\n 'bg-base-gray-soft has-[:is(input,[data-slot=select-trigger]):not(:disabled)]:hover:bg-gray-a4',\n },\n {\n labelPosition: 'inset',\n inputStyle: 'surface',\n inputColor: 'brand',\n class: 'border border-input bg-base-accent-surface',\n },\n {\n labelPosition: 'inset',\n inputStyle: 'surface',\n inputColor: 'gray',\n class: 'border border-input-gray bg-base-gray-surface',\n },\n {\n labelPosition: 'inset',\n inputStyle: 'outlined',\n inputColor: 'brand',\n class: 'border border-input',\n },\n {\n labelPosition: 'inset',\n inputStyle: 'outlined',\n inputColor: 'gray',\n class: 'border border-input-gray',\n },\n // ghost inset = bare label + underlined input; the input carries the line\n {\n labelPosition: 'inset',\n inputStyle: 'ghost',\n class: 'rounded-none px-0',\n },\n // shared inset states: filled shells swap bg, bordered shells swap border\n // invalid hover deepens the error tint instead of falling back to accent\n {\n labelPosition: 'inset',\n inputStyle: ['soft', 'surface'],\n class:\n 'data-[disabled=true]:bg-base-gray-soft data-[invalid=true]:bg-base-error-soft data-[invalid=true]:has-[:is(input,[data-slot=select-trigger]):not(:disabled)]:hover:bg-red-a4',\n },\n {\n labelPosition: 'inset',\n inputStyle: ['surface', 'outlined'],\n class:\n 'data-[disabled=true]:border-input-disabled data-[invalid=true]:border-input-invalid',\n },\n ],\n },\n)\n\ninterface FieldProps extends React.ComponentProps<'div'> {\n labelPosition?: SparkLabelPosition\n inputStyle?: SparkInputStyle\n inputColor?: SparkInputColor\n}\n\nfunction Field({\n className,\n labelPosition: labelPositionProp,\n inputStyle: inputStyleProp,\n inputColor: inputColorProp,\n ...props\n}: FieldProps) {\n const id = useId()\n const [hasDescription, setHasDescription] = React.useState(false)\n // knobs are structural (they move the label / pick the box carrier), so they\n // resolve here via the <Theme> context; props override per instance\n const theme = useTheme()\n const labelPosition = labelPositionProp ?? theme.labelPosition ?? 'inset'\n const inputStyle = inputStyleProp ?? theme.inputStyle ?? 'soft'\n const inputColor = inputColorProp ?? theme.inputColor ?? 'brand'\n const value = React.useMemo<FieldContextValue>(\n () => ({\n id: `field-${id}`,\n descriptionId: `field-${id}-description`,\n hasDescription,\n setHasDescription,\n labelPosition,\n inputStyle,\n inputColor,\n }),\n [id, hasDescription, labelPosition, inputStyle, inputColor],\n )\n\n return (\n <FieldContext.Provider value={value}>\n <div\n role=\"group\"\n data-slot=\"field\"\n data-label-position={labelPosition}\n data-input-style={inputStyle}\n data-input-color={inputColor}\n className={cn(\n fieldVariants({ labelPosition, inputStyle, inputColor }),\n className,\n )}\n {...props}\n />\n </FieldContext.Provider>\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n 'flex min-w-0 flex-1 flex-col gap-0.5 leading-snug',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({\n className,\n htmlFor,\n srOnly,\n ...props\n}: React.ComponentProps<'label'> & { srOnly?: boolean }) {\n const field = useFieldContext()\n return (\n <label\n data-slot=\"field-label\"\n className={cn(\n // labels stay full-contrast even when disabled — the control itself\n // (dimmed text, gray shell) signals the state\n 'text-sm leading-5 font-normal text-gray-light transition-all group-data-[invalid=true]/field:text-error-active! motion-reduce:transition-none',\n // visually hidden but kept in the a11y tree (still names + focuses the control)\n srOnly && 'sr-only',\n className,\n )}\n htmlFor={htmlFor ?? field?.id}\n {...props}\n />\n )\n}\n\nfunction FieldValue({\n className,\n id,\n title,\n truncate,\n children,\n ...props\n}: React.ComponentProps<'div'> & { truncate?: boolean }) {\n const field = useFieldContext()\n return (\n <div\n data-slot=\"field-value\"\n id={id ?? field?.id}\n // truncated string values keep the full text reachable on hover\n title={\n title ??\n (truncate && typeof children === 'string' ? children : undefined)\n }\n className={cn(\n // values are content, not controls — disabled dims but stays ≥4.5:1\n 'min-h-8 w-full text-base text-gray tabular-nums group-data-[disabled=true]/field:opacity-70',\n truncate\n ? 'block truncate leading-8'\n : 'inline-flex items-center wrap-anywhere whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-title\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm font-medium text-gray',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({\n className,\n id,\n ...props\n}: React.ComponentProps<'div'>) {\n const field = useFieldContext()\n const setHasDescription = field?.setHasDescription\n\n React.useEffect(() => {\n if (!setHasDescription) return\n setHasDescription(true)\n return () => setHasDescription(false)\n }, [setHasDescription])\n\n return (\n <div\n data-slot=\"field-description\"\n id={id ?? field?.descriptionId}\n className={cn('mt-0.5 text-sm leading-normal text-gray-light', className)}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn('relative -my-2 h-5 text-sm', className)}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-(--spark-background) px-2 text-gray-light\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: Array<{ message?: string } | undefined>\n}) {\n const content = React.useMemo(() => {\n if (children) return children\n if (!errors?.length) return null\n const unique = [\n ...new Map(errors.map((error) => [error?.message, error])).values(),\n ]\n if (unique.length === 1) return unique[0]?.message\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {unique.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>,\n )}\n </ul>\n )\n }, [children, errors])\n\n if (!content) return null\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('mt-0.5 text-sm font-normal text-error', className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n FieldValue,\n}\nexport type { FieldProps }\n"],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { a as SparkInputStyle, i as SparkInputColor, o as SparkLabelPosition } from "../theme-types-r20EJfEC.cjs";
|
|
4
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
|
+
import * as React$1 from "react";
|
|
6
|
+
|
|
7
|
+
//#region src/components/field.d.ts
|
|
8
|
+
type FieldContextValue = {
|
|
9
|
+
id: string;
|
|
10
|
+
descriptionId: string;
|
|
11
|
+
hasDescription: boolean;
|
|
12
|
+
setHasDescription: (has: boolean) => void;
|
|
13
|
+
labelPosition: SparkLabelPosition;
|
|
14
|
+
inputStyle: SparkInputStyle;
|
|
15
|
+
inputColor: SparkInputColor;
|
|
16
|
+
};
|
|
17
|
+
declare function useFieldContext(): FieldContextValue | null;
|
|
18
|
+
declare function useFieldControl(options?: {
|
|
19
|
+
id?: string;
|
|
20
|
+
ariaDescribedBy?: string;
|
|
21
|
+
variant?: SparkInputStyle;
|
|
22
|
+
}): {
|
|
23
|
+
field: FieldContextValue | null;
|
|
24
|
+
id: string | undefined;
|
|
25
|
+
ariaDescribedBy: string | undefined;
|
|
26
|
+
inputStyle: SparkInputStyle;
|
|
27
|
+
inputColor: SparkInputColor;
|
|
28
|
+
};
|
|
29
|
+
declare function FieldSet({
|
|
30
|
+
className,
|
|
31
|
+
...props
|
|
32
|
+
}: React$1.ComponentProps<'fieldset'>): _$react_jsx_runtime0.JSX.Element;
|
|
33
|
+
declare function FieldLegend({
|
|
34
|
+
className,
|
|
35
|
+
variant,
|
|
36
|
+
...props
|
|
37
|
+
}: React$1.ComponentProps<'legend'> & {
|
|
38
|
+
variant?: 'legend' | 'label';
|
|
39
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
40
|
+
declare function FieldGroup({
|
|
41
|
+
className,
|
|
42
|
+
...props
|
|
43
|
+
}: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
44
|
+
interface FieldProps extends React$1.ComponentProps<'div'> {
|
|
45
|
+
labelPosition?: SparkLabelPosition;
|
|
46
|
+
inputStyle?: SparkInputStyle;
|
|
47
|
+
inputColor?: SparkInputColor;
|
|
48
|
+
}
|
|
49
|
+
declare function Field({
|
|
50
|
+
className,
|
|
51
|
+
labelPosition: labelPositionProp,
|
|
52
|
+
inputStyle: inputStyleProp,
|
|
53
|
+
inputColor: inputColorProp,
|
|
54
|
+
...props
|
|
55
|
+
}: FieldProps): _$react_jsx_runtime0.JSX.Element;
|
|
56
|
+
declare function FieldContent({
|
|
57
|
+
className,
|
|
58
|
+
...props
|
|
59
|
+
}: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
60
|
+
declare function FieldLabel({
|
|
61
|
+
className,
|
|
62
|
+
htmlFor,
|
|
63
|
+
srOnly,
|
|
64
|
+
...props
|
|
65
|
+
}: React$1.ComponentProps<'label'> & {
|
|
66
|
+
srOnly?: boolean;
|
|
67
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
68
|
+
declare function FieldValue({
|
|
69
|
+
className,
|
|
70
|
+
id,
|
|
71
|
+
title,
|
|
72
|
+
truncate,
|
|
73
|
+
children,
|
|
74
|
+
...props
|
|
75
|
+
}: React$1.ComponentProps<'div'> & {
|
|
76
|
+
truncate?: boolean;
|
|
77
|
+
}): _$react_jsx_runtime0.JSX.Element;
|
|
78
|
+
declare function FieldTitle({
|
|
79
|
+
className,
|
|
80
|
+
...props
|
|
81
|
+
}: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
82
|
+
declare function FieldDescription({
|
|
83
|
+
className,
|
|
84
|
+
id,
|
|
85
|
+
...props
|
|
86
|
+
}: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
87
|
+
declare function FieldSeparator({
|
|
88
|
+
children,
|
|
89
|
+
className,
|
|
90
|
+
...props
|
|
91
|
+
}: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
|
|
92
|
+
declare function FieldError({
|
|
93
|
+
className,
|
|
94
|
+
children,
|
|
95
|
+
errors,
|
|
96
|
+
...props
|
|
97
|
+
}: React$1.ComponentProps<'div'> & {
|
|
98
|
+
errors?: Array<{
|
|
99
|
+
message?: string;
|
|
100
|
+
} | undefined>;
|
|
101
|
+
}): _$react_jsx_runtime0.JSX.Element | null;
|
|
102
|
+
//#endregion
|
|
103
|
+
export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, type FieldProps, FieldSeparator, FieldSet, FieldTitle, FieldValue, useFieldContext, useFieldControl };
|
|
104
|
+
//# sourceMappingURL=field.d.cts.map
|