@atlaskit/atlassian-navigation
Version:
A horizontal navigation component for Atlassian products.
134 lines (132 loc) • 6.28 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ProductHomeSkeleton = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = require("react");
var _react2 = require("@emotion/react");
var _constants = require("../../common/constants");
var _theme = require("../../theme");
var _css;
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 = (0, _react2.css)((_css = {
display: 'flex',
padding: _constants.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'
}
}, (0, _defineProperty2.default)(_css, "@media (max-width: ".concat(_constants.PRODUCT_HOME_BREAKPOINT - 0.1, "px)"), {
margin: "0 ".concat(_constants.gridSize, "px")
}), (0, _defineProperty2.default)(_css, "@media (min-width: ".concat(_constants.PRODUCT_HOME_BREAKPOINT, "px)"), {
margin: "0 ".concat(_constants.gridSize * 2, "px")
}), _css));
var productLogoStyles = (0, _react2.css)((0, _defineProperty2.default)({
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(_constants.PRODUCT_HOME_BREAKPOINT - 0.1, "px)"), {
display: 'none'
}));
var productIconStyles = (0, _react2.css)((0, _defineProperty2.default)({
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(_constants.PRODUCT_HOME_BREAKPOINT, "px)"), {
display: 'none'
}));
var siteTitleStyles = (0, _react2.css)({
display: 'flex',
width: _constants.gridSize * 5,
marginRight: _constants.gridSize / 2,
marginLeft: _constants.gridSize * 0.5,
paddingRight: _constants.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
var ProductHomeSkeleton = function ProductHomeSkeleton(_ref) {
var _productHomeButtonDyn;
var showSiteName = _ref.showSiteName;
var theme = (0, _theme.useTheme)();
var primaryButton = theme.mode.primaryButton;
var productHomeButtonDynamicStyles = (_productHomeButtonDyn = {}, (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_COLOR_ACTIVE, primaryButton.active.color), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_BACKGROUND_COLOR_ACTIVE, primaryButton.active.backgroundColor), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_BOX_SHADOW_ACTIVE, primaryButton.active.boxShadow), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_COLOR_FOCUS, primaryButton.focus.color), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_BACKGROUND_COLOR_FOCUS, primaryButton.focus.backgroundColor), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_BOX_SHADOW_FOCUS, primaryButton.focus.boxShadow), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_COLOR_HOVER, primaryButton.hover.color), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_BACKGROUND_COLOR_HOVER, primaryButton.hover.backgroundColor), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_PRODUCT_HOME_BOX_SHADOW_HOVER, primaryButton.hover.boxShadow), (0, _defineProperty2.default)(_productHomeButtonDyn, VAR_SITE_TITLE_BG_COLOR_AFTER, theme.mode.skeleton.backgroundColor), _productHomeButtonDyn);
var siteTitleDynamicStyles = (0, _defineProperty2.default)({
borderRight: theme.mode.productHome.borderRight,
opacity: theme.mode.skeleton.opacity
}, VAR_SITE_TITLE_BG_COLOR_AFTER, theme.mode.skeleton.backgroundColor);
return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)("div", {
style: productHomeButtonDynamicStyles,
css: productHomeButtonStyles
}, (0, _react2.jsx)("div", {
style: theme.mode.skeleton,
css: productLogoStyles
}), (0, _react2.jsx)("div", {
style: theme.mode.skeleton,
css: productIconStyles
})), showSiteName && (0, _react2.jsx)("div", {
style: siteTitleDynamicStyles,
css: siteTitleStyles
}));
};
exports.ProductHomeSkeleton = ProductHomeSkeleton;