@coveord/plasma-mantine 56.3.1 → 56.3.2
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/.turbo/turbo-build.log +4 -4
- package/.turbo/turbo-test.log +51 -50
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/header/Header.d.ts +1 -1
- package/dist/cjs/components/header/Header.d.ts.map +1 -1
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/components/header/Header.module.css +4 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts +17 -8
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts.map +1 -1
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js +27 -4
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js.map +1 -1
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts +2 -2
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts.map +1 -1
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js +3 -2
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
- package/dist/cjs/styles/Breadcrumbs.module.css +3 -3
- package/dist/esm/components/header/Header.d.ts +1 -1
- package/dist/esm/components/header/Header.d.ts.map +1 -1
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/components/header/Header.module.css +4 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts +17 -8
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts.map +1 -1
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js +23 -4
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js.map +1 -1
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts +2 -2
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts.map +1 -1
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
- package/dist/esm/styles/Breadcrumbs.module.css +3 -3
- package/package.json +2 -2
- package/src/components/header/Header.module.css +4 -0
- package/src/components/header/Header.tsx +0 -1
- package/src/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.tsx +30 -5
- package/src/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.tsx +2 -2
- package/src/components/header/__tests__/Header.spec.tsx +21 -7
- package/src/styles/Breadcrumbs.module.css +3 -3
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {IconChevronLeft} from '@coveord/plasma-react-icons';
|
|
2
|
+
import {Anchor, type AnchorProps, Flex, type PolymorphicFactory, polymorphicFactory} from '@mantine/core';
|
|
3
|
+
import {ReactNode} from 'react';
|
|
2
4
|
import {useHeaderContext} from '../Header.context.js';
|
|
3
5
|
|
|
4
|
-
export
|
|
6
|
+
export interface HeaderBreadcrumbAnchorProps extends AnchorProps {
|
|
7
|
+
/**
|
|
8
|
+
* If true, only one breadcrumb will be displayed with a back arrow
|
|
9
|
+
* @default false
|
|
10
|
+
**/
|
|
11
|
+
single?: boolean;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type HeaderBreadcrumbAnchorStyleNames = 'breadcrumbAnchor' | 'breadcrumbAnchorSingleGroup';
|
|
5
16
|
|
|
6
17
|
export type HeaderBreadcrumbAnchorFactory = PolymorphicFactory<{
|
|
7
|
-
props:
|
|
18
|
+
props: HeaderBreadcrumbAnchorProps;
|
|
8
19
|
ref: HTMLAnchorElement;
|
|
9
20
|
stylesNames: HeaderBreadcrumbAnchorStyleNames;
|
|
10
21
|
compound: true;
|
|
@@ -13,16 +24,30 @@ export type HeaderBreadcrumbAnchorFactory = PolymorphicFactory<{
|
|
|
13
24
|
}>;
|
|
14
25
|
|
|
15
26
|
export const HeaderBreadcrumbAnchor = polymorphicFactory<HeaderBreadcrumbAnchorFactory>((props, ref) => {
|
|
16
|
-
const {className, classNames, styles, style, ...others} = props;
|
|
27
|
+
const {children, className, classNames, styles, style, single, ...others} = props;
|
|
17
28
|
const ctx = useHeaderContext();
|
|
18
29
|
|
|
30
|
+
const content = single ? (
|
|
31
|
+
<Flex
|
|
32
|
+
align="center"
|
|
33
|
+
{...ctx.getStyles('breadcrumbAnchorSingleGroup', {className, classNames, styles, style, props})}
|
|
34
|
+
>
|
|
35
|
+
<IconChevronLeft aria-label="arrow pointing back" size={16} />
|
|
36
|
+
{children}
|
|
37
|
+
</Flex>
|
|
38
|
+
) : (
|
|
39
|
+
children
|
|
40
|
+
);
|
|
41
|
+
|
|
19
42
|
return (
|
|
20
43
|
<Anchor
|
|
21
44
|
ref={ref}
|
|
22
45
|
inherit
|
|
23
46
|
{...ctx.getStyles('breadcrumbAnchor', {className, classNames, styles, style, props})}
|
|
24
47
|
{...others}
|
|
25
|
-
|
|
48
|
+
>
|
|
49
|
+
{content}
|
|
50
|
+
</Anchor>
|
|
26
51
|
);
|
|
27
52
|
});
|
|
28
53
|
HeaderBreadcrumbAnchor.displayName = '@coveo/plasma-mantine/HeaderBreadcrumbAnchor';
|
|
@@ -7,14 +7,14 @@ export interface HeaderBreadcrumbsProps
|
|
|
7
7
|
CompoundStylesApiProps<HeaderBreadcrumbsFactory> {}
|
|
8
8
|
|
|
9
9
|
export type HeaderBreadcrumbsFactory = Factory<{
|
|
10
|
-
props:
|
|
10
|
+
props: HeaderBreadcrumbsProps;
|
|
11
11
|
ref: HTMLDivElement;
|
|
12
12
|
stylesNames: HeaderBreadcrumbsStyleNames;
|
|
13
13
|
compound: true;
|
|
14
14
|
}>;
|
|
15
15
|
|
|
16
16
|
export const HeaderBreadcrumbs = factory<HeaderBreadcrumbsFactory>((props, ref) => {
|
|
17
|
-
const {children, className, classNames, styles, style, ...others} = props;
|
|
17
|
+
const {children, className, classNames, styles, style, vars: _vars, ...others} = props;
|
|
18
18
|
const ctx = useHeaderContext();
|
|
19
19
|
|
|
20
20
|
return (
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {Anchor} from '@mantine/core';
|
|
2
1
|
import {render, screen, within} from '@test-utils';
|
|
3
2
|
|
|
4
3
|
import {Header} from '../Header.js';
|
|
@@ -32,9 +31,9 @@ describe('Header', () => {
|
|
|
32
31
|
const {rerender} = render(
|
|
33
32
|
<Header>
|
|
34
33
|
<Header.Breadcrumbs data-testid="breadcrumbs-after">
|
|
35
|
-
<
|
|
36
|
-
<
|
|
37
|
-
<
|
|
34
|
+
<Header.BreadcrumbAnchor>One</Header.BreadcrumbAnchor>
|
|
35
|
+
<Header.BreadcrumbAnchor>Two</Header.BreadcrumbAnchor>
|
|
36
|
+
<Header.BreadcrumbAnchor>Three</Header.BreadcrumbAnchor>
|
|
38
37
|
</Header.Breadcrumbs>
|
|
39
38
|
<div data-testid="title">Title</div>
|
|
40
39
|
</Header>,
|
|
@@ -49,9 +48,9 @@ describe('Header', () => {
|
|
|
49
48
|
<Header>
|
|
50
49
|
<div data-testid="title">Title</div>
|
|
51
50
|
<Header.Breadcrumbs data-testid="breadcrumbs-after">
|
|
52
|
-
<
|
|
53
|
-
<
|
|
54
|
-
<
|
|
51
|
+
<Header.BreadcrumbAnchor>One</Header.BreadcrumbAnchor>
|
|
52
|
+
<Header.BreadcrumbAnchor>Two</Header.BreadcrumbAnchor>
|
|
53
|
+
<Header.BreadcrumbAnchor>Three</Header.BreadcrumbAnchor>
|
|
55
54
|
</Header.Breadcrumbs>
|
|
56
55
|
</Header>,
|
|
57
56
|
);
|
|
@@ -61,6 +60,21 @@ describe('Header', () => {
|
|
|
61
60
|
);
|
|
62
61
|
});
|
|
63
62
|
|
|
63
|
+
it('adds an icon if the single prop is specified on the breadcrumb anchor', async () => {
|
|
64
|
+
render(
|
|
65
|
+
<Header>
|
|
66
|
+
<Header.Breadcrumbs data-testid="breadcrumbs-after">
|
|
67
|
+
<Header.BreadcrumbAnchor href="#" single>
|
|
68
|
+
One
|
|
69
|
+
</Header.BreadcrumbAnchor>
|
|
70
|
+
</Header.Breadcrumbs>
|
|
71
|
+
Title
|
|
72
|
+
</Header>,
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
expect(screen.getByRole('link', {name: 'arrow pointing back One'})).toBeVisible();
|
|
76
|
+
});
|
|
77
|
+
|
|
64
78
|
it('renders a doc link icon if a doc anchor is provided', async () => {
|
|
65
79
|
render(
|
|
66
80
|
<Header>
|