sag_components 2.0.0-beta175 → 2.0.0-beta177

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.esm.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import React$1, { useState, useRef, useEffect, useMemo, useCallback, useImperativeHandle } from 'react';
2
2
  import styled, { keyframes, css, styled as styled$1 } from 'styled-components';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
4
  import { ResponsiveContainer, PieChart as PieChart$1, Pie, Cell, Tooltip as Tooltip$3, BarChart as BarChart$1, CartesianGrid, XAxis, YAxis, Bar, LabelList, ReferenceLine, LineChart, Line, AreaChart as AreaChart$1, Legend, Area, ScatterChart, ZAxis, Scatter, Brush, ComposedChart } from 'recharts';
4
5
  import Skeleton, { SkeletonTheme } from 'react-loading-skeleton';
5
6
  import { motion, AnimatePresence } from 'framer-motion';
@@ -468,6 +469,101 @@ const ErrorIcon = _ref => {
468
469
  }));
469
470
  };
470
471
 
472
+ /******************************************************************************
473
+ Copyright (c) Microsoft Corporation.
474
+
475
+ Permission to use, copy, modify, and/or distribute this software for any
476
+ purpose with or without fee is hereby granted.
477
+
478
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
479
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
480
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
481
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
482
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
483
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
484
+ PERFORMANCE OF THIS SOFTWARE.
485
+ ***************************************************************************** */
486
+
487
+ var __assign = function() {
488
+ __assign = Object.assign || function __assign(t) {
489
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
490
+ s = arguments[i];
491
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
492
+ }
493
+ return t;
494
+ };
495
+ return __assign.apply(this, arguments);
496
+ };
497
+
498
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
499
+ var e = new Error(message);
500
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
501
+ };
502
+
503
+ var VIcon = function (_a) {
504
+ var _b = _a.width,
505
+ width = _b === void 0 ? "12" : _b,
506
+ _c = _a.height,
507
+ height = _c === void 0 ? "8" : _c,
508
+ _d = _a.color,
509
+ color = _d === void 0 ? "#D0D0D0" : _d;
510
+ return jsxs("svg", __assign({
511
+ width: width,
512
+ height: height,
513
+ viewBox: "0 0 20 20",
514
+ fill: "none",
515
+ xmlns: "http://www.w3.org/2000/svg"
516
+ }, {
517
+ children: [jsx("g", __assign({
518
+ filter: "url(#filter0_d_3431_32168)"
519
+ }, {
520
+ children: jsx("path", {
521
+ d: "M15.8754 4.12241C16.0415 4.28562 16.0415 4.55413 15.8754 4.71734L8.58808 11.8776C8.42197 12.0408 8.14869 12.0408 7.98259 11.8776L4.12458 8.08687C3.95847 7.92366 3.95847 7.65515 4.12458 7.49194C4.29069 7.32873 4.56397 7.32873 4.73007 7.49194L8.28533 10.9852L15.2699 4.12241C15.436 3.9592 15.7093 3.9592 15.8754 4.12241Z",
522
+ fill: color
523
+ })
524
+ })), jsx("defs", {
525
+ children: jsxs("filter", __assign({
526
+ id: "filter0_d_3431_32168",
527
+ x: "-2",
528
+ y: "0",
529
+ width: "24",
530
+ height: "24",
531
+ filterUnits: "userSpaceOnUse",
532
+ "color-interpolation-filters": "sRGB"
533
+ }, {
534
+ children: [jsx("feFlood", {
535
+ "flood-opacity": "0",
536
+ result: "BackgroundImageFix"
537
+ }), jsx("feColorMatrix", {
538
+ "in": "SourceAlpha",
539
+ type: "matrix",
540
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
541
+ result: "hardAlpha"
542
+ }), jsx("feOffset", {
543
+ dy: "4"
544
+ }), jsx("feGaussianBlur", {
545
+ stdDeviation: "2"
546
+ }), jsx("feComposite", {
547
+ in2: "hardAlpha",
548
+ operator: "out"
549
+ }), jsx("feColorMatrix", {
550
+ type: "matrix",
551
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
552
+ }), jsx("feBlend", {
553
+ mode: "normal",
554
+ in2: "BackgroundImageFix",
555
+ result: "effect1_dropShadow_3431_32168"
556
+ }), jsx("feBlend", {
557
+ mode: "normal",
558
+ "in": "SourceGraphic",
559
+ in2: "effect1_dropShadow_3431_32168",
560
+ result: "shape"
561
+ })]
562
+ }))
563
+ })]
564
+ }));
565
+ };
566
+
471
567
  const ChervronRightIcon = _ref => {
472
568
  let {
473
569
  width = "8",
@@ -549,7 +645,8 @@ const Button$1 = props => {
549
645
  reselect: ReselectIcon,
550
646
  plus: Plus,
551
647
  left: ChervronLeftIcon,
552
- right: ChervronRightIcon
648
+ right: ChervronRightIcon,
649
+ vicon: VIcon
553
650
  };
554
651
  const getIcon = icon => {
555
652
  if (!icon || icon === "none") return null;
@@ -10448,24 +10545,23 @@ const QuarterPopupPicker = ({
10448
10545
  };
10449
10546
 
10450
10547
  /* eslint-disable import/no-extraneous-dependencies */
10451
- const QuarterPicker = _ref => {
10452
- let {
10453
- availableQuarters,
10454
- // ["Q1-2024"]
10455
- label,
10456
- onChange,
10457
- borderRadius,
10458
- required,
10459
- width,
10460
- height,
10461
- placeholder,
10462
- disabled,
10463
- borderColor,
10464
- borderColorFocus,
10465
- textColor,
10466
- selectedValue,
10467
- startYear
10468
- } = _ref;
10548
+ const QuarterPicker = ({
10549
+ availableQuarters,
10550
+ // ["Q1-2024"]
10551
+ label,
10552
+ onChange,
10553
+ borderRadius,
10554
+ required,
10555
+ width,
10556
+ height,
10557
+ placeholder,
10558
+ disabled,
10559
+ borderColor,
10560
+ borderColorFocus,
10561
+ textColor,
10562
+ selectedValue,
10563
+ startYear
10564
+ }) => {
10469
10565
  const [isFocused, setIsFocused] = useState(false);
10470
10566
  const [isOpen, setIsOpen] = useState(false);
10471
10567
  const [value, setValue] = useState('');
@@ -10907,23 +11003,22 @@ const MonthPopupPicker = ({
10907
11003
  };
10908
11004
 
10909
11005
  /* eslint-disable import/no-extraneous-dependencies */
10910
- const MonthPicker = _ref => {
10911
- let {
10912
- availableMonths,
10913
- label,
10914
- onChange,
10915
- borderRadius,
10916
- required,
10917
- width,
10918
- height,
10919
- placeholder,
10920
- disabled,
10921
- borderColor,
10922
- borderColorFocus,
10923
- textColor,
10924
- selectedValue,
10925
- startYear
10926
- } = _ref;
11006
+ const MonthPicker = ({
11007
+ availableMonths,
11008
+ label,
11009
+ onChange,
11010
+ borderRadius,
11011
+ required,
11012
+ width,
11013
+ height,
11014
+ placeholder,
11015
+ disabled,
11016
+ borderColor,
11017
+ borderColorFocus,
11018
+ textColor,
11019
+ selectedValue,
11020
+ startYear
11021
+ }) => {
10927
11022
  const [isFocused, setIsFocused] = useState(false);
10928
11023
  const [isOpen, setIsOpen] = useState(false);
10929
11024
  const [value, setValue] = useState('');
@@ -24034,22 +24129,21 @@ const DeleteIcon = styled.div`
24034
24129
  position: absolute;
24035
24130
  `;
24036
24131
 
24037
- const QuickFilterDropdownSingle = _ref => {
24038
- let {
24039
- label,
24040
- hoverColor,
24041
- options,
24042
- selectedValue,
24043
- placeHolder,
24044
- onChange,
24045
- disabled,
24046
- width,
24047
- error,
24048
- errorMessage,
24049
- xIconShow,
24050
- labelColor,
24051
- showLabelOnTop
24052
- } = _ref;
24132
+ const QuickFilterDropdownSingle = ({
24133
+ label,
24134
+ hoverColor,
24135
+ options,
24136
+ selectedValue,
24137
+ placeHolder,
24138
+ onChange,
24139
+ disabled,
24140
+ width,
24141
+ error,
24142
+ errorMessage,
24143
+ xIconShow,
24144
+ labelColor,
24145
+ showLabelOnTop
24146
+ }) => {
24053
24147
  const [isFocused, setIsFocused] = useState(false);
24054
24148
  const [showOptions, setShowOptions] = useState(false);
24055
24149
  const [inputValue, setInputValue] = useState("");
@@ -24446,24 +24540,23 @@ const IconContainer$2 = styled.div`
24446
24540
  cursor: pointer;
24447
24541
  `;
24448
24542
 
24449
- const QuickFilterDropdownMultiSelection = _ref => {
24450
- let {
24451
- label,
24452
- labelEmptyValue,
24453
- options,
24454
- selectedValue,
24455
- placeHolder,
24456
- onChange,
24457
- required,
24458
- disabled,
24459
- width,
24460
- error,
24461
- errorMessage,
24462
- labelColor,
24463
- xIconShow,
24464
- checkBoxColor,
24465
- showLabelOnTop
24466
- } = _ref;
24543
+ const QuickFilterDropdownMultiSelection = ({
24544
+ label,
24545
+ labelEmptyValue,
24546
+ options,
24547
+ selectedValue,
24548
+ placeHolder,
24549
+ onChange,
24550
+ required,
24551
+ disabled,
24552
+ width,
24553
+ error,
24554
+ errorMessage,
24555
+ labelColor,
24556
+ xIconShow,
24557
+ checkBoxColor,
24558
+ showLabelOnTop
24559
+ }) => {
24467
24560
  const [isFocused, setIsFocused] = useState(false);
24468
24561
  const [showOptions, setShowOptions] = useState(false);
24469
24562
  const [inputValue, setInputValue] = useState('');
@@ -35303,18 +35396,19 @@ const MainContainer = styled.div`
35303
35396
  display: flex;
35304
35397
  flex-direction: column;
35305
35398
  align-content: center;
35306
- justify-content: center;
35399
+ justify-content: flex-start;
35307
35400
  align-items: flex-start;
35308
- width: ${props => props.width || '300px'};
35401
+ width: ${props => props.width || '300px'};
35402
+ height: ${props => props.height || '45px'};
35309
35403
  font-family: "Poppins", sans-serif;
35310
35404
  font-weight: 400;
35311
35405
  font-size: 14px;
35312
35406
  border-radius: ${props => props.size === 'small' ? '8px' : '12px'};
35313
35407
  padding: 0;
35314
35408
  cursor: ${props => props.disabled ? 'not-allowed' : 'default'};
35409
+ min-height: ${props => props.multiline ? '80px' : 'auto'};
35315
35410
  `;
35316
35411
  const Label$3 = styled.label`
35317
-
35318
35412
  font-size: ${props => props.isFocused || props.hasValue ? '14px' : '14px'};
35319
35413
  font-weight: 400;
35320
35414
  padding-inline-end: 5px;
@@ -35324,8 +35418,18 @@ const Label$3 = styled.label`
35324
35418
  color: ${props => props.error ? 'red' : props.disabled ? '#D0D0D0' : props.labelColor};
35325
35419
  background-color: ${props => props.disabled && props.isDarkerBackground ? '#F2F2F2' : '#fff'};
35326
35420
  position: absolute;
35327
- top: ${props => props.isFocused || props.hasValue ? '0px' : props.size === 'medium' ? '27px' : '17px'};
35328
- left: ${props => props.isFocused || props.hasValue ? '23px' : props.leftIcon && props.leftIcon !== 'none' ? '42px' : '16px'};
35421
+ top: ${props => {
35422
+ if (props.multiline) {
35423
+ return props.isFocused || props.hasValue ? '0px' : '20px';
35424
+ }
35425
+ return props.isFocused || props.hasValue ? '0px' : props.size === 'medium' ? '27px' : '17px';
35426
+ }};
35427
+ left: ${props => {
35428
+ if (props.multiline) {
35429
+ return props.isFocused || props.hasValue ? '23px' : '16px';
35430
+ }
35431
+ return props.isFocused || props.hasValue ? '23px' : props.leftIcon && props.leftIcon !== 'none' ? '42px' : '16px';
35432
+ }};
35329
35433
  font-family: Poppins;
35330
35434
  transform: translateY(-50%);
35331
35435
  transition: top 0.3s ease, font-size 0.3s ease, color 0.3s ease;
@@ -35342,17 +35446,17 @@ const InputContainer = styled.div`
35342
35446
  display: flex;
35343
35447
  flex-wrap: nowrap;
35344
35448
  justify-content: flex-start;
35345
- align-content: center;
35449
+ align-content: ${props => props.multiline ? 'flex-start' : 'center'};
35346
35450
  white-space: pre-wrap;
35347
- align-items: center;
35451
+ align-items: ${props => props.multiline ? 'flex-start' : 'center'};
35348
35452
  overflow: hidden;
35349
- padding: 0 16px;
35350
- gap: 14px;
35453
+ padding: ${props => props.multiline ? '16px' : '0 16px'};
35454
+ gap: ${props => props.multiline ? '0' : '14px'};
35351
35455
  width: 100%;
35352
35456
  height: 100%;
35353
35457
  box-sizing: border-box;
35354
35458
  background-color: ${props => props.disabled && props.isDarkerBackground ? '#F2F2F2' : '#fff'};
35355
- border: 1px solid ${props => props.disabled ? '#D0D0D0' : props.error ? 'red' : '#B1B1B1'};
35459
+ border: 1px solid ${props => props.disabled ? '#D0D0D0' : props.error ? 'red' : '#B1B1B1'};
35356
35460
  font-family: "Poppins", sans-serif;
35357
35461
  font-weight: 400;
35358
35462
  font-size: 14px;
@@ -35364,10 +35468,9 @@ const InputContainer = styled.div`
35364
35468
  border: 1px solid ${props => props.disabled ? '#D0D0D0' : props.error ? 'red' : props.labelColor || '#212121'};
35365
35469
  }
35366
35470
 
35367
- &:focus {
35471
+ &:focus-within {
35368
35472
  border: 1px solid ${props => props.disabled ? '#D0D0D0' : props.error ? 'red' : props.labelColor || '#212121'};
35369
35473
  }
35370
-
35371
35474
  `;
35372
35475
  const InputSubContainer = styled.div`
35373
35476
  display: flex;
@@ -35375,13 +35478,16 @@ const InputSubContainer = styled.div`
35375
35478
  flex-wrap: nowrap;
35376
35479
  align-content: center;
35377
35480
  align-items: flex-start;
35378
- justify-content: center;
35481
+ justify-content: ${props => props.multiline ? 'flex-start' : 'center'};
35379
35482
  white-space: pre-wrap;
35380
35483
  overflow: hidden;
35381
- padding: 5px 0;
35484
+ padding: ${props => props.multiline ? '5px 0 0 0' : '5px 0'};
35382
35485
  width: 100%;
35383
- height: 100%;
35384
- min-height: ${props => props.size === 'medium' ? '52px' : '32px'};
35486
+ height: ${props => props.height || '45px'};
35487
+ min-height: ${props => {
35488
+ if (props.multiline) return 'auto';
35489
+ return props.size === 'medium' ? '52px' : '32px';
35490
+ }};
35385
35491
  box-sizing: border-box;
35386
35492
  background-color: ${props => props.disabled && props.isDarkerBackground ? '#F2F2F2' : '#fff'};
35387
35493
  border-radius: ${props => props.size === 'small' ? '8px' : '12px'};
@@ -35391,14 +35497,59 @@ const InputSubContainer = styled.div`
35391
35497
  `;
35392
35498
  const StyledInput = styled.input`
35393
35499
  width: calc(100% - 10px);
35394
- height: 20px;
35500
+ height: ${props => props.height || '20px'};
35395
35501
  font-weight: 400;
35396
35502
  font-size: 14px;
35397
35503
  outline: none;
35398
35504
  color: ${props => props.disabled ? '#D0D0D0' : '#212121'};
35399
35505
  background-color: ${props => props.disabled && props.isDarkerBackground ? '#F2F2F2' : '#fff'};
35400
35506
  border: none;
35401
- cursor: ${props => props.disabled ? 'not-allowed' : 'pointer'};
35507
+ cursor: ${props => props.disabled ? 'not-allowed' : 'text'};
35508
+ font-family: "Poppins", sans-serif;
35509
+ `;
35510
+ const StyledTextarea = styled.textarea`
35511
+ width: 100%;
35512
+ min-height: 60px;
35513
+ font-weight: 400;
35514
+ font-size: 14px;
35515
+ outline: none;
35516
+ color: ${props => props.disabled ? '#D0D0D0' : '#212121'};
35517
+ background-color: ${props => props.disabled && props.isDarkerBackground ? '#F2F2F2' : '#fff'};
35518
+ border: none;
35519
+ cursor: ${props => props.disabled ? 'not-allowed' : 'text'};
35520
+ font-family: "Poppins", sans-serif;
35521
+ resize: vertical;
35522
+ line-height: 1.4;
35523
+ padding: 0;
35524
+ margin-top: 10px;
35525
+
35526
+ &::placeholder {
35527
+ color: #999;
35528
+ font-style: italic;
35529
+ }
35530
+
35531
+ &:focus {
35532
+ outline: none;
35533
+ }
35534
+
35535
+ /* Remove default textarea styling */
35536
+ &::-webkit-scrollbar {
35537
+ width: 6px;
35538
+ }
35539
+
35540
+ &::-webkit-scrollbar-track {
35541
+ background: #f1f1f1;
35542
+ border-radius: 3px;
35543
+ }
35544
+
35545
+ &::-webkit-scrollbar-thumb {
35546
+ background: #c1c1c1;
35547
+ border-radius: 3px;
35548
+ }
35549
+
35550
+ &::-webkit-scrollbar-thumb:hover {
35551
+ background: #a8a8a8;
35552
+ }
35402
35553
  `;
35403
35554
  const ErrorMessage = styled.div`
35404
35555
  font-size: 12px;
@@ -35431,6 +35582,7 @@ const Input$2 = _ref => {
35431
35582
  disabled,
35432
35583
  isDarkerBackground = false,
35433
35584
  width,
35585
+ height = '50px',
35434
35586
  error,
35435
35587
  errorMessage,
35436
35588
  labelColor,
@@ -35438,7 +35590,12 @@ const Input$2 = _ref => {
35438
35590
  rightIcon,
35439
35591
  password,
35440
35592
  leftIconOnClick,
35441
- rightIconOnClick
35593
+ rightIconOnClick,
35594
+ multiline = false,
35595
+ // New prop to enable textarea mode
35596
+ rows = 3,
35597
+ // New prop for textarea rows
35598
+ maxLength // New prop for character limit
35442
35599
  } = _ref;
35443
35600
  const [isFocused, setIsFocused] = useState(false);
35444
35601
  const [inputValue, setInputValue] = useState('');
@@ -35512,12 +35669,24 @@ const Input$2 = _ref => {
35512
35669
  }
35513
35670
  return getIcon('eye', '14px', '14px', error ? 'red' : labelColor, disabled, 'pointer', toggleShowPassword);
35514
35671
  };
35672
+
35673
+ // Calculate dynamic height for multiline inputs
35674
+ const calculateHeight = () => {
35675
+ if (!multiline) return height;
35676
+ const baseHeight = size === 'small' ? 32 : 52;
35677
+ const lineHeight = 20;
35678
+ const padding = 10;
35679
+ return `${baseHeight + (rows - 1) * lineHeight + padding}px`;
35680
+ };
35681
+ const InputElement = multiline ? StyledTextarea : StyledInput;
35515
35682
  return /*#__PURE__*/React$1.createElement(MainContainer, {
35516
35683
  className: "MainContainer",
35517
35684
  width: width,
35685
+ height: calculateHeight(),
35518
35686
  size: size,
35519
35687
  disabled: disabled,
35520
- isDarkerBackground: isDarkerBackground
35688
+ isDarkerBackground: isDarkerBackground,
35689
+ multiline: multiline
35521
35690
  }, /*#__PURE__*/React$1.createElement(InputContainer, {
35522
35691
  className: "InputContainer",
35523
35692
  labelColor: labelColor,
@@ -35525,8 +35694,9 @@ const Input$2 = _ref => {
35525
35694
  isDarkerBackground: isDarkerBackground,
35526
35695
  error: error,
35527
35696
  isFocused: isFocused,
35528
- size: size
35529
- }, getLeftIcon(), /*#__PURE__*/React$1.createElement(InputSubContainer, {
35697
+ size: size,
35698
+ multiline: multiline
35699
+ }, !multiline && getLeftIcon(), /*#__PURE__*/React$1.createElement(InputSubContainer, {
35530
35700
  className: "InputSubContainer",
35531
35701
  ref: containerRef,
35532
35702
  labelColor: labelColor,
@@ -35534,26 +35704,29 @@ const Input$2 = _ref => {
35534
35704
  isDarkerBackground: isDarkerBackground,
35535
35705
  error: error,
35536
35706
  onClick: handleLabelClick,
35537
- size: size
35707
+ height: calculateHeight(),
35708
+ size: size,
35709
+ multiline: multiline
35538
35710
  }, /*#__PURE__*/React$1.createElement(Label$3, {
35539
35711
  className: "Label",
35540
35712
  isFocused: isFocused,
35541
35713
  labelColor: labelColor,
35542
35714
  hasValue: inputValue,
35543
- leftIcon: leftIcon,
35715
+ leftIcon: !multiline ? leftIcon : 'none',
35544
35716
  disabled: disabled,
35545
35717
  isDarkerBackground: isDarkerBackground,
35546
35718
  error: error,
35547
35719
  errorMessage: errorMessage,
35548
35720
  onClick: handleLabelClick,
35549
- size: size
35721
+ size: size,
35722
+ multiline: multiline
35550
35723
  }, inputValue ? label : labelEmptyValue || label, required && /*#__PURE__*/React$1.createElement("span", {
35551
35724
  style: {
35552
35725
  color: disabled ? '#D0D0D0' : 'red',
35553
35726
  height: '16px'
35554
35727
  }
35555
- }, "*")), /*#__PURE__*/React$1.createElement(StyledInput, {
35556
- className: "StyledInput",
35728
+ }, "*")), /*#__PURE__*/React$1.createElement(InputElement, {
35729
+ className: multiline ? "StyledTextarea" : "StyledInput",
35557
35730
  ref: inputRef,
35558
35731
  type: password && !showPassword ? 'password' : 'text',
35559
35732
  value: inputValue,
@@ -35565,11 +35738,22 @@ const Input$2 = _ref => {
35565
35738
  isDarkerBackground: isDarkerBackground,
35566
35739
  placeholder: isFocused ? placeHolder : '',
35567
35740
  error: error,
35568
- isFocused: isFocused
35569
- })), password ? getPasswordIcon() : getRightIcon()), error && errorMessage?.length > 0 && /*#__PURE__*/React$1.createElement(ErrorMessage, {
35741
+ height: calculateHeight(),
35742
+ isFocused: isFocused,
35743
+ rows: multiline ? rows : undefined,
35744
+ maxLength: maxLength,
35745
+ multiline: multiline
35746
+ })), !multiline && (password ? getPasswordIcon() : getRightIcon())), error && errorMessage?.length > 0 && /*#__PURE__*/React$1.createElement(ErrorMessage, {
35570
35747
  className: "ErrorMessage",
35571
35748
  width: width
35572
- }, errorMessage));
35749
+ }, errorMessage), multiline && maxLength && /*#__PURE__*/React$1.createElement("div", {
35750
+ style: {
35751
+ fontSize: '12px',
35752
+ color: inputValue.length > maxLength * 0.9 ? 'orange' : '#666',
35753
+ textAlign: 'right',
35754
+ marginTop: '4px'
35755
+ }
35756
+ }, inputValue.length, "/", maxLength));
35573
35757
  };
35574
35758
  Input$2.propTypes = {
35575
35759
  placeHolder: PropTypes.string,
@@ -35589,7 +35773,10 @@ Input$2.propTypes = {
35589
35773
  onBlur: PropTypes.func,
35590
35774
  leftIcon: PropTypes.string,
35591
35775
  rightIcon: PropTypes.string,
35592
- password: PropTypes.bool
35776
+ password: PropTypes.bool,
35777
+ multiline: PropTypes.bool,
35778
+ rows: PropTypes.number,
35779
+ maxLength: PropTypes.number
35593
35780
  };
35594
35781
  Input$2.defaultProps = {
35595
35782
  placeHolder: 'Type...',
@@ -35608,7 +35795,10 @@ Input$2.defaultProps = {
35608
35795
  leftIconOnClick: () => {},
35609
35796
  rightIconOnClick: () => {},
35610
35797
  onBlur: () => {},
35611
- password: false
35798
+ password: false,
35799
+ multiline: false,
35800
+ rows: 3,
35801
+ maxLength: undefined
35612
35802
  };
35613
35803
 
35614
35804
  const ToggleSwitchLabel = styled.label`
@@ -35616,12 +35806,9 @@ const ToggleSwitchLabel = styled.label`
35616
35806
  position: relative;
35617
35807
  cursor: pointer;
35618
35808
  user-select: none;
35619
- opacity: ${_ref => {
35620
- let {
35621
- disabled
35622
- } = _ref;
35623
- return disabled ? 0.5 : 1;
35624
- }};
35809
+ opacity: ${({
35810
+ disabled
35811
+ }) => disabled ? 0.5 : 1};
35625
35812
  `;
35626
35813
  const ToggleInput = styled.input`
35627
35814
  display: none;
@@ -35629,19 +35816,15 @@ const ToggleInput = styled.input`
35629
35816
  const ToggleSlider = styled.span`
35630
35817
  display: block;
35631
35818
  position: relative;
35632
- background: ${_ref2 => {
35633
- let {
35634
- checked,
35635
- disabled
35636
- } = _ref2;
35637
- return checked ? disabled ? "#7bb1b0" : "#006d6a" : "#cfd8dc";
35638
- }};
35819
+ background: ${({
35820
+ checked,
35821
+ disabled
35822
+ }) => checked ? disabled ? "#7bb1b0" : "#006d6a" : "#cfd8dc"};
35639
35823
  border-radius: 999px;
35640
35824
  transition: background 0.2s;
35641
- ${_ref3 => {
35642
- let {
35643
- size
35644
- } = _ref3;
35825
+ ${({
35826
+ size
35827
+ }) => {
35645
35828
  switch (size) {
35646
35829
  case "s":
35647
35830
  return css`width: 40px; height: 20px;`;
@@ -35660,10 +35843,9 @@ const ToggleSlider = styled.span`
35660
35843
  background: #fff;
35661
35844
  border-radius: 50%;
35662
35845
  transition: left 0.2s, width 0.2s, height 0.2s;
35663
- ${_ref4 => {
35664
- let {
35665
- size
35666
- } = _ref4;
35846
+ ${({
35847
+ size
35848
+ }) => {
35667
35849
  switch (size) {
35668
35850
  case "s":
35669
35851
  return css`width: 14px; height: 14px;`;
@@ -35673,11 +35855,10 @@ const ToggleSlider = styled.span`
35673
35855
  return css`width: 20px; height: 20px;`;
35674
35856
  }
35675
35857
  }}
35676
- left: ${_ref5 => {
35677
- let {
35678
- checked,
35679
- size
35680
- } = _ref5;
35858
+ left: ${({
35859
+ checked,
35860
+ size
35861
+ }) => {
35681
35862
  if (!checked) return "3px";
35682
35863
  switch (size) {
35683
35864
  case "s":
@@ -35691,9 +35872,9 @@ const ToggleSlider = styled.span`
35691
35872
  }
35692
35873
  `;
35693
35874
 
35694
- /**
35695
- * ToggleSwitch component for on/off states.
35696
- * Supports small/large sizes and disabled state.
35875
+ /**
35876
+ * ToggleSwitch component for on/off states.
35877
+ * Supports small/large sizes and disabled state.
35697
35878
  */
35698
35879
  function ToggleSwitch(_ref) {
35699
35880
  let {