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 +92 -47
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.js +92 -47
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
|
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 = (
|
|
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
|
-
|
|
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(
|
|
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[
|
|
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
|
-
|
|
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(
|
|
1575
|
-
const passwordToggleMetrics = getPasswordToggleMetrics(
|
|
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(
|
|
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(
|
|
1616
|
-
const leadingAdornmentWidth = getControlLeadingAdornmentWidth(
|
|
1617
|
-
const passwordAdornmentWidth = getControlLeadingAdornmentWidth(
|
|
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[
|
|
1629
|
-
FIELD_TEXT_CLASSNAMES[
|
|
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[
|
|
1640
|
-
FIELD_TEXT_CLASSNAMES[
|
|
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[
|
|
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[
|
|
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[
|
|
1787
|
+
FIELD_TEXT_CLASSNAMES[size],
|
|
1760
1788
|
hasSelectedFiles ? "text-[var(--theme-text)]" : "text-[var(--theme-textLight)]"
|
|
1761
1789
|
),
|
|
1762
|
-
style: {
|
|
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: {
|
|
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: {
|
|
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[
|
|
1871
|
-
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
|
-
|
|
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(
|
|
2151
|
-
const accessoryMetrics = ACCESSORY_METRICS_BY_SIZE[
|
|
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(
|
|
2210
|
-
const pickerAdornmentWidth = getControlLeadingAdornmentWidth(
|
|
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[
|
|
2223
|
-
FIELD_TEXT_CLASSNAMES2[
|
|
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[
|
|
2232
|
-
FIELD_TEXT_CLASSNAMES2[
|
|
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[
|
|
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:
|
|
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[
|
|
2540
|
+
className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES2[size], className),
|
|
2499
2541
|
style: {
|
|
2500
|
-
|
|
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
|
-
|
|
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(
|
|
2704
|
-
const
|
|
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[
|
|
2724
|
-
FIELD_TEXT_CLASSNAMES3[
|
|
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:
|
|
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[
|
|
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
|
-
|
|
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[
|
|
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)",
|