@charcuterie/ui 4.8.0 → 4.9.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/README.md +1 -1
- package/dist/ProgressBar/ProgressBar.d.ts +3 -1
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +15 -7
- package/dist/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/ProgressCard/ProgressCard.d.ts +30 -0
- package/dist/ProgressCard/ProgressCard.d.ts.map +1 -0
- package/dist/ProgressCard/ProgressCard.js +15 -0
- package/dist/ProgressCard/ProgressCard.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/ProgressBar/ProgressBar.tsx +54 -30
- package/src/ProgressCard/ProgressCard.mdx +43 -0
- package/src/ProgressCard/ProgressCard.stories.tsx +178 -0
- package/src/ProgressCard/ProgressCard.test.tsx +118 -0
- package/src/ProgressCard/ProgressCard.tsx +152 -0
- package/src/index.ts +6 -0
- package/src/sourceRules.test.ts +4 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ The components. Look from `@charcuterie/tokens`, state from `@charcuterie/logic`
|
|
|
4
4
|
that Playwright and an AI agent can actually drive.
|
|
5
5
|
|
|
6
6
|
M3 ships the **P0 pure-presentation** set: `Spinner`, `Skeleton`, `Button`, `IconButton`,
|
|
7
|
-
`Badge`, `ProgressBar`, `EmptyState`, `Card`, `LiveStatusIndicator`, `MediaTile` — plus
|
|
7
|
+
`Badge`, `ProgressBar`, `ProgressCard`, `EmptyState`, `Card`, `LiveStatusIndicator`, `MediaTile` — plus
|
|
8
8
|
`VisuallyHidden`, which the first three of those need. M4 adds the overlays: `Modal`,
|
|
9
9
|
`Popover`, `Tabs`.
|
|
10
10
|
|
|
@@ -17,6 +17,8 @@ export type ProgressBarProps = Omit<ComponentPropsWithRef<"div">, "children"> &
|
|
|
17
17
|
/** Required. A progressbar with no name is a grey rectangle. */
|
|
18
18
|
label: string;
|
|
19
19
|
max?: number;
|
|
20
|
+
/** Content above a full-height, muted track. It stays outside the ARIA widget. */
|
|
21
|
+
overlay?: ReactNode;
|
|
20
22
|
size?: ProgressBarSize;
|
|
21
23
|
thresholds?: readonly ProgressThreshold[];
|
|
22
24
|
value?: number;
|
|
@@ -47,5 +49,5 @@ export type ProgressBarProps = Omit<ComponentPropsWithRef<"div">, "children"> &
|
|
|
47
49
|
* right by rendering a separate element; stating it on one
|
|
48
50
|
* element is the same answer without the duplication.
|
|
49
51
|
*/
|
|
50
|
-
export declare const ProgressBar: ({ className, intent, isIndeterminate, isLabelVisible, isValueShown, label, max, size, thresholds, value, ...divProps }: ProgressBarProps) => ReactNode;
|
|
52
|
+
export declare const ProgressBar: ({ className, intent, isIndeterminate, isLabelVisible, isValueShown, label, max, overlay, size, thresholds, value, ...divProps }: ProgressBarProps) => ReactNode;
|
|
51
53
|
//# sourceMappingURL=ProgressBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EACV,qBAAqB,EACrB,SAAS,EACV,MAAM,OAAO,CAAA;AAKd,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAO3D,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEhD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,qBAAqB,CAAC,KAAK,CAAC,EAC5B,UAAU,CACX,GAAG;IACF,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,WAAW,GAAI,
|
|
1
|
+
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EACV,qBAAqB,EACrB,SAAS,EACV,MAAM,OAAO,CAAA;AAKd,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAO3D,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEhD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,qBAAqB,CAAC,KAAK,CAAC,EAC5B,UAAU,CACX,GAAG;IACF,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,WAAW,GAAI,iIAazB,gBAAgB,KAAG,SA0GrB,CAAA"}
|
|
@@ -35,16 +35,24 @@ const TRACK_SIZE_CLASS = {
|
|
|
35
35
|
* right by rendering a separate element; stating it on one
|
|
36
36
|
* element is the same answer without the duplication.
|
|
37
37
|
*/
|
|
38
|
-
export const ProgressBar = ({ className, intent = "accent", isIndeterminate = false, isLabelVisible = false, isValueShown = false, label, max = 100, size = "md", thresholds, value = 0, ...divProps }) => {
|
|
38
|
+
export const ProgressBar = ({ className, intent = "accent", isIndeterminate = false, isLabelVisible = false, isValueShown = false, label, max = 100, overlay, size = "md", thresholds, value = 0, ...divProps }) => {
|
|
39
39
|
const labelId = useUniqueId();
|
|
40
40
|
const percent = toProgressPercent(value, max);
|
|
41
41
|
const clampedValue = toProgressValue(value, max);
|
|
42
42
|
const fillIntent = getProgressIntent(percent, intent, thresholds);
|
|
43
|
-
return (_jsxs("div", { ...divProps, className: toClassName("flex flex-col gap-1", className), children: [isLabelVisible || isValueShown ? (_jsxs("div", { className: "flex items-baseline justify-between gap-2 text-sm", children: [isLabelVisible ? (_jsx("span", { className: "text-content-secondary", id: labelId, children: label })) : (_jsx(VisuallyHidden, { id: labelId, children: label })), isValueShown && !isIndeterminate ? (_jsxs("span", { className: "text-content-muted tabular-nums", children: [percent, "%"] })) : null] })) : (_jsx(VisuallyHidden, { id: labelId, children: label })),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
return (_jsxs("div", { ...divProps, className: toClassName("flex flex-col gap-1", className), children: [isLabelVisible || isValueShown ? (_jsxs("div", { className: "flex items-baseline justify-between gap-2 text-sm", children: [isLabelVisible ? (_jsx("span", { className: "text-content-secondary", id: labelId, children: label })) : (_jsx(VisuallyHidden, { id: labelId, children: label })), isValueShown && !isIndeterminate ? (_jsxs("span", { className: "text-content-muted tabular-nums", children: [percent, "%"] })) : null] })) : (_jsx(VisuallyHidden, { id: labelId, children: label })), _jsxs("div", { className: overlay == null
|
|
44
|
+
? undefined
|
|
45
|
+
: "grid overflow-hidden rounded-xl", children: [_jsx("div", { "aria-busy": isIndeterminate || undefined, "aria-labelledby": labelId, "aria-valuemax": max, "aria-valuemin": 0, "aria-valuenow": isIndeterminate ? undefined : clampedValue, className: toClassName("relative w-full overflow-hidden rounded-full bg-surface-sunken", overlay == null
|
|
46
|
+
? TRACK_SIZE_CLASS[size]
|
|
47
|
+
: "h-full rounded-xl [grid-area:1/1]"), role: "progressbar", children: isIndeterminate ? (_jsx("span", { className: toClassName(
|
|
48
|
+
// The sweep animates `inset-inline-start`, so it runs
|
|
49
|
+
// the other way in RTL for free — and its
|
|
50
|
+
// reduced-motion fallback hatches the whole track
|
|
51
|
+
// rather than parking at one end.
|
|
52
|
+
"charcuterie-sweep absolute inset-y-0 w-2/5 rounded-full", INTENT_SOLID_FILL_CLASS[fillIntent], overlay == null
|
|
53
|
+
? undefined
|
|
54
|
+
: "rounded-none opacity-30") })) : (_jsx("span", { className: toClassName("block h-full rounded-full transition-[inline-size] duration-(--duration-normal) ease-standard", INTENT_SOLID_FILL_CLASS[fillIntent], overlay == null
|
|
55
|
+
? undefined
|
|
56
|
+
: "rounded-none opacity-30"), style: { inlineSize: `${percent}%` } })) }), overlay == null ? null : (_jsx("div", { className: "relative min-w-0 [grid-area:1/1]", children: overlay }))] })] }));
|
|
49
57
|
};
|
|
50
58
|
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAsC,CAAA;AAErE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { IntentName } from "@charcuterie/tokens";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import { type CardProps } from "../Card/Card.tsx";
|
|
4
|
+
export type ProgressCardMetric = {
|
|
5
|
+
label: string;
|
|
6
|
+
value: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export type ProgressCardLayout = "band" | "hierarchy";
|
|
9
|
+
export type ProgressCardProps = Omit<CardProps, "heading" | "footer"> & {
|
|
10
|
+
"aria-label": string;
|
|
11
|
+
/** App-owned identity: a title, an identifier, or a format mark. */
|
|
12
|
+
header: ReactNode;
|
|
13
|
+
/** Whole-card intent is independent of the progress fill. */
|
|
14
|
+
intent?: IntentName;
|
|
15
|
+
isIndeterminate?: boolean;
|
|
16
|
+
isValueEmphasized?: boolean;
|
|
17
|
+
layout?: ProgressCardLayout;
|
|
18
|
+
max?: number;
|
|
19
|
+
media?: ReactNode;
|
|
20
|
+
metrics?: readonly ProgressCardMetric[];
|
|
21
|
+
progressIntent?: IntentName;
|
|
22
|
+
progressLabel: string;
|
|
23
|
+
status?: string;
|
|
24
|
+
value?: number;
|
|
25
|
+
/** App-formatted percentage or terminal state; never inferred from intent. */
|
|
26
|
+
valueText: string;
|
|
27
|
+
};
|
|
28
|
+
/** A progress-first card. The app owns state, formatting, actions, and diagnosis. */
|
|
29
|
+
export declare const ProgressCard: ({ actions, children, className, header, intent, isIndeterminate, isValueEmphasized, layout, max, media, metrics, progressIntent, progressLabel, status, value, valueText, ...cardProps }: ProgressCardProps) => ReactNode;
|
|
30
|
+
//# sourceMappingURL=ProgressCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressCard.d.ts","sourceRoot":"","sources":["../../src/ProgressCard/ProgressCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAKvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,WAAW,CAAA;AAErD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,SAAS,EACT,SAAS,GAAG,QAAQ,CACrB,GAAG;IACF,YAAY,EAAE,MAAM,CAAA;IACpB,oEAAoE;IACpE,MAAM,EAAE,SAAS,CAAA;IACjB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACvC,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,YAAY,GAAI,0LAkB1B,iBAAiB,KAAG,SA8FtB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Card } from "../Card/Card.js";
|
|
3
|
+
import { INTENT_APPEARANCE_CLASS } from "../intentStyles.js";
|
|
4
|
+
import { ProgressBar } from "../ProgressBar/ProgressBar.js";
|
|
5
|
+
import { toClassName } from "../toClassName.js";
|
|
6
|
+
/** A progress-first card. The app owns state, formatting, actions, and diagnosis. */
|
|
7
|
+
export const ProgressCard = ({ actions, children, className, header, intent = "neutral", isIndeterminate = false, isValueEmphasized = true, layout = "band", max, media, metrics = [], progressIntent = "accent", progressLabel, status, value, valueText, ...cardProps }) => {
|
|
8
|
+
const headline = (_jsxs("div", { className: toClassName("relative flex flex-wrap items-end justify-between gap-2", layout === "band" ? "p-3" : "mb-3"), children: [status ? (_jsx("span", { className: "min-w-0 wrap-anywhere font-medium text-content-secondary text-sm", children: status })) : null, _jsx("span", { className: toClassName("min-w-0 wrap-anywhere text-end tabular-nums", isValueEmphasized
|
|
9
|
+
? "font-bold text-4xl leading-none tracking-tight cq-sm:text-[3.25rem]"
|
|
10
|
+
: "font-semibold text-xl"), children: valueText })] }));
|
|
11
|
+
return (_jsx(Card, { ...cardProps, className: toClassName("relative rounded-2xl", intent === "neutral"
|
|
12
|
+
? undefined
|
|
13
|
+
: INTENT_APPEARANCE_CLASS[intent].soft, "text-content-primary", className), children: _jsxs("div", { className: "flex gap-3.5", children: [media ? (_jsx("div", { className: "flex shrink-0 flex-col items-start gap-2", children: media })) : null, _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsx("div", { className: "min-w-0 flex-1 basis-40 wrap-anywhere", children: header }), actions ? (_jsx("div", { className: "relative z-10 flex flex-wrap items-center gap-2", children: actions })) : null] }), _jsxs("div", { className: "mt-5", children: [layout === "hierarchy" ? headline : null, _jsx(ProgressBar, { intent: progressIntent, isIndeterminate: isIndeterminate, label: progressLabel, max: max, overlay: layout === "band" ? headline : undefined, value: value })] }), metrics.length > 0 ? (_jsx("div", { className: "@container", children: _jsx("dl", { className: "mt-3 grid grid-cols-1 gap-2 cq-sm:grid-cols-3", children: metrics.map(({ label, value: metricValue }) => (_jsxs("div", { className: "flex items-baseline justify-between gap-2 rounded-lg border border-border-subtle bg-surface-sunken/70 px-2.5 py-2 cq-sm:block", children: [_jsx("dt", { className: "min-w-0 wrap-anywhere font-semibold text-content-muted text-xs uppercase tracking-wide", children: label }), _jsx("dd", { className: "m-0 min-w-0 wrap-anywhere font-semibold text-lg tabular-nums cq-sm:mt-1", children: metricValue ?? "—" })] }, label))) }) })) : null, children] })] }) }));
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=ProgressCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressCard.js","sourceRoot":"","sources":["../../src/ProgressCard/ProgressCard.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,IAAI,EAAkB,MAAM,iBAAkB,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAAgC,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAgC/C,qFAAqF;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,SAAS,EACT,MAAM,EACN,MAAM,GAAG,SAAS,EAClB,eAAe,GAAG,KAAK,EACvB,iBAAiB,GAAG,IAAI,EACxB,MAAM,GAAG,MAAM,EACf,GAAG,EACH,KAAK,EACL,OAAO,GAAG,EAAE,EACZ,cAAc,GAAG,QAAQ,EACzB,aAAa,EACb,MAAM,EACN,KAAK,EACL,SAAS,EACT,GAAG,SAAS,EACM,EAAa,EAAE;IACjC,MAAM,QAAQ,GAAG,CACf,eACE,SAAS,EAAE,WAAW,CACpB,yDAAyD,EACzD,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CACnC,aAEA,MAAM,CAAC,CAAC,CAAC,CACR,eAAM,SAAS,EAAC,kEAAkE,YAC/E,MAAM,GACF,CACR,CAAC,CAAC,CAAC,IAAI,EACR,eACE,SAAS,EAAE,WAAW,CACpB,6CAA6C,EAC7C,iBAAiB;oBACf,CAAC,CAAC,qEAAqE;oBACvE,CAAC,CAAC,uBAAuB,CAC5B,YAEA,SAAS,GACL,IACH,CACP,CAAA;IAED,OAAO,CACL,KAAC,IAAI,OACC,SAAS,EACb,SAAS,EAAE,WAAW,CACpB,sBAAsB,EACtB,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,IAAI,EACxC,sBAAsB,EACtB,SAAS,CACV,YAED,eAAK,SAAS,EAAC,cAAc,aAC1B,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,SAAS,EAAC,0CAA0C,YACtD,KAAK,GACF,CACP,CAAC,CAAC,CAAC,IAAI,EACR,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAK,SAAS,EAAC,kDAAkD,aAC/D,cAAK,SAAS,EAAC,uCAAuC,YACnD,MAAM,GACH,EACL,OAAO,CAAC,CAAC,CAAC,CACT,cAAK,SAAS,EAAC,iDAAiD,YAC7D,OAAO,GACJ,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,eAAK,SAAS,EAAC,MAAM,aAClB,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EACzC,KAAC,WAAW,IACV,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,GAAG,EACR,OAAO,EACL,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAE1C,KAAK,EAAE,KAAK,GACZ,IACE,EACL,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACpB,cAAK,SAAS,EAAC,YAAY,YACzB,aAAI,SAAS,EAAC,+CAA+C,YAC1D,OAAO,CAAC,GAAG,CACV,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CACjC,eACE,SAAS,EAAC,+HAA+H,aAGzI,aAAI,SAAS,EAAC,wFAAwF,YACnG,KAAK,GACH,EACL,aAAI,SAAS,EAAC,yEAAyE,YACpF,WAAW,IAAI,GAAG,GAChB,KAPA,KAAK,CAQN,CACP,CACF,GACE,GACD,CACP,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,IACL,IACF,GACD,CACR,CAAA;AACH,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -166,6 +166,8 @@ export type { ProgressBarProps, ProgressBarSize, } from "./ProgressBar/ProgressB
|
|
|
166
166
|
export { ProgressBar } from "./ProgressBar/ProgressBar.tsx";
|
|
167
167
|
export type { ProgressThreshold } from "./ProgressBar/progressValue.ts";
|
|
168
168
|
export { getProgressIntent, toProgressPercent, toProgressValue, } from "./ProgressBar/progressValue.ts";
|
|
169
|
+
export type { ProgressCardLayout, ProgressCardMetric, ProgressCardProps, } from "./ProgressCard/ProgressCard.tsx";
|
|
170
|
+
export { ProgressCard } from "./ProgressCard/ProgressCard.tsx";
|
|
169
171
|
export type { QueryBuilderLabels, QueryBuilderProps, } from "./QueryBuilder/QueryBuilder.tsx";
|
|
170
172
|
export { QueryBuilder } from "./QueryBuilder/QueryBuilder.tsx";
|
|
171
173
|
export type { RadioGroupProps, RadioItem, } from "./RadioGroup/RadioGroup.tsx";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -93,6 +93,7 @@ export { Popover } from "./Popover/Popover.js";
|
|
|
93
93
|
export { PortraitTiles } from "./PortraitTiles/PortraitTiles.js";
|
|
94
94
|
export { ProgressBar } from "./ProgressBar/ProgressBar.js";
|
|
95
95
|
export { getProgressIntent, toProgressPercent, toProgressValue, } from "./ProgressBar/progressValue.js";
|
|
96
|
+
export { ProgressCard } from "./ProgressCard/ProgressCard.js";
|
|
96
97
|
export { QueryBuilder } from "./QueryBuilder/QueryBuilder.js";
|
|
97
98
|
export { RadioGroup } from "./RadioGroup/RadioGroup.js";
|
|
98
99
|
export { Rail } from "./Rail/Rail.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -35,6 +35,8 @@ export type ProgressBarProps = Omit<
|
|
|
35
35
|
/** Required. A progressbar with no name is a grey rectangle. */
|
|
36
36
|
label: string
|
|
37
37
|
max?: number
|
|
38
|
+
/** Content above a full-height, muted track. It stays outside the ARIA widget. */
|
|
39
|
+
overlay?: ReactNode
|
|
38
40
|
size?: ProgressBarSize
|
|
39
41
|
thresholds?: readonly ProgressThreshold[]
|
|
40
42
|
value?: number
|
|
@@ -80,6 +82,7 @@ export const ProgressBar = ({
|
|
|
80
82
|
isValueShown = false,
|
|
81
83
|
label,
|
|
82
84
|
max = 100,
|
|
85
|
+
overlay,
|
|
83
86
|
size = "md",
|
|
84
87
|
thresholds,
|
|
85
88
|
value = 0,
|
|
@@ -133,38 +136,59 @@ export const ProgressBar = ({
|
|
|
133
136
|
)}
|
|
134
137
|
|
|
135
138
|
<div
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
aria-valuenow={
|
|
141
|
-
isIndeterminate ? undefined : clampedValue
|
|
139
|
+
className={
|
|
140
|
+
overlay == null
|
|
141
|
+
? undefined
|
|
142
|
+
: "grid overflow-hidden rounded-xl"
|
|
142
143
|
}
|
|
143
|
-
className={toClassName(
|
|
144
|
-
"relative w-full overflow-hidden rounded-full bg-surface-sunken",
|
|
145
|
-
TRACK_SIZE_CLASS[size],
|
|
146
|
-
)}
|
|
147
|
-
role="progressbar"
|
|
148
144
|
>
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
145
|
+
<div
|
|
146
|
+
aria-busy={isIndeterminate || undefined}
|
|
147
|
+
aria-labelledby={labelId}
|
|
148
|
+
aria-valuemax={max}
|
|
149
|
+
aria-valuemin={0}
|
|
150
|
+
aria-valuenow={
|
|
151
|
+
isIndeterminate ? undefined : clampedValue
|
|
152
|
+
}
|
|
153
|
+
className={toClassName(
|
|
154
|
+
"relative w-full overflow-hidden rounded-full bg-surface-sunken",
|
|
155
|
+
overlay == null
|
|
156
|
+
? TRACK_SIZE_CLASS[size]
|
|
157
|
+
: "h-full rounded-xl [grid-area:1/1]",
|
|
158
|
+
)}
|
|
159
|
+
role="progressbar"
|
|
160
|
+
>
|
|
161
|
+
{isIndeterminate ? (
|
|
162
|
+
<span
|
|
163
|
+
className={toClassName(
|
|
164
|
+
// The sweep animates `inset-inline-start`, so it runs
|
|
165
|
+
// the other way in RTL for free — and its
|
|
166
|
+
// reduced-motion fallback hatches the whole track
|
|
167
|
+
// rather than parking at one end.
|
|
168
|
+
"charcuterie-sweep absolute inset-y-0 w-2/5 rounded-full",
|
|
169
|
+
INTENT_SOLID_FILL_CLASS[fillIntent],
|
|
170
|
+
overlay == null
|
|
171
|
+
? undefined
|
|
172
|
+
: "rounded-none opacity-30",
|
|
173
|
+
)}
|
|
174
|
+
/>
|
|
175
|
+
) : (
|
|
176
|
+
<span
|
|
177
|
+
className={toClassName(
|
|
178
|
+
"block h-full rounded-full transition-[inline-size] duration-(--duration-normal) ease-standard",
|
|
179
|
+
INTENT_SOLID_FILL_CLASS[fillIntent],
|
|
180
|
+
overlay == null
|
|
181
|
+
? undefined
|
|
182
|
+
: "rounded-none opacity-30",
|
|
183
|
+
)}
|
|
184
|
+
style={{ inlineSize: `${percent}%` }}
|
|
185
|
+
/>
|
|
186
|
+
)}
|
|
187
|
+
</div>
|
|
188
|
+
{overlay == null ? null : (
|
|
189
|
+
<div className="relative min-w-0 [grid-area:1/1]">
|
|
190
|
+
{overlay}
|
|
191
|
+
</div>
|
|
168
192
|
)}
|
|
169
193
|
</div>
|
|
170
194
|
</div>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Canvas, Controls, Meta } from "@storybook/addon-docs/blocks";
|
|
2
|
+
import * as ProgressCardStories from "./ProgressCard.stories";
|
|
3
|
+
|
|
4
|
+
<Meta of={ProgressCardStories} />
|
|
5
|
+
|
|
6
|
+
# ProgressCard
|
|
7
|
+
|
|
8
|
+
A progress-first card with a large value over a filled band and distinct metric blocks.
|
|
9
|
+
Use it for transfers, imports, backups, or other measurable work. `Card` owns the shell;
|
|
10
|
+
`ProgressBar` owns clamping, the named ARIA widget, and indeterminate motion.
|
|
11
|
+
|
|
12
|
+
<Canvas of={ProgressCardStories.Playground} />
|
|
13
|
+
|
|
14
|
+
## Ownership
|
|
15
|
+
|
|
16
|
+
The library owns layout, responsive typography, metric contrast, and whole-card intent.
|
|
17
|
+
The app supplies identity, media, formatted values, actions, and meaningful issue text.
|
|
18
|
+
Neither an absent diagnosis nor a numeric percentage implies a warning here.
|
|
19
|
+
|
|
20
|
+
`intent` colors the entire card; `progressIntent` colors the fill independently.
|
|
21
|
+
`valueText` is app-formatted text, while `value` and `max` drive measurable progress.
|
|
22
|
+
Set `isIndeterminate` when progress cannot yet be measured and use a state such as
|
|
23
|
+
"Preparing" for `valueText`. Set `isValueEmphasized={false}` for terminal state text.
|
|
24
|
+
The band overlay stays outside the progressbar role so its content retains semantics.
|
|
25
|
+
|
|
26
|
+
<Controls />
|
|
27
|
+
|
|
28
|
+
## Layouts and states
|
|
29
|
+
|
|
30
|
+
`band` is the default. `hierarchy` places the same headline above a thin progress track.
|
|
31
|
+
Metrics stack when their own content area is narrow, even if media makes the whole card
|
|
32
|
+
wide. The viewport does not decide this. Labels should be unique.
|
|
33
|
+
|
|
34
|
+
<Canvas of={ProgressCardStories.AllVariants} />
|
|
35
|
+
<Canvas of={ProgressCardStories.AllStates} />
|
|
36
|
+
<Canvas of={ProgressCardStories.Responsive} />
|
|
37
|
+
|
|
38
|
+
## App-owned controls
|
|
39
|
+
|
|
40
|
+
Action slots use the same controls as the rest of the app. The card does not define cancel,
|
|
41
|
+
retry, or confirmation policy. Additional issue details belong in `children`.
|
|
42
|
+
|
|
43
|
+
<Canvas of={ProgressCardStories.Interactive} />
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters"
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
|
+
import { useState } from "react"
|
|
4
|
+
|
|
5
|
+
import { intentArgType } from "../argTypes.storyHelpers.ts"
|
|
6
|
+
import { Button } from "../Button/Button.tsx"
|
|
7
|
+
import {
|
|
8
|
+
ContainerBoard,
|
|
9
|
+
StoryCell,
|
|
10
|
+
StoryGrid,
|
|
11
|
+
} from "../board.storyHelpers.tsx"
|
|
12
|
+
import { ProgressCard } from "./ProgressCard.tsx"
|
|
13
|
+
|
|
14
|
+
const metrics = [
|
|
15
|
+
{ label: "Speed", value: "17.2 MB/s" },
|
|
16
|
+
{ label: "Remaining", value: "9m" },
|
|
17
|
+
{ label: "Finishes", value: "4:44 AM" },
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
const meta = {
|
|
21
|
+
title: "Components/Feedback/ProgressCard",
|
|
22
|
+
component: ProgressCard,
|
|
23
|
+
parameters: { layout: "padded" },
|
|
24
|
+
argTypes: {
|
|
25
|
+
intent: intentArgType,
|
|
26
|
+
progressIntent: intentArgType,
|
|
27
|
+
},
|
|
28
|
+
args: {
|
|
29
|
+
"aria-label": "Archive transfer",
|
|
30
|
+
header: "Archive transfer",
|
|
31
|
+
layout: "band",
|
|
32
|
+
metrics,
|
|
33
|
+
progressLabel: "Transfer progress",
|
|
34
|
+
status: "Transferring",
|
|
35
|
+
value: 82.5,
|
|
36
|
+
valueText: "82.5%",
|
|
37
|
+
},
|
|
38
|
+
} satisfies Meta<typeof ProgressCard>
|
|
39
|
+
|
|
40
|
+
export default meta
|
|
41
|
+
type Story = StoryObj<typeof meta>
|
|
42
|
+
|
|
43
|
+
export const Playground: Story = {
|
|
44
|
+
parameters: playgroundParameters,
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const AllVariants: Story = {
|
|
48
|
+
render: (props) => (
|
|
49
|
+
<StoryGrid columns={2}>
|
|
50
|
+
{(["band", "hierarchy"] as const).map((layout) => (
|
|
51
|
+
<StoryCell
|
|
52
|
+
align="stretch"
|
|
53
|
+
key={layout}
|
|
54
|
+
label={layout}
|
|
55
|
+
>
|
|
56
|
+
<ProgressCard
|
|
57
|
+
{...props}
|
|
58
|
+
aria-label={`Transfer ${layout}`}
|
|
59
|
+
layout={layout}
|
|
60
|
+
/>
|
|
61
|
+
</StoryCell>
|
|
62
|
+
))}
|
|
63
|
+
</StoryGrid>
|
|
64
|
+
),
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export const AllStates: Story = {
|
|
68
|
+
render: (props) => (
|
|
69
|
+
<StoryGrid columns={2}>
|
|
70
|
+
<StoryCell align="stretch" label="Preparing">
|
|
71
|
+
<ProgressCard
|
|
72
|
+
{...props}
|
|
73
|
+
aria-label="Preparing transfer"
|
|
74
|
+
isIndeterminate
|
|
75
|
+
isValueEmphasized={false}
|
|
76
|
+
metrics={[]}
|
|
77
|
+
status={undefined}
|
|
78
|
+
valueText="Preparing"
|
|
79
|
+
/>
|
|
80
|
+
</StoryCell>
|
|
81
|
+
<StoryCell align="stretch" label="Warning">
|
|
82
|
+
<ProgressCard
|
|
83
|
+
{...props}
|
|
84
|
+
aria-label="Transfer warning"
|
|
85
|
+
intent="warning"
|
|
86
|
+
progressIntent="warning"
|
|
87
|
+
status="Needs attention"
|
|
88
|
+
>
|
|
89
|
+
<p className="mt-2 text-intent-warning-content text-sm">
|
|
90
|
+
The source stopped responding.
|
|
91
|
+
</p>
|
|
92
|
+
</ProgressCard>
|
|
93
|
+
</StoryCell>
|
|
94
|
+
<StoryCell align="stretch" label="Failed">
|
|
95
|
+
<ProgressCard
|
|
96
|
+
{...props}
|
|
97
|
+
aria-label="Failed transfer"
|
|
98
|
+
intent="danger"
|
|
99
|
+
isValueEmphasized={false}
|
|
100
|
+
metrics={[]}
|
|
101
|
+
progressIntent="danger"
|
|
102
|
+
status={undefined}
|
|
103
|
+
valueText="Failed"
|
|
104
|
+
/>
|
|
105
|
+
</StoryCell>
|
|
106
|
+
<StoryCell align="stretch" label="Complete">
|
|
107
|
+
<ProgressCard
|
|
108
|
+
{...props}
|
|
109
|
+
aria-label="Complete transfer"
|
|
110
|
+
isValueEmphasized={false}
|
|
111
|
+
metrics={[]}
|
|
112
|
+
progressIntent="success"
|
|
113
|
+
status={undefined}
|
|
114
|
+
value={100}
|
|
115
|
+
valueText="Complete"
|
|
116
|
+
/>
|
|
117
|
+
</StoryCell>
|
|
118
|
+
</StoryGrid>
|
|
119
|
+
),
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export const Responsive: Story = {
|
|
123
|
+
render: (props) => (
|
|
124
|
+
<ContainerBoard>
|
|
125
|
+
{(width) => (
|
|
126
|
+
<ProgressCard
|
|
127
|
+
{...props}
|
|
128
|
+
aria-label={`Transfer at ${width}`}
|
|
129
|
+
header="ARCHIVE_TRANSFER_WITH_A_VERY_LONG_UNBROKEN_NAME"
|
|
130
|
+
media={
|
|
131
|
+
<span className="rounded-md bg-surface-sunken p-2">
|
|
132
|
+
07
|
|
133
|
+
</span>
|
|
134
|
+
}
|
|
135
|
+
actions={
|
|
136
|
+
<Button
|
|
137
|
+
appearance="outline"
|
|
138
|
+
intent="danger"
|
|
139
|
+
size="sm"
|
|
140
|
+
>
|
|
141
|
+
Cancel
|
|
142
|
+
</Button>
|
|
143
|
+
}
|
|
144
|
+
/>
|
|
145
|
+
)}
|
|
146
|
+
</ContainerBoard>
|
|
147
|
+
),
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const ControlledProgressCard = () => {
|
|
151
|
+
const [isCanceled, setIsCanceled] = useState(false)
|
|
152
|
+
return (
|
|
153
|
+
<ProgressCard
|
|
154
|
+
aria-label="Cancelable transfer"
|
|
155
|
+
header="Archive transfer"
|
|
156
|
+
actions={
|
|
157
|
+
<Button
|
|
158
|
+
appearance="outline"
|
|
159
|
+
intent="danger"
|
|
160
|
+
isDisabled={isCanceled}
|
|
161
|
+
onClick={() => setIsCanceled(true)}
|
|
162
|
+
>
|
|
163
|
+
Cancel
|
|
164
|
+
</Button>
|
|
165
|
+
}
|
|
166
|
+
isValueEmphasized={!isCanceled}
|
|
167
|
+
metrics={isCanceled ? [] : metrics}
|
|
168
|
+
progressLabel="Transfer progress"
|
|
169
|
+
status={isCanceled ? undefined : "Transferring"}
|
|
170
|
+
value={82.5}
|
|
171
|
+
valueText={isCanceled ? "Canceled" : "82.5%"}
|
|
172
|
+
/>
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export const Interactive: Story = {
|
|
177
|
+
render: () => <ControlledProgressCard />,
|
|
178
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { composeStories } from "@storybook/react"
|
|
2
|
+
import { expect, userEvent, within } from "storybook/test"
|
|
3
|
+
import { test } from "vitest"
|
|
4
|
+
|
|
5
|
+
import { mountStory } from "../mountStory.testHelpers.ts"
|
|
6
|
+
import { expectAgentDrivable } from "../testing/index.ts"
|
|
7
|
+
import {
|
|
8
|
+
DESKTOP,
|
|
9
|
+
setViewport,
|
|
10
|
+
} from "../viewport.testHelpers.ts"
|
|
11
|
+
import * as stories from "./ProgressCard.stories.tsx"
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
Playground,
|
|
15
|
+
AllVariants,
|
|
16
|
+
AllStates,
|
|
17
|
+
Responsive,
|
|
18
|
+
Interactive,
|
|
19
|
+
} = composeStories(stories)
|
|
20
|
+
|
|
21
|
+
test("the large value overlays a real named progressbar and the metrics stay outside it", async () => {
|
|
22
|
+
const { canvas } = await mountStory(Playground)
|
|
23
|
+
const card = expectAgentDrivable(canvas, {
|
|
24
|
+
role: "region",
|
|
25
|
+
name: "Archive transfer",
|
|
26
|
+
})
|
|
27
|
+
const bar = within(card).getByRole("progressbar", {
|
|
28
|
+
name: "Transfer progress",
|
|
29
|
+
})
|
|
30
|
+
const percentage = within(card).getByText("82.5%")
|
|
31
|
+
await expect(bar).toHaveAttribute("aria-valuenow", "82.5")
|
|
32
|
+
await expect(bar).not.toContainElement(percentage)
|
|
33
|
+
await expect(
|
|
34
|
+
bar.getBoundingClientRect().height,
|
|
35
|
+
).toBeGreaterThan(50)
|
|
36
|
+
await expect(
|
|
37
|
+
bar.getBoundingClientRect().top,
|
|
38
|
+
).toBeLessThan(percentage.getBoundingClientRect().top)
|
|
39
|
+
await expect(
|
|
40
|
+
within(card).getAllByRole("term"),
|
|
41
|
+
).toHaveLength(3)
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
test("both layouts preserve progress semantics", async () => {
|
|
45
|
+
const { canvas } = await mountStory(AllVariants)
|
|
46
|
+
for (const layout of ["band", "hierarchy"]) {
|
|
47
|
+
const card = expectAgentDrivable(canvas, {
|
|
48
|
+
role: "region",
|
|
49
|
+
name: `Transfer ${layout}`,
|
|
50
|
+
})
|
|
51
|
+
await expect(
|
|
52
|
+
within(card).getByRole("progressbar"),
|
|
53
|
+
).toHaveAttribute("aria-valuenow", "82.5")
|
|
54
|
+
await expect(
|
|
55
|
+
within(card).getByText("82.5%"),
|
|
56
|
+
).toBeVisible()
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
test("issues tint the complete card and indeterminate progress has no invented value", async () => {
|
|
61
|
+
const { canvas } = await mountStory(AllStates)
|
|
62
|
+
const warning = expectAgentDrivable(canvas, {
|
|
63
|
+
role: "region",
|
|
64
|
+
name: "Transfer warning",
|
|
65
|
+
})
|
|
66
|
+
await expect(warning).toHaveClass(
|
|
67
|
+
"bg-intent-warning-surface",
|
|
68
|
+
)
|
|
69
|
+
await expect(
|
|
70
|
+
canvas.getByRole("region", { name: "Failed transfer" }),
|
|
71
|
+
).toHaveClass("bg-intent-danger-surface")
|
|
72
|
+
const preparing = canvas.getByRole("region", {
|
|
73
|
+
name: "Preparing transfer",
|
|
74
|
+
})
|
|
75
|
+
await expect(
|
|
76
|
+
within(preparing).getByRole("progressbar"),
|
|
77
|
+
).not.toHaveAttribute("aria-valuenow")
|
|
78
|
+
await expect(
|
|
79
|
+
within(preparing).queryByRole("term"),
|
|
80
|
+
).not.toBeInTheDocument()
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
test("the card fits each container width with a long title, media, and actions", async () => {
|
|
84
|
+
await setViewport(DESKTOP)
|
|
85
|
+
const { canvas } = await mountStory(Responsive)
|
|
86
|
+
for (const width of ["15rem", "24rem", "34rem"]) {
|
|
87
|
+
const card = expectAgentDrivable(canvas, {
|
|
88
|
+
role: "region",
|
|
89
|
+
name: `Transfer at ${width}`,
|
|
90
|
+
})
|
|
91
|
+
await expect(card.scrollWidth).toBeLessThanOrEqual(
|
|
92
|
+
card.clientWidth,
|
|
93
|
+
)
|
|
94
|
+
const metrics = card.querySelector("dl") as HTMLElement
|
|
95
|
+
await expect(
|
|
96
|
+
getComputedStyle(metrics).gridTemplateColumns.split(
|
|
97
|
+
" ",
|
|
98
|
+
),
|
|
99
|
+
).toHaveLength(width === "34rem" ? 3 : 1)
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
test("the app action remains keyboard-operable above the progress band", async () => {
|
|
104
|
+
const { canvas } = await mountStory(Interactive)
|
|
105
|
+
const card = expectAgentDrivable(canvas, {
|
|
106
|
+
role: "region",
|
|
107
|
+
name: "Cancelable transfer",
|
|
108
|
+
})
|
|
109
|
+
const cancel = within(card).getByRole("button", {
|
|
110
|
+
name: "Cancel",
|
|
111
|
+
})
|
|
112
|
+
cancel.focus()
|
|
113
|
+
await userEvent.keyboard("{Enter}")
|
|
114
|
+
await expect(
|
|
115
|
+
within(card).getByText("Canceled"),
|
|
116
|
+
).toBeVisible()
|
|
117
|
+
await expect(cancel).toBeDisabled()
|
|
118
|
+
})
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import type { IntentName } from "@charcuterie/tokens"
|
|
2
|
+
import type { ReactNode } from "react"
|
|
3
|
+
|
|
4
|
+
import { Card, type CardProps } from "../Card/Card.tsx"
|
|
5
|
+
import { INTENT_APPEARANCE_CLASS } from "../intentStyles.ts"
|
|
6
|
+
import { ProgressBar } from "../ProgressBar/ProgressBar.tsx"
|
|
7
|
+
import { toClassName } from "../toClassName.ts"
|
|
8
|
+
|
|
9
|
+
export type ProgressCardMetric = {
|
|
10
|
+
label: string
|
|
11
|
+
value: ReactNode
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type ProgressCardLayout = "band" | "hierarchy"
|
|
15
|
+
|
|
16
|
+
export type ProgressCardProps = Omit<
|
|
17
|
+
CardProps,
|
|
18
|
+
"heading" | "footer"
|
|
19
|
+
> & {
|
|
20
|
+
"aria-label": string
|
|
21
|
+
/** App-owned identity: a title, an identifier, or a format mark. */
|
|
22
|
+
header: ReactNode
|
|
23
|
+
/** Whole-card intent is independent of the progress fill. */
|
|
24
|
+
intent?: IntentName
|
|
25
|
+
isIndeterminate?: boolean
|
|
26
|
+
isValueEmphasized?: boolean
|
|
27
|
+
layout?: ProgressCardLayout
|
|
28
|
+
max?: number
|
|
29
|
+
media?: ReactNode
|
|
30
|
+
metrics?: readonly ProgressCardMetric[]
|
|
31
|
+
progressIntent?: IntentName
|
|
32
|
+
progressLabel: string
|
|
33
|
+
status?: string
|
|
34
|
+
value?: number
|
|
35
|
+
/** App-formatted percentage or terminal state; never inferred from intent. */
|
|
36
|
+
valueText: string
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** A progress-first card. The app owns state, formatting, actions, and diagnosis. */
|
|
40
|
+
export const ProgressCard = ({
|
|
41
|
+
actions,
|
|
42
|
+
children,
|
|
43
|
+
className,
|
|
44
|
+
header,
|
|
45
|
+
intent = "neutral",
|
|
46
|
+
isIndeterminate = false,
|
|
47
|
+
isValueEmphasized = true,
|
|
48
|
+
layout = "band",
|
|
49
|
+
max,
|
|
50
|
+
media,
|
|
51
|
+
metrics = [],
|
|
52
|
+
progressIntent = "accent",
|
|
53
|
+
progressLabel,
|
|
54
|
+
status,
|
|
55
|
+
value,
|
|
56
|
+
valueText,
|
|
57
|
+
...cardProps
|
|
58
|
+
}: ProgressCardProps): ReactNode => {
|
|
59
|
+
const headline = (
|
|
60
|
+
<div
|
|
61
|
+
className={toClassName(
|
|
62
|
+
"relative flex flex-wrap items-end justify-between gap-2",
|
|
63
|
+
layout === "band" ? "p-3" : "mb-3",
|
|
64
|
+
)}
|
|
65
|
+
>
|
|
66
|
+
{status ? (
|
|
67
|
+
<span className="min-w-0 wrap-anywhere font-medium text-content-secondary text-sm">
|
|
68
|
+
{status}
|
|
69
|
+
</span>
|
|
70
|
+
) : null}
|
|
71
|
+
<span
|
|
72
|
+
className={toClassName(
|
|
73
|
+
"min-w-0 wrap-anywhere text-end tabular-nums",
|
|
74
|
+
isValueEmphasized
|
|
75
|
+
? "font-bold text-4xl leading-none tracking-tight cq-sm:text-[3.25rem]"
|
|
76
|
+
: "font-semibold text-xl",
|
|
77
|
+
)}
|
|
78
|
+
>
|
|
79
|
+
{valueText}
|
|
80
|
+
</span>
|
|
81
|
+
</div>
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
<Card
|
|
86
|
+
{...cardProps}
|
|
87
|
+
className={toClassName(
|
|
88
|
+
"relative rounded-2xl",
|
|
89
|
+
intent === "neutral"
|
|
90
|
+
? undefined
|
|
91
|
+
: INTENT_APPEARANCE_CLASS[intent].soft,
|
|
92
|
+
"text-content-primary",
|
|
93
|
+
className,
|
|
94
|
+
)}
|
|
95
|
+
>
|
|
96
|
+
<div className="flex gap-3.5">
|
|
97
|
+
{media ? (
|
|
98
|
+
<div className="flex shrink-0 flex-col items-start gap-2">
|
|
99
|
+
{media}
|
|
100
|
+
</div>
|
|
101
|
+
) : null}
|
|
102
|
+
<div className="min-w-0 flex-1">
|
|
103
|
+
<div className="flex flex-wrap items-start justify-between gap-3">
|
|
104
|
+
<div className="min-w-0 flex-1 basis-40 wrap-anywhere">
|
|
105
|
+
{header}
|
|
106
|
+
</div>
|
|
107
|
+
{actions ? (
|
|
108
|
+
<div className="relative z-10 flex flex-wrap items-center gap-2">
|
|
109
|
+
{actions}
|
|
110
|
+
</div>
|
|
111
|
+
) : null}
|
|
112
|
+
</div>
|
|
113
|
+
<div className="mt-5">
|
|
114
|
+
{layout === "hierarchy" ? headline : null}
|
|
115
|
+
<ProgressBar
|
|
116
|
+
intent={progressIntent}
|
|
117
|
+
isIndeterminate={isIndeterminate}
|
|
118
|
+
label={progressLabel}
|
|
119
|
+
max={max}
|
|
120
|
+
overlay={
|
|
121
|
+
layout === "band" ? headline : undefined
|
|
122
|
+
}
|
|
123
|
+
value={value}
|
|
124
|
+
/>
|
|
125
|
+
</div>
|
|
126
|
+
{metrics.length > 0 ? (
|
|
127
|
+
<div className="@container">
|
|
128
|
+
<dl className="mt-3 grid grid-cols-1 gap-2 cq-sm:grid-cols-3">
|
|
129
|
+
{metrics.map(
|
|
130
|
+
({ label, value: metricValue }) => (
|
|
131
|
+
<div
|
|
132
|
+
className="flex items-baseline justify-between gap-2 rounded-lg border border-border-subtle bg-surface-sunken/70 px-2.5 py-2 cq-sm:block"
|
|
133
|
+
key={label}
|
|
134
|
+
>
|
|
135
|
+
<dt className="min-w-0 wrap-anywhere font-semibold text-content-muted text-xs uppercase tracking-wide">
|
|
136
|
+
{label}
|
|
137
|
+
</dt>
|
|
138
|
+
<dd className="m-0 min-w-0 wrap-anywhere font-semibold text-lg tabular-nums cq-sm:mt-1">
|
|
139
|
+
{metricValue ?? "—"}
|
|
140
|
+
</dd>
|
|
141
|
+
</div>
|
|
142
|
+
),
|
|
143
|
+
)}
|
|
144
|
+
</dl>
|
|
145
|
+
</div>
|
|
146
|
+
) : null}
|
|
147
|
+
{children}
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</Card>
|
|
151
|
+
)
|
|
152
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -364,6 +364,12 @@ export {
|
|
|
364
364
|
toProgressPercent,
|
|
365
365
|
toProgressValue,
|
|
366
366
|
} from "./ProgressBar/progressValue.ts"
|
|
367
|
+
export type {
|
|
368
|
+
ProgressCardLayout,
|
|
369
|
+
ProgressCardMetric,
|
|
370
|
+
ProgressCardProps,
|
|
371
|
+
} from "./ProgressCard/ProgressCard.tsx"
|
|
372
|
+
export { ProgressCard } from "./ProgressCard/ProgressCard.tsx"
|
|
367
373
|
export type {
|
|
368
374
|
QueryBuilderLabels,
|
|
369
375
|
QueryBuilderProps,
|
package/src/sourceRules.test.ts
CHANGED
|
@@ -251,6 +251,8 @@ test("a container-query component is never storied in a shrink-to-fit cell", ()
|
|
|
251
251
|
// answer neither, because a track is about the same width in
|
|
252
252
|
// both.
|
|
253
253
|
"PortraitTiles",
|
|
254
|
+
// Metrics query the space remaining beside the media, not the entire card.
|
|
255
|
+
"ProgressCard",
|
|
254
256
|
// `Stepper`'s container is the one that decides whether a
|
|
255
257
|
// `horizontal` sequence is actually horizontal. Below `--cq-md`
|
|
256
258
|
// it falls back to the vertical column, because four steps side
|
|
@@ -612,7 +614,8 @@ test("the barrel is the only place components are re-exported", async () => {
|
|
|
612
614
|
// consumer deciding whether an item is on screen must ask the
|
|
613
615
|
// question the same way the bars are placed, or the two answers
|
|
614
616
|
// drift by a day and nothing says so.
|
|
615
|
-
|
|
617
|
+
// ProgressCard composes Card and ProgressBar for progress-first dashboards.
|
|
618
|
+
expect(componentNames.length).toBe(67)
|
|
616
619
|
|
|
617
620
|
for (const name of componentNames) {
|
|
618
621
|
expect(barrel).toContain(`export { ${name} }`)
|