@atlaskit/atlassian-navigation
Version:
A horizontal navigation component for Atlassian products.
128 lines (126 loc) • 5.58 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
var _css;
/** @jsx jsx */
import { Fragment } from 'react';
import { css, jsx } from '@emotion/react';
import { gridSize, PRODUCT_HOME_BREAKPOINT } from '../../common/constants';
import { useTheme } from '../../theme';
var VAR_PRODUCT_HOME_COLOR_ACTIVE = '--product-home-color-active';
var VAR_PRODUCT_HOME_BACKGROUND_COLOR_ACTIVE = '--product-home-bg-color-active';
var VAR_PRODUCT_HOME_BOX_SHADOW_ACTIVE = '--product-home-box-shadow-active';
var VAR_PRODUCT_HOME_COLOR_FOCUS = '--product-home-color-focus';
var VAR_PRODUCT_HOME_BACKGROUND_COLOR_FOCUS = '--product-home-bg-color-focus';
var VAR_PRODUCT_HOME_BOX_SHADOW_FOCUS = '--product-home-box-shadow-focus';
var VAR_PRODUCT_HOME_COLOR_HOVER = '--product-home-color-hover';
var VAR_PRODUCT_HOME_BACKGROUND_COLOR_HOVER = '--product-home-bg-color-hover';
var VAR_PRODUCT_HOME_BOX_SHADOW_HOVER = '--product-home-box-shadow-hover';
var VAR_SITE_TITLE_BG_COLOR_AFTER = '--site-title-bg-color-after';
var productHomeButtonStyles = css((_css = {
display: 'flex',
padding: gridSize / 2,
alignItems: 'center',
background: 'none',
border: 0,
borderRadius: 3,
color: 'inherit',
cursor: 'pointer',
'&::-moz-focus-inner': {
border: 0
},
'&:first-of-type': {
marginLeft: 0
},
'&:active': {
backgroundColor: "var(".concat(VAR_PRODUCT_HOME_BACKGROUND_COLOR_ACTIVE, ")"),
boxShadow: "var(".concat(VAR_PRODUCT_HOME_BOX_SHADOW_ACTIVE, ")"),
color: "var(".concat(VAR_PRODUCT_HOME_COLOR_ACTIVE, ")")
},
'&:focus': {
backgroundColor: "var(".concat(VAR_PRODUCT_HOME_BACKGROUND_COLOR_FOCUS, ")"),
boxShadow: "var(".concat(VAR_PRODUCT_HOME_BOX_SHADOW_FOCUS, ")"),
color: "var(".concat(VAR_PRODUCT_HOME_COLOR_FOCUS, ")"),
outline: 0
},
'&:hover': {
backgroundColor: "var(".concat(VAR_PRODUCT_HOME_BACKGROUND_COLOR_HOVER, ")"),
boxShadow: "var(".concat(VAR_PRODUCT_HOME_BOX_SHADOW_HOVER, ")"),
color: "var(".concat(VAR_PRODUCT_HOME_COLOR_HOVER, ")")
},
// eslint-disable-next-line @repo/internal/styles/no-nested-styles
'div&': {
pointerEvents: 'none'
}
}, _defineProperty(_css, "@media (max-width: ".concat(PRODUCT_HOME_BREAKPOINT - 0.1, "px)"), {
margin: "0 ".concat(gridSize, "px")
}), _defineProperty(_css, "@media (min-width: ".concat(PRODUCT_HOME_BREAKPOINT, "px)"), {
margin: "0 ".concat(gridSize * 2, "px")
}), _css));
var productLogoStyles = css(_defineProperty({
display: 'flex',
width: 120,
maxWidth: 120,
height: 24,
maxHeight: 28,
opacity: 0.15,
// eslint-disable-next-line @repo/internal/styles/no-nested-styles
'& > *': {
maxHeight: 24
}
}, "@media (max-width: ".concat(PRODUCT_HOME_BREAKPOINT - 0.1, "px)"), {
display: 'none'
}));
var productIconStyles = css(_defineProperty({
display: 'flex',
width: 28,
height: 28,
borderRadius: '50%',
opacity: 0.15,
// eslint-disable-next-line @repo/internal/styles/no-nested-styles
'& > *': {
maxHeight: 24
}
}, "@media (min-width: ".concat(PRODUCT_HOME_BREAKPOINT, "px)"), {
display: 'none'
}));
var siteTitleStyles = css({
display: 'flex',
width: gridSize * 5,
marginRight: gridSize / 2,
marginLeft: gridSize * 0.5,
paddingRight: gridSize * 2,
alignItems: 'center',
backgroundColor: 'transparent',
'&:after': {
width: '100%',
height: 14,
backgroundColor: "var(".concat(VAR_SITE_TITLE_BG_COLOR_AFTER, ")"),
borderRadius: 4,
content: '""'
}
});
// Not exported to consumers, only used in NavigationSkeleton
// eslint-disable-next-line @repo/internal/react/require-jsdoc
export var ProductHomeSkeleton = function ProductHomeSkeleton(_ref) {
var _productHomeButtonDyn;
var showSiteName = _ref.showSiteName;
var theme = useTheme();
var primaryButton = theme.mode.primaryButton;
var productHomeButtonDynamicStyles = (_productHomeButtonDyn = {}, _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_COLOR_ACTIVE, primaryButton.active.color), _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_BACKGROUND_COLOR_ACTIVE, primaryButton.active.backgroundColor), _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_BOX_SHADOW_ACTIVE, primaryButton.active.boxShadow), _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_COLOR_FOCUS, primaryButton.focus.color), _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_BACKGROUND_COLOR_FOCUS, primaryButton.focus.backgroundColor), _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_BOX_SHADOW_FOCUS, primaryButton.focus.boxShadow), _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_COLOR_HOVER, primaryButton.hover.color), _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_BACKGROUND_COLOR_HOVER, primaryButton.hover.backgroundColor), _defineProperty(_productHomeButtonDyn, VAR_PRODUCT_HOME_BOX_SHADOW_HOVER, primaryButton.hover.boxShadow), _defineProperty(_productHomeButtonDyn, VAR_SITE_TITLE_BG_COLOR_AFTER, theme.mode.skeleton.backgroundColor), _productHomeButtonDyn);
var siteTitleDynamicStyles = _defineProperty({
borderRight: theme.mode.productHome.borderRight,
opacity: theme.mode.skeleton.opacity
}, VAR_SITE_TITLE_BG_COLOR_AFTER, theme.mode.skeleton.backgroundColor);
return jsx(Fragment, null, jsx("div", {
style: productHomeButtonDynamicStyles,
css: productHomeButtonStyles
}, jsx("div", {
style: theme.mode.skeleton,
css: productLogoStyles
}), jsx("div", {
style: theme.mode.skeleton,
css: productIconStyles
})), showSiteName && jsx("div", {
style: siteTitleDynamicStyles,
css: siteTitleStyles
}));
};