UNPKG

@roo-ui/components

Version:

101 lines (76 loc) 6.36 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.CalendarEmptyDay = exports.CalendarDay = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _templateObject = _taggedTemplateLiteral(['\n flex: 1 1 auto;\n width: calc(100% / 7);\n margin: 0 -1px -1px 0;\n position: relative;\n border: ', ' transparent;\n\n &:after {\n content: "";\n display: block;\n padding-bottom: 100%;\n }\n\n ', ';\n\n ', ';\n'], ['\n flex: 1 1 auto;\n width: calc(100% / 7);\n margin: 0 -1px -1px 0;\n position: relative;\n border: ', ' transparent;\n\n &:after {\n content: "";\n display: block;\n padding-bottom: 100%;\n }\n\n ', ';\n\n ', ';\n']), _templateObject2 = _taggedTemplateLiteral(['\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n color: ', ';\n padding: 0;\n border: ', ' transparent;\n\n &:focus {\n outline: none;\n }\n\n &:disabled {\n cursor: not-allowed;\n background-color: ', ';\n }\n\n ', ';\n\n ', ';\n\n ', ';\n\n ', ';\n\n ', ';\n\n ', ';\n'], ['\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n color: ', ';\n padding: 0;\n border: ', ' transparent;\n\n &:focus {\n outline: none;\n }\n\n &:disabled {\n cursor: not-allowed;\n background-color: ', ';\n }\n\n ', ';\n\n ', ';\n\n ', ';\n\n ', ';\n\n ', ';\n\n ', ';\n']), _templateObject3 = _taggedTemplateLiteral(['\n border-color: transparent;\n'], ['\n border-color: transparent;\n']); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _styledSystem = require('styled-system'); var _styledComponents = require('styled-components'); var _polished = require('polished'); var _ = require('../../../'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var DayWrapper = _.Box.extend(_templateObject, (0, _styledSystem.themeGet)('borders.1'), function (props) { return props.selectable && (0, _styledComponents.css)(['&:hover{border-color:', ';z-index:1;}'], (0, _styledSystem.themeGet)('colors.brand.secondary')); }, function (props) { return props.selected && (0, _styledComponents.css)(['z-index:1;border-color:', ';'], (0, _styledSystem.themeGet)('colors.brand.secondary')); }); DayWrapper.defaultProps = _extends({}, _.Box.defaultProps, { blacklist: [].concat(_toConsumableArray(Object.keys(_.Box.propTypes)), ['selected', 'selectable']) }); var Button = _.NakedButton.extend(_templateObject2, (0, _styledSystem.themeGet)('colors.greys.charcoal'), (0, _styledSystem.themeGet)('borders.1'), (0, _styledSystem.themeGet)('colors.greys.alto'), function (props) { return props.selectable && (0, _styledComponents.css)(['background-color:', ';'], (0, _styledSystem.themeGet)('colors.white')); }, function (props) { return props.selected && !props.highlighted && (0, _styledComponents.css)(['background-color:', ';&:hover,&:focus{border-color:', ';background-color:', ';;}'], (0, _styledSystem.themeGet)('colors.lightBlue'), (0, _styledSystem.themeGet)('colors.brand.secondary'), (0, _styledSystem.themeGet)('colors.white')); }, function (props) { return props.highlighted && !props.selected && (0, _styledComponents.css)(['background-color:', ';&:hover,&:focus{background-color:transparent;border-color:', ';}'], (0, _styledSystem.themeGet)('colors.lightBlue'), (0, _styledSystem.themeGet)('colors.brand.secondary')); }, function (props) { return props.highlighted && props.selected && (0, _styledComponents.css)(['background-color:', ';&:hover{background-color:transparent;border-color:', ';}'], (0, _styledSystem.themeGet)('colors.brand.secondary'), (0, _styledSystem.themeGet)('colors.brand.secondary')); }, function (props) { return props.selectable && !props.selected && (0, _styledComponents.css)(['&:hover,&:focus{background-color:', ';border-color:', ';}'], (0, _styledSystem.themeGet)('colors.white'), (0, _styledSystem.themeGet)('colors.brand.secondary')); }, function (props) { return !props.selectable && !props.disabled && (0, _styledComponents.css)(['background-color:', ';&:hover,&:focus{background-color:', ';}'], (0, _styledSystem.themeGet)('colors.greys.alto'), (0, _polished.darken)(0.1, (0, _styledSystem.themeGet)('colors.greys.alto')(props))); }); Button.defaultProps = _extends({}, _.NakedButton.defaultProps, { disabled: _propTypes2.default.bool, blacklist: [].concat(_toConsumableArray(Object.keys(_.NakedButton.propTypes)), ['selectable', 'highlighted']) }); var CalendarDay = function CalendarDay(_ref) { var children = _ref.children, selected = _ref.selected, rest = _objectWithoutProperties(_ref, ['children', 'selected']); return _react2.default.createElement( DayWrapper, { selected: selected }, _react2.default.createElement( Button, _extends({ selected: selected }, rest), children ) ); }; exports.CalendarDay = CalendarDay; CalendarDay.defaultProps = { selectable: true, disabled: false, selected: false, highlighted: false }; CalendarDay.propTypes = { children: _propTypes2.default.node.isRequired, selected: _propTypes2.default.bool, selectable: _propTypes2.default.bool, disabled: _propTypes2.default.bool, highlighted: _propTypes2.default.bool }; var CalendarEmptyDay = exports.CalendarEmptyDay = DayWrapper.withComponent('div').extend(_templateObject3); CalendarEmptyDay.displayName = 'CalendarEmptyDay';