@arbor-education/design-system.components 0.25.2 → 0.25.4
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/.gather/skills/write-stories/README.md +1 -1
- package/.gather/skills/write-stories/SKILL.md +1 -1
- package/.gather/skills/write-stories/meta.md +1 -1
- package/CHANGELOG.md +14 -0
- package/component-library.md +26 -1
- package/dist/components/breadcrumbs/BreadcrumbCopyButton.d.ts +3 -0
- package/dist/components/breadcrumbs/BreadcrumbCopyButton.d.ts.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbCopyButton.js +13 -0
- package/dist/components/breadcrumbs/BreadcrumbCopyButton.js.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbDropdown.d.ts +3 -0
- package/dist/components/breadcrumbs/BreadcrumbDropdown.d.ts.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbDropdown.js +8 -0
- package/dist/components/breadcrumbs/BreadcrumbDropdown.js.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbEllipsis.d.ts +3 -0
- package/dist/components/breadcrumbs/BreadcrumbEllipsis.d.ts.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbEllipsis.js +7 -0
- package/dist/components/breadcrumbs/BreadcrumbEllipsis.js.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbItemSeparator.d.ts +2 -0
- package/dist/components/breadcrumbs/BreadcrumbItemSeparator.d.ts.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbItemSeparator.js +5 -0
- package/dist/components/breadcrumbs/BreadcrumbItemSeparator.js.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbLink.d.ts +6 -0
- package/dist/components/breadcrumbs/BreadcrumbLink.d.ts.map +1 -0
- package/dist/components/breadcrumbs/BreadcrumbLink.js +9 -0
- package/dist/components/breadcrumbs/BreadcrumbLink.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +21 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js +51 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.stories.d.ts +81 -0
- package/dist/components/breadcrumbs/Breadcrumbs.stories.d.ts.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.stories.js +681 -0
- package/dist/components/breadcrumbs/Breadcrumbs.stories.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.test.d.ts +2 -0
- package/dist/components/breadcrumbs/Breadcrumbs.test.d.ts.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.test.js +160 -0
- package/dist/components/breadcrumbs/Breadcrumbs.test.js.map +1 -0
- package/dist/components/breadcrumbs/types.d.ts +27 -0
- package/dist/components/breadcrumbs/types.d.ts.map +1 -0
- package/dist/components/breadcrumbs/types.js +2 -0
- package/dist/components/breadcrumbs/types.js.map +1 -0
- package/dist/components/row/Row.d.ts +1 -0
- package/dist/components/row/Row.d.ts.map +1 -1
- package/dist/components/row/Row.js +4 -2
- package/dist/components/row/Row.js.map +1 -1
- package/dist/components/row/Row.stories.d.ts +111 -4
- package/dist/components/row/Row.stories.d.ts.map +1 -1
- package/dist/components/row/Row.stories.js +362 -64
- package/dist/components/row/Row.stories.js.map +1 -1
- package/dist/components/row/Row.test.js +19 -0
- package/dist/components/row/Row.test.js.map +1 -1
- package/dist/components/skeleton/Skeleton.d.ts +10 -0
- package/dist/components/skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/skeleton/Skeleton.js +9 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/skeleton/Skeleton.stories.d.ts +99 -0
- package/dist/components/skeleton/Skeleton.stories.d.ts.map +1 -0
- package/dist/components/skeleton/Skeleton.stories.js +539 -0
- package/dist/components/skeleton/Skeleton.stories.js.map +1 -0
- package/dist/components/skeleton/Skeleton.test.d.ts +2 -0
- package/dist/components/skeleton/Skeleton.test.d.ts.map +1 -0
- package/dist/components/skeleton/Skeleton.test.js +49 -0
- package/dist/components/skeleton/Skeleton.test.js.map +1 -0
- package/dist/index.css +159 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/breadcrumbs/BreadcrumbCopyButton.tsx +27 -0
- package/src/components/breadcrumbs/BreadcrumbDropdown.tsx +27 -0
- package/src/components/breadcrumbs/BreadcrumbEllipsis.tsx +16 -0
- package/src/components/breadcrumbs/BreadcrumbItemSeparator.tsx +3 -0
- package/src/components/breadcrumbs/BreadcrumbLink.tsx +29 -0
- package/src/components/breadcrumbs/Breadcrumbs.stories.tsx +870 -0
- package/src/components/breadcrumbs/Breadcrumbs.test.tsx +185 -0
- package/src/components/breadcrumbs/Breadcrumbs.tsx +92 -0
- package/src/components/breadcrumbs/breadcrumbs.scss +158 -0
- package/src/components/breadcrumbs/types.ts +31 -0
- package/src/components/dropdown/dropdown.scss +1 -0
- package/src/components/row/Row.stories.tsx +504 -81
- package/src/components/row/Row.test.tsx +25 -0
- package/src/components/row/Row.tsx +11 -1
- package/src/components/skeleton/Skeleton.stories.tsx +748 -0
- package/src/components/skeleton/Skeleton.test.tsx +55 -0
- package/src/components/skeleton/Skeleton.tsx +36 -0
- package/src/components/skeleton/skeleton.scss +23 -0
- package/src/index.scss +2 -0
- package/src/index.ts +2 -0
|
@@ -43,6 +43,31 @@ describe('Row component', () => {
|
|
|
43
43
|
expect(row).toHaveClass('ds-row', 'custom-row');
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
+
describe('href behaviour', () => {
|
|
47
|
+
test('wraps value in an anchor when href is provided', () => {
|
|
48
|
+
render(<Row label="Profile" value="View profile" href="/students/123" />);
|
|
49
|
+
|
|
50
|
+
const link = screen.getByRole('link', { name: 'View profile' });
|
|
51
|
+
expect(link).toBeInTheDocument();
|
|
52
|
+
expect(link).toHaveAttribute('href', '/students/123');
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
test('uses href as link text when no value is provided', () => {
|
|
56
|
+
render(<Row label="Document" href="/documents/report.pdf" />);
|
|
57
|
+
|
|
58
|
+
const link = screen.getByRole('link', { name: '/documents/report.pdf' });
|
|
59
|
+
expect(link).toBeInTheDocument();
|
|
60
|
+
expect(link).toHaveAttribute('href', '/documents/report.pdf');
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('renders value as plain text when href is not provided', () => {
|
|
64
|
+
render(<Row label="Profile" value="View profile" />);
|
|
65
|
+
|
|
66
|
+
expect(screen.getByText('View profile')).toBeInTheDocument();
|
|
67
|
+
expect(screen.queryByRole('link')).not.toBeInTheDocument();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
|
|
46
71
|
describe('click behaviour', () => {
|
|
47
72
|
test('calls onClick handler when clicked', () => {
|
|
48
73
|
const handleClick = vi.fn();
|
|
@@ -8,6 +8,7 @@ export type RowProps = {
|
|
|
8
8
|
style?: CSSProperties;
|
|
9
9
|
label?: ReactNode;
|
|
10
10
|
value?: ReactNode;
|
|
11
|
+
href?: string;
|
|
11
12
|
note?: ReactNode;
|
|
12
13
|
onClick?: MouseEventHandler<HTMLDivElement>;
|
|
13
14
|
};
|
|
@@ -18,6 +19,7 @@ export const Row = (props: RowProps) => {
|
|
|
18
19
|
style,
|
|
19
20
|
label,
|
|
20
21
|
value,
|
|
22
|
+
href,
|
|
21
23
|
note,
|
|
22
24
|
onClick,
|
|
23
25
|
} = props;
|
|
@@ -44,7 +46,15 @@ export const Row = (props: RowProps) => {
|
|
|
44
46
|
tabIndex={isClickable ? 0 : -1}
|
|
45
47
|
>
|
|
46
48
|
<span className="ds-row__label">{label}</span>
|
|
47
|
-
<span className="ds-row__value">
|
|
49
|
+
<span className="ds-row__value">
|
|
50
|
+
{href
|
|
51
|
+
? (
|
|
52
|
+
<a href={href}>
|
|
53
|
+
{value || href}
|
|
54
|
+
</a>
|
|
55
|
+
)
|
|
56
|
+
: value}
|
|
57
|
+
</span>
|
|
48
58
|
<span className="ds-row__note">{note}</span>
|
|
49
59
|
{isClickable && (
|
|
50
60
|
<>
|