@arbor-education/design-system.components 0.13.1 → 0.14.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/CHANGELOG.md +8 -0
- package/dist/components/articleCard/ArticleCard.d.ts +30 -0
- package/dist/components/articleCard/ArticleCard.d.ts.map +1 -0
- package/dist/components/articleCard/ArticleCard.js +24 -0
- package/dist/components/articleCard/ArticleCard.js.map +1 -0
- package/dist/components/articleCard/ArticleCard.stories.d.ts +18 -0
- package/dist/components/articleCard/ArticleCard.stories.d.ts.map +1 -0
- package/dist/components/articleCard/ArticleCard.stories.js +112 -0
- package/dist/components/articleCard/ArticleCard.stories.js.map +1 -0
- package/dist/components/articleCard/ArticleCard.test.d.ts +2 -0
- package/dist/components/articleCard/ArticleCard.test.d.ts.map +1 -0
- package/dist/components/articleCard/ArticleCard.test.js +49 -0
- package/dist/components/articleCard/ArticleCard.test.js.map +1 -0
- package/dist/components/card/Card.d.ts +41 -12
- package/dist/components/card/Card.d.ts.map +1 -1
- package/dist/components/card/Card.js +46 -17
- package/dist/components/card/Card.js.map +1 -1
- package/dist/components/card/Card.stories.d.ts +9 -84
- package/dist/components/card/Card.stories.d.ts.map +1 -1
- package/dist/components/card/Card.stories.js +15 -73
- package/dist/components/card/Card.stories.js.map +1 -1
- package/dist/components/card/Card.test.js +50 -152
- package/dist/components/card/Card.test.js.map +1 -1
- package/dist/components/formField/inputs/time/TimeInput.d.ts +1 -1
- package/dist/components/formField/inputs/time/TimeInput.stories.d.ts +1 -1
- package/dist/components/icoText/IcoText.d.ts +37 -0
- package/dist/components/icoText/IcoText.d.ts.map +1 -0
- package/dist/components/icoText/IcoText.js +29 -0
- package/dist/components/icoText/IcoText.js.map +1 -0
- package/dist/components/icoText/IcoText.stories.d.ts +34 -0
- package/dist/components/icoText/IcoText.stories.d.ts.map +1 -0
- package/dist/components/icoText/IcoText.stories.js +24 -0
- package/dist/components/icoText/IcoText.stories.js.map +1 -0
- package/dist/components/icoText/IcoText.test.d.ts +2 -0
- package/dist/components/icoText/IcoText.test.d.ts.map +1 -0
- package/dist/components/icoText/IcoText.test.js +27 -0
- package/dist/components/icoText/IcoText.test.js.map +1 -0
- package/dist/components/kpiCard/KPICard.d.ts +13 -0
- package/dist/components/kpiCard/KPICard.d.ts.map +1 -0
- package/dist/components/kpiCard/KPICard.js +8 -0
- package/dist/components/kpiCard/KPICard.js.map +1 -0
- package/dist/components/kpiCard/KPICard.stories.d.ts +9 -0
- package/dist/components/kpiCard/KPICard.stories.d.ts.map +1 -0
- package/dist/components/kpiCard/KPICard.stories.js +18 -0
- package/dist/components/kpiCard/KPICard.stories.js.map +1 -0
- package/dist/components/kpiCard/KPICard.test.d.ts +2 -0
- package/dist/components/kpiCard/KPICard.test.d.ts.map +1 -0
- package/dist/components/kpiCard/KPICard.test.js +37 -0
- package/dist/components/kpiCard/KPICard.test.js.map +1 -0
- package/dist/components/kvpList/KVPList.d.ts +34 -0
- package/dist/components/kvpList/KVPList.d.ts.map +1 -0
- package/dist/components/kvpList/KVPList.js +20 -0
- package/dist/components/kvpList/KVPList.js.map +1 -0
- package/dist/components/kvpList/KVPList.stories.d.ts +27 -0
- package/dist/components/kvpList/KVPList.stories.d.ts.map +1 -0
- package/dist/components/kvpList/KVPList.stories.js +18 -0
- package/dist/components/kvpList/KVPList.stories.js.map +1 -0
- package/dist/components/kvpList/KVPList.test.d.ts +2 -0
- package/dist/components/kvpList/KVPList.test.d.ts.map +1 -0
- package/dist/components/kvpList/KVPList.test.js +29 -0
- package/dist/components/kvpList/KVPList.test.js.map +1 -0
- package/dist/components/singleUser/SingleUser.d.ts +1 -1
- package/dist/components/tabs/TabsItem.stories.d.ts +2 -2
- package/dist/index.css +186 -22
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/articleCard/ArticleCard.stories.tsx +132 -0
- package/src/components/articleCard/ArticleCard.test.tsx +121 -0
- package/src/components/articleCard/ArticleCard.tsx +100 -0
- package/src/components/articleCard/articleCard.scss +39 -0
- package/src/components/card/Card.stories.tsx +35 -79
- package/src/components/card/Card.test.tsx +72 -190
- package/src/components/card/Card.tsx +117 -58
- package/src/components/card/card.scss +18 -31
- package/src/components/icoText/IcoText.stories.tsx +47 -0
- package/src/components/icoText/IcoText.test.tsx +41 -0
- package/src/components/icoText/IcoText.tsx +93 -0
- package/src/components/icoText/icoText.scss +34 -0
- package/src/components/kpiCard/KPICard.stories.tsx +47 -0
- package/src/components/kpiCard/KPICard.test.tsx +60 -0
- package/src/components/kpiCard/KPICard.tsx +45 -0
- package/src/components/kpiCard/kpiCard.scss +35 -0
- package/src/components/kvpList/KVPList.stories.tsx +51 -0
- package/src/components/kvpList/KVPList.test.tsx +66 -0
- package/src/components/kvpList/KVPList.tsx +109 -0
- package/src/components/kvpList/kvpList.scss +64 -0
- package/src/index.scss +4 -0
- package/src/index.ts +13 -4
- package/src/tokens.scss +6 -0
- package/tokens/json/Arbor.json +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KPICard.js","sourceRoot":"","sources":["../../../src/components/kpiCard/KPICard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAarE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAqB,EAAE;IAChE,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,GAAG,KAAK,EACpB,QAAQ,GAAG,KAAK,GACjB,GAAG,KAAK,CAAC;IAEV,MAAM,OAAO,GAAG,CACd,eAAK,SAAS,EAAC,aAAa,aAC1B,YAAG,SAAS,EAAC,oBAAoB,YAAE,KAAK,GAAK,EAC7C,aAAG,SAAS,EAAC,oBAAoB,aAC9B,KAAK,EACL,YAAY,IAAI,eAAM,SAAS,EAAC,qBAAqB,kBAAS,IAC7D,EACH,QAAQ,IACL,CACP,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,OACC,uBAAuB,CAAC,KAAK,CAAC,EAClC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAC,OAAO,YAEd,OAAO,GACH,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: (props: import("./KPICard").KPICardProps) => React.JSX.Element;
|
|
5
|
+
};
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
export default meta;
|
|
9
|
+
//# sourceMappingURL=KPICard.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KPICard.stories.d.ts","sourceRoot":"","sources":["../../../src/components/kpiCard/KPICard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,QAAA,MAAM,IAAI;;;CAGsB,CAAC;AAEjC,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAgCrB,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { KVPList } from '../kvpList/KVPList';
|
|
3
|
+
import { Progress } from '../progress/Progress';
|
|
4
|
+
import { KPICard } from './KPICard';
|
|
5
|
+
const meta = {
|
|
6
|
+
title: 'Components/Card/KPICard',
|
|
7
|
+
component: KPICard,
|
|
8
|
+
};
|
|
9
|
+
export const Default = {
|
|
10
|
+
args: {
|
|
11
|
+
label: 'KPI label text',
|
|
12
|
+
value: 'XX.X',
|
|
13
|
+
isPercentage: true,
|
|
14
|
+
},
|
|
15
|
+
render: args => (_jsxs(KPICard, { ...args, children: [_jsx(KVPList, { "aria-label": "Summary values", children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Bar label text" }), _jsx(KVPList.Definition, { prominence: "strong", children: "XX.X" })] }) }), _jsxs(KVPList, { "aria-label": "Progress values", children: [_jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Bar label text" }), _jsx(KVPList.Definition, { prominence: "neutral", children: "X" }), _jsx(KVPList.Definition, { "aria-hidden": "true", isRow: true, children: _jsx(Progress, { "aria-label": "Progress bar first", max: 100, value: 95 }) })] }), _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Bar label text" }), _jsx(KVPList.Definition, { prominence: "neutral", children: "X" }), _jsx(KVPList.Definition, { "aria-hidden": "true", isRow: true, children: _jsx(Progress, { "aria-label": "Progress bar second", max: 100, value: 95 }) })] })] })] })),
|
|
16
|
+
};
|
|
17
|
+
export default meta;
|
|
18
|
+
//# sourceMappingURL=KPICard.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KPICard.stories.js","sourceRoot":"","sources":["../../../src/components/kpiCard/KPICard.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,yBAAyB;IAChC,SAAS,EAAE,OAAO;CACY,CAAC;AAIjC,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,IAAI;KACnB;IACD,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CACd,MAAC,OAAO,OAAK,IAAI,aACf,KAAC,OAAO,kBAAY,gBAAgB,YAClC,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,iCAA8B,EAC3C,KAAC,OAAO,CAAC,UAAU,IAAC,UAAU,EAAC,QAAQ,qBAA0B,IACrD,GACN,EACV,MAAC,OAAO,kBAAY,iBAAiB,aACnC,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,iCAA8B,EAC3C,KAAC,OAAO,CAAC,UAAU,IAAC,UAAU,EAAC,SAAS,kBAAuB,EAC/D,KAAC,OAAO,CAAC,UAAU,mBAAa,MAAM,EAAC,KAAK,kBAC1C,KAAC,QAAQ,kBAAY,oBAAoB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAI,GAC9C,IACT,EACd,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,iCAA8B,EAC3C,KAAC,OAAO,CAAC,UAAU,IAAC,UAAU,EAAC,SAAS,kBAAuB,EAC/D,KAAC,OAAO,CAAC,UAAU,mBAAa,MAAM,EAAC,KAAK,kBAC1C,KAAC,QAAQ,kBAAY,qBAAqB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAI,GAC/C,IACT,IACN,IACF,CACX;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KPICard.test.d.ts","sourceRoot":"","sources":["../../../src/components/kpiCard/KPICard.test.tsx"],"names":[],"mappings":"AACA,OAAO,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { fireEvent, render, screen } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom/vitest';
|
|
4
|
+
import { describe, expect, test, vi } from 'vitest';
|
|
5
|
+
import { KPICard } from './KPICard';
|
|
6
|
+
import { KVPList } from '../kvpList/KVPList';
|
|
7
|
+
describe('KPICard', () => {
|
|
8
|
+
test('renders header content and kvp rows', () => {
|
|
9
|
+
render(_jsx(KPICard, { isPercentage: true, label: "Attendance", value: "95.4", children: _jsx(KVPList, { "aria-label": "Breakdown", children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Summary" }), _jsx(KVPList.Definition, { prominence: "strong", children: "95.4" })] }) }) }));
|
|
10
|
+
expect(screen.getByText('Attendance')).toBeInTheDocument();
|
|
11
|
+
expect(screen.getAllByText('95.4')).toHaveLength(2);
|
|
12
|
+
expect(screen.getByText('%')).toBeInTheDocument();
|
|
13
|
+
});
|
|
14
|
+
test('does not render a percentage suffix when isPercentage is false', () => {
|
|
15
|
+
render(_jsx(KPICard, { label: "Attendance", value: "95.4" }));
|
|
16
|
+
expect(screen.queryByText('%')).not.toBeInTheDocument();
|
|
17
|
+
});
|
|
18
|
+
test('uses the shared card shell for click interaction', () => {
|
|
19
|
+
const handleClick = vi.fn();
|
|
20
|
+
render(_jsx(KPICard, { "aria-label": "Attendance KPI card", label: "Attendance", onClick: handleClick, value: "95.4" }));
|
|
21
|
+
fireEvent.click(screen.getByRole('button', { name: 'Attendance KPI card' }));
|
|
22
|
+
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
23
|
+
});
|
|
24
|
+
test('supports keyboard activation through the shared card shell', () => {
|
|
25
|
+
const handleClick = vi.fn();
|
|
26
|
+
render(_jsx(KPICard, { "aria-label": "Attendance KPI card", label: "Attendance", onClick: handleClick, value: "95.4" }));
|
|
27
|
+
fireEvent.keyDown(screen.getByRole('button', { name: 'Attendance KPI card' }), { key: 'Enter' });
|
|
28
|
+
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
29
|
+
});
|
|
30
|
+
test('does not invoke click handlers when disabled', () => {
|
|
31
|
+
const handleClick = vi.fn();
|
|
32
|
+
render(_jsx(KPICard, { "aria-label": "Attendance KPI card", disabled: true, label: "Attendance", onClick: handleClick, value: "95.4" }));
|
|
33
|
+
fireEvent.click(screen.getByRole('button', { name: 'Attendance KPI card' }));
|
|
34
|
+
expect(handleClick).not.toHaveBeenCalled();
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=KPICard.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KPICard.test.js","sourceRoot":"","sources":["../../../src/components/kpiCard/KPICard.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type KVPListProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
2
|
+
children?: React.ReactNode;
|
|
3
|
+
};
|
|
4
|
+
export type KVPListRowProps = React.HTMLAttributes<HTMLDListElement> & {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
orientation?: 'horizontal' | 'vertical';
|
|
7
|
+
};
|
|
8
|
+
export type KVPListTermProps = React.HTMLAttributes<HTMLElement> & {
|
|
9
|
+
children?: React.ReactNode;
|
|
10
|
+
};
|
|
11
|
+
export type KVPListDefinitionProps = React.HTMLAttributes<HTMLElement> & {
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
isRow?: boolean;
|
|
14
|
+
isPercentage?: boolean;
|
|
15
|
+
prominence?: 'neutral' | 'strong';
|
|
16
|
+
};
|
|
17
|
+
export declare const KVPList: {
|
|
18
|
+
({ children, className, role, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...rest }: KVPListProps): React.JSX.Element;
|
|
19
|
+
displayName: string;
|
|
20
|
+
} & {
|
|
21
|
+
Row: {
|
|
22
|
+
({ children, className, orientation, ...rest }: KVPListRowProps): React.JSX.Element;
|
|
23
|
+
displayName: string;
|
|
24
|
+
};
|
|
25
|
+
Term: {
|
|
26
|
+
({ children, className, ...rest }: KVPListTermProps): React.JSX.Element;
|
|
27
|
+
displayName: string;
|
|
28
|
+
};
|
|
29
|
+
Definition: {
|
|
30
|
+
({ children, className, isRow, isPercentage, prominence, ...rest }: KVPListDefinitionProps): React.JSX.Element;
|
|
31
|
+
displayName: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=KVPList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KVPList.d.ts","sourceRoot":"","sources":["../../../src/components/kvpList/KVPList.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IAChE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG;IACrE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG;IACjE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG;IACvE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CACnC,CAAC;AAoFF,eAAO,MAAM,OAAO;yGA3EjB,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;;;wDAiBhC,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;;;2CAiBnC,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;;;4EAapC,sBAAsB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO;;;CAgC3C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
const KVPListRoot = ({ children, className, role, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, ...rest }) => (_jsx("div", { className: classNames('ds-kvp-list', className), role: role ?? (ariaLabel || ariaLabelledBy ? 'group' : undefined), "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...rest, children: children }));
|
|
4
|
+
const KVPListRow = ({ children, className, orientation = 'vertical', ...rest }) => (_jsx("dl", { className: classNames('ds-kvp-list__row', `ds-kvp-list__row--${orientation}`, className), ...rest, children: children }));
|
|
5
|
+
const KVPListTerm = ({ children, className, ...rest }) => (_jsx("dt", { className: classNames('ds-kvp-list__term', className), ...rest, children: children }));
|
|
6
|
+
const KVPListDefinition = ({ children, className, isRow = false, isPercentage = false, prominence = 'neutral', ...rest }) => (_jsxs("dd", { className: classNames('ds-kvp-list__description', `ds-kvp-list__description--${prominence}`, {
|
|
7
|
+
'ds-kvp-list__description--row': isRow,
|
|
8
|
+
}, className), ...rest, children: [children, isPercentage
|
|
9
|
+
? (_jsx("span", { className: "ds-kvp-list__suffix", children: "%" }))
|
|
10
|
+
: null] }));
|
|
11
|
+
KVPListRoot.displayName = 'KVPList';
|
|
12
|
+
KVPListRow.displayName = 'KVPList.Row';
|
|
13
|
+
KVPListTerm.displayName = 'KVPList.Term';
|
|
14
|
+
KVPListDefinition.displayName = 'KVPList.Definition';
|
|
15
|
+
export const KVPList = Object.assign(KVPListRoot, {
|
|
16
|
+
Row: KVPListRow,
|
|
17
|
+
Term: KVPListTerm,
|
|
18
|
+
Definition: KVPListDefinition,
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=KVPList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KVPList.js","sourceRoot":"","sources":["../../../src/components/kvpList/KVPList.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAsBpC,MAAM,WAAW,GAAG,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,GAAG,IAAI,EACM,EAAqB,EAAE,CAAC,CACrC,cACE,SAAS,EAAE,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,EAC/C,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,gBACrD,SAAS,qBACJ,cAAc,KAC3B,IAAI,YAEP,QAAQ,GACL,CACP,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAClB,QAAQ,EACR,SAAS,EACT,WAAW,GAAG,UAAU,EACxB,GAAG,IAAI,EACS,EAAqB,EAAE,CAAC,CACxC,aACE,SAAS,EAAE,UAAU,CACnB,kBAAkB,EAClB,qBAAqB,WAAW,EAAE,EAClC,SAAS,CACV,KACG,IAAI,YAEP,QAAQ,GACN,CACN,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACU,EAAqB,EAAE,CAAC,CACzC,aAAI,SAAS,EAAE,UAAU,CAAC,mBAAmB,EAAE,SAAS,CAAC,KAAM,IAAI,YAChE,QAAQ,GACN,CACN,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,KAAK,GAAG,KAAK,EACb,YAAY,GAAG,KAAK,EACpB,UAAU,GAAG,SAAS,EACtB,GAAG,IAAI,EACgB,EAAqB,EAAE,CAAC,CAC/C,cACE,SAAS,EAAE,UAAU,CACnB,0BAA0B,EAC1B,6BAA6B,UAAU,EAAE,EACzC;QACE,+BAA+B,EAAE,KAAK;KACvC,EACD,SAAS,CACV,KACG,IAAI,aAEP,QAAQ,EACR,YAAY;YACX,CAAC,CAAC,CACE,eAAM,SAAS,EAAC,qBAAqB,kBAE9B,CACR;YACH,CAAC,CAAC,IAAI,IACL,CACN,CAAC;AAEF,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;AACpC,UAAU,CAAC,WAAW,GAAG,aAAa,CAAC;AACvC,WAAW,CAAC,WAAW,GAAG,cAAc,CAAC;AACzC,iBAAiB,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,iBAAiB;CAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react-vite';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: {
|
|
5
|
+
({ children, className, role, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...rest }: import("./KVPList").KVPListProps): React.JSX.Element;
|
|
6
|
+
displayName: string;
|
|
7
|
+
} & {
|
|
8
|
+
Row: {
|
|
9
|
+
({ children, className, orientation, ...rest }: import("./KVPList").KVPListRowProps): React.JSX.Element;
|
|
10
|
+
displayName: string;
|
|
11
|
+
};
|
|
12
|
+
Term: {
|
|
13
|
+
({ children, className, ...rest }: import("./KVPList").KVPListTermProps): React.JSX.Element;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
16
|
+
Definition: {
|
|
17
|
+
({ children, className, isRow, isPercentage, prominence, ...rest }: import("./KVPList").KVPListDefinitionProps): React.JSX.Element;
|
|
18
|
+
displayName: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
type Story = StoryObj<typeof meta>;
|
|
23
|
+
export declare const Summary: Story;
|
|
24
|
+
export declare const WithProgressAndPercentage: Story;
|
|
25
|
+
export declare const WithProgressNoPercentage: Story;
|
|
26
|
+
export default meta;
|
|
27
|
+
//# sourceMappingURL=KVPList.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KVPList.stories.d.ts","sourceRoot":"","sources":["../../../src/components/kvpList/KVPList.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI5D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;CAGsB,CAAC;AAEjC,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAYvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAYtC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Progress } from '../progress/Progress';
|
|
3
|
+
import { KVPList } from './KVPList';
|
|
4
|
+
const meta = {
|
|
5
|
+
title: 'Components/KVPList',
|
|
6
|
+
component: KVPList,
|
|
7
|
+
};
|
|
8
|
+
export const Summary = {
|
|
9
|
+
render: args => (_jsx(KVPList, { ...args, "aria-label": "Attendance metrics", children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Attendance" }), _jsx(KVPList.Definition, { isPercentage: true, prominence: "strong", children: "95" })] }) })),
|
|
10
|
+
};
|
|
11
|
+
export const WithProgressAndPercentage = {
|
|
12
|
+
render: args => (_jsx(KVPList, { ...args, "aria-label": "Attendance breakdown", children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Bar label text" }), _jsx(KVPList.Definition, { isPercentage: true, prominence: "neutral", children: "95" }), _jsx(KVPList.Definition, { "aria-hidden": "true", isRow: true, children: _jsx(Progress, { "aria-label": "Attendance progress", max: 100, value: 95 }) })] }) })),
|
|
13
|
+
};
|
|
14
|
+
export const WithProgressNoPercentage = {
|
|
15
|
+
render: args => (_jsx(KVPList, { ...args, "aria-label": "Attendance breakdown without percentage", children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Bar label text" }), _jsx(KVPList.Definition, { prominence: "neutral", children: "X" }), _jsx(KVPList.Definition, { "aria-hidden": "true", isRow: true, children: _jsx(Progress, { "aria-label": "Attendance progress second", max: 100, value: 95 }) })] }) })),
|
|
16
|
+
};
|
|
17
|
+
export default meta;
|
|
18
|
+
//# sourceMappingURL=KVPList.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KVPList.stories.js","sourceRoot":"","sources":["../../../src/components/kvpList/KVPList.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,OAAO;CACY,CAAC;AAIjC,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CACd,KAAC,OAAO,OAAK,IAAI,gBAAa,oBAAoB,YAChD,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,6BAA0B,EACvC,KAAC,OAAO,CAAC,UAAU,IAAC,YAAY,QAAC,UAAU,EAAC,QAAQ,mBAAwB,IAChE,GACN,CACX;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAU;IAC9C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CACd,KAAC,OAAO,OAAK,IAAI,gBAAa,sBAAsB,YAClD,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,iCAA8B,EAC3C,KAAC,OAAO,CAAC,UAAU,IAAC,YAAY,QAAC,UAAU,EAAC,SAAS,mBAAwB,EAC7E,KAAC,OAAO,CAAC,UAAU,mBAAa,MAAM,EAAC,KAAK,kBAC1C,KAAC,QAAQ,kBAAY,qBAAqB,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAI,GAC/C,IACT,GACN,CACX;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAU;IAC7C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CACd,KAAC,OAAO,OAAK,IAAI,gBAAa,yCAAyC,YACrE,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,iCAA8B,EAC3C,KAAC,OAAO,CAAC,UAAU,IAAC,UAAU,EAAC,SAAS,kBAAuB,EAC/D,KAAC,OAAO,CAAC,UAAU,mBAAa,MAAM,EAAC,KAAK,kBAC1C,KAAC,QAAQ,kBAAY,4BAA4B,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAI,GACtD,IACT,GACN,CACX;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KVPList.test.d.ts","sourceRoot":"","sources":["../../../src/components/kvpList/KVPList.test.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import '@testing-library/jest-dom/vitest';
|
|
3
|
+
import { render, screen } from '@testing-library/react';
|
|
4
|
+
import { describe, expect, test } from 'vitest';
|
|
5
|
+
import { KVPList } from './KVPList';
|
|
6
|
+
describe('KVPList', () => {
|
|
7
|
+
test('renders term and definition semantics', () => {
|
|
8
|
+
render(_jsx(KVPList, { "aria-label": "Attendance metrics", children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Attendance" }), _jsx(KVPList.Definition, { prominence: "strong", children: "95" })] }) }));
|
|
9
|
+
expect(screen.getByText('Attendance').tagName).toBe('DT');
|
|
10
|
+
expect(screen.getByText('95').tagName).toBe('DD');
|
|
11
|
+
expect(screen.getByRole('group', { name: 'Attendance metrics' })).toBeInTheDocument();
|
|
12
|
+
});
|
|
13
|
+
test('renders a typed percentage suffix', () => {
|
|
14
|
+
render(_jsx(KVPList, { children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Attendance" }), _jsx(KVPList.Definition, { isPercentage: true, prominence: "neutral", children: "95" })] }) }));
|
|
15
|
+
const percentageDefinition = screen.getByText('95').closest('dd');
|
|
16
|
+
expect(screen.getByText('%')).toBeInTheDocument();
|
|
17
|
+
expect(percentageDefinition).toHaveTextContent('95%');
|
|
18
|
+
});
|
|
19
|
+
test('supports horizontal rows and row-spanning definitions', () => {
|
|
20
|
+
const { container } = render(_jsx(KVPList, { children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Progress" }), _jsx(KVPList.Definition, { isRow: true, children: "Full width content" })] }) }));
|
|
21
|
+
expect(container.querySelector('.ds-kvp-list__row--horizontal')).toBeInTheDocument();
|
|
22
|
+
expect(container.querySelector('.ds-kvp-list__description--row')).toBeInTheDocument();
|
|
23
|
+
});
|
|
24
|
+
test('does not add group semantics when no accessible label is provided', () => {
|
|
25
|
+
render(_jsx(KVPList, { children: _jsxs(KVPList.Row, { orientation: "horizontal", children: [_jsx(KVPList.Term, { children: "Attendance" }), _jsx(KVPList.Definition, { prominence: "strong", children: "95" })] }) }));
|
|
26
|
+
expect(screen.queryByRole('group')).not.toBeInTheDocument();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=KVPList.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KVPList.test.js","sourceRoot":"","sources":["../../../src/components/kvpList/KVPList.test.tsx"],"names":[],"mappings":";AAAA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,CACJ,KAAC,OAAO,kBAAY,oBAAoB,YACtC,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,6BAA0B,EACvC,KAAC,OAAO,CAAC,UAAU,IAAC,UAAU,EAAC,QAAQ,mBAAwB,IACnD,GACN,CACX,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,CACJ,KAAC,OAAO,cACN,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,6BAA0B,EACvC,KAAC,OAAO,CAAC,UAAU,IAAC,YAAY,QAAC,UAAU,EAAC,SAAS,mBAEhC,IACT,GACN,CACX,CAAC;QAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAElE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,CAAC,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,OAAO,cACN,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,2BAAwB,EACrC,KAAC,OAAO,CAAC,UAAU,IAAC,KAAK,yCAAwC,IACrD,GACN,CACX,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACrF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC7E,MAAM,CACJ,KAAC,OAAO,cACN,MAAC,OAAO,CAAC,GAAG,IAAC,WAAW,EAAC,YAAY,aACnC,KAAC,OAAO,CAAC,IAAI,6BAA0B,EACvC,KAAC,OAAO,CAAC,UAAU,IAAC,UAAU,EAAC,QAAQ,mBAAwB,IACnD,GACN,CACX,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -11,7 +11,7 @@ export declare const SingleUser: React.ForwardRefExoticComponent<{
|
|
|
11
11
|
className?: string;
|
|
12
12
|
avatarClassName?: string;
|
|
13
13
|
size?: AvatarSize;
|
|
14
|
-
} & Omit<AvatarProps, "size" | "
|
|
14
|
+
} & Omit<AvatarProps, "size" | "className" | "alt"> & React.RefAttributes<HTMLSpanElement>>;
|
|
15
15
|
export declare namespace SingleUser {
|
|
16
16
|
type Props = SingleUserProps;
|
|
17
17
|
}
|
|
@@ -25,7 +25,7 @@ declare const meta: {
|
|
|
25
25
|
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
|
|
26
26
|
autoFocus?: boolean | undefined | undefined;
|
|
27
27
|
className?: string | undefined | undefined;
|
|
28
|
-
contentEditable?: (boolean | "true" | "false") | "
|
|
28
|
+
contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
|
|
29
29
|
contextMenu?: string | undefined | undefined;
|
|
30
30
|
dir?: string | undefined | undefined;
|
|
31
31
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
@@ -310,7 +310,7 @@ declare const meta: {
|
|
|
310
310
|
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
|
|
311
311
|
autoFocus?: boolean | undefined | undefined;
|
|
312
312
|
className?: string | undefined | undefined;
|
|
313
|
-
contentEditable?: (boolean | "true" | "false") | "
|
|
313
|
+
contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
|
|
314
314
|
contextMenu?: string | undefined | undefined;
|
|
315
315
|
dir?: string | undefined | undefined;
|
|
316
316
|
draggable?: (boolean | "true" | "false") | undefined;
|
package/dist/index.css
CHANGED
|
@@ -630,6 +630,12 @@
|
|
|
630
630
|
--kpi-spacing-vertical: var(--spacing-large);
|
|
631
631
|
--kpi-color-benchmark-text: var(--color-grey-500);
|
|
632
632
|
--kpi-color-benchmark-text-bg: var(--color-grey-100);
|
|
633
|
+
--kvp-list-color-text-subtle: var(--color-grey-800);
|
|
634
|
+
--kvp-list-color-text-strong: var(--color-mono-black);
|
|
635
|
+
--ico-text-spacing-gap-horizontal: var(--spacing-large);
|
|
636
|
+
--ico-text-spacing-gap-vertical: var(--spacing-medium);
|
|
637
|
+
--kpi-card-color-text-label: var(--color-grey-800);
|
|
638
|
+
--kpi-card-color-text-value: var(--color-mono-black);
|
|
633
639
|
--tag-radius: var(--border-radius-round);
|
|
634
640
|
--tag-neutral-color-text: var(--color-grey-900);
|
|
635
641
|
--tag-neutral-color-background: var(--color-grey-050);
|
|
@@ -2039,6 +2045,41 @@
|
|
|
2039
2045
|
vertical-align: middle;
|
|
2040
2046
|
}
|
|
2041
2047
|
|
|
2048
|
+
.ds-ico-text {
|
|
2049
|
+
display: flex;
|
|
2050
|
+
align-items: flex-start;
|
|
2051
|
+
gap: var(--ico-text-spacing-gap-horizontal);
|
|
2052
|
+
width: 100%;
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
.ds-ico-text__icon {
|
|
2056
|
+
flex-shrink: 0;
|
|
2057
|
+
}
|
|
2058
|
+
|
|
2059
|
+
.ds-ico-text__content {
|
|
2060
|
+
display: flex;
|
|
2061
|
+
flex: 1 1 auto;
|
|
2062
|
+
min-width: 0;
|
|
2063
|
+
flex-direction: column;
|
|
2064
|
+
gap: var(--ico-text-spacing-gap-vertical);
|
|
2065
|
+
}
|
|
2066
|
+
|
|
2067
|
+
.ds-ico-text__heading {
|
|
2068
|
+
margin: 0;
|
|
2069
|
+
font-family: var(--type-headings-h4-family);
|
|
2070
|
+
font-size: var(--type-headings-h4-size);
|
|
2071
|
+
font-weight: var(--type-headings-h4-weight);
|
|
2072
|
+
line-height: var(--type-headings-h4-line-height);
|
|
2073
|
+
}
|
|
2074
|
+
|
|
2075
|
+
.ds-ico-text__paragraph {
|
|
2076
|
+
margin: 0;
|
|
2077
|
+
font-family: var(--type-body-p-family);
|
|
2078
|
+
font-size: var(--type-body-p-size);
|
|
2079
|
+
font-weight: var(--type-body-p-weight);
|
|
2080
|
+
line-height: var(--type-body-line-height);
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2042
2083
|
.ds-heading {
|
|
2043
2084
|
padding: var(--page-heading-spacing-gap);
|
|
2044
2085
|
color: var(--page-heading-color-text);
|
|
@@ -2084,9 +2125,17 @@ h4.ds-heading, h4.ds-heading .ds-heading__inner-container, h4 .ds-editable-text_
|
|
|
2084
2125
|
line-height: var(--type-headings-h4-line-height);
|
|
2085
2126
|
}
|
|
2086
2127
|
|
|
2128
|
+
.ds-card__icon-click {
|
|
2129
|
+
flex-shrink: 0;
|
|
2130
|
+
}
|
|
2131
|
+
.ds-card__icon-click.ds-icon-arrow-right {
|
|
2132
|
+
display: none;
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2087
2135
|
.ds-card__container {
|
|
2088
2136
|
display: flex;
|
|
2089
2137
|
width: 100%;
|
|
2138
|
+
margin: 0;
|
|
2090
2139
|
padding: var(--card-spacing-vertical) var(--card-spacing-horizontal);
|
|
2091
2140
|
flex-direction: column;
|
|
2092
2141
|
align-items: flex-start;
|
|
@@ -2098,16 +2147,10 @@ h4.ds-heading, h4.ds-heading .ds-heading__inner-container, h4 .ds-editable-text_
|
|
|
2098
2147
|
line-height: var(--line-height-default);
|
|
2099
2148
|
box-sizing: border-box;
|
|
2100
2149
|
}
|
|
2101
|
-
.ds-card__container .ds-card__icon-click {
|
|
2102
|
-
flex-shrink: 0;
|
|
2103
|
-
}
|
|
2104
|
-
.ds-card__container .ds-card__icon-click.ds-icon-arrow-right {
|
|
2105
|
-
display: none;
|
|
2106
|
-
}
|
|
2107
2150
|
.ds-card__container:hover:not(.ds-card__container--disabled) {
|
|
2108
2151
|
border: var(--border-weight) solid var(--card-hover-color-border);
|
|
2109
2152
|
background: var(--card-hover-color-background);
|
|
2110
|
-
box-shadow:
|
|
2153
|
+
box-shadow: var(--shadow-small);
|
|
2111
2154
|
}
|
|
2112
2155
|
.ds-card__container:hover:not(.ds-card__container--disabled) .ds-card__icon-click.ds-icon-chevron-right {
|
|
2113
2156
|
display: none;
|
|
@@ -2123,6 +2166,9 @@ h4.ds-heading, h4.ds-heading .ds-heading__inner-container, h4 .ds-editable-text_
|
|
|
2123
2166
|
.ds-card__container--clickable {
|
|
2124
2167
|
cursor: pointer;
|
|
2125
2168
|
}
|
|
2169
|
+
.ds-card__container--dense {
|
|
2170
|
+
padding: var(--spacing-small);
|
|
2171
|
+
}
|
|
2126
2172
|
|
|
2127
2173
|
.ds-card__content {
|
|
2128
2174
|
display: flex;
|
|
@@ -2131,24 +2177,45 @@ h4.ds-heading, h4.ds-heading .ds-heading__inner-container, h4 .ds-editable-text_
|
|
|
2131
2177
|
gap: var(--card-spacing-gap-horizontal);
|
|
2132
2178
|
width: 100%;
|
|
2133
2179
|
}
|
|
2134
|
-
|
|
2135
|
-
|
|
2180
|
+
|
|
2181
|
+
.ds-card__body {
|
|
2182
|
+
flex: 1 1 auto;
|
|
2183
|
+
min-width: 0;
|
|
2136
2184
|
}
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
justify-content: space-between;
|
|
2141
|
-
gap: var(--card-spacing-gap-vertical);
|
|
2142
|
-
flex-grow: 1;
|
|
2185
|
+
|
|
2186
|
+
.ds-card__container--article-link {
|
|
2187
|
+
position: relative;
|
|
2143
2188
|
}
|
|
2144
|
-
.ds-
|
|
2145
|
-
|
|
2146
|
-
font-family: var(--type-headings-h4-family);
|
|
2147
|
-
font-size: var(--type-headings-h4-size);
|
|
2148
|
-
font-weight: var(--type-headings-h4-weight);
|
|
2189
|
+
.ds-card__container--article-link:not(.ds-card__container--disabled) {
|
|
2190
|
+
cursor: pointer;
|
|
2149
2191
|
}
|
|
2150
|
-
.ds-
|
|
2151
|
-
|
|
2192
|
+
.ds-card__container--article-link:focus-within:not(.ds-card__container--disabled) {
|
|
2193
|
+
border: var(--border-weight) solid var(--card-focus-color-border);
|
|
2194
|
+
background: var(--card-focus-color-background);
|
|
2195
|
+
outline: var(--focus-border) solid var(--card-focus-focus);
|
|
2196
|
+
}
|
|
2197
|
+
|
|
2198
|
+
.ds-article-card {
|
|
2199
|
+
width: 100%;
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2202
|
+
.ds-article-card__primary-link {
|
|
2203
|
+
color: inherit;
|
|
2204
|
+
text-decoration: none;
|
|
2205
|
+
}
|
|
2206
|
+
.ds-article-card__primary-link::after {
|
|
2207
|
+
content: "";
|
|
2208
|
+
position: absolute;
|
|
2209
|
+
inset: 0;
|
|
2210
|
+
z-index: 1;
|
|
2211
|
+
}
|
|
2212
|
+
.ds-article-card__primary-link:hover, .ds-article-card__primary-link:focus-visible {
|
|
2213
|
+
text-decoration: underline;
|
|
2214
|
+
}
|
|
2215
|
+
|
|
2216
|
+
.ds-article-card a:not(.ds-article-card__primary-link) {
|
|
2217
|
+
position: relative;
|
|
2218
|
+
z-index: 2;
|
|
2152
2219
|
}
|
|
2153
2220
|
|
|
2154
2221
|
.ds-dropdown__content {
|
|
@@ -3462,6 +3529,103 @@ h4.ds-heading, h4.ds-heading .ds-heading__inner-container, h4 .ds-editable-text_
|
|
|
3462
3529
|
border-radius: var(--border-radius-large);
|
|
3463
3530
|
}
|
|
3464
3531
|
|
|
3532
|
+
.ds-kpi-card {
|
|
3533
|
+
display: grid;
|
|
3534
|
+
width: 100%;
|
|
3535
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
3536
|
+
gap: var(--spacing-medium) var(--spacing-small);
|
|
3537
|
+
}
|
|
3538
|
+
.ds-kpi-card > :not(.ds-kpi-card__label, .ds-kpi-card__value) {
|
|
3539
|
+
grid-column: 1/-1;
|
|
3540
|
+
}
|
|
3541
|
+
|
|
3542
|
+
.ds-kpi-card__label {
|
|
3543
|
+
align-self: end;
|
|
3544
|
+
margin: 0;
|
|
3545
|
+
color: var(--kpi-card-color-text-label);
|
|
3546
|
+
font-family: var(--type-body-p-family);
|
|
3547
|
+
font-size: var(--type-body-p-size);
|
|
3548
|
+
font-weight: var(--type-body-p-weight);
|
|
3549
|
+
line-height: var(--type-body-line-height);
|
|
3550
|
+
}
|
|
3551
|
+
|
|
3552
|
+
.ds-kpi-card__value {
|
|
3553
|
+
justify-self: end;
|
|
3554
|
+
margin: 0;
|
|
3555
|
+
color: var(--kpi-card-color-text-value);
|
|
3556
|
+
font-family: var(--type-headings-h2-family);
|
|
3557
|
+
font-size: var(--type-headings-h2-size);
|
|
3558
|
+
font-weight: var(--type-headings-h2-weight);
|
|
3559
|
+
line-height: var(--type-headings-h2-line-height);
|
|
3560
|
+
}
|
|
3561
|
+
|
|
3562
|
+
.ds-kpi-card__suffix {
|
|
3563
|
+
margin-left: var(--spacing-xsmall);
|
|
3564
|
+
font: inherit;
|
|
3565
|
+
}
|
|
3566
|
+
|
|
3567
|
+
.ds-kvp-list {
|
|
3568
|
+
display: flex;
|
|
3569
|
+
width: 100%;
|
|
3570
|
+
flex-direction: column;
|
|
3571
|
+
gap: var(--spacing-medium);
|
|
3572
|
+
box-sizing: border-box;
|
|
3573
|
+
}
|
|
3574
|
+
|
|
3575
|
+
.ds-kvp-list__term,
|
|
3576
|
+
.ds-kvp-list__description {
|
|
3577
|
+
margin: 0;
|
|
3578
|
+
flex: 1;
|
|
3579
|
+
}
|
|
3580
|
+
|
|
3581
|
+
.ds-kvp-list__term,
|
|
3582
|
+
.ds-kvp-list__description--neutral {
|
|
3583
|
+
color: var(--kvp-list-color-text-subtle);
|
|
3584
|
+
font-family: var(--type-body-p-family);
|
|
3585
|
+
font-size: var(--type-body-p-size);
|
|
3586
|
+
font-weight: var(--type-body-p-weight);
|
|
3587
|
+
line-height: var(--type-body-line-height);
|
|
3588
|
+
}
|
|
3589
|
+
|
|
3590
|
+
.ds-kvp-list__description--strong {
|
|
3591
|
+
color: var(--kvp-list-color-text-strong);
|
|
3592
|
+
font-family: var(--type-headings-h2-family);
|
|
3593
|
+
font-size: var(--type-headings-h2-size);
|
|
3594
|
+
font-weight: var(--type-headings-h2-weight);
|
|
3595
|
+
line-height: var(--type-headings-h2-line-height);
|
|
3596
|
+
}
|
|
3597
|
+
|
|
3598
|
+
.ds-kvp-list__description--row {
|
|
3599
|
+
flex-basis: 100%;
|
|
3600
|
+
width: 100%;
|
|
3601
|
+
}
|
|
3602
|
+
|
|
3603
|
+
.ds-kvp-list__suffix {
|
|
3604
|
+
margin-left: var(--spacing-xsmall);
|
|
3605
|
+
font: inherit;
|
|
3606
|
+
}
|
|
3607
|
+
|
|
3608
|
+
.ds-kvp-list__description {
|
|
3609
|
+
text-align: right;
|
|
3610
|
+
}
|
|
3611
|
+
|
|
3612
|
+
.ds-kvp-list__row {
|
|
3613
|
+
display: flex;
|
|
3614
|
+
width: 100%;
|
|
3615
|
+
margin: 0;
|
|
3616
|
+
gap: var(--spacing-small);
|
|
3617
|
+
}
|
|
3618
|
+
.ds-kvp-list__row--vertical {
|
|
3619
|
+
flex-direction: column;
|
|
3620
|
+
}
|
|
3621
|
+
.ds-kvp-list__row--horizontal {
|
|
3622
|
+
flex-wrap: wrap;
|
|
3623
|
+
align-items: center;
|
|
3624
|
+
}
|
|
3625
|
+
.ds-kvp-list__row--horizontal .ds-kvp-list__description:not(.ds-kvp-list__description--row) {
|
|
3626
|
+
flex: 0 0 auto;
|
|
3627
|
+
}
|
|
3628
|
+
|
|
3465
3629
|
.ds-toast__viewport {
|
|
3466
3630
|
margin: 0;
|
|
3467
3631
|
padding: 0;
|