@epilot/spark-ui 0.18.2 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/attachment.d.cts +1 -1
- package/dist/components/attachment.d.ts +1 -1
- package/dist/components/avatar.cjs +1 -1
- package/dist/components/avatar.cjs.map +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.cjs +1 -1
- package/dist/components/badge.cjs.map +1 -1
- package/dist/components/badge.d.cts +2 -1
- package/dist/components/badge.d.ts +2 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/{energy-bar-chart.cjs → bar-chart-with-total.cjs} +4 -4
- package/dist/components/bar-chart-with-total.cjs.map +1 -0
- package/dist/components/bar-chart-with-total.d.cts +19 -0
- package/dist/components/bar-chart-with-total.d.ts +19 -0
- package/dist/components/{energy-bar-chart.js → bar-chart-with-total.js} +4 -4
- package/dist/components/bar-chart-with-total.js.map +1 -0
- package/dist/components/bar-chart.cjs +1 -1
- package/dist/components/bar-chart.js +2 -2
- package/dist/components/bubble.d.cts +1 -1
- package/dist/components/bubble.d.ts +1 -1
- package/dist/components/button-group.cjs +2 -2
- package/dist/components/button-group.cjs.map +1 -1
- package/dist/components/button-group.d.cts +1 -1
- package/dist/components/button-group.d.ts +1 -1
- package/dist/components/button-group.js +2 -2
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.cjs +6 -4
- package/dist/components/button.cjs.map +1 -1
- package/dist/components/button.d.cts +6 -5
- package/dist/components/button.d.ts +6 -5
- package/dist/components/button.js +6 -4
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.cjs +3 -3
- package/dist/components/calendar.cjs.map +1 -1
- package/dist/components/calendar.js +3 -3
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/callout.cjs +10 -10
- package/dist/components/callout.cjs.map +1 -1
- package/dist/components/callout.d.cts +1 -1
- package/dist/components/callout.d.ts +1 -1
- package/dist/components/callout.js +10 -10
- package/dist/components/callout.js.map +1 -1
- package/dist/components/checkbox.cjs +1 -1
- package/dist/components/checkbox.cjs.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/circular-gauge.cjs +7 -7
- package/dist/components/circular-gauge.cjs.map +1 -1
- package/dist/components/circular-gauge.js +7 -7
- package/dist/components/circular-gauge.js.map +1 -1
- package/dist/components/day-of-week-picker.cjs +21 -41
- package/dist/components/day-of-week-picker.cjs.map +1 -1
- package/dist/components/day-of-week-picker.d.cts +19 -23
- package/dist/components/day-of-week-picker.d.ts +19 -23
- package/dist/components/day-of-week-picker.js +21 -41
- package/dist/components/day-of-week-picker.js.map +1 -1
- package/dist/components/{device-card.cjs → entity-card.cjs} +31 -31
- package/dist/components/entity-card.cjs.map +1 -0
- package/dist/components/{device-card.d.cts → entity-card.d.cts} +15 -15
- package/dist/components/{device-card.d.ts → entity-card.d.ts} +15 -15
- package/dist/components/{device-card.js → entity-card.js} +20 -20
- package/dist/components/entity-card.js.map +1 -0
- package/dist/components/field.cjs +1 -1
- package/dist/components/field.cjs.map +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/field.js.map +1 -1
- package/dist/components/{feed-in-hero.cjs → hero-metric.cjs} +10 -15
- package/dist/components/hero-metric.cjs.map +1 -0
- package/dist/components/hero-metric.d.cts +27 -0
- package/dist/components/hero-metric.d.ts +27 -0
- package/dist/components/{feed-in-hero.js → hero-metric.js} +7 -12
- package/dist/components/hero-metric.js.map +1 -0
- package/dist/components/info-block.d.cts +1 -1
- package/dist/components/info-block.d.ts +1 -1
- package/dist/components/input-date.cjs +6 -6
- package/dist/components/input-date.cjs.map +1 -1
- package/dist/components/input-date.d.cts +2 -1
- package/dist/components/input-date.d.ts +2 -1
- package/dist/components/input-date.js +6 -6
- package/dist/components/input-date.js.map +1 -1
- package/dist/components/input-group.d.cts +1 -1
- package/dist/components/input-group.d.ts +1 -1
- package/dist/components/input-otp.cjs +1 -1
- package/dist/components/input-otp.cjs.map +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input-otp.js.map +1 -1
- package/dist/components/input.cjs +1 -1
- package/dist/components/input.cjs.map +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/label.cjs +1 -1
- package/dist/components/label.cjs.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/label.js.map +1 -1
- package/dist/components/line-chart.cjs +2 -2
- package/dist/components/line-chart.js +3 -3
- package/dist/components/number-flow.d.cts +12 -2
- package/dist/components/number-flow.d.ts +12 -2
- package/dist/components/page-header.d.cts +1 -1
- package/dist/components/page-header.d.ts +1 -1
- package/dist/components/period-tabs.cjs +2 -22
- package/dist/components/period-tabs.cjs.map +1 -1
- package/dist/components/period-tabs.d.cts +5 -22
- package/dist/components/period-tabs.d.ts +5 -22
- package/dist/components/period-tabs.js +2 -22
- package/dist/components/period-tabs.js.map +1 -1
- package/dist/components/pill.cjs +2 -2
- package/dist/components/pill.cjs.map +1 -1
- package/dist/components/pill.js +2 -2
- package/dist/components/pill.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.cjs +1 -1
- package/dist/components/radio.cjs.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/radio.js.map +1 -1
- package/dist/components/sankey-chart.cjs +1 -11
- package/dist/components/sankey-chart.cjs.map +1 -1
- package/dist/components/sankey-chart.d.cts +2 -3
- package/dist/components/sankey-chart.d.ts +2 -3
- package/dist/components/sankey-chart.js +2 -11
- package/dist/components/sankey-chart.js.map +1 -1
- package/dist/components/segmented-control.cjs +2 -2
- package/dist/components/segmented-control.cjs.map +1 -1
- package/dist/components/segmented-control.js +2 -2
- package/dist/components/segmented-control.js.map +1 -1
- package/dist/components/select.cjs +32 -2
- package/dist/components/select.cjs.map +1 -1
- package/dist/components/select.d.cts +11 -1
- package/dist/components/select.d.ts +11 -1
- package/dist/components/select.js +32 -4
- package/dist/components/select.js.map +1 -1
- package/dist/components/stepper.cjs +1 -1
- package/dist/components/stepper.cjs.map +1 -1
- package/dist/components/stepper.d.cts +4 -4
- package/dist/components/stepper.d.ts +4 -4
- package/dist/components/stepper.js +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/table.cjs +147 -0
- package/dist/components/table.cjs.map +1 -0
- package/dist/components/table.d.cts +75 -0
- package/dist/components/table.d.ts +75 -0
- package/dist/components/table.js +138 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/textarea.cjs +1 -1
- package/dist/components/textarea.cjs.map +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/textarea.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/components/typography.cjs +1 -1
- package/dist/components/typography.cjs.map +1 -1
- package/dist/components/typography.d.cts +4 -1
- package/dist/components/typography.d.ts +4 -1
- package/dist/components/typography.js +1 -1
- package/dist/components/typography.js.map +1 -1
- package/dist/components/wizard-layout.cjs +57 -0
- package/dist/components/wizard-layout.cjs.map +1 -0
- package/dist/components/wizard-layout.d.cts +34 -0
- package/dist/components/wizard-layout.d.ts +34 -0
- package/dist/components/wizard-layout.js +50 -0
- package/dist/components/wizard-layout.js.map +1 -0
- package/dist/lib/accent-colors.cjs +4 -1
- package/dist/lib/accent-colors.cjs.map +1 -1
- package/dist/lib/accent-colors.d.cts +1 -1
- package/dist/lib/accent-colors.d.ts +1 -1
- package/dist/lib/accent-colors.js +4 -1
- package/dist/lib/accent-colors.js.map +1 -1
- package/dist/lib/accent-theme.cjs +144 -9
- package/dist/lib/accent-theme.cjs.map +1 -1
- package/dist/lib/accent-theme.d.cts +37 -1
- package/dist/lib/accent-theme.d.ts +37 -1
- package/dist/lib/accent-theme.js +140 -10
- package/dist/lib/accent-theme.js.map +1 -1
- package/dist/styles/index.css +10 -1
- package/dist/styles/spark-default.css +75 -321
- package/dist/styles/theme.css +54 -8
- package/dist/utils/format.cjs +0 -13
- package/dist/utils/format.cjs.map +1 -1
- package/dist/utils/format.d.cts +1 -7
- package/dist/utils/format.d.ts +1 -7
- package/dist/utils/format.js +1 -12
- package/dist/utils/format.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/battery-progress-row.cjs +0 -135
- package/dist/components/battery-progress-row.cjs.map +0 -1
- package/dist/components/battery-progress-row.d.cts +0 -69
- package/dist/components/battery-progress-row.d.ts +0 -69
- package/dist/components/battery-progress-row.js +0 -125
- package/dist/components/battery-progress-row.js.map +0 -1
- package/dist/components/device-card.cjs.map +0 -1
- package/dist/components/device-card.js.map +0 -1
- package/dist/components/energy-bar-chart.cjs.map +0 -1
- package/dist/components/energy-bar-chart.d.cts +0 -43
- package/dist/components/energy-bar-chart.d.ts +0 -43
- package/dist/components/energy-bar-chart.js.map +0 -1
- package/dist/components/energy-breakdown.cjs +0 -80
- package/dist/components/energy-breakdown.cjs.map +0 -1
- package/dist/components/energy-breakdown.d.cts +0 -24
- package/dist/components/energy-breakdown.d.ts +0 -24
- package/dist/components/energy-breakdown.js +0 -79
- package/dist/components/energy-breakdown.js.map +0 -1
- package/dist/components/energy-history-chart.cjs +0 -63
- package/dist/components/energy-history-chart.cjs.map +0 -1
- package/dist/components/energy-history-chart.d.cts +0 -64
- package/dist/components/energy-history-chart.d.ts +0 -64
- package/dist/components/energy-history-chart.js +0 -62
- package/dist/components/energy-history-chart.js.map +0 -1
- package/dist/components/feed-in-hero.cjs.map +0 -1
- package/dist/components/feed-in-hero.d.cts +0 -32
- package/dist/components/feed-in-hero.d.ts +0 -32
- package/dist/components/feed-in-hero.js.map +0 -1
- package/dist/components/metering-row.cjs +0 -59
- package/dist/components/metering-row.cjs.map +0 -1
- package/dist/components/metering-row.d.cts +0 -31
- package/dist/components/metering-row.d.ts +0 -31
- package/dist/components/metering-row.js +0 -55
- package/dist/components/metering-row.js.map +0 -1
- package/dist/components/money-saved-block.cjs +0 -83
- package/dist/components/money-saved-block.cjs.map +0 -1
- package/dist/components/money-saved-block.d.cts +0 -55
- package/dist/components/money-saved-block.d.ts +0 -55
- package/dist/components/money-saved-block.js +0 -76
- package/dist/components/money-saved-block.js.map +0 -1
- package/dist/components/on-off-button.cjs +0 -32
- package/dist/components/on-off-button.cjs.map +0 -1
- package/dist/components/on-off-button.d.cts +0 -18
- package/dist/components/on-off-button.d.ts +0 -18
- package/dist/components/on-off-button.js +0 -31
- package/dist/components/on-off-button.js.map +0 -1
- package/dist/components/onboarding-layout.cjs +0 -67
- package/dist/components/onboarding-layout.cjs.map +0 -1
- package/dist/components/onboarding-layout.d.cts +0 -44
- package/dist/components/onboarding-layout.d.ts +0 -44
- package/dist/components/onboarding-layout.js +0 -60
- package/dist/components/onboarding-layout.js.map +0 -1
- package/dist/components/power-history-chart.cjs +0 -498
- package/dist/components/power-history-chart.cjs.map +0 -1
- package/dist/components/power-history-chart.d.cts +0 -71
- package/dist/components/power-history-chart.d.ts +0 -71
- package/dist/components/power-history-chart.js +0 -496
- package/dist/components/power-history-chart.js.map +0 -1
- package/dist/components/power-history.cjs +0 -114
- package/dist/components/power-history.cjs.map +0 -1
- package/dist/components/power-history.d.cts +0 -40
- package/dist/components/power-history.d.ts +0 -41
- package/dist/components/power-history.js +0 -114
- package/dist/components/power-history.js.map +0 -1
- package/dist/components/power-network.cjs +0 -559
- package/dist/components/power-network.cjs.map +0 -1
- package/dist/components/power-network.d.cts +0 -80
- package/dist/components/power-network.d.ts +0 -80
- package/dist/components/power-network.js +0 -553
- package/dist/components/power-network.js.map +0 -1
- package/dist/components/smart-toggle-button.cjs +0 -24
- package/dist/components/smart-toggle-button.cjs.map +0 -1
- package/dist/components/smart-toggle-button.d.cts +0 -16
- package/dist/components/smart-toggle-button.d.ts +0 -16
- package/dist/components/smart-toggle-button.js +0 -23
- package/dist/components/smart-toggle-button.js.map +0 -1
- package/dist/components/solar-forecast-chart.cjs +0 -108
- package/dist/components/solar-forecast-chart.cjs.map +0 -1
- package/dist/components/solar-forecast-chart.d.cts +0 -77
- package/dist/components/solar-forecast-chart.d.ts +0 -77
- package/dist/components/solar-forecast-chart.js +0 -103
- package/dist/components/solar-forecast-chart.js.map +0 -1
- package/dist/number-flow-Bch81ixZ.d.cts +0 -14
- package/dist/number-flow-Bch81ixZ.d.ts +0 -14
- package/dist/utils/build-sankey-nodes.cjs +0 -72
- package/dist/utils/build-sankey-nodes.cjs.map +0 -1
- package/dist/utils/build-sankey-nodes.d.cts +0 -27
- package/dist/utils/build-sankey-nodes.d.ts +0 -27
- package/dist/utils/build-sankey-nodes.js +0 -71
- package/dist/utils/build-sankey-nodes.js.map +0 -1
|
@@ -20,7 +20,7 @@ declare function Attachment({
|
|
|
20
20
|
state?: 'idle' | 'uploading' | 'processing' | 'error' | 'done';
|
|
21
21
|
}): import("react/jsx-runtime").JSX.Element;
|
|
22
22
|
declare const attachmentMediaVariants: (props?: ({
|
|
23
|
-
variant?: "
|
|
23
|
+
variant?: "icon" | "image" | null | undefined;
|
|
24
24
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
25
25
|
declare function AttachmentMedia({
|
|
26
26
|
className,
|
|
@@ -20,7 +20,7 @@ declare function Attachment({
|
|
|
20
20
|
state?: 'idle' | 'uploading' | 'processing' | 'error' | 'done';
|
|
21
21
|
}): import("react/jsx-runtime").JSX.Element;
|
|
22
22
|
declare const attachmentMediaVariants: (props?: ({
|
|
23
|
-
variant?: "
|
|
23
|
+
variant?: "icon" | "image" | null | undefined;
|
|
24
24
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
25
25
|
declare function AttachmentMedia({
|
|
26
26
|
className,
|
|
@@ -31,7 +31,7 @@ const Avatar = react.forwardRef(({ name, src, initials, icon, size = "md", shape
|
|
|
31
31
|
"aria-label": name,
|
|
32
32
|
"data-style": styleVariant,
|
|
33
33
|
"data-accent-color": require_lib_accent_colors.accentByColor[color],
|
|
34
|
-
className: (0, cnfast.cn)("inline-flex shrink-0 items-center justify-center overflow-hidden align-middle font-semibold select-none", sizeClasses[size], shape === "circle" ? "rounded-full" : squareRadiusClasses[size], "bg-(--spark-style-bg,var(--color-base-accent-soft)) text-(--spark-style-fg,var(--
|
|
34
|
+
className: (0, cnfast.cn)("inline-flex shrink-0 items-center justify-center overflow-hidden align-middle font-semibold select-none", sizeClasses[size], shape === "circle" ? "rounded-full" : squareRadiusClasses[size], "bg-(--spark-style-bg,var(--color-base-accent-soft)) text-(--spark-style-fg,var(--color-primary-foreground))", className),
|
|
35
35
|
ref,
|
|
36
36
|
...props,
|
|
37
37
|
children: [src ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_avatar.Avatar.Image, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.cjs","names":["React","AvatarPrimitive","accentByColor"],"sources":["../../src/components/avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from '@base-ui/react/avatar'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\ntype AvatarSize = 'sm' | 'md' | 'lg' | 'xl'\ntype AvatarShape = 'circle' | 'square'\n\ninterface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {\n name: string\n src?: string\n initials?: string\n icon?: React.ReactNode\n size?: AvatarSize\n shape?: AvatarShape\n styleVariant?: SparkStyle\n color?: SparkAccentColor\n imgProps?: Omit<AvatarPrimitive.Image.Props, 'src'>\n}\n\nconst sizeClasses: Record<AvatarSize, string> = {\n sm: 'size-8 text-xs',\n md: 'size-10 text-sm',\n lg: 'size-14 text-lg',\n xl: 'size-20 text-2xl',\n}\n\n// One token lower than the spec's literal sm→lg/md→xl/lg→2xl/xl→2xl mapping:\n// at the default (medium) theme radius factor, rounded-2xl on a 56px `lg` box\n// is a 24px radius (0.86 of the half-width) — reads as a circle, not a square.\nconst squareRadiusClasses: Record<AvatarSize, string> = {\n sm: 'rounded-md',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n xl: 'rounded-2xl',\n}\n\nfunction avatarInitials(name: string): string {\n return name\n .split(' ')\n .map((part) => part.at(0))\n .filter(Boolean)\n .slice(0, 2)\n .join('')\n .toUpperCase()\n}\n\nconst Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n (\n {\n name,\n src,\n initials,\n icon,\n size = 'md',\n shape = 'circle',\n styleVariant = 'soft',\n color = 'accent',\n imgProps,\n className,\n ...props\n },\n ref,\n ) => {\n const resolvedInitials = initials ?? avatarInitials(name)\n\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n role=\"img\"\n aria-label={name}\n data-style={styleVariant}\n data-accent-color={accentByColor[color]}\n className={cn(\n 'inline-flex shrink-0 items-center justify-center overflow-hidden align-middle font-semibold select-none',\n sizeClasses[size],\n shape === 'circle' ? 'rounded-full' : squareRadiusClasses[size],\n 'bg-(--spark-style-bg,var(--color-base-accent-soft)) text-(--spark-style-fg,var(--
|
|
1
|
+
{"version":3,"file":"avatar.cjs","names":["React","AvatarPrimitive","accentByColor"],"sources":["../../src/components/avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from '@base-ui/react/avatar'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\ntype AvatarSize = 'sm' | 'md' | 'lg' | 'xl'\ntype AvatarShape = 'circle' | 'square'\n\ninterface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {\n name: string\n src?: string\n initials?: string\n icon?: React.ReactNode\n size?: AvatarSize\n shape?: AvatarShape\n styleVariant?: SparkStyle\n color?: SparkAccentColor\n imgProps?: Omit<AvatarPrimitive.Image.Props, 'src'>\n}\n\nconst sizeClasses: Record<AvatarSize, string> = {\n sm: 'size-8 text-xs',\n md: 'size-10 text-sm',\n lg: 'size-14 text-lg',\n xl: 'size-20 text-2xl',\n}\n\n// One token lower than the spec's literal sm→lg/md→xl/lg→2xl/xl→2xl mapping:\n// at the default (medium) theme radius factor, rounded-2xl on a 56px `lg` box\n// is a 24px radius (0.86 of the half-width) — reads as a circle, not a square.\nconst squareRadiusClasses: Record<AvatarSize, string> = {\n sm: 'rounded-md',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n xl: 'rounded-2xl',\n}\n\nfunction avatarInitials(name: string): string {\n return name\n .split(' ')\n .map((part) => part.at(0))\n .filter(Boolean)\n .slice(0, 2)\n .join('')\n .toUpperCase()\n}\n\nconst Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n (\n {\n name,\n src,\n initials,\n icon,\n size = 'md',\n shape = 'circle',\n styleVariant = 'soft',\n color = 'accent',\n imgProps,\n className,\n ...props\n },\n ref,\n ) => {\n const resolvedInitials = initials ?? avatarInitials(name)\n\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n role=\"img\"\n aria-label={name}\n data-style={styleVariant}\n data-accent-color={accentByColor[color]}\n className={cn(\n 'inline-flex shrink-0 items-center justify-center overflow-hidden align-middle font-semibold select-none',\n sizeClasses[size],\n shape === 'circle' ? 'rounded-full' : squareRadiusClasses[size],\n 'bg-(--spark-style-bg,var(--color-base-accent-soft)) text-(--spark-style-fg,var(--color-primary-foreground))',\n className,\n )}\n ref={ref}\n {...props}\n >\n {src ? (\n <AvatarPrimitive.Image\n {...imgProps}\n data-slot=\"avatar-image\"\n src={src}\n alt=\"\"\n className=\"size-full object-cover\"\n />\n ) : null}\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n aria-hidden\n className=\"flex size-full items-center justify-center\"\n >\n {resolvedInitials || icon}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n )\n },\n)\n\nAvatar.displayName = 'Avatar'\n\nexport { Avatar, avatarInitials }\nexport type { AvatarProps, AvatarSize, AvatarShape }\n"],"mappings":";;;;;;;;;;AAsBA,MAAM,cAA0C;CAC9C,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAKA,MAAM,sBAAkD;CACtD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,SAAS,eAAe,MAAsB;CAC5C,OAAO,KACJ,MAAM,GAAG,EACT,KAAK,SAAS,KAAK,GAAG,CAAC,CAAC,EACxB,OAAO,OAAO,EACd,MAAM,GAAG,CAAC,EACV,KAAK,EAAE,EACP,YAAY;AACjB;AAEA,MAAM,SAASA,MAAM,YAEjB,EACE,MACA,KACA,UACA,MACA,OAAO,MACP,QAAQ,UACR,eAAe,QACf,QAAQ,UACR,UACA,WACA,GAAG,SAEL,QACG;CACH,MAAM,mBAAmB,YAAY,eAAe,IAAI;CAExD,OACE,iBAAA,GAAA,kBAAA,MAACC,sBAAAA,OAAgB,MAAjB;EACE,aAAU;EACV,MAAK;EACL,cAAY;EACZ,cAAY;EACZ,qBAAmBC,0BAAAA,cAAc;EACjC,YAAA,GAAA,OAAA,IACE,2GACA,YAAY,OACZ,UAAU,WAAW,iBAAiB,oBAAoB,OAC1D,+GACA,SACF;EACK;EACL,GAAI;YAdN,CAgBG,MACC,iBAAA,GAAA,kBAAA,KAACD,sBAAAA,OAAgB,OAAjB;GACE,GAAI;GACJ,aAAU;GACL;GACL,KAAI;GACJ,WAAU;EACX,CAAA,IACC,MACJ,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,UAAjB;GACE,aAAU;GACV,eAAA;GACA,WAAU;aAET,oBAAoB;EACG,CAAA,CACN;;AAE1B,CACF;AAEA,OAAO,cAAc"}
|
|
@@ -28,7 +28,7 @@ const Avatar = React$1.forwardRef(({ name, src, initials, icon, size = "md", sha
|
|
|
28
28
|
"aria-label": name,
|
|
29
29
|
"data-style": styleVariant,
|
|
30
30
|
"data-accent-color": accentByColor[color],
|
|
31
|
-
className: cn("inline-flex shrink-0 items-center justify-center overflow-hidden align-middle font-semibold select-none", sizeClasses[size], shape === "circle" ? "rounded-full" : squareRadiusClasses[size], "bg-(--spark-style-bg,var(--color-base-accent-soft)) text-(--spark-style-fg,var(--
|
|
31
|
+
className: cn("inline-flex shrink-0 items-center justify-center overflow-hidden align-middle font-semibold select-none", sizeClasses[size], shape === "circle" ? "rounded-full" : squareRadiusClasses[size], "bg-(--spark-style-bg,var(--color-base-accent-soft)) text-(--spark-style-fg,var(--color-primary-foreground))", className),
|
|
32
32
|
ref,
|
|
33
33
|
...props,
|
|
34
34
|
children: [src ? /* @__PURE__ */ jsx(Avatar$1.Image, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","names":["React","AvatarPrimitive"],"sources":["../../src/components/avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from '@base-ui/react/avatar'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\ntype AvatarSize = 'sm' | 'md' | 'lg' | 'xl'\ntype AvatarShape = 'circle' | 'square'\n\ninterface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {\n name: string\n src?: string\n initials?: string\n icon?: React.ReactNode\n size?: AvatarSize\n shape?: AvatarShape\n styleVariant?: SparkStyle\n color?: SparkAccentColor\n imgProps?: Omit<AvatarPrimitive.Image.Props, 'src'>\n}\n\nconst sizeClasses: Record<AvatarSize, string> = {\n sm: 'size-8 text-xs',\n md: 'size-10 text-sm',\n lg: 'size-14 text-lg',\n xl: 'size-20 text-2xl',\n}\n\n// One token lower than the spec's literal sm→lg/md→xl/lg→2xl/xl→2xl mapping:\n// at the default (medium) theme radius factor, rounded-2xl on a 56px `lg` box\n// is a 24px radius (0.86 of the half-width) — reads as a circle, not a square.\nconst squareRadiusClasses: Record<AvatarSize, string> = {\n sm: 'rounded-md',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n xl: 'rounded-2xl',\n}\n\nfunction avatarInitials(name: string): string {\n return name\n .split(' ')\n .map((part) => part.at(0))\n .filter(Boolean)\n .slice(0, 2)\n .join('')\n .toUpperCase()\n}\n\nconst Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n (\n {\n name,\n src,\n initials,\n icon,\n size = 'md',\n shape = 'circle',\n styleVariant = 'soft',\n color = 'accent',\n imgProps,\n className,\n ...props\n },\n ref,\n ) => {\n const resolvedInitials = initials ?? avatarInitials(name)\n\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n role=\"img\"\n aria-label={name}\n data-style={styleVariant}\n data-accent-color={accentByColor[color]}\n className={cn(\n 'inline-flex shrink-0 items-center justify-center overflow-hidden align-middle font-semibold select-none',\n sizeClasses[size],\n shape === 'circle' ? 'rounded-full' : squareRadiusClasses[size],\n 'bg-(--spark-style-bg,var(--color-base-accent-soft)) text-(--spark-style-fg,var(--
|
|
1
|
+
{"version":3,"file":"avatar.js","names":["React","AvatarPrimitive"],"sources":["../../src/components/avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from '@base-ui/react/avatar'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\ntype AvatarSize = 'sm' | 'md' | 'lg' | 'xl'\ntype AvatarShape = 'circle' | 'square'\n\ninterface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {\n name: string\n src?: string\n initials?: string\n icon?: React.ReactNode\n size?: AvatarSize\n shape?: AvatarShape\n styleVariant?: SparkStyle\n color?: SparkAccentColor\n imgProps?: Omit<AvatarPrimitive.Image.Props, 'src'>\n}\n\nconst sizeClasses: Record<AvatarSize, string> = {\n sm: 'size-8 text-xs',\n md: 'size-10 text-sm',\n lg: 'size-14 text-lg',\n xl: 'size-20 text-2xl',\n}\n\n// One token lower than the spec's literal sm→lg/md→xl/lg→2xl/xl→2xl mapping:\n// at the default (medium) theme radius factor, rounded-2xl on a 56px `lg` box\n// is a 24px radius (0.86 of the half-width) — reads as a circle, not a square.\nconst squareRadiusClasses: Record<AvatarSize, string> = {\n sm: 'rounded-md',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n xl: 'rounded-2xl',\n}\n\nfunction avatarInitials(name: string): string {\n return name\n .split(' ')\n .map((part) => part.at(0))\n .filter(Boolean)\n .slice(0, 2)\n .join('')\n .toUpperCase()\n}\n\nconst Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n (\n {\n name,\n src,\n initials,\n icon,\n size = 'md',\n shape = 'circle',\n styleVariant = 'soft',\n color = 'accent',\n imgProps,\n className,\n ...props\n },\n ref,\n ) => {\n const resolvedInitials = initials ?? avatarInitials(name)\n\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n role=\"img\"\n aria-label={name}\n data-style={styleVariant}\n data-accent-color={accentByColor[color]}\n className={cn(\n 'inline-flex shrink-0 items-center justify-center overflow-hidden align-middle font-semibold select-none',\n sizeClasses[size],\n shape === 'circle' ? 'rounded-full' : squareRadiusClasses[size],\n 'bg-(--spark-style-bg,var(--color-base-accent-soft)) text-(--spark-style-fg,var(--color-primary-foreground))',\n className,\n )}\n ref={ref}\n {...props}\n >\n {src ? (\n <AvatarPrimitive.Image\n {...imgProps}\n data-slot=\"avatar-image\"\n src={src}\n alt=\"\"\n className=\"size-full object-cover\"\n />\n ) : null}\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n aria-hidden\n className=\"flex size-full items-center justify-center\"\n >\n {resolvedInitials || icon}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n )\n },\n)\n\nAvatar.displayName = 'Avatar'\n\nexport { Avatar, avatarInitials }\nexport type { AvatarProps, AvatarSize, AvatarShape }\n"],"mappings":";;;;;;;AAsBA,MAAM,cAA0C;CAC9C,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAKA,MAAM,sBAAkD;CACtD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,SAAS,eAAe,MAAsB;CAC5C,OAAO,KACJ,MAAM,GAAG,EACT,KAAK,SAAS,KAAK,GAAG,CAAC,CAAC,EACxB,OAAO,OAAO,EACd,MAAM,GAAG,CAAC,EACV,KAAK,EAAE,EACP,YAAY;AACjB;AAEA,MAAM,SAASA,QAAM,YAEjB,EACE,MACA,KACA,UACA,MACA,OAAO,MACP,QAAQ,UACR,eAAe,QACf,QAAQ,UACR,UACA,WACA,GAAG,SAEL,QACG;CACH,MAAM,mBAAmB,YAAY,eAAe,IAAI;CAExD,OACE,qBAACC,SAAgB,MAAjB;EACE,aAAU;EACV,MAAK;EACL,cAAY;EACZ,cAAY;EACZ,qBAAmB,cAAc;EACjC,WAAW,GACT,2GACA,YAAY,OACZ,UAAU,WAAW,iBAAiB,oBAAoB,OAC1D,+GACA,SACF;EACK;EACL,GAAI;YAdN,CAgBG,MACC,oBAACA,SAAgB,OAAjB;GACE,GAAI;GACJ,aAAU;GACL;GACL,KAAI;GACJ,WAAU;EACX,CAAA,IACC,MACJ,oBAACA,SAAgB,UAAjB;GACE,aAAU;GACV,eAAA;GACA,WAAU;aAET,oBAAoB;EACG,CAAA,CACN;;AAE1B,CACF;AAEA,OAAO,cAAc"}
|
|
@@ -12,7 +12,7 @@ const Badge = react.forwardRef(({ className, children, styleVariant, color, ...p
|
|
|
12
12
|
"data-slot": "badge",
|
|
13
13
|
"data-style": styleVariant !== void 0 || color !== void 0 ? styleVariant ?? "soft" : void 0,
|
|
14
14
|
"data-accent-color": color ? require_lib_accent_colors.accentByColor[color] : void 0,
|
|
15
|
-
className: (0, cnfast.cn)("inline-flex h-5 min-w-5 items-center justify-center rounded-md px-1.5 text-center text-xs font-normal tabular-nums [--spark-icon-size:0.75rem]", "border-(length:--spark-style-border-width,1px) border-(--spark-style-border,transparent)", "bg-(--spark-style-bg,var(--
|
|
15
|
+
className: (0, cnfast.cn)("inline-flex h-5 min-w-5 items-center justify-center rounded-md px-1.5 text-center text-xs font-normal tabular-nums [--spark-icon-size:0.75rem]", "border-(length:--spark-style-border-width,1px) border-(--spark-style-border,transparent)", "bg-(--spark-style-bg,var(--color-base-gray-soft)) text-(--spark-style-fg,var(--spark-badge-fg,var(--color-gray-high-contrast)))", className),
|
|
16
16
|
ref,
|
|
17
17
|
...props,
|
|
18
18
|
children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.cjs","names":["React","accentByColor"],"sources":["../../src/components/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\nexport type SparkBadgeColor =\n | 'accent'\n | 'neutral'\n | 'success'\n | 'warning'\n | 'danger'\n\ninterface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n styleVariant?: SparkStyle\n color?: SparkBadgeColor\n children?: React.ReactNode\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, children, styleVariant, color, ...props }, ref) => {\n const hasLook = styleVariant !== undefined || color !== undefined\n return (\n <span\n data-slot=\"badge\"\n data-style={hasLook ? (styleVariant ?? 'soft') : undefined}\n data-accent-color={color ? accentByColor[color] : undefined}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-md px-1.5 text-center text-xs font-normal tabular-nums [--spark-icon-size:0.75rem]',\n 'border-(length:--spark-style-border-width,1px) border-(--spark-style-border,transparent)',\n 'bg-(--spark-style-bg,var(--
|
|
1
|
+
{"version":3,"file":"badge.cjs","names":["React","accentByColor"],"sources":["../../src/components/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\n/** Preferred: `primary` | `neutral` | `success` | `warning` | `error`. `accent` / `danger` stay as aliases. */\nexport type SparkBadgeColor =\n | 'primary'\n | 'accent'\n | 'neutral'\n | 'success'\n | 'warning'\n | 'error'\n | 'danger'\n\ninterface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n styleVariant?: SparkStyle\n color?: SparkBadgeColor\n children?: React.ReactNode\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, children, styleVariant, color, ...props }, ref) => {\n const hasLook = styleVariant !== undefined || color !== undefined\n return (\n <span\n data-slot=\"badge\"\n data-style={hasLook ? (styleVariant ?? 'soft') : undefined}\n data-accent-color={color ? accentByColor[color] : undefined}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-md px-1.5 text-center text-xs font-normal tabular-nums [--spark-icon-size:0.75rem]',\n 'border-(length:--spark-style-border-width,1px) border-(--spark-style-border,transparent)',\n 'bg-(--spark-style-bg,var(--color-base-gray-soft)) text-(--spark-style-fg,var(--spark-badge-fg,var(--color-gray-high-contrast)))',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </span>\n )\n },\n)\n\nBadge.displayName = 'Badge'\n\nexport { Badge }\nexport type { BadgeProps }\n"],"mappings":";;;;;;;;;AAqBA,MAAM,QAAQA,MAAM,YACjB,EAAE,WAAW,UAAU,cAAc,OAAO,GAAG,SAAS,QAAQ;CAE/D,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,aAAU;EACV,cAJY,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAI7B,gBAAgB,SAAU,KAAA;EACjD,qBAAmB,QAAQC,0BAAAA,cAAc,SAAS,KAAA;EAClD,YAAA,GAAA,OAAA,IACE,kJACA,4FACA,mIACA,SACF;EACK;EACL,GAAI;EAEH;CACG,CAAA;AAEV,CACF;AAEA,MAAM,cAAc"}
|
|
@@ -4,7 +4,8 @@ import { f as SparkStyle } from "../theme-types-Bn5E15-P.cjs";
|
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/components/badge.d.ts
|
|
7
|
-
|
|
7
|
+
/** Preferred: `primary` | `neutral` | `success` | `warning` | `error`. `accent` / `danger` stay as aliases. */
|
|
8
|
+
type SparkBadgeColor = 'primary' | 'accent' | 'neutral' | 'success' | 'warning' | 'error' | 'danger';
|
|
8
9
|
interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
9
10
|
styleVariant?: SparkStyle;
|
|
10
11
|
color?: SparkBadgeColor;
|
|
@@ -4,7 +4,8 @@ import { f as SparkStyle } from "../theme-types-Bn5E15-P.js";
|
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/components/badge.d.ts
|
|
7
|
-
|
|
7
|
+
/** Preferred: `primary` | `neutral` | `success` | `warning` | `error`. `accent` / `danger` stay as aliases. */
|
|
8
|
+
type SparkBadgeColor = 'primary' | 'accent' | 'neutral' | 'success' | 'warning' | 'error' | 'danger';
|
|
8
9
|
interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
9
10
|
styleVariant?: SparkStyle;
|
|
10
11
|
color?: SparkBadgeColor;
|
package/dist/components/badge.js
CHANGED
|
@@ -9,7 +9,7 @@ const Badge = React$1.forwardRef(({ className, children, styleVariant, color, ..
|
|
|
9
9
|
"data-slot": "badge",
|
|
10
10
|
"data-style": styleVariant !== void 0 || color !== void 0 ? styleVariant ?? "soft" : void 0,
|
|
11
11
|
"data-accent-color": color ? accentByColor[color] : void 0,
|
|
12
|
-
className: cn("inline-flex h-5 min-w-5 items-center justify-center rounded-md px-1.5 text-center text-xs font-normal tabular-nums [--spark-icon-size:0.75rem]", "border-(length:--spark-style-border-width,1px) border-(--spark-style-border,transparent)", "bg-(--spark-style-bg,var(--
|
|
12
|
+
className: cn("inline-flex h-5 min-w-5 items-center justify-center rounded-md px-1.5 text-center text-xs font-normal tabular-nums [--spark-icon-size:0.75rem]", "border-(length:--spark-style-border-width,1px) border-(--spark-style-border,transparent)", "bg-(--spark-style-bg,var(--color-base-gray-soft)) text-(--spark-style-fg,var(--spark-badge-fg,var(--color-gray-high-contrast)))", className),
|
|
13
13
|
ref,
|
|
14
14
|
...props,
|
|
15
15
|
children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","names":["React"],"sources":["../../src/components/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\nexport type SparkBadgeColor =\n | 'accent'\n | 'neutral'\n | 'success'\n | 'warning'\n | 'danger'\n\ninterface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n styleVariant?: SparkStyle\n color?: SparkBadgeColor\n children?: React.ReactNode\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, children, styleVariant, color, ...props }, ref) => {\n const hasLook = styleVariant !== undefined || color !== undefined\n return (\n <span\n data-slot=\"badge\"\n data-style={hasLook ? (styleVariant ?? 'soft') : undefined}\n data-accent-color={color ? accentByColor[color] : undefined}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-md px-1.5 text-center text-xs font-normal tabular-nums [--spark-icon-size:0.75rem]',\n 'border-(length:--spark-style-border-width,1px) border-(--spark-style-border,transparent)',\n 'bg-(--spark-style-bg,var(--
|
|
1
|
+
{"version":3,"file":"badge.js","names":["React"],"sources":["../../src/components/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\n/** Preferred: `primary` | `neutral` | `success` | `warning` | `error`. `accent` / `danger` stay as aliases. */\nexport type SparkBadgeColor =\n | 'primary'\n | 'accent'\n | 'neutral'\n | 'success'\n | 'warning'\n | 'error'\n | 'danger'\n\ninterface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n styleVariant?: SparkStyle\n color?: SparkBadgeColor\n children?: React.ReactNode\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, children, styleVariant, color, ...props }, ref) => {\n const hasLook = styleVariant !== undefined || color !== undefined\n return (\n <span\n data-slot=\"badge\"\n data-style={hasLook ? (styleVariant ?? 'soft') : undefined}\n data-accent-color={color ? accentByColor[color] : undefined}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-md px-1.5 text-center text-xs font-normal tabular-nums [--spark-icon-size:0.75rem]',\n 'border-(length:--spark-style-border-width,1px) border-(--spark-style-border,transparent)',\n 'bg-(--spark-style-bg,var(--color-base-gray-soft)) text-(--spark-style-fg,var(--spark-badge-fg,var(--color-gray-high-contrast)))',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </span>\n )\n },\n)\n\nBadge.displayName = 'Badge'\n\nexport { Badge }\nexport type { BadgeProps }\n"],"mappings":";;;;;;AAqBA,MAAM,QAAQA,QAAM,YACjB,EAAE,WAAW,UAAU,cAAc,OAAO,GAAG,SAAS,QAAQ;CAE/D,OACE,oBAAC,QAAD;EACE,aAAU;EACV,cAJY,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAI7B,gBAAgB,SAAU,KAAA;EACjD,qBAAmB,QAAQ,cAAc,SAAS,KAAA;EAClD,WAAW,GACT,kJACA,4FACA,mIACA,SACF;EACK;EACL,GAAI;EAEH;CACG,CAAA;AAEV,CACF;AAEA,MAAM,cAAc"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const require_components_bar_chart = require("./bar-chart.cjs");
|
|
4
4
|
const require_components_number_flow = require("./number-flow.cjs");
|
|
5
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
-
//#region src/components/
|
|
7
|
-
function
|
|
6
|
+
//#region src/components/bar-chart-with-total.tsx
|
|
7
|
+
function BarChartWithTotal({ totalSuffix, totalFormat, className, ...rest }) {
|
|
8
8
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_bar_chart.BarChart, {
|
|
9
9
|
...rest,
|
|
10
10
|
className,
|
|
@@ -18,6 +18,6 @@ function EnergyBarChart({ totalSuffix, totalFormat, className, ...rest }) {
|
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
//#endregion
|
|
21
|
-
exports.
|
|
21
|
+
exports.BarChartWithTotal = BarChartWithTotal;
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=bar-chart-with-total.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-chart-with-total.cjs","names":["BarChart","NumberFlow"],"sources":["../../src/components/bar-chart-with-total.tsx"],"sourcesContent":["import {\n BarChart,\n type BarChartCategory,\n type BarChartLineSeries,\n type BarChartProps,\n type BarChartSeries,\n} from './bar-chart'\nimport NumberFlow, { type Format } from './number-flow'\n\nexport type { BarChartCategory, BarChartLineSeries, BarChartSeries }\n\ntype BarChartWithTotalProps<TDatum> = Omit<\n BarChartProps<TDatum>,\n 'renderTotal' | 'formatTotal'\n> & {\n totalSuffix?: string\n totalFormat?: Format\n}\n\nexport function BarChartWithTotal<TDatum>({\n totalSuffix,\n totalFormat,\n className,\n ...rest\n}: BarChartWithTotalProps<TDatum>): React.ReactElement {\n return (\n <BarChart<TDatum>\n {...rest}\n className={className}\n renderTotal={(value, animated) => (\n <NumberFlow\n value={value}\n animated={animated}\n {...(totalSuffix !== undefined && { suffix: totalSuffix })}\n {...(totalFormat !== undefined && { format: totalFormat })}\n className=\"text-base font-bold text-gray tabular-nums\"\n />\n )}\n />\n )\n}\n"],"mappings":";;;;;;AAmBA,SAAgB,kBAA0B,EACxC,aACA,aACA,WACA,GAAG,QACkD;CACrD,OACE,iBAAA,GAAA,kBAAA,KAACA,6BAAAA,UAAD;EACE,GAAI;EACO;EACX,cAAc,OAAO,aACnB,iBAAA,GAAA,kBAAA,KAACC,gCAAD;GACS;GACG;GACV,GAAK,gBAAgB,KAAA,KAAa,EAAE,QAAQ,YAAY;GACxD,GAAK,gBAAgB,KAAA,KAAa,EAAE,QAAQ,YAAY;GACxD,WAAU;EACX,CAAA;CAEJ,CAAA;AAEL"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { BarChartCategory, BarChartLineSeries, BarChartProps, BarChartSeries } from "./bar-chart.cjs";
|
|
4
|
+
import { Format } from "./number-flow.cjs";
|
|
5
|
+
|
|
6
|
+
//#region src/components/bar-chart-with-total.d.ts
|
|
7
|
+
type BarChartWithTotalProps<TDatum> = Omit<BarChartProps<TDatum>, 'renderTotal' | 'formatTotal'> & {
|
|
8
|
+
totalSuffix?: string;
|
|
9
|
+
totalFormat?: Format;
|
|
10
|
+
};
|
|
11
|
+
declare function BarChartWithTotal<TDatum>({
|
|
12
|
+
totalSuffix,
|
|
13
|
+
totalFormat,
|
|
14
|
+
className,
|
|
15
|
+
...rest
|
|
16
|
+
}: BarChartWithTotalProps<TDatum>): React.ReactElement;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { type BarChartCategory, type BarChartLineSeries, type BarChartSeries, BarChartWithTotal };
|
|
19
|
+
//# sourceMappingURL=bar-chart-with-total.d.cts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { BarChartCategory, BarChartLineSeries, BarChartProps, BarChartSeries } from "./bar-chart.js";
|
|
4
|
+
import { Format } from "./number-flow.js";
|
|
5
|
+
|
|
6
|
+
//#region src/components/bar-chart-with-total.d.ts
|
|
7
|
+
type BarChartWithTotalProps<TDatum> = Omit<BarChartProps<TDatum>, 'renderTotal' | 'formatTotal'> & {
|
|
8
|
+
totalSuffix?: string;
|
|
9
|
+
totalFormat?: Format;
|
|
10
|
+
};
|
|
11
|
+
declare function BarChartWithTotal<TDatum>({
|
|
12
|
+
totalSuffix,
|
|
13
|
+
totalFormat,
|
|
14
|
+
className,
|
|
15
|
+
...rest
|
|
16
|
+
}: BarChartWithTotalProps<TDatum>): React.ReactElement;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { type BarChartCategory, type BarChartLineSeries, type BarChartSeries, BarChartWithTotal };
|
|
19
|
+
//# sourceMappingURL=bar-chart-with-total.d.ts.map
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { BarChart } from "./bar-chart.js";
|
|
3
3
|
import NumberFlow from "./number-flow.js";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
//#region src/components/
|
|
6
|
-
function
|
|
5
|
+
//#region src/components/bar-chart-with-total.tsx
|
|
6
|
+
function BarChartWithTotal({ totalSuffix, totalFormat, className, ...rest }) {
|
|
7
7
|
return /* @__PURE__ */ jsx(BarChart, {
|
|
8
8
|
...rest,
|
|
9
9
|
className,
|
|
@@ -17,6 +17,6 @@ function EnergyBarChart({ totalSuffix, totalFormat, className, ...rest }) {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
//#endregion
|
|
20
|
-
export {
|
|
20
|
+
export { BarChartWithTotal };
|
|
21
21
|
|
|
22
|
-
//# sourceMappingURL=
|
|
22
|
+
//# sourceMappingURL=bar-chart-with-total.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-chart-with-total.js","names":[],"sources":["../../src/components/bar-chart-with-total.tsx"],"sourcesContent":["import {\n BarChart,\n type BarChartCategory,\n type BarChartLineSeries,\n type BarChartProps,\n type BarChartSeries,\n} from './bar-chart'\nimport NumberFlow, { type Format } from './number-flow'\n\nexport type { BarChartCategory, BarChartLineSeries, BarChartSeries }\n\ntype BarChartWithTotalProps<TDatum> = Omit<\n BarChartProps<TDatum>,\n 'renderTotal' | 'formatTotal'\n> & {\n totalSuffix?: string\n totalFormat?: Format\n}\n\nexport function BarChartWithTotal<TDatum>({\n totalSuffix,\n totalFormat,\n className,\n ...rest\n}: BarChartWithTotalProps<TDatum>): React.ReactElement {\n return (\n <BarChart<TDatum>\n {...rest}\n className={className}\n renderTotal={(value, animated) => (\n <NumberFlow\n value={value}\n animated={animated}\n {...(totalSuffix !== undefined && { suffix: totalSuffix })}\n {...(totalFormat !== undefined && { format: totalFormat })}\n className=\"text-base font-bold text-gray tabular-nums\"\n />\n )}\n />\n )\n}\n"],"mappings":";;;;;AAmBA,SAAgB,kBAA0B,EACxC,aACA,aACA,WACA,GAAG,QACkD;CACrD,OACE,oBAAC,UAAD;EACE,GAAI;EACO;EACX,cAAc,OAAO,aACnB,oBAAC,YAAD;GACS;GACG;GACV,GAAK,gBAAgB,KAAA,KAAa,EAAE,QAAQ,YAAY;GACxD,GAAK,gBAAgB,KAAA,KAAa,EAAE,QAAQ,YAAY;GACxD,WAAU;EACX,CAAA;CAEJ,CAAA;AAEL"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const require_hooks_use_reduced_motion = require("../hooks/use-reduced-motion.cjs");
|
|
4
3
|
const require_utils_format = require("../utils/format.cjs");
|
|
5
4
|
const require_utils_chart_scale = require("../utils/chart-scale.cjs");
|
|
5
|
+
const require_hooks_use_reduced_motion = require("../hooks/use-reduced-motion.cjs");
|
|
6
6
|
const require_components_chart = require("./chart.cjs");
|
|
7
7
|
const require_components_series_legend = require("./series-legend.cjs");
|
|
8
8
|
const require_components_typography = require("./typography.cjs");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn } from "../utils/cn.js";
|
|
3
|
-
import { useReducedMotion } from "../hooks/use-reduced-motion.js";
|
|
4
2
|
import { localeNumberFormat } from "../utils/format.js";
|
|
5
3
|
import { buildYAxisScale, formatYAxisTick, measureYAxisGutter } from "../utils/chart-scale.js";
|
|
4
|
+
import { cn } from "../utils/cn.js";
|
|
5
|
+
import { useReducedMotion } from "../hooks/use-reduced-motion.js";
|
|
6
6
|
import { ChartTooltipCard, clampTooltipPosition, useMeasuredSize } from "./chart.js";
|
|
7
7
|
import { SeriesLegend } from "./series-legend.js";
|
|
8
8
|
import { SectionTitle } from "./typography.js";
|
|
@@ -10,7 +10,7 @@ declare function BubbleGroup({
|
|
|
10
10
|
...props
|
|
11
11
|
}: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
declare const bubbleVariants: (props?: ({
|
|
13
|
-
variant?: "
|
|
13
|
+
variant?: "secondary" | "destructive" | "default" | "ghost" | "outline" | "muted" | "tinted" | null | undefined;
|
|
14
14
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
15
15
|
declare function Bubble({
|
|
16
16
|
variant,
|
|
@@ -10,7 +10,7 @@ declare function BubbleGroup({
|
|
|
10
10
|
...props
|
|
11
11
|
}: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
declare const bubbleVariants: (props?: ({
|
|
13
|
-
variant?: "
|
|
13
|
+
variant?: "secondary" | "destructive" | "default" | "ghost" | "outline" | "muted" | "tinted" | null | undefined;
|
|
14
14
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
15
15
|
declare function Bubble({
|
|
16
16
|
variant,
|
|
@@ -9,7 +9,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
9
9
|
let _base_ui_react_button = require("@base-ui/react/button");
|
|
10
10
|
let cnfast = require("cnfast");
|
|
11
11
|
//#region src/components/button-group.tsx
|
|
12
|
-
const buttonGroupRecipe = "bg-(--spark-style-bg,var(--
|
|
12
|
+
const buttonGroupRecipe = "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]";
|
|
13
13
|
function buttonGroupSizeClasses(size) {
|
|
14
14
|
return size === "small" ? "h-9 text-sm [&_svg:not([class*=size-])]:size-4" : "h-10 text-base [&_svg:not([class*=size-])]:size-5";
|
|
15
15
|
}
|
|
@@ -36,7 +36,7 @@ const ButtonGroupButton = react.forwardRef(function ButtonGroupButton({ classNam
|
|
|
36
36
|
"data-slot": "button-group-button",
|
|
37
37
|
nativeButton: nativeButton ?? render === void 0,
|
|
38
38
|
render,
|
|
39
|
-
className: (0, cnfast.cn)("inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap", "transition-colors hover:bg-(--spark-style-bg-hover,var(--
|
|
39
|
+
className: (0, cnfast.cn)("inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap", "transition-colors hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) motion-reduce:transition-none", "focus-visible:inset-ring-2 focus-visible:outline-hidden", "disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50", "[&_svg]:pointer-events-none [&_svg]:shrink-0", className),
|
|
40
40
|
ref,
|
|
41
41
|
...props
|
|
42
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-group.cjs","names":["React","accentByColor","ButtonPrimitive"],"sources":["../../src/components/button-group.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\n// Button's chrome recipe (`buttonRecipe` in button.tsx), minus its `hover:`\n// half -- hover belongs on segments, not the shared group chrome. Shared with\n// button-group-pill.tsx.\nexport const buttonGroupRecipe =\n 'bg-(--spark-style-bg,var(--
|
|
1
|
+
{"version":3,"file":"button-group.cjs","names":["React","accentByColor","ButtonPrimitive"],"sources":["../../src/components/button-group.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\n// Button's chrome recipe (`buttonRecipe` in button.tsx), minus its `hover:`\n// half -- hover belongs on segments, not the shared group chrome. Shared with\n// button-group-pill.tsx.\nexport const buttonGroupRecipe =\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]'\n\nexport function buttonGroupSizeClasses(size: 'small' | 'default') {\n return size === 'small'\n ? 'h-9 text-sm [&_svg:not([class*=size-])]:size-4'\n : 'h-10 text-base [&_svg:not([class*=size-])]:size-5'\n}\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n styleVariant?: SparkStyle\n color?: SparkAccentColor\n size?: 'small' | 'default'\n}\n\n/**\n * A layout group, not a toolbar: segments are independent tab stops in DOM\n * order (no roving tabindex). Pass `aria-label` when segments don't\n * self-describe (e.g. icon-only segments). For a fully-rounded status pill,\n * use `ButtonGroupPill` instead.\n */\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n function ButtonGroup(\n {\n className,\n styleVariant = 'soft',\n color = 'neutral',\n size = 'default',\n ...props\n },\n ref,\n ) {\n return (\n <div\n data-slot=\"button-group\"\n role=\"group\"\n data-style={styleVariant}\n data-accent-color={accentByColor[color]}\n className={cn(\n 'isolate inline-flex items-stretch overflow-hidden rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]',\n buttonGroupSizeClasses(size),\n buttonGroupRecipe,\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\n\nButtonGroup.displayName = 'ButtonGroup'\n\ninterface ButtonGroupButtonProps extends Omit<\n React.ComponentProps<typeof ButtonPrimitive>,\n 'ref'\n> {}\n\nconst ButtonGroupButton = React.forwardRef<\n HTMLButtonElement,\n ButtonGroupButtonProps\n>(function ButtonGroupButton(\n { className, render, nativeButton, ...props },\n ref,\n) {\n return (\n <ButtonPrimitive\n data-slot=\"button-group-button\"\n nativeButton={nativeButton ?? render === undefined}\n render={render}\n className={cn(\n 'inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap',\n 'transition-colors hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) motion-reduce:transition-none',\n 'focus-visible:inset-ring-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupButton.displayName = 'ButtonGroupButton'\n\nconst ButtonGroupText = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(function ButtonGroupText({ className, ...props }, ref) {\n return (\n <span\n data-slot=\"button-group-text\"\n className={cn(\n 'inline-flex items-center gap-2 px-3 font-medium whitespace-nowrap select-none',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupText.displayName = 'ButtonGroupText'\n\nconst ButtonGroupSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function ButtonGroupSeparator({ className, ...props }, ref) {\n return (\n <div\n data-slot=\"button-group-separator\"\n aria-hidden=\"true\"\n className={cn(\n 'h-4 w-px shrink-0 self-center bg-current opacity-25',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupSeparator.displayName = 'ButtonGroupSeparator'\n\nexport { ButtonGroup, ButtonGroupButton, ButtonGroupSeparator, ButtonGroupText }\nexport type { ButtonGroupProps, ButtonGroupButtonProps }\n"],"mappings":";;;;;;;;;;;AAYA,MAAa,oBACX;AAEF,SAAgB,uBAAuB,MAA2B;CAChE,OAAO,SAAS,UACZ,mDACA;AACN;;;;;;;AAcA,MAAM,cAAcA,MAAM,WACxB,SAAS,YACP,EACE,WACA,eAAe,QACf,QAAQ,WACR,OAAO,WACP,GAAG,SAEL,KACA;CACA,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,cAAY;EACZ,qBAAmBC,0BAAAA,cAAc;EACjC,YAAA,GAAA,OAAA,IACE,sHACA,uBAAuB,IAAI,GAC3B,mBACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CACF;AAEA,YAAY,cAAc;AAO1B,MAAM,oBAAoBD,MAAM,WAG9B,SAAS,kBACT,EAAE,WAAW,QAAQ,cAAc,GAAG,SACtC,KACA;CACA,OACE,iBAAA,GAAA,kBAAA,KAACE,sBAAAA,QAAD;EACE,aAAU;EACV,cAAc,gBAAgB,WAAW,KAAA;EACjC;EACR,YAAA,GAAA,OAAA,IACE,oFACA,gHACA,2DACA,+GACA,gDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,kBAAkB,cAAc;AAEhC,MAAM,kBAAkBF,MAAM,WAG5B,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAS,KAAK;CACvD,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IACE,iFACA,gDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,gBAAgB,cAAc;AAE9B,MAAM,uBAAuBA,MAAM,WAGjC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,eAAY;EACZ,YAAA,GAAA,OAAA,IACE,uDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,qBAAqB,cAAc"}
|
|
@@ -6,7 +6,7 @@ import * as React$1 from "react";
|
|
|
6
6
|
import { Button } from "@base-ui/react/button";
|
|
7
7
|
|
|
8
8
|
//#region src/components/button-group.d.ts
|
|
9
|
-
declare const buttonGroupRecipe = "bg-(--spark-style-bg,var(--
|
|
9
|
+
declare const buttonGroupRecipe = "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]";
|
|
10
10
|
declare function buttonGroupSizeClasses(size: 'small' | 'default'): "h-9 text-sm [&_svg:not([class*=size-])]:size-4" | "h-10 text-base [&_svg:not([class*=size-])]:size-5";
|
|
11
11
|
interface ButtonGroupProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
12
12
|
styleVariant?: SparkStyle;
|
|
@@ -6,7 +6,7 @@ import * as React$1 from "react";
|
|
|
6
6
|
import { Button } from "@base-ui/react/button";
|
|
7
7
|
|
|
8
8
|
//#region src/components/button-group.d.ts
|
|
9
|
-
declare const buttonGroupRecipe = "bg-(--spark-style-bg,var(--
|
|
9
|
+
declare const buttonGroupRecipe = "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]";
|
|
10
10
|
declare function buttonGroupSizeClasses(size: 'small' | 'default'): "h-9 text-sm [&_svg:not([class*=size-])]:size-4" | "h-10 text-base [&_svg:not([class*=size-])]:size-5";
|
|
11
11
|
interface ButtonGroupProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
12
12
|
styleVariant?: SparkStyle;
|
|
@@ -6,7 +6,7 @@ import * as React$1 from "react";
|
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
import { Button } from "@base-ui/react/button";
|
|
8
8
|
//#region src/components/button-group.tsx
|
|
9
|
-
const buttonGroupRecipe = "bg-(--spark-style-bg,var(--
|
|
9
|
+
const buttonGroupRecipe = "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]";
|
|
10
10
|
function buttonGroupSizeClasses(size) {
|
|
11
11
|
return size === "small" ? "h-9 text-sm [&_svg:not([class*=size-])]:size-4" : "h-10 text-base [&_svg:not([class*=size-])]:size-5";
|
|
12
12
|
}
|
|
@@ -33,7 +33,7 @@ const ButtonGroupButton = React$1.forwardRef(function ButtonGroupButton({ classN
|
|
|
33
33
|
"data-slot": "button-group-button",
|
|
34
34
|
nativeButton: nativeButton ?? render === void 0,
|
|
35
35
|
render,
|
|
36
|
-
className: cn("inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap", "transition-colors hover:bg-(--spark-style-bg-hover,var(--
|
|
36
|
+
className: cn("inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap", "transition-colors hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) motion-reduce:transition-none", "focus-visible:inset-ring-2 focus-visible:outline-hidden", "disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50", "[&_svg]:pointer-events-none [&_svg]:shrink-0", className),
|
|
37
37
|
ref,
|
|
38
38
|
...props
|
|
39
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-group.js","names":["React","ButtonPrimitive"],"sources":["../../src/components/button-group.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\n// Button's chrome recipe (`buttonRecipe` in button.tsx), minus its `hover:`\n// half -- hover belongs on segments, not the shared group chrome. Shared with\n// button-group-pill.tsx.\nexport const buttonGroupRecipe =\n 'bg-(--spark-style-bg,var(--
|
|
1
|
+
{"version":3,"file":"button-group.js","names":["React","ButtonPrimitive"],"sources":["../../src/components/button-group.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkAccentColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\n// Button's chrome recipe (`buttonRecipe` in button.tsx), minus its `hover:`\n// half -- hover belongs on segments, not the shared group chrome. Shared with\n// button-group-pill.tsx.\nexport const buttonGroupRecipe =\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]'\n\nexport function buttonGroupSizeClasses(size: 'small' | 'default') {\n return size === 'small'\n ? 'h-9 text-sm [&_svg:not([class*=size-])]:size-4'\n : 'h-10 text-base [&_svg:not([class*=size-])]:size-5'\n}\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n styleVariant?: SparkStyle\n color?: SparkAccentColor\n size?: 'small' | 'default'\n}\n\n/**\n * A layout group, not a toolbar: segments are independent tab stops in DOM\n * order (no roving tabindex). Pass `aria-label` when segments don't\n * self-describe (e.g. icon-only segments). For a fully-rounded status pill,\n * use `ButtonGroupPill` instead.\n */\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n function ButtonGroup(\n {\n className,\n styleVariant = 'soft',\n color = 'neutral',\n size = 'default',\n ...props\n },\n ref,\n ) {\n return (\n <div\n data-slot=\"button-group\"\n role=\"group\"\n data-style={styleVariant}\n data-accent-color={accentByColor[color]}\n className={cn(\n 'isolate inline-flex items-stretch overflow-hidden rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]',\n buttonGroupSizeClasses(size),\n buttonGroupRecipe,\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n },\n)\n\nButtonGroup.displayName = 'ButtonGroup'\n\ninterface ButtonGroupButtonProps extends Omit<\n React.ComponentProps<typeof ButtonPrimitive>,\n 'ref'\n> {}\n\nconst ButtonGroupButton = React.forwardRef<\n HTMLButtonElement,\n ButtonGroupButtonProps\n>(function ButtonGroupButton(\n { className, render, nativeButton, ...props },\n ref,\n) {\n return (\n <ButtonPrimitive\n data-slot=\"button-group-button\"\n nativeButton={nativeButton ?? render === undefined}\n render={render}\n className={cn(\n 'inline-flex cursor-pointer items-center gap-2 px-3 font-medium whitespace-nowrap',\n 'transition-colors hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) motion-reduce:transition-none',\n 'focus-visible:inset-ring-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupButton.displayName = 'ButtonGroupButton'\n\nconst ButtonGroupText = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(function ButtonGroupText({ className, ...props }, ref) {\n return (\n <span\n data-slot=\"button-group-text\"\n className={cn(\n 'inline-flex items-center gap-2 px-3 font-medium whitespace-nowrap select-none',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupText.displayName = 'ButtonGroupText'\n\nconst ButtonGroupSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(function ButtonGroupSeparator({ className, ...props }, ref) {\n return (\n <div\n data-slot=\"button-group-separator\"\n aria-hidden=\"true\"\n className={cn(\n 'h-4 w-px shrink-0 self-center bg-current opacity-25',\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n})\n\nButtonGroupSeparator.displayName = 'ButtonGroupSeparator'\n\nexport { ButtonGroup, ButtonGroupButton, ButtonGroupSeparator, ButtonGroupText }\nexport type { ButtonGroupProps, ButtonGroupButtonProps }\n"],"mappings":";;;;;;;;AAYA,MAAa,oBACX;AAEF,SAAgB,uBAAuB,MAA2B;CAChE,OAAO,SAAS,UACZ,mDACA;AACN;;;;;;;AAcA,MAAM,cAAcA,QAAM,WACxB,SAAS,YACP,EACE,WACA,eAAe,QACf,QAAQ,WACR,OAAO,WACP,GAAG,SAEL,KACA;CACA,OACE,oBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,cAAY;EACZ,qBAAmB,cAAc;EACjC,WAAW,GACT,sHACA,uBAAuB,IAAI,GAC3B,mBACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CACF;AAEA,YAAY,cAAc;AAO1B,MAAM,oBAAoBA,QAAM,WAG9B,SAAS,kBACT,EAAE,WAAW,QAAQ,cAAc,GAAG,SACtC,KACA;CACA,OACE,oBAACC,QAAD;EACE,aAAU;EACV,cAAc,gBAAgB,WAAW,KAAA;EACjC;EACR,WAAW,GACT,oFACA,gHACA,2DACA,+GACA,gDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,kBAAkB,cAAc;AAEhC,MAAM,kBAAkBD,QAAM,WAG5B,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAS,KAAK;CACvD,OACE,oBAAC,QAAD;EACE,aAAU;EACV,WAAW,GACT,iFACA,gDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,gBAAgB,cAAc;AAE9B,MAAM,uBAAuBA,QAAM,WAGjC,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAS,KAAK;CAC5D,OACE,oBAAC,OAAD;EACE,aAAU;EACV,eAAY;EACZ,WAAW,GACT,uDACA,SACF;EACK;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,qBAAqB,cAAc"}
|
|
@@ -13,16 +13,18 @@ let cnfast = require("cnfast");
|
|
|
13
13
|
const buttonVariants = (0, class_variance_authority.cva)("group/button touch-target inline-flex cursor-pointer items-center justify-center gap-2 rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))] text-base font-medium whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
14
14
|
variants: {
|
|
15
15
|
variant: {
|
|
16
|
-
primary: "bg-(--spark-style-bg,var(--
|
|
16
|
+
primary: "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))",
|
|
17
17
|
secondary: "bg-gray-2 text-gray-a11 shadow-[inset_0_0_0_1px_var(--neutral-a7)] hover:bg-gray-a3",
|
|
18
18
|
tertiary: "bg-transparent text-gray-a11 hover:bg-gray-a3",
|
|
19
19
|
bare: "rounded-none! text-gray-12 outline-hidden!",
|
|
20
|
-
destructive: "bg-
|
|
20
|
+
destructive: "bg-destructive-soft text-destructive-soft-foreground hover:bg-destructive-soft-hover focus-visible:ring-destructive"
|
|
21
21
|
},
|
|
22
22
|
color: {
|
|
23
23
|
accent: "",
|
|
24
|
+
primary: "",
|
|
24
25
|
neutral: "",
|
|
25
|
-
danger: "focus-visible:ring-
|
|
26
|
+
danger: "focus-visible:ring-destructive",
|
|
27
|
+
destructive: "focus-visible:ring-destructive"
|
|
26
28
|
},
|
|
27
29
|
size: {
|
|
28
30
|
small: "h-9 px-3 text-sm [--spark-icon-size:16px] [&_svg:not([class*=size-])]:size-4",
|
|
@@ -35,7 +37,7 @@ const buttonVariants = (0, class_variance_authority.cva)("group/button touch-tar
|
|
|
35
37
|
},
|
|
36
38
|
defaultVariants: { size: "default" }
|
|
37
39
|
});
|
|
38
|
-
const buttonRecipe = "bg-(--spark-style-bg,var(--
|
|
40
|
+
const buttonRecipe = "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]";
|
|
39
41
|
const Button = react.forwardRef(function Button({ className, styleVariant, color, size, render, nativeButton, variant: _variant, ...props }, ref) {
|
|
40
42
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_button.Button, {
|
|
41
43
|
"data-style": styleVariant !== void 0 || color !== void 0 ? styleVariant ?? "solid" : void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.cjs","names":["React","ButtonPrimitive","accentByColor"],"sources":["../../src/components/button.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\nconst buttonVariants = cva(\n 'group/button touch-target inline-flex cursor-pointer items-center justify-center gap-2 rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))] text-base font-medium whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary:\n 'bg-(--spark-style-bg,var(--
|
|
1
|
+
{"version":3,"file":"button.cjs","names":["React","ButtonPrimitive","accentByColor"],"sources":["../../src/components/button.tsx"],"sourcesContent":["'use client'\n\nimport { Button as ButtonPrimitive } from '@base-ui/react/button'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { cn } from '../utils/cn'\n\nconst buttonVariants = cva(\n 'group/button touch-target inline-flex cursor-pointer items-center justify-center gap-2 rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))] text-base font-medium whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary:\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))',\n secondary:\n 'bg-gray-2 text-gray-a11 shadow-[inset_0_0_0_1px_var(--neutral-a7)] hover:bg-gray-a3',\n tertiary: 'bg-transparent text-gray-a11 hover:bg-gray-a3',\n bare: 'rounded-none! text-gray-12 outline-hidden!',\n destructive:\n 'bg-destructive-soft text-destructive-soft-foreground hover:bg-destructive-soft-hover focus-visible:ring-destructive',\n },\n color: {\n accent: '',\n primary: '',\n neutral: '',\n danger: 'focus-visible:ring-destructive',\n destructive: 'focus-visible:ring-destructive',\n },\n size: {\n small:\n 'h-9 px-3 text-sm [--spark-icon-size:16px] [&_svg:not([class*=size-])]:size-4',\n default:\n 'h-10 px-3 [--spark-icon-size:20px] [&_svg:not([class*=size-])]:size-5',\n medium:\n 'h-11 px-4 [--spark-icon-size:24px] [&_svg:not([class*=size-])]:size-6',\n 'icon-small':\n 'size-9 [--spark-icon-size:16px] [&_svg:not([class*=size-])]:size-4',\n icon: 'size-10 [--spark-icon-size:20px] [&_svg:not([class*=size-])]:size-5',\n 'icon-medium':\n 'size-11 [--spark-icon-size:24px] [&_svg:not([class*=size-])]:size-6',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n)\n\nconst buttonRecipe =\n 'bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]'\n\n/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */\nexport type SparkButtonColor =\n | 'primary'\n | 'accent'\n | 'neutral'\n | 'destructive'\n | 'danger'\n\nexport interface ButtonProps\n extends\n Omit<React.ComponentProps<typeof ButtonPrimitive>, 'ref'>,\n Omit<VariantProps<typeof buttonVariants>, 'variant' | 'color'> {\n styleVariant?: SparkStyle\n color?: SparkButtonColor\n /**\n * @deprecated Not a `<Button>` prop and silently ignored -- use `styleVariant`\n * (`solid | soft | surface | ghost | outline`) and `color`\n * (`primary | neutral | destructive`) instead. The `variant` axis on\n * `buttonVariants` exists only for class-string callers.\n */\n variant?: never\n}\n\n// forwardRef keeps refs working for React 18 consumers (ref-as-prop is 19-only)\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n className,\n styleVariant,\n color,\n size,\n render,\n nativeButton,\n variant: _variant,\n ...props\n },\n ref,\n) {\n const hasLook = styleVariant !== undefined || color !== undefined\n const dataStyle = hasLook ? (styleVariant ?? 'solid') : undefined\n const dataAccentColor = color ? accentByColor[color] : undefined\n\n return (\n <ButtonPrimitive\n data-style={dataStyle}\n data-accent-color={dataAccentColor}\n nativeButton={nativeButton ?? render === undefined}\n render={render}\n className={cn(buttonVariants({ size, color }), buttonRecipe, className)}\n ref={ref}\n {...props}\n />\n )\n})\n\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n"],"mappings":";;;;;;;;;;;;AASA,MAAM,kBAAA,GAAA,yBAAA,KACJ,0dACA;CACE,UAAU;EACR,SAAS;GACP,SACE;GACF,WACE;GACF,UAAU;GACV,MAAM;GACN,aACE;EACJ;EACA,OAAO;GACL,QAAQ;GACR,SAAS;GACT,SAAS;GACT,QAAQ;GACR,aAAa;EACf;EACA,MAAM;GACJ,OACE;GACF,SACE;GACF,QACE;GACF,cACE;GACF,MAAM;GACN,eACE;EACJ;CACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CACF;AAEA,MAAM,eACJ;AA0BF,MAAM,SAASA,MAAM,WAA2C,SAAS,OACvE,EACE,WACA,cACA,OACA,MACA,QACA,cACA,SAAS,UACT,GAAG,SAEL,KACA;CAKA,OACE,iBAAA,GAAA,kBAAA,KAACC,sBAAAA,QAAD;EACE,cANY,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAC3B,gBAAgB,UAAW,KAAA;EAMpD,qBALoB,QAAQC,0BAAAA,cAAc,SAAS,KAAA;EAMnD,cAAc,gBAAgB,WAAW,KAAA;EACjC;EACR,YAAA,GAAA,OAAA,IAAc,eAAe;GAAE;GAAM;EAAM,CAAC,GAAG,cAAc,SAAS;EACjE;EACL,GAAI;CACL,CAAA;AAEL,CAAC;AAED,OAAO,cAAc"}
|
|
@@ -7,18 +7,19 @@ import { VariantProps } from "class-variance-authority";
|
|
|
7
7
|
|
|
8
8
|
//#region src/components/button.d.ts
|
|
9
9
|
declare const buttonVariants: (props?: ({
|
|
10
|
-
variant?: "
|
|
11
|
-
color?: "
|
|
12
|
-
size?: "small" | "
|
|
10
|
+
variant?: "primary" | "secondary" | "tertiary" | "bare" | "destructive" | null | undefined;
|
|
11
|
+
color?: "primary" | "destructive" | "accent" | "neutral" | "danger" | null | undefined;
|
|
12
|
+
size?: "small" | "default" | "medium" | "icon-small" | "icon" | "icon-medium" | null | undefined;
|
|
13
13
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
|
-
|
|
14
|
+
/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */
|
|
15
|
+
type SparkButtonColor = 'primary' | 'accent' | 'neutral' | 'destructive' | 'danger';
|
|
15
16
|
interface ButtonProps extends Omit<React$1.ComponentProps<typeof Button$1>, 'ref'>, Omit<VariantProps<typeof buttonVariants>, 'variant' | 'color'> {
|
|
16
17
|
styleVariant?: SparkStyle;
|
|
17
18
|
color?: SparkButtonColor;
|
|
18
19
|
/**
|
|
19
20
|
* @deprecated Not a `<Button>` prop and silently ignored -- use `styleVariant`
|
|
20
21
|
* (`solid | soft | surface | ghost | outline`) and `color`
|
|
21
|
-
* (`
|
|
22
|
+
* (`primary | neutral | destructive`) instead. The `variant` axis on
|
|
22
23
|
* `buttonVariants` exists only for class-string callers.
|
|
23
24
|
*/
|
|
24
25
|
variant?: never;
|
|
@@ -7,18 +7,19 @@ import { VariantProps } from "class-variance-authority";
|
|
|
7
7
|
|
|
8
8
|
//#region src/components/button.d.ts
|
|
9
9
|
declare const buttonVariants: (props?: ({
|
|
10
|
-
variant?: "
|
|
11
|
-
color?: "
|
|
12
|
-
size?: "small" | "
|
|
10
|
+
variant?: "primary" | "secondary" | "tertiary" | "bare" | "destructive" | null | undefined;
|
|
11
|
+
color?: "primary" | "destructive" | "accent" | "neutral" | "danger" | null | undefined;
|
|
12
|
+
size?: "small" | "default" | "medium" | "icon-small" | "icon" | "icon-medium" | null | undefined;
|
|
13
13
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
|
-
|
|
14
|
+
/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */
|
|
15
|
+
type SparkButtonColor = 'primary' | 'accent' | 'neutral' | 'destructive' | 'danger';
|
|
15
16
|
interface ButtonProps extends Omit<React$1.ComponentProps<typeof Button$1>, 'ref'>, Omit<VariantProps<typeof buttonVariants>, 'variant' | 'color'> {
|
|
16
17
|
styleVariant?: SparkStyle;
|
|
17
18
|
color?: SparkButtonColor;
|
|
18
19
|
/**
|
|
19
20
|
* @deprecated Not a `<Button>` prop and silently ignored -- use `styleVariant`
|
|
20
21
|
* (`solid | soft | surface | ghost | outline`) and `color`
|
|
21
|
-
* (`
|
|
22
|
+
* (`primary | neutral | destructive`) instead. The `variant` axis on
|
|
22
23
|
* `buttonVariants` exists only for class-string callers.
|
|
23
24
|
*/
|
|
24
25
|
variant?: never;
|
|
@@ -10,16 +10,18 @@ import { cva } from "class-variance-authority";
|
|
|
10
10
|
const buttonVariants = cva("group/button touch-target inline-flex cursor-pointer items-center justify-center gap-2 rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))] text-base font-medium whitespace-nowrap transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
11
11
|
variants: {
|
|
12
12
|
variant: {
|
|
13
|
-
primary: "bg-(--spark-style-bg,var(--
|
|
13
|
+
primary: "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))",
|
|
14
14
|
secondary: "bg-gray-2 text-gray-a11 shadow-[inset_0_0_0_1px_var(--neutral-a7)] hover:bg-gray-a3",
|
|
15
15
|
tertiary: "bg-transparent text-gray-a11 hover:bg-gray-a3",
|
|
16
16
|
bare: "rounded-none! text-gray-12 outline-hidden!",
|
|
17
|
-
destructive: "bg-
|
|
17
|
+
destructive: "bg-destructive-soft text-destructive-soft-foreground hover:bg-destructive-soft-hover focus-visible:ring-destructive"
|
|
18
18
|
},
|
|
19
19
|
color: {
|
|
20
20
|
accent: "",
|
|
21
|
+
primary: "",
|
|
21
22
|
neutral: "",
|
|
22
|
-
danger: "focus-visible:ring-
|
|
23
|
+
danger: "focus-visible:ring-destructive",
|
|
24
|
+
destructive: "focus-visible:ring-destructive"
|
|
23
25
|
},
|
|
24
26
|
size: {
|
|
25
27
|
small: "h-9 px-3 text-sm [--spark-icon-size:16px] [&_svg:not([class*=size-])]:size-4",
|
|
@@ -32,7 +34,7 @@ const buttonVariants = cva("group/button touch-target inline-flex cursor-pointer
|
|
|
32
34
|
},
|
|
33
35
|
defaultVariants: { size: "default" }
|
|
34
36
|
});
|
|
35
|
-
const buttonRecipe = "bg-(--spark-style-bg,var(--
|
|
37
|
+
const buttonRecipe = "bg-(--spark-style-bg,var(--color-primary)) text-(--spark-style-fg,var(--color-primary-foreground)) hover:bg-(--spark-style-bg-hover,var(--color-primary-hover)) shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)]";
|
|
36
38
|
const Button = React$1.forwardRef(function Button({ className, styleVariant, color, size, render, nativeButton, variant: _variant, ...props }, ref) {
|
|
37
39
|
return /* @__PURE__ */ jsx(Button$1, {
|
|
38
40
|
"data-style": styleVariant !== void 0 || color !== void 0 ? styleVariant ?? "solid" : void 0,
|