@zendeskgarden/react-chrome 9.0.0-next.2 → 9.0.0-next.20
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/README.md +26 -27
- package/dist/esm/elements/Chrome.js +95 -0
- package/dist/esm/elements/SkipNav.js +65 -0
- package/dist/esm/elements/body/Body.js +57 -0
- package/dist/esm/elements/body/Content.js +54 -0
- package/dist/esm/elements/body/Main.js +47 -0
- package/dist/esm/elements/footer/Footer.js +67 -0
- package/dist/esm/elements/footer/FooterItem.js +47 -0
- package/dist/esm/elements/header/Header.js +60 -0
- package/dist/esm/elements/header/HeaderItem.js +69 -0
- package/dist/esm/elements/header/HeaderItemIcon.js +50 -0
- package/dist/esm/elements/header/HeaderItemText.js +51 -0
- package/dist/esm/elements/header/HeaderItemWrapper.js +47 -0
- package/dist/esm/elements/nav/Nav.js +84 -0
- package/dist/esm/elements/nav/NavItem.js +95 -0
- package/dist/esm/elements/nav/NavItemIcon.js +50 -0
- package/dist/esm/elements/nav/NavItemText.js +58 -0
- package/dist/esm/elements/nav/NavList.js +55 -0
- package/dist/esm/elements/sheet/Sheet.js +128 -0
- package/dist/esm/elements/sheet/components/Body.js +50 -0
- package/dist/esm/elements/sheet/components/Close.js +60 -0
- package/dist/esm/elements/sheet/components/Description.js +59 -0
- package/dist/esm/elements/sheet/components/Footer.js +50 -0
- package/dist/esm/elements/sheet/components/FooterItem.js +50 -0
- package/dist/esm/elements/sheet/components/Header.js +55 -0
- package/dist/esm/elements/sheet/components/Title.js +59 -0
- package/dist/esm/index.js +24 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/link-stroke.svg.js +25 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/x-stroke.svg.js +26 -0
- package/dist/esm/styled/StyledChrome.js +22 -0
- package/dist/esm/styled/StyledSkipNav.js +67 -0
- package/dist/esm/styled/StyledSkipNavIcon.js +34 -0
- package/dist/esm/styled/body/StyledBody.js +25 -0
- package/dist/esm/styled/body/StyledContent.js +37 -0
- package/dist/esm/styled/body/StyledMain.js +25 -0
- package/dist/esm/styled/footer/StyledFooter.js +46 -0
- package/dist/esm/styled/footer/StyledFooterItem.js +22 -0
- package/dist/esm/styled/header/StyledBaseHeaderItem.js +44 -0
- package/dist/esm/styled/header/StyledHeader.js +58 -0
- package/dist/esm/styled/header/StyledHeaderItem.js +69 -0
- package/dist/esm/styled/header/StyledHeaderItemIcon.js +30 -0
- package/dist/esm/styled/header/StyledHeaderItemText.js +23 -0
- package/dist/esm/styled/header/StyledHeaderItemWrapper.js +24 -0
- package/dist/esm/styled/header/StyledLogoHeaderItem.js +55 -0
- package/dist/esm/styled/nav/StyledBaseNavItem.js +33 -0
- package/dist/esm/styled/nav/StyledBrandmarkNavItem.js +23 -0
- package/dist/esm/styled/nav/StyledLogoNavItem.js +37 -0
- package/dist/esm/styled/nav/StyledNav.js +54 -0
- package/dist/esm/styled/nav/StyledNavButton.js +94 -0
- package/dist/esm/styled/nav/StyledNavItemIcon.js +29 -0
- package/dist/esm/styled/nav/StyledNavItemText.js +39 -0
- package/dist/esm/styled/nav/StyledNavList.js +22 -0
- package/dist/esm/styled/nav/StyledNavListItem.js +22 -0
- package/dist/esm/styled/sheet/StyledSheet.js +56 -0
- package/dist/esm/styled/sheet/StyledSheetBody.js +22 -0
- package/dist/esm/styled/sheet/StyledSheetClose.js +31 -0
- package/dist/esm/styled/sheet/StyledSheetDescription.js +25 -0
- package/dist/esm/styled/sheet/StyledSheetFooter.js +41 -0
- package/dist/esm/styled/sheet/StyledSheetFooterItem.js +22 -0
- package/dist/esm/styled/sheet/StyledSheetHeader.js +45 -0
- package/dist/esm/styled/sheet/StyledSheetTitle.js +25 -0
- package/dist/esm/styled/sheet/StyledSheetWrapper.js +40 -0
- package/dist/esm/styled/utils.js +20 -0
- package/dist/esm/types/index.js +10 -0
- package/dist/esm/utils/useBodyContext.js +14 -0
- package/dist/esm/utils/useChromeContext.js +16 -0
- package/dist/esm/utils/useFocusableMount.js +31 -0
- package/dist/esm/utils/useNavContext.js +16 -0
- package/dist/esm/utils/useNavListContext.js +14 -0
- package/dist/esm/utils/useSheetContext.js +16 -0
- package/dist/index.cjs.js +880 -881
- package/dist/typings/elements/body/Body.d.ts +1 -2
- package/dist/typings/elements/footer/Footer.d.ts +8 -1
- package/dist/typings/elements/footer/FooterItem.d.ts +2 -0
- package/dist/typings/elements/header/Header.d.ts +11 -1
- package/dist/typings/elements/header/HeaderItem.d.ts +2 -0
- package/dist/typings/elements/header/HeaderItemIcon.d.ts +5 -3
- package/dist/typings/elements/header/HeaderItemText.d.ts +2 -0
- package/dist/typings/elements/header/HeaderItemWrapper.d.ts +2 -0
- package/dist/typings/elements/nav/Nav.d.ts +11 -1
- package/dist/typings/elements/nav/NavItem.d.ts +2 -0
- package/dist/typings/elements/nav/NavItemIcon.d.ts +5 -3
- package/dist/typings/elements/nav/NavItemText.d.ts +2 -0
- package/dist/typings/elements/{body/Sidebar.d.ts → nav/NavList.d.ts} +2 -2
- package/dist/typings/index.d.ts +9 -16
- package/dist/typings/styled/StyledSkipNav.d.ts +0 -3
- package/dist/typings/styled/StyledSkipNavIcon.d.ts +2 -2
- package/dist/typings/styled/body/StyledContent.d.ts +2 -1
- package/dist/typings/styled/footer/StyledFooter.d.ts +1 -2
- package/dist/typings/styled/header/StyledBaseHeaderItem.d.ts +1 -6
- package/dist/typings/styled/header/StyledHeader.d.ts +1 -2
- package/dist/typings/styled/header/StyledHeaderItem.d.ts +0 -3
- package/dist/typings/styled/header/StyledHeaderItemIcon.d.ts +3 -4
- package/dist/typings/styled/header/StyledHeaderItemText.d.ts +0 -1
- package/dist/typings/styled/header/StyledLogoHeaderItem.d.ts +2 -4
- package/dist/typings/styled/index.d.ts +3 -8
- package/dist/typings/styled/nav/StyledBaseNavItem.d.ts +2 -7
- package/dist/typings/styled/nav/StyledBrandmarkNavItem.d.ts +1 -5
- package/dist/typings/styled/nav/StyledLogoNavItem.d.ts +4 -9
- package/dist/typings/styled/nav/StyledNav.d.ts +2 -6
- package/dist/typings/styled/nav/StyledNavButton.d.ts +17 -0
- package/dist/typings/styled/nav/StyledNavItemIcon.d.ts +3 -4
- package/dist/typings/styled/nav/StyledNavItemText.d.ts +2 -1
- package/dist/typings/styled/{body/StyledSidebar.d.ts → nav/StyledNavList.d.ts} +1 -1
- package/dist/typings/styled/nav/StyledNavListItem.d.ts +10 -0
- package/dist/typings/styled/sheet/StyledSheetClose.d.ts +4 -8
- package/dist/typings/styled/sheet/StyledSheetDescription.d.ts +2 -3
- package/dist/typings/styled/sheet/StyledSheetFooter.d.ts +2 -2
- package/dist/typings/styled/sheet/StyledSheetFooterItem.d.ts +2 -3
- package/dist/typings/styled/sheet/StyledSheetHeader.d.ts +2 -6
- package/dist/typings/styled/sheet/StyledSheetTitle.d.ts +2 -3
- package/dist/typings/styled/sheet/StyledSheetWrapper.d.ts +2 -2
- package/dist/typings/styled/utils.d.ts +15 -0
- package/dist/typings/types/index.d.ts +3 -30
- package/dist/typings/utils/useBodyContext.d.ts +3 -2
- package/dist/typings/utils/useChromeContext.d.ts +0 -1
- package/dist/typings/utils/useNavListContext.d.ts +13 -0
- package/package.json +9 -10
- package/dist/index.esm.js +0 -1449
- package/dist/typings/elements/subnav/CollapsibleSubNavItem.d.ts +0 -12
- package/dist/typings/elements/subnav/SubNav.d.ts +0 -11
- package/dist/typings/elements/subnav/SubNavItem.d.ts +0 -12
- package/dist/typings/elements/subnav/SubNavItemText.d.ts +0 -12
- package/dist/typings/styled/nav/StyledNavItem.d.ts +0 -26
- package/dist/typings/styled/subnav/StyledSubNav.d.ts +0 -17
- package/dist/typings/styled/subnav/StyledSubNavItem.d.ts +0 -21
- package/dist/typings/styled/subnav/StyledSubNavItemHeader.d.ts +0 -14
- package/dist/typings/styled/subnav/StyledSubNavItemIcon.d.ts +0 -14
- package/dist/typings/styled/subnav/StyledSubNavItemText.d.ts +0 -11
- package/dist/typings/styled/subnav/StyledSubNavPanel.d.ts +0 -12
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { math } from 'polished';
|
|
9
|
+
import { getColor, retrieveComponentStyles, DEFAULT_THEME, getLineHeight } from '@zendeskgarden/react-theming';
|
|
10
|
+
import { getHeaderHeight, getFooterHeight } from '../utils.js';
|
|
11
|
+
|
|
12
|
+
const COMPONENT_ID = 'chrome.content';
|
|
13
|
+
const sizeStyles = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
theme,
|
|
16
|
+
hasFooter
|
|
17
|
+
} = _ref;
|
|
18
|
+
const fontSize = theme.fontSizes.md;
|
|
19
|
+
const height = hasFooter ? `calc(100% - ${math(`${getHeaderHeight(theme)} + ${getFooterHeight(theme)}`)})` : `calc(100% - ${getHeaderHeight(theme)})`;
|
|
20
|
+
const lineHeight = getLineHeight(theme.lineHeights.md, theme.fontSizes.md);
|
|
21
|
+
return css(["height:", ";line-height:", ";font-size:", ";"], height, lineHeight, fontSize);
|
|
22
|
+
};
|
|
23
|
+
const StyledContent = styled.div.attrs({
|
|
24
|
+
'data-garden-id': COMPONENT_ID,
|
|
25
|
+
'data-garden-version': '9.0.0-next.20'
|
|
26
|
+
}).withConfig({
|
|
27
|
+
displayName: "StyledContent",
|
|
28
|
+
componentId: "sc-qcuzxn-0"
|
|
29
|
+
})(["display:flex;color-scheme:only ", ";color:", ";", ";&:focus{outline:none;}", ";"], p => p.theme.colors.base, props => getColor({
|
|
30
|
+
theme: props.theme,
|
|
31
|
+
variable: 'foreground.default'
|
|
32
|
+
}), sizeStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
33
|
+
StyledContent.defaultProps = {
|
|
34
|
+
theme: DEFAULT_THEME
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { StyledContent };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { getColor, retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
|
|
10
|
+
const COMPONENT_ID = 'chrome.main';
|
|
11
|
+
const StyledMain = styled.main.attrs({
|
|
12
|
+
'data-garden-id': COMPONENT_ID,
|
|
13
|
+
'data-garden-version': '9.0.0-next.20'
|
|
14
|
+
}).withConfig({
|
|
15
|
+
displayName: "StyledMain",
|
|
16
|
+
componentId: "sc-t61cre-0"
|
|
17
|
+
})(["flex:1;order:1;background-color:", ";overflow:auto;:focus{outline:none;}", ";"], props => getColor({
|
|
18
|
+
theme: props.theme,
|
|
19
|
+
variable: 'background.default'
|
|
20
|
+
}), props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
21
|
+
StyledMain.defaultProps = {
|
|
22
|
+
theme: DEFAULT_THEME
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { StyledMain };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { getFooterHeight } from '../utils.js';
|
|
10
|
+
|
|
11
|
+
const COMPONENT_ID = 'chrome.footer';
|
|
12
|
+
const colorStyles = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
theme
|
|
15
|
+
} = _ref;
|
|
16
|
+
const backgroundColor = getColor({
|
|
17
|
+
theme,
|
|
18
|
+
variable: 'background.default'
|
|
19
|
+
});
|
|
20
|
+
const borderColor = getColor({
|
|
21
|
+
theme,
|
|
22
|
+
variable: 'border.default'
|
|
23
|
+
});
|
|
24
|
+
return css(["border-top-color:", ";background-color:", ";"], borderColor, backgroundColor);
|
|
25
|
+
};
|
|
26
|
+
const sizeStyles = _ref2 => {
|
|
27
|
+
let {
|
|
28
|
+
theme
|
|
29
|
+
} = _ref2;
|
|
30
|
+
const border = theme.borders.sm;
|
|
31
|
+
const padding = `0 ${theme.space.base * 9}px`;
|
|
32
|
+
const height = getFooterHeight(theme);
|
|
33
|
+
return css(["box-sizing:border-box;border-top:", ";padding:", ";height:", ";"], border, padding, height);
|
|
34
|
+
};
|
|
35
|
+
const StyledFooter = styled.footer.attrs({
|
|
36
|
+
'data-garden-id': COMPONENT_ID,
|
|
37
|
+
'data-garden-version': '9.0.0-next.20'
|
|
38
|
+
}).withConfig({
|
|
39
|
+
displayName: "StyledFooter",
|
|
40
|
+
componentId: "sc-v7lib2-0"
|
|
41
|
+
})(["display:flex;align-items:center;justify-content:flex-end;", ";", ";", ";"], sizeStyles, colorStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
42
|
+
StyledFooter.defaultProps = {
|
|
43
|
+
theme: DEFAULT_THEME
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export { StyledFooter };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
|
|
10
|
+
const COMPONENT_ID = 'chrome.footer_item';
|
|
11
|
+
const StyledFooterItem = styled.div.attrs({
|
|
12
|
+
'data-garden-id': COMPONENT_ID,
|
|
13
|
+
'data-garden-version': '9.0.0-next.20'
|
|
14
|
+
}).withConfig({
|
|
15
|
+
displayName: "StyledFooterItem",
|
|
16
|
+
componentId: "sc-1cktm85-0"
|
|
17
|
+
})(["margin:", ";", ";"], props => `0 ${props.theme.space.base}px`, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
18
|
+
StyledFooterItem.defaultProps = {
|
|
19
|
+
theme: DEFAULT_THEME
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { StyledFooterItem };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME, getLineHeight } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { getHeaderItemSize } from '../utils.js';
|
|
10
|
+
|
|
11
|
+
const COMPONENT_ID = 'chrome.base_header_item';
|
|
12
|
+
const sizeStyles = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
theme,
|
|
15
|
+
maxY,
|
|
16
|
+
isRound
|
|
17
|
+
} = _ref;
|
|
18
|
+
const margin = `0 ${theme.space.base * 3}px`;
|
|
19
|
+
const size = getHeaderItemSize(theme);
|
|
20
|
+
const height = maxY ? '100%' : size;
|
|
21
|
+
const lineHeight = getLineHeight(size, theme.fontSizes.md);
|
|
22
|
+
const padding = `0 ${theme.space.base * 0.75}px`;
|
|
23
|
+
let borderRadius;
|
|
24
|
+
if (isRound) {
|
|
25
|
+
borderRadius = '100%';
|
|
26
|
+
} else if (maxY) {
|
|
27
|
+
borderRadius = '0';
|
|
28
|
+
} else {
|
|
29
|
+
borderRadius = theme.borderRadii.md;
|
|
30
|
+
}
|
|
31
|
+
return css(["margin:", ";border-radius:", ";padding:", ";min-width:", ";height:", ";line-height:", ";font-size:inherit;"], margin, borderRadius, padding, size, height, lineHeight);
|
|
32
|
+
};
|
|
33
|
+
const StyledBaseHeaderItem = styled.button.attrs({
|
|
34
|
+
'data-garden-id': COMPONENT_ID,
|
|
35
|
+
'data-garden-version': '9.0.0-next.20'
|
|
36
|
+
}).withConfig({
|
|
37
|
+
displayName: "StyledBaseHeaderItem",
|
|
38
|
+
componentId: "sc-1qua7h6-0"
|
|
39
|
+
})(["display:inline-flex;position:relative;flex:", ";align-items:center;justify-content:", ";order:1;transition:box-shadow 0.1s ease-in-out,color 0.1s ease-in-out;z-index:0;border:none;background:transparent;text-decoration:none;white-space:nowrap;color:inherit;", ";", ";"], props => props.maxX && '1', props => props.maxX ? 'start' : 'center', sizeStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
40
|
+
StyledBaseHeaderItem.defaultProps = {
|
|
41
|
+
theme: DEFAULT_THEME
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export { StyledBaseHeaderItem };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { StyledLogoHeaderItem } from './StyledLogoHeaderItem.js';
|
|
10
|
+
import { getHeaderHeight } from '../utils.js';
|
|
11
|
+
|
|
12
|
+
const COMPONENT_ID = 'chrome.header';
|
|
13
|
+
const colorStyles = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
theme,
|
|
16
|
+
isStandalone
|
|
17
|
+
} = _ref;
|
|
18
|
+
const backgroundColor = getColor({
|
|
19
|
+
theme,
|
|
20
|
+
variable: 'background.default'
|
|
21
|
+
});
|
|
22
|
+
const borderColor = getColor({
|
|
23
|
+
theme,
|
|
24
|
+
variable: 'border.default'
|
|
25
|
+
});
|
|
26
|
+
const boxShadowColor = getColor({
|
|
27
|
+
variable: 'shadow.small',
|
|
28
|
+
theme
|
|
29
|
+
});
|
|
30
|
+
const boxShadow = isStandalone ? theme.shadows.lg('0', `${theme.space.base * 2}px`, boxShadowColor) : undefined;
|
|
31
|
+
const foregroundColor = getColor({
|
|
32
|
+
theme,
|
|
33
|
+
variable: 'foreground.subtle'
|
|
34
|
+
});
|
|
35
|
+
return css(["border-bottom-color:", ";box-shadow:", ";background-color:", ";color:", ";"], borderColor, boxShadow, backgroundColor, foregroundColor);
|
|
36
|
+
};
|
|
37
|
+
const sizeStyles = _ref2 => {
|
|
38
|
+
let {
|
|
39
|
+
theme
|
|
40
|
+
} = _ref2;
|
|
41
|
+
const border = theme.borders.sm;
|
|
42
|
+
const padding = `0 ${theme.space.base}px`;
|
|
43
|
+
const fontSize = theme.fontSizes.md;
|
|
44
|
+
const height = getHeaderHeight(theme);
|
|
45
|
+
return css(["box-sizing:border-box;border-bottom:", ";padding:", ";height:", ";font-size:", ";"], border, padding, height, fontSize);
|
|
46
|
+
};
|
|
47
|
+
const StyledHeader = styled.header.attrs({
|
|
48
|
+
'data-garden-id': COMPONENT_ID,
|
|
49
|
+
'data-garden-version': '9.0.0-next.20'
|
|
50
|
+
}).withConfig({
|
|
51
|
+
displayName: "StyledHeader",
|
|
52
|
+
componentId: "sc-1cexpz-0"
|
|
53
|
+
})(["display:flex;position:", ";align-items:center;justify-content:flex-end;", ";", ";", "{display:", ";}", ";"], props => props.isStandalone && 'relative', sizeStyles, colorStyles, StyledLogoHeaderItem, props => props.isStandalone && 'inline-flex', props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
54
|
+
StyledHeader.defaultProps = {
|
|
55
|
+
theme: DEFAULT_THEME
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export { StyledHeader };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { math } from 'polished';
|
|
9
|
+
import { retrieveComponentStyles, DEFAULT_THEME, getColor, focusStyles } from '@zendeskgarden/react-theming';
|
|
10
|
+
import { StyledHeaderItemIcon } from './StyledHeaderItemIcon.js';
|
|
11
|
+
import { StyledBaseHeaderItem } from './StyledBaseHeaderItem.js';
|
|
12
|
+
import { StyledHeaderItemText } from './StyledHeaderItemText.js';
|
|
13
|
+
import { getHeaderItemSize } from '../utils.js';
|
|
14
|
+
|
|
15
|
+
const COMPONENT_ID = 'chrome.header_item';
|
|
16
|
+
const colorStyles = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
theme,
|
|
19
|
+
maxY
|
|
20
|
+
} = _ref;
|
|
21
|
+
const options = {
|
|
22
|
+
theme,
|
|
23
|
+
variable: 'foreground.subtle'
|
|
24
|
+
};
|
|
25
|
+
const hoverColor = getColor({
|
|
26
|
+
...options,
|
|
27
|
+
dark: {
|
|
28
|
+
offset: -100
|
|
29
|
+
},
|
|
30
|
+
light: {
|
|
31
|
+
offset: 100
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
const activeColor = getColor({
|
|
35
|
+
...options,
|
|
36
|
+
dark: {
|
|
37
|
+
offset: -200
|
|
38
|
+
},
|
|
39
|
+
light: {
|
|
40
|
+
offset: 200
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return css(["&:hover,&:focus{color:inherit;}", ";&:hover ", ",&:hover ", "{color:", ";}&:active ", ",&:active ", "{color:", ";}"], focusStyles({
|
|
44
|
+
theme,
|
|
45
|
+
inset: maxY
|
|
46
|
+
}), StyledHeaderItemIcon, StyledHeaderItemText, hoverColor, StyledHeaderItemIcon, StyledHeaderItemText, activeColor);
|
|
47
|
+
};
|
|
48
|
+
const sizeStyles = _ref2 => {
|
|
49
|
+
let {
|
|
50
|
+
theme,
|
|
51
|
+
isRound
|
|
52
|
+
} = _ref2;
|
|
53
|
+
const iconBorderRadius = isRound ? '100px' : undefined;
|
|
54
|
+
const imageBorderRadius = math(`${theme.borderRadii.md} - 1`);
|
|
55
|
+
const imageSize = math(`${getHeaderItemSize(theme)} - ${theme.space.base * 2}`);
|
|
56
|
+
return css(["img{margin:0;border-radius:", ";width:", ";height:", ";}", "{border-radius:", ";}"], imageBorderRadius, imageSize, imageSize, StyledHeaderItemIcon, iconBorderRadius);
|
|
57
|
+
};
|
|
58
|
+
const StyledHeaderItem = styled(StyledBaseHeaderItem).attrs({
|
|
59
|
+
'data-garden-id': COMPONENT_ID,
|
|
60
|
+
'data-garden-version': '9.0.0-next.20'
|
|
61
|
+
}).withConfig({
|
|
62
|
+
displayName: "StyledHeaderItem",
|
|
63
|
+
componentId: "sc-14sft6n-0"
|
|
64
|
+
})(["cursor:pointer;&:hover,&:focus{text-decoration:none;}", ";", ";& ", ",& ", "{transition:box-shadow 0.1s ease-in-out,color 0.1s ease-in-out;}", ";"], sizeStyles, colorStyles, StyledHeaderItemIcon, StyledHeaderItemText, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
65
|
+
StyledHeaderItem.defaultProps = {
|
|
66
|
+
theme: DEFAULT_THEME
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export { StyledHeaderItem };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { StyledBaseIcon, retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
|
|
10
|
+
const COMPONENT_ID = 'chrome.header_item_icon';
|
|
11
|
+
const sizeStyles = _ref => {
|
|
12
|
+
let {
|
|
13
|
+
theme
|
|
14
|
+
} = _ref;
|
|
15
|
+
const margin = `0 ${theme.space.base * 0.75}px`;
|
|
16
|
+
const size = theme.iconSizes.md;
|
|
17
|
+
return css(["margin:", ";width:", ";min-width:", ";height:", ";"], margin, size, size, size);
|
|
18
|
+
};
|
|
19
|
+
const StyledHeaderItemIcon = styled(StyledBaseIcon).attrs({
|
|
20
|
+
'data-garden-id': COMPONENT_ID,
|
|
21
|
+
'data-garden-version': '9.0.0-next.20'
|
|
22
|
+
}).withConfig({
|
|
23
|
+
displayName: "StyledHeaderItemIcon",
|
|
24
|
+
componentId: "sc-1jhhp6z-0"
|
|
25
|
+
})(["transition:transform 0.25s ease-in-out;", ";", ";"], sizeStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
26
|
+
StyledHeaderItemIcon.defaultProps = {
|
|
27
|
+
theme: DEFAULT_THEME
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { StyledHeaderItemIcon };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { hideVisually } from 'polished';
|
|
9
|
+
import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
10
|
+
|
|
11
|
+
const COMPONENT_ID = 'chrome.header_item_text';
|
|
12
|
+
const StyledHeaderItemText = styled.span.attrs({
|
|
13
|
+
'data-garden-id': COMPONENT_ID,
|
|
14
|
+
'data-garden-version': '9.0.0-next.20'
|
|
15
|
+
}).withConfig({
|
|
16
|
+
displayName: "StyledHeaderItemText",
|
|
17
|
+
componentId: "sc-goz7la-0"
|
|
18
|
+
})(["margin:", ";", " ", ";"], props => `0 ${props.theme.space.base * 0.75}px`, props => props.isClipped && hideVisually(), props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
19
|
+
StyledHeaderItemText.defaultProps = {
|
|
20
|
+
theme: DEFAULT_THEME
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { StyledHeaderItemText };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { StyledBaseHeaderItem } from './StyledBaseHeaderItem.js';
|
|
10
|
+
|
|
11
|
+
const COMPONENT_ID = 'chrome.header_item_wrapper';
|
|
12
|
+
const StyledHeaderItemWrapper = styled(StyledBaseHeaderItem).attrs({
|
|
13
|
+
'data-garden-id': COMPONENT_ID,
|
|
14
|
+
'data-garden-version': '9.0.0-next.20',
|
|
15
|
+
as: 'div'
|
|
16
|
+
}).withConfig({
|
|
17
|
+
displayName: "StyledHeaderItemWrapper",
|
|
18
|
+
componentId: "sc-1uieu55-0"
|
|
19
|
+
})(["", ";"], props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
20
|
+
StyledHeaderItemWrapper.defaultProps = {
|
|
21
|
+
theme: DEFAULT_THEME
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { StyledHeaderItemWrapper };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { hideVisually } from 'polished';
|
|
9
|
+
import { retrieveComponentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming';
|
|
10
|
+
import { StyledHeaderItemIcon } from './StyledHeaderItemIcon.js';
|
|
11
|
+
import { StyledBaseHeaderItem } from './StyledBaseHeaderItem.js';
|
|
12
|
+
import { StyledHeaderItemText } from './StyledHeaderItemText.js';
|
|
13
|
+
import { getProductColor, getNavWidth } from '../utils.js';
|
|
14
|
+
|
|
15
|
+
const COMPONENT_ID = 'chrome.header_item';
|
|
16
|
+
const colorStyles = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
theme,
|
|
19
|
+
product
|
|
20
|
+
} = _ref;
|
|
21
|
+
const borderColor = getColor({
|
|
22
|
+
theme,
|
|
23
|
+
variable: 'border.default'
|
|
24
|
+
});
|
|
25
|
+
const fill = getColor({
|
|
26
|
+
theme,
|
|
27
|
+
variable: 'foreground.default'
|
|
28
|
+
});
|
|
29
|
+
const color = getProductColor(product, fill );
|
|
30
|
+
return css(["border-", "-color:", ";color:", ";fill:", ";"], theme.rtl ? 'left' : 'right', borderColor, color, fill);
|
|
31
|
+
};
|
|
32
|
+
const sizeStyles = _ref2 => {
|
|
33
|
+
let {
|
|
34
|
+
theme
|
|
35
|
+
} = _ref2;
|
|
36
|
+
const border = theme.borders.sm;
|
|
37
|
+
const iconSize = theme.iconSizes.lg;
|
|
38
|
+
const marginRight = theme.rtl ? `-${theme.space.base}px` : 'auto';
|
|
39
|
+
const marginLeft = theme.rtl ? 'auto' : `-${theme.space.base}px`;
|
|
40
|
+
const width = getNavWidth(theme);
|
|
41
|
+
return css(["margin-right:", ";margin-left:", ";border-", ":", ";width:", ";height:100%;", "{margin:0;width:", ";height:", ";}"], marginRight, marginLeft, theme.rtl ? 'left' : 'right', border, width, StyledHeaderItemIcon, iconSize, iconSize);
|
|
42
|
+
};
|
|
43
|
+
const StyledLogoHeaderItem = styled(StyledBaseHeaderItem).attrs({
|
|
44
|
+
'data-garden-id': COMPONENT_ID,
|
|
45
|
+
'data-garden-version': '9.0.0-next.20',
|
|
46
|
+
as: 'div'
|
|
47
|
+
}).withConfig({
|
|
48
|
+
displayName: "StyledLogoHeaderItem",
|
|
49
|
+
componentId: "sc-1n1d1yv-0"
|
|
50
|
+
})(["display:none;order:0;border-radius:0;padding:0;overflow:hidden;text-decoration:none;", ";", ";", "{", "}", ";"], sizeStyles, colorStyles, StyledHeaderItemText, hideVisually(), props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
51
|
+
StyledLogoHeaderItem.defaultProps = {
|
|
52
|
+
theme: DEFAULT_THEME
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { StyledLogoHeaderItem };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { math } from 'polished';
|
|
9
|
+
import { DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
10
|
+
import { getNavItemHeight, getNavWidth } from '../utils.js';
|
|
11
|
+
|
|
12
|
+
const COMPONENT_ID = 'chrome.base_nav_item';
|
|
13
|
+
const sizeStyles = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
theme
|
|
16
|
+
} = _ref;
|
|
17
|
+
const minHeight = getNavItemHeight(theme);
|
|
18
|
+
const verticalPadding = math(`(${minHeight} - ${theme.iconSizes.lg}) / 2`);
|
|
19
|
+
const horizontalPadding = math(`(${getNavWidth(theme)} - ${theme.iconSizes.lg}) / 4`);
|
|
20
|
+
return css(["padding:", " ", ";min-height:", ";"], verticalPadding, horizontalPadding, minHeight);
|
|
21
|
+
};
|
|
22
|
+
const StyledBaseNavItem = styled.div.attrs({
|
|
23
|
+
'data-garden-id': COMPONENT_ID,
|
|
24
|
+
'data-garden-version': '9.0.0-next.20'
|
|
25
|
+
}).withConfig({
|
|
26
|
+
displayName: "StyledBaseNavItem",
|
|
27
|
+
componentId: "sc-zvo43f-0"
|
|
28
|
+
})(["display:flex;flex-shrink:0;align-items:center;justify-content:center;transition:outline-color 0.1s ease-in-out,box-shadow 0.1s ease-in-out,background-color 0.1s ease-in-out,opacity 0.1s ease-in-out;", ";"], sizeStyles);
|
|
29
|
+
StyledBaseNavItem.defaultProps = {
|
|
30
|
+
theme: DEFAULT_THEME
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { StyledBaseNavItem };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { StyledBaseNavItem } from './StyledBaseNavItem.js';
|
|
10
|
+
|
|
11
|
+
const COMPONENT_ID = 'chrome.brandmark_nav_list_item';
|
|
12
|
+
const StyledBrandmarkNavItem = styled(StyledBaseNavItem).attrs({
|
|
13
|
+
'data-garden-id': COMPONENT_ID,
|
|
14
|
+
'data-garden-version': '9.0.0-next.20'
|
|
15
|
+
}).withConfig({
|
|
16
|
+
displayName: "StyledBrandmarkNavItem",
|
|
17
|
+
componentId: "sc-8kynd4-0"
|
|
18
|
+
})(["order:1;opacity:", ";margin-top:auto;min-height:0;"], props => props.theme.opacity[400]);
|
|
19
|
+
StyledBrandmarkNavItem.defaultProps = {
|
|
20
|
+
theme: DEFAULT_THEME
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { StyledBrandmarkNavItem };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { StyledBaseNavItem } from './StyledBaseNavItem.js';
|
|
10
|
+
import { getProductColor } from '../utils.js';
|
|
11
|
+
|
|
12
|
+
const COMPONENT_ID = 'chrome.logo_nav_list_item';
|
|
13
|
+
const colorStyles = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
theme,
|
|
16
|
+
hue,
|
|
17
|
+
product
|
|
18
|
+
} = _ref;
|
|
19
|
+
const fillColor = getColor({
|
|
20
|
+
theme,
|
|
21
|
+
variable: 'foreground.default'
|
|
22
|
+
});
|
|
23
|
+
const color = hue === 'chromeHue' ? getProductColor(product) : fillColor;
|
|
24
|
+
return css(["color:", ";fill:", ";"], color, fillColor);
|
|
25
|
+
};
|
|
26
|
+
const StyledLogoNavItem = styled(StyledBaseNavItem).attrs({
|
|
27
|
+
'data-garden-id': COMPONENT_ID,
|
|
28
|
+
'data-garden-version': '9.0.0-next.20'
|
|
29
|
+
}).withConfig({
|
|
30
|
+
displayName: "StyledLogoNavItem",
|
|
31
|
+
componentId: "sc-saaydx-0"
|
|
32
|
+
})(["order:-1;opacity:1;cursor:default;min-height:0;", ";"], colorStyles);
|
|
33
|
+
StyledLogoNavItem.defaultProps = {
|
|
34
|
+
theme: DEFAULT_THEME
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { StyledLogoNavItem };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { getNavWidthExpanded, getNavWidth } from '../utils.js';
|
|
10
|
+
|
|
11
|
+
const COMPONENT_ID = 'chrome.nav';
|
|
12
|
+
const colorStyles = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
theme,
|
|
15
|
+
hue
|
|
16
|
+
} = _ref;
|
|
17
|
+
const shade = hue === 'chromeHue' ? 900 : undefined;
|
|
18
|
+
const backgroundColor = getColor({
|
|
19
|
+
theme,
|
|
20
|
+
hue,
|
|
21
|
+
shade
|
|
22
|
+
});
|
|
23
|
+
const foregroundColor = getColor({
|
|
24
|
+
theme,
|
|
25
|
+
dark: {
|
|
26
|
+
hue: 'white'
|
|
27
|
+
},
|
|
28
|
+
light: {
|
|
29
|
+
hue: 'black'
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return css(["background-color:", ";color:", ";"], backgroundColor, foregroundColor);
|
|
33
|
+
};
|
|
34
|
+
const sizeStyles = _ref2 => {
|
|
35
|
+
let {
|
|
36
|
+
theme,
|
|
37
|
+
isExpanded
|
|
38
|
+
} = _ref2;
|
|
39
|
+
const fontSize = theme.fontSizes.md;
|
|
40
|
+
const width = isExpanded ? getNavWidthExpanded() : getNavWidth(theme);
|
|
41
|
+
return css(["width:", ";font-size:", ";"], width, fontSize);
|
|
42
|
+
};
|
|
43
|
+
const StyledNav = styled.nav.attrs({
|
|
44
|
+
'data-garden-id': COMPONENT_ID,
|
|
45
|
+
'data-garden-version': '9.0.0-next.20'
|
|
46
|
+
}).withConfig({
|
|
47
|
+
displayName: "StyledNav",
|
|
48
|
+
componentId: "sc-6j462r-0"
|
|
49
|
+
})(["display:flex;position:relative;flex-direction:column;flex-shrink:0;order:-1;", ";", ";", ";"], colorStyles, sizeStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
50
|
+
StyledNav.defaultProps = {
|
|
51
|
+
theme: DEFAULT_THEME
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { StyledNav };
|