@vimeo/iris
Version:
Vimeo Design System
103 lines (96 loc) • 6.32 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var tslib_es6 = require('../../../tslib.es6-3ec409b7.js');
var React = require('react');
var components_inputs_Select_Select_minors = require('./Select.minors.js');
var components_inputs_Select_Select_style = require('./Select.style.js');
var components_inputs_Select_SelectFaux = require('./SelectFaux.js');
var components_inputs_Wrapper_Wrapper = require('../Wrapper/Wrapper.js');
var utils_HOCs_withIris = require('../../../utils/HOCs/withIris.js');
var utils_hooks_useLayoutStyles = require('../../../utils/hooks/useLayoutStyles.js');
var utils_css = require('../../../utils/css.js');
require('../../PopOver/PopOver.minors.js');
require('styled-components');
require('polished');
require('../../../typography/Header/Header.js');
require('../../../typography/Header/Header.style.js');
require('../../../typography/typography.js');
require('../../../typography/Text/Text.js');
require('../../../typography/Text/Text.style.js');
require('../../../tokens/core.js');
require('../../../tokens/color/index.js');
require('../../../tokens/color/background/background.js');
require('../../../tokens/util/readToken.js');
require('../../../color/colors.js');
require('../../../tokens/util/clamp.js');
require('../../../tokens/color/format/format.js');
require('../../../tokens/color/format/primary.js');
require('../../../tokens/color/format/secondary.js');
require('../../../tokens/color/format/tertiary.js');
require('../../../tokens/color/rainbow/rainbow.js');
require('../../../tokens/color/rainbow/conic/index.js');
require('../../../tokens/color/rainbow/conic/sm.js');
require('../../../tokens/color/rainbow/conic/xl.js');
require('../../../tokens/color/rainbow/linear/index.js');
require('../../../tokens/color/rainbow/linear/sm.js');
require('../../../tokens/color/rainbow/linear/xl.js');
require('../../../tokens/color/livestream/livestream.js');
require('../../../tokens/color/status/status.js');
require('../../../tokens/color/status/caution.js');
require('../../../tokens/color/status/negative.js');
require('../../../tokens/color/status/positive.js');
require('../../../tokens/color/stroke/stroke.js');
require('../../../tokens/color/surface/surface.js');
require('../../../tokens/color/text/text.js');
require('../../../tokens/util/round.js');
require('../../../tokens/color/upsell/upsell.js');
require('../../../tokens/color/upsell/sm.js');
require('../../../tokens/color/upsell/xl.js');
require('../../../tokens/color/upsell/new.js');
require('../../../tokens/edge/edge.js');
require('../../../tokens/space/space.js');
require('../../../tokens/typography/index.js');
require('../../../tokens/typography/size/size.js');
require('../../../typography/Text/EditableText.js');
require('../../../utils/DOM/geometry.js');
require('../../../icons/ui/Checkmark.js');
require('../Shared.js');
require('../../../icons/ui/ChevronDown.js');
require('./Select.state.js');
require('../../PopOver/PopOver.js');
require('../../PopOver/PopOver.style.js');
require('../../PopOver/PopOver.error.js');
require('../../../utils/hooks/usePortal_DEPRECATED/usePortal_DEPRECATED.js');
require('react-dom');
require('../../../utils/hooks/usePortal_DEPRECATED/usePortal_DEPRECATED.style.js');
require('../../../utils/hooks/usePortal_DEPRECATED/useMountAnimations.js');
require('../../../utils/hooks/useIsomorphicEffect.js');
require('../../../utils/DOM/getComputedStyles.js');
require('../../../utils/DOM/animate.js');
require('../../../utils/events/onEvent.js');
require('../../../utils/hooks/usePortal_DEPRECATED/coordinates.js');
require('../../../utils/hooks/usePortal_DEPRECATED/Anchor.js');
require('../../../utils/hooks/useOutsideClick.js');
require('../../../utils/DOM/SSR.js');
require('../../../utils/DOM/createPortalOutlet.js');
require('../../../utils/DOM/createElement.js');
require('../../../typography/Paragraph/Paragraph.js');
require('../../../typography/Paragraph/Paragraph.style.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var Select = utils_HOCs_withIris.withIris(SelectComponent);
Select.Option = components_inputs_Select_Select_minors.Option;
function SelectComponent(_a) {
var forwardRef = _a.forwardRef, faux = _a.faux, props = tslib_es6.__rest(_a, ["forwardRef", "faux"]);
return faux ? (React__default["default"].createElement(components_inputs_Select_SelectFaux.SelectFaux, tslib_es6.__assign({ forwardRef: forwardRef }, props))) : (React__default["default"].createElement(SelectNative, tslib_es6.__assign({ forwardRef: forwardRef }, props)));
}
function SelectNative(_a) {
var children = _a.children, className = _a.className, defaultValue = _a.defaultValue, disabled = _a.disabled, _b = _a.format, format = _b === void 0 ? 'basic' : _b, forwardRef = _a.forwardRef, id = _a.id, label = _a.label, messages = _a.messages, pill = _a.pill, _c = _a.size, size = _c === void 0 ? 'md' : _c, status = _a.status, style = _a.style, props = tslib_es6.__rest(_a, ["children", "className", "defaultValue", "disabled", "format", "forwardRef", "id", "label", "messages", "pill", "size", "status", "style"]);
var _d = tslib_es6.__read(utils_hooks_useLayoutStyles.useLayoutStyles(style), 2), layoutStyles = _d[0], displayStyles = _d[1];
return (React__default["default"].createElement(components_inputs_Wrapper_Wrapper.Wrapper, { className: className, id: id, label: label, messages: messages, status: status, style: tslib_es6.__assign({}, layoutStyles) },
React__default["default"].createElement("div", { style: { position: 'relative' } },
React__default["default"].createElement(components_inputs_Select_Select_style.SelectStyled, tslib_es6.__assign({ defaultValue: defaultValue, disabled: disabled, format: status || format, inputSize: size, pill: pill, ref: forwardRef, style: tslib_es6.__assign({}, displayStyles) }, props), children),
React__default["default"].createElement(utils_css.Focus, { parent: components_inputs_Select_Select_style.SelectStyled, radius: pill ? 50 : 6, distance: 1 }),
React__default["default"].createElement(components_inputs_Select_Select_style.ChevronDown, { size: size }))));
}
exports.Select = Select;