@epilot/spark-ui 1.0.0-alpha.1 → 1.0.0-alpha.3
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 +519 -0
- package/dist/components/bar-chart.cjs.map +1 -0
- package/dist/components/bar-chart.d.cts +83 -0
- package/dist/components/bar-chart.d.ts +83 -0
- package/dist/components/bar-chart.js +517 -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 +34 -0
- package/dist/components/button.d.ts +34 -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 +23 -0
- package/dist/components/energy-bar-chart.cjs.map +1 -0
- package/dist/components/energy-bar-chart.d.cts +43 -0
- package/dist/components/energy-bar-chart.d.ts +43 -0
- package/dist/components/energy-bar-chart.js +21 -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 +56 -0
- package/dist/components/energy-history-chart.cjs.map +1 -0
- package/dist/components/energy-history-chart.d.cts +58 -0
- package/dist/components/energy-history-chart.d.ts +58 -0
- package/dist/components/energy-history-chart.js +54 -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 +310 -0
- package/dist/components/line-chart.cjs.map +1 -0
- package/dist/components/line-chart.d.cts +71 -0
- package/dist/components/line-chart.d.ts +71 -0
- package/dist/components/line-chart.js +307 -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 +358 -0
- package/dist/components/power-history-chart.cjs.map +1 -0
- package/dist/components/power-history-chart.d.cts +54 -0
- package/dist/components/power-history-chart.d.ts +54 -0
- package/dist/components/power-history-chart.js +355 -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 +221 -0
- package/dist/components/sankey-chart.cjs.map +1 -0
- package/dist/components/sankey-chart.d.cts +58 -0
- package/dist/components/sankey-chart.d.ts +58 -0
- package/dist/components/sankey-chart.js +218 -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/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 +105 -0
- package/dist/components/solar-forecast-chart.cjs.map +1 -0
- package/dist/components/solar-forecast-chart.d.cts +66 -0
- package/dist/components/solar-forecast-chart.d.ts +66 -0
- package/dist/components/solar-forecast-chart.js +99 -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 +223 -0
- package/dist/styles/internal.css +5 -0
- package/dist/styles/material-symbol.css +22 -0
- package/dist/styles/spark-default.css +883 -0
- package/dist/styles/theme.css +542 -0
- package/dist/styles/utilities.css +557 -0
- package/dist/theme-B3WtiByA.js +574 -0
- package/dist/theme-B3WtiByA.js.map +1 -0
- package/dist/theme-C9_OSe0S.cjs +592 -0
- package/dist/theme-C9_OSe0S.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 +59 -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 +58 -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/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 +79 -49
- package/dist/index.cjs +0 -303
- package/dist/index.cjs.map +0 -1
- package/dist/index.css +0 -1
- package/dist/index.d.cts +0 -75
- package/dist/index.d.ts +0 -75
- package/dist/index.js +0 -255
- package/dist/index.js.map +0 -1
- package/dist/styles.js +0 -1
|
@@ -0,0 +1,883 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Default Spark brand tokens.
|
|
3
|
+
*
|
|
4
|
+
* These match the portal runtime generator defaults (primary: #005EB4),
|
|
5
|
+
* but are shipped statically so the UI library has a sensible default.
|
|
6
|
+
*
|
|
7
|
+
* Consumers can override any `--spark-*` variables if they want runtime theming.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
@layer base {
|
|
11
|
+
:root,
|
|
12
|
+
.light,
|
|
13
|
+
.light-theme {
|
|
14
|
+
--spark-1: #fcfdfe;
|
|
15
|
+
--spark-2: #f6fafe;
|
|
16
|
+
--spark-3: #ebf3fd;
|
|
17
|
+
--spark-4: #dcebfe;
|
|
18
|
+
--spark-5: #cbe1fe;
|
|
19
|
+
--spark-6: #b6d5fc;
|
|
20
|
+
--spark-7: #9dc3f2;
|
|
21
|
+
--spark-8: #7aabe7;
|
|
22
|
+
--spark-9: #005eb4;
|
|
23
|
+
--spark-10: #004fa3;
|
|
24
|
+
--spark-11: #0f65bc;
|
|
25
|
+
--spark-12: #113157;
|
|
26
|
+
|
|
27
|
+
--spark-a1: #0055aa03;
|
|
28
|
+
--spark-a2: #0072e309;
|
|
29
|
+
--spark-a3: #0066e614;
|
|
30
|
+
--spark-a4: #006ef823;
|
|
31
|
+
--spark-a5: #006cfb34;
|
|
32
|
+
--spark-a6: #006df549;
|
|
33
|
+
--spark-a7: #0063de62;
|
|
34
|
+
--spark-a8: #005ed185;
|
|
35
|
+
--spark-a9: #005eb4;
|
|
36
|
+
--spark-a10: #004fa3;
|
|
37
|
+
--spark-a11: #005bb8f0;
|
|
38
|
+
--spark-a12: #00224bee;
|
|
39
|
+
|
|
40
|
+
--spark-contrast: #ffffff;
|
|
41
|
+
--spark-on-solid: #fff;
|
|
42
|
+
--spark-surface: #f4f9fecc;
|
|
43
|
+
--spark-background: #ffffff;
|
|
44
|
+
--spark-indicator: #005eb4;
|
|
45
|
+
--spark-track: #005eb4;
|
|
46
|
+
|
|
47
|
+
/* Companion tokens for the colour axis (Button color="neutral"|"danger").
|
|
48
|
+
These reference gamut-aware scales / flip per appearance, so one declaration
|
|
49
|
+
covers sRGB + p3 and light + dark. --neutral-contrast tracks the neutral knob;
|
|
50
|
+
--red-contrast is white (clears 3:1 on the appearance-stable red-9). */
|
|
51
|
+
--red-contrast: #fff;
|
|
52
|
+
--red-on-solid: #fff;
|
|
53
|
+
--red-surface: var(--red-2);
|
|
54
|
+
--neutral-contrast: var(--neutral-12);
|
|
55
|
+
--neutral-on-solid: #fff;
|
|
56
|
+
--neutral-surface: var(--neutral-2);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@supports (color: color(display-p3 1 1 1)) {
|
|
60
|
+
@media (color-gamut: p3) {
|
|
61
|
+
:root,
|
|
62
|
+
.light,
|
|
63
|
+
.light-theme {
|
|
64
|
+
--spark-1: oklch(99.4% 0.0013 254.2);
|
|
65
|
+
--spark-2: oklch(98.3% 0.0072 254.2);
|
|
66
|
+
--spark-3: oklch(96.1% 0.0155 254.2);
|
|
67
|
+
--spark-4: oklch(93.5% 0.0304 254.2);
|
|
68
|
+
--spark-5: oklch(90.3% 0.046 254.2);
|
|
69
|
+
--spark-6: oklch(86.3% 0.0643 254.2);
|
|
70
|
+
--spark-7: oklch(80.7% 0.0782 254.2);
|
|
71
|
+
--spark-8: oklch(73% 0.102 254.2);
|
|
72
|
+
--spark-9: oklch(48.6% 0.1556 254.2);
|
|
73
|
+
--spark-10: oklch(43.5% 0.1556 254.2);
|
|
74
|
+
--spark-11: oklch(51% 0.1556 254.2);
|
|
75
|
+
--spark-12: oklch(31.3% 0.077 254.2);
|
|
76
|
+
|
|
77
|
+
--spark-a1: color(display-p3 0.0235 0.349 0.6745 / 0.012);
|
|
78
|
+
--spark-a2: color(display-p3 0.0196 0.3882 0.8784 / 0.032);
|
|
79
|
+
--spark-a3: color(display-p3 0.0078 0.3725 0.8431 / 0.075);
|
|
80
|
+
--spark-a4: color(display-p3 0.0078 0.3804 0.9098 / 0.126);
|
|
81
|
+
--spark-a5: color(display-p3 0.0078 0.3569 0.9176 / 0.189);
|
|
82
|
+
--spark-a6: color(display-p3 0.0039 0.3608 0.898 / 0.263);
|
|
83
|
+
--spark-a7: color(display-p3 0.0039 0.3255 0.8118 / 0.353);
|
|
84
|
+
--spark-a8: color(display-p3 0.0039 0.3098 0.7647 / 0.483);
|
|
85
|
+
--spark-a9: color(display-p3 0 0.2471 0.6235 / 0.848);
|
|
86
|
+
--spark-a10: color(display-p3 0 0.2118 0.5608 / 0.879);
|
|
87
|
+
--spark-a11: color(display-p3 0 0.2549 0.651 / 0.82);
|
|
88
|
+
--spark-a12: color(display-p3 0 0.098 0.2549 / 0.899);
|
|
89
|
+
|
|
90
|
+
--spark-contrast: #ffffff;
|
|
91
|
+
--spark-on-solid: #fff;
|
|
92
|
+
--spark-surface: color(display-p3 0.9608 0.9765 0.9961 / 0.8);
|
|
93
|
+
--spark-background: #ffffff;
|
|
94
|
+
--spark-indicator: oklch(48.6% 0.1556 254.2);
|
|
95
|
+
--spark-track: oklch(48.6% 0.1556 254.2);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.dark,
|
|
101
|
+
.dark-theme {
|
|
102
|
+
--spark-1: #07121f;
|
|
103
|
+
--spark-2: #0b1929;
|
|
104
|
+
--spark-3: #002650;
|
|
105
|
+
--spark-4: #002f6f;
|
|
106
|
+
--spark-5: #003b83;
|
|
107
|
+
--spark-6: #004996;
|
|
108
|
+
--spark-7: #0058ae;
|
|
109
|
+
--spark-8: #0069cf;
|
|
110
|
+
--spark-9: #005eb4;
|
|
111
|
+
--spark-10: #00509d;
|
|
112
|
+
--spark-11: #71b8ff;
|
|
113
|
+
--spark-12: #c5e4ff;
|
|
114
|
+
|
|
115
|
+
--spark-a1: #0025ff0d;
|
|
116
|
+
--spark-a2: #0066fd18;
|
|
117
|
+
--spark-a3: #0062ff42;
|
|
118
|
+
--spark-a4: #005efd64;
|
|
119
|
+
--spark-a5: #0069fd7a;
|
|
120
|
+
--spark-a6: #0075ff8e;
|
|
121
|
+
--spark-a7: #007dffa8;
|
|
122
|
+
--spark-a8: #007ffecc;
|
|
123
|
+
--spark-a9: #0082ffae;
|
|
124
|
+
--spark-a10: #007cfe96;
|
|
125
|
+
--spark-a11: #71b8ff;
|
|
126
|
+
--spark-a12: #c5e4ff;
|
|
127
|
+
|
|
128
|
+
--spark-contrast: #fff;
|
|
129
|
+
--spark-on-solid: #fff;
|
|
130
|
+
--spark-surface: #06213f80;
|
|
131
|
+
--spark-background: #111113;
|
|
132
|
+
--spark-indicator: #005eb4;
|
|
133
|
+
--spark-track: #005eb4;
|
|
134
|
+
|
|
135
|
+
--red-contrast: #fff;
|
|
136
|
+
--red-on-solid: #fff;
|
|
137
|
+
--red-surface: var(--red-2);
|
|
138
|
+
--neutral-contrast: var(--neutral-12);
|
|
139
|
+
--neutral-on-solid: #fff;
|
|
140
|
+
--neutral-surface: var(--neutral-2);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@supports (color: color(display-p3 1 1 1)) {
|
|
144
|
+
@media (color-gamut: p3) {
|
|
145
|
+
.dark,
|
|
146
|
+
.dark-theme {
|
|
147
|
+
--spark-1: oklch(17.9% 0.0326 254.2);
|
|
148
|
+
--spark-2: oklch(20.9% 0.0382 254.2);
|
|
149
|
+
--spark-3: oklch(27.2% 0.0872 254.2);
|
|
150
|
+
--spark-4: oklch(31.7% 0.126 254.2);
|
|
151
|
+
--spark-5: oklch(36.4% 0.1378 254.2);
|
|
152
|
+
--spark-6: oklch(41.2% 0.144 254.2);
|
|
153
|
+
--spark-7: oklch(46.8% 0.1556 254.2);
|
|
154
|
+
--spark-8: oklch(53% 0.1789 254.2);
|
|
155
|
+
--spark-9: oklch(48.6% 0.1556 254.2);
|
|
156
|
+
--spark-10: oklch(43.5% 0.144 254.2);
|
|
157
|
+
--spark-11: oklch(77.1% 0.1674 254.2);
|
|
158
|
+
--spark-12: oklch(90.8% 0.0614 254.2);
|
|
159
|
+
|
|
160
|
+
--spark-a1: color(display-p3 0 0.1529 0.9961 / 0.047);
|
|
161
|
+
--spark-a2: color(display-p3 0 0.4196 1 / 0.089);
|
|
162
|
+
--spark-a3: color(display-p3 0 0.3882 1 / 0.246);
|
|
163
|
+
--spark-a4: color(display-p3 0.0588 0.3725 1 / 0.373);
|
|
164
|
+
--spark-a5: color(display-p3 0.1137 0.4235 1 / 0.454);
|
|
165
|
+
--spark-a6: color(display-p3 0.149 0.4706 1 / 0.534);
|
|
166
|
+
--spark-a7: color(display-p3 0.1882 0.502 1 / 0.632);
|
|
167
|
+
--spark-a8: color(display-p3 0.2039 0.5059 1 / 0.767);
|
|
168
|
+
--spark-a9: color(display-p3 0.1961 0.5137 0.9961 / 0.657);
|
|
169
|
+
--spark-a10: color(display-p3 0.1725 0.498 1 / 0.564);
|
|
170
|
+
--spark-a11: color(display-p3 0.5176 0.7333 1 / 0.975);
|
|
171
|
+
--spark-a12: color(display-p3 0.8039 0.902 1 / 0.988);
|
|
172
|
+
|
|
173
|
+
--spark-contrast: #fff;
|
|
174
|
+
--spark-on-solid: #fff;
|
|
175
|
+
--spark-surface: color(display-p3 0.0431 0.1176 0.2353 / 0.5);
|
|
176
|
+
--spark-background: #111113;
|
|
177
|
+
--spark-indicator: oklch(48.6% 0.1556 254.2);
|
|
178
|
+
--spark-track: oklch(48.6% 0.1556 254.2);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/*
|
|
184
|
+
* Default "shape" (border radius) tokens.
|
|
185
|
+
* Default radius preset = `medium` (factor 2) = today's portal look.
|
|
186
|
+
* The [data-radius] presets below scale the factor; `full` also enables the
|
|
187
|
+
* pill token (--spark-rounded-full) used by the max() idiom on Button etc.
|
|
188
|
+
*/
|
|
189
|
+
/* factor + pill on :root only, so nested scopes inherit rather than reset. */
|
|
190
|
+
:root {
|
|
191
|
+
--spark-rounded-factor: 2;
|
|
192
|
+
--spark-rounded-full: 0px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* size calcs on .spark-theme too, so a scope re-resolves them from its factor. */
|
|
196
|
+
:root,
|
|
197
|
+
.spark-theme {
|
|
198
|
+
--spark-rounded-sm: calc(3px * var(--spark-rounded-factor));
|
|
199
|
+
--spark-rounded-md: calc(4px * var(--spark-rounded-factor));
|
|
200
|
+
--spark-rounded-lg: calc(6px * var(--spark-rounded-factor));
|
|
201
|
+
--spark-rounded-xl: calc(8px * var(--spark-rounded-factor));
|
|
202
|
+
--spark-rounded-2xl: calc(12px * var(--spark-rounded-factor));
|
|
203
|
+
--spark-rounded-3xl: calc(16px * var(--spark-rounded-factor));
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/*
|
|
207
|
+
* Roundness presets. Sets the factor on the scoped element; descendants
|
|
208
|
+
* inherit, so it cascades and is overridable at any level (global → block →
|
|
209
|
+
* element). No attribute = medium (the :root default above).
|
|
210
|
+
*/
|
|
211
|
+
[data-radius='none'] {
|
|
212
|
+
--spark-rounded-factor: 0;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
[data-radius='small'] {
|
|
216
|
+
--spark-rounded-factor: 1;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
[data-radius='medium'] {
|
|
220
|
+
--spark-rounded-factor: 2;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
[data-radius='large'] {
|
|
224
|
+
--spark-rounded-factor: 3;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/* non-full presets clear the pill, so a nested override drops an inherited full. */
|
|
228
|
+
[data-radius='none'],
|
|
229
|
+
[data-radius='small'],
|
|
230
|
+
[data-radius='medium'],
|
|
231
|
+
[data-radius='large'] {
|
|
232
|
+
--spark-rounded-full: 0px;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* `full` does two complementary things (both intentional, not a temp hack): */
|
|
236
|
+
[data-radius='full'] {
|
|
237
|
+
--spark-rounded-factor: 3; /* large radii for normally-rounded elements */
|
|
238
|
+
--spark-rounded-full: 9999px; /* + pill token: pill-able components (Button via max()) become pills */
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/*
|
|
242
|
+
* Neutral scale indirection. The semantic gray tokens in theme.css read
|
|
243
|
+
* --neutral-* instead of a hardwired scale, so [data-neutral-color] can swap the
|
|
244
|
+
* neutral. Default = slate; cascades & overrides like the radius presets.
|
|
245
|
+
*/
|
|
246
|
+
/* also under .dark so neutrals re-resolve in dark mode with no [data-neutral-color] set. */
|
|
247
|
+
:root,
|
|
248
|
+
.dark,
|
|
249
|
+
.dark-theme {
|
|
250
|
+
--neutral-1: var(--slate-1);
|
|
251
|
+
--neutral-2: var(--slate-2);
|
|
252
|
+
--neutral-3: var(--slate-3);
|
|
253
|
+
--neutral-4: var(--slate-4);
|
|
254
|
+
--neutral-5: var(--slate-5);
|
|
255
|
+
--neutral-6: var(--slate-6);
|
|
256
|
+
--neutral-7: var(--slate-7);
|
|
257
|
+
--neutral-8: var(--slate-8);
|
|
258
|
+
--neutral-9: var(--slate-9);
|
|
259
|
+
--neutral-10: var(--slate-10);
|
|
260
|
+
--neutral-11: var(--slate-11);
|
|
261
|
+
--neutral-12: var(--slate-12);
|
|
262
|
+
--neutral-a1: var(--slate-a1);
|
|
263
|
+
--neutral-a2: var(--slate-a2);
|
|
264
|
+
--neutral-a3: var(--slate-a3);
|
|
265
|
+
--neutral-a4: var(--slate-a4);
|
|
266
|
+
--neutral-a5: var(--slate-a5);
|
|
267
|
+
--neutral-a6: var(--slate-a6);
|
|
268
|
+
--neutral-a7: var(--slate-a7);
|
|
269
|
+
--neutral-a8: var(--slate-a8);
|
|
270
|
+
--neutral-a9: var(--slate-a9);
|
|
271
|
+
--neutral-a10: var(--slate-a10);
|
|
272
|
+
--neutral-a11: var(--slate-a11);
|
|
273
|
+
--neutral-a12: var(--slate-a12);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
[data-neutral-color='slate'] {
|
|
277
|
+
--neutral-1: var(--slate-1);
|
|
278
|
+
--neutral-2: var(--slate-2);
|
|
279
|
+
--neutral-3: var(--slate-3);
|
|
280
|
+
--neutral-4: var(--slate-4);
|
|
281
|
+
--neutral-5: var(--slate-5);
|
|
282
|
+
--neutral-6: var(--slate-6);
|
|
283
|
+
--neutral-7: var(--slate-7);
|
|
284
|
+
--neutral-8: var(--slate-8);
|
|
285
|
+
--neutral-9: var(--slate-9);
|
|
286
|
+
--neutral-10: var(--slate-10);
|
|
287
|
+
--neutral-11: var(--slate-11);
|
|
288
|
+
--neutral-12: var(--slate-12);
|
|
289
|
+
--neutral-a1: var(--slate-a1);
|
|
290
|
+
--neutral-a2: var(--slate-a2);
|
|
291
|
+
--neutral-a3: var(--slate-a3);
|
|
292
|
+
--neutral-a4: var(--slate-a4);
|
|
293
|
+
--neutral-a5: var(--slate-a5);
|
|
294
|
+
--neutral-a6: var(--slate-a6);
|
|
295
|
+
--neutral-a7: var(--slate-a7);
|
|
296
|
+
--neutral-a8: var(--slate-a8);
|
|
297
|
+
--neutral-a9: var(--slate-a9);
|
|
298
|
+
--neutral-a10: var(--slate-a10);
|
|
299
|
+
--neutral-a11: var(--slate-a11);
|
|
300
|
+
--neutral-a12: var(--slate-a12);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
[data-neutral-color='mauve'] {
|
|
304
|
+
--neutral-1: var(--mauve-1);
|
|
305
|
+
--neutral-2: var(--mauve-2);
|
|
306
|
+
--neutral-3: var(--mauve-3);
|
|
307
|
+
--neutral-4: var(--mauve-4);
|
|
308
|
+
--neutral-5: var(--mauve-5);
|
|
309
|
+
--neutral-6: var(--mauve-6);
|
|
310
|
+
--neutral-7: var(--mauve-7);
|
|
311
|
+
--neutral-8: var(--mauve-8);
|
|
312
|
+
--neutral-9: var(--mauve-9);
|
|
313
|
+
--neutral-10: var(--mauve-10);
|
|
314
|
+
--neutral-11: var(--mauve-11);
|
|
315
|
+
--neutral-12: var(--mauve-12);
|
|
316
|
+
--neutral-a1: var(--mauve-a1);
|
|
317
|
+
--neutral-a2: var(--mauve-a2);
|
|
318
|
+
--neutral-a3: var(--mauve-a3);
|
|
319
|
+
--neutral-a4: var(--mauve-a4);
|
|
320
|
+
--neutral-a5: var(--mauve-a5);
|
|
321
|
+
--neutral-a6: var(--mauve-a6);
|
|
322
|
+
--neutral-a7: var(--mauve-a7);
|
|
323
|
+
--neutral-a8: var(--mauve-a8);
|
|
324
|
+
--neutral-a9: var(--mauve-a9);
|
|
325
|
+
--neutral-a10: var(--mauve-a10);
|
|
326
|
+
--neutral-a11: var(--mauve-a11);
|
|
327
|
+
--neutral-a12: var(--mauve-a12);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
[data-neutral-color='gray'] {
|
|
331
|
+
--neutral-1: var(--gray-1);
|
|
332
|
+
--neutral-2: var(--gray-2);
|
|
333
|
+
--neutral-3: var(--gray-3);
|
|
334
|
+
--neutral-4: var(--gray-4);
|
|
335
|
+
--neutral-5: var(--gray-5);
|
|
336
|
+
--neutral-6: var(--gray-6);
|
|
337
|
+
--neutral-7: var(--gray-7);
|
|
338
|
+
--neutral-8: var(--gray-8);
|
|
339
|
+
--neutral-9: var(--gray-9);
|
|
340
|
+
--neutral-10: var(--gray-10);
|
|
341
|
+
--neutral-11: var(--gray-11);
|
|
342
|
+
--neutral-12: var(--gray-12);
|
|
343
|
+
--neutral-a1: var(--gray-a1);
|
|
344
|
+
--neutral-a2: var(--gray-a2);
|
|
345
|
+
--neutral-a3: var(--gray-a3);
|
|
346
|
+
--neutral-a4: var(--gray-a4);
|
|
347
|
+
--neutral-a5: var(--gray-a5);
|
|
348
|
+
--neutral-a6: var(--gray-a6);
|
|
349
|
+
--neutral-a7: var(--gray-a7);
|
|
350
|
+
--neutral-a8: var(--gray-a8);
|
|
351
|
+
--neutral-a9: var(--gray-a9);
|
|
352
|
+
--neutral-a10: var(--gray-a10);
|
|
353
|
+
--neutral-a11: var(--gray-a11);
|
|
354
|
+
--neutral-a12: var(--gray-a12);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
[data-neutral-color='sage'] {
|
|
358
|
+
--neutral-1: var(--sage-1);
|
|
359
|
+
--neutral-2: var(--sage-2);
|
|
360
|
+
--neutral-3: var(--sage-3);
|
|
361
|
+
--neutral-4: var(--sage-4);
|
|
362
|
+
--neutral-5: var(--sage-5);
|
|
363
|
+
--neutral-6: var(--sage-6);
|
|
364
|
+
--neutral-7: var(--sage-7);
|
|
365
|
+
--neutral-8: var(--sage-8);
|
|
366
|
+
--neutral-9: var(--sage-9);
|
|
367
|
+
--neutral-10: var(--sage-10);
|
|
368
|
+
--neutral-11: var(--sage-11);
|
|
369
|
+
--neutral-12: var(--sage-12);
|
|
370
|
+
--neutral-a1: var(--sage-a1);
|
|
371
|
+
--neutral-a2: var(--sage-a2);
|
|
372
|
+
--neutral-a3: var(--sage-a3);
|
|
373
|
+
--neutral-a4: var(--sage-a4);
|
|
374
|
+
--neutral-a5: var(--sage-a5);
|
|
375
|
+
--neutral-a6: var(--sage-a6);
|
|
376
|
+
--neutral-a7: var(--sage-a7);
|
|
377
|
+
--neutral-a8: var(--sage-a8);
|
|
378
|
+
--neutral-a9: var(--sage-a9);
|
|
379
|
+
--neutral-a10: var(--sage-a10);
|
|
380
|
+
--neutral-a11: var(--sage-a11);
|
|
381
|
+
--neutral-a12: var(--sage-a12);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
[data-neutral-color='olive'] {
|
|
385
|
+
--neutral-1: var(--olive-1);
|
|
386
|
+
--neutral-2: var(--olive-2);
|
|
387
|
+
--neutral-3: var(--olive-3);
|
|
388
|
+
--neutral-4: var(--olive-4);
|
|
389
|
+
--neutral-5: var(--olive-5);
|
|
390
|
+
--neutral-6: var(--olive-6);
|
|
391
|
+
--neutral-7: var(--olive-7);
|
|
392
|
+
--neutral-8: var(--olive-8);
|
|
393
|
+
--neutral-9: var(--olive-9);
|
|
394
|
+
--neutral-10: var(--olive-10);
|
|
395
|
+
--neutral-11: var(--olive-11);
|
|
396
|
+
--neutral-12: var(--olive-12);
|
|
397
|
+
--neutral-a1: var(--olive-a1);
|
|
398
|
+
--neutral-a2: var(--olive-a2);
|
|
399
|
+
--neutral-a3: var(--olive-a3);
|
|
400
|
+
--neutral-a4: var(--olive-a4);
|
|
401
|
+
--neutral-a5: var(--olive-a5);
|
|
402
|
+
--neutral-a6: var(--olive-a6);
|
|
403
|
+
--neutral-a7: var(--olive-a7);
|
|
404
|
+
--neutral-a8: var(--olive-a8);
|
|
405
|
+
--neutral-a9: var(--olive-a9);
|
|
406
|
+
--neutral-a10: var(--olive-a10);
|
|
407
|
+
--neutral-a11: var(--olive-a11);
|
|
408
|
+
--neutral-a12: var(--olive-a12);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
[data-neutral-color='sand'] {
|
|
412
|
+
--neutral-1: var(--sand-1);
|
|
413
|
+
--neutral-2: var(--sand-2);
|
|
414
|
+
--neutral-3: var(--sand-3);
|
|
415
|
+
--neutral-4: var(--sand-4);
|
|
416
|
+
--neutral-5: var(--sand-5);
|
|
417
|
+
--neutral-6: var(--sand-6);
|
|
418
|
+
--neutral-7: var(--sand-7);
|
|
419
|
+
--neutral-8: var(--sand-8);
|
|
420
|
+
--neutral-9: var(--sand-9);
|
|
421
|
+
--neutral-10: var(--sand-10);
|
|
422
|
+
--neutral-11: var(--sand-11);
|
|
423
|
+
--neutral-12: var(--sand-12);
|
|
424
|
+
--neutral-a1: var(--sand-a1);
|
|
425
|
+
--neutral-a2: var(--sand-a2);
|
|
426
|
+
--neutral-a3: var(--sand-a3);
|
|
427
|
+
--neutral-a4: var(--sand-a4);
|
|
428
|
+
--neutral-a5: var(--sand-a5);
|
|
429
|
+
--neutral-a6: var(--sand-a6);
|
|
430
|
+
--neutral-a7: var(--sand-a7);
|
|
431
|
+
--neutral-a8: var(--sand-a8);
|
|
432
|
+
--neutral-a9: var(--sand-a9);
|
|
433
|
+
--neutral-a10: var(--sand-a10);
|
|
434
|
+
--neutral-a11: var(--sand-a11);
|
|
435
|
+
--neutral-a12: var(--sand-a12);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/*
|
|
439
|
+
* Spacing density presets. Swaps the Tailwind --spacing base for the scoped
|
|
440
|
+
* subtree (cascades like the others). No attribute = default (0.25rem).
|
|
441
|
+
*/
|
|
442
|
+
[data-spacing='dense'] {
|
|
443
|
+
--spark-spacing: 0.2rem;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
[data-spacing='default'] {
|
|
447
|
+
--spark-spacing: 0.25rem;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
[data-spacing='roomy'] {
|
|
451
|
+
--spark-spacing: 0.3rem;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
/*
|
|
455
|
+
* Scaling presets (global zoom). Composes with spacing (--spacing =
|
|
456
|
+
* --spark-spacing * --spark-scaling) and scales --text-*. No attribute = 100%.
|
|
457
|
+
*/
|
|
458
|
+
[data-scaling='90%'] {
|
|
459
|
+
--spark-scaling: 0.9;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
[data-scaling='95%'] {
|
|
463
|
+
--spark-scaling: 0.95;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
[data-scaling='100%'] {
|
|
467
|
+
--spark-scaling: 1;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
[data-scaling='105%'] {
|
|
471
|
+
--spark-scaling: 1.05;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
[data-scaling='110%'] {
|
|
475
|
+
--spark-scaling: 1.1;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
/* Only declared under [data-style]; no preset → Button falls back to the raw accent.
|
|
479
|
+
The zero-specificity `:where(… .spark-theme)` twin re-declares the tokens inside
|
|
480
|
+
nested themes: var() resolves on the declaring element, so without it a nested
|
|
481
|
+
<Theme accentColor> would inherit the ancestor's already-resolved fg/bg (wrong
|
|
482
|
+
accent, wrong contrast). A nested theme's own [data-style] still wins on specificity. */
|
|
483
|
+
[data-style='solid'],
|
|
484
|
+
:where([data-style='solid'] .spark-theme) {
|
|
485
|
+
--spark-style-bg: var(--spark-9);
|
|
486
|
+
--spark-style-bg-hover: var(--spark-10);
|
|
487
|
+
/* fg intentionally unset: a solid foreground means different things per role, so
|
|
488
|
+
each component falls back to the right contrast — Button *text* → --spark-contrast
|
|
489
|
+
(AA-enforced 4.5:1), Checkbox *check glyph* → --spark-on-solid (native ~3:1, white
|
|
490
|
+
on any accent). Baking one here would give one of them the wrong contrast. */
|
|
491
|
+
--spark-style-border: transparent;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
[data-style='soft'],
|
|
495
|
+
:where([data-style='soft'] .spark-theme) {
|
|
496
|
+
--spark-style-bg: var(--spark-a3);
|
|
497
|
+
--spark-style-bg-hover: var(--spark-a4);
|
|
498
|
+
--spark-style-fg: var(--spark-a11);
|
|
499
|
+
--spark-style-border: transparent;
|
|
500
|
+
/* soft is borderless in both states (idle-border drops the unchecked affordance border) */
|
|
501
|
+
--spark-style-idle-border: transparent;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
[data-style='surface'],
|
|
505
|
+
:where([data-style='surface'] .spark-theme) {
|
|
506
|
+
--spark-style-bg: var(--spark-surface);
|
|
507
|
+
--spark-style-bg-hover: var(--spark-a3);
|
|
508
|
+
--spark-style-fg: var(--spark-a11);
|
|
509
|
+
--spark-style-border: var(--spark-a6);
|
|
510
|
+
/* surface = a thin (1px), recessed edge: neutral chrome at rest, accent when
|
|
511
|
+
active — mirrors the switch surface (idle ring neutral, on ring accent). */
|
|
512
|
+
--spark-style-border-width: 1px;
|
|
513
|
+
--spark-style-idle-border: var(--color-gray-a7);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
[data-style='ghost'],
|
|
517
|
+
:where([data-style='ghost'] .spark-theme) {
|
|
518
|
+
--spark-style-bg: transparent;
|
|
519
|
+
--spark-style-bg-hover: var(--spark-a3);
|
|
520
|
+
--spark-style-fg: var(--spark-a11);
|
|
521
|
+
--spark-style-border: transparent;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
/* outline: no fill, accent border + accent fg (the unfilled control look). */
|
|
525
|
+
[data-style='outline'],
|
|
526
|
+
:where([data-style='outline'] .spark-theme) {
|
|
527
|
+
--spark-style-bg: transparent;
|
|
528
|
+
--spark-style-bg-hover: var(--spark-a3);
|
|
529
|
+
--spark-style-fg: var(--spark-a11);
|
|
530
|
+
--spark-style-border: var(--spark-a8);
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
/*
|
|
534
|
+
* Colour axis — re-point the accent scale so the shared [data-style] recipes paint
|
|
535
|
+
* with neutral (gray) or danger (red) instead of accent. Set on the element via
|
|
536
|
+
* data-accent-color (Button `color="neutral"|"danger"`). var() resolves on the
|
|
537
|
+
* declaring element, so re-pointing --spark-* here re-colours the recipe that reads
|
|
538
|
+
* them; the :where(… .spark-theme) twin re-resolves inside nested themes. Additive
|
|
539
|
+
* (new selectors, no existing token/value change) → parity holds.
|
|
540
|
+
*/
|
|
541
|
+
[data-accent-color='gray'],
|
|
542
|
+
:where([data-accent-color='gray'] .spark-theme) {
|
|
543
|
+
--spark-1: var(--neutral-1);
|
|
544
|
+
--spark-2: var(--neutral-2);
|
|
545
|
+
--spark-3: var(--neutral-3);
|
|
546
|
+
--spark-4: var(--neutral-4);
|
|
547
|
+
--spark-5: var(--neutral-5);
|
|
548
|
+
--spark-6: var(--neutral-6);
|
|
549
|
+
--spark-7: var(--neutral-7);
|
|
550
|
+
--spark-8: var(--neutral-8);
|
|
551
|
+
--spark-9: var(--neutral-9);
|
|
552
|
+
--spark-10: var(--neutral-10);
|
|
553
|
+
--spark-11: var(--neutral-11);
|
|
554
|
+
--spark-12: var(--neutral-12);
|
|
555
|
+
--spark-a1: var(--neutral-a1);
|
|
556
|
+
--spark-a2: var(--neutral-a2);
|
|
557
|
+
--spark-a3: var(--neutral-a3);
|
|
558
|
+
--spark-a4: var(--neutral-a4);
|
|
559
|
+
--spark-a5: var(--neutral-a5);
|
|
560
|
+
--spark-a6: var(--neutral-a6);
|
|
561
|
+
--spark-a7: var(--neutral-a7);
|
|
562
|
+
--spark-a8: var(--neutral-a8);
|
|
563
|
+
--spark-a9: var(--neutral-a9);
|
|
564
|
+
--spark-a10: var(--neutral-a10);
|
|
565
|
+
--spark-a11: var(--neutral-a11);
|
|
566
|
+
--spark-a12: var(--neutral-a12);
|
|
567
|
+
--spark-contrast: var(--neutral-contrast);
|
|
568
|
+
--spark-on-solid: var(--neutral-on-solid);
|
|
569
|
+
--spark-surface: var(--neutral-surface);
|
|
570
|
+
--spark-indicator: var(--neutral-9);
|
|
571
|
+
--spark-track: var(--neutral-9);
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
[data-accent-color='red'],
|
|
575
|
+
:where([data-accent-color='red'] .spark-theme) {
|
|
576
|
+
--spark-1: var(--red-1);
|
|
577
|
+
--spark-2: var(--red-2);
|
|
578
|
+
--spark-3: var(--red-3);
|
|
579
|
+
--spark-4: var(--red-4);
|
|
580
|
+
--spark-5: var(--red-5);
|
|
581
|
+
--spark-6: var(--red-6);
|
|
582
|
+
--spark-7: var(--red-7);
|
|
583
|
+
--spark-8: var(--red-8);
|
|
584
|
+
--spark-9: var(--red-9);
|
|
585
|
+
--spark-10: var(--red-10);
|
|
586
|
+
--spark-11: var(--red-11);
|
|
587
|
+
--spark-12: var(--red-12);
|
|
588
|
+
--spark-a1: var(--red-a1);
|
|
589
|
+
--spark-a2: var(--red-a2);
|
|
590
|
+
--spark-a3: var(--red-a3);
|
|
591
|
+
--spark-a4: var(--red-a4);
|
|
592
|
+
--spark-a5: var(--red-a5);
|
|
593
|
+
--spark-a6: var(--red-a6);
|
|
594
|
+
--spark-a7: var(--red-a7);
|
|
595
|
+
--spark-a8: var(--red-a8);
|
|
596
|
+
--spark-a9: var(--red-a9);
|
|
597
|
+
--spark-a10: var(--red-a10);
|
|
598
|
+
--spark-a11: var(--red-a11);
|
|
599
|
+
--spark-a12: var(--red-a12);
|
|
600
|
+
--spark-contrast: var(--red-contrast);
|
|
601
|
+
--spark-on-solid: var(--red-on-solid);
|
|
602
|
+
--spark-surface: var(--red-surface);
|
|
603
|
+
--spark-indicator: var(--red-9);
|
|
604
|
+
--spark-track: var(--red-9);
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
/*
|
|
608
|
+
* Card container chrome — a CONTAINER-only knob (contract §11). Everything here
|
|
609
|
+
* writes only --spark-card-* / --spark-card-c-*, tokens read EXCLUSIVELY by <Card>;
|
|
610
|
+
* it never touches data-style, --spark-style-*, or the --spark-* scale, so styling
|
|
611
|
+
* OR colouring a card never cascades into the Buttons/Checkboxes inside it.
|
|
612
|
+
*
|
|
613
|
+
* [data-card-variant] = the app-level default look (from <Theme cardVariant>); a
|
|
614
|
+
* per-card `variant` prop overrides it via the cva recipe. [data-card-color='accent']
|
|
615
|
+
* re-points the 5-slot card mini-scale so the chrome tints with the accent while the
|
|
616
|
+
* card's content controls keep their own colour. Neutral fallbacks are baked into the
|
|
617
|
+
* cva classes + the presets below, so a default card tracks the app neutral knob.
|
|
618
|
+
* The :where(… .spark-theme) / (… [data-card-color]) twins re-resolve var() inside
|
|
619
|
+
* nested themes / recoloured cards (same reason as the [data-style] twins above).
|
|
620
|
+
* Every preset re-declares the FULL token set (equal-specificity sibling leak guard,
|
|
621
|
+
* like the [data-high-contrast] block). Additive → parity holds.
|
|
622
|
+
*/
|
|
623
|
+
[data-card-color='accent'],
|
|
624
|
+
:where([data-card-color='accent'] .spark-theme) {
|
|
625
|
+
--spark-card-c-soft: var(--spark-a3);
|
|
626
|
+
--spark-card-c-surface: var(--spark-surface);
|
|
627
|
+
--spark-card-c-border: var(--spark-a6);
|
|
628
|
+
--spark-card-c-solid: var(--spark-9);
|
|
629
|
+
--spark-card-c-contrast: var(--spark-contrast);
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
[data-card-variant='soft'],
|
|
633
|
+
:where([data-card-variant='soft'] .spark-theme),
|
|
634
|
+
:where([data-card-variant='soft'] [data-card-color]) {
|
|
635
|
+
--spark-card-px: 1rem;
|
|
636
|
+
--spark-card-bg: var(--spark-card-c-soft, var(--neutral-a3));
|
|
637
|
+
--spark-card-border: transparent;
|
|
638
|
+
--spark-card-border-width: 0px;
|
|
639
|
+
--spark-card-fg: var(--neutral-a12);
|
|
640
|
+
--spark-card-fg-muted: var(--neutral-a11);
|
|
641
|
+
--spark-card-icon: var(--spark-a11);
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
[data-card-variant='surface'],
|
|
645
|
+
:where([data-card-variant='surface'] .spark-theme),
|
|
646
|
+
:where([data-card-variant='surface'] [data-card-color]) {
|
|
647
|
+
--spark-card-px: 1rem;
|
|
648
|
+
--spark-card-bg: var(--spark-card-c-surface, var(--neutral-2));
|
|
649
|
+
--spark-card-border: var(--spark-card-c-border, var(--neutral-a6));
|
|
650
|
+
--spark-card-border-width: 1px;
|
|
651
|
+
--spark-card-fg: var(--neutral-a12);
|
|
652
|
+
--spark-card-fg-muted: var(--neutral-a11);
|
|
653
|
+
--spark-card-icon: var(--spark-a11);
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
[data-card-variant='outline'],
|
|
657
|
+
:where([data-card-variant='outline'] .spark-theme),
|
|
658
|
+
:where([data-card-variant='outline'] [data-card-color]) {
|
|
659
|
+
--spark-card-px: 1rem;
|
|
660
|
+
--spark-card-bg: transparent;
|
|
661
|
+
--spark-card-border: var(--spark-card-c-border, var(--neutral-a6));
|
|
662
|
+
--spark-card-border-width: 1px;
|
|
663
|
+
--spark-card-fg: var(--neutral-a12);
|
|
664
|
+
--spark-card-fg-muted: var(--neutral-a11);
|
|
665
|
+
--spark-card-icon: var(--spark-a11);
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
[data-card-variant='ghost'],
|
|
669
|
+
:where([data-card-variant='ghost'] .spark-theme),
|
|
670
|
+
:where([data-card-variant='ghost'] [data-card-color]) {
|
|
671
|
+
/* flush horizontally (no chrome to inset against); vertical rhythm kept by py-3 */
|
|
672
|
+
--spark-card-px: 0px;
|
|
673
|
+
--spark-card-bg: transparent;
|
|
674
|
+
--spark-card-border: transparent;
|
|
675
|
+
--spark-card-border-width: 0px;
|
|
676
|
+
--spark-card-fg: var(--neutral-a12);
|
|
677
|
+
--spark-card-fg-muted: var(--neutral-a11);
|
|
678
|
+
--spark-card-icon: var(--spark-a11);
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
/* HIDDEN for now: `SparkCardVariant` omits `solid` (content-contrast story TBD),
|
|
682
|
+
so the typed API never emits data-card-variant='solid'. Kept dormant + ready. */
|
|
683
|
+
[data-card-variant='solid'],
|
|
684
|
+
:where([data-card-variant='solid'] .spark-theme),
|
|
685
|
+
:where([data-card-variant='solid'] [data-card-color]) {
|
|
686
|
+
/* dark fill → light contrast ink on all slots (accent contrast is AA-enforced) */
|
|
687
|
+
--spark-card-px: 1rem;
|
|
688
|
+
--spark-card-bg: var(--spark-card-c-solid, var(--neutral-9));
|
|
689
|
+
--spark-card-border: transparent;
|
|
690
|
+
--spark-card-border-width: 0px;
|
|
691
|
+
--spark-card-fg: var(--spark-card-c-contrast, var(--neutral-contrast));
|
|
692
|
+
--spark-card-fg-muted: var(
|
|
693
|
+
--spark-card-c-contrast,
|
|
694
|
+
var(--neutral-contrast)
|
|
695
|
+
);
|
|
696
|
+
--spark-card-icon: var(--spark-card-c-contrast, var(--neutral-contrast));
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
/*
|
|
700
|
+
* High-contrast — an ORTHOGONAL modifier layered on any [data-style]. Per the
|
|
701
|
+
* Spark Foundation reference (default vs high-contrast overview, Figma
|
|
702
|
+
* 1061-3166): a non-solid style keeps its EXACT default fill — HC only darkens
|
|
703
|
+
* the ink (fg a11→a12) and strengthens the visible border (→a11). `solid` is
|
|
704
|
+
* the sole style whose fill changes: it darkens 9→12 (fg stays step-1). Bare
|
|
705
|
+
* [data-high-contrast] = the solid case; each per-style rule must re-declare its
|
|
706
|
+
* default fill because the bare rule has equal specificity and later source
|
|
707
|
+
* order, so it would otherwise leak its step-12 fill onto the other styles.
|
|
708
|
+
* Mirrors the [data-style] `:where(… .spark-theme)` twin for nested themes.
|
|
709
|
+
*/
|
|
710
|
+
[data-high-contrast],
|
|
711
|
+
[data-high-contrast] [data-style='solid'],
|
|
712
|
+
:where([data-high-contrast] .spark-theme) {
|
|
713
|
+
/* solid HC: step-12 fill + step-1 fg sit at opposite ends of the scale in
|
|
714
|
+
BOTH appearances, so the fg maximally contrasts the fill either way (a
|
|
715
|
+
fixed white fg would fail in dark mode where step-12 is near-white). */
|
|
716
|
+
--spark-style-bg: var(--spark-12);
|
|
717
|
+
--spark-style-bg-hover: var(--spark-11);
|
|
718
|
+
--spark-style-fg: var(--spark-1);
|
|
719
|
+
--spark-style-border: transparent;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
[data-high-contrast][data-style='soft'],
|
|
723
|
+
[data-high-contrast] [data-style='soft'],
|
|
724
|
+
:where([data-high-contrast][data-style='soft'] .spark-theme) {
|
|
725
|
+
/* same faint fill as default soft; only the ink darkens (a11→a12) */
|
|
726
|
+
--spark-style-bg: var(--spark-a3);
|
|
727
|
+
--spark-style-bg-hover: var(--spark-a4);
|
|
728
|
+
--spark-style-fg: var(--spark-a12);
|
|
729
|
+
--spark-style-border: transparent;
|
|
730
|
+
--spark-style-idle-border: transparent;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
[data-high-contrast][data-style='surface'],
|
|
734
|
+
[data-high-contrast] [data-style='surface'],
|
|
735
|
+
:where([data-high-contrast][data-style='surface'] .spark-theme) {
|
|
736
|
+
/* same surface fill as default; ink darkens + border strengthens a6→a11 */
|
|
737
|
+
--spark-style-bg: var(--spark-surface);
|
|
738
|
+
--spark-style-bg-hover: var(--spark-a3);
|
|
739
|
+
--spark-style-fg: var(--spark-a12);
|
|
740
|
+
--spark-style-border: var(--spark-a11);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
[data-high-contrast][data-style='ghost'],
|
|
744
|
+
[data-high-contrast] [data-style='ghost'],
|
|
745
|
+
:where([data-high-contrast][data-style='ghost'] .spark-theme) {
|
|
746
|
+
--spark-style-bg: transparent;
|
|
747
|
+
--spark-style-bg-hover: var(--spark-a3);
|
|
748
|
+
--spark-style-fg: var(--spark-a12);
|
|
749
|
+
--spark-style-border: transparent;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
[data-high-contrast][data-style='outline'],
|
|
753
|
+
[data-high-contrast] [data-style='outline'],
|
|
754
|
+
:where([data-high-contrast][data-style='outline'] .spark-theme) {
|
|
755
|
+
/* transparent fill unchanged; ink darkens + border strengthens a8→a11 */
|
|
756
|
+
--spark-style-bg: transparent;
|
|
757
|
+
--spark-style-bg-hover: var(--spark-a3);
|
|
758
|
+
--spark-style-fg: var(--spark-a12);
|
|
759
|
+
--spark-style-border: var(--spark-a11);
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
/*
|
|
763
|
+
* Switch ON-track intensity (Radix-aligned). Unlike a checkbox (fill varies
|
|
764
|
+
* per style), a switch's "on" needs a visibly filled track — so it reads
|
|
765
|
+
* --spark-switch-track, a STRONG accent by default (fallback --spark-9 covers
|
|
766
|
+
* solid/surface/outline); only `soft` lightens it. `surface` still adds its
|
|
767
|
+
* border via --spark-style-border. Matches Radix (classic/surface = strong
|
|
768
|
+
* accent, soft = lighter).
|
|
769
|
+
*/
|
|
770
|
+
[data-style='soft'],
|
|
771
|
+
:where([data-style='soft'] .spark-theme) {
|
|
772
|
+
--spark-switch-track: var(--spark-a5);
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
/* surface's hallmark is a bordered ("recessed") track — a neutral ring, most
|
|
776
|
+
visible in the OFF state (Radix "surface"). switch-local so it never touches
|
|
777
|
+
the checkbox's accent idle-border. The ON border stays --spark-style-border. */
|
|
778
|
+
[data-style='surface'],
|
|
779
|
+
:where([data-style='surface'] .spark-theme) {
|
|
780
|
+
--spark-switch-idle-border: var(--color-gray-a7);
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
/* HC = the checkbox HC-solid model applied to the whole switch: the on-track
|
|
784
|
+
deepens to step-12 and the thumb flips to step-1 (opposite ends of the scale,
|
|
785
|
+
so they maximally contrast in BOTH appearances — light: near-white thumb on a
|
|
786
|
+
dark track; dark: near-dark thumb on a bright track). A fixed white thumb can't
|
|
787
|
+
do this (it vanishes on the near-white step-12 track in dark), and step-10 was
|
|
788
|
+
nearly indistinguishable from the default step-9. Uniform across styles so HC
|
|
789
|
+
is an unmistakable, legible override. */
|
|
790
|
+
[data-high-contrast],
|
|
791
|
+
:where([data-high-contrast] .spark-theme) {
|
|
792
|
+
--spark-switch-track: var(--spark-12);
|
|
793
|
+
--spark-switch-thumb: var(--spark-1);
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
/*
|
|
797
|
+
* Radio — a ring + dot (always round), so it can't reuse the checkbox's fill
|
|
798
|
+
* tokens: `solid` needs a VISIBLE accent ring (the checkbox's solid border is
|
|
799
|
+
* transparent), and the dot sits on the unfilled box so it must stay a
|
|
800
|
+
* background-legible accent. Both read radio-specific tokens; the default (solid)
|
|
801
|
+
* falls back to --spark-9 (ring 9, dot 9). soft drops the ring and softens the dot
|
|
802
|
+
* to a11; surface keeps the accent ring but softens the dot. HC deepens to step-12
|
|
803
|
+
* / a12 (the ring/dot darken together, mirroring the checkbox HC model in §11).
|
|
804
|
+
*/
|
|
805
|
+
[data-style='soft'],
|
|
806
|
+
:where([data-style='soft'] .spark-theme) {
|
|
807
|
+
--spark-radio-ring: transparent;
|
|
808
|
+
--spark-radio-dot: var(--spark-a11);
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
[data-style='surface'],
|
|
812
|
+
:where([data-style='surface'] .spark-theme) {
|
|
813
|
+
--spark-radio-dot: var(--spark-a11);
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
[data-high-contrast],
|
|
817
|
+
:where([data-high-contrast] .spark-theme) {
|
|
818
|
+
--spark-radio-ring: var(--spark-12);
|
|
819
|
+
--spark-radio-dot: var(--spark-12);
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
[data-high-contrast][data-style='soft'],
|
|
823
|
+
:where([data-high-contrast][data-style='soft'] .spark-theme) {
|
|
824
|
+
--spark-radio-ring: transparent;
|
|
825
|
+
--spark-radio-dot: var(--spark-a12);
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
[data-high-contrast][data-style='surface'],
|
|
829
|
+
:where([data-high-contrast][data-style='surface'] .spark-theme) {
|
|
830
|
+
--spark-radio-dot: var(--spark-a12);
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
/*
|
|
834
|
+
* Tabs — NOT data-style-driven: a tab strip has no solid/soft/surface axis, so it
|
|
835
|
+
* themes via accent + neutral + radius + scaling + high-contrast only. Two component
|
|
836
|
+
* tokens, both accent-by-default via component fallbacks: the active/hover ink
|
|
837
|
+
* (fallback --spark-a11) and the underline indicator (fallback --spark-indicator,
|
|
838
|
+
* i.e. step 9). HC deepens both — ink a11→a12, indicator 9→12 — mirroring the §11
|
|
839
|
+
* model (ink darkens, the accent-filled element deepens to 12).
|
|
840
|
+
*/
|
|
841
|
+
[data-high-contrast],
|
|
842
|
+
:where([data-high-contrast] .spark-theme) {
|
|
843
|
+
--spark-tabs-ink: var(--spark-a12);
|
|
844
|
+
--spark-tabs-indicator: var(--spark-12);
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
/*
|
|
848
|
+
* Slider — like Tabs, NOT data-style-driven: a track/thumb has no solid/soft/surface
|
|
849
|
+
* axis (a `soft` a3 fill would make the filled range invisible), so it themes via
|
|
850
|
+
* accent + neutral + radius + scaling + high-contrast only. --spark-slider-range is
|
|
851
|
+
* the accent that fills the range AND paints the thumb (fallback --spark-9); the rail
|
|
852
|
+
* (unfilled remainder) stays a neutral gray. --spark-slider-tick-on is the step-dot
|
|
853
|
+
* colour ON the accent fill (fallback --spark-on-solid, ~white). HC deepens the accent
|
|
854
|
+
* 9→12 (§11); because the HC fill is step-12 (near-white in dark), the on-fill dot
|
|
855
|
+
* flips to step-1 — the same opposite-scale-ends contrast trick as the switch thumb,
|
|
856
|
+
* so it stays legible in both appearances.
|
|
857
|
+
*/
|
|
858
|
+
[data-high-contrast],
|
|
859
|
+
:where([data-high-contrast] .spark-theme) {
|
|
860
|
+
--spark-slider-range: var(--spark-12);
|
|
861
|
+
--spark-slider-tick-on: var(--spark-1);
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
/*
|
|
865
|
+
* Badge — a non-interactive chip. Unlike Button/Checkbox (bare = solid accent), an
|
|
866
|
+
* UNSTYLED <Badge> is intentionally NEUTRAL + low-emphasis: the component's own
|
|
867
|
+
* fallbacks read the gray/neutral scale (gray-a3 fill, gray-a11 ink), so with no
|
|
868
|
+
* [data-style] it's a quiet gray chip that ignores the accent. Any data-style brings
|
|
869
|
+
* in the accent via the shared --spark-style-* knob for free — soft, surface and
|
|
870
|
+
* outline already carry the right ink (a11) and borders. Only `solid` needs a fix:
|
|
871
|
+
* its fill is the strong accent (step 9, or step 12 in HC), so the ink must be the
|
|
872
|
+
* readable --spark-contrast, not a11. The shared solid preset leaves --spark-style-fg
|
|
873
|
+
* unset (a checkbox glyph wants --spark-on-solid, badge TEXT wants --spark-contrast),
|
|
874
|
+
* so the badge supplies its own --spark-badge-fg, consulted only when --spark-style-fg
|
|
875
|
+
* is unset — i.e. the solid style. High-contrast needs no badge rule: HC re-declares
|
|
876
|
+
* --spark-style-fg (step-1 on the step-12 solid fill; a12 on the faint non-solid
|
|
877
|
+
* fills), which wins the fallback chain outright.
|
|
878
|
+
*/
|
|
879
|
+
[data-style='solid'],
|
|
880
|
+
:where([data-style='solid'] .spark-theme) {
|
|
881
|
+
--spark-badge-fg: var(--spark-contrast);
|
|
882
|
+
}
|
|
883
|
+
}
|