@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,104 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { a as SparkInputStyle, i as SparkInputColor, o as SparkLabelPosition } from "../theme-types-DoROIXpi.js";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
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.ts.map
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn } from "../utils/cn.js";
|
|
4
|
+
import { Separator } from "./separator.js";
|
|
5
|
+
import { n as useTheme } from "../theme-C19BbKfO.js";
|
|
6
|
+
import * as React$1 from "react";
|
|
7
|
+
import { useId } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { cva } from "class-variance-authority";
|
|
10
|
+
//#region src/components/field.tsx
|
|
11
|
+
const FieldContext = React$1.createContext(null);
|
|
12
|
+
function useFieldContext() {
|
|
13
|
+
return React$1.useContext(FieldContext);
|
|
14
|
+
}
|
|
15
|
+
function useFieldControl(options) {
|
|
16
|
+
const field = useFieldContext();
|
|
17
|
+
const theme = useTheme();
|
|
18
|
+
return {
|
|
19
|
+
field,
|
|
20
|
+
id: options?.id ?? field?.id,
|
|
21
|
+
ariaDescribedBy: [field?.hasDescription ? field.descriptionId : void 0, options?.ariaDescribedBy].filter(Boolean).join(" ") || void 0,
|
|
22
|
+
inputStyle: options?.variant ?? field?.inputStyle ?? theme.inputStyle ?? "soft",
|
|
23
|
+
inputColor: field?.inputColor ?? theme.inputColor ?? "brand"
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function FieldSet({ className, ...props }) {
|
|
27
|
+
return /* @__PURE__ */ jsx("fieldset", {
|
|
28
|
+
"data-slot": "field-set",
|
|
29
|
+
className: cn("flex flex-col gap-4", className),
|
|
30
|
+
...props
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function FieldLegend({ className, variant = "legend", ...props }) {
|
|
34
|
+
return /* @__PURE__ */ jsx("legend", {
|
|
35
|
+
"data-slot": "field-legend",
|
|
36
|
+
"data-variant": variant,
|
|
37
|
+
className: cn("mb-1.5 font-medium text-gray data-[variant=label]:text-sm data-[variant=legend]:text-base", className),
|
|
38
|
+
...props
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function FieldGroup({ className, ...props }) {
|
|
42
|
+
return /* @__PURE__ */ jsx("div", {
|
|
43
|
+
"data-slot": "field-group",
|
|
44
|
+
className: cn("group/field-group flex w-full flex-col gap-4", className),
|
|
45
|
+
...props
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const fieldVariants = cva("group/field relative flex w-full flex-col data-[invalid=true]:text-error-active", {
|
|
49
|
+
variants: {
|
|
50
|
+
labelPosition: {
|
|
51
|
+
inset: "gap-y-1 rounded-lg px-4 py-3",
|
|
52
|
+
outset: "gap-y-2"
|
|
53
|
+
},
|
|
54
|
+
inputStyle: {
|
|
55
|
+
soft: "",
|
|
56
|
+
surface: "",
|
|
57
|
+
outlined: "",
|
|
58
|
+
ghost: ""
|
|
59
|
+
},
|
|
60
|
+
inputColor: {
|
|
61
|
+
brand: "",
|
|
62
|
+
gray: ""
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
compoundVariants: [
|
|
66
|
+
{
|
|
67
|
+
labelPosition: "inset",
|
|
68
|
+
inputStyle: "soft",
|
|
69
|
+
inputColor: "brand",
|
|
70
|
+
class: "bg-input-base has-[:is(input,[data-slot=select-trigger]):not(:disabled)]:hover:bg-input-base-hover"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
labelPosition: "inset",
|
|
74
|
+
inputStyle: "soft",
|
|
75
|
+
inputColor: "gray",
|
|
76
|
+
class: "bg-base-gray-soft has-[:is(input,[data-slot=select-trigger]):not(:disabled)]:hover:bg-gray-a4"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
labelPosition: "inset",
|
|
80
|
+
inputStyle: "surface",
|
|
81
|
+
inputColor: "brand",
|
|
82
|
+
class: "border border-input bg-base-accent-surface"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
labelPosition: "inset",
|
|
86
|
+
inputStyle: "surface",
|
|
87
|
+
inputColor: "gray",
|
|
88
|
+
class: "border border-input-gray bg-base-gray-surface"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
labelPosition: "inset",
|
|
92
|
+
inputStyle: "outlined",
|
|
93
|
+
inputColor: "brand",
|
|
94
|
+
class: "border border-input"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
labelPosition: "inset",
|
|
98
|
+
inputStyle: "outlined",
|
|
99
|
+
inputColor: "gray",
|
|
100
|
+
class: "border border-input-gray"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
labelPosition: "inset",
|
|
104
|
+
inputStyle: "ghost",
|
|
105
|
+
class: "rounded-none px-0"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
labelPosition: "inset",
|
|
109
|
+
inputStyle: ["soft", "surface"],
|
|
110
|
+
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"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
labelPosition: "inset",
|
|
114
|
+
inputStyle: ["surface", "outlined"],
|
|
115
|
+
class: "data-[disabled=true]:border-input-disabled data-[invalid=true]:border-input-invalid"
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
});
|
|
119
|
+
function Field({ className, labelPosition: labelPositionProp, inputStyle: inputStyleProp, inputColor: inputColorProp, ...props }) {
|
|
120
|
+
const id = useId();
|
|
121
|
+
const [hasDescription, setHasDescription] = React$1.useState(false);
|
|
122
|
+
const theme = useTheme();
|
|
123
|
+
const labelPosition = labelPositionProp ?? theme.labelPosition ?? "inset";
|
|
124
|
+
const inputStyle = inputStyleProp ?? theme.inputStyle ?? "soft";
|
|
125
|
+
const inputColor = inputColorProp ?? theme.inputColor ?? "brand";
|
|
126
|
+
const value = React$1.useMemo(() => ({
|
|
127
|
+
id: `field-${id}`,
|
|
128
|
+
descriptionId: `field-${id}-description`,
|
|
129
|
+
hasDescription,
|
|
130
|
+
setHasDescription,
|
|
131
|
+
labelPosition,
|
|
132
|
+
inputStyle,
|
|
133
|
+
inputColor
|
|
134
|
+
}), [
|
|
135
|
+
id,
|
|
136
|
+
hasDescription,
|
|
137
|
+
labelPosition,
|
|
138
|
+
inputStyle,
|
|
139
|
+
inputColor
|
|
140
|
+
]);
|
|
141
|
+
return /* @__PURE__ */ jsx(FieldContext.Provider, {
|
|
142
|
+
value,
|
|
143
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
144
|
+
role: "group",
|
|
145
|
+
"data-slot": "field",
|
|
146
|
+
"data-label-position": labelPosition,
|
|
147
|
+
"data-input-style": inputStyle,
|
|
148
|
+
"data-input-color": inputColor,
|
|
149
|
+
className: cn(fieldVariants({
|
|
150
|
+
labelPosition,
|
|
151
|
+
inputStyle,
|
|
152
|
+
inputColor
|
|
153
|
+
}), className),
|
|
154
|
+
...props
|
|
155
|
+
})
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function FieldContent({ className, ...props }) {
|
|
159
|
+
return /* @__PURE__ */ jsx("div", {
|
|
160
|
+
"data-slot": "field-content",
|
|
161
|
+
className: cn("flex min-w-0 flex-1 flex-col gap-0.5 leading-snug", className),
|
|
162
|
+
...props
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
function FieldLabel({ className, htmlFor, srOnly, ...props }) {
|
|
166
|
+
const field = useFieldContext();
|
|
167
|
+
return /* @__PURE__ */ jsx("label", {
|
|
168
|
+
"data-slot": "field-label",
|
|
169
|
+
className: 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),
|
|
170
|
+
htmlFor: htmlFor ?? field?.id,
|
|
171
|
+
...props
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
function FieldValue({ className, id, title, truncate, children, ...props }) {
|
|
175
|
+
const field = useFieldContext();
|
|
176
|
+
return /* @__PURE__ */ jsx("div", {
|
|
177
|
+
"data-slot": "field-value",
|
|
178
|
+
id: id ?? field?.id,
|
|
179
|
+
title: title ?? (truncate && typeof children === "string" ? children : void 0),
|
|
180
|
+
className: 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),
|
|
181
|
+
...props,
|
|
182
|
+
children
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
function FieldTitle({ className, ...props }) {
|
|
186
|
+
return /* @__PURE__ */ jsx("div", {
|
|
187
|
+
"data-slot": "field-title",
|
|
188
|
+
className: cn("flex w-fit items-center gap-2 text-sm font-medium text-gray", className),
|
|
189
|
+
...props
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
function FieldDescription({ className, id, ...props }) {
|
|
193
|
+
const field = useFieldContext();
|
|
194
|
+
const setHasDescription = field?.setHasDescription;
|
|
195
|
+
React$1.useEffect(() => {
|
|
196
|
+
if (!setHasDescription) return;
|
|
197
|
+
setHasDescription(true);
|
|
198
|
+
return () => setHasDescription(false);
|
|
199
|
+
}, [setHasDescription]);
|
|
200
|
+
return /* @__PURE__ */ jsx("div", {
|
|
201
|
+
"data-slot": "field-description",
|
|
202
|
+
id: id ?? field?.descriptionId,
|
|
203
|
+
className: cn("mt-0.5 text-sm leading-normal text-gray-light", className),
|
|
204
|
+
...props
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
function FieldSeparator({ children, className, ...props }) {
|
|
208
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
209
|
+
"data-slot": "field-separator",
|
|
210
|
+
"data-content": !!children,
|
|
211
|
+
className: cn("relative -my-2 h-5 text-sm", className),
|
|
212
|
+
...props,
|
|
213
|
+
children: [/* @__PURE__ */ jsx(Separator, { className: "absolute inset-0 top-1/2" }), children && /* @__PURE__ */ jsx("span", {
|
|
214
|
+
className: "relative mx-auto block w-fit bg-(--spark-background) px-2 text-gray-light",
|
|
215
|
+
"data-slot": "field-separator-content",
|
|
216
|
+
children
|
|
217
|
+
})]
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
function FieldError({ className, children, errors, ...props }) {
|
|
221
|
+
const content = React$1.useMemo(() => {
|
|
222
|
+
if (children) return children;
|
|
223
|
+
if (!errors?.length) return null;
|
|
224
|
+
const unique = [...new Map(errors.map((error) => [error?.message, error])).values()];
|
|
225
|
+
if (unique.length === 1) return unique[0]?.message;
|
|
226
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
227
|
+
className: "ml-4 flex list-disc flex-col gap-1",
|
|
228
|
+
children: unique.map((error, index) => error?.message && /* @__PURE__ */ jsx("li", { children: error.message }, index))
|
|
229
|
+
});
|
|
230
|
+
}, [children, errors]);
|
|
231
|
+
if (!content) return null;
|
|
232
|
+
return /* @__PURE__ */ jsx("div", {
|
|
233
|
+
role: "alert",
|
|
234
|
+
"data-slot": "field-error",
|
|
235
|
+
className: cn("mt-0.5 text-sm font-normal text-error", className),
|
|
236
|
+
...props,
|
|
237
|
+
children: content
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
//#endregion
|
|
241
|
+
export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FieldValue, useFieldContext, useFieldControl };
|
|
242
|
+
|
|
243
|
+
//# sourceMappingURL=field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.js","names":["React"],"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,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_chunk = require("../chunk-aJGBMT86.cjs");
|
|
4
|
+
const require_icons_material_symbol = require("../icons/material-symbol.cjs");
|
|
5
|
+
let react = require("react");
|
|
6
|
+
react = require_chunk.__toESM(react);
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let cnfast = require("cnfast");
|
|
9
|
+
//#region src/components/icon.tsx
|
|
10
|
+
const variantClasses = {
|
|
11
|
+
soft: "bg-[var(--color-gray-a3)] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)]",
|
|
12
|
+
surface: "border border-[color:var(--icon-bd,var(--color-gray-a6))] bg-[var(--color-gray-a2)] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)] [[data-high-contrast]_&]:[--icon-bd:var(--color-gray-a11)]",
|
|
13
|
+
solid: "bg-[var(--color-gray-12)] text-[color:var(--color-gray-1)]",
|
|
14
|
+
ghost: "[[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)]",
|
|
15
|
+
outline: "border border-[color:var(--icon-bd,var(--color-gray-a8))] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)] [[data-high-contrast]_&]:[--icon-bd:var(--color-gray-a11)]"
|
|
16
|
+
};
|
|
17
|
+
const sizeClasses = {
|
|
18
|
+
small: "size-6 [--spark-icon-size:calc(var(--spacing)*4)]",
|
|
19
|
+
default: "size-8 [--spark-icon-size:calc(var(--spacing)*5)]",
|
|
20
|
+
medium: "size-10 [--spark-icon-size:calc(var(--spacing)*6)]"
|
|
21
|
+
};
|
|
22
|
+
function Icon({ className, name, children, variant = "soft", size = "default", ...props }) {
|
|
23
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
24
|
+
"data-slot": "icon",
|
|
25
|
+
role: "aria-label" in props ? "img" : void 0,
|
|
26
|
+
className: (0, cnfast.cn)("box-border inline-flex shrink-0 items-center justify-center", "rounded-[max(var(--spark-rounded-lg),var(--spark-rounded-full))]", "text-[color:var(--icon-ink,var(--color-gray-a11))]", variantClasses[variant], sizeClasses[size], className),
|
|
27
|
+
...props,
|
|
28
|
+
children: children ?? (name ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons_material_symbol.MaterialSymbol, { name }) : null)
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
Icon.displayName = "Icon";
|
|
32
|
+
//#endregion
|
|
33
|
+
exports.Icon = Icon;
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=icon.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.cjs","names":["MaterialSymbol"],"sources":["../../src/components/icon.tsx"],"sourcesContent":["import * as React from 'react'\nimport {\n MaterialSymbol,\n type MaterialSymbolIconName,\n} from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\ninterface IconProps extends React.HTMLAttributes<HTMLSpanElement> {\n name?: MaterialSymbolIconName\n /** Fill treatment. Neutral (gray) by default; colour is opt-in via className. */\n variant?: 'soft' | 'surface' | 'solid' | 'ghost' | 'outline'\n size?: 'small' | 'default' | 'medium'\n}\n\n// Icon is a display element, so it is colour-INDEPENDENT: every variant paints with the\n// neutral gray scale (tracks the neutral knob, not the accent). Colour is a per-instance\n// className override (e.g. bg-base-error-soft text-error), which wins over the base via\n// tailwind-merge. Ink flows through --icon-ink so that override still wins under high\n// contrast, which only re-points the var: data-high-contrast (on the icon or an ancestor)\n// darkens the glyph a11→a12 and strengthens the surface/outline border →a11. solid is\n// already max-contrast, so HC leaves it unchanged. border-box keeps the frame size\n// constant when surface/outline add their 1px edge.\nconst variantClasses = {\n soft: 'bg-[var(--color-gray-a3)] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)]',\n surface:\n 'border border-[color:var(--icon-bd,var(--color-gray-a6))] bg-[var(--color-gray-a2)] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)] [[data-high-contrast]_&]:[--icon-bd:var(--color-gray-a11)]',\n solid: 'bg-[var(--color-gray-12)] text-[color:var(--color-gray-1)]',\n ghost: '[[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)]',\n outline:\n 'border border-[color:var(--icon-bd,var(--color-gray-a8))] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)] [[data-high-contrast]_&]:[--icon-bd:var(--color-gray-a11)]',\n}\n\n// Frame + glyph sizes are spacing-derived so both track the scaling/spacing knobs.\nconst sizeClasses = {\n small: 'size-6 [--spark-icon-size:calc(var(--spacing)*4)]',\n default: 'size-8 [--spark-icon-size:calc(var(--spacing)*5)]',\n medium: 'size-10 [--spark-icon-size:calc(var(--spacing)*6)]',\n}\n\nfunction Icon({\n className,\n name,\n children,\n variant = 'soft',\n size = 'default',\n ...props\n}: IconProps) {\n return (\n <span\n data-slot=\"icon\"\n // labeled = meaningful image; otherwise decorative (the glyph is aria-hidden)\n role={'aria-label' in props ? 'img' : undefined}\n className={cn(\n 'box-border inline-flex shrink-0 items-center justify-center',\n // Button's pill idiom: radius=full → circle, other radii → rounded square\n 'rounded-[max(var(--spark-rounded-lg),var(--spark-rounded-full))]',\n 'text-[color:var(--icon-ink,var(--color-gray-a11))]',\n variantClasses[variant],\n sizeClasses[size],\n className,\n )}\n {...props}\n >\n {children ?? (name ? <MaterialSymbol name={name} /> : null)}\n </span>\n )\n}\n\nIcon.displayName = 'Icon'\n\nexport { Icon }\nexport type { IconProps }\n"],"mappings":";;;;;;;;;AAsBA,MAAM,iBAAiB;CACrB,MAAM;CACN,SACE;CACF,OAAO;CACP,OAAO;CACP,SACE;CACH;AAGD,MAAM,cAAc;CAClB,OAAO;CACP,SAAS;CACT,QAAQ;CACT;AAED,SAAS,KAAK,EACZ,WACA,MACA,UACA,UAAU,QACV,OAAO,WACP,GAAG,SACS;AACZ,QACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,aAAU;EAEV,MAAM,gBAAgB,QAAQ,QAAQ,KAAA;EACtC,YAAA,GAAA,OAAA,IACE,+DAEA,oEACA,sDACA,eAAe,UACf,YAAY,OACZ,UACD;EACD,GAAI;YAEH,aAAa,OAAO,iBAAA,GAAA,kBAAA,KAACA,8BAAAA,gBAAD,EAAsB,MAAQ,CAAA,GAAG;EACjD,CAAA;;AAIX,KAAK,cAAc"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { MaterialSymbolIconName } from "../icons/material-symbol.cjs";
|
|
4
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
|
+
import * as React$1 from "react";
|
|
6
|
+
|
|
7
|
+
//#region src/components/icon.d.ts
|
|
8
|
+
interface IconProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
9
|
+
name?: MaterialSymbolIconName;
|
|
10
|
+
/** Fill treatment. Neutral (gray) by default; colour is opt-in via className. */
|
|
11
|
+
variant?: 'soft' | 'surface' | 'solid' | 'ghost' | 'outline';
|
|
12
|
+
size?: 'small' | 'default' | 'medium';
|
|
13
|
+
}
|
|
14
|
+
declare function Icon({
|
|
15
|
+
className,
|
|
16
|
+
name,
|
|
17
|
+
children,
|
|
18
|
+
variant,
|
|
19
|
+
size,
|
|
20
|
+
...props
|
|
21
|
+
}: IconProps): _$react_jsx_runtime0.JSX.Element;
|
|
22
|
+
declare namespace Icon {
|
|
23
|
+
var displayName: string;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Icon, type IconProps };
|
|
27
|
+
//# sourceMappingURL=icon.d.cts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { MaterialSymbolIconName } from "../icons/material-symbol.js";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region src/components/icon.d.ts
|
|
8
|
+
interface IconProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
9
|
+
name?: MaterialSymbolIconName;
|
|
10
|
+
/** Fill treatment. Neutral (gray) by default; colour is opt-in via className. */
|
|
11
|
+
variant?: 'soft' | 'surface' | 'solid' | 'ghost' | 'outline';
|
|
12
|
+
size?: 'small' | 'default' | 'medium';
|
|
13
|
+
}
|
|
14
|
+
declare function Icon({
|
|
15
|
+
className,
|
|
16
|
+
name,
|
|
17
|
+
children,
|
|
18
|
+
variant,
|
|
19
|
+
size,
|
|
20
|
+
...props
|
|
21
|
+
}: IconProps): _$react_jsx_runtime0.JSX.Element;
|
|
22
|
+
declare namespace Icon {
|
|
23
|
+
var displayName: string;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Icon, type IconProps };
|
|
27
|
+
//# sourceMappingURL=icon.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { MaterialSymbol } from "../icons/material-symbol.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/icon.tsx
|
|
7
|
+
const variantClasses = {
|
|
8
|
+
soft: "bg-[var(--color-gray-a3)] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)]",
|
|
9
|
+
surface: "border border-[color:var(--icon-bd,var(--color-gray-a6))] bg-[var(--color-gray-a2)] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)] [[data-high-contrast]_&]:[--icon-bd:var(--color-gray-a11)]",
|
|
10
|
+
solid: "bg-[var(--color-gray-12)] text-[color:var(--color-gray-1)]",
|
|
11
|
+
ghost: "[[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)]",
|
|
12
|
+
outline: "border border-[color:var(--icon-bd,var(--color-gray-a8))] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)] [[data-high-contrast]_&]:[--icon-bd:var(--color-gray-a11)]"
|
|
13
|
+
};
|
|
14
|
+
const sizeClasses = {
|
|
15
|
+
small: "size-6 [--spark-icon-size:calc(var(--spacing)*4)]",
|
|
16
|
+
default: "size-8 [--spark-icon-size:calc(var(--spacing)*5)]",
|
|
17
|
+
medium: "size-10 [--spark-icon-size:calc(var(--spacing)*6)]"
|
|
18
|
+
};
|
|
19
|
+
function Icon({ className, name, children, variant = "soft", size = "default", ...props }) {
|
|
20
|
+
return /* @__PURE__ */ jsx("span", {
|
|
21
|
+
"data-slot": "icon",
|
|
22
|
+
role: "aria-label" in props ? "img" : void 0,
|
|
23
|
+
className: cn("box-border inline-flex shrink-0 items-center justify-center", "rounded-[max(var(--spark-rounded-lg),var(--spark-rounded-full))]", "text-[color:var(--icon-ink,var(--color-gray-a11))]", variantClasses[variant], sizeClasses[size], className),
|
|
24
|
+
...props,
|
|
25
|
+
children: children ?? (name ? /* @__PURE__ */ jsx(MaterialSymbol, { name }) : null)
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
Icon.displayName = "Icon";
|
|
29
|
+
//#endregion
|
|
30
|
+
export { Icon };
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.js","names":[],"sources":["../../src/components/icon.tsx"],"sourcesContent":["import * as React from 'react'\nimport {\n MaterialSymbol,\n type MaterialSymbolIconName,\n} from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\ninterface IconProps extends React.HTMLAttributes<HTMLSpanElement> {\n name?: MaterialSymbolIconName\n /** Fill treatment. Neutral (gray) by default; colour is opt-in via className. */\n variant?: 'soft' | 'surface' | 'solid' | 'ghost' | 'outline'\n size?: 'small' | 'default' | 'medium'\n}\n\n// Icon is a display element, so it is colour-INDEPENDENT: every variant paints with the\n// neutral gray scale (tracks the neutral knob, not the accent). Colour is a per-instance\n// className override (e.g. bg-base-error-soft text-error), which wins over the base via\n// tailwind-merge. Ink flows through --icon-ink so that override still wins under high\n// contrast, which only re-points the var: data-high-contrast (on the icon or an ancestor)\n// darkens the glyph a11→a12 and strengthens the surface/outline border →a11. solid is\n// already max-contrast, so HC leaves it unchanged. border-box keeps the frame size\n// constant when surface/outline add their 1px edge.\nconst variantClasses = {\n soft: 'bg-[var(--color-gray-a3)] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)]',\n surface:\n 'border border-[color:var(--icon-bd,var(--color-gray-a6))] bg-[var(--color-gray-a2)] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)] [[data-high-contrast]_&]:[--icon-bd:var(--color-gray-a11)]',\n solid: 'bg-[var(--color-gray-12)] text-[color:var(--color-gray-1)]',\n ghost: '[[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)]',\n outline:\n 'border border-[color:var(--icon-bd,var(--color-gray-a8))] [[data-high-contrast]_&]:[--icon-ink:var(--color-gray-a12)] [[data-high-contrast]_&]:[--icon-bd:var(--color-gray-a11)]',\n}\n\n// Frame + glyph sizes are spacing-derived so both track the scaling/spacing knobs.\nconst sizeClasses = {\n small: 'size-6 [--spark-icon-size:calc(var(--spacing)*4)]',\n default: 'size-8 [--spark-icon-size:calc(var(--spacing)*5)]',\n medium: 'size-10 [--spark-icon-size:calc(var(--spacing)*6)]',\n}\n\nfunction Icon({\n className,\n name,\n children,\n variant = 'soft',\n size = 'default',\n ...props\n}: IconProps) {\n return (\n <span\n data-slot=\"icon\"\n // labeled = meaningful image; otherwise decorative (the glyph is aria-hidden)\n role={'aria-label' in props ? 'img' : undefined}\n className={cn(\n 'box-border inline-flex shrink-0 items-center justify-center',\n // Button's pill idiom: radius=full → circle, other radii → rounded square\n 'rounded-[max(var(--spark-rounded-lg),var(--spark-rounded-full))]',\n 'text-[color:var(--icon-ink,var(--color-gray-a11))]',\n variantClasses[variant],\n sizeClasses[size],\n className,\n )}\n {...props}\n >\n {children ?? (name ? <MaterialSymbol name={name} /> : null)}\n </span>\n )\n}\n\nIcon.displayName = 'Icon'\n\nexport { Icon }\nexport type { IconProps }\n"],"mappings":";;;;;;AAsBA,MAAM,iBAAiB;CACrB,MAAM;CACN,SACE;CACF,OAAO;CACP,OAAO;CACP,SACE;CACH;AAGD,MAAM,cAAc;CAClB,OAAO;CACP,SAAS;CACT,QAAQ;CACT;AAED,SAAS,KAAK,EACZ,WACA,MACA,UACA,UAAU,QACV,OAAO,WACP,GAAG,SACS;AACZ,QACE,oBAAC,QAAD;EACE,aAAU;EAEV,MAAM,gBAAgB,QAAQ,QAAQ,KAAA;EACtC,WAAW,GACT,+DAEA,oEACA,sDACA,eAAe,UACf,YAAY,OACZ,UACD;EACD,GAAI;YAEH,aAAa,OAAO,oBAAC,gBAAD,EAAsB,MAAQ,CAAA,GAAG;EACjD,CAAA;;AAIX,KAAK,cAAc"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_chunk = require("../chunk-aJGBMT86.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
react = require_chunk.__toESM(react);
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
let class_variance_authority = require("class-variance-authority");
|
|
8
|
+
let cnfast = require("cnfast");
|
|
9
|
+
//#region src/components/info-block.tsx
|
|
10
|
+
const infoBlockVariants = (0, class_variance_authority.cva)("flex items-center gap-3", {
|
|
11
|
+
variants: { variant: {
|
|
12
|
+
default: "rounded-2xl border border-gray p-4",
|
|
13
|
+
bare: "rounded-none border-none"
|
|
14
|
+
} },
|
|
15
|
+
defaultVariants: { variant: "default" }
|
|
16
|
+
});
|
|
17
|
+
const InfoBlock = react.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
18
|
+
className: (0, cnfast.cn)(infoBlockVariants({ variant }), className),
|
|
19
|
+
ref,
|
|
20
|
+
...props
|
|
21
|
+
}));
|
|
22
|
+
InfoBlock.displayName = "InfoBlock";
|
|
23
|
+
const InfoBlockIcon = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
24
|
+
className: (0, cnfast.cn)("flex size-10 shrink-0 items-center justify-center rounded-xl", className),
|
|
25
|
+
ref,
|
|
26
|
+
...props
|
|
27
|
+
}));
|
|
28
|
+
InfoBlockIcon.displayName = "InfoBlockIcon";
|
|
29
|
+
const InfoBlockContent = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
30
|
+
className: (0, cnfast.cn)("flex min-w-0 flex-1 flex-col gap-2", className),
|
|
31
|
+
ref,
|
|
32
|
+
...props
|
|
33
|
+
}));
|
|
34
|
+
InfoBlockContent.displayName = "InfoBlockContent";
|
|
35
|
+
const InfoBlockHeader = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
36
|
+
className: (0, cnfast.cn)("flex items-center justify-between gap-2", className),
|
|
37
|
+
ref,
|
|
38
|
+
...props
|
|
39
|
+
}));
|
|
40
|
+
InfoBlockHeader.displayName = "InfoBlockHeader";
|
|
41
|
+
const InfoBlockTitle = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
42
|
+
className: (0, cnfast.cn)("text-sm font-medium text-gray", className),
|
|
43
|
+
ref,
|
|
44
|
+
...props
|
|
45
|
+
}));
|
|
46
|
+
InfoBlockTitle.displayName = "InfoBlockTitle";
|
|
47
|
+
const InfoBlockLabel = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
48
|
+
className: (0, cnfast.cn)("text-xs font-medium text-gray-light", className),
|
|
49
|
+
ref,
|
|
50
|
+
...props
|
|
51
|
+
}));
|
|
52
|
+
InfoBlockLabel.displayName = "InfoBlockLabel";
|
|
53
|
+
const InfoBlockDescription = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
54
|
+
className: (0, cnfast.cn)("text-xs text-gray-light", className),
|
|
55
|
+
ref,
|
|
56
|
+
...props
|
|
57
|
+
}));
|
|
58
|
+
InfoBlockDescription.displayName = "InfoBlockDescription";
|
|
59
|
+
const InfoBlockValue = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
60
|
+
className: (0, cnfast.cn)("text-lg font-bold text-gray tabular-nums", className),
|
|
61
|
+
ref,
|
|
62
|
+
...props
|
|
63
|
+
}));
|
|
64
|
+
InfoBlockValue.displayName = "InfoBlockValue";
|
|
65
|
+
//#endregion
|
|
66
|
+
exports.InfoBlock = InfoBlock;
|
|
67
|
+
exports.InfoBlockContent = InfoBlockContent;
|
|
68
|
+
exports.InfoBlockDescription = InfoBlockDescription;
|
|
69
|
+
exports.InfoBlockHeader = InfoBlockHeader;
|
|
70
|
+
exports.InfoBlockIcon = InfoBlockIcon;
|
|
71
|
+
exports.InfoBlockLabel = InfoBlockLabel;
|
|
72
|
+
exports.InfoBlockTitle = InfoBlockTitle;
|
|
73
|
+
exports.InfoBlockValue = InfoBlockValue;
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=info-block.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info-block.cjs","names":["React"],"sources":["../../src/components/info-block.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\n\nconst infoBlockVariants = cva('flex items-center gap-3', {\n variants: {\n variant: {\n default: 'rounded-2xl border border-gray p-4',\n bare: 'rounded-none border-none',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n})\n\nconst InfoBlock = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof infoBlockVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n className={cn(infoBlockVariants({ variant }), className)}\n ref={ref}\n {...props}\n />\n))\n\nInfoBlock.displayName = 'InfoBlock'\n\nconst InfoBlockIcon = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n className={cn(\n 'flex size-10 shrink-0 items-center justify-center rounded-xl',\n className,\n )}\n ref={ref}\n {...props}\n />\n))\n\nInfoBlockIcon.displayName = 'InfoBlockIcon'\n\nconst InfoBlockContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n className={cn('flex min-w-0 flex-1 flex-col gap-2', className)}\n ref={ref}\n {...props}\n />\n))\n\nInfoBlockContent.displayName = 'InfoBlockContent'\n\nconst InfoBlockHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n className={cn('flex items-center justify-between gap-2', className)}\n ref={ref}\n {...props}\n />\n))\n\nInfoBlockHeader.displayName = 'InfoBlockHeader'\n\nconst InfoBlockTitle = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n className={cn('text-sm font-medium text-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nInfoBlockTitle.displayName = 'InfoBlockTitle'\n\nconst InfoBlockLabel = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n className={cn('text-xs font-medium text-gray-light', className)}\n ref={ref}\n {...props}\n />\n))\n\nInfoBlockLabel.displayName = 'InfoBlockLabel'\n\nconst InfoBlockDescription = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n className={cn('text-xs text-gray-light', className)}\n ref={ref}\n {...props}\n />\n))\n\nInfoBlockDescription.displayName = 'InfoBlockDescription'\n\nconst InfoBlockValue = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n className={cn('text-lg font-bold text-gray tabular-nums', className)}\n ref={ref}\n {...props}\n />\n))\n\nInfoBlockValue.displayName = 'InfoBlockValue'\n\nexport {\n InfoBlock,\n InfoBlockContent,\n InfoBlockDescription,\n InfoBlockHeader,\n InfoBlockIcon,\n InfoBlockLabel,\n InfoBlockTitle,\n InfoBlockValue,\n}\n"],"mappings":";;;;;;;;;AAIA,MAAM,qBAAA,GAAA,yBAAA,KAAwB,2BAA2B;CACvD,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACP,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CAAC;AAEF,MAAM,YAAYA,MAAM,YAGrB,EAAE,WAAW,SAAS,GAAG,SAAS,QACnC,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IAAc,kBAAkB,EAAE,SAAS,CAAC,EAAE,UAAU;CACnD;CACL,GAAI;CACJ,CAAA,CACF;AAEF,UAAU,cAAc;AAExB,MAAM,gBAAgBA,MAAM,YAGzB,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IACE,gEACA,UACD;CACI;CACL,GAAI;CACJ,CAAA,CACF;AAEF,cAAc,cAAc;AAE5B,MAAM,mBAAmBA,MAAM,YAG5B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IAAc,sCAAsC,UAAU;CACzD;CACL,GAAI;CACJ,CAAA,CACF;AAEF,iBAAiB,cAAc;AAE/B,MAAM,kBAAkBA,MAAM,YAG3B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IAAc,2CAA2C,UAAU;CAC9D;CACL,GAAI;CACJ,CAAA,CACF;AAEF,gBAAgB,cAAc;AAE9B,MAAM,iBAAiBA,MAAM,YAG1B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,YAAA,GAAA,OAAA,IAAc,iCAAiC,UAAU;CACpD;CACL,GAAI;CACJ,CAAA,CACF;AAEF,eAAe,cAAc;AAE7B,MAAM,iBAAiBA,MAAM,YAG1B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,YAAA,GAAA,OAAA,IAAc,uCAAuC,UAAU;CAC1D;CACL,GAAI;CACJ,CAAA,CACF;AAEF,eAAe,cAAc;AAE7B,MAAM,uBAAuBA,MAAM,YAGhC,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,YAAA,GAAA,OAAA,IAAc,2BAA2B,UAAU;CAC9C;CACL,GAAI;CACJ,CAAA,CACF;AAEF,qBAAqB,cAAc;AAEnC,MAAM,iBAAiBA,MAAM,YAG1B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,YAAA,GAAA,OAAA,IAAc,4CAA4C,UAAU;CAC/D;CACL,GAAI;CACJ,CAAA,CACF;AAEF,eAAe,cAAc"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
import * as _$class_variance_authority_types0 from "class-variance-authority/types";
|
|
5
|
+
import { VariantProps } from "class-variance-authority";
|
|
6
|
+
|
|
7
|
+
//#region src/components/info-block.d.ts
|
|
8
|
+
declare const InfoBlock: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
|
|
9
|
+
variant?: "bare" | "default" | null | undefined;
|
|
10
|
+
} & _$class_variance_authority_types0.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
declare const InfoBlockIcon: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
declare const InfoBlockContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
declare const InfoBlockHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
declare const InfoBlockTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLSpanElement> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
15
|
+
declare const InfoBlockLabel: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLSpanElement> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
16
|
+
declare const InfoBlockDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLSpanElement> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
17
|
+
declare const InfoBlockValue: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLSpanElement> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { InfoBlock, InfoBlockContent, InfoBlockDescription, InfoBlockHeader, InfoBlockIcon, InfoBlockLabel, InfoBlockTitle, InfoBlockValue };
|
|
20
|
+
//# sourceMappingURL=info-block.d.cts.map
|