UNPKG

@atlaskit/panel

Version:

A React component rendering a collapsible panel

43 lines (28 loc) 3.76 kB
"use strict"; 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;