@coveord/plasma-mantine 52.15.0 → 52.16.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/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +30 -30
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/header/Header.d.ts +8 -21
- package/dist/cjs/components/header/Header.d.ts.map +1 -1
- package/dist/cjs/components/header/Header.js +36 -65
- package/dist/cjs/components/header/Header.js.map +1 -1
- package/dist/cjs/components/header/Header.styles.d.ts +14 -0
- package/dist/cjs/components/header/Header.styles.d.ts.map +1 -0
- package/dist/cjs/components/header/Header.styles.js +30 -0
- package/dist/cjs/components/header/Header.styles.js.map +1 -0
- package/dist/cjs/components/header/HeaderActions/HeaderActions.d.ts +8 -0
- package/dist/cjs/components/header/HeaderActions/HeaderActions.d.ts.map +1 -0
- package/dist/cjs/components/header/HeaderActions/HeaderActions.js +41 -0
- package/dist/cjs/components/header/HeaderActions/HeaderActions.js.map +1 -0
- package/dist/cjs/components/header/HeaderActions/HeaderActions.styles.d.ts +10 -0
- package/dist/cjs/components/header/HeaderActions/HeaderActions.styles.d.ts.map +1 -0
- package/dist/cjs/components/header/HeaderActions/HeaderActions.styles.js +20 -0
- package/dist/cjs/components/header/HeaderActions/HeaderActions.styles.js.map +1 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts +8 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts.map +1 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js +40 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.d.ts +11 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.d.ts.map +1 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.js +26 -0
- package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.js.map +1 -0
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.d.ts +22 -0
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.d.ts.map +1 -0
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.js +55 -0
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.js.map +1 -0
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.d.ts +11 -0
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.d.ts.map +1 -0
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.js +24 -0
- package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.js.map +1 -0
- package/dist/cjs/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +8 -8
- package/dist/esm/components/header/Header.d.ts +8 -21
- package/dist/esm/components/header/Header.d.ts.map +1 -1
- package/dist/esm/components/header/Header.js +30 -59
- package/dist/esm/components/header/Header.js.map +1 -1
- package/dist/esm/components/header/Header.styles.d.ts +14 -0
- package/dist/esm/components/header/Header.styles.d.ts.map +1 -0
- package/dist/esm/components/header/Header.styles.js +20 -0
- package/dist/esm/components/header/Header.styles.js.map +1 -0
- package/dist/esm/components/header/HeaderActions/HeaderActions.d.ts +8 -0
- package/dist/esm/components/header/HeaderActions/HeaderActions.d.ts.map +1 -0
- package/dist/esm/components/header/HeaderActions/HeaderActions.js +31 -0
- package/dist/esm/components/header/HeaderActions/HeaderActions.js.map +1 -0
- package/dist/esm/components/header/HeaderActions/HeaderActions.styles.d.ts +10 -0
- package/dist/esm/components/header/HeaderActions/HeaderActions.styles.d.ts.map +1 -0
- package/dist/esm/components/header/HeaderActions/HeaderActions.styles.js +10 -0
- package/dist/esm/components/header/HeaderActions/HeaderActions.styles.js.map +1 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts +8 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.d.ts.map +1 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js +30 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.d.ts +11 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.d.ts.map +1 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.js +16 -0
- package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.js.map +1 -0
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.d.ts +22 -0
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.d.ts.map +1 -0
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.js +45 -0
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.js.map +1 -0
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.d.ts +11 -0
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.d.ts.map +1 -0
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.js +14 -0
- package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.js.map +1 -0
- package/dist/esm/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +8 -8
- package/package.json +5 -5
- package/src/components/header/Header.styles.ts +20 -0
- package/src/components/header/Header.tsx +35 -52
- package/src/components/header/HeaderActions/HeaderActions.styles.ts +7 -0
- package/src/components/header/HeaderActions/HeaderActions.tsx +26 -0
- package/src/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.styles.ts +8 -0
- package/src/components/header/HeaderBreadcrumbs/HeaderBreadcrumbs.tsx +31 -0
- package/src/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.ts +11 -0
- package/src/components/header/HeaderDocAnchor/HeaderDocAnchor.tsx +55 -0
- package/src/components/header/__tests__/Header.spec.tsx +1 -1
- package/src/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +8 -8
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface HeaderDocAnchorStylesParams {
|
|
2
|
+
}
|
|
3
|
+
export declare const useStyles: (params: HeaderDocAnchorStylesParams, options?: import("@mantine/core").UseStylesOptions<string>) => {
|
|
4
|
+
classes: {
|
|
5
|
+
tooltip: string;
|
|
6
|
+
anchor: string;
|
|
7
|
+
};
|
|
8
|
+
cx: (...args: any) => string;
|
|
9
|
+
theme: import("@mantine/core").MantineTheme;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=HeaderDocAnchor.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderDocAnchor.styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,2BAA2B;CAAG;AAE/C,eAAO,MAAM,SAAS;;;;;;;CAMnB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { _ as _object_destructuring_empty } from "@swc/helpers/_/_object_destructuring_empty";
|
|
2
|
+
import { createStyles } from "@mantine/core";
|
|
3
|
+
export var useStyles = createStyles(function(theme, param) {
|
|
4
|
+
var ref = _object_destructuring_empty(param);
|
|
5
|
+
return {
|
|
6
|
+
tooltip: {},
|
|
7
|
+
anchor: {
|
|
8
|
+
marginLeft: theme.spacing.xs,
|
|
9
|
+
verticalAlign: "middle"
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=HeaderDocAnchor.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/header/HeaderDocAnchor/HeaderDocAnchor.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nexport interface HeaderDocAnchorStylesParams {}\n\nexport const useStyles = createStyles((theme, {}: HeaderDocAnchorStylesParams) => ({\n tooltip: {},\n anchor: {\n marginLeft: theme.spacing.xs,\n verticalAlign: 'middle',\n },\n}));\n"],"names":["createStyles","useStyles","theme","tooltip","anchor","marginLeft","spacing","xs","verticalAlign"],"mappings":";AAAA,SAAQA,YAAY,QAAO,gBAAgB;AAI3C,OAAO,IAAMC,YAAYD,aAAa,SAACE;QAAO;WAAqC;QAC/EC,SAAS,CAAC;QACVC,QAAQ;YACJC,YAAYH,MAAMI,OAAO,CAACC,EAAE;YAC5BC,eAAe;QACnB;IACJ;GAAI"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports[`Header > renders the specified breadcrumbs above the title 1`] = `
|
|
4
4
|
<div>
|
|
5
5
|
<div
|
|
6
|
-
class="mantine-Group-root mantine-
|
|
6
|
+
class="mantine-Group-root mantine-PlasmaHeader-root mantine-15aa8um"
|
|
7
7
|
>
|
|
8
8
|
<div
|
|
9
9
|
class="mantine-Stack-root mantine-1178y6y"
|
|
@@ -12,38 +12,38 @@ exports[`Header > renders the specified breadcrumbs above the title 1`] = `
|
|
|
12
12
|
class="mantine-Breadcrumbs-root mantine-1ujbd2v"
|
|
13
13
|
>
|
|
14
14
|
<a
|
|
15
|
-
class="mantine-Text-root mantine-Anchor-root mantine-Breadcrumbs-breadcrumb mantine-
|
|
15
|
+
class="mantine-Text-root mantine-Anchor-root mantine-PlasmaHeaderBreadcrumbs-breadcrumb mantine-Breadcrumbs-breadcrumb mantine-1p2lvqc"
|
|
16
16
|
>
|
|
17
17
|
One
|
|
18
18
|
</a>
|
|
19
19
|
<div
|
|
20
|
-
class="mantine-Text-root mantine-Breadcrumbs-separator mantine-
|
|
20
|
+
class="mantine-Text-root mantine-PlasmaHeaderBreadcrumbs-separator mantine-Breadcrumbs-separator mantine-1y8084r"
|
|
21
21
|
>
|
|
22
22
|
/
|
|
23
23
|
</div>
|
|
24
24
|
<a
|
|
25
|
-
class="mantine-Text-root mantine-Anchor-root mantine-Breadcrumbs-breadcrumb mantine-
|
|
25
|
+
class="mantine-Text-root mantine-Anchor-root mantine-PlasmaHeaderBreadcrumbs-breadcrumb mantine-Breadcrumbs-breadcrumb mantine-1p2lvqc"
|
|
26
26
|
>
|
|
27
27
|
Two
|
|
28
28
|
</a>
|
|
29
29
|
<div
|
|
30
|
-
class="mantine-Text-root mantine-Breadcrumbs-separator mantine-
|
|
30
|
+
class="mantine-Text-root mantine-PlasmaHeaderBreadcrumbs-separator mantine-Breadcrumbs-separator mantine-1y8084r"
|
|
31
31
|
>
|
|
32
32
|
/
|
|
33
33
|
</div>
|
|
34
34
|
<a
|
|
35
|
-
class="mantine-Text-root mantine-Anchor-root mantine-Breadcrumbs-breadcrumb mantine-
|
|
35
|
+
class="mantine-Text-root mantine-Anchor-root mantine-PlasmaHeaderBreadcrumbs-breadcrumb mantine-Breadcrumbs-breadcrumb mantine-1p2lvqc"
|
|
36
36
|
>
|
|
37
37
|
Three
|
|
38
38
|
</a>
|
|
39
39
|
</div>
|
|
40
40
|
<h1
|
|
41
|
-
class="mantine-Text-root mantine-Title-root mantine-
|
|
41
|
+
class="mantine-Text-root mantine-Title-root mantine-PlasmaHeader-title mantine-1o7jx33"
|
|
42
42
|
>
|
|
43
43
|
Title
|
|
44
44
|
</h1>
|
|
45
45
|
<div
|
|
46
|
-
class="mantine-Text-root mantine-
|
|
46
|
+
class="mantine-Text-root mantine-PlasmaHeader-description mantine-52dv7d"
|
|
47
47
|
/>
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coveord/plasma-mantine",
|
|
3
|
-
"version": "52.
|
|
3
|
+
"version": "52.16.0",
|
|
4
4
|
"description": "A Plasma flavoured Mantine theme",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plasma",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"lodash.debounce": "4.0.8",
|
|
42
42
|
"lodash.defaultsdeep": "4.6.1",
|
|
43
43
|
"monaco-editor": "0.41.0",
|
|
44
|
-
"@coveord/plasma-react-icons": "52.
|
|
45
|
-
"@coveord/plasma-tokens": "52.
|
|
44
|
+
"@coveord/plasma-react-icons": "52.16.0",
|
|
45
|
+
"@coveord/plasma-tokens": "52.16.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@emotion/react": "11.11.1",
|
|
@@ -75,14 +75,14 @@
|
|
|
75
75
|
"jest-environment-jsdom": "29.6.3",
|
|
76
76
|
"jest-junit": "16.0.0",
|
|
77
77
|
"npm-run-all": "4.1.5",
|
|
78
|
-
"publint": "0.2.
|
|
78
|
+
"publint": "0.2.2",
|
|
79
79
|
"react": "18.2.0",
|
|
80
80
|
"react-dom": "18.2.0",
|
|
81
81
|
"rimraf": "5.0.1",
|
|
82
82
|
"tslib": "2.6.2",
|
|
83
83
|
"typescript": "5.1.6",
|
|
84
84
|
"vitest": "0.34.2",
|
|
85
|
-
"eslint-config-plasma": "52.
|
|
85
|
+
"eslint-config-plasma": "52.16.0"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
88
|
"@emotion/react": "^11.10.0",
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {createStyles} from '@mantine/core';
|
|
2
|
+
|
|
3
|
+
export interface HeaderStylesParams {
|
|
4
|
+
variant?: 'page' | 'modal';
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const useStyles = createStyles((theme, {variant}: HeaderStylesParams) => ({
|
|
8
|
+
root: {
|
|
9
|
+
padding: variant === 'page' ? theme.spacing.xl : undefined,
|
|
10
|
+
paddingBottom: variant === 'page' ? theme.spacing.lg : undefined,
|
|
11
|
+
},
|
|
12
|
+
title: {
|
|
13
|
+
wordBreak: 'break-word',
|
|
14
|
+
color: variant === 'page' ? theme.colors.gray[5] : undefined,
|
|
15
|
+
},
|
|
16
|
+
description: {
|
|
17
|
+
color: theme.colors.gray[6],
|
|
18
|
+
},
|
|
19
|
+
divider: {},
|
|
20
|
+
}));
|
|
@@ -1,8 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import {
|
|
2
|
+
DefaultProps,
|
|
3
|
+
Divider,
|
|
4
|
+
Group,
|
|
5
|
+
GroupProps,
|
|
6
|
+
Selectors,
|
|
7
|
+
Stack,
|
|
8
|
+
Text,
|
|
9
|
+
Title,
|
|
10
|
+
useComponentDefaultProps,
|
|
11
|
+
} from '@mantine/core';
|
|
12
|
+
import {Children, ReactElement, ReactNode} from 'react';
|
|
4
13
|
|
|
5
|
-
|
|
14
|
+
import {HeaderStylesParams, useStyles} from './Header.styles';
|
|
15
|
+
import {HeaderActions} from './HeaderActions/HeaderActions';
|
|
16
|
+
import {HeaderBreadcrumbs} from './HeaderBreadcrumbs/HeaderBreadcrumbs';
|
|
17
|
+
import {HeaderDocAnchor} from './HeaderDocAnchor/HeaderDocAnchor';
|
|
18
|
+
|
|
19
|
+
type HeaderStylesNames = Selectors<typeof useStyles>;
|
|
20
|
+
|
|
21
|
+
export interface HeaderProps extends Omit<GroupProps, 'styles'>, DefaultProps<HeaderStylesNames, HeaderStylesParams> {
|
|
6
22
|
/**
|
|
7
23
|
* The description text displayed inside the header underneath the title
|
|
8
24
|
*/
|
|
@@ -30,7 +46,17 @@ interface HeaderType {
|
|
|
30
46
|
DocAnchor: typeof HeaderDocAnchor;
|
|
31
47
|
}
|
|
32
48
|
|
|
33
|
-
|
|
49
|
+
const defaultProps: Partial<HeaderProps> = {
|
|
50
|
+
variant: 'page',
|
|
51
|
+
position: 'apart',
|
|
52
|
+
noWrap: true,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const Header: HeaderType = (props: HeaderProps) => {
|
|
56
|
+
const {classNames, styles, unstyled, className, description, borderBottom, variant, children, ...others} =
|
|
57
|
+
useComponentDefaultProps('PlasmaHeader', defaultProps, props);
|
|
58
|
+
const {classes, cx} = useStyles({variant}, {name: 'PlasmaHeader', classNames, styles, unstyled});
|
|
59
|
+
|
|
34
60
|
const convertedChildren = Children.toArray(children) as ReactElement[];
|
|
35
61
|
const breadcrumbs = convertedChildren.find((child) => child.type === HeaderBreadcrumbs);
|
|
36
62
|
const actions = convertedChildren.find((child) => child.type === HeaderActions);
|
|
@@ -40,67 +66,24 @@ export const Header: HeaderType = ({description, borderBottom, children, variant
|
|
|
40
66
|
);
|
|
41
67
|
return (
|
|
42
68
|
<>
|
|
43
|
-
<Group
|
|
44
|
-
position="apart"
|
|
45
|
-
p={variant === 'page' ? 'xl' : undefined}
|
|
46
|
-
pb={variant === 'page' ? 'lg' : undefined}
|
|
47
|
-
noWrap
|
|
48
|
-
{...others}
|
|
49
|
-
>
|
|
69
|
+
<Group className={cx(className, classes.root)} {...others}>
|
|
50
70
|
<Stack spacing={0}>
|
|
51
71
|
{breadcrumbs}
|
|
52
|
-
<Title
|
|
53
|
-
order={variant === 'page' ? 1 : 3}
|
|
54
|
-
color={variant === 'page' ? 'gray.5' : undefined}
|
|
55
|
-
sx={{wordBreak: 'break-word'}}
|
|
56
|
-
>
|
|
72
|
+
<Title order={variant === 'page' ? 1 : 3} className={classes.title}>
|
|
57
73
|
{otherChildren}
|
|
58
74
|
{docAnchor}
|
|
59
75
|
</Title>
|
|
60
|
-
<Text size={variant === 'page' ? 'md' : 'sm'}
|
|
76
|
+
<Text className={classes.description} size={variant === 'page' ? 'md' : 'sm'}>
|
|
61
77
|
{description}
|
|
62
78
|
</Text>
|
|
63
79
|
</Stack>
|
|
64
80
|
{actions}
|
|
65
81
|
</Group>
|
|
66
|
-
{borderBottom ? <Divider size="xs" /> : null}
|
|
82
|
+
{borderBottom ? <Divider className={classes.divider} size="xs" /> : null}
|
|
67
83
|
</>
|
|
68
84
|
);
|
|
69
85
|
};
|
|
70
86
|
|
|
71
|
-
const HeaderBreadcrumbs: FunctionComponent<{children: ReactNode}> = ({children}) => (
|
|
72
|
-
<Breadcrumbs
|
|
73
|
-
styles={(theme) => ({
|
|
74
|
-
breadcrumb: {fontSize: theme.fontSizes.sm, fontWeight: 300},
|
|
75
|
-
separator: {color: theme.colors.gray[5]},
|
|
76
|
-
})}
|
|
77
|
-
>
|
|
78
|
-
{children}
|
|
79
|
-
</Breadcrumbs>
|
|
80
|
-
);
|
|
81
|
-
|
|
82
|
-
const HeaderActions: FunctionComponent<{children: ReactNode}> = ({children}) => <Group spacing="sm">{children}</Group>;
|
|
83
|
-
|
|
84
|
-
export interface HeaderDocAnchorProps {
|
|
85
|
-
/**
|
|
86
|
-
* A href pointing to documentation related to the current panel.
|
|
87
|
-
* When provided, an info icon is rendered next to the title as link to this documentation
|
|
88
|
-
*/
|
|
89
|
-
href: string;
|
|
90
|
-
/**
|
|
91
|
-
* The tooltip text shown when hovering over the doc link icon
|
|
92
|
-
*/
|
|
93
|
-
label?: string;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const HeaderDocAnchor: FunctionComponent<HeaderDocAnchorProps> = ({href: docLink, label: docLinkTooltipLabel}) => (
|
|
97
|
-
<Tooltip label={docLinkTooltipLabel} disabled={!docLinkTooltipLabel} position="right">
|
|
98
|
-
<Anchor inline href={docLink} target="_blank" ml="xs" style={{verticalAlign: 'middle'}}>
|
|
99
|
-
<QuestionSize16Px height={16} />
|
|
100
|
-
</Anchor>
|
|
101
|
-
</Tooltip>
|
|
102
|
-
);
|
|
103
|
-
|
|
104
87
|
Header.Breadcrumbs = HeaderBreadcrumbs;
|
|
105
88
|
Header.Actions = HeaderActions;
|
|
106
89
|
Header.DocAnchor = HeaderDocAnchor;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {DefaultProps, Group, GroupProps, Selectors, useComponentDefaultProps} from '@mantine/core';
|
|
2
|
+
import {FunctionComponent} from 'react';
|
|
3
|
+
import {HeaderActionsStylesParams, useStyles} from './HeaderActions.styles';
|
|
4
|
+
|
|
5
|
+
type HeaderActionsStylesNames = Selectors<typeof useStyles>;
|
|
6
|
+
|
|
7
|
+
export type HeaderActionsProps = GroupProps & DefaultProps<HeaderActionsStylesNames, HeaderActionsStylesParams>;
|
|
8
|
+
|
|
9
|
+
const defaultProps: Partial<HeaderActionsProps> = {
|
|
10
|
+
spacing: 'sm',
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const HeaderActions: FunctionComponent<HeaderActionsProps> = (props: HeaderActionsProps) => {
|
|
14
|
+
const {classNames, styles, unstyled, className, children, ...others} = useComponentDefaultProps(
|
|
15
|
+
'PlasmaHeaderActions',
|
|
16
|
+
defaultProps,
|
|
17
|
+
props,
|
|
18
|
+
);
|
|
19
|
+
const {classes, cx} = useStyles({}, {name: 'PlasmaHeaderActions', classNames, styles, unstyled});
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<Group className={cx(className, classes.root)} {...others}>
|
|
23
|
+
{children}
|
|
24
|
+
</Group>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import {createStyles} from '@mantine/core';
|
|
2
|
+
|
|
3
|
+
export interface HeaderBreadcrumbsStylesParams {}
|
|
4
|
+
|
|
5
|
+
export const useStyles = createStyles((theme, {}: HeaderBreadcrumbsStylesParams) => ({
|
|
6
|
+
breadcrumb: {fontSize: theme.fontSizes.sm, fontWeight: 300},
|
|
7
|
+
separator: {color: theme.colors.gray[5]},
|
|
8
|
+
}));
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {Breadcrumbs, BreadcrumbsProps, DefaultProps, Selectors} from '@mantine/core';
|
|
2
|
+
import {FunctionComponent} from 'react';
|
|
3
|
+
import {HeaderBreadcrumbsStylesParams, useStyles} from './HeaderBreadcrumbs.styles';
|
|
4
|
+
|
|
5
|
+
type HeaderBreadcrumbsStylesNames = Selectors<typeof useStyles>;
|
|
6
|
+
|
|
7
|
+
export type HeaderBreadcrumbsProps = BreadcrumbsProps &
|
|
8
|
+
DefaultProps<HeaderBreadcrumbsStylesNames, HeaderBreadcrumbsStylesParams>;
|
|
9
|
+
|
|
10
|
+
export const HeaderBreadcrumbs: FunctionComponent<HeaderBreadcrumbsProps> = ({
|
|
11
|
+
classNames,
|
|
12
|
+
styles,
|
|
13
|
+
unstyled,
|
|
14
|
+
children,
|
|
15
|
+
...others
|
|
16
|
+
}) => {
|
|
17
|
+
const {classes} = useStyles(
|
|
18
|
+
{},
|
|
19
|
+
{
|
|
20
|
+
name: 'PlasmaHeaderBreadcrumbs',
|
|
21
|
+
classNames,
|
|
22
|
+
styles,
|
|
23
|
+
unstyled,
|
|
24
|
+
},
|
|
25
|
+
);
|
|
26
|
+
return (
|
|
27
|
+
<Breadcrumbs classNames={{breadcrumb: classes.breadcrumb, separator: classes.separator}} {...others}>
|
|
28
|
+
{children}
|
|
29
|
+
</Breadcrumbs>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {createStyles} from '@mantine/core';
|
|
2
|
+
|
|
3
|
+
export interface HeaderDocAnchorStylesParams {}
|
|
4
|
+
|
|
5
|
+
export const useStyles = createStyles((theme, {}: HeaderDocAnchorStylesParams) => ({
|
|
6
|
+
tooltip: {},
|
|
7
|
+
anchor: {
|
|
8
|
+
marginLeft: theme.spacing.xs,
|
|
9
|
+
verticalAlign: 'middle',
|
|
10
|
+
},
|
|
11
|
+
}));
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import {QuestionSize16Px} from '@coveord/plasma-react-icons';
|
|
2
|
+
import {Anchor, DefaultProps, Selectors, Tooltip, TooltipProps, useComponentDefaultProps} from '@mantine/core';
|
|
3
|
+
import {FunctionComponent, ReactNode} from 'react';
|
|
4
|
+
import {HeaderDocAnchorStylesParams, useStyles} from './HeaderDocAnchor.styles';
|
|
5
|
+
|
|
6
|
+
type HeaderDocAnchorStylesNames = Selectors<typeof useStyles>;
|
|
7
|
+
|
|
8
|
+
const defaultProps: Partial<HeaderDocAnchorProps> = {
|
|
9
|
+
position: 'right',
|
|
10
|
+
children: <QuestionSize16Px height={16} />,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export interface HeaderDocAnchorProps
|
|
14
|
+
extends Pick<TooltipProps, 'position'>,
|
|
15
|
+
DefaultProps<HeaderDocAnchorStylesNames, HeaderDocAnchorStylesParams> {
|
|
16
|
+
/**
|
|
17
|
+
* A href pointing to documentation related to the current panel.
|
|
18
|
+
* When provided, an info icon is rendered next to the title as link to this documentation
|
|
19
|
+
*/
|
|
20
|
+
href: string;
|
|
21
|
+
/**
|
|
22
|
+
* The tooltip text shown when hovering over the doc link icon
|
|
23
|
+
*/
|
|
24
|
+
label?: string;
|
|
25
|
+
/**
|
|
26
|
+
* React component to add the tooltip and anchor on
|
|
27
|
+
*/
|
|
28
|
+
children?: ReactNode;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const HeaderDocAnchor: FunctionComponent<HeaderDocAnchorProps> = (props: HeaderDocAnchorProps) => {
|
|
32
|
+
const {
|
|
33
|
+
classNames,
|
|
34
|
+
styles,
|
|
35
|
+
unstyled,
|
|
36
|
+
className,
|
|
37
|
+
children,
|
|
38
|
+
href: docLink,
|
|
39
|
+
label: docLinkTooltipLabel,
|
|
40
|
+
...others
|
|
41
|
+
} = useComponentDefaultProps('PlasmaHeaderActions', defaultProps, props);
|
|
42
|
+
const {classes, cx} = useStyles({}, {name: 'PlasmaHeaderActions', classNames, styles, unstyled});
|
|
43
|
+
return (
|
|
44
|
+
<Tooltip
|
|
45
|
+
className={cx(className, classes.tooltip)}
|
|
46
|
+
label={docLinkTooltipLabel}
|
|
47
|
+
disabled={!docLinkTooltipLabel}
|
|
48
|
+
{...others}
|
|
49
|
+
>
|
|
50
|
+
<Anchor className={classes.anchor} inline href={docLink} target="_blank">
|
|
51
|
+
{children}
|
|
52
|
+
</Anchor>
|
|
53
|
+
</Tooltip>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
@@ -10,7 +10,7 @@ describe('Header', () => {
|
|
|
10
10
|
const header = screen.getByRole('heading');
|
|
11
11
|
expect(header).toMatchInlineSnapshot(`
|
|
12
12
|
<h1
|
|
13
|
-
class="mantine-Text-root mantine-Title-root mantine-
|
|
13
|
+
class="mantine-Text-root mantine-Title-root mantine-PlasmaHeader-title mantine-1o7jx33"
|
|
14
14
|
>
|
|
15
15
|
child
|
|
16
16
|
</h1>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports[`Header > renders the specified breadcrumbs above the title 1`] = `
|
|
4
4
|
<div>
|
|
5
5
|
<div
|
|
6
|
-
class="mantine-Group-root mantine-
|
|
6
|
+
class="mantine-Group-root mantine-PlasmaHeader-root mantine-15aa8um"
|
|
7
7
|
>
|
|
8
8
|
<div
|
|
9
9
|
class="mantine-Stack-root mantine-1178y6y"
|
|
@@ -12,38 +12,38 @@ exports[`Header > renders the specified breadcrumbs above the title 1`] = `
|
|
|
12
12
|
class="mantine-Breadcrumbs-root mantine-1ujbd2v"
|
|
13
13
|
>
|
|
14
14
|
<a
|
|
15
|
-
class="mantine-Text-root mantine-Anchor-root mantine-Breadcrumbs-breadcrumb mantine-
|
|
15
|
+
class="mantine-Text-root mantine-Anchor-root mantine-PlasmaHeaderBreadcrumbs-breadcrumb mantine-Breadcrumbs-breadcrumb mantine-1p2lvqc"
|
|
16
16
|
>
|
|
17
17
|
One
|
|
18
18
|
</a>
|
|
19
19
|
<div
|
|
20
|
-
class="mantine-Text-root mantine-Breadcrumbs-separator mantine-
|
|
20
|
+
class="mantine-Text-root mantine-PlasmaHeaderBreadcrumbs-separator mantine-Breadcrumbs-separator mantine-1y8084r"
|
|
21
21
|
>
|
|
22
22
|
/
|
|
23
23
|
</div>
|
|
24
24
|
<a
|
|
25
|
-
class="mantine-Text-root mantine-Anchor-root mantine-Breadcrumbs-breadcrumb mantine-
|
|
25
|
+
class="mantine-Text-root mantine-Anchor-root mantine-PlasmaHeaderBreadcrumbs-breadcrumb mantine-Breadcrumbs-breadcrumb mantine-1p2lvqc"
|
|
26
26
|
>
|
|
27
27
|
Two
|
|
28
28
|
</a>
|
|
29
29
|
<div
|
|
30
|
-
class="mantine-Text-root mantine-Breadcrumbs-separator mantine-
|
|
30
|
+
class="mantine-Text-root mantine-PlasmaHeaderBreadcrumbs-separator mantine-Breadcrumbs-separator mantine-1y8084r"
|
|
31
31
|
>
|
|
32
32
|
/
|
|
33
33
|
</div>
|
|
34
34
|
<a
|
|
35
|
-
class="mantine-Text-root mantine-Anchor-root mantine-Breadcrumbs-breadcrumb mantine-
|
|
35
|
+
class="mantine-Text-root mantine-Anchor-root mantine-PlasmaHeaderBreadcrumbs-breadcrumb mantine-Breadcrumbs-breadcrumb mantine-1p2lvqc"
|
|
36
36
|
>
|
|
37
37
|
Three
|
|
38
38
|
</a>
|
|
39
39
|
</div>
|
|
40
40
|
<h1
|
|
41
|
-
class="mantine-Text-root mantine-Title-root mantine-
|
|
41
|
+
class="mantine-Text-root mantine-Title-root mantine-PlasmaHeader-title mantine-1o7jx33"
|
|
42
42
|
>
|
|
43
43
|
Title
|
|
44
44
|
</h1>
|
|
45
45
|
<div
|
|
46
|
-
class="mantine-Text-root mantine-
|
|
46
|
+
class="mantine-Text-root mantine-PlasmaHeader-description mantine-52dv7d"
|
|
47
47
|
/>
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|