UNPKG

@vimeo/iris

Version:
103 lines (96 loc) 6.32 kB
'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;