UNPKG

@vimeo/iris

Version:
95 lines (92 loc) 5.68 kB
import { b as __rest, c as __assign, _ as __read } from '../../../tslib.es6-7f0e734f.js'; import React__default from 'react'; import { Option } from './Select.minors.esm.js'; import { SelectStyled, ChevronDown } from './Select.style.esm.js'; import { SelectFaux } from './SelectFaux.esm.js'; import { Wrapper } from '../Wrapper/Wrapper.esm.js'; import { withIris } from '../../../utils/HOCs/withIris.esm.js'; import { useLayoutStyles } from '../../../utils/hooks/useLayoutStyles.esm.js'; import { Focus } from '../../../utils/css.esm.js'; import '../../PopOver/PopOver.minors.esm.js'; import 'styled-components'; import 'polished'; import '../../../typography/Header/Header.esm.js'; import '../../../typography/Header/Header.style.esm.js'; import '../../../typography/typography.esm.js'; import '../../../typography/Text/Text.esm.js'; import '../../../typography/Text/Text.style.esm.js'; import '../../../tokens/core.esm.js'; import '../../../tokens/color/index.esm.js'; import '../../../tokens/color/background/background.esm.js'; import '../../../tokens/util/readToken.esm.js'; import '../../../color/colors.esm.js'; import '../../../tokens/util/clamp.esm.js'; import '../../../tokens/color/format/format.esm.js'; import '../../../tokens/color/format/primary.esm.js'; import '../../../tokens/color/format/secondary.esm.js'; import '../../../tokens/color/format/tertiary.esm.js'; import '../../../tokens/color/rainbow/rainbow.esm.js'; import '../../../tokens/color/rainbow/conic/index.esm.js'; import '../../../tokens/color/rainbow/conic/sm.esm.js'; import '../../../tokens/color/rainbow/conic/xl.esm.js'; import '../../../tokens/color/rainbow/linear/index.esm.js'; import '../../../tokens/color/rainbow/linear/sm.esm.js'; import '../../../tokens/color/rainbow/linear/xl.esm.js'; import '../../../tokens/color/livestream/livestream.esm.js'; import '../../../tokens/color/status/status.esm.js'; import '../../../tokens/color/status/caution.esm.js'; import '../../../tokens/color/status/negative.esm.js'; import '../../../tokens/color/status/positive.esm.js'; import '../../../tokens/color/stroke/stroke.esm.js'; import '../../../tokens/color/surface/surface.esm.js'; import '../../../tokens/color/text/text.esm.js'; import '../../../tokens/util/round.esm.js'; import '../../../tokens/color/upsell/upsell.esm.js'; import '../../../tokens/color/upsell/sm.esm.js'; import '../../../tokens/color/upsell/xl.esm.js'; import '../../../tokens/color/upsell/new.esm.js'; import '../../../tokens/edge/edge.esm.js'; import '../../../tokens/space/space.esm.js'; import '../../../tokens/typography/index.esm.js'; import '../../../tokens/typography/size/size.esm.js'; import '../../../typography/Text/EditableText.esm.js'; import '../../../utils/DOM/geometry.esm.js'; import '../../../icons/ui/Checkmark.esm.js'; import '../Shared.esm.js'; import '../../../icons/ui/ChevronDown.esm.js'; import './Select.state.esm.js'; import '../../PopOver/PopOver.esm.js'; import '../../PopOver/PopOver.style.esm.js'; import '../../PopOver/PopOver.error.esm.js'; import '../../../utils/hooks/usePortal_DEPRECATED/usePortal_DEPRECATED.esm.js'; import 'react-dom'; import '../../../utils/hooks/usePortal_DEPRECATED/usePortal_DEPRECATED.style.esm.js'; import '../../../utils/hooks/usePortal_DEPRECATED/useMountAnimations.esm.js'; import '../../../utils/hooks/useIsomorphicEffect.esm.js'; import '../../../utils/DOM/getComputedStyles.esm.js'; import '../../../utils/DOM/animate.esm.js'; import '../../../utils/events/onEvent.esm.js'; import '../../../utils/hooks/usePortal_DEPRECATED/coordinates.esm.js'; import '../../../utils/hooks/usePortal_DEPRECATED/Anchor.esm.js'; import '../../../utils/hooks/useOutsideClick.esm.js'; import '../../../utils/DOM/SSR.esm.js'; import '../../../utils/DOM/createPortalOutlet.esm.js'; import '../../../utils/DOM/createElement.esm.js'; import '../../../typography/Paragraph/Paragraph.esm.js'; import '../../../typography/Paragraph/Paragraph.style.esm.js'; var Select = withIris(SelectComponent); Select.Option = Option; function SelectComponent(_a) { var forwardRef = _a.forwardRef, faux = _a.faux, props = __rest(_a, ["forwardRef", "faux"]); return faux ? (React__default.createElement(SelectFaux, __assign({ forwardRef: forwardRef }, props))) : (React__default.createElement(SelectNative, __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 = __rest(_a, ["children", "className", "defaultValue", "disabled", "format", "forwardRef", "id", "label", "messages", "pill", "size", "status", "style"]); var _d = __read(useLayoutStyles(style), 2), layoutStyles = _d[0], displayStyles = _d[1]; return (React__default.createElement(Wrapper, { className: className, id: id, label: label, messages: messages, status: status, style: __assign({}, layoutStyles) }, React__default.createElement("div", { style: { position: 'relative' } }, React__default.createElement(SelectStyled, __assign({ defaultValue: defaultValue, disabled: disabled, format: status || format, inputSize: size, pill: pill, ref: forwardRef, style: __assign({}, displayStyles) }, props), children), React__default.createElement(Focus, { parent: SelectStyled, radius: pill ? 50 : 6, distance: 1 }), React__default.createElement(ChevronDown, { size: size })))); } export { Select };