@epilot/spark-ui 1.0.0-alpha.3 → 1.0.0-alpha.5
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/dist/accent-colors-Ch2J0EEY.js +13 -0
- package/dist/accent-colors-Ch2J0EEY.js.map +1 -0
- package/dist/accent-colors-CjHCf8fH.cjs +18 -0
- package/dist/accent-colors-CjHCf8fH.cjs.map +1 -0
- package/dist/components/accordion.cjs +1 -1
- package/dist/components/accordion.d.ts +1 -1
- package/dist/components/accordion.js +1 -1
- package/dist/components/attachment.d.cts +1 -1
- package/dist/components/attachment.d.ts +1 -1
- package/dist/components/badge.cjs +12 -7
- package/dist/components/badge.cjs.map +1 -1
- package/dist/components/badge.d.cts +5 -1
- package/dist/components/badge.d.ts +5 -1
- package/dist/components/badge.js +12 -7
- package/dist/components/badge.js.map +1 -1
- package/dist/components/bar-chart.cjs +60 -56
- package/dist/components/bar-chart.cjs.map +1 -1
- package/dist/components/bar-chart.d.cts +7 -2
- package/dist/components/bar-chart.d.ts +7 -2
- package/dist/components/bar-chart.js +60 -56
- package/dist/components/bar-chart.js.map +1 -1
- package/dist/components/battery-progress-row.cjs +10 -16
- package/dist/components/battery-progress-row.cjs.map +1 -1
- package/dist/components/battery-progress-row.d.cts +1 -1
- package/dist/components/battery-progress-row.d.ts +2 -2
- package/dist/components/battery-progress-row.js +10 -16
- package/dist/components/battery-progress-row.js.map +1 -1
- package/dist/components/bubble.d.cts +1 -1
- package/dist/components/bubble.d.ts +1 -1
- package/dist/components/button.cjs +5 -2
- package/dist/components/button.cjs.map +1 -1
- package/dist/components/button.d.cts +16 -7
- package/dist/components/button.d.ts +16 -7
- package/dist/components/button.js +5 -2
- package/dist/components/button.js.map +1 -1
- package/dist/components/callout.d.cts +1 -1
- package/dist/components/callout.d.ts +1 -1
- package/dist/components/card.d.cts +1 -1
- package/dist/components/card.d.ts +1 -1
- package/dist/components/chart.cjs +1 -1
- package/dist/components/chart.cjs.map +1 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/chart.js.map +1 -1
- package/dist/components/checkbox.cjs +30 -23
- package/dist/components/checkbox.cjs.map +1 -1
- package/dist/components/checkbox.d.cts +5 -1
- package/dist/components/checkbox.d.ts +5 -1
- package/dist/components/checkbox.js +30 -23
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/circular-gauge.d.ts +1 -1
- package/dist/components/day-of-week-picker.cjs +2 -2
- package/dist/components/day-of-week-picker.cjs.map +1 -1
- package/dist/components/day-of-week-picker.js +2 -2
- package/dist/components/day-of-week-picker.js.map +1 -1
- package/dist/components/device-card.d.ts +1 -1
- package/dist/components/donut-chart.cjs +3 -3
- package/dist/components/donut-chart.cjs.map +1 -1
- package/dist/components/donut-chart.js +3 -3
- package/dist/components/donut-chart.js.map +1 -1
- package/dist/components/energy-bar-chart.cjs +2 -1
- package/dist/components/energy-bar-chart.cjs.map +1 -1
- package/dist/components/energy-bar-chart.d.ts +1 -1
- package/dist/components/energy-bar-chart.js +2 -1
- package/dist/components/energy-bar-chart.js.map +1 -1
- package/dist/components/energy-breakdown.cjs +1 -1
- package/dist/components/energy-breakdown.cjs.map +1 -1
- package/dist/components/energy-breakdown.js +1 -1
- package/dist/components/energy-breakdown.js.map +1 -1
- package/dist/components/energy-history-chart.cjs +14 -6
- package/dist/components/energy-history-chart.cjs.map +1 -1
- package/dist/components/energy-history-chart.d.cts +11 -3
- package/dist/components/energy-history-chart.d.ts +11 -3
- package/dist/components/energy-history-chart.js +14 -6
- package/dist/components/energy-history-chart.js.map +1 -1
- package/dist/components/feed-in-hero.d.ts +1 -1
- package/dist/components/field.cjs +1 -1
- package/dist/components/field.d.cts +1 -1
- package/dist/components/field.d.ts +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/info-block.d.cts +1 -1
- package/dist/components/info-block.d.ts +1 -1
- package/dist/components/input-group.cjs +1 -1
- package/dist/components/input-group.js +1 -1
- package/dist/components/input-otp.cjs +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input.cjs +1 -1
- package/dist/components/input.d.cts +1 -1
- package/dist/components/input.d.ts +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/line-chart.cjs +61 -19
- package/dist/components/line-chart.cjs.map +1 -1
- package/dist/components/line-chart.d.cts +7 -0
- package/dist/components/line-chart.d.ts +7 -0
- package/dist/components/line-chart.js +61 -19
- package/dist/components/line-chart.js.map +1 -1
- package/dist/components/metering-row.d.ts +1 -1
- package/dist/components/money-saved-block.cjs +1 -1
- package/dist/components/money-saved-block.cjs.map +1 -1
- package/dist/components/money-saved-block.js +1 -1
- package/dist/components/money-saved-block.js.map +1 -1
- package/dist/components/number-flow.d.ts +1 -1
- package/dist/components/power-history-chart.cjs +23 -44
- package/dist/components/power-history-chart.cjs.map +1 -1
- package/dist/components/power-history-chart.d.cts +10 -1
- package/dist/components/power-history-chart.d.ts +10 -1
- package/dist/components/power-history-chart.js +24 -45
- package/dist/components/power-history-chart.js.map +1 -1
- package/dist/components/power-history.cjs +1 -1
- package/dist/components/power-history.cjs.map +1 -1
- package/dist/components/power-history.js +1 -1
- package/dist/components/power-history.js.map +1 -1
- package/dist/components/power-network.cjs +36 -11
- package/dist/components/power-network.cjs.map +1 -1
- package/dist/components/power-network.js +36 -11
- package/dist/components/power-network.js.map +1 -1
- package/dist/components/progress.cjs +1 -1
- package/dist/components/progress.cjs.map +1 -1
- package/dist/components/progress.js +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-card-group.cjs +26 -1
- package/dist/components/radio-card-group.cjs.map +1 -1
- package/dist/components/radio-card-group.js +26 -1
- package/dist/components/radio-card-group.js.map +1 -1
- package/dist/components/radio.cjs +11 -4
- package/dist/components/radio.cjs.map +1 -1
- package/dist/components/radio.d.cts +15 -3
- package/dist/components/radio.d.ts +15 -3
- package/dist/components/radio.js +11 -4
- package/dist/components/radio.js.map +1 -1
- package/dist/components/sankey-chart.cjs +12 -45
- package/dist/components/sankey-chart.cjs.map +1 -1
- package/dist/components/sankey-chart.d.cts +8 -0
- package/dist/components/sankey-chart.d.ts +9 -1
- package/dist/components/sankey-chart.js +12 -45
- package/dist/components/sankey-chart.js.map +1 -1
- package/dist/components/schedule-list.cjs +3 -3
- package/dist/components/schedule-list.cjs.map +1 -1
- package/dist/components/schedule-list.js +3 -3
- package/dist/components/schedule-list.js.map +1 -1
- 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 +1 -1
- package/dist/components/select.d.cts +1 -1
- package/dist/components/select.d.ts +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/separator.cjs +1 -1
- package/dist/components/separator.cjs.map +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/separator.js.map +1 -1
- package/dist/components/series-legend.cjs +1 -1
- package/dist/components/series-legend.cjs.map +1 -1
- package/dist/components/series-legend.js +1 -1
- package/dist/components/series-legend.js.map +1 -1
- package/dist/components/slider.cjs +6 -19
- package/dist/components/slider.cjs.map +1 -1
- package/dist/components/slider.d.cts +0 -13
- package/dist/components/slider.d.ts +0 -13
- package/dist/components/slider.js +6 -19
- package/dist/components/slider.js.map +1 -1
- package/dist/components/solar-forecast-chart.cjs +4 -3
- package/dist/components/solar-forecast-chart.cjs.map +1 -1
- package/dist/components/solar-forecast-chart.d.cts +4 -1
- package/dist/components/solar-forecast-chart.d.ts +4 -1
- package/dist/components/solar-forecast-chart.js +4 -3
- package/dist/components/solar-forecast-chart.js.map +1 -1
- package/dist/components/stepper.cjs +2 -2
- package/dist/components/stepper.cjs.map +1 -1
- package/dist/components/stepper.js +2 -2
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.cjs +8 -3
- package/dist/components/switch.cjs.map +1 -1
- package/dist/components/switch.d.cts +9 -4
- package/dist/components/switch.d.ts +9 -4
- package/dist/components/switch.js +8 -3
- package/dist/components/switch.js.map +1 -1
- package/dist/components/tabs.cjs +4 -4
- package/dist/components/tabs.cjs.map +1 -1
- package/dist/components/tabs.js +4 -4
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/theme.cjs +1 -1
- package/dist/components/theme.d.cts +1 -1
- package/dist/components/theme.d.ts +1 -1
- package/dist/components/theme.js +1 -1
- package/dist/components/time-picker.cjs +1 -1
- package/dist/components/time-picker.cjs.map +1 -1
- package/dist/components/time-picker.js +1 -1
- package/dist/components/time-picker.js.map +1 -1
- package/dist/components/tooltip.cjs +1 -1
- package/dist/components/tooltip.cjs.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/hooks/use-reduced-motion.cjs +22 -0
- package/dist/hooks/use-reduced-motion.cjs.map +1 -0
- package/dist/hooks/use-reduced-motion.d.cts +7 -0
- package/dist/hooks/use-reduced-motion.d.ts +7 -0
- package/dist/hooks/use-reduced-motion.js +20 -0
- package/dist/hooks/use-reduced-motion.js.map +1 -0
- package/dist/{input-box-variants-Dr1K7uYE.js → input-box-variants-DcajYXvo.js} +1 -1
- package/dist/{input-box-variants-Dr1K7uYE.js.map → input-box-variants-DcajYXvo.js.map} +1 -1
- package/dist/{input-box-variants-BMDdwvqg.cjs → input-box-variants-ZCtgs-1S.cjs} +1 -1
- package/dist/{input-box-variants-BMDdwvqg.cjs.map → input-box-variants-ZCtgs-1S.cjs.map} +1 -1
- package/dist/{number-flow-DSbucQ_K.d.ts → number-flow-D9zsxH0-.d.ts} +1 -1
- package/dist/styles/index.css +39 -0
- package/dist/styles/spark-default.css +123 -40
- package/dist/styles/theme.css +78 -0
- package/dist/{theme-B3WtiByA.js → theme-8PDO9E0S.js} +2 -2
- package/dist/theme-8PDO9E0S.js.map +1 -0
- package/dist/{theme-C9_OSe0S.cjs → theme-ClRJhexF.cjs} +2 -2
- package/dist/theme-ClRJhexF.cjs.map +1 -0
- package/dist/{theme-types-DoROIXpi.d.ts → theme-types-BDdoRxXa.d.ts} +2 -3
- package/dist/{theme-types-r20EJfEC.d.cts → theme-types-BwSJKdsB.d.cts} +2 -3
- package/dist/{tones-DyCkL71h.d.ts → tones-PXJGlSpe.d.ts} +1 -1
- package/dist/utils/build-sankey-nodes.cjs +16 -3
- package/dist/utils/build-sankey-nodes.cjs.map +1 -1
- package/dist/utils/build-sankey-nodes.js +16 -3
- package/dist/utils/build-sankey-nodes.js.map +1 -1
- 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/package.json +1 -1
- package/dist/theme-B3WtiByA.js.map +0 -1
- package/dist/theme-C9_OSe0S.cjs.map +0 -1
package/dist/components/theme.js
CHANGED
|
@@ -16,7 +16,7 @@ const TimePicker = react.forwardRef(({ "aria-label": ariaLabel, className, disab
|
|
|
16
16
|
disabled,
|
|
17
17
|
onChange: (event) => onValueChange(event.target.value),
|
|
18
18
|
"aria-label": ariaLabel,
|
|
19
|
-
className: (0, cnfast.cn)("h-10 w-full rounded-xl bg-base-gray-soft px-3 text-base font-medium text-gray tabular-nums transition-colors focus-visible:ring focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className)
|
|
19
|
+
className: (0, cnfast.cn)("h-10 w-full rounded-xl bg-base-gray-soft px-3 text-base font-medium text-gray tabular-nums transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className)
|
|
20
20
|
});
|
|
21
21
|
});
|
|
22
22
|
TimePicker.displayName = "TimePicker";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-picker.cjs","names":["React"],"sources":["../../src/components/time-picker.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cn } from '../utils/cn'\n\ninterface TimePickerProps {\n /** `HH:MM` 24-hour string. */\n value: string\n onValueChange: (next: string) => void\n disabled?: boolean\n /** Step in seconds (defaults to 60 — minute-resolution). */\n step?: number\n className?: string\n id?: string\n 'aria-label'?: string\n}\n\nconst TimePicker = React.forwardRef<HTMLInputElement, TimePickerProps>(\n (\n {\n 'aria-label': ariaLabel,\n className,\n disabled,\n id,\n onValueChange,\n step = 60,\n value,\n },\n ref,\n ) => {\n return (\n <input\n ref={ref}\n id={id}\n type=\"time\"\n value={value}\n step={step}\n disabled={disabled}\n onChange={(event) => onValueChange(event.target.value)}\n aria-label={ariaLabel}\n className={cn(\n 'h-10 w-full rounded-xl bg-base-gray-soft px-3 text-base font-medium text-gray tabular-nums transition-colors focus-visible:ring focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n />\n )\n },\n)\n\nTimePicker.displayName = 'TimePicker'\n\ninterface TimeRangePickerProps {\n start: string\n end: string\n onStartChange: (next: string) => void\n onEndChange: (next: string) => void\n disabled?: boolean\n startLabel?: string\n endLabel?: string\n className?: string\n}\n\nfunction TimeRangePicker({\n className,\n disabled,\n end,\n endLabel = 'End',\n onEndChange,\n onStartChange,\n start,\n startLabel = 'Start',\n}: TimeRangePickerProps) {\n return (\n <div className={cn('grid grid-cols-2 gap-2', className)}>\n <label className=\"flex flex-col gap-1.5\">\n <span className=\"text-xs font-medium text-gray-light\">\n {startLabel}\n </span>\n <TimePicker\n value={start}\n onValueChange={onStartChange}\n disabled={disabled}\n aria-label={startLabel}\n />\n </label>\n <label className=\"flex flex-col gap-1.5\">\n <span className=\"text-xs font-medium text-gray-light\">{endLabel}</span>\n <TimePicker\n value={end}\n onValueChange={onEndChange}\n disabled={disabled}\n aria-label={endLabel}\n />\n </label>\n </div>\n )\n}\n\nexport { TimePicker, TimeRangePicker }\n"],"mappings":";;;;;;;;AAeA,MAAM,aAAaA,MAAM,YAErB,EACE,cAAc,WACd,WACA,UACA,IACA,eACA,OAAO,IACP,SAEF,QACG;AACH,QACE,iBAAA,GAAA,kBAAA,KAAC,SAAD;EACO;EACD;EACJ,MAAK;EACE;EACD;EACI;EACV,WAAW,UAAU,cAAc,MAAM,OAAO,MAAM;EACtD,cAAY;EACZ,YAAA,GAAA,OAAA,IACE,
|
|
1
|
+
{"version":3,"file":"time-picker.cjs","names":["React"],"sources":["../../src/components/time-picker.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cn } from '../utils/cn'\n\ninterface TimePickerProps {\n /** `HH:MM` 24-hour string. */\n value: string\n onValueChange: (next: string) => void\n disabled?: boolean\n /** Step in seconds (defaults to 60 — minute-resolution). */\n step?: number\n className?: string\n id?: string\n 'aria-label'?: string\n}\n\nconst TimePicker = React.forwardRef<HTMLInputElement, TimePickerProps>(\n (\n {\n 'aria-label': ariaLabel,\n className,\n disabled,\n id,\n onValueChange,\n step = 60,\n value,\n },\n ref,\n ) => {\n return (\n <input\n ref={ref}\n id={id}\n type=\"time\"\n value={value}\n step={step}\n disabled={disabled}\n onChange={(event) => onValueChange(event.target.value)}\n aria-label={ariaLabel}\n className={cn(\n 'h-10 w-full rounded-xl bg-base-gray-soft px-3 text-base font-medium text-gray tabular-nums transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n />\n )\n },\n)\n\nTimePicker.displayName = 'TimePicker'\n\ninterface TimeRangePickerProps {\n start: string\n end: string\n onStartChange: (next: string) => void\n onEndChange: (next: string) => void\n disabled?: boolean\n startLabel?: string\n endLabel?: string\n className?: string\n}\n\nfunction TimeRangePicker({\n className,\n disabled,\n end,\n endLabel = 'End',\n onEndChange,\n onStartChange,\n start,\n startLabel = 'Start',\n}: TimeRangePickerProps) {\n return (\n <div className={cn('grid grid-cols-2 gap-2', className)}>\n <label className=\"flex flex-col gap-1.5\">\n <span className=\"text-xs font-medium text-gray-light\">\n {startLabel}\n </span>\n <TimePicker\n value={start}\n onValueChange={onStartChange}\n disabled={disabled}\n aria-label={startLabel}\n />\n </label>\n <label className=\"flex flex-col gap-1.5\">\n <span className=\"text-xs font-medium text-gray-light\">{endLabel}</span>\n <TimePicker\n value={end}\n onValueChange={onEndChange}\n disabled={disabled}\n aria-label={endLabel}\n />\n </label>\n </div>\n )\n}\n\nexport { TimePicker, TimeRangePicker }\n"],"mappings":";;;;;;;;AAeA,MAAM,aAAaA,MAAM,YAErB,EACE,cAAc,WACd,WACA,UACA,IACA,eACA,OAAO,IACP,SAEF,QACG;AACH,QACE,iBAAA,GAAA,kBAAA,KAAC,SAAD;EACO;EACD;EACJ,MAAK;EACE;EACD;EACI;EACV,WAAW,UAAU,cAAc,MAAM,OAAO,MAAM;EACtD,cAAY;EACZ,YAAA,GAAA,OAAA,IACE,8OACA,UACD;EACD,CAAA;EAGP;AAED,WAAW,cAAc;AAazB,SAAS,gBAAgB,EACvB,WACA,UACA,KACA,WAAW,OACX,aACA,eACA,OACA,aAAa,WACU;AACvB,QACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,YAAA,GAAA,OAAA,IAAc,0BAA0B,UAAU;YAAvD,CACE,iBAAA,GAAA,kBAAA,MAAC,SAAD;GAAO,WAAU;aAAjB,CACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;IAAM,WAAU;cACb;IACI,CAAA,EACP,iBAAA,GAAA,kBAAA,KAAC,YAAD;IACE,OAAO;IACP,eAAe;IACL;IACV,cAAY;IACZ,CAAA,CACI;MACR,iBAAA,GAAA,kBAAA,MAAC,SAAD;GAAO,WAAU;aAAjB,CACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;IAAM,WAAU;cAAuC;IAAgB,CAAA,EACvE,iBAAA,GAAA,kBAAA,KAAC,YAAD;IACE,OAAO;IACP,eAAe;IACL;IACV,cAAY;IACZ,CAAA,CACI;KACJ"}
|
|
@@ -13,7 +13,7 @@ const TimePicker = React$1.forwardRef(({ "aria-label": ariaLabel, className, dis
|
|
|
13
13
|
disabled,
|
|
14
14
|
onChange: (event) => onValueChange(event.target.value),
|
|
15
15
|
"aria-label": ariaLabel,
|
|
16
|
-
className: cn("h-10 w-full rounded-xl bg-base-gray-soft px-3 text-base font-medium text-gray tabular-nums transition-colors focus-visible:ring focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className)
|
|
16
|
+
className: cn("h-10 w-full rounded-xl bg-base-gray-soft px-3 text-base font-medium text-gray tabular-nums transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className)
|
|
17
17
|
});
|
|
18
18
|
});
|
|
19
19
|
TimePicker.displayName = "TimePicker";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-picker.js","names":["React"],"sources":["../../src/components/time-picker.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cn } from '../utils/cn'\n\ninterface TimePickerProps {\n /** `HH:MM` 24-hour string. */\n value: string\n onValueChange: (next: string) => void\n disabled?: boolean\n /** Step in seconds (defaults to 60 — minute-resolution). */\n step?: number\n className?: string\n id?: string\n 'aria-label'?: string\n}\n\nconst TimePicker = React.forwardRef<HTMLInputElement, TimePickerProps>(\n (\n {\n 'aria-label': ariaLabel,\n className,\n disabled,\n id,\n onValueChange,\n step = 60,\n value,\n },\n ref,\n ) => {\n return (\n <input\n ref={ref}\n id={id}\n type=\"time\"\n value={value}\n step={step}\n disabled={disabled}\n onChange={(event) => onValueChange(event.target.value)}\n aria-label={ariaLabel}\n className={cn(\n 'h-10 w-full rounded-xl bg-base-gray-soft px-3 text-base font-medium text-gray tabular-nums transition-colors focus-visible:ring focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n />\n )\n },\n)\n\nTimePicker.displayName = 'TimePicker'\n\ninterface TimeRangePickerProps {\n start: string\n end: string\n onStartChange: (next: string) => void\n onEndChange: (next: string) => void\n disabled?: boolean\n startLabel?: string\n endLabel?: string\n className?: string\n}\n\nfunction TimeRangePicker({\n className,\n disabled,\n end,\n endLabel = 'End',\n onEndChange,\n onStartChange,\n start,\n startLabel = 'Start',\n}: TimeRangePickerProps) {\n return (\n <div className={cn('grid grid-cols-2 gap-2', className)}>\n <label className=\"flex flex-col gap-1.5\">\n <span className=\"text-xs font-medium text-gray-light\">\n {startLabel}\n </span>\n <TimePicker\n value={start}\n onValueChange={onStartChange}\n disabled={disabled}\n aria-label={startLabel}\n />\n </label>\n <label className=\"flex flex-col gap-1.5\">\n <span className=\"text-xs font-medium text-gray-light\">{endLabel}</span>\n <TimePicker\n value={end}\n onValueChange={onEndChange}\n disabled={disabled}\n aria-label={endLabel}\n />\n </label>\n </div>\n )\n}\n\nexport { TimePicker, TimeRangePicker }\n"],"mappings":";;;;;AAeA,MAAM,aAAaA,QAAM,YAErB,EACE,cAAc,WACd,WACA,UACA,IACA,eACA,OAAO,IACP,SAEF,QACG;AACH,QACE,oBAAC,SAAD;EACO;EACD;EACJ,MAAK;EACE;EACD;EACI;EACV,WAAW,UAAU,cAAc,MAAM,OAAO,MAAM;EACtD,cAAY;EACZ,WAAW,GACT,
|
|
1
|
+
{"version":3,"file":"time-picker.js","names":["React"],"sources":["../../src/components/time-picker.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cn } from '../utils/cn'\n\ninterface TimePickerProps {\n /** `HH:MM` 24-hour string. */\n value: string\n onValueChange: (next: string) => void\n disabled?: boolean\n /** Step in seconds (defaults to 60 — minute-resolution). */\n step?: number\n className?: string\n id?: string\n 'aria-label'?: string\n}\n\nconst TimePicker = React.forwardRef<HTMLInputElement, TimePickerProps>(\n (\n {\n 'aria-label': ariaLabel,\n className,\n disabled,\n id,\n onValueChange,\n step = 60,\n value,\n },\n ref,\n ) => {\n return (\n <input\n ref={ref}\n id={id}\n type=\"time\"\n value={value}\n step={step}\n disabled={disabled}\n onChange={(event) => onValueChange(event.target.value)}\n aria-label={ariaLabel}\n className={cn(\n 'h-10 w-full rounded-xl bg-base-gray-soft px-3 text-base font-medium text-gray tabular-nums transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n />\n )\n },\n)\n\nTimePicker.displayName = 'TimePicker'\n\ninterface TimeRangePickerProps {\n start: string\n end: string\n onStartChange: (next: string) => void\n onEndChange: (next: string) => void\n disabled?: boolean\n startLabel?: string\n endLabel?: string\n className?: string\n}\n\nfunction TimeRangePicker({\n className,\n disabled,\n end,\n endLabel = 'End',\n onEndChange,\n onStartChange,\n start,\n startLabel = 'Start',\n}: TimeRangePickerProps) {\n return (\n <div className={cn('grid grid-cols-2 gap-2', className)}>\n <label className=\"flex flex-col gap-1.5\">\n <span className=\"text-xs font-medium text-gray-light\">\n {startLabel}\n </span>\n <TimePicker\n value={start}\n onValueChange={onStartChange}\n disabled={disabled}\n aria-label={startLabel}\n />\n </label>\n <label className=\"flex flex-col gap-1.5\">\n <span className=\"text-xs font-medium text-gray-light\">{endLabel}</span>\n <TimePicker\n value={end}\n onValueChange={onEndChange}\n disabled={disabled}\n aria-label={endLabel}\n />\n </label>\n </div>\n )\n}\n\nexport { TimePicker, TimeRangePicker }\n"],"mappings":";;;;;AAeA,MAAM,aAAaA,QAAM,YAErB,EACE,cAAc,WACd,WACA,UACA,IACA,eACA,OAAO,IACP,SAEF,QACG;AACH,QACE,oBAAC,SAAD;EACO;EACD;EACJ,MAAK;EACE;EACD;EACI;EACV,WAAW,UAAU,cAAc,MAAM,OAAO,MAAM;EACtD,cAAY;EACZ,WAAW,GACT,8OACA,UACD;EACD,CAAA;EAGP;AAED,WAAW,cAAc;AAazB,SAAS,gBAAgB,EACvB,WACA,UACA,KACA,WAAW,OACX,aACA,eACA,OACA,aAAa,WACU;AACvB,QACE,qBAAC,OAAD;EAAK,WAAW,GAAG,0BAA0B,UAAU;YAAvD,CACE,qBAAC,SAAD;GAAO,WAAU;aAAjB,CACE,oBAAC,QAAD;IAAM,WAAU;cACb;IACI,CAAA,EACP,oBAAC,YAAD;IACE,OAAO;IACP,eAAe;IACL;IACV,cAAY;IACZ,CAAA,CACI;MACR,qBAAC,SAAD;GAAO,WAAU;aAAjB,CACE,oBAAC,QAAD;IAAM,WAAU;cAAuC;IAAgB,CAAA,EACvE,oBAAC,YAAD;IACE,OAAO;IACP,eAAe;IACL;IACV,cAAY;IACZ,CAAA,CACI;KACJ"}
|
|
@@ -52,7 +52,7 @@ const InfoTooltip = ({ content, label }) => {
|
|
|
52
52
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Tooltip, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TooltipTrigger, {
|
|
53
53
|
render: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
54
54
|
"aria-label": `About ${label}`,
|
|
55
|
-
className: "focus-visible:ring-primary inline-flex size-4 cursor-help items-center justify-center rounded-full text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none",
|
|
55
|
+
className: "focus-visible:ring-primary relative top-px inline-flex size-4 cursor-help items-center justify-center rounded-full text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none",
|
|
56
56
|
type: "button"
|
|
57
57
|
}),
|
|
58
58
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons_material_symbol.MaterialSymbol, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.cjs","names":["TooltipPrimitive","MaterialSymbol"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\nconst TooltipProvider = ({\n delay = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) => {\n return <TooltipPrimitive.Provider delay={delay} {...props} />\n}\n\nconst TooltipPortal = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Portal>) => {\n return <TooltipPrimitive.Portal data-slot=\"tooltip-portal\" {...props} />\n}\n\ntype TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>\n\nconst Tooltip = ({ ...props }: TooltipProps) => {\n return <TooltipPrimitive.Root {...props} />\n}\n\nconst TooltipTrigger = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) => {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> &\n Pick<\n TooltipPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset'\n > & {\n hideArrow?: boolean\n variant?: 'default' | 'destructive'\n }\n\nconst TooltipContent = ({\n className,\n hideArrow = false,\n variant = 'default',\n children,\n align,\n alignOffset,\n side,\n sideOffset = 4,\n ...props\n}: TooltipContentProps) => {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n className=\"isolate z-50\"\n side={side}\n sideOffset={sideOffset}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n data-variant={variant}\n className={cn(\n 'z-50 w-fit origin-(--transform-origin) rounded-lg p-2 text-xs leading-none text-balance transition-[opacity,scale,translate] duration-150',\n // enter: fade + zoom + a slight per-side slide (was animate-in)\n 'data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-[side=bottom]:data-starting-style:-translate-y-1 data-[side=left]:data-starting-style:translate-x-1 data-[side=right]:data-starting-style:-translate-x-1 data-[side=top]:data-starting-style:translate-y-1',\n // exit: instant (was data-[state=closed]:duration-0)\n 'data-ending-style:opacity-0 data-ending-style:duration-0',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:text-gray-1',\n 'data-[variant=destructive]:bg-error-a12 data-[variant=destructive]:text-error-1',\n className,\n )}\n {...props}\n >\n {children}\n {!hideArrow && (\n <TooltipPrimitive.Arrow\n data-variant={variant}\n className={cn(\n 'z-50 size-2.5 rotate-45 rounded-[2px]',\n // diamond arrow: overlap the popup edge on the anchor side\n 'data-[side=bottom]:-top-[5px] data-[side=left]:-right-[5px] data-[side=right]:-left-[5px] data-[side=top]:-bottom-[5px]',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:fill-gray-12',\n 'data-[variant=destructive]:bg-error-12 data-[variant=destructive]:fill-error-12',\n )}\n />\n )}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\ninterface InfoTooltipProps {\n content: string\n label: string\n}\n\nconst InfoTooltip = ({ content, label }: InfoTooltipProps) => {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n aria-label={`About ${label}`}\n className=\"focus-visible:ring-primary inline-flex size-4 cursor-help items-center justify-center rounded-full text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none\"\n type=\"button\"\n />\n }\n >\n <MaterialSymbol className=\"text-[14px]!\" name=\"info\" />\n </TooltipTrigger>\n <TooltipContent className=\"max-w-xs whitespace-pre-line\">\n {content}\n </TooltipContent>\n </Tooltip>\n )\n}\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n TooltipPortal,\n InfoTooltip,\n}\n"],"mappings":";;;;;;;;;;AAKA,MAAM,mBAAmB,EACvB,QAAQ,GACR,GAAG,YACyD;AAC5D,QAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,UAAlB;EAAkC;EAAO,GAAI;EAAS,CAAA;;AAG/D,MAAM,iBAAiB,EACrB,GAAG,YACuD;AAC1D,QAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;EAAS,CAAA;;AAK1E,MAAM,WAAW,EAAE,GAAG,YAA0B;AAC9C,QAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,MAAlB,EAAuB,GAAI,OAAS,CAAA;;AAG7C,MAAM,kBAAkB,EACtB,GAAG,YACwD;AAC3D,QAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAY5E,MAAM,kBAAkB,EACtB,WACA,YAAY,OACZ,UAAU,WACV,UACA,OACA,aACA,MACA,aAAa,GACb,GAAG,YACsB;AACzB,QACE,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,QAAlB,EAAA,UACE,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,YAAlB;EACS;EACM;EACb,WAAU;EACJ;EACM;YAEZ,iBAAA,GAAA,kBAAA,MAACA,uBAAAA,QAAiB,OAAlB;GACE,aAAU;GACV,gBAAc;GACd,YAAA,GAAA,OAAA,IACE,6IAEA,8DACA,mNAEA,4DACA,wEACA,mFACA,UACD;GACD,GAAI;aAdN,CAgBG,UACA,CAAC,aACA,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,OAAlB;IACE,gBAAc;IACd,YAAA,GAAA,OAAA,IACE,yCAEA,2HACA,yEACA,kFACD;IACD,CAAA,CAEmB;;EACG,CAAA,EACN,CAAA;;AAS9B,MAAM,eAAe,EAAE,SAAS,YAA8B;AAC5D,QACE,iBAAA,GAAA,kBAAA,MAAC,SAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EACE,QACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;GACE,cAAY,SAAS;GACrB,WAAU;GACV,MAAK;GACL,CAAA;YAGJ,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,gBAAD;GAAgB,WAAU;GAAe,MAAK;GAAS,CAAA;EACxC,CAAA,EACjB,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EAAgB,WAAU;YACvB;EACc,CAAA,CACT,EAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"tooltip.cjs","names":["TooltipPrimitive","MaterialSymbol"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\nconst TooltipProvider = ({\n delay = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) => {\n return <TooltipPrimitive.Provider delay={delay} {...props} />\n}\n\nconst TooltipPortal = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Portal>) => {\n return <TooltipPrimitive.Portal data-slot=\"tooltip-portal\" {...props} />\n}\n\ntype TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>\n\nconst Tooltip = ({ ...props }: TooltipProps) => {\n return <TooltipPrimitive.Root {...props} />\n}\n\nconst TooltipTrigger = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) => {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> &\n Pick<\n TooltipPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset'\n > & {\n hideArrow?: boolean\n variant?: 'default' | 'destructive'\n }\n\nconst TooltipContent = ({\n className,\n hideArrow = false,\n variant = 'default',\n children,\n align,\n alignOffset,\n side,\n sideOffset = 4,\n ...props\n}: TooltipContentProps) => {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n className=\"isolate z-50\"\n side={side}\n sideOffset={sideOffset}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n data-variant={variant}\n className={cn(\n 'z-50 w-fit origin-(--transform-origin) rounded-lg p-2 text-xs leading-none text-balance transition-[opacity,scale,translate] duration-150',\n // enter: fade + zoom + a slight per-side slide (was animate-in)\n 'data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-[side=bottom]:data-starting-style:-translate-y-1 data-[side=left]:data-starting-style:translate-x-1 data-[side=right]:data-starting-style:-translate-x-1 data-[side=top]:data-starting-style:translate-y-1',\n // exit: instant (was data-[state=closed]:duration-0)\n 'data-ending-style:opacity-0 data-ending-style:duration-0',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:text-gray-1',\n 'data-[variant=destructive]:bg-error-a12 data-[variant=destructive]:text-error-1',\n className,\n )}\n {...props}\n >\n {children}\n {!hideArrow && (\n <TooltipPrimitive.Arrow\n data-variant={variant}\n className={cn(\n 'z-50 size-2.5 rotate-45 rounded-[2px]',\n // diamond arrow: overlap the popup edge on the anchor side\n 'data-[side=bottom]:-top-[5px] data-[side=left]:-right-[5px] data-[side=right]:-left-[5px] data-[side=top]:-bottom-[5px]',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:fill-gray-12',\n 'data-[variant=destructive]:bg-error-12 data-[variant=destructive]:fill-error-12',\n )}\n />\n )}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\ninterface InfoTooltipProps {\n content: string\n label: string\n}\n\nconst InfoTooltip = ({ content, label }: InfoTooltipProps) => {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n aria-label={`About ${label}`}\n className=\"focus-visible:ring-primary relative top-px inline-flex size-4 cursor-help items-center justify-center rounded-full text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none\"\n type=\"button\"\n />\n }\n >\n <MaterialSymbol className=\"text-[14px]!\" name=\"info\" />\n </TooltipTrigger>\n <TooltipContent className=\"max-w-xs whitespace-pre-line\">\n {content}\n </TooltipContent>\n </Tooltip>\n )\n}\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n TooltipPortal,\n InfoTooltip,\n}\n"],"mappings":";;;;;;;;;;AAKA,MAAM,mBAAmB,EACvB,QAAQ,GACR,GAAG,YACyD;AAC5D,QAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,UAAlB;EAAkC;EAAO,GAAI;EAAS,CAAA;;AAG/D,MAAM,iBAAiB,EACrB,GAAG,YACuD;AAC1D,QAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;EAAS,CAAA;;AAK1E,MAAM,WAAW,EAAE,GAAG,YAA0B;AAC9C,QAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,MAAlB,EAAuB,GAAI,OAAS,CAAA;;AAG7C,MAAM,kBAAkB,EACtB,GAAG,YACwD;AAC3D,QAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAY5E,MAAM,kBAAkB,EACtB,WACA,YAAY,OACZ,UAAU,WACV,UACA,OACA,aACA,MACA,aAAa,GACb,GAAG,YACsB;AACzB,QACE,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,QAAlB,EAAA,UACE,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,YAAlB;EACS;EACM;EACb,WAAU;EACJ;EACM;YAEZ,iBAAA,GAAA,kBAAA,MAACA,uBAAAA,QAAiB,OAAlB;GACE,aAAU;GACV,gBAAc;GACd,YAAA,GAAA,OAAA,IACE,6IAEA,8DACA,mNAEA,4DACA,wEACA,mFACA,UACD;GACD,GAAI;aAdN,CAgBG,UACA,CAAC,aACA,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,OAAlB;IACE,gBAAc;IACd,YAAA,GAAA,OAAA,IACE,yCAEA,2HACA,yEACA,kFACD;IACD,CAAA,CAEmB;;EACG,CAAA,EACN,CAAA;;AAS9B,MAAM,eAAe,EAAE,SAAS,YAA8B;AAC5D,QACE,iBAAA,GAAA,kBAAA,MAAC,SAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EACE,QACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;GACE,cAAY,SAAS;GACrB,WAAU;GACV,MAAK;GACL,CAAA;YAGJ,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,gBAAD;GAAgB,WAAU;GAAe,MAAK;GAAS,CAAA;EACxC,CAAA,EACjB,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EAAgB,WAAU;YACvB;EACc,CAAA,CACT,EAAA,CAAA"}
|
|
@@ -49,7 +49,7 @@ const InfoTooltip = ({ content, label }) => {
|
|
|
49
49
|
return /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
50
50
|
render: /* @__PURE__ */ jsx("button", {
|
|
51
51
|
"aria-label": `About ${label}`,
|
|
52
|
-
className: "focus-visible:ring-primary inline-flex size-4 cursor-help items-center justify-center rounded-full text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none",
|
|
52
|
+
className: "focus-visible:ring-primary relative top-px inline-flex size-4 cursor-help items-center justify-center rounded-full text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none",
|
|
53
53
|
type: "button"
|
|
54
54
|
}),
|
|
55
55
|
children: /* @__PURE__ */ jsx(MaterialSymbol, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","names":["TooltipPrimitive"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\nconst TooltipProvider = ({\n delay = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) => {\n return <TooltipPrimitive.Provider delay={delay} {...props} />\n}\n\nconst TooltipPortal = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Portal>) => {\n return <TooltipPrimitive.Portal data-slot=\"tooltip-portal\" {...props} />\n}\n\ntype TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>\n\nconst Tooltip = ({ ...props }: TooltipProps) => {\n return <TooltipPrimitive.Root {...props} />\n}\n\nconst TooltipTrigger = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) => {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> &\n Pick<\n TooltipPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset'\n > & {\n hideArrow?: boolean\n variant?: 'default' | 'destructive'\n }\n\nconst TooltipContent = ({\n className,\n hideArrow = false,\n variant = 'default',\n children,\n align,\n alignOffset,\n side,\n sideOffset = 4,\n ...props\n}: TooltipContentProps) => {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n className=\"isolate z-50\"\n side={side}\n sideOffset={sideOffset}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n data-variant={variant}\n className={cn(\n 'z-50 w-fit origin-(--transform-origin) rounded-lg p-2 text-xs leading-none text-balance transition-[opacity,scale,translate] duration-150',\n // enter: fade + zoom + a slight per-side slide (was animate-in)\n 'data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-[side=bottom]:data-starting-style:-translate-y-1 data-[side=left]:data-starting-style:translate-x-1 data-[side=right]:data-starting-style:-translate-x-1 data-[side=top]:data-starting-style:translate-y-1',\n // exit: instant (was data-[state=closed]:duration-0)\n 'data-ending-style:opacity-0 data-ending-style:duration-0',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:text-gray-1',\n 'data-[variant=destructive]:bg-error-a12 data-[variant=destructive]:text-error-1',\n className,\n )}\n {...props}\n >\n {children}\n {!hideArrow && (\n <TooltipPrimitive.Arrow\n data-variant={variant}\n className={cn(\n 'z-50 size-2.5 rotate-45 rounded-[2px]',\n // diamond arrow: overlap the popup edge on the anchor side\n 'data-[side=bottom]:-top-[5px] data-[side=left]:-right-[5px] data-[side=right]:-left-[5px] data-[side=top]:-bottom-[5px]',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:fill-gray-12',\n 'data-[variant=destructive]:bg-error-12 data-[variant=destructive]:fill-error-12',\n )}\n />\n )}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\ninterface InfoTooltipProps {\n content: string\n label: string\n}\n\nconst InfoTooltip = ({ content, label }: InfoTooltipProps) => {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n aria-label={`About ${label}`}\n className=\"focus-visible:ring-primary inline-flex size-4 cursor-help items-center justify-center rounded-full text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none\"\n type=\"button\"\n />\n }\n >\n <MaterialSymbol className=\"text-[14px]!\" name=\"info\" />\n </TooltipTrigger>\n <TooltipContent className=\"max-w-xs whitespace-pre-line\">\n {content}\n </TooltipContent>\n </Tooltip>\n )\n}\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n TooltipPortal,\n InfoTooltip,\n}\n"],"mappings":";;;;;;;AAKA,MAAM,mBAAmB,EACvB,QAAQ,GACR,GAAG,YACyD;AAC5D,QAAO,oBAACA,UAAiB,UAAlB;EAAkC;EAAO,GAAI;EAAS,CAAA;;AAG/D,MAAM,iBAAiB,EACrB,GAAG,YACuD;AAC1D,QAAO,oBAACA,UAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;EAAS,CAAA;;AAK1E,MAAM,WAAW,EAAE,GAAG,YAA0B;AAC9C,QAAO,oBAACA,UAAiB,MAAlB,EAAuB,GAAI,OAAS,CAAA;;AAG7C,MAAM,kBAAkB,EACtB,GAAG,YACwD;AAC3D,QAAO,oBAACA,UAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAY5E,MAAM,kBAAkB,EACtB,WACA,YAAY,OACZ,UAAU,WACV,UACA,OACA,aACA,MACA,aAAa,GACb,GAAG,YACsB;AACzB,QACE,oBAACA,UAAiB,QAAlB,EAAA,UACE,oBAACA,UAAiB,YAAlB;EACS;EACM;EACb,WAAU;EACJ;EACM;YAEZ,qBAACA,UAAiB,OAAlB;GACE,aAAU;GACV,gBAAc;GACd,WAAW,GACT,6IAEA,8DACA,mNAEA,4DACA,wEACA,mFACA,UACD;GACD,GAAI;aAdN,CAgBG,UACA,CAAC,aACA,oBAACA,UAAiB,OAAlB;IACE,gBAAc;IACd,WAAW,GACT,yCAEA,2HACA,yEACA,kFACD;IACD,CAAA,CAEmB;;EACG,CAAA,EACN,CAAA;;AAS9B,MAAM,eAAe,EAAE,SAAS,YAA8B;AAC5D,QACE,qBAAC,SAAD,EAAA,UAAA,CACE,oBAAC,gBAAD;EACE,QACE,oBAAC,UAAD;GACE,cAAY,SAAS;GACrB,WAAU;GACV,MAAK;GACL,CAAA;YAGJ,oBAAC,gBAAD;GAAgB,WAAU;GAAe,MAAK;GAAS,CAAA;EACxC,CAAA,EACjB,oBAAC,gBAAD;EAAgB,WAAU;YACvB;EACc,CAAA,CACT,EAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"tooltip.js","names":["TooltipPrimitive"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\nconst TooltipProvider = ({\n delay = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) => {\n return <TooltipPrimitive.Provider delay={delay} {...props} />\n}\n\nconst TooltipPortal = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Portal>) => {\n return <TooltipPrimitive.Portal data-slot=\"tooltip-portal\" {...props} />\n}\n\ntype TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>\n\nconst Tooltip = ({ ...props }: TooltipProps) => {\n return <TooltipPrimitive.Root {...props} />\n}\n\nconst TooltipTrigger = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) => {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> &\n Pick<\n TooltipPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset'\n > & {\n hideArrow?: boolean\n variant?: 'default' | 'destructive'\n }\n\nconst TooltipContent = ({\n className,\n hideArrow = false,\n variant = 'default',\n children,\n align,\n alignOffset,\n side,\n sideOffset = 4,\n ...props\n}: TooltipContentProps) => {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n className=\"isolate z-50\"\n side={side}\n sideOffset={sideOffset}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n data-variant={variant}\n className={cn(\n 'z-50 w-fit origin-(--transform-origin) rounded-lg p-2 text-xs leading-none text-balance transition-[opacity,scale,translate] duration-150',\n // enter: fade + zoom + a slight per-side slide (was animate-in)\n 'data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-[side=bottom]:data-starting-style:-translate-y-1 data-[side=left]:data-starting-style:translate-x-1 data-[side=right]:data-starting-style:-translate-x-1 data-[side=top]:data-starting-style:translate-y-1',\n // exit: instant (was data-[state=closed]:duration-0)\n 'data-ending-style:opacity-0 data-ending-style:duration-0',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:text-gray-1',\n 'data-[variant=destructive]:bg-error-a12 data-[variant=destructive]:text-error-1',\n className,\n )}\n {...props}\n >\n {children}\n {!hideArrow && (\n <TooltipPrimitive.Arrow\n data-variant={variant}\n className={cn(\n 'z-50 size-2.5 rotate-45 rounded-[2px]',\n // diamond arrow: overlap the popup edge on the anchor side\n 'data-[side=bottom]:-top-[5px] data-[side=left]:-right-[5px] data-[side=right]:-left-[5px] data-[side=top]:-bottom-[5px]',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:fill-gray-12',\n 'data-[variant=destructive]:bg-error-12 data-[variant=destructive]:fill-error-12',\n )}\n />\n )}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\ninterface InfoTooltipProps {\n content: string\n label: string\n}\n\nconst InfoTooltip = ({ content, label }: InfoTooltipProps) => {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n aria-label={`About ${label}`}\n className=\"focus-visible:ring-primary relative top-px inline-flex size-4 cursor-help items-center justify-center rounded-full text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none\"\n type=\"button\"\n />\n }\n >\n <MaterialSymbol className=\"text-[14px]!\" name=\"info\" />\n </TooltipTrigger>\n <TooltipContent className=\"max-w-xs whitespace-pre-line\">\n {content}\n </TooltipContent>\n </Tooltip>\n )\n}\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n TooltipPortal,\n InfoTooltip,\n}\n"],"mappings":";;;;;;;AAKA,MAAM,mBAAmB,EACvB,QAAQ,GACR,GAAG,YACyD;AAC5D,QAAO,oBAACA,UAAiB,UAAlB;EAAkC;EAAO,GAAI;EAAS,CAAA;;AAG/D,MAAM,iBAAiB,EACrB,GAAG,YACuD;AAC1D,QAAO,oBAACA,UAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;EAAS,CAAA;;AAK1E,MAAM,WAAW,EAAE,GAAG,YAA0B;AAC9C,QAAO,oBAACA,UAAiB,MAAlB,EAAuB,GAAI,OAAS,CAAA;;AAG7C,MAAM,kBAAkB,EACtB,GAAG,YACwD;AAC3D,QAAO,oBAACA,UAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAY5E,MAAM,kBAAkB,EACtB,WACA,YAAY,OACZ,UAAU,WACV,UACA,OACA,aACA,MACA,aAAa,GACb,GAAG,YACsB;AACzB,QACE,oBAACA,UAAiB,QAAlB,EAAA,UACE,oBAACA,UAAiB,YAAlB;EACS;EACM;EACb,WAAU;EACJ;EACM;YAEZ,qBAACA,UAAiB,OAAlB;GACE,aAAU;GACV,gBAAc;GACd,WAAW,GACT,6IAEA,8DACA,mNAEA,4DACA,wEACA,mFACA,UACD;GACD,GAAI;aAdN,CAgBG,UACA,CAAC,aACA,oBAACA,UAAiB,OAAlB;IACE,gBAAc;IACd,WAAW,GACT,yCAEA,2HACA,yEACA,kFACD;IACD,CAAA,CAEmB;;EACG,CAAA,EACN,CAAA;;AAS9B,MAAM,eAAe,EAAE,SAAS,YAA8B;AAC5D,QACE,qBAAC,SAAD,EAAA,UAAA,CACE,oBAAC,gBAAD;EACE,QACE,oBAAC,UAAD;GACE,cAAY,SAAS;GACrB,WAAU;GACV,MAAK;GACL,CAAA;YAGJ,oBAAC,gBAAD;GAAgB,WAAU;GAAe,MAAK;GAAS,CAAA;EACxC,CAAA,EACjB,oBAAC,gBAAD;EAAgB,WAAU;YACvB;EACc,CAAA,CACT,EAAA,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
require("../chunk-aJGBMT86.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/use-reduced-motion.ts
|
|
6
|
+
const QUERY = "(prefers-reduced-motion: reduce)";
|
|
7
|
+
function getQuery() {
|
|
8
|
+
return typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia(QUERY) : null;
|
|
9
|
+
}
|
|
10
|
+
function subscribe(onChange) {
|
|
11
|
+
const query = getQuery();
|
|
12
|
+
if (!query) return () => {};
|
|
13
|
+
query.addEventListener("change", onChange);
|
|
14
|
+
return () => query.removeEventListener("change", onChange);
|
|
15
|
+
}
|
|
16
|
+
function useReducedMotion() {
|
|
17
|
+
return (0, react.useSyncExternalStore)(subscribe, () => getQuery()?.matches ?? false, () => false);
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.useReducedMotion = useReducedMotion;
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=use-reduced-motion.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-reduced-motion.cjs","names":[],"sources":["../../src/hooks/use-reduced-motion.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react'\n\nconst QUERY = '(prefers-reduced-motion: reduce)'\n\nfunction getQuery() {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function'\n ? window.matchMedia(QUERY)\n : null\n}\n\nfunction subscribe(onChange: () => void) {\n const query = getQuery()\n if (!query) return () => {}\n query.addEventListener('change', onChange)\n return () => query.removeEventListener('change', onChange)\n}\n\nfunction useReducedMotion() {\n return useSyncExternalStore(\n subscribe,\n () => getQuery()?.matches ?? false,\n () => false,\n )\n}\n\nexport { useReducedMotion }\n"],"mappings":";;;;;AAEA,MAAM,QAAQ;AAEd,SAAS,WAAW;AAClB,QAAO,OAAO,WAAW,eACvB,OAAO,OAAO,eAAe,aAC3B,OAAO,WAAW,MAAM,GACxB;;AAGN,SAAS,UAAU,UAAsB;CACvC,MAAM,QAAQ,UAAU;AACxB,KAAI,CAAC,MAAO,cAAa;AACzB,OAAM,iBAAiB,UAAU,SAAS;AAC1C,cAAa,MAAM,oBAAoB,UAAU,SAAS;;AAG5D,SAAS,mBAAmB;AAC1B,SAAA,GAAA,MAAA,sBACE,iBACM,UAAU,EAAE,WAAW,aACvB,MACP"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useSyncExternalStore } from "react";
|
|
3
|
+
//#region src/hooks/use-reduced-motion.ts
|
|
4
|
+
const QUERY = "(prefers-reduced-motion: reduce)";
|
|
5
|
+
function getQuery() {
|
|
6
|
+
return typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia(QUERY) : null;
|
|
7
|
+
}
|
|
8
|
+
function subscribe(onChange) {
|
|
9
|
+
const query = getQuery();
|
|
10
|
+
if (!query) return () => {};
|
|
11
|
+
query.addEventListener("change", onChange);
|
|
12
|
+
return () => query.removeEventListener("change", onChange);
|
|
13
|
+
}
|
|
14
|
+
function useReducedMotion() {
|
|
15
|
+
return useSyncExternalStore(subscribe, () => getQuery()?.matches ?? false, () => false);
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { useReducedMotion };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=use-reduced-motion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-reduced-motion.js","names":[],"sources":["../../src/hooks/use-reduced-motion.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react'\n\nconst QUERY = '(prefers-reduced-motion: reduce)'\n\nfunction getQuery() {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function'\n ? window.matchMedia(QUERY)\n : null\n}\n\nfunction subscribe(onChange: () => void) {\n const query = getQuery()\n if (!query) return () => {}\n query.addEventListener('change', onChange)\n return () => query.removeEventListener('change', onChange)\n}\n\nfunction useReducedMotion() {\n return useSyncExternalStore(\n subscribe,\n () => getQuery()?.matches ?? false,\n () => false,\n )\n}\n\nexport { useReducedMotion }\n"],"mappings":";;;AAEA,MAAM,QAAQ;AAEd,SAAS,WAAW;AAClB,QAAO,OAAO,WAAW,eACvB,OAAO,OAAO,eAAe,aAC3B,OAAO,WAAW,MAAM,GACxB;;AAGN,SAAS,UAAU,UAAsB;CACvC,MAAM,QAAQ,UAAU;AACxB,KAAI,CAAC,MAAO,cAAa;AACzB,OAAM,iBAAiB,UAAU,SAAS;AAC1C,cAAa,MAAM,oBAAoB,UAAU,SAAS;;AAG5D,SAAS,mBAAmB;AAC1B,QAAO,qBACL,iBACM,UAAU,EAAE,WAAW,aACvB,MACP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-box-variants-
|
|
1
|
+
{"version":3,"file":"input-box-variants-DcajYXvo.js","names":[],"sources":["../src/lib/input-box-variants.ts"],"sourcesContent":["import { cn } from '../utils/cn'\nimport type { SparkInputColor, SparkInputStyle } from './theme-types'\n\nexport const GHOST_UNDERLINE =\n 'h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled'\n\nconst SOFT_BASE =\n 'user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-red-a8 disabled:bg-base-gray-soft disabled:opacity-50 aria-invalid:bg-base-error-soft aria-invalid:text-error aria-invalid:not-disabled:hover:bg-red-a4 aria-invalid:focus-visible:ring-red-a8 group-data-[invalid=true]/field:bg-base-error-soft group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:not-disabled:hover:bg-red-a4 group-data-[invalid=true]/field:focus-visible:ring-red-a8'\n\nconst BORDERED =\n 'border user-invalid:border-input-invalid user-invalid:text-error focus-visible:ring-1 user-invalid:focus-visible:border-input-invalid! user-invalid:focus-visible:ring-red-a4! disabled:border-input-disabled disabled:opacity-50 aria-invalid:border-input-invalid aria-invalid:text-error aria-invalid:focus-visible:border-input-invalid! aria-invalid:focus-visible:ring-red-a4! group-data-[invalid=true]/field:border-input-invalid group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus-visible:border-input-invalid! group-data-[invalid=true]/field:focus-visible:ring-red-a4!'\nexport const boxChrome: Record<\n SparkInputStyle,\n Record<SparkInputColor, string>\n> = {\n soft: {\n brand: cn(\n SOFT_BASE,\n 'bg-input-base not-disabled:hover:bg-input-base-hover focus-visible:ring-input-active',\n ),\n gray: cn(\n SOFT_BASE,\n 'bg-base-gray-soft not-disabled:hover:bg-gray-a4 focus-visible:ring-gray-a8',\n ),\n },\n surface: {\n brand: cn(\n BORDERED,\n 'border-input bg-base-accent-surface focus-visible:border-input-active focus-visible:ring-spark-a4',\n ),\n gray: cn(\n BORDERED,\n 'border-input-gray bg-base-gray-surface focus-visible:border-gray-a8 focus-visible:ring-gray-a4',\n ),\n },\n outlined: {\n brand: cn(\n BORDERED,\n 'border-input focus-visible:border-input-active focus-visible:ring-spark-a4',\n ),\n gray: cn(\n BORDERED,\n 'border-input-gray focus-visible:border-gray-a8 focus-visible:ring-gray-a4',\n ),\n },\n ghost: {\n brand: cn(GHOST_UNDERLINE, 'border-b-input'),\n gray: cn(GHOST_UNDERLINE, 'border-b-input-gray'),\n },\n}\n"],"mappings":";;;AAGA,MAAa,kBACX;AAEF,MAAM,YACJ;AAEF,MAAM,WACJ;AACF,MAAa,YAGT;CACF,MAAM;EACJ,OAAO,GACL,WACA,uFACD;EACD,MAAM,GACJ,WACA,6EACD;EACF;CACD,SAAS;EACP,OAAO,GACL,UACA,oGACD;EACD,MAAM,GACJ,UACA,iGACD;EACF;CACD,UAAU;EACR,OAAO,GACL,UACA,6EACD;EACD,MAAM,GACJ,UACA,4EACD;EACF;CACD,OAAO;EACL,OAAO,GAAG,iBAAiB,iBAAiB;EAC5C,MAAM,GAAG,iBAAiB,sBAAsB;EACjD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-box-variants-
|
|
1
|
+
{"version":3,"file":"input-box-variants-ZCtgs-1S.cjs","names":[],"sources":["../src/lib/input-box-variants.ts"],"sourcesContent":["import { cn } from '../utils/cn'\nimport type { SparkInputColor, SparkInputStyle } from './theme-types'\n\nexport const GHOST_UNDERLINE =\n 'h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled'\n\nconst SOFT_BASE =\n 'user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-red-a8 disabled:bg-base-gray-soft disabled:opacity-50 aria-invalid:bg-base-error-soft aria-invalid:text-error aria-invalid:not-disabled:hover:bg-red-a4 aria-invalid:focus-visible:ring-red-a8 group-data-[invalid=true]/field:bg-base-error-soft group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:not-disabled:hover:bg-red-a4 group-data-[invalid=true]/field:focus-visible:ring-red-a8'\n\nconst BORDERED =\n 'border user-invalid:border-input-invalid user-invalid:text-error focus-visible:ring-1 user-invalid:focus-visible:border-input-invalid! user-invalid:focus-visible:ring-red-a4! disabled:border-input-disabled disabled:opacity-50 aria-invalid:border-input-invalid aria-invalid:text-error aria-invalid:focus-visible:border-input-invalid! aria-invalid:focus-visible:ring-red-a4! group-data-[invalid=true]/field:border-input-invalid group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus-visible:border-input-invalid! group-data-[invalid=true]/field:focus-visible:ring-red-a4!'\nexport const boxChrome: Record<\n SparkInputStyle,\n Record<SparkInputColor, string>\n> = {\n soft: {\n brand: cn(\n SOFT_BASE,\n 'bg-input-base not-disabled:hover:bg-input-base-hover focus-visible:ring-input-active',\n ),\n gray: cn(\n SOFT_BASE,\n 'bg-base-gray-soft not-disabled:hover:bg-gray-a4 focus-visible:ring-gray-a8',\n ),\n },\n surface: {\n brand: cn(\n BORDERED,\n 'border-input bg-base-accent-surface focus-visible:border-input-active focus-visible:ring-spark-a4',\n ),\n gray: cn(\n BORDERED,\n 'border-input-gray bg-base-gray-surface focus-visible:border-gray-a8 focus-visible:ring-gray-a4',\n ),\n },\n outlined: {\n brand: cn(\n BORDERED,\n 'border-input focus-visible:border-input-active focus-visible:ring-spark-a4',\n ),\n gray: cn(\n BORDERED,\n 'border-input-gray focus-visible:border-gray-a8 focus-visible:ring-gray-a4',\n ),\n },\n ghost: {\n brand: cn(GHOST_UNDERLINE, 'border-b-input'),\n gray: cn(GHOST_UNDERLINE, 'border-b-input-gray'),\n },\n}\n"],"mappings":";;;;AAGA,MAAa,kBACX;AAEF,MAAM,YACJ;AAEF,MAAM,WACJ;AACF,MAAa,YAGT;CACF,MAAM;EACJ,QAAA,GAAA,OAAA,IACE,WACA,uFACD;EACD,OAAA,GAAA,OAAA,IACE,WACA,6EACD;EACF;CACD,SAAS;EACP,QAAA,GAAA,OAAA,IACE,UACA,oGACD;EACD,OAAA,GAAA,OAAA,IACE,UACA,iGACD;EACF;CACD,UAAU;EACR,QAAA,GAAA,OAAA,IACE,UACA,6EACD;EACD,OAAA,GAAA,OAAA,IACE,UACA,4EACD;EACF;CACD,OAAO;EACL,QAAA,GAAA,OAAA,IAAU,iBAAiB,iBAAiB;EAC5C,OAAA,GAAA,OAAA,IAAS,iBAAiB,sBAAsB;EACjD;CACF"}
|
|
@@ -12,4 +12,4 @@ declare function NumberFlow({
|
|
|
12
12
|
}: NumberFlowProps): _$react_jsx_runtime0.JSX.Element;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { NumberFlow as n, NumberFlowProps$1 as r, Format as t };
|
|
15
|
-
//# sourceMappingURL=number-flow-
|
|
15
|
+
//# sourceMappingURL=number-flow-D9zsxH0-.d.ts.map
|
package/dist/styles/index.css
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
@import '@radix-ui/colors/red.css' layer(base);
|
|
5
5
|
@import '@radix-ui/colors/orange.css' layer(base);
|
|
6
6
|
@import '@radix-ui/colors/pink.css' layer(base);
|
|
7
|
+
@import '@radix-ui/colors/cyan.css' layer(base);
|
|
8
|
+
@import '@radix-ui/colors/tomato.css' layer(base);
|
|
9
|
+
@import '@radix-ui/colors/amber.css' layer(base);
|
|
7
10
|
|
|
8
11
|
/* Solid Light Alpha */
|
|
9
12
|
@import '@radix-ui/colors/green-alpha.css' layer(base);
|
|
@@ -11,6 +14,9 @@
|
|
|
11
14
|
@import '@radix-ui/colors/red-alpha.css' layer(base);
|
|
12
15
|
@import '@radix-ui/colors/orange-alpha.css' layer(base);
|
|
13
16
|
@import '@radix-ui/colors/pink-alpha.css' layer(base);
|
|
17
|
+
@import '@radix-ui/colors/cyan-alpha.css' layer(base);
|
|
18
|
+
@import '@radix-ui/colors/tomato-alpha.css' layer(base);
|
|
19
|
+
@import '@radix-ui/colors/amber-alpha.css' layer(base);
|
|
14
20
|
|
|
15
21
|
/* Solid Dark */
|
|
16
22
|
@import '@radix-ui/colors/green-dark.css' layer(base);
|
|
@@ -18,6 +24,9 @@
|
|
|
18
24
|
@import '@radix-ui/colors/red-dark.css' layer(base);
|
|
19
25
|
@import '@radix-ui/colors/orange-dark.css' layer(base);
|
|
20
26
|
@import '@radix-ui/colors/pink-dark.css' layer(base);
|
|
27
|
+
@import '@radix-ui/colors/cyan-dark.css' layer(base);
|
|
28
|
+
@import '@radix-ui/colors/tomato-dark.css' layer(base);
|
|
29
|
+
@import '@radix-ui/colors/amber-dark.css' layer(base);
|
|
21
30
|
|
|
22
31
|
/* Solid Dark Alpha */
|
|
23
32
|
@import '@radix-ui/colors/green-dark-alpha.css' layer(base);
|
|
@@ -25,6 +34,9 @@
|
|
|
25
34
|
@import '@radix-ui/colors/red-dark-alpha.css' layer(base);
|
|
26
35
|
@import '@radix-ui/colors/orange-dark-alpha.css' layer(base);
|
|
27
36
|
@import '@radix-ui/colors/pink-dark-alpha.css' layer(base);
|
|
37
|
+
@import '@radix-ui/colors/cyan-dark-alpha.css' layer(base);
|
|
38
|
+
@import '@radix-ui/colors/tomato-dark-alpha.css' layer(base);
|
|
39
|
+
@import '@radix-ui/colors/amber-dark-alpha.css' layer(base);
|
|
28
40
|
|
|
29
41
|
/* Grays Light */
|
|
30
42
|
@import '@radix-ui/colors/gray.css' layer(base);
|
|
@@ -74,6 +86,33 @@
|
|
|
74
86
|
/* Tailwind animate plugin */
|
|
75
87
|
@import 'tw-animate-css';
|
|
76
88
|
|
|
89
|
+
/*
|
|
90
|
+
* Portal parity: ECP ships a contrast-fixed light green-a11 (opaque, darker
|
|
91
|
+
* than Radix stock #00713fde) for readable success-light text. Declared here
|
|
92
|
+
* (after the imports, directly in layer base) -- inside spark-default.css it
|
|
93
|
+
* would land in the nested base.base sub-layer and lose to Radix's direct
|
|
94
|
+
* base rules (a layer's direct rules act as its implicit final sub-layer).
|
|
95
|
+
*/
|
|
96
|
+
@layer base {
|
|
97
|
+
/* :where(:not(...)) keeps a dark root on the Radix dark value: a bare :root
|
|
98
|
+
here would beat the earlier .dark import at equal specificity */
|
|
99
|
+
:root:where(:not(.dark, .dark-theme)),
|
|
100
|
+
.light,
|
|
101
|
+
.light-theme {
|
|
102
|
+
--green-a11: #06784c;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@supports (color: color(display-p3 1 1 1)) {
|
|
106
|
+
@media (color-gamut: p3) {
|
|
107
|
+
:root:where(:not(.dark, .dark-theme)),
|
|
108
|
+
.light,
|
|
109
|
+
.light-theme {
|
|
110
|
+
--green-a11: color(display-p3 0.21 0.46 0.31);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
77
116
|
/* Hit area utilities — Kian Bazarjani <https://bazza.dev> */
|
|
78
117
|
@utility hit-area-debug {
|
|
79
118
|
position: relative;
|
|
@@ -51,9 +51,20 @@
|
|
|
51
51
|
--red-contrast: #fff;
|
|
52
52
|
--red-on-solid: #fff;
|
|
53
53
|
--red-surface: var(--red-2);
|
|
54
|
+
--green-contrast: #fff;
|
|
55
|
+
--green-on-solid: #fff;
|
|
56
|
+
--green-surface: var(--green-2);
|
|
57
|
+
--orange-contrast: #fff;
|
|
58
|
+
--orange-on-solid: #fff;
|
|
59
|
+
--orange-surface: var(--orange-2);
|
|
54
60
|
--neutral-contrast: var(--neutral-12);
|
|
55
61
|
--neutral-on-solid: #fff;
|
|
56
62
|
--neutral-surface: var(--neutral-2);
|
|
63
|
+
|
|
64
|
+
/* theme.css maps --color-{white,black}-contrast to these; Radix's alpha
|
|
65
|
+
scales don't define them (portal parity: ECP's generator used #fff). */
|
|
66
|
+
--white-contrast: #ffffff;
|
|
67
|
+
--black-contrast: #ffffff;
|
|
57
68
|
}
|
|
58
69
|
|
|
59
70
|
@supports (color: color(display-p3 1 1 1)) {
|
|
@@ -99,12 +110,12 @@
|
|
|
99
110
|
|
|
100
111
|
.dark,
|
|
101
112
|
.dark-theme {
|
|
102
|
-
--spark-1: #
|
|
103
|
-
--spark-2: #
|
|
104
|
-
--spark-3: #
|
|
105
|
-
--spark-4: #
|
|
106
|
-
--spark-5: #
|
|
107
|
-
--spark-6: #
|
|
113
|
+
--spark-1: #000;
|
|
114
|
+
--spark-2: #051222;
|
|
115
|
+
--spark-3: #00234c;
|
|
116
|
+
--spark-4: #002d6d;
|
|
117
|
+
--spark-5: #003a82;
|
|
118
|
+
--spark-6: #004895;
|
|
108
119
|
--spark-7: #0058ae;
|
|
109
120
|
--spark-8: #0069cf;
|
|
110
121
|
--spark-9: #005eb4;
|
|
@@ -112,29 +123,35 @@
|
|
|
112
123
|
--spark-11: #71b8ff;
|
|
113
124
|
--spark-12: #c5e4ff;
|
|
114
125
|
|
|
115
|
-
--spark-a1: #
|
|
116
|
-
--spark-a2: #
|
|
117
|
-
--spark-a3: #
|
|
118
|
-
--spark-a4: #
|
|
119
|
-
--spark-a5: #
|
|
120
|
-
--spark-a6: #
|
|
121
|
-
--spark-a7: #
|
|
122
|
-
--spark-a8: #
|
|
123
|
-
--spark-a9: #
|
|
124
|
-
--spark-a10: #
|
|
126
|
+
--spark-a1: #00000000;
|
|
127
|
+
--spark-a2: #2687ff22;
|
|
128
|
+
--spark-a3: #0076ff4c;
|
|
129
|
+
--spark-a4: #006aff6d;
|
|
130
|
+
--spark-a5: #0072ff82;
|
|
131
|
+
--spark-a6: #007cff95;
|
|
132
|
+
--spark-a7: #0081ffae;
|
|
133
|
+
--spark-a8: #0081ffcf;
|
|
134
|
+
--spark-a9: #0085ffb4;
|
|
135
|
+
--spark-a10: #0082ff9d;
|
|
125
136
|
--spark-a11: #71b8ff;
|
|
126
137
|
--spark-a12: #c5e4ff;
|
|
127
138
|
|
|
128
139
|
--spark-contrast: #fff;
|
|
129
140
|
--spark-on-solid: #fff;
|
|
130
|
-
--spark-surface: #
|
|
131
|
-
--spark-background: #
|
|
141
|
+
--spark-surface: #0a244480;
|
|
142
|
+
--spark-background: #000;
|
|
132
143
|
--spark-indicator: #005eb4;
|
|
133
144
|
--spark-track: #005eb4;
|
|
134
145
|
|
|
135
146
|
--red-contrast: #fff;
|
|
136
147
|
--red-on-solid: #fff;
|
|
137
148
|
--red-surface: var(--red-2);
|
|
149
|
+
--green-contrast: #fff;
|
|
150
|
+
--green-on-solid: #fff;
|
|
151
|
+
--green-surface: var(--green-2);
|
|
152
|
+
--orange-contrast: #fff;
|
|
153
|
+
--orange-on-solid: #fff;
|
|
154
|
+
--orange-surface: var(--orange-2);
|
|
138
155
|
--neutral-contrast: var(--neutral-12);
|
|
139
156
|
--neutral-on-solid: #fff;
|
|
140
157
|
--neutral-surface: var(--neutral-2);
|
|
@@ -144,36 +161,36 @@
|
|
|
144
161
|
@media (color-gamut: p3) {
|
|
145
162
|
.dark,
|
|
146
163
|
.dark-theme {
|
|
147
|
-
--spark-1: oklch(
|
|
148
|
-
--spark-2: oklch(
|
|
149
|
-
--spark-3: oklch(
|
|
150
|
-
--spark-4: oklch(
|
|
151
|
-
--spark-5: oklch(
|
|
152
|
-
--spark-6: oklch(41
|
|
153
|
-
--spark-7: oklch(46.
|
|
154
|
-
--spark-8: oklch(
|
|
164
|
+
--spark-1: oklch(0% 0.0326 254.2);
|
|
165
|
+
--spark-2: oklch(18% 0.0382 254.2);
|
|
166
|
+
--spark-3: oklch(25.8% 0.0872 254.2);
|
|
167
|
+
--spark-4: oklch(30.9% 0.126 254.2);
|
|
168
|
+
--spark-5: oklch(35.9% 0.1378 254.2);
|
|
169
|
+
--spark-6: oklch(41% 0.144 254.2);
|
|
170
|
+
--spark-7: oklch(46.6% 0.1556 254.2);
|
|
171
|
+
--spark-8: oklch(52.9% 0.1789 254.2);
|
|
155
172
|
--spark-9: oklch(48.6% 0.1556 254.2);
|
|
156
173
|
--spark-10: oklch(43.5% 0.144 254.2);
|
|
157
174
|
--spark-11: oklch(77.1% 0.1674 254.2);
|
|
158
175
|
--spark-12: oklch(90.8% 0.0614 254.2);
|
|
159
176
|
|
|
160
|
-
--spark-a1: color(display-p3 0 0
|
|
161
|
-
--spark-a2: color(display-p3 0 0.
|
|
162
|
-
--spark-a3: color(display-p3 0 0.
|
|
163
|
-
--spark-a4: color(display-p3 0.
|
|
164
|
-
--spark-a5: color(display-p3 0.
|
|
165
|
-
--spark-a6: color(display-p3 0.
|
|
166
|
-
--spark-a7: color(display-p3 0.
|
|
167
|
-
--spark-a8: color(display-p3 0.
|
|
168
|
-
--spark-a9: color(display-p3 0.
|
|
169
|
-
--spark-a10: color(display-p3 0.
|
|
170
|
-
--spark-a11: color(display-p3 0.5176 0.
|
|
171
|
-
--spark-a12: color(display-p3 0.8039 0.902 1 / 0.
|
|
177
|
+
--spark-a1: color(display-p3 0 0 0 / 0);
|
|
178
|
+
--spark-a2: color(display-p3 0.2431 0.5451 0.9961 / 0.13);
|
|
179
|
+
--spark-a3: color(display-p3 0.1373 0.4667 1 / 0.287);
|
|
180
|
+
--spark-a4: color(display-p3 0.1451 0.4196 1 / 0.412);
|
|
181
|
+
--spark-a5: color(display-p3 0.1686 0.4588 1 / 0.491);
|
|
182
|
+
--spark-a6: color(display-p3 0.1961 0.4941 1 / 0.565);
|
|
183
|
+
--spark-a7: color(display-p3 0.2157 0.5176 1 / 0.659);
|
|
184
|
+
--spark-a8: color(display-p3 0.2196 0.5137 1 / 0.785);
|
|
185
|
+
--spark-a9: color(display-p3 0.2235 0.5294 1 / 0.683);
|
|
186
|
+
--spark-a10: color(display-p3 0.2118 0.5216 1 / 0.597);
|
|
187
|
+
--spark-a11: color(display-p3 0.5176 0.7294 1 / 0.977);
|
|
188
|
+
--spark-a12: color(display-p3 0.8039 0.902 1 / 0.989);
|
|
172
189
|
|
|
173
190
|
--spark-contrast: #fff;
|
|
174
191
|
--spark-on-solid: #fff;
|
|
175
|
-
--spark-surface: color(display-p3 0.
|
|
176
|
-
--spark-background: #
|
|
192
|
+
--spark-surface: color(display-p3 0.0627 0.1412 0.2588 / 0.5);
|
|
193
|
+
--spark-background: #000;
|
|
177
194
|
--spark-indicator: oklch(48.6% 0.1556 254.2);
|
|
178
195
|
--spark-track: oklch(48.6% 0.1556 254.2);
|
|
179
196
|
}
|
|
@@ -604,6 +621,72 @@
|
|
|
604
621
|
--spark-track: var(--red-9);
|
|
605
622
|
}
|
|
606
623
|
|
|
624
|
+
[data-accent-color='green'],
|
|
625
|
+
:where([data-accent-color='green'] .spark-theme) {
|
|
626
|
+
--spark-1: var(--green-1);
|
|
627
|
+
--spark-2: var(--green-2);
|
|
628
|
+
--spark-3: var(--green-3);
|
|
629
|
+
--spark-4: var(--green-4);
|
|
630
|
+
--spark-5: var(--green-5);
|
|
631
|
+
--spark-6: var(--green-6);
|
|
632
|
+
--spark-7: var(--green-7);
|
|
633
|
+
--spark-8: var(--green-8);
|
|
634
|
+
--spark-9: var(--green-9);
|
|
635
|
+
--spark-10: var(--green-10);
|
|
636
|
+
--spark-11: var(--green-11);
|
|
637
|
+
--spark-12: var(--green-12);
|
|
638
|
+
--spark-a1: var(--green-a1);
|
|
639
|
+
--spark-a2: var(--green-a2);
|
|
640
|
+
--spark-a3: var(--green-a3);
|
|
641
|
+
--spark-a4: var(--green-a4);
|
|
642
|
+
--spark-a5: var(--green-a5);
|
|
643
|
+
--spark-a6: var(--green-a6);
|
|
644
|
+
--spark-a7: var(--green-a7);
|
|
645
|
+
--spark-a8: var(--green-a8);
|
|
646
|
+
--spark-a9: var(--green-a9);
|
|
647
|
+
--spark-a10: var(--green-a10);
|
|
648
|
+
--spark-a11: var(--green-a11);
|
|
649
|
+
--spark-a12: var(--green-a12);
|
|
650
|
+
--spark-contrast: var(--green-contrast);
|
|
651
|
+
--spark-on-solid: var(--green-on-solid);
|
|
652
|
+
--spark-surface: var(--green-surface);
|
|
653
|
+
--spark-indicator: var(--green-9);
|
|
654
|
+
--spark-track: var(--green-9);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
[data-accent-color='orange'],
|
|
658
|
+
:where([data-accent-color='orange'] .spark-theme) {
|
|
659
|
+
--spark-1: var(--orange-1);
|
|
660
|
+
--spark-2: var(--orange-2);
|
|
661
|
+
--spark-3: var(--orange-3);
|
|
662
|
+
--spark-4: var(--orange-4);
|
|
663
|
+
--spark-5: var(--orange-5);
|
|
664
|
+
--spark-6: var(--orange-6);
|
|
665
|
+
--spark-7: var(--orange-7);
|
|
666
|
+
--spark-8: var(--orange-8);
|
|
667
|
+
--spark-9: var(--orange-9);
|
|
668
|
+
--spark-10: var(--orange-10);
|
|
669
|
+
--spark-11: var(--orange-11);
|
|
670
|
+
--spark-12: var(--orange-12);
|
|
671
|
+
--spark-a1: var(--orange-a1);
|
|
672
|
+
--spark-a2: var(--orange-a2);
|
|
673
|
+
--spark-a3: var(--orange-a3);
|
|
674
|
+
--spark-a4: var(--orange-a4);
|
|
675
|
+
--spark-a5: var(--orange-a5);
|
|
676
|
+
--spark-a6: var(--orange-a6);
|
|
677
|
+
--spark-a7: var(--orange-a7);
|
|
678
|
+
--spark-a8: var(--orange-a8);
|
|
679
|
+
--spark-a9: var(--orange-a9);
|
|
680
|
+
--spark-a10: var(--orange-a10);
|
|
681
|
+
--spark-a11: var(--orange-a11);
|
|
682
|
+
--spark-a12: var(--orange-a12);
|
|
683
|
+
--spark-contrast: var(--orange-contrast);
|
|
684
|
+
--spark-on-solid: var(--orange-on-solid);
|
|
685
|
+
--spark-surface: var(--orange-surface);
|
|
686
|
+
--spark-indicator: var(--orange-9);
|
|
687
|
+
--spark-track: var(--orange-9);
|
|
688
|
+
}
|
|
689
|
+
|
|
607
690
|
/*
|
|
608
691
|
* Card container chrome — a CONTAINER-only knob (contract §11). Everything here
|
|
609
692
|
* writes only --spark-card-* / --spark-card-c-*, tokens read EXCLUSIVELY by <Card>;
|