UNPKG

baseui

Version:

A React Component library implementing the Base design language

161 lines (158 loc) 4.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ToggleIconGroup = exports.ToggleIcon = exports.Root = exports.PanelContainer = exports.Header = exports.ContentAnimationContainer = exports.Content = void 0; var _styles = require("../styles"); var _styledComponents = require("../icon/styled-components"); /* Copyright (c) Uber Technologies, Inc. This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree. */ /** * Main component container element */ const Root = exports.Root = (0, _styles.styled)('ul', { listStyleType: 'none', marginBottom: 0, marginTop: 0, paddingLeft: 0, paddingRight: 0, width: '100%' }); Root.displayName = "Root"; Root.displayName = 'Root'; const PanelContainer = exports.PanelContainer = (0, _styles.styled)('li', props => { const { $expanded, $theme: { colors } } = props; return { listStyleType: 'none', width: '100%', borderBottomWidth: '1px', borderBottomStyle: 'solid', borderBottomColor: colors.borderOpaque }; }); PanelContainer.displayName = "PanelContainer"; PanelContainer.displayName = 'PanelContainer'; const Header = exports.Header = (0, _styles.styled)('div', props => { const { $disabled, $isFocusVisible, $theme: { colors, sizing, typography } } = props; return { ...typography.font350, color: colors.contentPrimary, cursor: $disabled ? 'not-allowed' : 'pointer', backgroundColor: colors.listHeaderFill, paddingTop: sizing.scale600, paddingBottom: sizing.scale600, paddingLeft: sizing.scale700, paddingRight: sizing.scale700, marginTop: 0, marginBottom: 0, marginLeft: 0, marginRight: 0, display: 'flex', alignItems: 'center', outline: $isFocusVisible ? `3px solid ${colors.borderAccent}` : 'none', outlineOffset: '-3px', justifyContent: 'space-between', ':hover': { color: colors.contentPrimary } }; }); Header.displayName = "Header"; Header.displayName = 'Header'; const ToggleIcon = exports.ToggleIcon = (0, _styles.styled)('svg', props => { const { $theme, $disabled, $color } = props; return { ...(0, _styledComponents.getSvgStyles)(props), flexShrink: 0, color: $color || $theme.colors.contentTierary, cursor: $disabled ? 'not-allowed' : 'pointer' }; }); ToggleIcon.displayName = "ToggleIcon"; ToggleIcon.displayName = 'ToggleIcon'; const ToggleIconGroup = exports.ToggleIconGroup = (0, _styles.styled)('g', props => { const { $theme, $expanded } = props; return { transform: $expanded ? 'rotate(-180deg)' : 'rotate(0)', transformOrigin: 'center', transitionProperty: 'transform', transitionDuration: $theme.animation.timing500, transitionTimingFunction: $theme.animation.easeOutQuinticCurve }; }); ToggleIconGroup.displayName = "ToggleIconGroup"; ToggleIconGroup.displayName = 'ToggleIconGroup'; const Content = exports.Content = (0, _styles.styled)('div', props => { const { $theme: { animation, colors, sizing, typography }, $expanded } = props; return { ...typography.font200, backgroundColor: colors.listBodyFill, color: colors.contentPrimary, paddingTop: sizing.scale800, paddingBottom: sizing.scale1000, paddingLeft: sizing.scale800, paddingRight: sizing.scale800, marginTop: 0, marginBottom: 0, marginLeft: 0, marginRight: 0, boxSizing: 'border-box', overflow: 'hidden', opacity: $expanded ? 1 : 0, visibility: $expanded ? 'visible' : 'hidden', transitionProperty: 'opacity,visibility', transitionDuration: animation.timing500, transitionDelay: animation.timing200, transitionTimingFunction: animation.easeOutQuinticCurve }; }); Content.displayName = "Content"; Content.displayName = 'Content'; const ContentAnimationContainer = exports.ContentAnimationContainer = (0, _styles.styled)('div', props => { const { $height, $theme: { animation } } = props; return { height: `${$height}`, overflow: 'hidden', transitionProperty: 'height', transitionDuration: animation.timing500, transitionTimingFunction: animation.easeOutQuinticCurve }; }); ContentAnimationContainer.displayName = "ContentAnimationContainer"; ContentAnimationContainer.displayName = 'ContentAnimationContainer';