@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.
Files changed (36) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/.turbo/turbo-test.log +51 -50
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/header/Header.d.ts +1 -1
  5. package/dist/cjs/components/header/Header.d.ts.map +1 -1
  6. package/dist/cjs/components/header/Header.js.map +1 -1
  7. package/dist/cjs/components/header/Header.module.css +4 -0
  8. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts +17 -8
  9. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts.map +1 -1
  10. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js +27 -4
  11. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js.map +1 -1
  12. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts +2 -2
  13. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts.map +1 -1
  14. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js +3 -2
  15. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
  16. package/dist/cjs/styles/Breadcrumbs.module.css +3 -3
  17. package/dist/esm/components/header/Header.d.ts +1 -1
  18. package/dist/esm/components/header/Header.d.ts.map +1 -1
  19. package/dist/esm/components/header/Header.js.map +1 -1
  20. package/dist/esm/components/header/Header.module.css +4 -0
  21. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts +17 -8
  22. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts.map +1 -1
  23. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js +23 -4
  24. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js.map +1 -1
  25. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts +2 -2
  26. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts.map +1 -1
  27. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
  28. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
  29. package/dist/esm/styles/Breadcrumbs.module.css +3 -3
  30. package/package.json +2 -2
  31. package/src/components/header/Header.module.css +4 -0
  32. package/src/components/header/Header.tsx +0 -1
  33. package/src/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.tsx +30 -5
  34. package/src/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.tsx +2 -2
  35. package/src/components/header/__tests__/Header.spec.tsx +21 -7
  36. package/src/styles/Breadcrumbs.module.css +3 -3
@@ -1,10 +1,21 @@
1
- import {Anchor, type AnchorProps, type PolymorphicFactory, polymorphicFactory} from '@mantine/core';
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 type HeaderBreadcrumbAnchorStyleNames = 'breadcrumbAnchor';
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: AnchorProps;
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: BreadcrumbsProps;
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
- <Anchor>One</Anchor>
36
- <Anchor>Two</Anchor>
37
- <Anchor>Three</Anchor>
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
- <Anchor>One</Anchor>
53
- <Anchor>Two</Anchor>
54
- <Anchor>Three</Anchor>
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>
@@ -5,8 +5,8 @@
5
5
 
6
6
  .breadcrumb {
7
7
  line-height: 14px;
8
+ }
8
9
 
9
- &:not(a) {
10
- color: var(--coveo-color-title);
11
- }
10
+ .separator {
11
+ color: var(--coveo-color-title);
12
12
  }