@teamturing/react-kit 2.19.27 → 2.19.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  var React = require('react');
4
4
  var styled = require('styled-components');
5
5
  var ReactDOM = require('react-dom');
6
+ var ReactTextareaAutosize = require('react-textarea-autosize');
6
7
 
7
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
9
 
@@ -27,6 +28,7 @@ function _interopNamespace(e) {
27
28
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
29
  var styled__default = /*#__PURE__*/_interopDefault(styled);
29
30
  var ReactDOM__namespace = /*#__PURE__*/_interopNamespace(ReactDOM);
31
+ var ReactTextareaAutosize__default = /*#__PURE__*/_interopDefault(ReactTextareaAutosize);
30
32
 
31
33
  function _extends$1() {
32
34
  _extends$1 = Object.assign || function (target) {
@@ -249,7 +251,7 @@ object-assign
249
251
  */
250
252
  /* eslint-disable no-unused-vars */
251
253
  var getOwnPropertySymbols = Object.getOwnPropertySymbols;
252
- var hasOwnProperty = Object.prototype.hasOwnProperty;
254
+ var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
253
255
  var propIsEnumerable = Object.prototype.propertyIsEnumerable;
254
256
  function toObject(val) {
255
257
  if (val === null || val === undefined) {
@@ -305,7 +307,7 @@ var objectAssign = shouldUseNative() ? Object.assign : function (target, source)
305
307
  for (var s = 1; s < arguments.length; s++) {
306
308
  from = Object(arguments[s]);
307
309
  for (var key in from) {
308
- if (hasOwnProperty.call(from, key)) {
310
+ if (hasOwnProperty$1.call(from, key)) {
309
311
  to[key] = from[key];
310
312
  }
311
313
  }
@@ -352,7 +354,7 @@ var defaults$4 = {
352
354
  var createMediaQuery = function createMediaQuery(n) {
353
355
  return "@media screen and (min-width: " + n + ")";
354
356
  };
355
- var getValue = function getValue(n, scale) {
357
+ var getValue$1 = function getValue(n, scale) {
356
358
  return get(scale, n, n);
357
359
  };
358
360
  var get = function get(obj, key, def, p, undef) {
@@ -443,7 +445,7 @@ var createStyleFunction = function createStyleFunction(_ref) {
443
445
  property = _ref.property,
444
446
  scale = _ref.scale,
445
447
  _ref$transform = _ref.transform,
446
- transform = _ref$transform === void 0 ? getValue : _ref$transform,
448
+ transform = _ref$transform === void 0 ? getValue$1 : _ref$transform,
447
449
  defaultScale = _ref.defaultScale;
448
450
  properties = properties || [property];
449
451
  var sx = function sx(value, scale, _props) {
@@ -4431,6 +4433,15 @@ var icons = /*#__PURE__*/Object.freeze({
4431
4433
  YoutubeIcon: SvgYoutube
4432
4434
  });
4433
4435
 
4436
+ /**
4437
+ * 숫자를 콤마(,)로 구분해서 반환합니다.
4438
+ */
4439
+ function commaizeNumber(value) {
4440
+ const parts = value.toString().split('.');
4441
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
4442
+ return parts.join('.');
4443
+ }
4444
+
4434
4445
  /**
4435
4446
  * CSS에서 사용할 수 있는 픽셀값으로 강제합니다.
4436
4447
  */
@@ -4438,9 +4449,9 @@ const forcePixelValue = value => {
4438
4449
  return typeof value === 'string' ? value : `${value}px`;
4439
4450
  };
4440
4451
 
4441
- const isArray = value => Array.isArray(value);
4452
+ const isArray$1 = value => Array.isArray(value);
4442
4453
 
4443
- const isFunction = value => typeof value === 'function';
4454
+ const isFunction$1 = value => typeof value === 'function';
4444
4455
 
4445
4456
  const isNullable = value => value === null || value === undefined;
4446
4457
 
@@ -6830,12 +6841,12 @@ const BaseGrid = styled__default.default(View)({
6830
6841
  }
6831
6842
  }));
6832
6843
  const mapValueToResponsiveValueProps = (value, propsAccessor) => {
6833
- if (isNullable(value) || typeof value === 'object' && !isArray(value)) return null;
6834
- if (!isArray(value)) return propsAccessor(value);
6844
+ if (isNullable(value) || typeof value === 'object' && !isArray$1(value)) return null;
6845
+ if (!isArray$1(value)) return propsAccessor(value);
6835
6846
  return value.reduce((acc, cur) => {
6836
6847
  const curProps = propsAccessor(cur);
6837
6848
  const curPropKeys = Object.keys(curProps);
6838
- return Object.fromEntries(curPropKeys.map(curPropKey => [curPropKey, acc[curPropKey] === undefined || acc[curPropKey] === null ? [curProps[curPropKey]] : isArray(acc[curPropKey]) ? [...acc[curPropKey], curProps[curPropKey]] : [acc[curPropKey], curProps[curPropKey]]]));
6849
+ return Object.fromEntries(curPropKeys.map(curPropKey => [curPropKey, acc[curPropKey] === undefined || acc[curPropKey] === null ? [curProps[curPropKey]] : isArray$1(acc[curPropKey]) ? [...acc[curPropKey], curProps[curPropKey]] : [acc[curPropKey], curProps[curPropKey]]]));
6839
6850
  }, {});
6840
6851
  };
6841
6852
  const Unit = ({
@@ -7816,12 +7827,12 @@ const sanitize = (v) => Math.round(v * 100000) / 100000;
7816
7827
  const floatRegex = /(-)?([\d]*\.?[\d])+/g;
7817
7828
  const colorRegex = /(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi;
7818
7829
  const singleColorRegex = /^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;
7819
- function isString(v) {
7830
+ function isString$1(v) {
7820
7831
  return typeof v === "string";
7821
7832
  }
7822
7833
 
7823
7834
  const createUnitType = (unit) => ({
7824
- test: (v) => isString(v) && v.endsWith(unit) && v.split(" ").length === 1,
7835
+ test: (v) => isString$1(v) && v.endsWith(unit) && v.split(" ").length === 1,
7825
7836
  parse: parseFloat,
7826
7837
  transform: (v) => `${v}${unit}`,
7827
7838
  });
@@ -9368,11 +9379,11 @@ const easingDefinitionToFunction = (definition) => {
9368
9379
  * but false if a number or multiple colors
9369
9380
  */
9370
9381
  const isColorString = (type, testProp) => (v) => {
9371
- return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||
9382
+ return Boolean((isString$1(v) && singleColorRegex.test(v) && v.startsWith(type)) ||
9372
9383
  (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));
9373
9384
  };
9374
9385
  const splitColor = (aName, bName, cName) => (v) => {
9375
- if (!isString(v))
9386
+ if (!isString$1(v))
9376
9387
  return v;
9377
9388
  const [a, b, c, alpha] = v.match(floatRegex);
9378
9389
  return {
@@ -9468,7 +9479,7 @@ const color = {
9468
9479
  }
9469
9480
  },
9470
9481
  transform: (v) => {
9471
- return isString(v)
9482
+ return isString$1(v)
9472
9483
  ? v
9473
9484
  : v.hasOwnProperty("red")
9474
9485
  ? rgba.transform(v)
@@ -9575,7 +9586,7 @@ const mixColor = (from, to) => {
9575
9586
  function test(v) {
9576
9587
  var _a, _b;
9577
9588
  return (isNaN(v) &&
9578
- isString(v) &&
9589
+ isString$1(v) &&
9579
9590
  (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +
9580
9591
  (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >
9581
9592
  0);
@@ -21016,7 +21027,7 @@ const OverlayPopper = ({
21016
21027
  ref: refs.setReference
21017
21028
  }
21018
21029
  };
21019
- const children = isFunction(propChildren) ? propChildren({
21030
+ const children = isFunction$1(propChildren) ? propChildren({
21020
21031
  ...defaultPopperProps
21021
21032
  }, {
21022
21033
  isOpen,
@@ -21139,7 +21150,7 @@ const TextInput = ({
21139
21150
  children: typeof LeadingVisual !== 'string' && reactIsExports.isValidElementType(LeadingVisual) ? /*#__PURE__*/jsxRuntimeExports.jsx(LeadingVisual, {}) : LeadingVisual
21140
21151
  }), /*#__PURE__*/jsxRuntimeExports.jsx(BaseInput$1, {
21141
21152
  ref: e => {
21142
- isFunction(ref) ? ref(e) : null;
21153
+ isFunction$1(ref) ? ref(e) : null;
21143
21154
  inputRef.current = e;
21144
21155
  },
21145
21156
  type: type,
@@ -21523,7 +21534,7 @@ const SearchSelectInput = ({
21523
21534
  size: 16
21524
21535
  }), /*#__PURE__*/jsxRuntimeExports.jsx(BaseInput, {
21525
21536
  ref: e => {
21526
- isFunction(ref) ? ref(e) : null;
21537
+ isFunction$1(ref) ? ref(e) : null;
21527
21538
  valueInputRef.current = e;
21528
21539
  },
21529
21540
  type: 'hidden',
@@ -21710,7 +21721,7 @@ const Select = ({
21710
21721
  children: typeof LeadingVisual !== 'string' && reactIsExports.isValidElementType(LeadingVisual) ? /*#__PURE__*/jsxRuntimeExports.jsx(LeadingVisual, {}) : LeadingVisual
21711
21722
  }), /*#__PURE__*/jsxRuntimeExports.jsxs(BaseSelect, {
21712
21723
  ref: e => {
21713
- isFunction(ref) ? ref(e) : null;
21724
+ isFunction$1(ref) ? ref(e) : null;
21714
21725
  selectRef.current = e;
21715
21726
  },
21716
21727
  placeholder: placeholder,
@@ -21894,146 +21905,1185 @@ var Select$1 = Object.assign( /*#__PURE__*/React.forwardRef(Select), {
21894
21905
  Option: SelectOption
21895
21906
  });
21896
21907
 
21897
- const FormControlCaption = ({
21898
- children
21899
- }) => {
21900
- const {
21901
- id
21902
- } = React.useContext(FormControlContext);
21903
- return /*#__PURE__*/jsxRuntimeExports.jsx(Text, {
21904
- as: 'span',
21905
- id: id,
21906
- typography: 'xxs',
21907
- color: 'text/neutral/subtlest',
21908
- children: children
21909
- });
21910
- };
21908
+ /**
21909
+ * lodash (Custom Build) <https://lodash.com/>
21910
+ * Build: `lodash modularize exports="npm" -o ./`
21911
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
21912
+ * Released under MIT license <https://lodash.com/license>
21913
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
21914
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
21915
+ */
21911
21916
 
21912
- const FormControlErrorMessage = ({
21913
- children
21914
- }) => {
21915
- const {
21916
- id
21917
- } = React.useContext(FormControlContext);
21918
- return /*#__PURE__*/jsxRuntimeExports.jsx(StyledText$1, {
21919
- id: id,
21920
- typography: 'xxs',
21921
- color: 'text/danger',
21922
- children: children
21923
- });
21924
- };
21925
- const errorMessageKeyframe = styled.keyframes`
21926
- 0% {
21927
- opacity: 0;
21928
- transform: translateY(-100%);
21917
+ /** Used as references for various `Number` constants. */
21918
+ var MAX_SAFE_INTEGER = 9007199254740991;
21919
+
21920
+ /** `Object#toString` result references. */
21921
+ var argsTag = '[object Arguments]',
21922
+ funcTag = '[object Function]',
21923
+ genTag = '[object GeneratorFunction]',
21924
+ mapTag = '[object Map]',
21925
+ objectTag = '[object Object]',
21926
+ promiseTag = '[object Promise]',
21927
+ setTag = '[object Set]',
21928
+ stringTag = '[object String]',
21929
+ weakMapTag = '[object WeakMap]';
21930
+ var dataViewTag = '[object DataView]';
21931
+
21932
+ /**
21933
+ * Used to match `RegExp`
21934
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
21935
+ */
21936
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
21937
+
21938
+ /** Used to detect host constructors (Safari). */
21939
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
21940
+
21941
+ /** Used to detect unsigned integer values. */
21942
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
21943
+
21944
+ /** Used to compose unicode character classes. */
21945
+ var rsAstralRange = '\\ud800-\\udfff',
21946
+ rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
21947
+ rsComboSymbolsRange = '\\u20d0-\\u20f0',
21948
+ rsVarRange = '\\ufe0e\\ufe0f';
21949
+
21950
+ /** Used to compose unicode capture groups. */
21951
+ var rsAstral = '[' + rsAstralRange + ']',
21952
+ rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
21953
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
21954
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
21955
+ rsNonAstral = '[^' + rsAstralRange + ']',
21956
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
21957
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
21958
+ rsZWJ = '\\u200d';
21959
+
21960
+ /** Used to compose unicode regexes. */
21961
+ var reOptMod = rsModifier + '?',
21962
+ rsOptVar = '[' + rsVarRange + ']?',
21963
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
21964
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
21965
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
21966
+
21967
+ /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
21968
+ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
21969
+
21970
+ /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
21971
+ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
21972
+
21973
+ /** Detect free variable `global` from Node.js. */
21974
+ var freeGlobal$2 = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
21975
+
21976
+ /** Detect free variable `self`. */
21977
+ var freeSelf$2 = typeof self == 'object' && self && self.Object === Object && self;
21978
+
21979
+ /** Used as a reference to the global object. */
21980
+ var root$2 = freeGlobal$2 || freeSelf$2 || Function('return this')();
21981
+
21982
+ /**
21983
+ * A specialized version of `_.map` for arrays without support for iteratee
21984
+ * shorthands.
21985
+ *
21986
+ * @private
21987
+ * @param {Array} [array] The array to iterate over.
21988
+ * @param {Function} iteratee The function invoked per iteration.
21989
+ * @returns {Array} Returns the new mapped array.
21990
+ */
21991
+ function arrayMap(array, iteratee) {
21992
+ var index = -1,
21993
+ length = array ? array.length : 0,
21994
+ result = Array(length);
21995
+ while (++index < length) {
21996
+ result[index] = iteratee(array[index], index, array);
21929
21997
  }
21930
- 100% {
21931
- opacity: 1;
21932
- transform: translateY(0);
21998
+ return result;
21999
+ }
22000
+
22001
+ /**
22002
+ * Converts an ASCII `string` to an array.
22003
+ *
22004
+ * @private
22005
+ * @param {string} string The string to convert.
22006
+ * @returns {Array} Returns the converted array.
22007
+ */
22008
+ function asciiToArray(string) {
22009
+ return string.split('');
22010
+ }
22011
+
22012
+ /**
22013
+ * The base implementation of `_.times` without support for iteratee shorthands
22014
+ * or max array length checks.
22015
+ *
22016
+ * @private
22017
+ * @param {number} n The number of times to invoke `iteratee`.
22018
+ * @param {Function} iteratee The function invoked per iteration.
22019
+ * @returns {Array} Returns the array of results.
22020
+ */
22021
+ function baseTimes(n, iteratee) {
22022
+ var index = -1,
22023
+ result = Array(n);
22024
+ while (++index < n) {
22025
+ result[index] = iteratee(index);
21933
22026
  }
21934
- `;
21935
- const StyledText$1 = styled__default.default(Text)`
21936
- animation: 170ms ${errorMessageKeyframe} cubic-bezier(0.44, 0.74, 0.36, 1);
21937
- `;
22027
+ return result;
22028
+ }
21938
22029
 
21939
- const FormControlLabel = ({
21940
- children,
21941
- visuallyHidden,
21942
- ...props
21943
- }) => {
21944
- const {
21945
- id,
21946
- disabled,
21947
- required
21948
- } = React.useContext(FormControlContext);
21949
- return /*#__PURE__*/jsxRuntimeExports.jsx(VisuallyHidden, {
21950
- as: 'label',
21951
- htmlFor: id,
21952
- isVisible: !visuallyHidden,
21953
- children: /*#__PURE__*/jsxRuntimeExports.jsxs(LabelWrapper, {
21954
- ...props,
21955
- disabled: disabled,
21956
- children: [children, required ? /*#__PURE__*/jsxRuntimeExports.jsx(View, {
21957
- as: 'span',
21958
- "aria-hidden": "true",
21959
- children: ' *'
21960
- }) : null]
21961
- })
22030
+ /**
22031
+ * The base implementation of `_.values` and `_.valuesIn` which creates an
22032
+ * array of `object` property values corresponding to the property names
22033
+ * of `props`.
22034
+ *
22035
+ * @private
22036
+ * @param {Object} object The object to query.
22037
+ * @param {Array} props The property names to get values for.
22038
+ * @returns {Object} Returns the array of property values.
22039
+ */
22040
+ function baseValues(object, props) {
22041
+ return arrayMap(props, function (key) {
22042
+ return object[key];
21962
22043
  });
21963
- };
21964
- const VisuallyHidden = styled__default.default.span`
21965
- ${({
21966
- isVisible = false
21967
- }) => {
21968
- if (isVisible) {
21969
- return sx;
21970
- }
21971
- return `
21972
- position: absolute;
21973
- width: 1px;
21974
- height: 1px;
21975
- padding: 0;
21976
- margin: -1px;
21977
- overflow: hidden;
21978
- clip: rect(0, 0, 0, 0);
21979
- white-space: nowrap;
21980
- border-width: 0;
21981
- `;
21982
- }}
21983
- `;
21984
- const LabelWrapper = styled__default.default(View)`
21985
- display: block;
21986
- align-self: flex-start;
22044
+ }
21987
22045
 
21988
- font-size: ${({
21989
- theme
21990
- }) => forcePixelValue(theme.fontSizes.xs)};
21991
- font-weight: ${({
21992
- theme
21993
- }) => theme.fontWeights.medium};
21994
- line-height: ${({
21995
- theme
21996
- }) => theme.lineHeights[2]};
22046
+ /**
22047
+ * Gets the value at `key` of `object`.
22048
+ *
22049
+ * @private
22050
+ * @param {Object} [object] The object to query.
22051
+ * @param {string} key The key of the property to get.
22052
+ * @returns {*} Returns the property value.
22053
+ */
22054
+ function getValue(object, key) {
22055
+ return object == null ? undefined : object[key];
22056
+ }
21997
22057
 
21998
- color: ${({
21999
- theme
22000
- }) => theme.colors['text/neutral/subtle']};
22058
+ /**
22059
+ * Checks if `string` contains Unicode symbols.
22060
+ *
22061
+ * @private
22062
+ * @param {string} string The string to inspect.
22063
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
22064
+ */
22065
+ function hasUnicode(string) {
22066
+ return reHasUnicode.test(string);
22067
+ }
22001
22068
 
22002
- cursor: ${({
22003
- disabled
22004
- }) => disabled ? 'not-allowed' : 'pointer'};
22069
+ /**
22070
+ * Checks if `value` is a host object in IE < 9.
22071
+ *
22072
+ * @private
22073
+ * @param {*} value The value to check.
22074
+ * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
22075
+ */
22076
+ function isHostObject(value) {
22077
+ // Many host objects are `Object` objects that can coerce to strings
22078
+ // despite having improperly defined `toString` methods.
22079
+ var result = false;
22080
+ if (value != null && typeof value.toString != 'function') {
22081
+ try {
22082
+ result = !!(value + '');
22083
+ } catch (e) {}
22084
+ }
22085
+ return result;
22086
+ }
22005
22087
 
22006
- ${sx};
22007
- `;
22088
+ /**
22089
+ * Converts `iterator` to an array.
22090
+ *
22091
+ * @private
22092
+ * @param {Object} iterator The iterator to convert.
22093
+ * @returns {Array} Returns the converted array.
22094
+ */
22095
+ function iteratorToArray(iterator) {
22096
+ var data,
22097
+ result = [];
22098
+ while (!(data = iterator.next()).done) {
22099
+ result.push(data.value);
22100
+ }
22101
+ return result;
22102
+ }
22008
22103
 
22009
- const FormControlSuccessMessage = ({
22010
- children
22011
- }) => {
22012
- const {
22013
- id
22014
- } = React.useContext(FormControlContext);
22015
- return /*#__PURE__*/jsxRuntimeExports.jsx(StyledText, {
22016
- id: id,
22017
- typography: 'xxs',
22018
- color: 'text/success',
22019
- children: children
22104
+ /**
22105
+ * Converts `map` to its key-value pairs.
22106
+ *
22107
+ * @private
22108
+ * @param {Object} map The map to convert.
22109
+ * @returns {Array} Returns the key-value pairs.
22110
+ */
22111
+ function mapToArray(map) {
22112
+ var index = -1,
22113
+ result = Array(map.size);
22114
+ map.forEach(function (value, key) {
22115
+ result[++index] = [key, value];
22020
22116
  });
22021
- };
22022
- const successMessageKeyframe = styled.keyframes`
22023
- 0% {
22024
- opacity: 0;
22025
- transform: translateY(-100%);
22117
+ return result;
22118
+ }
22119
+
22120
+ /**
22121
+ * Creates a unary function that invokes `func` with its argument transformed.
22122
+ *
22123
+ * @private
22124
+ * @param {Function} func The function to wrap.
22125
+ * @param {Function} transform The argument transform.
22126
+ * @returns {Function} Returns the new function.
22127
+ */
22128
+ function overArg(func, transform) {
22129
+ return function (arg) {
22130
+ return func(transform(arg));
22131
+ };
22132
+ }
22133
+
22134
+ /**
22135
+ * Converts `set` to an array of its values.
22136
+ *
22137
+ * @private
22138
+ * @param {Object} set The set to convert.
22139
+ * @returns {Array} Returns the values.
22140
+ */
22141
+ function setToArray(set) {
22142
+ var index = -1,
22143
+ result = Array(set.size);
22144
+ set.forEach(function (value) {
22145
+ result[++index] = value;
22146
+ });
22147
+ return result;
22148
+ }
22149
+
22150
+ /**
22151
+ * Converts `string` to an array.
22152
+ *
22153
+ * @private
22154
+ * @param {string} string The string to convert.
22155
+ * @returns {Array} Returns the converted array.
22156
+ */
22157
+ function stringToArray(string) {
22158
+ return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);
22159
+ }
22160
+
22161
+ /**
22162
+ * Converts a Unicode `string` to an array.
22163
+ *
22164
+ * @private
22165
+ * @param {string} string The string to convert.
22166
+ * @returns {Array} Returns the converted array.
22167
+ */
22168
+ function unicodeToArray(string) {
22169
+ return string.match(reUnicode) || [];
22170
+ }
22171
+
22172
+ /** Used for built-in method references. */
22173
+ var funcProto = Function.prototype,
22174
+ objectProto$2 = Object.prototype;
22175
+
22176
+ /** Used to detect overreaching core-js shims. */
22177
+ var coreJsData = root$2['__core-js_shared__'];
22178
+
22179
+ /** Used to detect methods masquerading as native. */
22180
+ var maskSrcKey = function () {
22181
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
22182
+ return uid ? 'Symbol(src)_1.' + uid : '';
22183
+ }();
22184
+
22185
+ /** Used to resolve the decompiled source of functions. */
22186
+ var funcToString = funcProto.toString;
22187
+
22188
+ /** Used to check objects for own properties. */
22189
+ var hasOwnProperty = objectProto$2.hasOwnProperty;
22190
+
22191
+ /**
22192
+ * Used to resolve the
22193
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
22194
+ * of values.
22195
+ */
22196
+ var objectToString$2 = objectProto$2.toString;
22197
+
22198
+ /** Used to detect if a method is native. */
22199
+ var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
22200
+
22201
+ /** Built-in value references. */
22202
+ var Symbol$1 = root$2.Symbol,
22203
+ iteratorSymbol = Symbol$1 ? Symbol$1.iterator : undefined,
22204
+ propertyIsEnumerable = objectProto$2.propertyIsEnumerable;
22205
+
22206
+ /* Built-in method references for those with the same name as other `lodash` methods. */
22207
+ var nativeKeys = overArg(Object.keys, Object);
22208
+
22209
+ /* Built-in method references that are verified to be native. */
22210
+ var DataView = getNative(root$2, 'DataView'),
22211
+ Map$1 = getNative(root$2, 'Map'),
22212
+ Promise$1 = getNative(root$2, 'Promise'),
22213
+ Set$1 = getNative(root$2, 'Set'),
22214
+ WeakMap$1 = getNative(root$2, 'WeakMap');
22215
+
22216
+ /** Used to detect maps, sets, and weakmaps. */
22217
+ var dataViewCtorString = toSource(DataView),
22218
+ mapCtorString = toSource(Map$1),
22219
+ promiseCtorString = toSource(Promise$1),
22220
+ setCtorString = toSource(Set$1),
22221
+ weakMapCtorString = toSource(WeakMap$1);
22222
+
22223
+ /**
22224
+ * Creates an array of the enumerable property names of the array-like `value`.
22225
+ *
22226
+ * @private
22227
+ * @param {*} value The value to query.
22228
+ * @param {boolean} inherited Specify returning inherited property names.
22229
+ * @returns {Array} Returns the array of property names.
22230
+ */
22231
+ function arrayLikeKeys(value, inherited) {
22232
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
22233
+ // Safari 9 makes `arguments.length` enumerable in strict mode.
22234
+ var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : [];
22235
+ var length = result.length,
22236
+ skipIndexes = !!length;
22237
+ for (var key in value) {
22238
+ if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
22239
+ result.push(key);
22240
+ }
22026
22241
  }
22027
- 100% {
22028
- opacity: 1;
22029
- transform: translateY(0);
22242
+ return result;
22243
+ }
22244
+
22245
+ /**
22246
+ * The base implementation of `getTag`.
22247
+ *
22248
+ * @private
22249
+ * @param {*} value The value to query.
22250
+ * @returns {string} Returns the `toStringTag`.
22251
+ */
22252
+ function baseGetTag(value) {
22253
+ return objectToString$2.call(value);
22254
+ }
22255
+
22256
+ /**
22257
+ * The base implementation of `_.isNative` without bad shim checks.
22258
+ *
22259
+ * @private
22260
+ * @param {*} value The value to check.
22261
+ * @returns {boolean} Returns `true` if `value` is a native function,
22262
+ * else `false`.
22263
+ */
22264
+ function baseIsNative(value) {
22265
+ if (!isObject$2(value) || isMasked(value)) {
22266
+ return false;
22030
22267
  }
22031
- `;
22032
- const StyledText = styled__default.default(Text)`
22033
- animation: 170ms ${successMessageKeyframe} cubic-bezier(0.44, 0.74, 0.36, 1);
22034
- `;
22268
+ var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor;
22269
+ return pattern.test(toSource(value));
22270
+ }
22035
22271
 
22036
- const FormControlContext = /*#__PURE__*/React.createContext({});
22272
+ /**
22273
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
22274
+ *
22275
+ * @private
22276
+ * @param {Object} object The object to query.
22277
+ * @returns {Array} Returns the array of property names.
22278
+ */
22279
+ function baseKeys(object) {
22280
+ if (!isPrototype(object)) {
22281
+ return nativeKeys(object);
22282
+ }
22283
+ var result = [];
22284
+ for (var key in Object(object)) {
22285
+ if (hasOwnProperty.call(object, key) && key != 'constructor') {
22286
+ result.push(key);
22287
+ }
22288
+ }
22289
+ return result;
22290
+ }
22291
+
22292
+ /**
22293
+ * Copies the values of `source` to `array`.
22294
+ *
22295
+ * @private
22296
+ * @param {Array} source The array to copy values from.
22297
+ * @param {Array} [array=[]] The array to copy values to.
22298
+ * @returns {Array} Returns `array`.
22299
+ */
22300
+ function copyArray(source, array) {
22301
+ var index = -1,
22302
+ length = source.length;
22303
+ array || (array = Array(length));
22304
+ while (++index < length) {
22305
+ array[index] = source[index];
22306
+ }
22307
+ return array;
22308
+ }
22309
+
22310
+ /**
22311
+ * Gets the native function at `key` of `object`.
22312
+ *
22313
+ * @private
22314
+ * @param {Object} object The object to query.
22315
+ * @param {string} key The key of the method to get.
22316
+ * @returns {*} Returns the function if it's native, else `undefined`.
22317
+ */
22318
+ function getNative(object, key) {
22319
+ var value = getValue(object, key);
22320
+ return baseIsNative(value) ? value : undefined;
22321
+ }
22322
+
22323
+ /**
22324
+ * Gets the `toStringTag` of `value`.
22325
+ *
22326
+ * @private
22327
+ * @param {*} value The value to query.
22328
+ * @returns {string} Returns the `toStringTag`.
22329
+ */
22330
+ var getTag = baseGetTag;
22331
+
22332
+ // Fallback for data views, maps, sets, and weak maps in IE 11,
22333
+ // for data views in Edge < 14, and promises in Node.js.
22334
+ if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map$1 && getTag(new Map$1()) != mapTag || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag) {
22335
+ getTag = function (value) {
22336
+ var result = objectToString$2.call(value),
22337
+ Ctor = result == objectTag ? value.constructor : undefined,
22338
+ ctorString = Ctor ? toSource(Ctor) : undefined;
22339
+ if (ctorString) {
22340
+ switch (ctorString) {
22341
+ case dataViewCtorString:
22342
+ return dataViewTag;
22343
+ case mapCtorString:
22344
+ return mapTag;
22345
+ case promiseCtorString:
22346
+ return promiseTag;
22347
+ case setCtorString:
22348
+ return setTag;
22349
+ case weakMapCtorString:
22350
+ return weakMapTag;
22351
+ }
22352
+ }
22353
+ return result;
22354
+ };
22355
+ }
22356
+
22357
+ /**
22358
+ * Checks if `value` is a valid array-like index.
22359
+ *
22360
+ * @private
22361
+ * @param {*} value The value to check.
22362
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
22363
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
22364
+ */
22365
+ function isIndex(value, length) {
22366
+ length = length == null ? MAX_SAFE_INTEGER : length;
22367
+ return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
22368
+ }
22369
+
22370
+ /**
22371
+ * Checks if `func` has its source masked.
22372
+ *
22373
+ * @private
22374
+ * @param {Function} func The function to check.
22375
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
22376
+ */
22377
+ function isMasked(func) {
22378
+ return !!maskSrcKey && maskSrcKey in func;
22379
+ }
22380
+
22381
+ /**
22382
+ * Checks if `value` is likely a prototype object.
22383
+ *
22384
+ * @private
22385
+ * @param {*} value The value to check.
22386
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
22387
+ */
22388
+ function isPrototype(value) {
22389
+ var Ctor = value && value.constructor,
22390
+ proto = typeof Ctor == 'function' && Ctor.prototype || objectProto$2;
22391
+ return value === proto;
22392
+ }
22393
+
22394
+ /**
22395
+ * Converts `func` to its source code.
22396
+ *
22397
+ * @private
22398
+ * @param {Function} func The function to process.
22399
+ * @returns {string} Returns the source code.
22400
+ */
22401
+ function toSource(func) {
22402
+ if (func != null) {
22403
+ try {
22404
+ return funcToString.call(func);
22405
+ } catch (e) {}
22406
+ try {
22407
+ return func + '';
22408
+ } catch (e) {}
22409
+ }
22410
+ return '';
22411
+ }
22412
+
22413
+ /**
22414
+ * Checks if `value` is likely an `arguments` object.
22415
+ *
22416
+ * @static
22417
+ * @memberOf _
22418
+ * @since 0.1.0
22419
+ * @category Lang
22420
+ * @param {*} value The value to check.
22421
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
22422
+ * else `false`.
22423
+ * @example
22424
+ *
22425
+ * _.isArguments(function() { return arguments; }());
22426
+ * // => true
22427
+ *
22428
+ * _.isArguments([1, 2, 3]);
22429
+ * // => false
22430
+ */
22431
+ function isArguments(value) {
22432
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
22433
+ return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString$2.call(value) == argsTag);
22434
+ }
22435
+
22436
+ /**
22437
+ * Checks if `value` is classified as an `Array` object.
22438
+ *
22439
+ * @static
22440
+ * @memberOf _
22441
+ * @since 0.1.0
22442
+ * @category Lang
22443
+ * @param {*} value The value to check.
22444
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
22445
+ * @example
22446
+ *
22447
+ * _.isArray([1, 2, 3]);
22448
+ * // => true
22449
+ *
22450
+ * _.isArray(document.body.children);
22451
+ * // => false
22452
+ *
22453
+ * _.isArray('abc');
22454
+ * // => false
22455
+ *
22456
+ * _.isArray(_.noop);
22457
+ * // => false
22458
+ */
22459
+ var isArray = Array.isArray;
22460
+
22461
+ /**
22462
+ * Checks if `value` is array-like. A value is considered array-like if it's
22463
+ * not a function and has a `value.length` that's an integer greater than or
22464
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
22465
+ *
22466
+ * @static
22467
+ * @memberOf _
22468
+ * @since 4.0.0
22469
+ * @category Lang
22470
+ * @param {*} value The value to check.
22471
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
22472
+ * @example
22473
+ *
22474
+ * _.isArrayLike([1, 2, 3]);
22475
+ * // => true
22476
+ *
22477
+ * _.isArrayLike(document.body.children);
22478
+ * // => true
22479
+ *
22480
+ * _.isArrayLike('abc');
22481
+ * // => true
22482
+ *
22483
+ * _.isArrayLike(_.noop);
22484
+ * // => false
22485
+ */
22486
+ function isArrayLike(value) {
22487
+ return value != null && isLength(value.length) && !isFunction(value);
22488
+ }
22489
+
22490
+ /**
22491
+ * This method is like `_.isArrayLike` except that it also checks if `value`
22492
+ * is an object.
22493
+ *
22494
+ * @static
22495
+ * @memberOf _
22496
+ * @since 4.0.0
22497
+ * @category Lang
22498
+ * @param {*} value The value to check.
22499
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
22500
+ * else `false`.
22501
+ * @example
22502
+ *
22503
+ * _.isArrayLikeObject([1, 2, 3]);
22504
+ * // => true
22505
+ *
22506
+ * _.isArrayLikeObject(document.body.children);
22507
+ * // => true
22508
+ *
22509
+ * _.isArrayLikeObject('abc');
22510
+ * // => false
22511
+ *
22512
+ * _.isArrayLikeObject(_.noop);
22513
+ * // => false
22514
+ */
22515
+ function isArrayLikeObject(value) {
22516
+ return isObjectLike$2(value) && isArrayLike(value);
22517
+ }
22518
+
22519
+ /**
22520
+ * Checks if `value` is classified as a `Function` object.
22521
+ *
22522
+ * @static
22523
+ * @memberOf _
22524
+ * @since 0.1.0
22525
+ * @category Lang
22526
+ * @param {*} value The value to check.
22527
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
22528
+ * @example
22529
+ *
22530
+ * _.isFunction(_);
22531
+ * // => true
22532
+ *
22533
+ * _.isFunction(/abc/);
22534
+ * // => false
22535
+ */
22536
+ function isFunction(value) {
22537
+ // The use of `Object#toString` avoids issues with the `typeof` operator
22538
+ // in Safari 8-9 which returns 'object' for typed array and other constructors.
22539
+ var tag = isObject$2(value) ? objectToString$2.call(value) : '';
22540
+ return tag == funcTag || tag == genTag;
22541
+ }
22542
+
22543
+ /**
22544
+ * Checks if `value` is a valid array-like length.
22545
+ *
22546
+ * **Note:** This method is loosely based on
22547
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
22548
+ *
22549
+ * @static
22550
+ * @memberOf _
22551
+ * @since 4.0.0
22552
+ * @category Lang
22553
+ * @param {*} value The value to check.
22554
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
22555
+ * @example
22556
+ *
22557
+ * _.isLength(3);
22558
+ * // => true
22559
+ *
22560
+ * _.isLength(Number.MIN_VALUE);
22561
+ * // => false
22562
+ *
22563
+ * _.isLength(Infinity);
22564
+ * // => false
22565
+ *
22566
+ * _.isLength('3');
22567
+ * // => false
22568
+ */
22569
+ function isLength(value) {
22570
+ return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
22571
+ }
22572
+
22573
+ /**
22574
+ * Checks if `value` is the
22575
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
22576
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
22577
+ *
22578
+ * @static
22579
+ * @memberOf _
22580
+ * @since 0.1.0
22581
+ * @category Lang
22582
+ * @param {*} value The value to check.
22583
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
22584
+ * @example
22585
+ *
22586
+ * _.isObject({});
22587
+ * // => true
22588
+ *
22589
+ * _.isObject([1, 2, 3]);
22590
+ * // => true
22591
+ *
22592
+ * _.isObject(_.noop);
22593
+ * // => true
22594
+ *
22595
+ * _.isObject(null);
22596
+ * // => false
22597
+ */
22598
+ function isObject$2(value) {
22599
+ var type = typeof value;
22600
+ return !!value && (type == 'object' || type == 'function');
22601
+ }
22602
+
22603
+ /**
22604
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
22605
+ * and has a `typeof` result of "object".
22606
+ *
22607
+ * @static
22608
+ * @memberOf _
22609
+ * @since 4.0.0
22610
+ * @category Lang
22611
+ * @param {*} value The value to check.
22612
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
22613
+ * @example
22614
+ *
22615
+ * _.isObjectLike({});
22616
+ * // => true
22617
+ *
22618
+ * _.isObjectLike([1, 2, 3]);
22619
+ * // => true
22620
+ *
22621
+ * _.isObjectLike(_.noop);
22622
+ * // => false
22623
+ *
22624
+ * _.isObjectLike(null);
22625
+ * // => false
22626
+ */
22627
+ function isObjectLike$2(value) {
22628
+ return !!value && typeof value == 'object';
22629
+ }
22630
+
22631
+ /**
22632
+ * Checks if `value` is classified as a `String` primitive or object.
22633
+ *
22634
+ * @static
22635
+ * @since 0.1.0
22636
+ * @memberOf _
22637
+ * @category Lang
22638
+ * @param {*} value The value to check.
22639
+ * @returns {boolean} Returns `true` if `value` is a string, else `false`.
22640
+ * @example
22641
+ *
22642
+ * _.isString('abc');
22643
+ * // => true
22644
+ *
22645
+ * _.isString(1);
22646
+ * // => false
22647
+ */
22648
+ function isString(value) {
22649
+ return typeof value == 'string' || !isArray(value) && isObjectLike$2(value) && objectToString$2.call(value) == stringTag;
22650
+ }
22651
+
22652
+ /**
22653
+ * Converts `value` to an array.
22654
+ *
22655
+ * @static
22656
+ * @since 0.1.0
22657
+ * @memberOf _
22658
+ * @category Lang
22659
+ * @param {*} value The value to convert.
22660
+ * @returns {Array} Returns the converted array.
22661
+ * @example
22662
+ *
22663
+ * _.toArray({ 'a': 1, 'b': 2 });
22664
+ * // => [1, 2]
22665
+ *
22666
+ * _.toArray('abc');
22667
+ * // => ['a', 'b', 'c']
22668
+ *
22669
+ * _.toArray(1);
22670
+ * // => []
22671
+ *
22672
+ * _.toArray(null);
22673
+ * // => []
22674
+ */
22675
+ function toArray(value) {
22676
+ if (!value) {
22677
+ return [];
22678
+ }
22679
+ if (isArrayLike(value)) {
22680
+ return isString(value) ? stringToArray(value) : copyArray(value);
22681
+ }
22682
+ if (iteratorSymbol && value[iteratorSymbol]) {
22683
+ return iteratorToArray(value[iteratorSymbol]());
22684
+ }
22685
+ var tag = getTag(value),
22686
+ func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;
22687
+ return func(value);
22688
+ }
22689
+
22690
+ /**
22691
+ * Creates an array of the own enumerable property names of `object`.
22692
+ *
22693
+ * **Note:** Non-object values are coerced to objects. See the
22694
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
22695
+ * for more details.
22696
+ *
22697
+ * @static
22698
+ * @since 0.1.0
22699
+ * @memberOf _
22700
+ * @category Object
22701
+ * @param {Object} object The object to query.
22702
+ * @returns {Array} Returns the array of property names.
22703
+ * @example
22704
+ *
22705
+ * function Foo() {
22706
+ * this.a = 1;
22707
+ * this.b = 2;
22708
+ * }
22709
+ *
22710
+ * Foo.prototype.c = 3;
22711
+ *
22712
+ * _.keys(new Foo);
22713
+ * // => ['a', 'b'] (iteration order is not guaranteed)
22714
+ *
22715
+ * _.keys('hi');
22716
+ * // => ['0', '1']
22717
+ */
22718
+ function keys(object) {
22719
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
22720
+ }
22721
+
22722
+ /**
22723
+ * Creates an array of the own enumerable string keyed property values of `object`.
22724
+ *
22725
+ * **Note:** Non-object values are coerced to objects.
22726
+ *
22727
+ * @static
22728
+ * @since 0.1.0
22729
+ * @memberOf _
22730
+ * @category Object
22731
+ * @param {Object} object The object to query.
22732
+ * @returns {Array} Returns the array of property values.
22733
+ * @example
22734
+ *
22735
+ * function Foo() {
22736
+ * this.a = 1;
22737
+ * this.b = 2;
22738
+ * }
22739
+ *
22740
+ * Foo.prototype.c = 3;
22741
+ *
22742
+ * _.values(new Foo);
22743
+ * // => [1, 2] (iteration order is not guaranteed)
22744
+ *
22745
+ * _.values('hi');
22746
+ * // => ['h', 'i']
22747
+ */
22748
+ function values(object) {
22749
+ return object ? baseValues(object, keys(object)) : [];
22750
+ }
22751
+ var lodash_toarray = toArray;
22752
+ var toArray$1 = /*@__PURE__*/getDefaultExportFromCjs(lodash_toarray);
22753
+
22754
+ const Textarea = /*#__PURE__*/React.forwardRef(({
22755
+ validationStatus,
22756
+ disabled,
22757
+ ...props
22758
+ }, ref) => {
22759
+ const inputRef = useProvidedOrCreatedRef(ref);
22760
+ const focusInput = () => {
22761
+ inputRef.current?.focus();
22762
+ };
22763
+ const getTextareaLength = value => {
22764
+ return toArray$1(value).length;
22765
+ };
22766
+ const [count, setCount] = React.useState(0);
22767
+ const handleChange = e => {
22768
+ setCount(getTextareaLength(e.target.value));
22769
+ props.onChange?.(e);
22770
+ };
22771
+ React.useEffect(() => {
22772
+ if (inputRef.current) {
22773
+ setCount(getTextareaLength(inputRef.current.value));
22774
+ }
22775
+ }, [ref]);
22776
+ return /*#__PURE__*/jsxRuntimeExports.jsxs(TextareaWrapper, {
22777
+ disabled: disabled,
22778
+ onClick: focusInput,
22779
+ validationStatus: validationStatus,
22780
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx(ReactTextareaAutosize__default.default, {
22781
+ ...props,
22782
+ ref: e => {
22783
+ isFunction$1(ref) ? ref(e) : null;
22784
+ inputRef.current = e;
22785
+ },
22786
+ disabled: disabled,
22787
+ minRows: 7,
22788
+ onChange: handleChange
22789
+ }), /*#__PURE__*/jsxRuntimeExports.jsxs(TextareaCount, {
22790
+ children: [commaizeNumber(count), "\uC790"]
22791
+ })]
22792
+ });
22793
+ });
22794
+ const TextareaWrapper = styled__default.default.div`
22795
+ position: relative;
22796
+ width: ${forcePixelValue('100%')};
22797
+ border-width: ${forcePixelValue(1)};
22798
+ border-style: solid;
22799
+ border-radius: ${({
22800
+ theme
22801
+ }) => forcePixelValue(theme.radii.xs)};
22802
+ border-color: ${({
22803
+ theme
22804
+ }) => theme.colors['border/input']};
22805
+ background-color: ${({
22806
+ theme
22807
+ }) => theme.colors['bg/input']};
22808
+ cursor: text;
22809
+ display: inline-flex;
22810
+ flex-direction: column;
22811
+ align-items: center;
22812
+
22813
+ font-size: ${({
22814
+ theme
22815
+ }) => forcePixelValue(theme.fontSizes.xs)};
22816
+ font-weight: ${({
22817
+ theme
22818
+ }) => theme.fontWeights.medium};
22819
+ line-height: ${({
22820
+ theme
22821
+ }) => theme.lineHeights[2]};
22822
+ color: ${({
22823
+ theme
22824
+ }) => theme.colors['text/neutral']};
22825
+ textarea::placeholder {
22826
+ color: ${({
22827
+ theme
22828
+ }) => theme.colors['text/neutral/subtlest']};
22829
+ }
22830
+ textarea {
22831
+ font-size: inherit;
22832
+ font-weight: inherit;
22833
+ line-height: inherit;
22834
+ font-family: inherit;
22835
+ border-radius: inherit;
22836
+ color: inherit;
22837
+ transition: inherit;
22838
+
22839
+ border: 0;
22840
+ background-color: transparent;
22841
+ width: 100%;
22842
+ &:focus {
22843
+ outline: 0;
22844
+ }
22845
+ resize: none;
22846
+
22847
+ padding-top: ${({
22848
+ theme
22849
+ }) => forcePixelValue(theme.space['3'])};
22850
+ padding-right: ${({
22851
+ theme
22852
+ }) => forcePixelValue(theme.space['4'])};
22853
+ padding-bottom: ${({
22854
+ theme
22855
+ }) => forcePixelValue(theme.space['3'])};
22856
+ padding-left: ${({
22857
+ theme
22858
+ }) => forcePixelValue(theme.space['4'])};
22859
+ }
22860
+
22861
+ &:after {
22862
+ content: '';
22863
+ position: absolute;
22864
+ top: ${forcePixelValue(-1)};
22865
+ right: ${forcePixelValue(-1)};
22866
+ bottom: ${forcePixelValue(-1)};
22867
+ left: ${forcePixelValue(-1)};
22868
+
22869
+ border: ${forcePixelValue(2)} solid transparent;
22870
+ border-radius: ${({
22871
+ theme
22872
+ }) => forcePixelValue(theme.radii.xs)};
22873
+ pointer-events: none;
22874
+ }
22875
+
22876
+ ${props => props.validationStatus !== 'error' && !props.disabled && styled.css`
22877
+ &:hover:not(:focus-within) {
22878
+ &:after {
22879
+ border-color: ${({
22880
+ theme
22881
+ }) => theme.colors['border/hovered']};
22882
+ }
22883
+ }
22884
+ `}
22885
+
22886
+ ${props => props.validationStatus === 'error' && styled.css`
22887
+ &:after {
22888
+ border-color: ${({
22889
+ theme
22890
+ }) => theme.colors['border/danger']};
22891
+ }
22892
+ `}
22893
+
22894
+ ${props => props.validationStatus !== 'error' && styled.css`
22895
+ &:focus-within {
22896
+ &:after {
22897
+ border-color: ${({
22898
+ theme
22899
+ }) => theme.colors['border/focused']};
22900
+ }
22901
+ }
22902
+ `}
22903
+
22904
+ ${props => props.disabled && styled.css`
22905
+ border-color: ${props.theme.colors['border/input']};
22906
+ background-color: ${props.theme.colors['bg/disabled']};
22907
+ color: ${props.theme.colors['text/disabled']};
22908
+
22909
+ textarea::placeholder {
22910
+ color: ${props.theme.colors['text/disabled']};
22911
+ }
22912
+
22913
+ &,
22914
+ textarea {
22915
+ cursor: not-allowed;
22916
+ }
22917
+ `};
22918
+ `;
22919
+ const TextareaCount = styled__default.default.div`
22920
+ width: 100%;
22921
+
22922
+ padding-right: ${({
22923
+ theme
22924
+ }) => forcePixelValue(theme.space[4])};
22925
+ padding-bottom: ${({
22926
+ theme
22927
+ }) => forcePixelValue(theme.space[3])};
22928
+ padding-left: ${({
22929
+ theme
22930
+ }) => forcePixelValue(theme.space[4])};
22931
+
22932
+ font-size: ${({
22933
+ theme
22934
+ }) => forcePixelValue(theme.fontSizes.xxs)};
22935
+ font-weight: ${({
22936
+ theme
22937
+ }) => forcePixelValue(theme.fontWeights.medium)};
22938
+ line-height: ${({
22939
+ theme
22940
+ }) => theme.lineHeights[2]};
22941
+ color: ${({
22942
+ theme
22943
+ }) => theme.colors['text/neutral/subtlest']};
22944
+ text-align: end;
22945
+ `;
22946
+
22947
+ const FormControlCaption = ({
22948
+ children
22949
+ }) => {
22950
+ const {
22951
+ id
22952
+ } = React.useContext(FormControlContext);
22953
+ return /*#__PURE__*/jsxRuntimeExports.jsx(Text, {
22954
+ as: 'span',
22955
+ id: id,
22956
+ typography: 'xxs',
22957
+ color: 'text/neutral/subtlest',
22958
+ children: children
22959
+ });
22960
+ };
22961
+
22962
+ const FormControlErrorMessage = ({
22963
+ children
22964
+ }) => {
22965
+ const {
22966
+ id
22967
+ } = React.useContext(FormControlContext);
22968
+ return /*#__PURE__*/jsxRuntimeExports.jsx(StyledText$1, {
22969
+ id: id,
22970
+ typography: 'xxs',
22971
+ color: 'text/danger',
22972
+ children: children
22973
+ });
22974
+ };
22975
+ const errorMessageKeyframe = styled.keyframes`
22976
+ 0% {
22977
+ opacity: 0;
22978
+ transform: translateY(-100%);
22979
+ }
22980
+ 100% {
22981
+ opacity: 1;
22982
+ transform: translateY(0);
22983
+ }
22984
+ `;
22985
+ const StyledText$1 = styled__default.default(Text)`
22986
+ animation: 170ms ${errorMessageKeyframe} cubic-bezier(0.44, 0.74, 0.36, 1);
22987
+ `;
22988
+
22989
+ const FormControlLabel = ({
22990
+ children,
22991
+ visuallyHidden,
22992
+ ...props
22993
+ }) => {
22994
+ const {
22995
+ id,
22996
+ disabled,
22997
+ required
22998
+ } = React.useContext(FormControlContext);
22999
+ return /*#__PURE__*/jsxRuntimeExports.jsx(VisuallyHidden, {
23000
+ as: 'label',
23001
+ htmlFor: id,
23002
+ isVisible: !visuallyHidden,
23003
+ children: /*#__PURE__*/jsxRuntimeExports.jsxs(LabelWrapper, {
23004
+ ...props,
23005
+ disabled: disabled,
23006
+ children: [children, required ? /*#__PURE__*/jsxRuntimeExports.jsx(View, {
23007
+ as: 'span',
23008
+ "aria-hidden": "true",
23009
+ children: ' *'
23010
+ }) : null]
23011
+ })
23012
+ });
23013
+ };
23014
+ const VisuallyHidden = styled__default.default.span`
23015
+ ${({
23016
+ isVisible = false
23017
+ }) => {
23018
+ if (isVisible) {
23019
+ return sx;
23020
+ }
23021
+ return `
23022
+ position: absolute;
23023
+ width: 1px;
23024
+ height: 1px;
23025
+ padding: 0;
23026
+ margin: -1px;
23027
+ overflow: hidden;
23028
+ clip: rect(0, 0, 0, 0);
23029
+ white-space: nowrap;
23030
+ border-width: 0;
23031
+ `;
23032
+ }}
23033
+ `;
23034
+ const LabelWrapper = styled__default.default(View)`
23035
+ display: block;
23036
+ align-self: flex-start;
23037
+
23038
+ font-size: ${({
23039
+ theme
23040
+ }) => forcePixelValue(theme.fontSizes.xs)};
23041
+ font-weight: ${({
23042
+ theme
23043
+ }) => theme.fontWeights.medium};
23044
+ line-height: ${({
23045
+ theme
23046
+ }) => theme.lineHeights[2]};
23047
+
23048
+ color: ${({
23049
+ theme
23050
+ }) => theme.colors['text/neutral/subtle']};
23051
+
23052
+ cursor: ${({
23053
+ disabled
23054
+ }) => disabled ? 'not-allowed' : 'pointer'};
23055
+
23056
+ ${sx};
23057
+ `;
23058
+
23059
+ const FormControlSuccessMessage = ({
23060
+ children
23061
+ }) => {
23062
+ const {
23063
+ id
23064
+ } = React.useContext(FormControlContext);
23065
+ return /*#__PURE__*/jsxRuntimeExports.jsx(StyledText, {
23066
+ id: id,
23067
+ typography: 'xxs',
23068
+ color: 'text/success',
23069
+ children: children
23070
+ });
23071
+ };
23072
+ const successMessageKeyframe = styled.keyframes`
23073
+ 0% {
23074
+ opacity: 0;
23075
+ transform: translateY(-100%);
23076
+ }
23077
+ 100% {
23078
+ opacity: 1;
23079
+ transform: translateY(0);
23080
+ }
23081
+ `;
23082
+ const StyledText = styled__default.default(Text)`
23083
+ animation: 170ms ${successMessageKeyframe} cubic-bezier(0.44, 0.74, 0.36, 1);
23084
+ `;
23085
+
23086
+ const FormControlContext = /*#__PURE__*/React.createContext({});
22037
23087
  const FormControl = ({
22038
23088
  children: propChildren,
22039
23089
  id,
@@ -22050,7 +23100,7 @@ const FormControl = ({
22050
23100
  successMessage: FormControlSuccessMessage
22051
23101
  }
22052
23102
  });
22053
- const inputComponentCandidates = [TextInput$1, Select$1, SearchSelectInput$1, Checkbox$1, ...additionalInputComponentCandidates];
23103
+ const inputComponentCandidates = [TextInput$1, Textarea, Select$1, SearchSelectInput$1, Checkbox$1, ...additionalInputComponentCandidates];
22054
23104
  const InputComponent = restComponents.find(component => inputComponentCandidates.some(candidate => /*#__PURE__*/React.isValidElement(component) && component.type === candidate));
22055
23105
  const isHorizontalLayoutNeeded = /*#__PURE__*/React.isValidElement(InputComponent) && InputComponent.type === Checkbox$1;
22056
23106
  return /*#__PURE__*/jsxRuntimeExports.jsx(FormControlContext.Provider, {
@@ -23870,156 +24920,6 @@ var index$1 = Object.assign(Tab, {
23870
24920
  Item: TabItem
23871
24921
  });
23872
24922
 
23873
- const Textarea = /*#__PURE__*/React.forwardRef(({
23874
- disabled,
23875
- ...props
23876
- }, ref) => {
23877
- const inputRef = useProvidedOrCreatedRef(ref);
23878
- const focusInput = () => {
23879
- inputRef.current?.focus();
23880
- };
23881
- return /*#__PURE__*/jsxRuntimeExports.jsx(TextareaWrapper, {
23882
- disabled: disabled,
23883
- onClick: focusInput,
23884
- children: /*#__PURE__*/jsxRuntimeExports.jsx(BaseTextarea, {
23885
- ref: e => {
23886
- isFunction(ref) ? ref(e) : null;
23887
- inputRef.current = e;
23888
- },
23889
- disabled: disabled,
23890
- ...props
23891
- })
23892
- });
23893
- });
23894
- const TextareaWrapper = styled__default.default.div`
23895
- position: relative;
23896
- width: ${forcePixelValue('100%')};
23897
- border-width: ${forcePixelValue(1)};
23898
- border-style: solid;
23899
- border-radius: ${({
23900
- theme
23901
- }) => forcePixelValue(theme.radii.xs)};
23902
- border-color: ${({
23903
- theme
23904
- }) => theme.colors['border/input']};
23905
- background-color: ${({
23906
- theme
23907
- }) => theme.colors['bg/input']};
23908
- cursor: text;
23909
- display: inline-flex;
23910
- align-items: center;
23911
-
23912
- padding-top: ${({
23913
- theme
23914
- }) => forcePixelValue(theme.space['3'])};
23915
- padding-right: ${({
23916
- theme
23917
- }) => forcePixelValue(theme.space['4'])};
23918
- padding-bottom: ${({
23919
- theme
23920
- }) => forcePixelValue(theme.space['3'])};
23921
- padding-left: ${({
23922
- theme
23923
- }) => forcePixelValue(theme.space['4'])};
23924
-
23925
- font-size: ${({
23926
- theme
23927
- }) => forcePixelValue(theme.fontSizes.xs)};
23928
- font-weight: ${({
23929
- theme
23930
- }) => theme.fontWeights.medium};
23931
- line-height: ${({
23932
- theme
23933
- }) => theme.lineHeights[2]};
23934
- color: ${({
23935
- theme
23936
- }) => theme.colors['text/neutral']};
23937
- input::placeholder {
23938
- color: ${({
23939
- theme
23940
- }) => theme.colors['text/neutral/subtlest']};
23941
- }
23942
-
23943
- height: 74px;
23944
-
23945
- &:after {
23946
- content: '';
23947
- position: absolute;
23948
- top: ${forcePixelValue(-1)};
23949
- right: ${forcePixelValue(-1)};
23950
- bottom: ${forcePixelValue(-1)};
23951
- left: ${forcePixelValue(-1)};
23952
-
23953
- border: ${forcePixelValue(2)} solid transparent;
23954
- border-radius: ${({
23955
- theme
23956
- }) => forcePixelValue(theme.radii.xs)};
23957
- pointer-events: none;
23958
- }
23959
-
23960
- ${props => props.validationStatus !== 'error' && !props.disabled && styled.css`
23961
- &:hover:not(:focus-within) {
23962
- &:after {
23963
- border-color: ${({
23964
- theme
23965
- }) => theme.colors['border/hovered']};
23966
- }
23967
- }
23968
- `}
23969
-
23970
- ${props => props.validationStatus === 'error' && styled.css`
23971
- &:after {
23972
- border-color: ${({
23973
- theme
23974
- }) => theme.colors['border/danger']};
23975
- }
23976
- `}
23977
-
23978
- ${props => props.validationStatus !== 'error' && styled.css`
23979
- &:focus-within {
23980
- &:after {
23981
- border-color: ${({
23982
- theme
23983
- }) => theme.colors['border/focused']};
23984
- }
23985
- }
23986
- `}
23987
-
23988
- ${props => props.disabled && styled.css`
23989
- border-color: ${props.theme.colors['border/input']};
23990
- background-color: ${props.theme.colors['bg/disabled']};
23991
- color: ${props.theme.colors['text/disabled']};
23992
-
23993
- textarea::placeholder {
23994
- color: ${props.theme.colors['text/disabled']};
23995
- }
23996
-
23997
- &,
23998
- textarea {
23999
- cursor: not-allowed;
24000
- }
24001
- `};
24002
- `;
24003
- const UnstyledTextarea = styled__default.default.textarea`
24004
- font-size: inherit;
24005
- font-weight: inherit;
24006
- line-height: inherit;
24007
- font-family: inherit;
24008
- border-radius: inherit;
24009
- color: inherit;
24010
- transition: inherit;
24011
-
24012
- border: 0;
24013
- background-color: transparent;
24014
- width: 100%;
24015
- &:focus {
24016
- outline: 0;
24017
- }
24018
- `;
24019
- const BaseTextarea = styled__default.default(UnstyledTextarea)`
24020
- resize: none;
24021
- `;
24022
-
24023
24923
  const theme = {
24024
24924
  breakpoints,
24025
24925
  space,