smartsell-ui-kit 0.1.4 → 0.1.6

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.cjs CHANGED
@@ -155,6 +155,16 @@ var DISABLED_FIELD_OPACITY = 0.7;
155
155
 
156
156
  // src/foundation/controlSize.ts
157
157
  var CONTROL_LEADING_ICON_SHIFT = 5;
158
+ var CONTROL_TEXT_VERTICAL_SHIFT = 1;
159
+ var SELECT_TEXT_VERTICAL_SHIFT_REDUCTION = 1;
160
+ var getControlTextVerticalPadding = (size, shift = CONTROL_TEXT_VERTICAL_SHIFT) => {
161
+ const metrics = getControlMetrics(size);
162
+ return {
163
+ top: Math.max(0, metrics.paddingY - shift),
164
+ bottom: metrics.paddingY + shift
165
+ };
166
+ };
167
+ var getSelectTextVerticalShift = () => Math.max(0, CONTROL_TEXT_VERTICAL_SHIFT - SELECT_TEXT_VERTICAL_SHIFT_REDUCTION);
158
168
  var CONTROL_METRICS_BY_SIZE = {
159
169
  sm: {
160
170
  height: 30,
@@ -195,6 +205,23 @@ var getControlLeadingIconInset = (size) => {
195
205
  var getControlLeadingAdornmentWidth = (size, iconSize) => {
196
206
  return getControlLeadingIconInset(size) + iconSize;
197
207
  };
208
+ var getTextInputPadding = (size, options = {}) => {
209
+ var _a, _b;
210
+ const metrics = getControlMetrics(size);
211
+ const { top, bottom } = getControlTextVerticalPadding(size);
212
+ const leadingPadding = (_a = options.leadingPadding) != null ? _a : metrics.paddingX;
213
+ const trailingPadding = (_b = options.trailingPadding) != null ? _b : metrics.paddingX;
214
+ return `${top}px ${trailingPadding}px ${bottom}px ${leadingPadding}px`;
215
+ };
216
+ var getSelectControlPadding = (size) => {
217
+ const metrics = getControlMetrics(size);
218
+ const { top, bottom } = getControlTextVerticalPadding(size, getSelectTextVerticalShift());
219
+ return `${top}px ${metrics.selectPaddingRight}px ${bottom}px ${metrics.paddingX}px`;
220
+ };
221
+ var getControlTextNudgeStyle = (shift = CONTROL_TEXT_VERTICAL_SHIFT) => ({
222
+ transform: `translateY(-${shift}px)`
223
+ });
224
+ var getSelectTextNudgeStyle = () => getControlTextNudgeStyle(getSelectTextVerticalShift());
198
225
  var getSelectIndicatorOffset = (size) => getControlMetrics(size).selectIndicatorOffset;
199
226
 
200
227
  // src/foundation/shadow.ts
@@ -521,7 +548,7 @@ function CardSmall({
521
548
  // src/components/Checkbox.tsx
522
549
  var import_react2 = require("react");
523
550
  var import_jsx_runtime4 = require("react/jsx-runtime");
524
- var CHECKBOX_SIZE_BY_CONTROL_SIZE = {
551
+ var CHECKBOX_SIZE_BY_SIZE = {
525
552
  sm: 14,
526
553
  md: 16,
527
554
  lg: 20
@@ -531,7 +558,7 @@ var CHECKBOX_LABEL_CLASSNAMES = {
531
558
  md: "text-sm leading-[18px]",
532
559
  lg: "text-[15px] leading-[18px]"
533
560
  };
534
- var getCheckboxSize = (controlSize) => CHECKBOX_SIZE_BY_CONTROL_SIZE[controlSize];
561
+ var getCheckboxSize = (size) => CHECKBOX_SIZE_BY_SIZE[size];
535
562
  var hasNodeContent = (value) => {
536
563
  if (Array.isArray(value)) {
537
564
  return value.some(hasNodeContent);
@@ -603,7 +630,7 @@ function Checkbox({
603
630
  label,
604
631
  hint,
605
632
  error,
606
- controlSize = "sm",
633
+ size = "sm",
607
634
  id,
608
635
  checked,
609
636
  defaultChecked,
@@ -619,7 +646,7 @@ function Checkbox({
619
646
  }) {
620
647
  const theme = useUiKitTheme();
621
648
  const mutedText = theme.colors.textLight;
622
- const indicatorSize = getCheckboxSize(controlSize);
649
+ const indicatorSize = getCheckboxSize(size);
623
650
  const hasLabel = hasNodeContent(label);
624
651
  const hasHint = hasNodeContent(hint);
625
652
  const hasError = hasNodeContent(error);
@@ -713,7 +740,7 @@ function Checkbox({
713
740
  hasSecondaryContent ? "justify-start" : "justify-center"
714
741
  ),
715
742
  children: [
716
- label ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: cx("font-semibold text-[var(--theme-text)]", CHECKBOX_LABEL_CLASSNAMES[controlSize]), children: [
743
+ label ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: cx("font-semibold text-[var(--theme-text)]", CHECKBOX_LABEL_CLASSNAMES[size]), children: [
717
744
  label,
718
745
  required ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
719
746
  ] }) : null,
@@ -1557,7 +1584,7 @@ function Input({
1557
1584
  label,
1558
1585
  hint,
1559
1586
  error,
1560
- controlSize = "sm",
1587
+ size = "sm",
1561
1588
  className,
1562
1589
  showPasswordToggle = true,
1563
1590
  fileButtonLabel,
@@ -1571,8 +1598,8 @@ function Input({
1571
1598
  ...rest
1572
1599
  }) {
1573
1600
  useUiKitTheme();
1574
- const controlMetrics = getControlMetrics(controlSize);
1575
- const passwordToggleMetrics = getPasswordToggleMetrics(controlSize);
1601
+ const controlMetrics = getControlMetrics(size);
1602
+ const passwordToggleMetrics = getPasswordToggleMetrics(size);
1576
1603
  const generatedId = (0, import_react5.useId)();
1577
1604
  const inputId = id != null ? id : generatedId;
1578
1605
  const fileInputRef = (0, import_react5.useRef)(null);
@@ -1606,15 +1633,16 @@ function Input({
1606
1633
  const showUploadLabel = hasFileButtonLabel && !hasSelectedFiles;
1607
1634
  const passwordLockIconSize = passwordToggleMetrics.iconSize + 2;
1608
1635
  const leadingContentGap = Math.max(0, Math.round(controlMetrics.paddingX / 3));
1609
- const leadingIconInset = getControlLeadingIconInset(controlSize);
1636
+ const leadingIconInset = getControlLeadingIconInset(size);
1637
+ const controlTextNudgeStyle = getControlTextNudgeStyle();
1610
1638
  const hasExternalError = error !== void 0 && error !== null && error !== "";
1611
1639
  const resolvedError = hasExternalError ? error : validationError;
1612
1640
  const hasResolvedError = resolvedError !== void 0 && resolvedError !== null && resolvedError !== "";
1613
1641
  const fileSelectionText = selectedFileNames.length === 0 ? placeholder != null ? placeholder : "" : selectedFileNames.length === 1 ? selectedFileNames[0] : `${selectedFileNames.length} files selected`;
1614
1642
  const fileIconSize = Math.max(controlMetrics.fontSize + 3, 16);
1615
- const fileTriggerWidth = getControlLeadingAdornmentWidth(controlSize, fileIconSize);
1616
- const leadingAdornmentWidth = getControlLeadingAdornmentWidth(controlSize, fileIconSize);
1617
- const passwordAdornmentWidth = getControlLeadingAdornmentWidth(controlSize, passwordLockIconSize);
1643
+ const fileTriggerWidth = getControlLeadingAdornmentWidth(size, fileIconSize);
1644
+ const leadingAdornmentWidth = getControlLeadingAdornmentWidth(size, fileIconSize);
1645
+ const passwordAdornmentWidth = getControlLeadingAdornmentWidth(size, passwordLockIconSize);
1618
1646
  const defaultLeadingIcon = isEmailField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(EmailIcon, { size: fileIconSize }) : isLoginField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LoginIcon, { size: fileIconSize }) : null;
1619
1647
  const resolvedLeadingIcon = icon != null ? icon : defaultLeadingIcon;
1620
1648
  const hasLeadingIcon = isRenderableNode(resolvedLeadingIcon);
@@ -1625,8 +1653,8 @@ function Input({
1625
1653
  "w-full box-border rounded-2xl border border-solid bg-[var(--theme-surface)]",
1626
1654
  "text-[var(--theme-text)] outline-none transition-[border-color,box-shadow,background-color]",
1627
1655
  "duration-150 placeholder:text-[var(--theme-textLight)]",
1628
- FIELD_HEIGHT_CLASSNAMES[controlSize],
1629
- FIELD_TEXT_CLASSNAMES[controlSize],
1656
+ FIELD_HEIGHT_CLASSNAMES[size],
1657
+ FIELD_TEXT_CLASSNAMES[size],
1630
1658
  hasResolvedError ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
1631
1659
  disabled ? "cursor-not-allowed opacity-70" : "cursor-text"
1632
1660
  );
@@ -1636,15 +1664,15 @@ function Input({
1636
1664
  "border border-solid bg-[var(--theme-surface)] text-[var(--theme-text)] text-left",
1637
1665
  "transition-[border-color,box-shadow,background-color] duration-150",
1638
1666
  "shadow-[0px_4px_5px_var(--theme-shadow)]",
1639
- FIELD_HEIGHT_CLASSNAMES[controlSize],
1640
- FIELD_TEXT_CLASSNAMES[controlSize],
1667
+ FIELD_HEIGHT_CLASSNAMES[size],
1668
+ FIELD_TEXT_CLASSNAMES[size],
1641
1669
  hasResolvedError ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
1642
1670
  disabled ? "opacity-70" : null
1643
1671
  );
1644
1672
  const adornedInputClassName = cx(
1645
1673
  "h-full min-w-0 flex-1 border-0 bg-transparent text-[var(--theme-text)] outline-none",
1646
1674
  "placeholder:text-[var(--theme-textLight)]",
1647
- FIELD_TEXT_CLASSNAMES[controlSize],
1675
+ FIELD_TEXT_CLASSNAMES[size],
1648
1676
  disabled ? "cursor-not-allowed" : "cursor-text"
1649
1677
  );
1650
1678
  const adornmentColorClassName = hasResolvedError ? "text-[var(--theme-negative)]" : "text-[var(--theme-textLight)]";
@@ -1708,7 +1736,7 @@ function Input({
1708
1736
  className: cx(
1709
1737
  "inline-flex shrink-0 self-stretch whitespace-nowrap border-0 bg-transparent",
1710
1738
  "items-center text-[var(--theme-text)] appearance-none",
1711
- FIELD_TEXT_CLASSNAMES[controlSize],
1739
+ FIELD_TEXT_CLASSNAMES[size],
1712
1740
  disabled ? "cursor-not-allowed" : "cursor-pointer",
1713
1741
  showUploadLabel ? "justify-start font-bold" : "justify-center"
1714
1742
  ),
@@ -1734,7 +1762,7 @@ function Input({
1734
1762
  children: resolvedFileIcon
1735
1763
  }
1736
1764
  ),
1737
- showUploadLabel ? fileButtonLabel : null
1765
+ showUploadLabel ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: controlTextNudgeStyle, children: fileButtonLabel }) : null
1738
1766
  ]
1739
1767
  }
1740
1768
  ),
@@ -1756,10 +1784,13 @@ function Input({
1756
1784
  {
1757
1785
  className: cx(
1758
1786
  "flex h-full min-w-0 flex-1 items-center overflow-hidden text-ellipsis whitespace-nowrap",
1759
- FIELD_TEXT_CLASSNAMES[controlSize],
1787
+ FIELD_TEXT_CLASSNAMES[size],
1760
1788
  hasSelectedFiles ? "text-[var(--theme-text)]" : "text-[var(--theme-textLight)]"
1761
1789
  ),
1762
- style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` },
1790
+ style: {
1791
+ padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px`,
1792
+ ...controlTextNudgeStyle
1793
+ },
1763
1794
  children: fileSelectionText
1764
1795
  }
1765
1796
  ) : null
@@ -1813,7 +1844,9 @@ function Input({
1813
1844
  onChange: handleValidatedInputChange,
1814
1845
  className: cx(adornedInputClassName, className),
1815
1846
  "aria-invalid": hasResolvedError,
1816
- style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` }
1847
+ style: {
1848
+ padding: getTextInputPadding(size, { leadingPadding: leadingContentGap })
1849
+ }
1817
1850
  }
1818
1851
  )
1819
1852
  ]
@@ -1852,7 +1885,9 @@ function Input({
1852
1885
  onChange: handleValidatedInputChange,
1853
1886
  className: cx(adornedInputClassName, className),
1854
1887
  "aria-invalid": hasResolvedError,
1855
- style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` }
1888
+ style: {
1889
+ padding: getTextInputPadding(size, { leadingPadding: leadingContentGap })
1890
+ }
1856
1891
  }
1857
1892
  )
1858
1893
  ]
@@ -1867,8 +1902,12 @@ function Input({
1867
1902
  disabled,
1868
1903
  onChange: handleValidatedInputChange,
1869
1904
  "aria-invalid": hasResolvedError,
1870
- className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES[controlSize], className),
1871
- style: { boxShadow: "0px 4px 5px var(--theme-shadow)", ...style }
1905
+ className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES[size], className),
1906
+ style: {
1907
+ boxShadow: "0px 4px 5px var(--theme-shadow)",
1908
+ padding: getTextInputPadding(size),
1909
+ ...style
1910
+ }
1872
1911
  }
1873
1912
  );
1874
1913
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
@@ -2113,7 +2152,7 @@ function DatePicker({
2113
2152
  label,
2114
2153
  hint,
2115
2154
  error,
2116
- controlSize = "sm",
2155
+ size = "sm",
2117
2156
  value,
2118
2157
  defaultValue,
2119
2158
  onChange,
@@ -2147,8 +2186,8 @@ function DatePicker({
2147
2186
  }) {
2148
2187
  var _a;
2149
2188
  useUiKitTheme();
2150
- const controlMetrics = getControlMetrics(controlSize);
2151
- const accessoryMetrics = ACCESSORY_METRICS_BY_SIZE[controlSize];
2189
+ const controlMetrics = getControlMetrics(size);
2190
+ const accessoryMetrics = ACCESSORY_METRICS_BY_SIZE[size];
2152
2191
  const generatedIdRef = (0, import_react6.useRef)();
2153
2192
  const visibleInputRef = (0, import_react6.useRef)(null);
2154
2193
  const nativeInputRef = (0, import_react6.useRef)(null);
@@ -2206,8 +2245,8 @@ function DatePicker({
2206
2245
  const canOpenPicker = !disabled && !readOnly && !hasConfigurationConflict;
2207
2246
  const canClear = clearable && !disabled && !readOnly && !required && hasAnyValue;
2208
2247
  const leadingContentGap = Math.max(0, Math.round(controlMetrics.paddingX / 3));
2209
- const leadingIconInset = getControlLeadingIconInset(controlSize);
2210
- const pickerAdornmentWidth = getControlLeadingAdornmentWidth(controlSize, accessoryMetrics.iconSize);
2248
+ const leadingIconInset = getControlLeadingIconInset(size);
2249
+ const pickerAdornmentWidth = getControlLeadingAdornmentWidth(size, accessoryMetrics.iconSize);
2211
2250
  const trailingButtonCount = Number(canClear);
2212
2251
  const trailingInset = trailingButtonCount > 0 ? Math.max(
2213
2252
  0,
@@ -2219,8 +2258,8 @@ function DatePicker({
2219
2258
  "w-full box-border rounded-2xl border border-solid bg-[var(--theme-surface)]",
2220
2259
  "text-[var(--theme-text)] outline-none transition-[border-color,box-shadow,background-color]",
2221
2260
  "duration-150 placeholder:text-[var(--theme-textLight)]",
2222
- FIELD_HEIGHT_CLASSNAMES2[controlSize],
2223
- FIELD_TEXT_CLASSNAMES2[controlSize],
2261
+ FIELD_HEIGHT_CLASSNAMES2[size],
2262
+ FIELD_TEXT_CLASSNAMES2[size],
2224
2263
  resolvedError ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
2225
2264
  disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2226
2265
  );
@@ -2228,15 +2267,15 @@ function DatePicker({
2228
2267
  "box-border flex w-full items-center gap-0 overflow-hidden rounded-2xl",
2229
2268
  "bg-[var(--theme-surface)] text-[var(--theme-text)]",
2230
2269
  "transition-[border-color,box-shadow,background-color] duration-150",
2231
- FIELD_HEIGHT_CLASSNAMES2[controlSize],
2232
- FIELD_TEXT_CLASSNAMES2[controlSize],
2270
+ FIELD_HEIGHT_CLASSNAMES2[size],
2271
+ FIELD_TEXT_CLASSNAMES2[size],
2233
2272
  disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2234
2273
  );
2235
2274
  const integratedFieldBoxShadow = getInsetBorderShadow(fieldBorderColor, resolvedError ? { outerShadow: "0 0 0 3px var(--theme-negative)", componentShadow: "0px 4px 5px var(--theme-shadow)" } : { componentShadow: "0px 4px 5px var(--theme-shadow)" });
2236
2275
  const integratedInputClassName = cx(
2237
2276
  "h-full w-full box-border border-0 bg-transparent text-[var(--theme-text)]",
2238
2277
  "outline-none placeholder:text-[var(--theme-textLight)]",
2239
- FIELD_TEXT_CLASSNAMES2[controlSize],
2278
+ FIELD_TEXT_CLASSNAMES2[size],
2240
2279
  disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2241
2280
  );
2242
2281
  const pickerAdornmentClassName = cx(
@@ -2481,7 +2520,10 @@ function DatePicker({
2481
2520
  ...visibleInputProps,
2482
2521
  className: cx(integratedInputClassName, className),
2483
2522
  style: {
2484
- padding: `${controlMetrics.paddingY}px ${controlMetrics.paddingX + trailingInset}px ${controlMetrics.paddingY}px ${leadingContentGap}px`
2523
+ padding: getTextInputPadding(size, {
2524
+ leadingPadding: leadingContentGap,
2525
+ trailingPadding: controlMetrics.paddingX + trailingInset
2526
+ })
2485
2527
  }
2486
2528
  }
2487
2529
  ),
@@ -2495,9 +2537,11 @@ function DatePicker({
2495
2537
  "input",
2496
2538
  {
2497
2539
  ...visibleInputProps,
2498
- className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES2[controlSize], className),
2540
+ className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES2[size], className),
2499
2541
  style: {
2500
- paddingRight: controlMetrics.paddingX + trailingInset,
2542
+ padding: getTextInputPadding(size, {
2543
+ trailingPadding: controlMetrics.paddingX + trailingInset
2544
+ }),
2501
2545
  boxShadow: resolvedError ? "0 0 0 3px var(--theme-negative), 0px 4px 5px var(--theme-shadow)" : "0px 4px 5px var(--theme-shadow)",
2502
2546
  ...style,
2503
2547
  ...disabledFieldStyle
@@ -2627,7 +2671,7 @@ function SelectBase({
2627
2671
  hint,
2628
2672
  error,
2629
2673
  placeholder,
2630
- controlSize = "sm",
2674
+ size = "sm",
2631
2675
  id,
2632
2676
  disabled,
2633
2677
  style,
@@ -2700,8 +2744,8 @@ function SelectBase({
2700
2744
  const visibleEnabledValues = visibleEnabledOptions.map((option) => option.value);
2701
2745
  const selectedValuesKey = selectedValues.join("\0");
2702
2746
  const visibleEnabledValuesKey = visibleEnabledValues.join("\0");
2703
- const indicatorOffset = getSelectIndicatorOffset(controlSize);
2704
- const controlMetrics = getControlMetrics(controlSize);
2747
+ const indicatorOffset = getSelectIndicatorOffset(size);
2748
+ const controlTextNudgeStyle = getSelectTextNudgeStyle();
2705
2749
  const listboxId = `${resolvedId}-listbox`;
2706
2750
  const searchInputId = `${resolvedId}-search`;
2707
2751
  const scrollbarThumbColor = theme.colors.secondary;
@@ -2720,8 +2764,8 @@ function SelectBase({
2720
2764
  "m-0 box-border flex w-full min-w-0 items-center justify-between gap-3 rounded-2xl border-0 appearance-none",
2721
2765
  "bg-[var(--theme-surface)] outline-none transition-[border-color,box-shadow,background-color]",
2722
2766
  "duration-150 text-left",
2723
- FIELD_HEIGHT_CLASSNAMES3[controlSize],
2724
- FIELD_TEXT_CLASSNAMES3[controlSize],
2767
+ FIELD_HEIGHT_CLASSNAMES3[size],
2768
+ FIELD_TEXT_CLASSNAMES3[size],
2725
2769
  hasSelection ? "text-[var(--theme-text)]" : "text-[var(--theme-textLight)]",
2726
2770
  isTriggerDisabled ? "cursor-not-allowed" : "cursor-pointer"
2727
2771
  );
@@ -3111,7 +3155,7 @@ function SelectBase({
3111
3155
  onBlur: handleTriggerBlur,
3112
3156
  onKeyDown: handleTriggerKeyDown,
3113
3157
  style: {
3114
- padding: `${controlMetrics.paddingY}px ${controlMetrics.selectPaddingRight}px ${controlMetrics.paddingY}px ${controlMetrics.paddingX}px`,
3158
+ padding: getSelectControlPadding(size),
3115
3159
  boxShadow: triggerBoxShadow,
3116
3160
  ...style,
3117
3161
  ...isTriggerDisabled ? { opacity: DISABLED_FIELD_OPACITY } : {}
@@ -3121,6 +3165,7 @@ function SelectBase({
3121
3165
  "span",
3122
3166
  {
3123
3167
  className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",
3168
+ style: controlTextNudgeStyle,
3124
3169
  children: displayContent
3125
3170
  }
3126
3171
  ),
@@ -3317,7 +3362,7 @@ function SelectBase({
3317
3362
  className: cx(
3318
3363
  "flex w-full min-w-0 items-center justify-between gap-3 rounded-xl box-border",
3319
3364
  "transition-[background-color,color] duration-150",
3320
- OPTION_PADDING_CLASSNAMES[controlSize],
3365
+ OPTION_PADDING_CLASSNAMES[size],
3321
3366
  option.disabled ? "cursor-not-allowed text-[var(--theme-secondary)]" : "cursor-pointer",
3322
3367
  !option.disabled && isActive ? "text-[var(--theme-onPrimary)]" : null,
3323
3368
  !option.disabled && !isActive ? "text-[var(--theme-text)]" : null,
@@ -5256,7 +5301,7 @@ function Textarea({
5256
5301
  label,
5257
5302
  hint,
5258
5303
  error,
5259
- controlSize = "sm",
5304
+ size = "sm",
5260
5305
  id,
5261
5306
  disabled,
5262
5307
  style,
@@ -5277,7 +5322,7 @@ function Textarea({
5277
5322
  "duration-150 placeholder:opacity-100 disabled:cursor-not-allowed",
5278
5323
  "placeholder:text-[var(--theme-textLight)]",
5279
5324
  error ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
5280
- TEXTAREA_SIZE_CLASSNAMES[controlSize]
5325
+ TEXTAREA_SIZE_CLASSNAMES[size]
5281
5326
  ),
5282
5327
  style: {
5283
5328
  boxShadow: error ? "0 0 0 3px var(--theme-negative), 0px 4px 5px var(--theme-shadow)" : "0px 4px 5px var(--theme-shadow)",