UNPKG

8.21 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7require('./slicedToArray-0711941d.js');
8require('./unsupportedIterableToArray-68db1d3b.js');
9var React = require('react');
10var React__default = _interopDefault(React);
11require('./_commonjsHelpers-72d386ba.js');
12var index = require('./index-b0606964.js');
13var defineProperty = require('./defineProperty-0921a47c.js');
14require('./toConsumableArray-d8a4a2c3.js');
15var _styled = require('styled-components');
16var _styled__default = _interopDefault(_styled);
17require('./getPrototypeOf-2a661a20.js');
18require('./color.js');
19require('./components.js');
20require('./contains-component.js');
21require('./css.js');
22require('./dayjs.min-e07657bf.js');
23require('./date.js');
24require('./miscellaneous.js');
25var environment = require('./environment.js');
26require('./font.js');
27require('./math-f4029164.js');
28require('./characters.js');
29require('./format.js');
30require('./keycodes.js');
31require('./url.js');
32require('./web3.js');
33var constants = require('./constants.js');
34require('./breakpoints.js');
35require('./springs.js');
36var textStyles = require('./text-styles.js');
37require('./theme-dark.js');
38require('./theme-light.js');
39var Theme = require('./Theme.js');
40var _extends = require('./extends-40571110.js');
41var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
42
43function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
44
45function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty._defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
46
47var _StyledInput = _styled__default("input").withConfig({
48 displayName: "TextInput___StyledInput",
49 componentId: "gngg3n-0"
50})(["width:", ";height:", "px;padding:0 ", "px;background:", ";border:1px solid ", ";color:", ";border-radius:", "px;appearance:none;", ";", " &:focus{outline:none;border-color:", ";}&:read-only{color:", ";border-color:", ";}&::placeholder{color:", ";opacity:1;}&:invalid{box-shadow:none;}"], function (_ref) {
51 var wide = _ref.wide;
52 return wide ? '100%' : 'auto';
53}, function (p) {
54 return p._css;
55}, function (p) {
56 return p._css2;
57}, function (p) {
58 return p._css3;
59}, function (p) {
60 return p._css4;
61}, function (p) {
62 return p._css5;
63}, constants.RADIUS, function (p) {
64 return p._css6;
65}, function (p) {
66 return p._css7;
67}, function (p) {
68 return p._css8;
69}, function (p) {
70 return p._css9;
71}, function (p) {
72 return p._css10;
73}, function (p) {
74 return p._css11;
75});
76
77var TextInput = React__default.forwardRef(function (_ref2, ref) {
78 var autofocus = _ref2.autofocus,
79 multiline = _ref2.multiline,
80 type = _ref2.type,
81 props = objectWithoutProperties._objectWithoutProperties(_ref2, ["autofocus", "multiline", "type"]);
82
83 var theme = Theme.useTheme();
84 var handleRef = React.useCallback(function (element) {
85 if (ref) {
86 ref.current = element;
87 }
88
89 if (autofocus && element) {
90 element.focus();
91 }
92 }, [autofocus, ref]);
93 return /*#__PURE__*/React__default.createElement(_StyledInput, _extends._extends({
94 ref: handleRef,
95 as: multiline ? 'textarea' : 'input',
96 type: multiline ? undefined : type
97 }, props, {
98 _css: 5 * constants.GU,
99 _css2: 1.5 * constants.GU,
100 _css3: theme.surface,
101 _css4: theme.border,
102 _css5: theme.surfaceContent,
103 _css6: textStyles.textStyle('body3'),
104 _css7: multiline ? "\n height: auto;\n padding: ".concat(1 * constants.GU, "px ").concat(1.5 * constants.GU, "px;\n resize: vertical;\n ") : '',
105 _css8: theme.selected,
106 _css9: theme.hint,
107 _css10: theme.border,
108 _css11: theme.hint
109 }));
110});
111
112var _StyledTextInput = _styled__default(TextInput).withConfig({
113 displayName: "TextInput___StyledTextInput",
114 componentId: "gngg3n-1"
115})(["", ":", "px;"], function (p) {
116 return p._css13;
117}, function (p) {
118 return p._css14;
119});
120
121TextInput.propTypes = {
122 autofocus: index.PropTypes.bool,
123 multiline: index.PropTypes.bool,
124 required: index.PropTypes.bool,
125 type: index.PropTypes.string
126};
127TextInput.defaultProps = {
128 autofocus: false,
129 multiline: false,
130 required: false,
131 type: 'text'
132}; // Text input wrapped to allow adornments
133
134var _StyledDiv = _styled__default("div").withConfig({
135 displayName: "TextInput___StyledDiv",
136 componentId: "gngg3n-2"
137})(["display:inline-flex;position:relative;width:", ";"], function (p) {
138 return p._css12;
139});
140
141var _StyledDiv2 = _styled__default("div").withConfig({
142 displayName: "TextInput___StyledDiv2",
143 componentId: "gngg3n-3"
144})(["position:absolute;top:0;bottom:0;height:100%;", ":", "px;display:flex;align-items:center;justify-content:center;color:", ";"], function (p) {
145 return p._css15;
146}, function (p) {
147 return p._css16;
148}, function (p) {
149 return p._css17;
150});
151
152var WrapperTextInput = React__default.forwardRef(function (_ref3, ref) {
153 var adornment = _ref3.adornment,
154 adornmentPosition = _ref3.adornmentPosition,
155 _ref3$adornmentSettin = _ref3.adornmentSettings,
156 _ref3$adornmentSettin2 = _ref3$adornmentSettin.width,
157 adornmentWidth = _ref3$adornmentSettin2 === void 0 ? 36 : _ref3$adornmentSettin2,
158 _ref3$adornmentSettin3 = _ref3$adornmentSettin.padding,
159 adornmentPadding = _ref3$adornmentSettin3 === void 0 ? 4 : _ref3$adornmentSettin3,
160 props = objectWithoutProperties._objectWithoutProperties(_ref3, ["adornment", "adornmentPosition", "adornmentSettings"]);
161
162 var theme = Theme.useTheme();
163
164 if (!adornment) {
165 return /*#__PURE__*/React__default.createElement(TextInput, _extends._extends({
166 ref: ref
167 }, props));
168 }
169
170 return /*#__PURE__*/React__default.createElement(_StyledDiv, {
171 _css12: props.wide ? '100%' : 'max-content'
172 }, /*#__PURE__*/React__default.createElement(_StyledTextInput, _extends._extends({
173 ref: ref
174 }, props, {
175 _css13: adornmentPosition === 'end' ? 'padding-right' : 'padding-left',
176 _css14: adornmentWidth - adornmentPadding * 2
177 })), /*#__PURE__*/React__default.createElement(_StyledDiv2, {
178 _css15: adornmentPosition === 'end' ? 'right' : 'left',
179 _css16: adornmentPadding,
180 _css17: theme.surfaceContentSecondary
181 }, adornment));
182});
183WrapperTextInput.propTypes = _objectSpread({}, TextInput.propTypes, {
184 adornment: index.PropTypes.node,
185 adornmentPosition: index.PropTypes.oneOf(['start', 'end']),
186 adornmentSettings: index.PropTypes.shape({
187 width: index.PropTypes.number,
188 padding: index.PropTypes.number
189 })
190});
191WrapperTextInput.defaultProps = _objectSpread({}, TextInput.defaultProps, {
192 adornment: null,
193 adornmentPosition: 'start',
194 adornmentSettings: {}
195}); // <input type=number> (only for compat)
196
197function TextInputNumber(props) {
198 environment.warnOnce('TextInputNumber', 'TextInputNumber is deprecated. Please use TextInput instead.');
199 return /*#__PURE__*/React__default.createElement(TextInput, _extends._extends({
200 type: "number"
201 }, props));
202} // Multiline input (textarea element)
203
204
205function TextInputMultiline(props) {
206 return /*#__PURE__*/React__default.createElement(TextInput, _extends._extends({
207 multiline: true
208 }, props));
209}
210
211TextInputMultiline.propTypes = {
212 required: index.PropTypes.bool
213};
214TextInputMultiline.defaultProps = {
215 required: false
216};
217WrapperTextInput.Number = TextInputNumber;
218WrapperTextInput.Multiline = TextInputMultiline;
219
220exports.default = WrapperTextInput;
221//# sourceMappingURL=TextInput.js.map