@atlaskit/panel
Version:
A React component rendering a collapsible panel
43 lines (28 loc) • 3.76 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PanelWrapper = exports.PanelHeader = exports.ButtonWrapper = void 0;
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _reactFocusWithin = require("react-focus-within");
var _styledComponents = _interopRequireWildcard(require("styled-components"));
var _theme = require("@atlaskit/theme");
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var transition = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n transition: all 200ms ease-in-out;\n"])));
var PanelWrapper = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin: 0 auto ", "px;\n"])), (0, _theme.gridSize)() * 2);
exports.PanelWrapper = PanelWrapper;
var ButtonWrapper = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n left: 0;\n line-height: 0;\n opacity: ", ";\n position: absolute;\n ", ";\n\n /* IE 11 needs these vertical positioning rules - the flexbox\n behavior for absolute-positioned children is not up to spec.\n https://googlechrome.github.io/samples/css-flexbox-abspos/ */\n top: 50%;\n transform: translateY(-50%);\n\n button {\n pointer-events: none;\n }\n"])), function (_ref) {
var isHidden = _ref.isHidden;
return isHidden ? 0 : 1;
}, transition);
exports.ButtonWrapper = ButtonWrapper;
var PanelHeader = (0, _reactFocusWithin.withFocusWithin)(_styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n background-color: ", ";\n border-radius: ", "px;\n display: flex;\n left: -", "px;\n margin-bottom: ", "px;\n margin-top: ", "px;\n padding: 2px 0 2px ", "px;\n position: relative;\n ", ";\n width: 100%;\n\n ", " {\n opacity: ", ";\n }\n\n &:hover {\n background-color: ", ";\n cursor: pointer;\n\n ", " {\n opacity: 1;\n }\n }\n"])), function (props) {
return props.isFocused && _theme.colors.N20;
}, _theme.borderRadius, (0, _theme.gridSize)() * 3, (0, _theme.gridSize)(), (0, _theme.gridSize)() * 2, (0, _theme.gridSize)() * 3, transition, ButtonWrapper, function (props) {
return props.isFocused && 1;
}, _theme.colors.N20, ButtonWrapper));
exports.PanelHeader = PanelHeader;
;