@epilot/spark-ui 0.19.0 → 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/accordion.cjs +2 -2
- package/dist/components/accordion.d.ts +1 -1
- package/dist/components/accordion.js +1 -1
- package/dist/components/alert-dialog.cjs +1 -1
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/attachment.d.cts +2 -2
- package/dist/components/attachment.d.ts +2 -2
- package/dist/components/autocomplete.cjs +1 -1
- package/dist/components/autocomplete.js +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/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 +11 -11
- package/dist/components/callout.cjs.map +1 -1
- package/dist/components/callout.d.ts +1 -1
- package/dist/components/callout.js +11 -11
- 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/dialog.cjs +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dropdown-menu.cjs +1 -1
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/empty-state.d.ts +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} +16 -16
- package/dist/components/{device-card.js → entity-card.js} +20 -20
- package/dist/components/entity-card.js.map +1 -0
- 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 +1 -1
- package/dist/components/input-date.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.js +1 -1
- package/dist/components/line-chart.cjs +1 -1
- package/dist/components/line-chart.js +1 -1
- package/dist/components/marker.d.cts +1 -1
- package/dist/components/marker.d.ts +1 -1
- package/dist/components/message-scroller.cjs +3 -3
- package/dist/components/message-scroller.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.cjs +1 -1
- package/dist/components/page-header.js +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 +3 -3
- package/dist/components/pill.cjs.map +1 -1
- package/dist/components/pill.js +3 -3
- 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/schedule-list.cjs +1 -1
- package/dist/components/schedule-list.js +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 +33 -3
- 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/sheet.cjs +1 -1
- package/dist/components/sheet.js +1 -1
- package/dist/components/stepper.cjs +2 -2
- 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 +2 -2
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/table.cjs +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.cjs +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/textarea.cjs +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/toast.cjs +1 -1
- package/dist/components/toast.js +1 -1
- package/dist/components/tooltip.cjs +2 -2
- package/dist/components/tooltip.cjs.map +1 -1
- package/dist/components/tooltip.js +2 -2
- 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 +2 -2
- package/dist/lib/accent-theme.cjs.map +1 -1
- package/dist/lib/accent-theme.js +2 -2
- package/dist/lib/accent-theme.js.map +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/spark-default.css +49 -314
- package/dist/styles/theme.css +52 -6
- 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
|
@@ -6,35 +6,35 @@ react = require_chunk.__toESM(react);
|
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
7
|
let class_variance_authority = require("class-variance-authority");
|
|
8
8
|
let cnfast = require("cnfast");
|
|
9
|
-
//#region src/components/
|
|
10
|
-
const
|
|
9
|
+
//#region src/components/entity-card.tsx
|
|
10
|
+
const EntityCard = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
11
11
|
className: (0, cnfast.cn)("flex flex-col overflow-hidden rounded-lg border border-gray bg-(--spark-background)", className),
|
|
12
12
|
...rest
|
|
13
13
|
});
|
|
14
|
-
const
|
|
14
|
+
const EntityCardBody = ({ className, active, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
15
15
|
type: "button",
|
|
16
16
|
className: (0, cnfast.cn)("flex w-full cursor-pointer flex-col gap-3 p-4 text-left transition-colors hover:bg-gray-a2 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent-focus", active && "bg-linear-to-br from-spark-9/10 to-spark-1/5 to-20%", className),
|
|
17
17
|
...rest
|
|
18
18
|
});
|
|
19
|
-
const
|
|
19
|
+
const EntityCardHeader = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
20
20
|
className: (0, cnfast.cn)("flex w-full items-center gap-3", className),
|
|
21
21
|
...rest
|
|
22
22
|
});
|
|
23
|
-
const
|
|
23
|
+
const EntityCardMeters = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
24
24
|
className: (0, cnfast.cn)("flex flex-col gap-2 border-t border-gray pt-3", className),
|
|
25
25
|
...rest
|
|
26
26
|
});
|
|
27
27
|
const iconToneVariants = (0, class_variance_authority.cva)("flex size-11 shrink-0 items-center justify-center rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]", {
|
|
28
28
|
variants: { tone: {
|
|
29
|
-
success: "bg-
|
|
30
|
-
warning: "bg-
|
|
31
|
-
error: "bg-
|
|
32
|
-
accent: "bg-
|
|
29
|
+
success: "bg-success-soft text-success-soft-foreground",
|
|
30
|
+
warning: "bg-warning-soft text-warning-soft-foreground",
|
|
31
|
+
error: "bg-error-soft text-error-soft-foreground",
|
|
32
|
+
accent: "bg-primary-soft text-primary-soft-foreground",
|
|
33
33
|
neutral: "bg-base-gray-soft text-gray"
|
|
34
34
|
} },
|
|
35
35
|
defaultVariants: { tone: "neutral" }
|
|
36
36
|
});
|
|
37
|
-
const
|
|
37
|
+
const EntityCardIcon = ({ className, icon: Glyph, tone, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
38
38
|
className: iconToneVariants({
|
|
39
39
|
tone,
|
|
40
40
|
className
|
|
@@ -42,11 +42,11 @@ const DeviceCardIcon = ({ className, icon: Glyph, tone, ...rest }) => /* @__PURE
|
|
|
42
42
|
...rest,
|
|
43
43
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Glyph, { className: "[--spark-icon-size:18px]" })
|
|
44
44
|
});
|
|
45
|
-
const
|
|
45
|
+
const EntityCardTitleColumn = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
46
46
|
className: (0, cnfast.cn)("flex min-w-0 flex-1 flex-col gap-0.5", className),
|
|
47
47
|
...rest
|
|
48
48
|
});
|
|
49
|
-
const
|
|
49
|
+
const EntityCardTitle = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
50
50
|
className: (0, cnfast.cn)("truncate text-sm font-bold text-gray", className),
|
|
51
51
|
...rest
|
|
52
52
|
});
|
|
@@ -65,12 +65,12 @@ const dotToneVariants = (0, class_variance_authority.cva)("size-1.5 shrink-0 rou
|
|
|
65
65
|
success: "bg-base-success-solid",
|
|
66
66
|
warning: "bg-base-warning-solid",
|
|
67
67
|
error: "bg-base-error-solid",
|
|
68
|
-
accent: "bg-
|
|
68
|
+
accent: "bg-primary",
|
|
69
69
|
neutral: "bg-base-gray-solid"
|
|
70
70
|
} },
|
|
71
71
|
defaultVariants: { tone: "neutral" }
|
|
72
72
|
});
|
|
73
|
-
const
|
|
73
|
+
const EntityCardState = ({ className, tone, children, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
74
74
|
className: stateToneVariants({
|
|
75
75
|
tone,
|
|
76
76
|
className
|
|
@@ -81,34 +81,34 @@ const DeviceCardState = ({ className, tone, children, ...rest }) => /* @__PURE__
|
|
|
81
81
|
children
|
|
82
82
|
})]
|
|
83
83
|
});
|
|
84
|
-
const
|
|
84
|
+
const EntityCardDetail = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
85
85
|
className: (0, cnfast.cn)("truncate text-xs text-gray-light tabular-nums", className),
|
|
86
86
|
...rest
|
|
87
87
|
});
|
|
88
|
-
const
|
|
88
|
+
const EntityCardValue = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
89
89
|
className: (0, cnfast.cn)("ms-2 shrink-0 self-center text-lg leading-tight font-bold text-gray tabular-nums", className),
|
|
90
90
|
...rest
|
|
91
91
|
});
|
|
92
|
-
const
|
|
92
|
+
const EntityCardControls = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
93
93
|
className: (0, cnfast.cn)("flex items-center gap-3 border-t border-gray bg-base-gray-surface px-4 py-3", className),
|
|
94
94
|
...rest
|
|
95
95
|
});
|
|
96
|
-
const
|
|
96
|
+
const EntityCardFooter = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
97
97
|
className: (0, cnfast.cn)("flex items-center justify-center gap-1.5 border-t border-gray bg-base-gray-surface px-4 py-2 text-xs text-gray-light", className),
|
|
98
98
|
...rest
|
|
99
99
|
});
|
|
100
100
|
//#endregion
|
|
101
|
-
exports.
|
|
102
|
-
exports.
|
|
103
|
-
exports.
|
|
104
|
-
exports.
|
|
105
|
-
exports.
|
|
106
|
-
exports.
|
|
107
|
-
exports.
|
|
108
|
-
exports.
|
|
109
|
-
exports.
|
|
110
|
-
exports.
|
|
111
|
-
exports.
|
|
112
|
-
exports.
|
|
101
|
+
exports.EntityCard = EntityCard;
|
|
102
|
+
exports.EntityCardBody = EntityCardBody;
|
|
103
|
+
exports.EntityCardControls = EntityCardControls;
|
|
104
|
+
exports.EntityCardDetail = EntityCardDetail;
|
|
105
|
+
exports.EntityCardFooter = EntityCardFooter;
|
|
106
|
+
exports.EntityCardHeader = EntityCardHeader;
|
|
107
|
+
exports.EntityCardIcon = EntityCardIcon;
|
|
108
|
+
exports.EntityCardMeters = EntityCardMeters;
|
|
109
|
+
exports.EntityCardState = EntityCardState;
|
|
110
|
+
exports.EntityCardTitle = EntityCardTitle;
|
|
111
|
+
exports.EntityCardTitleColumn = EntityCardTitleColumn;
|
|
112
|
+
exports.EntityCardValue = EntityCardValue;
|
|
113
113
|
|
|
114
|
-
//# sourceMappingURL=
|
|
114
|
+
//# sourceMappingURL=entity-card.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-card.cjs","names":[],"sources":["../../src/components/entity-card.tsx"],"sourcesContent":["import type { SparkIcon } from '@epilot/spark-icons'\nimport { cva } from 'class-variance-authority'\nimport * as React from 'react'\nimport type { Tone } from '../lib/tones'\nimport { cn } from '../utils/cn'\n\nconst EntityCard = ({ className, ...rest }: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex flex-col overflow-hidden rounded-lg border border-gray bg-(--spark-background)',\n className,\n )}\n {...rest}\n />\n)\n\nconst EntityCardBody = ({\n className,\n active,\n ...rest\n}: React.ComponentProps<'button'> & { active?: boolean }) => (\n <button\n type=\"button\"\n className={cn(\n 'flex w-full cursor-pointer flex-col gap-3 p-4 text-left transition-colors hover:bg-gray-a2 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent-focus',\n active && 'bg-linear-to-br from-spark-9/10 to-spark-1/5 to-20%',\n className,\n )}\n {...rest}\n />\n)\n\nconst EntityCardHeader = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div className={cn('flex w-full items-center gap-3', className)} {...rest} />\n)\n\nconst EntityCardMeters = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn('flex flex-col gap-2 border-t border-gray pt-3', className)}\n {...rest}\n />\n)\n\nconst iconToneVariants = cva(\n // max() pill escape (matches Icon): a tile stays rounded-md at low Roundness but\n // becomes a circle at large/full, same as it did pre-harmonization via clamping.\n 'flex size-11 shrink-0 items-center justify-center rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]',\n {\n variants: {\n tone: {\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n error: 'bg-error-soft text-error-soft-foreground',\n accent: 'bg-primary-soft text-primary-soft-foreground',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: { tone: 'neutral' },\n },\n)\n\nconst EntityCardIcon = ({\n className,\n icon: Glyph,\n tone,\n ...rest\n}: React.ComponentProps<'span'> & {\n icon: SparkIcon\n tone?: Tone\n}) => (\n <span className={iconToneVariants({ tone, className })} {...rest}>\n <Glyph className=\"[--spark-icon-size:18px]\" />\n </span>\n)\n\nconst EntityCardTitleColumn = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn('flex min-w-0 flex-1 flex-col gap-0.5', className)}\n {...rest}\n />\n)\n\nconst EntityCardTitle = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn('truncate text-sm font-bold text-gray', className)}\n {...rest}\n />\n)\n\nconst stateToneVariants = cva(\n 'inline-flex items-center gap-1.5 text-xs font-medium',\n {\n variants: {\n tone: {\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n accent: 'text-accent',\n neutral: 'text-gray-light',\n },\n },\n defaultVariants: { tone: 'neutral' },\n },\n)\n\nconst dotToneVariants = cva('size-1.5 shrink-0 rounded-full', {\n variants: {\n tone: {\n success: 'bg-base-success-solid',\n warning: 'bg-base-warning-solid',\n error: 'bg-base-error-solid',\n accent: 'bg-primary',\n neutral: 'bg-base-gray-solid',\n },\n },\n defaultVariants: { tone: 'neutral' },\n})\n\nconst EntityCardState = ({\n className,\n tone,\n children,\n ...rest\n}: React.ComponentProps<'span'> & { tone?: Tone }) => (\n <span className={stateToneVariants({ tone, className })} {...rest}>\n <span className={dotToneVariants({ tone })} />\n <span className=\"truncate\">{children}</span>\n </span>\n)\n\nconst EntityCardDetail = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn('truncate text-xs text-gray-light tabular-nums', className)}\n {...rest}\n />\n)\n\nconst EntityCardValue = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn(\n 'ms-2 shrink-0 self-center text-lg leading-tight font-bold text-gray tabular-nums',\n className,\n )}\n {...rest}\n />\n)\n\nconst EntityCardControls = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex items-center gap-3 border-t border-gray bg-base-gray-surface px-4 py-3',\n className,\n )}\n {...rest}\n />\n)\n\nconst EntityCardFooter = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex items-center justify-center gap-1.5 border-t border-gray bg-base-gray-surface px-4 py-2 text-xs text-gray-light',\n className,\n )}\n {...rest}\n />\n)\n\nexport {\n EntityCard,\n EntityCardBody,\n EntityCardControls,\n EntityCardDetail,\n EntityCardFooter,\n EntityCardHeader,\n EntityCardIcon,\n EntityCardMeters,\n EntityCardState,\n EntityCardTitle,\n EntityCardTitleColumn,\n EntityCardValue,\n}\n"],"mappings":";;;;;;;;;AAMA,MAAM,cAAc,EAAE,WAAW,GAAG,WAClC,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IACE,uFACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,kBAAkB,EACtB,WACA,QACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,UAAD;CACE,MAAK;CACL,YAAA,GAAA,OAAA,IACE,yLACA,UAAU,uDACV,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CAAK,YAAA,GAAA,OAAA,IAAc,kCAAkC,SAAS;CAAG,GAAI;AAAO,CAAA;AAG9E,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IAAc,iDAAiD,SAAS;CACxE,GAAI;AACL,CAAA;AAGH,MAAM,oBAAA,GAAA,yBAAA,KAGJ,sHACA;CACE,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CACF;AAEA,MAAM,kBAAkB,EACtB,WACA,MAAM,OACN,MACA,GAAG,WAKH,iBAAA,GAAA,kBAAA,KAAC,QAAD;CAAM,WAAW,iBAAiB;EAAE;EAAM;CAAU,CAAC;CAAG,GAAI;WAC1D,iBAAA,GAAA,kBAAA,KAAC,OAAD,EAAO,WAAU,2BAA4B,CAAA;AACzC,CAAA;AAGR,MAAM,yBAAyB,EAC7B,WACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IAAc,wCAAwC,SAAS;CAC/D,GAAI;AACL,CAAA;AAGH,MAAM,mBAAmB,EACvB,WACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,YAAA,GAAA,OAAA,IAAc,wCAAwC,SAAS;CAC/D,GAAI;AACL,CAAA;AAGH,MAAM,qBAAA,GAAA,yBAAA,KACJ,wDACA;CACE,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CACF;AAEA,MAAM,mBAAA,GAAA,yBAAA,KAAsB,kCAAkC;CAC5D,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CAAC;AAED,MAAM,mBAAmB,EACvB,WACA,MACA,UACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,MAAC,QAAD;CAAM,WAAW,kBAAkB;EAAE;EAAM;CAAU,CAAC;CAAG,GAAI;WAA7D,CACE,iBAAA,GAAA,kBAAA,KAAC,QAAD,EAAM,WAAW,gBAAgB,EAAE,KAAK,CAAC,EAAI,CAAA,GAC7C,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,WAAU;EAAY;CAAe,CAAA,CACvC;;AAGR,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,YAAA,GAAA,OAAA,IAAc,iDAAiD,SAAS;CACxE,GAAI;AACL,CAAA;AAGH,MAAM,mBAAmB,EACvB,WACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,YAAA,GAAA,OAAA,IACE,oFACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,sBAAsB,EAC1B,WACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IACE,+EACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,YAAA,GAAA,OAAA,IACE,wHACA,SACF;CACA,GAAI;AACL,CAAA"}
|
|
@@ -4,27 +4,27 @@ import { Tone } from "../lib/tones.cjs";
|
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
import { SparkIcon } from "@epilot/spark-icons";
|
|
6
6
|
|
|
7
|
-
//#region src/components/
|
|
8
|
-
declare const
|
|
7
|
+
//#region src/components/entity-card.d.ts
|
|
8
|
+
declare const EntityCard: ({
|
|
9
9
|
className,
|
|
10
10
|
...rest
|
|
11
11
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
declare const
|
|
12
|
+
declare const EntityCardBody: ({
|
|
13
13
|
className,
|
|
14
14
|
active,
|
|
15
15
|
...rest
|
|
16
16
|
}: React$1.ComponentProps<"button"> & {
|
|
17
17
|
active?: boolean;
|
|
18
18
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
-
declare const
|
|
19
|
+
declare const EntityCardHeader: ({
|
|
20
20
|
className,
|
|
21
21
|
...rest
|
|
22
22
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
declare const
|
|
23
|
+
declare const EntityCardMeters: ({
|
|
24
24
|
className,
|
|
25
25
|
...rest
|
|
26
26
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
-
declare const
|
|
27
|
+
declare const EntityCardIcon: ({
|
|
28
28
|
className,
|
|
29
29
|
icon: Glyph,
|
|
30
30
|
tone,
|
|
@@ -33,15 +33,15 @@ declare const DeviceCardIcon: ({
|
|
|
33
33
|
icon: SparkIcon;
|
|
34
34
|
tone?: Tone;
|
|
35
35
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
36
|
-
declare const
|
|
36
|
+
declare const EntityCardTitleColumn: ({
|
|
37
37
|
className,
|
|
38
38
|
...rest
|
|
39
39
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
40
|
-
declare const
|
|
40
|
+
declare const EntityCardTitle: ({
|
|
41
41
|
className,
|
|
42
42
|
...rest
|
|
43
43
|
}: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
-
declare const
|
|
44
|
+
declare const EntityCardState: ({
|
|
45
45
|
className,
|
|
46
46
|
tone,
|
|
47
47
|
children,
|
|
@@ -49,22 +49,22 @@ declare const DeviceCardState: ({
|
|
|
49
49
|
}: React$1.ComponentProps<"span"> & {
|
|
50
50
|
tone?: Tone;
|
|
51
51
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
52
|
-
declare const
|
|
52
|
+
declare const EntityCardDetail: ({
|
|
53
53
|
className,
|
|
54
54
|
...rest
|
|
55
55
|
}: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
|
|
56
|
-
declare const
|
|
56
|
+
declare const EntityCardValue: ({
|
|
57
57
|
className,
|
|
58
58
|
...rest
|
|
59
59
|
}: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
|
|
60
|
-
declare const
|
|
60
|
+
declare const EntityCardControls: ({
|
|
61
61
|
className,
|
|
62
62
|
...rest
|
|
63
63
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
64
|
-
declare const
|
|
64
|
+
declare const EntityCardFooter: ({
|
|
65
65
|
className,
|
|
66
66
|
...rest
|
|
67
67
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
68
68
|
//#endregion
|
|
69
|
-
export {
|
|
70
|
-
//# sourceMappingURL=
|
|
69
|
+
export { EntityCard, EntityCardBody, EntityCardControls, EntityCardDetail, EntityCardFooter, EntityCardHeader, EntityCardIcon, EntityCardMeters, EntityCardState, EntityCardTitle, EntityCardTitleColumn, EntityCardValue };
|
|
70
|
+
//# sourceMappingURL=entity-card.d.cts.map
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { Tone } from "../lib/tones.js";
|
|
4
|
-
import * as React$1 from "react";
|
|
5
4
|
import { SparkIcon } from "@epilot/spark-icons";
|
|
5
|
+
import * as React$1 from "react";
|
|
6
6
|
|
|
7
|
-
//#region src/components/
|
|
8
|
-
declare const
|
|
7
|
+
//#region src/components/entity-card.d.ts
|
|
8
|
+
declare const EntityCard: ({
|
|
9
9
|
className,
|
|
10
10
|
...rest
|
|
11
11
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
declare const
|
|
12
|
+
declare const EntityCardBody: ({
|
|
13
13
|
className,
|
|
14
14
|
active,
|
|
15
15
|
...rest
|
|
16
16
|
}: React$1.ComponentProps<"button"> & {
|
|
17
17
|
active?: boolean;
|
|
18
18
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
-
declare const
|
|
19
|
+
declare const EntityCardHeader: ({
|
|
20
20
|
className,
|
|
21
21
|
...rest
|
|
22
22
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
declare const
|
|
23
|
+
declare const EntityCardMeters: ({
|
|
24
24
|
className,
|
|
25
25
|
...rest
|
|
26
26
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
-
declare const
|
|
27
|
+
declare const EntityCardIcon: ({
|
|
28
28
|
className,
|
|
29
29
|
icon: Glyph,
|
|
30
30
|
tone,
|
|
@@ -33,15 +33,15 @@ declare const DeviceCardIcon: ({
|
|
|
33
33
|
icon: SparkIcon;
|
|
34
34
|
tone?: Tone;
|
|
35
35
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
36
|
-
declare const
|
|
36
|
+
declare const EntityCardTitleColumn: ({
|
|
37
37
|
className,
|
|
38
38
|
...rest
|
|
39
39
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
40
|
-
declare const
|
|
40
|
+
declare const EntityCardTitle: ({
|
|
41
41
|
className,
|
|
42
42
|
...rest
|
|
43
43
|
}: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
-
declare const
|
|
44
|
+
declare const EntityCardState: ({
|
|
45
45
|
className,
|
|
46
46
|
tone,
|
|
47
47
|
children,
|
|
@@ -49,22 +49,22 @@ declare const DeviceCardState: ({
|
|
|
49
49
|
}: React$1.ComponentProps<"span"> & {
|
|
50
50
|
tone?: Tone;
|
|
51
51
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
52
|
-
declare const
|
|
52
|
+
declare const EntityCardDetail: ({
|
|
53
53
|
className,
|
|
54
54
|
...rest
|
|
55
55
|
}: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
|
|
56
|
-
declare const
|
|
56
|
+
declare const EntityCardValue: ({
|
|
57
57
|
className,
|
|
58
58
|
...rest
|
|
59
59
|
}: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
|
|
60
|
-
declare const
|
|
60
|
+
declare const EntityCardControls: ({
|
|
61
61
|
className,
|
|
62
62
|
...rest
|
|
63
63
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
64
|
-
declare const
|
|
64
|
+
declare const EntityCardFooter: ({
|
|
65
65
|
className,
|
|
66
66
|
...rest
|
|
67
67
|
}: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
68
68
|
//#endregion
|
|
69
|
-
export {
|
|
70
|
-
//# sourceMappingURL=
|
|
69
|
+
export { EntityCard, EntityCardBody, EntityCardControls, EntityCardDetail, EntityCardFooter, EntityCardHeader, EntityCardIcon, EntityCardMeters, EntityCardState, EntityCardTitle, EntityCardTitleColumn, EntityCardValue };
|
|
70
|
+
//# sourceMappingURL=entity-card.d.ts.map
|
|
@@ -3,35 +3,35 @@ import { cn } from "../utils/cn.js";
|
|
|
3
3
|
import "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
|
-
//#region src/components/
|
|
7
|
-
const
|
|
6
|
+
//#region src/components/entity-card.tsx
|
|
7
|
+
const EntityCard = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
|
|
8
8
|
className: cn("flex flex-col overflow-hidden rounded-lg border border-gray bg-(--spark-background)", className),
|
|
9
9
|
...rest
|
|
10
10
|
});
|
|
11
|
-
const
|
|
11
|
+
const EntityCardBody = ({ className, active, ...rest }) => /* @__PURE__ */ jsx("button", {
|
|
12
12
|
type: "button",
|
|
13
13
|
className: cn("flex w-full cursor-pointer flex-col gap-3 p-4 text-left transition-colors hover:bg-gray-a2 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent-focus", active && "bg-linear-to-br from-spark-9/10 to-spark-1/5 to-20%", className),
|
|
14
14
|
...rest
|
|
15
15
|
});
|
|
16
|
-
const
|
|
16
|
+
const EntityCardHeader = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
|
|
17
17
|
className: cn("flex w-full items-center gap-3", className),
|
|
18
18
|
...rest
|
|
19
19
|
});
|
|
20
|
-
const
|
|
20
|
+
const EntityCardMeters = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
|
|
21
21
|
className: cn("flex flex-col gap-2 border-t border-gray pt-3", className),
|
|
22
22
|
...rest
|
|
23
23
|
});
|
|
24
24
|
const iconToneVariants = cva("flex size-11 shrink-0 items-center justify-center rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]", {
|
|
25
25
|
variants: { tone: {
|
|
26
|
-
success: "bg-
|
|
27
|
-
warning: "bg-
|
|
28
|
-
error: "bg-
|
|
29
|
-
accent: "bg-
|
|
26
|
+
success: "bg-success-soft text-success-soft-foreground",
|
|
27
|
+
warning: "bg-warning-soft text-warning-soft-foreground",
|
|
28
|
+
error: "bg-error-soft text-error-soft-foreground",
|
|
29
|
+
accent: "bg-primary-soft text-primary-soft-foreground",
|
|
30
30
|
neutral: "bg-base-gray-soft text-gray"
|
|
31
31
|
} },
|
|
32
32
|
defaultVariants: { tone: "neutral" }
|
|
33
33
|
});
|
|
34
|
-
const
|
|
34
|
+
const EntityCardIcon = ({ className, icon: Glyph, tone, ...rest }) => /* @__PURE__ */ jsx("span", {
|
|
35
35
|
className: iconToneVariants({
|
|
36
36
|
tone,
|
|
37
37
|
className
|
|
@@ -39,11 +39,11 @@ const DeviceCardIcon = ({ className, icon: Glyph, tone, ...rest }) => /* @__PURE
|
|
|
39
39
|
...rest,
|
|
40
40
|
children: /* @__PURE__ */ jsx(Glyph, { className: "[--spark-icon-size:18px]" })
|
|
41
41
|
});
|
|
42
|
-
const
|
|
42
|
+
const EntityCardTitleColumn = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
|
|
43
43
|
className: cn("flex min-w-0 flex-1 flex-col gap-0.5", className),
|
|
44
44
|
...rest
|
|
45
45
|
});
|
|
46
|
-
const
|
|
46
|
+
const EntityCardTitle = ({ className, ...rest }) => /* @__PURE__ */ jsx("span", {
|
|
47
47
|
className: cn("truncate text-sm font-bold text-gray", className),
|
|
48
48
|
...rest
|
|
49
49
|
});
|
|
@@ -62,12 +62,12 @@ const dotToneVariants = cva("size-1.5 shrink-0 rounded-full", {
|
|
|
62
62
|
success: "bg-base-success-solid",
|
|
63
63
|
warning: "bg-base-warning-solid",
|
|
64
64
|
error: "bg-base-error-solid",
|
|
65
|
-
accent: "bg-
|
|
65
|
+
accent: "bg-primary",
|
|
66
66
|
neutral: "bg-base-gray-solid"
|
|
67
67
|
} },
|
|
68
68
|
defaultVariants: { tone: "neutral" }
|
|
69
69
|
});
|
|
70
|
-
const
|
|
70
|
+
const EntityCardState = ({ className, tone, children, ...rest }) => /* @__PURE__ */ jsxs("span", {
|
|
71
71
|
className: stateToneVariants({
|
|
72
72
|
tone,
|
|
73
73
|
className
|
|
@@ -78,23 +78,23 @@ const DeviceCardState = ({ className, tone, children, ...rest }) => /* @__PURE__
|
|
|
78
78
|
children
|
|
79
79
|
})]
|
|
80
80
|
});
|
|
81
|
-
const
|
|
81
|
+
const EntityCardDetail = ({ className, ...rest }) => /* @__PURE__ */ jsx("span", {
|
|
82
82
|
className: cn("truncate text-xs text-gray-light tabular-nums", className),
|
|
83
83
|
...rest
|
|
84
84
|
});
|
|
85
|
-
const
|
|
85
|
+
const EntityCardValue = ({ className, ...rest }) => /* @__PURE__ */ jsx("span", {
|
|
86
86
|
className: cn("ms-2 shrink-0 self-center text-lg leading-tight font-bold text-gray tabular-nums", className),
|
|
87
87
|
...rest
|
|
88
88
|
});
|
|
89
|
-
const
|
|
89
|
+
const EntityCardControls = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
|
|
90
90
|
className: cn("flex items-center gap-3 border-t border-gray bg-base-gray-surface px-4 py-3", className),
|
|
91
91
|
...rest
|
|
92
92
|
});
|
|
93
|
-
const
|
|
93
|
+
const EntityCardFooter = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
|
|
94
94
|
className: cn("flex items-center justify-center gap-1.5 border-t border-gray bg-base-gray-surface px-4 py-2 text-xs text-gray-light", className),
|
|
95
95
|
...rest
|
|
96
96
|
});
|
|
97
97
|
//#endregion
|
|
98
|
-
export {
|
|
98
|
+
export { EntityCard, EntityCardBody, EntityCardControls, EntityCardDetail, EntityCardFooter, EntityCardHeader, EntityCardIcon, EntityCardMeters, EntityCardState, EntityCardTitle, EntityCardTitleColumn, EntityCardValue };
|
|
99
99
|
|
|
100
|
-
//# sourceMappingURL=
|
|
100
|
+
//# sourceMappingURL=entity-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-card.js","names":[],"sources":["../../src/components/entity-card.tsx"],"sourcesContent":["import type { SparkIcon } from '@epilot/spark-icons'\nimport { cva } from 'class-variance-authority'\nimport * as React from 'react'\nimport type { Tone } from '../lib/tones'\nimport { cn } from '../utils/cn'\n\nconst EntityCard = ({ className, ...rest }: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex flex-col overflow-hidden rounded-lg border border-gray bg-(--spark-background)',\n className,\n )}\n {...rest}\n />\n)\n\nconst EntityCardBody = ({\n className,\n active,\n ...rest\n}: React.ComponentProps<'button'> & { active?: boolean }) => (\n <button\n type=\"button\"\n className={cn(\n 'flex w-full cursor-pointer flex-col gap-3 p-4 text-left transition-colors hover:bg-gray-a2 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent-focus',\n active && 'bg-linear-to-br from-spark-9/10 to-spark-1/5 to-20%',\n className,\n )}\n {...rest}\n />\n)\n\nconst EntityCardHeader = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div className={cn('flex w-full items-center gap-3', className)} {...rest} />\n)\n\nconst EntityCardMeters = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn('flex flex-col gap-2 border-t border-gray pt-3', className)}\n {...rest}\n />\n)\n\nconst iconToneVariants = cva(\n // max() pill escape (matches Icon): a tile stays rounded-md at low Roundness but\n // becomes a circle at large/full, same as it did pre-harmonization via clamping.\n 'flex size-11 shrink-0 items-center justify-center rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]',\n {\n variants: {\n tone: {\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n error: 'bg-error-soft text-error-soft-foreground',\n accent: 'bg-primary-soft text-primary-soft-foreground',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: { tone: 'neutral' },\n },\n)\n\nconst EntityCardIcon = ({\n className,\n icon: Glyph,\n tone,\n ...rest\n}: React.ComponentProps<'span'> & {\n icon: SparkIcon\n tone?: Tone\n}) => (\n <span className={iconToneVariants({ tone, className })} {...rest}>\n <Glyph className=\"[--spark-icon-size:18px]\" />\n </span>\n)\n\nconst EntityCardTitleColumn = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn('flex min-w-0 flex-1 flex-col gap-0.5', className)}\n {...rest}\n />\n)\n\nconst EntityCardTitle = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn('truncate text-sm font-bold text-gray', className)}\n {...rest}\n />\n)\n\nconst stateToneVariants = cva(\n 'inline-flex items-center gap-1.5 text-xs font-medium',\n {\n variants: {\n tone: {\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n accent: 'text-accent',\n neutral: 'text-gray-light',\n },\n },\n defaultVariants: { tone: 'neutral' },\n },\n)\n\nconst dotToneVariants = cva('size-1.5 shrink-0 rounded-full', {\n variants: {\n tone: {\n success: 'bg-base-success-solid',\n warning: 'bg-base-warning-solid',\n error: 'bg-base-error-solid',\n accent: 'bg-primary',\n neutral: 'bg-base-gray-solid',\n },\n },\n defaultVariants: { tone: 'neutral' },\n})\n\nconst EntityCardState = ({\n className,\n tone,\n children,\n ...rest\n}: React.ComponentProps<'span'> & { tone?: Tone }) => (\n <span className={stateToneVariants({ tone, className })} {...rest}>\n <span className={dotToneVariants({ tone })} />\n <span className=\"truncate\">{children}</span>\n </span>\n)\n\nconst EntityCardDetail = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn('truncate text-xs text-gray-light tabular-nums', className)}\n {...rest}\n />\n)\n\nconst EntityCardValue = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn(\n 'ms-2 shrink-0 self-center text-lg leading-tight font-bold text-gray tabular-nums',\n className,\n )}\n {...rest}\n />\n)\n\nconst EntityCardControls = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex items-center gap-3 border-t border-gray bg-base-gray-surface px-4 py-3',\n className,\n )}\n {...rest}\n />\n)\n\nconst EntityCardFooter = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex items-center justify-center gap-1.5 border-t border-gray bg-base-gray-surface px-4 py-2 text-xs text-gray-light',\n className,\n )}\n {...rest}\n />\n)\n\nexport {\n EntityCard,\n EntityCardBody,\n EntityCardControls,\n EntityCardDetail,\n EntityCardFooter,\n EntityCardHeader,\n EntityCardIcon,\n EntityCardMeters,\n EntityCardState,\n EntityCardTitle,\n EntityCardTitleColumn,\n EntityCardValue,\n}\n"],"mappings":";;;;;;AAMA,MAAM,cAAc,EAAE,WAAW,GAAG,WAClC,oBAAC,OAAD;CACE,WAAW,GACT,uFACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,kBAAkB,EACtB,WACA,QACA,GAAG,WAEH,oBAAC,UAAD;CACE,MAAK;CACL,WAAW,GACT,yLACA,UAAU,uDACV,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,oBAAC,OAAD;CAAK,WAAW,GAAG,kCAAkC,SAAS;CAAG,GAAI;AAAO,CAAA;AAG9E,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,oBAAC,OAAD;CACE,WAAW,GAAG,iDAAiD,SAAS;CACxE,GAAI;AACL,CAAA;AAGH,MAAM,mBAAmB,IAGvB,sHACA;CACE,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CACF;AAEA,MAAM,kBAAkB,EACtB,WACA,MAAM,OACN,MACA,GAAG,WAKH,oBAAC,QAAD;CAAM,WAAW,iBAAiB;EAAE;EAAM;CAAU,CAAC;CAAG,GAAI;WAC1D,oBAAC,OAAD,EAAO,WAAU,2BAA4B,CAAA;AACzC,CAAA;AAGR,MAAM,yBAAyB,EAC7B,WACA,GAAG,WAEH,oBAAC,OAAD;CACE,WAAW,GAAG,wCAAwC,SAAS;CAC/D,GAAI;AACL,CAAA;AAGH,MAAM,mBAAmB,EACvB,WACA,GAAG,WAEH,oBAAC,QAAD;CACE,WAAW,GAAG,wCAAwC,SAAS;CAC/D,GAAI;AACL,CAAA;AAGH,MAAM,oBAAoB,IACxB,wDACA;CACE,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CACF;AAEA,MAAM,kBAAkB,IAAI,kCAAkC;CAC5D,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CAAC;AAED,MAAM,mBAAmB,EACvB,WACA,MACA,UACA,GAAG,WAEH,qBAAC,QAAD;CAAM,WAAW,kBAAkB;EAAE;EAAM;CAAU,CAAC;CAAG,GAAI;WAA7D,CACE,oBAAC,QAAD,EAAM,WAAW,gBAAgB,EAAE,KAAK,CAAC,EAAI,CAAA,GAC7C,oBAAC,QAAD;EAAM,WAAU;EAAY;CAAe,CAAA,CACvC;;AAGR,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,oBAAC,QAAD;CACE,WAAW,GAAG,iDAAiD,SAAS;CACxE,GAAI;AACL,CAAA;AAGH,MAAM,mBAAmB,EACvB,WACA,GAAG,WAEH,oBAAC,QAAD;CACE,WAAW,GACT,oFACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,sBAAsB,EAC1B,WACA,GAAG,WAEH,oBAAC,OAAD;CACE,WAAW,GACT,+EACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,oBAAC,OAAD;CACE,WAAW,GACT,wHACA,SACF;CACA,GAAI;AACL,CAAA"}
|
|
@@ -3,18 +3,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
4
|
let class_variance_authority = require("class-variance-authority");
|
|
5
5
|
let cnfast = require("cnfast");
|
|
6
|
-
//#region src/components/
|
|
7
|
-
const
|
|
6
|
+
//#region src/components/hero-metric.tsx
|
|
7
|
+
const HeroMetric = ({ className, ...rest }) => {
|
|
8
8
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9
9
|
className: (0, cnfast.cn)("flex flex-col items-center gap-1 rounded-lg border border-gray p-5 text-center", className),
|
|
10
10
|
...rest
|
|
11
11
|
});
|
|
12
12
|
};
|
|
13
|
-
|
|
14
|
-
* Label row above the value. Lays out children in a flex row with a small
|
|
15
|
-
* gap so a tooltip / icon can sit alongside the label text.
|
|
16
|
-
*/
|
|
17
|
-
const FeedInHeroLabel = ({ className, ...rest }) => {
|
|
13
|
+
const HeroMetricLabel = ({ className, ...rest }) => {
|
|
18
14
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
19
15
|
className: (0, cnfast.cn)("flex items-center gap-1.5 text-xs font-medium text-gray-light", className),
|
|
20
16
|
...rest
|
|
@@ -30,7 +26,7 @@ const valueToneVariants = (0, class_variance_authority.cva)("text-4xl font-bold
|
|
|
30
26
|
} },
|
|
31
27
|
defaultVariants: { tone: "neutral" }
|
|
32
28
|
});
|
|
33
|
-
const
|
|
29
|
+
const HeroMetricValue = ({ className, tone, ...rest }) => {
|
|
34
30
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
35
31
|
className: valueToneVariants({
|
|
36
32
|
tone,
|
|
@@ -39,17 +35,16 @@ const FeedInHeroValue = ({ className, tone, ...rest }) => {
|
|
|
39
35
|
...rest
|
|
40
36
|
});
|
|
41
37
|
};
|
|
42
|
-
|
|
43
|
-
const FeedInHeroValueUnit = ({ className, ...rest }) => {
|
|
38
|
+
const HeroMetricValueUnit = ({ className, ...rest }) => {
|
|
44
39
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
45
40
|
className: (0, cnfast.cn)("text-2xl font-semibold", className),
|
|
46
41
|
...rest
|
|
47
42
|
});
|
|
48
43
|
};
|
|
49
44
|
//#endregion
|
|
50
|
-
exports.
|
|
51
|
-
exports.
|
|
52
|
-
exports.
|
|
53
|
-
exports.
|
|
45
|
+
exports.HeroMetric = HeroMetric;
|
|
46
|
+
exports.HeroMetricLabel = HeroMetricLabel;
|
|
47
|
+
exports.HeroMetricValue = HeroMetricValue;
|
|
48
|
+
exports.HeroMetricValueUnit = HeroMetricValueUnit;
|
|
54
49
|
|
|
55
|
-
//# sourceMappingURL=
|
|
50
|
+
//# sourceMappingURL=hero-metric.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero-metric.cjs","names":[],"sources":["../../src/components/hero-metric.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport type { Tone } from '../lib/tones'\nimport { cn } from '../utils/cn'\n\nconst HeroMetric = ({ className, ...rest }: React.ComponentProps<'div'>) => {\n return (\n <div\n className={cn(\n 'flex flex-col items-center gap-1 rounded-lg border border-gray p-5 text-center',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst HeroMetricLabel = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => {\n return (\n <div\n className={cn(\n 'flex items-center gap-1.5 text-xs font-medium text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst valueToneVariants = cva('text-4xl font-bold tabular-nums', {\n variants: {\n tone: {\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n accent: 'text-accent',\n neutral: 'text-gray',\n },\n },\n defaultVariants: {\n tone: 'neutral',\n },\n})\n\nconst HeroMetricValue = ({\n className,\n tone,\n ...rest\n}: React.ComponentProps<'span'> & { tone?: Tone }) => {\n return <span className={valueToneVariants({ tone, className })} {...rest} />\n}\n\nconst HeroMetricValueUnit = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return <span className={cn('text-2xl font-semibold', className)} {...rest} />\n}\n\nexport { HeroMetric, HeroMetricLabel, HeroMetricValue, HeroMetricValueUnit }\n"],"mappings":";;;;;;AAIA,MAAM,cAAc,EAAE,WAAW,GAAG,WAAwC;CAC1E,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,YAAA,GAAA,OAAA,IACE,kFACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC8B;CACjC,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,YAAA,GAAA,OAAA,IACE,iEACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,qBAAA,GAAA,yBAAA,KAAwB,mCAAmC;CAC/D,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CAAC;AAED,MAAM,mBAAmB,EACvB,WACA,MACA,GAAG,WACiD;CACpD,OAAO,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,WAAW,kBAAkB;GAAE;GAAM;EAAU,CAAC;EAAG,GAAI;CAAO,CAAA;AAC7E;AAEA,MAAM,uBAAuB,EAC3B,WACA,GAAG,WAC+B;CAClC,OAAO,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,YAAA,GAAA,OAAA,IAAc,0BAA0B,SAAS;EAAG,GAAI;CAAO,CAAA;AAC9E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { Tone } from "../lib/tones.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/components/hero-metric.d.ts
|
|
6
|
+
declare const HeroMetric: ({
|
|
7
|
+
className,
|
|
8
|
+
...rest
|
|
9
|
+
}: React.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare const HeroMetricLabel: ({
|
|
11
|
+
className,
|
|
12
|
+
...rest
|
|
13
|
+
}: React.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare const HeroMetricValue: ({
|
|
15
|
+
className,
|
|
16
|
+
tone,
|
|
17
|
+
...rest
|
|
18
|
+
}: React.ComponentProps<"span"> & {
|
|
19
|
+
tone?: Tone;
|
|
20
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare const HeroMetricValueUnit: ({
|
|
22
|
+
className,
|
|
23
|
+
...rest
|
|
24
|
+
}: React.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { HeroMetric, HeroMetricLabel, HeroMetricValue, HeroMetricValueUnit };
|
|
27
|
+
//# sourceMappingURL=hero-metric.d.cts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { Tone } from "../lib/tones.js";
|
|
4
|
+
|
|
5
|
+
//#region src/components/hero-metric.d.ts
|
|
6
|
+
declare const HeroMetric: ({
|
|
7
|
+
className,
|
|
8
|
+
...rest
|
|
9
|
+
}: React.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare const HeroMetricLabel: ({
|
|
11
|
+
className,
|
|
12
|
+
...rest
|
|
13
|
+
}: React.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare const HeroMetricValue: ({
|
|
15
|
+
className,
|
|
16
|
+
tone,
|
|
17
|
+
...rest
|
|
18
|
+
}: React.ComponentProps<"span"> & {
|
|
19
|
+
tone?: Tone;
|
|
20
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare const HeroMetricValueUnit: ({
|
|
22
|
+
className,
|
|
23
|
+
...rest
|
|
24
|
+
}: React.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { HeroMetric, HeroMetricLabel, HeroMetricValue, HeroMetricValueUnit };
|
|
27
|
+
//# sourceMappingURL=hero-metric.d.ts.map
|
|
@@ -2,18 +2,14 @@
|
|
|
2
2
|
import { cn } from "../utils/cn.js";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
import { cva } from "class-variance-authority";
|
|
5
|
-
//#region src/components/
|
|
6
|
-
const
|
|
5
|
+
//#region src/components/hero-metric.tsx
|
|
6
|
+
const HeroMetric = ({ className, ...rest }) => {
|
|
7
7
|
return /* @__PURE__ */ jsx("div", {
|
|
8
8
|
className: cn("flex flex-col items-center gap-1 rounded-lg border border-gray p-5 text-center", className),
|
|
9
9
|
...rest
|
|
10
10
|
});
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
* Label row above the value. Lays out children in a flex row with a small
|
|
14
|
-
* gap so a tooltip / icon can sit alongside the label text.
|
|
15
|
-
*/
|
|
16
|
-
const FeedInHeroLabel = ({ className, ...rest }) => {
|
|
12
|
+
const HeroMetricLabel = ({ className, ...rest }) => {
|
|
17
13
|
return /* @__PURE__ */ jsx("div", {
|
|
18
14
|
className: cn("flex items-center gap-1.5 text-xs font-medium text-gray-light", className),
|
|
19
15
|
...rest
|
|
@@ -29,7 +25,7 @@ const valueToneVariants = cva("text-4xl font-bold tabular-nums", {
|
|
|
29
25
|
} },
|
|
30
26
|
defaultVariants: { tone: "neutral" }
|
|
31
27
|
});
|
|
32
|
-
const
|
|
28
|
+
const HeroMetricValue = ({ className, tone, ...rest }) => {
|
|
33
29
|
return /* @__PURE__ */ jsx("span", {
|
|
34
30
|
className: valueToneVariants({
|
|
35
31
|
tone,
|
|
@@ -38,14 +34,13 @@ const FeedInHeroValue = ({ className, tone, ...rest }) => {
|
|
|
38
34
|
...rest
|
|
39
35
|
});
|
|
40
36
|
};
|
|
41
|
-
|
|
42
|
-
const FeedInHeroValueUnit = ({ className, ...rest }) => {
|
|
37
|
+
const HeroMetricValueUnit = ({ className, ...rest }) => {
|
|
43
38
|
return /* @__PURE__ */ jsx("span", {
|
|
44
39
|
className: cn("text-2xl font-semibold", className),
|
|
45
40
|
...rest
|
|
46
41
|
});
|
|
47
42
|
};
|
|
48
43
|
//#endregion
|
|
49
|
-
export {
|
|
44
|
+
export { HeroMetric, HeroMetricLabel, HeroMetricValue, HeroMetricValueUnit };
|
|
50
45
|
|
|
51
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=hero-metric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero-metric.js","names":[],"sources":["../../src/components/hero-metric.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport type { Tone } from '../lib/tones'\nimport { cn } from '../utils/cn'\n\nconst HeroMetric = ({ className, ...rest }: React.ComponentProps<'div'>) => {\n return (\n <div\n className={cn(\n 'flex flex-col items-center gap-1 rounded-lg border border-gray p-5 text-center',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst HeroMetricLabel = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => {\n return (\n <div\n className={cn(\n 'flex items-center gap-1.5 text-xs font-medium text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst valueToneVariants = cva('text-4xl font-bold tabular-nums', {\n variants: {\n tone: {\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n accent: 'text-accent',\n neutral: 'text-gray',\n },\n },\n defaultVariants: {\n tone: 'neutral',\n },\n})\n\nconst HeroMetricValue = ({\n className,\n tone,\n ...rest\n}: React.ComponentProps<'span'> & { tone?: Tone }) => {\n return <span className={valueToneVariants({ tone, className })} {...rest} />\n}\n\nconst HeroMetricValueUnit = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return <span className={cn('text-2xl font-semibold', className)} {...rest} />\n}\n\nexport { HeroMetric, HeroMetricLabel, HeroMetricValue, HeroMetricValueUnit }\n"],"mappings":";;;;;AAIA,MAAM,cAAc,EAAE,WAAW,GAAG,WAAwC;CAC1E,OACE,oBAAC,OAAD;EACE,WAAW,GACT,kFACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC8B;CACjC,OACE,oBAAC,OAAD;EACE,WAAW,GACT,iEACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,oBAAoB,IAAI,mCAAmC;CAC/D,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CAAC;AAED,MAAM,mBAAmB,EACvB,WACA,MACA,GAAG,WACiD;CACpD,OAAO,oBAAC,QAAD;EAAM,WAAW,kBAAkB;GAAE;GAAM;EAAU,CAAC;EAAG,GAAI;CAAO,CAAA;AAC7E;AAEA,MAAM,uBAAuB,EAC3B,WACA,GAAG,WAC+B;CAClC,OAAO,oBAAC,QAAD;EAAM,WAAW,GAAG,0BAA0B,SAAS;EAAG,GAAI;CAAO,CAAA;AAC9E"}
|
|
@@ -5,7 +5,7 @@ import { VariantProps } from "class-variance-authority";
|
|
|
5
5
|
|
|
6
6
|
//#region src/components/info-block.d.ts
|
|
7
7
|
declare const InfoBlock: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
|
|
8
|
-
variant?: "
|
|
8
|
+
variant?: "bare" | "default" | null | undefined;
|
|
9
9
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
|
|
10
10
|
declare const InfoBlockIcon: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
declare const InfoBlockContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|