@xaypay/tui 0.2.20 → 0.2.22

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
@@ -595,6 +595,7 @@ var packageResult = {
595
595
  shadowHover: `0 0 0 2px ${presetColors.dark}` // like border
596
596
  },
597
597
  colors: {
598
+ placeholder: 'gray',
598
599
  background: 'white',
599
600
  backgroundDisable: presetColors.secondary
600
601
  },
@@ -1048,6 +1049,15 @@ var packageResult = {
1048
1049
  color: '#4A4A4D',
1049
1050
  font: {
1050
1051
  ...fontObject
1052
+ },
1053
+ tooltip: {
1054
+ color: '#fff',
1055
+ padding: '12px',
1056
+ borderRadius: '8px',
1057
+ font: {
1058
+ ...fontObject
1059
+ },
1060
+ backgroundColor: '#000'
1051
1061
  }
1052
1062
  },
1053
1063
  font: {
@@ -1225,6 +1235,8 @@ var packageResult = {
1225
1235
  TABLE: {
1226
1236
  className: '',
1227
1237
  textAlign: 'center',
1238
+ border: '1px solid',
1239
+ borderColor: 'transparent',
1228
1240
  column: {
1229
1241
  maxWidth: '',
1230
1242
  minWidth: ''
@@ -1429,7 +1441,7 @@ async function getPProps() {
1429
1441
  const projectPath = `../../../../tui.config.js`;
1430
1442
  async function loadComponent(componentName) {
1431
1443
  try {
1432
- const Component = await (function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })( /* @vite-ignore */componentName);
1444
+ const Component = await (function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(/* @vite-ignore */componentName);
1433
1445
  return Component.default;
1434
1446
  } catch (err) {
1435
1447
  console.error(`Error loading component: ${componentName}`);
@@ -1738,8 +1750,8 @@ function styleInject(css, ref) {
1738
1750
  }
1739
1751
  }
1740
1752
 
1741
- var css_248z$d = ".file-module_small-file-component__nlpcW>svg{max-height:77%!important}";
1742
- var styles$b = {"small-file-component":"file-module_small-file-component__nlpcW"};
1753
+ var css_248z$d = ".file-module_small-file-component__nlpcW>svg{max-height:77%!important}.file-module_file-label__uscgT{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-module_tooltip__FjCUU{background-color:#333;border-radius:4px;color:#fff;font-size:14px;pointer-events:none;position:fixed;visibility:hidden;white-space:nowrap;z-index:1000}";
1754
+ var styles$b = {"small-file-component":"file-module_small-file-component__nlpcW","file-label":"file-module_file-label__uscgT","tooltip":"file-module_tooltip__FjCUU"};
1743
1755
  styleInject(css_248z$d);
1744
1756
 
1745
1757
  // eslint-disable-next-line react/display-name
@@ -1772,6 +1784,14 @@ const File = /*#__PURE__*/React.forwardRef(({
1772
1784
  labelStyle,
1773
1785
  labelWeight,
1774
1786
  labelFamily,
1787
+ labelTooltipColor,
1788
+ labelTooltipPadding,
1789
+ labelTooltipFontSize,
1790
+ labelTooltipFontStyle,
1791
+ labelTooltipFontFamily,
1792
+ labelTooltipFontWeight,
1793
+ labelTooltipBorderRadius,
1794
+ labelTooltipBackgroundColor,
1775
1795
  removeFile,
1776
1796
  labelColor,
1777
1797
  errorColor,
@@ -1781,6 +1801,8 @@ const File = /*#__PURE__*/React.forwardRef(({
1781
1801
  uploadColor,
1782
1802
  defaultData,
1783
1803
  formatError,
1804
+ errorIcon,
1805
+ errorIconShow,
1784
1806
  errorMessage,
1785
1807
  fileSizeText,
1786
1808
  maxSizeError,
@@ -1837,6 +1859,7 @@ const File = /*#__PURE__*/React.forwardRef(({
1837
1859
  listItemBackgroundColor,
1838
1860
  listItemBackgroundErrorColor,
1839
1861
  maxCHoosenLengthErrorHideTime,
1862
+ textAlignLeftInSmallComponent,
1840
1863
  showPreviewIconInSmallComponent,
1841
1864
  maxSize = 10,
1842
1865
  preview = true,
@@ -1844,12 +1867,16 @@ const File = /*#__PURE__*/React.forwardRef(({
1844
1867
  fileExtensions = ['jpg', 'jpeg', 'png', 'pdf', 'heic']
1845
1868
  }, ref) => {
1846
1869
  const inpRef = React.useRef(null);
1870
+ const labelRef = React.useRef(null);
1871
+ const parentlRef = React.useRef(null);
1847
1872
  const memoizedItems = React.useMemo(() => filesArray, [filesArray]);
1848
1873
  const [error, setError] = React.useState('');
1849
1874
  const [isHover, setIsHover] = React.useState(false);
1875
+ const [removeID, setRemoveID] = React.useState('');
1850
1876
  const [classProps, setClassProps] = React.useState({});
1851
1877
  const [singleFile, setSingleFile] = React.useState(null);
1852
1878
  const [configStyles, setConfigStyles] = React.useState({});
1879
+ const [tooltipElem, setTooltipElem] = React.useState(null);
1853
1880
  const [choosenFileCount, setChoosenFileCount] = React.useState(0);
1854
1881
  const [image, setImage] = React.useState(!multiple ? defaultData ? defaultData.type !== 'application/pdf' ? defaultData.url.startsWith('data:image/heif') || defaultData.url.startsWith('data:image/heic') || defaultData.url.startsWith('data:application/octet-stream') ? 'heic' : defaultData.url : 'pdf' : null : null);
1855
1882
  const handleCheckHeicFormat = async file => {
@@ -2080,14 +2107,10 @@ const File = /*#__PURE__*/React.forwardRef(({
2080
2107
  }
2081
2108
  };
2082
2109
  const handleClick = () => {
2083
- inpRef.current.files = null;
2084
- inpRef.current.value = null;
2085
- if (multiple) {
2110
+ if (!image && !singleFile) {
2111
+ inpRef.current.files = null;
2112
+ inpRef.current.value = null;
2086
2113
  inpRef.current.click();
2087
- } else {
2088
- if (!image) {
2089
- inpRef.current.click();
2090
- }
2091
2114
  }
2092
2115
  };
2093
2116
  const handleDrop = e => {
@@ -2114,6 +2137,79 @@ const File = /*#__PURE__*/React.forwardRef(({
2114
2137
  const handleStopPropagation = e => {
2115
2138
  e.stopPropagation();
2116
2139
  };
2140
+ const getRenderedTextWidth = element => {
2141
+ const clone = element.cloneNode(true);
2142
+ clone.style.width = 'fit-content';
2143
+ document.body.appendChild(clone);
2144
+ const width = clone.offsetWidth;
2145
+ document.body.removeChild(clone);
2146
+ return width;
2147
+ };
2148
+ const handleLabelMouseEnter = event => {
2149
+ event.preventDefault();
2150
+ setRemoveID(() => v4());
2151
+ if (labelRef.current) {
2152
+ const parentElem = parentlRef.current.getBoundingClientRect();
2153
+ const rect = labelRef.current.getBoundingClientRect();
2154
+ const top = rect.top;
2155
+ const left = rect.left;
2156
+ const height = rect.height;
2157
+ const elementWidth = rect.width;
2158
+ const x = event.clientX - rect.left;
2159
+ const parentWidth = parentElem.width;
2160
+ const textWidth = getRenderedTextWidth(labelRef.current);
2161
+ if (textWidth > Math.ceil(elementWidth)) {
2162
+ const newTooltipElem = document.createElement('div');
2163
+ newTooltipElem.id = `fake_id_for_remove_dom${removeID}`;
2164
+ const newTootltipTextElem = document.createElement('p');
2165
+ const newTooltipChildElem = document.createElement('div');
2166
+ const newTooltipDecorElem = document.createElement('div');
2167
+ newTooltipElem.style.position = 'fixed';
2168
+ newTooltipElem.style.left = left + 'px';
2169
+ newTooltipElem.style.paddingTop = '20px';
2170
+ newTooltipElem.style.height = 'fit-content';
2171
+ newTooltipElem.style.boxSizing = 'border-box';
2172
+ newTooltipElem.style.top = top + height + 'px';
2173
+ newTooltipElem.style.width = parentWidth + 'px';
2174
+ newTooltipChildElem.style.width = '100%';
2175
+ newTooltipChildElem.style.position = 'relative';
2176
+ newTooltipChildElem.style.height = 'fit-content';
2177
+ newTooltipChildElem.style.boxSizing = 'border-box';
2178
+ newTooltipChildElem.style.padding = labelTooltipPadding ?? configStyles.FILE.label.tooltip.padding;
2179
+ newTooltipChildElem.style.borderRadius = labelTooltipBorderRadius ?? configStyles.FILE.label.tooltip.borderRadius;
2180
+ newTooltipChildElem.style.backgroundColor = labelTooltipBackgroundColor ?? configStyles.FILE.label.tooltip.backgroundColor;
2181
+ newTooltipDecorElem.style.zIndex = -1;
2182
+ newTooltipDecorElem.style.top = '-8px';
2183
+ newTooltipDecorElem.style.width = '18px';
2184
+ newTooltipDecorElem.style.height = '18px';
2185
+ newTooltipDecorElem.style.rotate = '45deg';
2186
+ newTooltipDecorElem.style.position = 'absolute';
2187
+ newTooltipDecorElem.style.left = x > elementWidth / 2 ? 'calc(100% - 40px)' : '23px';
2188
+ newTooltipDecorElem.style.backgroundColor = labelTooltipBackgroundColor ?? configStyles.FILE.label.tooltip.backgroundColor;
2189
+ newTootltipTextElem.innerText = label;
2190
+ newTootltipTextElem.style.color = labelTooltipColor ?? configStyles.FILE.label.tooltip.color;
2191
+ newTootltipTextElem.style.fontSize = labelTooltipFontSize ?? configStyles.FILE.label.tooltip.font.size;
2192
+ newTootltipTextElem.style.fontStyle = labelTooltipFontStyle ?? configStyles.FILE.label.tooltip.font.style;
2193
+ newTootltipTextElem.style.fontFamily = labelTooltipFontFamily ?? configStyles.FILE.label.tooltip.font.family;
2194
+ newTootltipTextElem.style.fontWeight = labelTooltipFontWeight ?? configStyles.FILE.label.tooltip.font.weight;
2195
+ document.body.appendChild(newTooltipElem);
2196
+ newTooltipElem.appendChild(newTooltipChildElem);
2197
+ newTooltipChildElem.appendChild(newTooltipDecorElem);
2198
+ newTooltipChildElem.appendChild(newTootltipTextElem);
2199
+ setTooltipElem(() => newTooltipElem);
2200
+ }
2201
+ }
2202
+ };
2203
+ const handleLabelMouseLeave = () => {
2204
+ const removableElem = document.getElementById(`fake_id_for_remove_dom${removeID}`);
2205
+ if (removableElem) {
2206
+ document.body.removeChild(removableElem);
2207
+ }
2208
+ if (tooltipElem) {
2209
+ document.body.removeChild(tooltipElem);
2210
+ }
2211
+ setRemoveID(() => '');
2212
+ };
2117
2213
  React.useImperativeHandle(ref, () => ({
2118
2214
  handleReset() {
2119
2215
  setError('');
@@ -2180,8 +2276,14 @@ const File = /*#__PURE__*/React.forwardRef(({
2180
2276
  }, error => {
2181
2277
  console.error(error);
2182
2278
  });
2279
+ return () => {
2280
+ if (tooltipElem) {
2281
+ document.body.removeChild(tooltipElem);
2282
+ }
2283
+ };
2183
2284
  }, []);
2184
2285
  return configStyles.FILE && /*#__PURE__*/React__default["default"].createElement("div", {
2286
+ ref: parentlRef,
2185
2287
  style: {
2186
2288
  width: '100%',
2187
2289
  maxWidth: maxWidth ?? configStyles.FILE.maxWidth
@@ -2194,15 +2296,28 @@ const File = /*#__PURE__*/React.forwardRef(({
2194
2296
  alignItems: 'center',
2195
2297
  justifyContent: label ? 'space-between' : 'flex-end'
2196
2298
  }
2197
- }, label && /*#__PURE__*/React__default["default"].createElement("label", {
2299
+ }, label && /*#__PURE__*/React__default["default"].createElement("div", {
2198
2300
  style: {
2301
+ display: 'flex',
2302
+ maxWidth: '100%',
2303
+ width: 'fit-content',
2304
+ columnGap: '4px',
2305
+ justifyContent: 'flex-start'
2306
+ }
2307
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
2308
+ ref: labelRef,
2309
+ className: styles$b['file-label'],
2310
+ style: {
2311
+ width: '100%',
2199
2312
  color: labelColor ?? configStyles.FILE.label.color,
2200
2313
  fontSize: labelSize ?? configStyles.FILE.label.font.size,
2201
2314
  fontStyle: labelStyle ?? configStyles.FILE.label.font.style,
2202
2315
  fontWeight: labelWeight ?? configStyles.FILE.label.font.weight,
2203
2316
  fontFamily: labelFamily ?? configStyles.FILE.label.font.family
2204
- }
2205
- }, label, required && /*#__PURE__*/React__default["default"].createElement("sup", null, iconRequired ? iconRequired : configStyles.FILE.icon.required ? configStyles.FILE.icon.required : /*#__PURE__*/React__default["default"].createElement(SvgRequired, null))), deleteComponent && /*#__PURE__*/React__default["default"].createElement("span", {
2317
+ },
2318
+ onMouseEnter: handleLabelMouseEnter,
2319
+ onMouseLeave: handleLabelMouseLeave
2320
+ }, label), required && /*#__PURE__*/React__default["default"].createElement("sup", null, iconRequired ? iconRequired : configStyles.FILE.icon.required ? configStyles.FILE.icon.required : /*#__PURE__*/React__default["default"].createElement(SvgRequired, null))), deleteComponent && /*#__PURE__*/React__default["default"].createElement("span", {
2206
2321
  style: {
2207
2322
  cursor: 'pointer'
2208
2323
  },
@@ -2287,7 +2402,7 @@ const File = /*#__PURE__*/React.forwardRef(({
2287
2402
  display: 'flex',
2288
2403
  alignItems: 'center',
2289
2404
  boxSizing: 'border-box',
2290
- justifyContent: 'space-between'
2405
+ justifyContent: textAlignLeftInSmallComponent ? 'flex-start' : 'space-between'
2291
2406
  }
2292
2407
  }, showPreviewIconInSmallComponent ? !image ? /*#__PURE__*/React__default["default"].createElement(Button, {
2293
2408
  contentWidth: true,
@@ -2349,14 +2464,16 @@ const File = /*#__PURE__*/React.forwardRef(({
2349
2464
  }, iconRemoveFile ? iconRemoveFile : configStyles.FILE.icon.removeFile ? configStyles.FILE.icon.removeFile : /*#__PURE__*/React__default["default"].createElement(SvgRemoveFile, null)))), error ? /*#__PURE__*/React__default["default"].createElement("span", {
2350
2465
  style: {
2351
2466
  marginTop: '6px',
2352
- display: 'inline-block',
2353
2467
  color: errorColor ?? configStyles.FILE.error.color,
2354
2468
  fontSize: errorSize ?? configStyles.FILE.error.font.size,
2355
2469
  fontStyle: errorStyle ?? configStyles.FILE.error.font.style,
2356
2470
  fontWeight: errorWeight ?? configStyles.FILE.error.font.weight,
2357
- fontFamily: errorFamily ?? configStyles.FILE.error.font.family
2471
+ fontFamily: errorFamily ?? configStyles.FILE.error.font.family,
2472
+ alignItems: 'center',
2473
+ columnGap: '5px',
2474
+ display: errorIconShow && (errorIcon || configStyles.FILE.error?.icon) ? 'inline-flex' : 'inline-block'
2358
2475
  }
2359
- }, error) : '', multiple && memoizedItems && memoizedItems.length > 0 && memoizedItems.map(item => {
2476
+ }, errorIconShow ? errorIcon ? errorIcon : configStyles.FILE.error?.icon ? configStyles.FILE.error?.icon : '' : '', error) : '', multiple && memoizedItems && memoizedItems.length > 0 && memoizedItems.map(item => {
2360
2477
  return /*#__PURE__*/React__default["default"].createElement(FileItem, {
2361
2478
  key: item.uuid,
2362
2479
  uuid: item.uuid,
@@ -2428,6 +2545,14 @@ File.propTypes = {
2428
2545
  labelWeight: PropTypes__default["default"].string,
2429
2546
  labelFamily: PropTypes__default["default"].string,
2430
2547
  labelColor: PropTypes__default["default"].string,
2548
+ labelTooltipColor: PropTypes__default["default"].string,
2549
+ labelTooltipPadding: PropTypes__default["default"].string,
2550
+ labelTooltipFontSize: PropTypes__default["default"].string,
2551
+ labelTooltipFontStyle: PropTypes__default["default"].string,
2552
+ labelTooltipFontFamily: PropTypes__default["default"].string,
2553
+ labelTooltipFontWeight: PropTypes__default["default"].string,
2554
+ labelTooltipBorderRadius: PropTypes__default["default"].string,
2555
+ labelTooltipBackgroundColor: PropTypes__default["default"].string,
2431
2556
  errorColor: PropTypes__default["default"].string,
2432
2557
  formatError: PropTypes__default["default"].string,
2433
2558
  putFileHere: PropTypes__default["default"].string,
@@ -2435,6 +2560,8 @@ File.propTypes = {
2435
2560
  defaultData: PropTypes__default["default"].object,
2436
2561
  componentId: PropTypes__default["default"].number,
2437
2562
  maxSizeError: PropTypes__default["default"].string,
2563
+ errorIcon: PropTypes__default["default"].element,
2564
+ errorIconShow: PropTypes__default["default"].bool,
2438
2565
  errorMessage: PropTypes__default["default"].string,
2439
2566
  fileSizeText: PropTypes__default["default"].string,
2440
2567
  noChoosenFile: PropTypes__default["default"].string,
@@ -2492,10 +2619,107 @@ File.propTypes = {
2492
2619
  listItemBackgroundErrorColor: PropTypes__default["default"].string,
2493
2620
  maxCHoosenLengthErrorHideTime: PropTypes__default["default"].number,
2494
2621
  filesArray: PropTypes__default["default"].arrayOf(PropTypes__default["default"].object),
2622
+ textAlignLeftInSmallComponent: PropTypes__default["default"].bool,
2495
2623
  showPreviewIconInSmallComponent: PropTypes__default["default"].bool,
2496
2624
  fileExtensions: PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)
2497
2625
  };
2498
2626
 
2627
+ const hasOwnerProperty = (object, property) => {
2628
+ return Object.prototype.hasOwnProperty.call(object, property);
2629
+ };
2630
+ const handleUtilsMouseEnterLeave = (e, behaviourStyle) => {
2631
+ if (typeof behaviourStyle !== 'object' || behaviourStyle === null || behaviourStyle === undefined) {
2632
+ alert('Please set a second param of handleUtilsMouseEnter function as valid object');
2633
+ return;
2634
+ }
2635
+ if (!hasOwnerProperty(e, 'target')) {
2636
+ alert('Please set a valid object like DOM event');
2637
+ return;
2638
+ }
2639
+ const existStyle = e.target.style;
2640
+ if (typeof existStyle !== 'object' || existStyle === null) {
2641
+ alert('Please set a valid style object in DOM event tergat');
2642
+ return;
2643
+ }
2644
+ for (const property in behaviourStyle) {
2645
+ if (existStyle[property]) {
2646
+ existStyle[property] = behaviourStyle[property];
2647
+ }
2648
+ }
2649
+ };
2650
+ const handleUtilsCheckTypeTel = (val, prevVal) => {
2651
+ const phoneNumberRegex = /^\d{0,8}$/;
2652
+ if (val.length > 7) {
2653
+ val = val.substr(0, 8);
2654
+ }
2655
+ if (!phoneNumberRegex.test(val)) {
2656
+ val = prevVal;
2657
+ }
2658
+ return val;
2659
+ };
2660
+ const handleUtilsCheckTypeNumber = (val, prevVal, maxLength, floatToFix, maxNumSize, withoutDot, innerMinNumSize, numberMaxLength, cardNumber) => {
2661
+ if (maxLength && maxLength > 0) {
2662
+ if (val.length > maxLength) {
2663
+ val = val.substr(0, maxLength);
2664
+ }
2665
+ } else {
2666
+ const regNum = floatToFix && floatToFix >= 0 ? /^\d+(\.|\․|\.|\,)?(\d+)?$/ : /^\d+$/;
2667
+ if (cardNumber) {
2668
+ if (val.length > 19 && !val.includes('.')) {
2669
+ val = val.substr(0, 19);
2670
+ }
2671
+ } else {
2672
+ if (val.length > 16 && !val.includes('.')) {
2673
+ val = val.substr(0, 16);
2674
+ }
2675
+ }
2676
+ if (numberMaxLength && numberMaxLength > 0 && !val.includes('.')) {
2677
+ val = val.substr(0, numberMaxLength);
2678
+ }
2679
+ const floatNumParts = typeof val === 'string' ? val.split(/\.|\․|\.|\,/) : val;
2680
+ const int = floatNumParts[0];
2681
+ const float = floatNumParts[1];
2682
+ if (floatToFix > 0) {
2683
+ if (float && float.length > 0) {
2684
+ let floatResult = '';
2685
+ [...float].map((item, index) => {
2686
+ if (index + 1 <= floatToFix) {
2687
+ floatResult += item;
2688
+ }
2689
+ });
2690
+ floatResult !== '' ? val = `${int}.${floatResult}` : val = `${int}`;
2691
+ }
2692
+ } else {
2693
+ if (floatNumParts && floatNumParts.length > 0 && floatToFix === 0) {
2694
+ val = `${int}`;
2695
+ }
2696
+ }
2697
+ if (!regNum.test(val)) {
2698
+ let newVal = typeof val === 'number' ? val.toString() : val;
2699
+ const newStr = newVal.replace(/[^0-9.]/g, '').replace(/^([^.]*\.|\․|\.|\,)(.*)$/, function (_, b, c) {
2700
+ return b + c.replace(/\.|\․|\.|\,/g, '');
2701
+ });
2702
+ val = newStr;
2703
+ }
2704
+ }
2705
+ if (withoutDot && !/^\d+$/.test(val)) {
2706
+ let newVal = typeof val === 'number' ? val.toString() : val;
2707
+ const newStr = newVal.replace(/[^0-9]/g, '').replace(/^([^.]*\.|\․|\.|\,)(.*)$/, function (_, b, c) {
2708
+ return b + c.replace(/\.|\․|\.|\,/g, '');
2709
+ });
2710
+ val = newStr;
2711
+ }
2712
+ return val;
2713
+ };
2714
+ const handleUtilsOpenInNewTab = url => {
2715
+ const imageLink = document.createElement('a');
2716
+ imageLink.href = url, imageLink.target = '_blank';
2717
+ imageLink.click();
2718
+ };
2719
+ const handleRemoveLeadingZeros = str => {
2720
+ return str.replace(/^0+(\d)/, '$1');
2721
+ };
2722
+
2499
2723
  const SvgCheckboxUnchecked = ({
2500
2724
  title,
2501
2725
  titleId,
@@ -2661,102 +2885,6 @@ SingleCheckbox.propTypes = {
2661
2885
  ignoreDisabledForChecked: PropTypes__default["default"].bool
2662
2886
  };
2663
2887
 
2664
- const hasOwnerProperty = (object, property) => {
2665
- return Object.prototype.hasOwnProperty.call(object, property);
2666
- };
2667
- const handleUtilsMouseEnterLeave = (e, behaviourStyle) => {
2668
- if (typeof behaviourStyle !== 'object' || behaviourStyle === null || behaviourStyle === undefined) {
2669
- alert('Please set a second param of handleUtilsMouseEnter function as valid object');
2670
- return;
2671
- }
2672
- if (!hasOwnerProperty(e, 'target')) {
2673
- alert('Please set a valid object like DOM event');
2674
- return;
2675
- }
2676
- const existStyle = e.target.style;
2677
- if (typeof existStyle !== 'object' || existStyle === null) {
2678
- alert('Please set a valid style object in DOM event tergat');
2679
- return;
2680
- }
2681
- for (const property in behaviourStyle) {
2682
- if (existStyle[property]) {
2683
- existStyle[property] = behaviourStyle[property];
2684
- }
2685
- }
2686
- };
2687
- const handleUtilsCheckTypeTel = (val, prevVal) => {
2688
- const phoneNumberRegex = /^\d{0,8}$/;
2689
- if (val.length > 7) {
2690
- val = val.substr(0, 8);
2691
- }
2692
- if (!phoneNumberRegex.test(val)) {
2693
- val = prevVal;
2694
- }
2695
- return val;
2696
- };
2697
- const handleUtilsCheckTypeNumber = (val, prevVal, maxLength, floatToFix, maxNumSize, withoutDot, innerMinNumSize, numberMaxLength, cardNumber) => {
2698
- if (maxLength && maxLength > 0) {
2699
- if (val.length > maxLength) {
2700
- val = val.substr(0, maxLength);
2701
- }
2702
- } else {
2703
- const regNum = floatToFix && floatToFix >= 0 ? /^\d+(\.|\․|\.|\,)?(\d+)?$/ : /^\d+$/;
2704
- if (cardNumber) {
2705
- if (val.length > 19 && !val.includes('.')) {
2706
- val = val.substr(0, 19);
2707
- }
2708
- } else {
2709
- if (val.length > 16 && !val.includes('.')) {
2710
- val = val.substr(0, 16);
2711
- }
2712
- }
2713
- if (numberMaxLength && numberMaxLength > 0 && !val.includes('.')) {
2714
- val = val.substr(0, numberMaxLength);
2715
- }
2716
- const floatNumParts = typeof val === 'string' ? val.split(/\.|\․|\.|\,/) : val;
2717
- const int = floatNumParts[0];
2718
- const float = floatNumParts[1];
2719
- if (floatToFix > 0) {
2720
- if (float && float.length > 0) {
2721
- let floatResult = '';
2722
- [...float].map((item, index) => {
2723
- if (index + 1 <= floatToFix) {
2724
- floatResult += item;
2725
- }
2726
- });
2727
- floatResult !== '' ? val = `${int}.${floatResult}` : val = `${int}`;
2728
- }
2729
- } else {
2730
- if (floatNumParts && floatNumParts.length > 0 && floatToFix === 0) {
2731
- val = `${int}`;
2732
- }
2733
- }
2734
- if (!regNum.test(val)) {
2735
- let newVal = typeof val === 'number' ? val.toString() : val;
2736
- const newStr = newVal.replace(/[^0-9.]/g, '').replace(/^([^.]*\.|\․|\.|\,)(.*)$/, function (_, b, c) {
2737
- return b + c.replace(/\.|\․|\.|\,/g, '');
2738
- });
2739
- val = newStr;
2740
- }
2741
- }
2742
- if (withoutDot && !/^\d+$/.test(val)) {
2743
- let newVal = typeof val === 'number' ? val.toString() : val;
2744
- const newStr = newVal.replace(/[^0-9]/g, '').replace(/^([^.]*\.|\․|\.|\,)(.*)$/, function (_, b, c) {
2745
- return b + c.replace(/\.|\․|\.|\,/g, '');
2746
- });
2747
- val = newStr;
2748
- }
2749
- return val;
2750
- };
2751
- const handleUtilsOpenInNewTab = url => {
2752
- const imageLink = document.createElement('a');
2753
- imageLink.href = url, imageLink.target = '_blank';
2754
- imageLink.click();
2755
- };
2756
- const handleRemoveLeadingZeros = str => {
2757
- return str.replace(/^0+(\d)/, '$1');
2758
- };
2759
-
2760
2888
  var css_248z$c = ".table-module_sorting-arrows__BaN-G:after{content:\"▲\";font-size:11px;position:absolute;right:0;top:calc(50% - 12px)}.table-module_sorting-arrows__BaN-G:before{bottom:calc(50% - 12px);content:\"▼\";font-size:11px;position:absolute;right:0}.table-module_td-span__XHo6k{display:inline-block;position:relative}.table-module_td-span__XHo6k>svg{left:0;position:absolute;top:0;z-index:-1}.table-module_list-text__kmKIq{align-items:center;cursor:pointer;display:flex;margin:0 0 8px;min-height:38px;white-space:wrap}.table-module_dots-option-item__jNOxO{box-sizing:border-box;cursor:pointer;display:flex;height:39px;margin-bottom:2px;padding:10px;position:relative;width:100%}.table-module_dots-option-item__jNOxO:after{background-color:#eee;border-radius:1px;-webkit-border-radius:1px;-moz-border-radius:1px;-ms-border-radius:1px;-o-border-radius:1px;content:\"\";height:2px;left:10px;position:absolute;top:calc(100% - 2px);width:calc(100% - 20px)}.table-module_dots-option-item__jNOxO:last-child:after{display:none}.table-module_no-tabel-data__6xp3N{align-items:center;display:flex;height:200px;justify-content:center;width:100%}";
2761
2889
  var styles$a = {"sorting-arrows":"table-module_sorting-arrows__BaN-G","td-span":"table-module_td-span__XHo6k","list-text":"table-module_list-text__kmKIq","dots-option-item":"table-module_dots-option-item__jNOxO","no-tabel-data":"table-module_no-tabel-data__6xp3N"};
2762
2890
  styleInject(css_248z$c);
@@ -2851,6 +2979,7 @@ const TD = ({
2851
2979
  tBodyFontFamily,
2852
2980
  tBodyFontWeight,
2853
2981
  handleCheckDots,
2982
+ collapseFullRow,
2854
2983
  openListFontSize,
2855
2984
  borderRightColor,
2856
2985
  openListFontStyle,
@@ -2865,6 +2994,11 @@ const TD = ({
2865
2994
  handleCheckArrowAction,
2866
2995
  handleOpenCloseRowSingleArrow
2867
2996
  }) => {
2997
+ const [actionHover, setActionHover] = React.useState({
2998
+ id: '',
2999
+ type: '',
3000
+ index: -1
3001
+ });
2868
3002
  const handleBodyAction = (e, data) => {
2869
3003
  const actionData = {
2870
3004
  index,
@@ -2904,6 +3038,24 @@ const TD = ({
2904
3038
  contentListInnerItem
2905
3039
  });
2906
3040
  };
3041
+ const handleMouseEnter = (item, index) => {
3042
+ setActionHover(() => {
3043
+ return {
3044
+ id: item.id,
3045
+ type: item.type,
3046
+ index
3047
+ };
3048
+ });
3049
+ };
3050
+ const handleMouseLeave = () => {
3051
+ setActionHover(() => {
3052
+ return {
3053
+ id: '',
3054
+ type: '',
3055
+ index: -1
3056
+ };
3057
+ });
3058
+ };
2907
3059
  return /*#__PURE__*/React__default["default"].createElement("td", {
2908
3060
  style: {
2909
3061
  width: 'auto',
@@ -2938,8 +3090,10 @@ const TD = ({
2938
3090
  type: newItem.type,
2939
3091
  className: styles$a['td-span'],
2940
3092
  key: `${newItem.id}_${newIndex}`,
2941
- onClick: e => handleCheckActions(e, newItem, 'type', newIndex)
2942
- }, newItem.content === 0 ? newItem.content.toString() : newItem.content ? newItem.content : '');
3093
+ onClick: e => handleCheckActions(e, newItem, 'type', newIndex),
3094
+ onMouseEnter: () => handleMouseEnter(newItem, newIndex),
3095
+ onMouseLeave: () => handleMouseLeave()
3096
+ }, newItem.content === 0 ? newItem.content.toString() : newItem.contentHover && actionHover.id === newItem.id && actionHover.type === newItem.type && actionHover.index === newIndex ? newItem.contentHover : newItem.content ? newItem.content : '');
2943
3097
  } else if (newItem && Array.isArray(newItem)) {
2944
3098
  return /*#__PURE__*/React__default["default"].createElement("span", {
2945
3099
  key: `${newItem.id}_${newIndex}`,
@@ -2959,9 +3113,11 @@ const TD = ({
2959
3113
  id: iT.id ? iT.id : '',
2960
3114
  type: iT.type ? iT.type : '',
2961
3115
  className: styles$a['td-span'],
2962
- onClick: e => handleCheckActions(e, iT, 'type', iN),
2963
- key: `${iT.id || iT.content}_${iN}`
2964
- }, iT.content === 0 ? iT.content.toString() : iT.content ? iT.content : '');
3116
+ key: `${iT.id || iT.content}_${iN}`,
3117
+ onMouseEnter: () => handleMouseEnter(iT, iN),
3118
+ onMouseLeave: () => handleMouseLeave(),
3119
+ onClick: e => handleCheckActions(e, iT, 'type', iN)
3120
+ }, iT.content === 0 ? iT.content.toString() : iT.contentHover && actionHover.id === iT.id && actionHover.type === iT.type && actionHover.index === iN ? iT.contentHover : iT.content ? iT.content : '');
2965
3121
  }));
2966
3122
  } else {
2967
3123
  return /*#__PURE__*/React__default["default"].createElement("span", {
@@ -3026,7 +3182,7 @@ const TD = ({
3026
3182
  cursor: hasOwnerProperty(item, 'arrowComponent') || hasOwnerProperty(item, 'dots') ? 'pointer' : 'auto',
3027
3183
  ...item.props
3028
3184
  },
3029
- onClick: hasOwnerProperty(item, 'arrowComponent') ? () => handleCheckArrowAction(item, item.checkIndex) : hasOwnerProperty(item, 'dots') ? e => handleCheckDots(e, item, index, innerIndex) : _ => _
3185
+ onClick: hasOwnerProperty(item, 'arrowComponent') ? () => handleCheckArrowAction(item, collapseFullRow ? index : item.checkIndex) : hasOwnerProperty(item, 'dots') ? e => handleCheckDots(e, item, index, innerIndex) : _ => _
3030
3186
  }, item.content === 0 ? item.content.toString() : item.content ? item.content : hasOwnerProperty(item, 'arrowComponent') ? item.status === 'close' ? item.closeArrow : item.openArrow : hasOwnerProperty(item, 'dots') ? /*#__PURE__*/React__default["default"].createElement("span", {
3031
3187
  style: {
3032
3188
  display: 'block',
@@ -3073,7 +3229,7 @@ const TD = ({
3073
3229
  },
3074
3230
  title: optionItem.content
3075
3231
  }, optionItem.content === 0 ? optionItem.content.toString() : optionItem.content ? optionItem.content : ''));
3076
- }))) : ''), hasOwnerProperty(item, 'contentList') && /*#__PURE__*/React__default["default"].createElement("div", {
3232
+ }))) : ''), hasOwnerProperty(item, 'contentList') && !collapseFullRow && /*#__PURE__*/React__default["default"].createElement("div", {
3077
3233
  style: {
3078
3234
  overflow: 'auto',
3079
3235
  marginTop: '10px',
@@ -3234,7 +3390,12 @@ const Table = ({
3234
3390
  draggableColor,
3235
3391
  getDraggableData,
3236
3392
  draggableItemBoxShadow,
3237
- draggableItemBackgroundColor
3393
+ draggableItemBackgroundColor,
3394
+ tableBorder,
3395
+ tableBorderColor,
3396
+ collapseFullRow,
3397
+ openArrow,
3398
+ closeArrow
3238
3399
  }) => {
3239
3400
  const itemRefs = React.useRef({});
3240
3401
  const headerRef = React.useRef(null);
@@ -3368,8 +3529,8 @@ const Table = ({
3368
3529
  status: 'close',
3369
3530
  checkIndex: null,
3370
3531
  arrowComponent: true,
3371
- openArrow: /*#__PURE__*/React__default["default"].createElement(SvgUpArrow, null),
3372
- closeArrow: /*#__PURE__*/React__default["default"].createElement(SvgDownArrow, null)
3532
+ openArrow: openArrow ? openArrow : configStyles.TABLE?.openArrow ? configStyles.TABLE?.openArrow : /*#__PURE__*/React__default["default"].createElement(SvgUpArrow, null),
3533
+ closeArrow: closeArrow ? closeArrow : configStyles.TABLE?.closeArrow ? configStyles.TABLE?.closeArrow : /*#__PURE__*/React__default["default"].createElement(SvgDownArrow, null)
3373
3534
  };
3374
3535
  if (type === 'body') {
3375
3536
  return data.map((item, index) => {
@@ -3533,6 +3694,49 @@ const Table = ({
3533
3694
  prev[rowPosition] = checkedOpenableRow;
3534
3695
  return [...prev];
3535
3696
  });
3697
+ if (collapseFullRow) {
3698
+ const newRows = [];
3699
+ body[rowPosition].filter(newItem => hasOwnerProperty(newItem, 'contentList')).map((cfrItem, cfrIndex) => {
3700
+ newRows[cfrIndex] = cfrItem.contentList;
3701
+ });
3702
+ const transformedArray = newRows && newRows[0] && newRows[0].map((_, index) => {
3703
+ let result = [];
3704
+ for (let i = 0; i < newRows.length; i++) {
3705
+ result[i] = newRows[i][index];
3706
+ }
3707
+ return result;
3708
+ });
3709
+ if (transformedArray && transformedArray.length) {
3710
+ const fakeData = transformedArray.map(fakeItem => {
3711
+ fakeItem.unshift({
3712
+ id: 'fake',
3713
+ content: ''
3714
+ });
3715
+ fakeItem.push({
3716
+ id: 'fake',
3717
+ content: ''
3718
+ });
3719
+ return fakeItem;
3720
+ });
3721
+ if (status === 'close') {
3722
+ let met = [...body];
3723
+ setTimeout(() => {
3724
+ setBody(() => {
3725
+ met.splice(rowPosition + 1, 0, ...fakeData);
3726
+ return met;
3727
+ });
3728
+ }, 0);
3729
+ } else {
3730
+ let met = [...body];
3731
+ setTimeout(() => {
3732
+ setBody(() => {
3733
+ met.splice(rowPosition + 1, fakeData.length);
3734
+ return met;
3735
+ });
3736
+ }, 0);
3737
+ }
3738
+ }
3739
+ }
3536
3740
  };
3537
3741
  const handleOpenCloseRowSingleArrow = (arrowRowIndex, arrowIndex, clickableItem) => {
3538
3742
  let single = {};
@@ -3573,6 +3777,7 @@ const Table = ({
3573
3777
  };
3574
3778
  const handleCheckArrowActionHeader = (e, item) => {
3575
3779
  e.stopPropagation();
3780
+ let mergedArray = [];
3576
3781
  const checkedOpenableAllRows = header.map((innerItem, innerIndex) => {
3577
3782
  if (item.checkIndex === (draggable && !showOrder ? innerIndex - 1 : draggable && showOrder ? innerIndex - 2 : innerIndex)) {
3578
3783
  if (item.status === 'close') {
@@ -3595,8 +3800,52 @@ const Table = ({
3595
3800
  return iElem;
3596
3801
  });
3597
3802
  });
3803
+ if (collapseFullRow) {
3804
+ if (item.status === 'open') {
3805
+ const newFakeBody = checkedOpenableAllRowsBody.map(bodyItem => {
3806
+ let fakeData = [];
3807
+ const newRows = [];
3808
+ bodyItem.filter(newItem => hasOwnerProperty(newItem, 'contentList')).map((cfrItem, cfrIndex) => {
3809
+ newRows[cfrIndex] = cfrItem.contentList;
3810
+ });
3811
+ const transformedArray = newRows && newRows[0] && newRows[0].map((_, index) => {
3812
+ let result = [];
3813
+ for (let i = 0; i < newRows.length; i++) {
3814
+ result[i] = newRows[i][index];
3815
+ }
3816
+ return result;
3817
+ });
3818
+ if (transformedArray && transformedArray.length) {
3819
+ fakeData = transformedArray.map(fakeItem => {
3820
+ fakeItem.unshift({
3821
+ id: 'fake',
3822
+ content: ''
3823
+ });
3824
+ fakeItem.push({
3825
+ id: 'fake',
3826
+ content: ''
3827
+ });
3828
+ return fakeItem;
3829
+ });
3830
+ }
3831
+ return fakeData;
3832
+ });
3833
+ if (newFakeBody && newFakeBody.length) {
3834
+ checkedOpenableAllRowsBody.map((newBodyItem, newBodyIndex) => {
3835
+ mergedArray.push(newBodyItem);
3836
+ if (newFakeBody[newBodyIndex] && newFakeBody[newBodyIndex].length) {
3837
+ newFakeBody[newBodyIndex].map(newFakeBodyItem => {
3838
+ mergedArray.push(newFakeBodyItem);
3839
+ });
3840
+ }
3841
+ });
3842
+ }
3843
+ } else {
3844
+ mergedArray = checkedOpenableAllRowsBody.filter(realArray => !realArray.some(item => item.id === 'fake'));
3845
+ }
3846
+ }
3598
3847
  setHeader(() => checkedOpenableAllRows);
3599
- setBody(() => checkedOpenableAllRowsBody);
3848
+ setBody(() => !collapseFullRow ? checkedOpenableAllRowsBody : mergedArray);
3600
3849
  };
3601
3850
  const handleCheckDots = (e, item, index, innerIndex) => {
3602
3851
  e.stopPropagation();
@@ -3865,8 +4114,11 @@ const Table = ({
3865
4114
  return configStyles.TABLE && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("table", {
3866
4115
  style: {
3867
4116
  width: '100%',
3868
- borderCollapse: tableRowItem ?? configStyles.TABLE.body.row.asItem ? 'separate' : 'collapse',
3869
- borderSpacing: `0 ${tBodyRowMarginTop ?? configStyles.TABLE.body.row.marginTop}`
4117
+ borderRadius: tHeadBorderRadius ?? configStyles.TABLE.head.radius,
4118
+ outline: hideBorder ? 'none' : tableBorder ?? configStyles.TABLE.border,
4119
+ outlineColor: hideBorder ? 'none' : tableBorderColor ?? configStyles.TABLE.borderColor,
4120
+ borderSpacing: `0 ${tBodyRowMarginTop ?? configStyles.TABLE.body.row.marginTop}`,
4121
+ borderCollapse: tableRowItem ?? configStyles.TABLE.body.row.asItem ? 'separate' : 'collapse'
3870
4122
  },
3871
4123
  onClick: handleTableClick,
3872
4124
  className: classProps
@@ -3876,7 +4128,7 @@ const Table = ({
3876
4128
  style: {
3877
4129
  color: tHeadColor ?? configStyles.TABLE.head.color,
3878
4130
  backgroundColor: tHeadBackgroundColor ?? configStyles.TABLE.head.colors.background,
3879
- borderColor: hideBorder ? 'transparent' : '#eeeeee'
4131
+ borderColor: hideBorder ? 'transparent' : tableBorderColor ?? configStyles.TABLE.borderColor
3880
4132
  }
3881
4133
  }, header.map((item, index) => {
3882
4134
  return /*#__PURE__*/React__default["default"].createElement(TH, {
@@ -3953,7 +4205,8 @@ const Table = ({
3953
4205
  borderRight: innerIndex === Object.values(item).length - 1 ? 'none' : configStyles.TABLE.body.row.border,
3954
4206
  borderRightColor: innerIndex === Object.values(item).length - 1 ? 'transparent' : configStyles.TABLE.body.row.borderColor,
3955
4207
  handleCheckArrowAction: handleCheckArrowAction,
3956
- handleOpenCloseRowSingleArrow: handleOpenCloseRowSingleArrow
4208
+ handleOpenCloseRowSingleArrow: handleOpenCloseRowSingleArrow,
4209
+ collapseFullRow: collapseFullRow
3957
4210
  });
3958
4211
  }));
3959
4212
  })) : '', body && body.length > 0 && draggable && dragging && draggedItem && /*#__PURE__*/React__default["default"].createElement("tbody", null, /*#__PURE__*/React__default["default"].createElement("tr", {
@@ -4045,7 +4298,12 @@ Table.propTypes = {
4045
4298
  openListFontStyle: PropTypes__default["default"].string,
4046
4299
  openListFontWeight: PropTypes__default["default"].string,
4047
4300
  openListFontFamily: PropTypes__default["default"].string,
4048
- hideBorder: PropTypes__default["default"].bool
4301
+ hideBorder: PropTypes__default["default"].bool,
4302
+ collapseFullRow: PropTypes__default["default"].bool,
4303
+ tableBorder: PropTypes__default["default"].string,
4304
+ tableBorderColor: PropTypes__default["default"].string,
4305
+ openArrow: PropTypes__default["default"].element,
4306
+ closeArrow: PropTypes__default["default"].element
4049
4307
  };
4050
4308
 
4051
4309
  var css_248z$b = ".modal-module_animation__modal__3mt48{animation:modal-module_show-popup__WrH7a .15s;-webkit-animation:modal-module_show-popup__WrH7a .15s}@keyframes modal-module_show-popup__WrH7a{0%{transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-ms-transform:translate3d(0,-50%,0);-o-transform:translate3d(0,-50%,0)}to{opacity:1;transform:translateZ(0);-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0)}}";
@@ -4645,6 +4903,7 @@ const TelInput = ({
4645
4903
  disabled: disabled,
4646
4904
  onInput: handleChange,
4647
4905
  name: inpAttributes?.iName,
4906
+ className: "tui-color-placeholder",
4648
4907
  placeholder: inpAttributes?.placeholder,
4649
4908
  autoComplete: inpAttributes?.autoComplete,
4650
4909
  style: {
@@ -4697,6 +4956,7 @@ const TextInput = ({
4697
4956
  disabled: disabled,
4698
4957
  onInput: handleChange,
4699
4958
  name: inpAttributes?.iName,
4959
+ className: "tui-color-placeholder",
4700
4960
  placeholder: inpAttributes?.placeholder,
4701
4961
  autoComplete: inpAttributes?.autoComplete,
4702
4962
  style: {
@@ -4755,6 +5015,7 @@ const PassInput = ({
4755
5015
  disabled: disabled,
4756
5016
  onInput: handleChange,
4757
5017
  name: inpAttributes?.iName,
5018
+ className: "tui-color-placeholder",
4758
5019
  placeholder: inpAttributes?.placeholder,
4759
5020
  autoComplete: inpAttributes?.autoComplete,
4760
5021
  style: {
@@ -4797,7 +5058,11 @@ const NumberInput = ({
4797
5058
  currentValue = handleUtilsCheckTypeNumber(currentValue, prevValue, null, float, maxNumSize, dots, innerMinNumSize, numberMaxLength, cardNumber);
4798
5059
  if (cardNumber) {
4799
5060
  let digits = currentValue.replace(/\D/g, '');
4800
- setInnerValue(() => digits.replace(/(\d{4})(?=\d)/g, '$1-'));
5061
+ if (digits.length <= 16) {
5062
+ setInnerValue(() => digits.replace(/(\d{4})(?=\d)/g, '$1-'));
5063
+ } else {
5064
+ setInnerValue(() => digits.substring(0, 16).replace(/(\d{4})(?=\d)/g, '$1-'));
5065
+ }
4801
5066
  } else {
4802
5067
  setInnerValue(() => currentValue);
4803
5068
  }
@@ -4875,7 +5140,11 @@ const NumberInput = ({
4875
5140
  }
4876
5141
  if (cardNumber) {
4877
5142
  let digits = newValue.replace(/\D/g, '');
4878
- setInnerValue(() => digits.replace(/(\d{4})(?=\d)/g, '$1-'));
5143
+ if (digits.length <= 16) {
5144
+ setInnerValue(() => digits.replace(/(\d{4})(?=\d)/g, '$1-'));
5145
+ } else {
5146
+ setInnerValue(() => digits.substring(0, 16).replace(/(\d{4})(?=\d)/g, '$1-'));
5147
+ }
4879
5148
  } else {
4880
5149
  setInnerValue(() => newValue);
4881
5150
  }
@@ -4886,6 +5155,7 @@ const NumberInput = ({
4886
5155
  value: innerValue,
4887
5156
  disabled: disabled,
4888
5157
  name: inpAttributes?.iName,
5158
+ className: "tui-color-placeholder",
4889
5159
  placeholder: inpAttributes?.placeholder,
4890
5160
  autoComplete: inpAttributes?.autoComplete,
4891
5161
  style: {
@@ -4991,6 +5261,7 @@ const Input = ({
4991
5261
  numberMaxLength,
4992
5262
  backgroundColor,
4993
5263
  errorIconMargin,
5264
+ placeholderColor,
4994
5265
  withZero = false,
4995
5266
  labelMarginBottom,
4996
5267
  regexpErrorMessage,
@@ -5105,7 +5376,9 @@ const Input = ({
5105
5376
  }, []);
5106
5377
  return configStyles.INPUT && /*#__PURE__*/React__default["default"].createElement("div", {
5107
5378
  className: classProps
5108
- }, label ? /*#__PURE__*/React__default["default"].createElement("label", {
5379
+ }, /*#__PURE__*/React__default["default"].createElement("style", null, `.tui-color-placeholder::placeholder {
5380
+ color: ${placeholderColor ?? configStyles.INPUT.colors.placeholder};
5381
+ }`), label ? /*#__PURE__*/React__default["default"].createElement("label", {
5109
5382
  style: {
5110
5383
  maxWidth: '100%',
5111
5384
  color: labelColor ?? configStyles.INPUT.label.color,
@@ -5333,6 +5606,7 @@ Input.propTypes = {
5333
5606
  labelMarginBottom: PropTypes__default["default"].string,
5334
5607
  borderRight: PropTypes__default["default"].string,
5335
5608
  placeholder: PropTypes__default["default"].string,
5609
+ placeholderColor: PropTypes__default["default"].string,
5336
5610
  phoneDisplay: PropTypes__default["default"].string,
5337
5611
  autoComplete: PropTypes__default["default"].string,
5338
5612
  errorDots: PropTypes__default["default"].bool,
@@ -6884,7 +7158,7 @@ const Stepper = ({
6884
7158
  }, (() => {
6885
7159
  let steppers = [];
6886
7160
  for (let step = 1; step <= stepLength; step++) {
6887
- steppers.push( /*#__PURE__*/React__default["default"].createElement("div", {
7161
+ steppers.push(/*#__PURE__*/React__default["default"].createElement("div", {
6888
7162
  className: classnames__default["default"](`${step <= activeSteps ? styles$3.activeRing : styles$3.bigRing}`),
6889
7163
  key: step
6890
7164
  }, /*#__PURE__*/React__default["default"].createElement("div", {