@teamturing/react-kit 2.5.0 → 2.6.0

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
@@ -13449,6 +13449,712 @@ const StyledIcon = ({
13449
13449
  children: /*#__PURE__*/jsxRuntimeExports.jsx(Icon, {})
13450
13450
  });
13451
13451
 
13452
+ /**
13453
+ * 제공된 `ref`가 없는 경우 새로운 `ref`를 만들어 사용하고, 있는 경우 제공된 ref를 사용할 수 있는 훅입니다.
13454
+ */
13455
+ const useProvidedOrCreatedRef = providedRef => {
13456
+ const createdRef = React.useRef(null);
13457
+ return providedRef ?? createdRef;
13458
+ };
13459
+
13460
+ const Textarea = /*#__PURE__*/React.forwardRef(({
13461
+ disabled,
13462
+ ...props
13463
+ }, ref) => {
13464
+ const inputRef = useProvidedOrCreatedRef(ref);
13465
+ const focusInput = () => {
13466
+ inputRef.current?.focus();
13467
+ };
13468
+ return /*#__PURE__*/jsxRuntimeExports.jsx(TextareaWrapper, {
13469
+ disabled: disabled,
13470
+ onClick: focusInput,
13471
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(BaseTextarea, {
13472
+ ref: e => {
13473
+ isFunction(ref) ? ref(e) : null;
13474
+ inputRef.current = e;
13475
+ },
13476
+ disabled: disabled,
13477
+ ...props
13478
+ })
13479
+ });
13480
+ });
13481
+ const TextareaWrapper = styled__default.default.div`
13482
+ position: relative;
13483
+ width: ${forcePixelValue('100%')};
13484
+ border-width: ${forcePixelValue(1)};
13485
+ border-style: solid;
13486
+ border-radius: ${({
13487
+ theme
13488
+ }) => forcePixelValue(theme.radii.s)};
13489
+ border-color: ${({
13490
+ theme
13491
+ }) => theme.colors['border/input']};
13492
+ background-color: ${({
13493
+ theme
13494
+ }) => theme.colors['bg/input']};
13495
+ cursor: text;
13496
+ display: inline-flex;
13497
+ align-items: center;
13498
+
13499
+ padding-top: ${({
13500
+ theme
13501
+ }) => forcePixelValue(theme.space['4'])};
13502
+ padding-right: ${({
13503
+ theme
13504
+ }) => forcePixelValue(theme.space['4'])};
13505
+ padding-bottom: ${({
13506
+ theme
13507
+ }) => forcePixelValue(theme.space['4'])};
13508
+ padding-left: ${({
13509
+ theme
13510
+ }) => forcePixelValue(theme.space['5'])};
13511
+
13512
+ font-size: ${({
13513
+ theme
13514
+ }) => forcePixelValue(theme.fontSizes.xs)};
13515
+ font-weight: ${({
13516
+ theme
13517
+ }) => theme.fontWeights.medium};
13518
+ line-height: ${({
13519
+ theme
13520
+ }) => theme.lineHeights[2]};
13521
+ color: ${({
13522
+ theme
13523
+ }) => theme.colors['text/neutral']};
13524
+ input::placeholder {
13525
+ color: ${({
13526
+ theme
13527
+ }) => theme.colors['text/neutral/subtlest']};
13528
+ }
13529
+
13530
+ height: 74px;
13531
+
13532
+ &:after {
13533
+ content: '';
13534
+ position: absolute;
13535
+ top: ${forcePixelValue(-1)};
13536
+ right: ${forcePixelValue(-1)};
13537
+ bottom: ${forcePixelValue(-1)};
13538
+ left: ${forcePixelValue(-1)};
13539
+
13540
+ border: ${forcePixelValue(2)} solid transparent;
13541
+ border-radius: ${({
13542
+ theme
13543
+ }) => forcePixelValue(theme.radii.s)};
13544
+ pointer-events: none;
13545
+ }
13546
+
13547
+ ${props => props.validationStatus !== 'error' && !props.disabled && styled.css`
13548
+ &:hover:not(:focus-within) {
13549
+ &:after {
13550
+ border-color: ${({
13551
+ theme
13552
+ }) => theme.colors['border/hovered']};
13553
+ }
13554
+ }
13555
+ `}
13556
+
13557
+ ${props => props.validationStatus === 'error' && styled.css`
13558
+ &:after {
13559
+ border-color: ${({
13560
+ theme
13561
+ }) => theme.colors['border/danger']};
13562
+ }
13563
+ `}
13564
+
13565
+ ${props => props.validationStatus !== 'error' && styled.css`
13566
+ &:focus-within {
13567
+ &:after {
13568
+ border-color: ${({
13569
+ theme
13570
+ }) => theme.colors['border/focused']};
13571
+ }
13572
+ }
13573
+ `}
13574
+
13575
+ ${props => props.disabled && styled.css`
13576
+ border-color: ${props.theme.colors['border/input']};
13577
+ background-color: ${props.theme.colors['bg/disabled']};
13578
+ color: ${props.theme.colors['text/disabled']};
13579
+
13580
+ textarea::placeholder {
13581
+ color: ${props.theme.colors['text/disabled']};
13582
+ }
13583
+
13584
+ &,
13585
+ textarea {
13586
+ cursor: not-allowed;
13587
+ }
13588
+ `};
13589
+ `;
13590
+ const UnstyledTextarea = styled__default.default.textarea`
13591
+ font-size: inherit;
13592
+ font-weight: inherit;
13593
+ line-height: inherit;
13594
+ font-family: inherit;
13595
+ border-radius: inherit;
13596
+ color: inherit;
13597
+ transition: inherit;
13598
+
13599
+ border: 0;
13600
+ background-color: transparent;
13601
+ width: 100%;
13602
+ &:focus {
13603
+ outline: 0;
13604
+ }
13605
+ `;
13606
+ const BaseTextarea = styled__default.default(UnstyledTextarea)`
13607
+ resize: none;
13608
+ `;
13609
+
13610
+ var reactIs = {exports: {}};
13611
+
13612
+ var reactIs_production_min = {};
13613
+
13614
+ /**
13615
+ * @license React
13616
+ * react-is.production.min.js
13617
+ *
13618
+ * Copyright (c) Facebook, Inc. and its affiliates.
13619
+ *
13620
+ * This source code is licensed under the MIT license found in the
13621
+ * LICENSE file in the root directory of this source tree.
13622
+ */
13623
+ var hasRequiredReactIs_production_min;
13624
+ function requireReactIs_production_min() {
13625
+ if (hasRequiredReactIs_production_min) return reactIs_production_min;
13626
+ hasRequiredReactIs_production_min = 1;
13627
+ var b = Symbol.for("react.element"),
13628
+ c = Symbol.for("react.portal"),
13629
+ d = Symbol.for("react.fragment"),
13630
+ e = Symbol.for("react.strict_mode"),
13631
+ f = Symbol.for("react.profiler"),
13632
+ g = Symbol.for("react.provider"),
13633
+ h = Symbol.for("react.context"),
13634
+ k = Symbol.for("react.server_context"),
13635
+ l = Symbol.for("react.forward_ref"),
13636
+ m = Symbol.for("react.suspense"),
13637
+ n = Symbol.for("react.suspense_list"),
13638
+ p = Symbol.for("react.memo"),
13639
+ q = Symbol.for("react.lazy"),
13640
+ t = Symbol.for("react.offscreen"),
13641
+ u;
13642
+ u = Symbol.for("react.module.reference");
13643
+ function v(a) {
13644
+ if ("object" === typeof a && null !== a) {
13645
+ var r = a.$$typeof;
13646
+ switch (r) {
13647
+ case b:
13648
+ switch (a = a.type, a) {
13649
+ case d:
13650
+ case f:
13651
+ case e:
13652
+ case m:
13653
+ case n:
13654
+ return a;
13655
+ default:
13656
+ switch (a = a && a.$$typeof, a) {
13657
+ case k:
13658
+ case h:
13659
+ case l:
13660
+ case q:
13661
+ case p:
13662
+ case g:
13663
+ return a;
13664
+ default:
13665
+ return r;
13666
+ }
13667
+ }
13668
+ case c:
13669
+ return r;
13670
+ }
13671
+ }
13672
+ }
13673
+ reactIs_production_min.ContextConsumer = h;
13674
+ reactIs_production_min.ContextProvider = g;
13675
+ reactIs_production_min.Element = b;
13676
+ reactIs_production_min.ForwardRef = l;
13677
+ reactIs_production_min.Fragment = d;
13678
+ reactIs_production_min.Lazy = q;
13679
+ reactIs_production_min.Memo = p;
13680
+ reactIs_production_min.Portal = c;
13681
+ reactIs_production_min.Profiler = f;
13682
+ reactIs_production_min.StrictMode = e;
13683
+ reactIs_production_min.Suspense = m;
13684
+ reactIs_production_min.SuspenseList = n;
13685
+ reactIs_production_min.isAsyncMode = function () {
13686
+ return !1;
13687
+ };
13688
+ reactIs_production_min.isConcurrentMode = function () {
13689
+ return !1;
13690
+ };
13691
+ reactIs_production_min.isContextConsumer = function (a) {
13692
+ return v(a) === h;
13693
+ };
13694
+ reactIs_production_min.isContextProvider = function (a) {
13695
+ return v(a) === g;
13696
+ };
13697
+ reactIs_production_min.isElement = function (a) {
13698
+ return "object" === typeof a && null !== a && a.$$typeof === b;
13699
+ };
13700
+ reactIs_production_min.isForwardRef = function (a) {
13701
+ return v(a) === l;
13702
+ };
13703
+ reactIs_production_min.isFragment = function (a) {
13704
+ return v(a) === d;
13705
+ };
13706
+ reactIs_production_min.isLazy = function (a) {
13707
+ return v(a) === q;
13708
+ };
13709
+ reactIs_production_min.isMemo = function (a) {
13710
+ return v(a) === p;
13711
+ };
13712
+ reactIs_production_min.isPortal = function (a) {
13713
+ return v(a) === c;
13714
+ };
13715
+ reactIs_production_min.isProfiler = function (a) {
13716
+ return v(a) === f;
13717
+ };
13718
+ reactIs_production_min.isStrictMode = function (a) {
13719
+ return v(a) === e;
13720
+ };
13721
+ reactIs_production_min.isSuspense = function (a) {
13722
+ return v(a) === m;
13723
+ };
13724
+ reactIs_production_min.isSuspenseList = function (a) {
13725
+ return v(a) === n;
13726
+ };
13727
+ reactIs_production_min.isValidElementType = function (a) {
13728
+ return "string" === typeof a || "function" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || "object" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;
13729
+ };
13730
+ reactIs_production_min.typeOf = v;
13731
+ return reactIs_production_min;
13732
+ }
13733
+
13734
+ var reactIs_development = {};
13735
+
13736
+ /**
13737
+ * @license React
13738
+ * react-is.development.js
13739
+ *
13740
+ * Copyright (c) Facebook, Inc. and its affiliates.
13741
+ *
13742
+ * This source code is licensed under the MIT license found in the
13743
+ * LICENSE file in the root directory of this source tree.
13744
+ */
13745
+ var hasRequiredReactIs_development;
13746
+ function requireReactIs_development() {
13747
+ if (hasRequiredReactIs_development) return reactIs_development;
13748
+ hasRequiredReactIs_development = 1;
13749
+ if (process.env.NODE_ENV !== "production") {
13750
+ (function () {
13751
+
13752
+ // ATTENTION
13753
+ // When adding new symbols to this file,
13754
+ // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
13755
+ // The Symbol used to tag the ReactElement-like types.
13756
+ var REACT_ELEMENT_TYPE = Symbol.for('react.element');
13757
+ var REACT_PORTAL_TYPE = Symbol.for('react.portal');
13758
+ var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
13759
+ var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
13760
+ var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
13761
+ var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
13762
+ var REACT_CONTEXT_TYPE = Symbol.for('react.context');
13763
+ var REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
13764
+ var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
13765
+ var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
13766
+ var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
13767
+ var REACT_MEMO_TYPE = Symbol.for('react.memo');
13768
+ var REACT_LAZY_TYPE = Symbol.for('react.lazy');
13769
+ var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
13770
+
13771
+ // -----------------------------------------------------------------------------
13772
+
13773
+ var enableScopeAPI = false; // Experimental Create Event Handle API.
13774
+ var enableCacheElement = false;
13775
+ var enableTransitionTracing = false; // No known bugs, but needs performance testing
13776
+
13777
+ var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
13778
+ // stuff. Intended to enable React core members to more easily debug scheduling
13779
+ // issues in DEV builds.
13780
+
13781
+ var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
13782
+
13783
+ var REACT_MODULE_REFERENCE;
13784
+ {
13785
+ REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
13786
+ }
13787
+ function isValidElementType(type) {
13788
+ if (typeof type === 'string' || typeof type === 'function') {
13789
+ return true;
13790
+ } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
13791
+
13792
+ if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {
13793
+ return true;
13794
+ }
13795
+ if (typeof type === 'object' && type !== null) {
13796
+ if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE ||
13797
+ // This needs to include all possible module reference object
13798
+ // types supported by any Flight configuration anywhere since
13799
+ // we don't know which Flight build this will end up being used
13800
+ // with.
13801
+ type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
13802
+ return true;
13803
+ }
13804
+ }
13805
+ return false;
13806
+ }
13807
+ function typeOf(object) {
13808
+ if (typeof object === 'object' && object !== null) {
13809
+ var $$typeof = object.$$typeof;
13810
+ switch ($$typeof) {
13811
+ case REACT_ELEMENT_TYPE:
13812
+ var type = object.type;
13813
+ switch (type) {
13814
+ case REACT_FRAGMENT_TYPE:
13815
+ case REACT_PROFILER_TYPE:
13816
+ case REACT_STRICT_MODE_TYPE:
13817
+ case REACT_SUSPENSE_TYPE:
13818
+ case REACT_SUSPENSE_LIST_TYPE:
13819
+ return type;
13820
+ default:
13821
+ var $$typeofType = type && type.$$typeof;
13822
+ switch ($$typeofType) {
13823
+ case REACT_SERVER_CONTEXT_TYPE:
13824
+ case REACT_CONTEXT_TYPE:
13825
+ case REACT_FORWARD_REF_TYPE:
13826
+ case REACT_LAZY_TYPE:
13827
+ case REACT_MEMO_TYPE:
13828
+ case REACT_PROVIDER_TYPE:
13829
+ return $$typeofType;
13830
+ default:
13831
+ return $$typeof;
13832
+ }
13833
+ }
13834
+ case REACT_PORTAL_TYPE:
13835
+ return $$typeof;
13836
+ }
13837
+ }
13838
+ return undefined;
13839
+ }
13840
+ var ContextConsumer = REACT_CONTEXT_TYPE;
13841
+ var ContextProvider = REACT_PROVIDER_TYPE;
13842
+ var Element = REACT_ELEMENT_TYPE;
13843
+ var ForwardRef = REACT_FORWARD_REF_TYPE;
13844
+ var Fragment = REACT_FRAGMENT_TYPE;
13845
+ var Lazy = REACT_LAZY_TYPE;
13846
+ var Memo = REACT_MEMO_TYPE;
13847
+ var Portal = REACT_PORTAL_TYPE;
13848
+ var Profiler = REACT_PROFILER_TYPE;
13849
+ var StrictMode = REACT_STRICT_MODE_TYPE;
13850
+ var Suspense = REACT_SUSPENSE_TYPE;
13851
+ var SuspenseList = REACT_SUSPENSE_LIST_TYPE;
13852
+ var hasWarnedAboutDeprecatedIsAsyncMode = false;
13853
+ var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated
13854
+
13855
+ function isAsyncMode(object) {
13856
+ {
13857
+ if (!hasWarnedAboutDeprecatedIsAsyncMode) {
13858
+ hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
13859
+
13860
+ console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
13861
+ }
13862
+ }
13863
+ return false;
13864
+ }
13865
+ function isConcurrentMode(object) {
13866
+ {
13867
+ if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
13868
+ hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint
13869
+
13870
+ console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
13871
+ }
13872
+ }
13873
+ return false;
13874
+ }
13875
+ function isContextConsumer(object) {
13876
+ return typeOf(object) === REACT_CONTEXT_TYPE;
13877
+ }
13878
+ function isContextProvider(object) {
13879
+ return typeOf(object) === REACT_PROVIDER_TYPE;
13880
+ }
13881
+ function isElement(object) {
13882
+ return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
13883
+ }
13884
+ function isForwardRef(object) {
13885
+ return typeOf(object) === REACT_FORWARD_REF_TYPE;
13886
+ }
13887
+ function isFragment(object) {
13888
+ return typeOf(object) === REACT_FRAGMENT_TYPE;
13889
+ }
13890
+ function isLazy(object) {
13891
+ return typeOf(object) === REACT_LAZY_TYPE;
13892
+ }
13893
+ function isMemo(object) {
13894
+ return typeOf(object) === REACT_MEMO_TYPE;
13895
+ }
13896
+ function isPortal(object) {
13897
+ return typeOf(object) === REACT_PORTAL_TYPE;
13898
+ }
13899
+ function isProfiler(object) {
13900
+ return typeOf(object) === REACT_PROFILER_TYPE;
13901
+ }
13902
+ function isStrictMode(object) {
13903
+ return typeOf(object) === REACT_STRICT_MODE_TYPE;
13904
+ }
13905
+ function isSuspense(object) {
13906
+ return typeOf(object) === REACT_SUSPENSE_TYPE;
13907
+ }
13908
+ function isSuspenseList(object) {
13909
+ return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
13910
+ }
13911
+ reactIs_development.ContextConsumer = ContextConsumer;
13912
+ reactIs_development.ContextProvider = ContextProvider;
13913
+ reactIs_development.Element = Element;
13914
+ reactIs_development.ForwardRef = ForwardRef;
13915
+ reactIs_development.Fragment = Fragment;
13916
+ reactIs_development.Lazy = Lazy;
13917
+ reactIs_development.Memo = Memo;
13918
+ reactIs_development.Portal = Portal;
13919
+ reactIs_development.Profiler = Profiler;
13920
+ reactIs_development.StrictMode = StrictMode;
13921
+ reactIs_development.Suspense = Suspense;
13922
+ reactIs_development.SuspenseList = SuspenseList;
13923
+ reactIs_development.isAsyncMode = isAsyncMode;
13924
+ reactIs_development.isConcurrentMode = isConcurrentMode;
13925
+ reactIs_development.isContextConsumer = isContextConsumer;
13926
+ reactIs_development.isContextProvider = isContextProvider;
13927
+ reactIs_development.isElement = isElement;
13928
+ reactIs_development.isForwardRef = isForwardRef;
13929
+ reactIs_development.isFragment = isFragment;
13930
+ reactIs_development.isLazy = isLazy;
13931
+ reactIs_development.isMemo = isMemo;
13932
+ reactIs_development.isPortal = isPortal;
13933
+ reactIs_development.isProfiler = isProfiler;
13934
+ reactIs_development.isStrictMode = isStrictMode;
13935
+ reactIs_development.isSuspense = isSuspense;
13936
+ reactIs_development.isSuspenseList = isSuspenseList;
13937
+ reactIs_development.isValidElementType = isValidElementType;
13938
+ reactIs_development.typeOf = typeOf;
13939
+ })();
13940
+ }
13941
+ return reactIs_development;
13942
+ }
13943
+
13944
+ if (process.env.NODE_ENV === 'production') {
13945
+ reactIs.exports = requireReactIs_production_min();
13946
+ } else {
13947
+ reactIs.exports = requireReactIs_development();
13948
+ }
13949
+ var reactIsExports = reactIs.exports;
13950
+
13951
+ const TextInput = /*#__PURE__*/React.forwardRef(({
13952
+ type = 'text',
13953
+ disabled,
13954
+ validationStatus,
13955
+ leadingVisual: LeadingVisual,
13956
+ trailingVisual: TrailingVisual,
13957
+ trailingAction,
13958
+ ...props
13959
+ }, ref) => {
13960
+ const inputRef = useProvidedOrCreatedRef(ref);
13961
+ const focusInput = () => {
13962
+ inputRef.current?.focus();
13963
+ };
13964
+ return /*#__PURE__*/jsxRuntimeExports.jsxs(TextInputWrapper, {
13965
+ disabled: disabled,
13966
+ onClick: focusInput,
13967
+ hasLeadingVisual: !isNullable(LeadingVisual),
13968
+ hasTrailingVisual: !isNullable(TrailingVisual),
13969
+ hasTrailingAction: !isNullable(trailingAction),
13970
+ validationStatus: validationStatus,
13971
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx(View, {
13972
+ sx: {
13973
+ 'flexShrink': 0,
13974
+ 'fontSize': 'xxs',
13975
+ 'fontWeight': 'medium',
13976
+ 'color': color$2['text/neutral'],
13977
+ '& > svg': {
13978
+ display: 'block',
13979
+ width: 24,
13980
+ height: 24,
13981
+ color: color$2['icon/neutral/bold']
13982
+ }
13983
+ },
13984
+ children: typeof LeadingVisual !== 'string' && reactIsExports.isValidElementType(LeadingVisual) ? /*#__PURE__*/jsxRuntimeExports.jsx(LeadingVisual, {}) : LeadingVisual
13985
+ }), /*#__PURE__*/jsxRuntimeExports.jsx(BaseInput, {
13986
+ ref: e => {
13987
+ isFunction(ref) ? ref(e) : null;
13988
+ inputRef.current = e;
13989
+ },
13990
+ type: type,
13991
+ disabled: disabled,
13992
+ ...props
13993
+ }), /*#__PURE__*/jsxRuntimeExports.jsxs(View, {
13994
+ sx: {
13995
+ 'display': 'flex',
13996
+ 'alignItems': 'center',
13997
+ 'columnGap': 2,
13998
+ 'flexShrink': 0,
13999
+ 'fontSize': 'xxs',
14000
+ 'fontWeight': 'medium',
14001
+ 'color': color$2['text/neutral'],
14002
+ '& > svg': {
14003
+ display: 'block',
14004
+ width: 24,
14005
+ height: 24,
14006
+ color: color$2['icon/neutral/bold']
14007
+ }
14008
+ },
14009
+ children: [typeof TrailingVisual !== 'string' && reactIsExports.isValidElementType(TrailingVisual) ? /*#__PURE__*/jsxRuntimeExports.jsx(TrailingVisual, {}) : TrailingVisual, trailingAction ? /*#__PURE__*/React.cloneElement(trailingAction, {
14010
+ disabled: disabled
14011
+ }) : null]
14012
+ })]
14013
+ });
14014
+ });
14015
+ const TextInputWrapper = styled__default.default.div`
14016
+ position: relative;
14017
+ width: ${forcePixelValue('100%')};
14018
+ border-width: ${forcePixelValue(1)};
14019
+ border-style: solid;
14020
+ border-radius: ${({
14021
+ theme
14022
+ }) => forcePixelValue(theme.radii.s)};
14023
+ border-color: ${({
14024
+ theme
14025
+ }) => theme.colors['border/input']};
14026
+ background-color: ${({
14027
+ theme
14028
+ }) => theme.colors['bg/input']};
14029
+ cursor: text;
14030
+ display: inline-flex;
14031
+ align-items: center;
14032
+
14033
+ font-size: ${({
14034
+ theme
14035
+ }) => forcePixelValue(theme.fontSizes.xs)};
14036
+ font-weight: ${({
14037
+ theme
14038
+ }) => theme.fontWeights.medium};
14039
+ line-height: ${({
14040
+ theme
14041
+ }) => theme.lineHeights[2]};
14042
+ color: ${({
14043
+ theme
14044
+ }) => theme.colors['text/neutral']};
14045
+ input::placeholder {
14046
+ color: ${({
14047
+ theme
14048
+ }) => theme.colors['text/neutral/subtlest']};
14049
+ }
14050
+
14051
+ &:after {
14052
+ content: '';
14053
+ position: absolute;
14054
+ top: ${forcePixelValue(-1)};
14055
+ right: ${forcePixelValue(-1)};
14056
+ bottom: ${forcePixelValue(-1)};
14057
+ left: ${forcePixelValue(-1)};
14058
+
14059
+ border: ${forcePixelValue(2)} solid transparent;
14060
+ border-radius: ${({
14061
+ theme
14062
+ }) => forcePixelValue(theme.radii.s)};
14063
+ pointer-events: none;
14064
+ }
14065
+
14066
+ ${props => props.validationStatus !== 'error' && !props.disabled && styled.css`
14067
+ &:hover:not(:focus-within) {
14068
+ &:after {
14069
+ border-color: ${({
14070
+ theme
14071
+ }) => theme.colors['border/hovered']};
14072
+ }
14073
+ }
14074
+ `}
14075
+
14076
+ ${props => props.validationStatus === 'error' && styled.css`
14077
+ &:after {
14078
+ border-color: ${({
14079
+ theme
14080
+ }) => theme.colors['border/danger']};
14081
+ }
14082
+ `}
14083
+
14084
+ ${props => props.validationStatus !== 'error' && styled.css`
14085
+ &:focus-within {
14086
+ &:after {
14087
+ border-color: ${({
14088
+ theme
14089
+ }) => theme.colors['border/focused']};
14090
+ }
14091
+ }
14092
+ `}
14093
+
14094
+ ${props => props.disabled && styled.css`
14095
+ border-color: ${props.theme.colors['border/input']};
14096
+ background-color: ${props.theme.colors['bg/disabled']};
14097
+ color: ${props.theme.colors['text/disabled']};
14098
+
14099
+ input::placeholder {
14100
+ color: ${props.theme.colors['text/disabled']};
14101
+ }
14102
+
14103
+ input {
14104
+ cursor: not-allowed;
14105
+ }
14106
+ `};
14107
+
14108
+ ${props => props.hasLeadingVisual && styled.css`
14109
+ padding-left: ${forcePixelValue(props.theme.space[5])};
14110
+ input {
14111
+ padding-left: ${forcePixelValue(props.theme.space[3])};
14112
+ }
14113
+ `}
14114
+
14115
+ ${props => (props.hasTrailingVisual || props.hasTrailingAction) && styled.css`
14116
+ padding-right: ${forcePixelValue(props.theme.space[3])};
14117
+ input {
14118
+ padding-right: ${forcePixelValue(props.theme.space[3])};
14119
+ }
14120
+ `}
14121
+
14122
+ transition: color 100ms, background-color 100ms;
14123
+ &:after {
14124
+ transition: border-color 100ms;
14125
+ }
14126
+ `;
14127
+ const UnstyledInput = styled__default.default.input`
14128
+ font-size: inherit;
14129
+ font-weight: inherit;
14130
+ line-height: inherit;
14131
+ font-family: inherit;
14132
+ border-radius: inherit;
14133
+ color: inherit;
14134
+ transition: inherit;
14135
+
14136
+ border: 0;
14137
+ background-color: transparent;
14138
+ width: 100%;
14139
+ &:focus {
14140
+ outline: 0;
14141
+ }
14142
+ `;
14143
+ const BaseInput = styled__default.default(UnstyledInput)`
14144
+ padding-top: ${({
14145
+ theme
14146
+ }) => forcePixelValue(theme.space['4'])};
14147
+ padding-right: ${({
14148
+ theme
14149
+ }) => forcePixelValue(theme.space['4'])};
14150
+ padding-bottom: ${({
14151
+ theme
14152
+ }) => forcePixelValue(theme.space['4'])};
14153
+ padding-left: ${({
14154
+ theme
14155
+ }) => forcePixelValue(theme.space['5'])};
14156
+ `;
14157
+
13452
14158
  const theme = {
13453
14159
  breakpoints,
13454
14160
  space: space$1,
@@ -14105,14 +14811,6 @@ const useOutsideClick = ({
14105
14811
  });
14106
14812
  };
14107
14813
 
14108
- /**
14109
- * 제공된 `ref`가 없는 경우 새로운 `ref`를 만들어 사용하고, 있는 경우 제공된 ref를 사용할 수 있는 훅입니다.
14110
- */
14111
- const useProvidedOrCreatedRef = providedRef => {
14112
- const createdRef = React.useRef(null);
14113
- return providedRef ?? createdRef;
14114
- };
14115
-
14116
14814
  const useToggleHandler = ({
14117
14815
  initialState = false
14118
14816
  }) => {
@@ -14151,6 +14849,8 @@ exports.Spinner = Spinner;
14151
14849
  exports.Stack = Stack$1;
14152
14850
  exports.StyledIcon = StyledIcon;
14153
14851
  exports.Text = Text;
14852
+ exports.TextInput = TextInput;
14853
+ exports.Textarea = Textarea;
14154
14854
  exports.ThemeProvider = ThemeProvider;
14155
14855
  exports.UnstyledButton = UnstyledButton;
14156
14856
  exports.View = View;