@bubo-squared/ui-framework 0.1.96 → 0.1.98
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 +143 -79
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -18
- package/dist/index.d.ts +17 -18
- package/dist/index.js +143 -79
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1068,8 +1068,10 @@ var dropdownTriggerVariants = cva12(
|
|
|
1068
1068
|
{
|
|
1069
1069
|
variants: {
|
|
1070
1070
|
size: {
|
|
1071
|
-
|
|
1072
|
-
|
|
1071
|
+
sm: "h-8 py-1",
|
|
1072
|
+
md: "h-10 py-2",
|
|
1073
|
+
lg: "h-11",
|
|
1074
|
+
xl: "h-14"
|
|
1073
1075
|
},
|
|
1074
1076
|
status: {
|
|
1075
1077
|
default: "border-(--border-secondary)",
|
|
@@ -1078,7 +1080,7 @@ var dropdownTriggerVariants = cva12(
|
|
|
1078
1080
|
}
|
|
1079
1081
|
},
|
|
1080
1082
|
defaultVariants: {
|
|
1081
|
-
size: "
|
|
1083
|
+
size: "lg",
|
|
1082
1084
|
status: "default"
|
|
1083
1085
|
}
|
|
1084
1086
|
}
|
|
@@ -1086,8 +1088,10 @@ var dropdownTriggerVariants = cva12(
|
|
|
1086
1088
|
var dropdownTextVariants = cva12("truncate", {
|
|
1087
1089
|
variants: {
|
|
1088
1090
|
size: {
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
+
sm: "paragraph-m",
|
|
1092
|
+
md: "paragraph-l",
|
|
1093
|
+
lg: "subtitle",
|
|
1094
|
+
xl: "h6-title"
|
|
1091
1095
|
},
|
|
1092
1096
|
hasValue: {
|
|
1093
1097
|
false: "text-(--color-secondary)",
|
|
@@ -1098,15 +1102,17 @@ var dropdownTextVariants = cva12("truncate", {
|
|
|
1098
1102
|
}
|
|
1099
1103
|
},
|
|
1100
1104
|
defaultVariants: {
|
|
1101
|
-
size: "
|
|
1105
|
+
size: "lg",
|
|
1102
1106
|
hasValue: false
|
|
1103
1107
|
}
|
|
1104
1108
|
});
|
|
1105
1109
|
var dropdownIconVariants = cva12("flex items-center justify-center shrink-0", {
|
|
1106
1110
|
variants: {
|
|
1107
1111
|
size: {
|
|
1108
|
-
|
|
1109
|
-
|
|
1112
|
+
sm: "w-4 h-4",
|
|
1113
|
+
md: "w-5 h-5",
|
|
1114
|
+
lg: "w-5 h-5",
|
|
1115
|
+
xl: "w-6 h-6"
|
|
1110
1116
|
},
|
|
1111
1117
|
disabled: {
|
|
1112
1118
|
false: "text-(--icon-primary)",
|
|
@@ -1114,7 +1120,7 @@ var dropdownIconVariants = cva12("flex items-center justify-center shrink-0", {
|
|
|
1114
1120
|
}
|
|
1115
1121
|
},
|
|
1116
1122
|
defaultVariants: {
|
|
1117
|
-
size: "
|
|
1123
|
+
size: "lg",
|
|
1118
1124
|
disabled: false
|
|
1119
1125
|
}
|
|
1120
1126
|
});
|
|
@@ -1125,7 +1131,7 @@ var Dropdown = (props) => {
|
|
|
1125
1131
|
hint = "This is a hint text to help user.",
|
|
1126
1132
|
hideHint = false,
|
|
1127
1133
|
placeholder = "Placeholder text",
|
|
1128
|
-
size = "
|
|
1134
|
+
size = "lg",
|
|
1129
1135
|
status = "default",
|
|
1130
1136
|
disabled,
|
|
1131
1137
|
options,
|
|
@@ -1354,8 +1360,10 @@ var inputShellVariants = cva13(
|
|
|
1354
1360
|
{
|
|
1355
1361
|
variants: {
|
|
1356
1362
|
size: {
|
|
1357
|
-
|
|
1358
|
-
|
|
1363
|
+
sm: "gap-2 px-2 py-1 h-8",
|
|
1364
|
+
md: "gap-2 px-2 py-2 h-10",
|
|
1365
|
+
lg: "gap-2 px-2 py-2 h-11",
|
|
1366
|
+
xl: "gap-2 px-[10px] py-2 h-14"
|
|
1359
1367
|
},
|
|
1360
1368
|
status: {
|
|
1361
1369
|
default: "input-default",
|
|
@@ -1367,7 +1375,7 @@ var inputShellVariants = cva13(
|
|
|
1367
1375
|
}
|
|
1368
1376
|
},
|
|
1369
1377
|
defaultVariants: {
|
|
1370
|
-
size: "
|
|
1378
|
+
size: "lg",
|
|
1371
1379
|
status: "default"
|
|
1372
1380
|
}
|
|
1373
1381
|
}
|
|
@@ -1395,8 +1403,10 @@ import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
|
1395
1403
|
var passwordTextVariants = cva14("truncate", {
|
|
1396
1404
|
variants: {
|
|
1397
1405
|
size: {
|
|
1398
|
-
|
|
1399
|
-
|
|
1406
|
+
sm: "paragraph-m",
|
|
1407
|
+
md: "paragraph-l",
|
|
1408
|
+
lg: "subtitle",
|
|
1409
|
+
xl: "h6-title"
|
|
1400
1410
|
},
|
|
1401
1411
|
disabled: {
|
|
1402
1412
|
true: "text-primary-disabled",
|
|
@@ -1404,7 +1414,7 @@ var passwordTextVariants = cva14("truncate", {
|
|
|
1404
1414
|
}
|
|
1405
1415
|
},
|
|
1406
1416
|
defaultVariants: {
|
|
1407
|
-
size: "
|
|
1417
|
+
size: "lg",
|
|
1408
1418
|
disabled: false
|
|
1409
1419
|
}
|
|
1410
1420
|
});
|
|
@@ -1413,15 +1423,17 @@ var iconWrapperVariants = cva14(
|
|
|
1413
1423
|
{
|
|
1414
1424
|
variants: {
|
|
1415
1425
|
size: {
|
|
1416
|
-
|
|
1417
|
-
|
|
1426
|
+
sm: "size-4 [&>svg]:size-4",
|
|
1427
|
+
md: "size-5 [&>svg]:size-5",
|
|
1428
|
+
lg: "size-5 [&>svg]:size-5",
|
|
1429
|
+
xl: "size-6 [&>svg]:size-6"
|
|
1418
1430
|
},
|
|
1419
1431
|
disabled: {
|
|
1420
1432
|
true: "text-(--icon-primary-disabled)"
|
|
1421
1433
|
}
|
|
1422
1434
|
},
|
|
1423
1435
|
defaultVariants: {
|
|
1424
|
-
size: "
|
|
1436
|
+
size: "lg"
|
|
1425
1437
|
}
|
|
1426
1438
|
}
|
|
1427
1439
|
);
|
|
@@ -1430,15 +1442,17 @@ var actionButtonVariants = cva14(
|
|
|
1430
1442
|
{
|
|
1431
1443
|
variants: {
|
|
1432
1444
|
size: {
|
|
1433
|
-
|
|
1434
|
-
|
|
1445
|
+
sm: "paragraph-s",
|
|
1446
|
+
md: "paragraph-s",
|
|
1447
|
+
lg: "paragraph-s",
|
|
1448
|
+
xl: "paragraph-m"
|
|
1435
1449
|
},
|
|
1436
1450
|
disabled: {
|
|
1437
1451
|
true: "cursor-default text-primary-disabled hover:text-primary-disabled"
|
|
1438
1452
|
}
|
|
1439
1453
|
},
|
|
1440
1454
|
defaultVariants: {
|
|
1441
|
-
size: "
|
|
1455
|
+
size: "lg"
|
|
1442
1456
|
}
|
|
1443
1457
|
}
|
|
1444
1458
|
);
|
|
@@ -1448,7 +1462,7 @@ var PasswordInput = (props) => {
|
|
|
1448
1462
|
hint,
|
|
1449
1463
|
hideHint,
|
|
1450
1464
|
placeholder = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",
|
|
1451
|
-
size = "
|
|
1465
|
+
size = "lg",
|
|
1452
1466
|
status = "default",
|
|
1453
1467
|
variant = "icons",
|
|
1454
1468
|
disabled,
|
|
@@ -1828,8 +1842,10 @@ var sizeBase = cva16(
|
|
|
1828
1842
|
{
|
|
1829
1843
|
variants: {
|
|
1830
1844
|
size: {
|
|
1831
|
-
|
|
1832
|
-
|
|
1845
|
+
sm: "h-8 [&_button]:gap-2",
|
|
1846
|
+
md: "h-10 [&_button]:gap-2",
|
|
1847
|
+
lg: "h-11 [&_button]:gap-2",
|
|
1848
|
+
xl: "h-14 [&_button]:gap-3"
|
|
1833
1849
|
}
|
|
1834
1850
|
}
|
|
1835
1851
|
}
|
|
@@ -1837,15 +1853,17 @@ var sizeBase = cva16(
|
|
|
1837
1853
|
var inputTextVariants = cva16("", {
|
|
1838
1854
|
variants: {
|
|
1839
1855
|
size: {
|
|
1840
|
-
|
|
1841
|
-
|
|
1856
|
+
sm: "paragraph-m",
|
|
1857
|
+
md: "paragraph-l",
|
|
1858
|
+
lg: "subtitle",
|
|
1859
|
+
xl: "h6-title"
|
|
1842
1860
|
},
|
|
1843
1861
|
disabled: {
|
|
1844
1862
|
true: "text-primary-disabled border-(--border-secondary-disabled)"
|
|
1845
1863
|
}
|
|
1846
1864
|
},
|
|
1847
1865
|
defaultVariants: {
|
|
1848
|
-
size: "
|
|
1866
|
+
size: "lg"
|
|
1849
1867
|
}
|
|
1850
1868
|
});
|
|
1851
1869
|
var wrapperStatusClass = {
|
|
@@ -1863,7 +1881,7 @@ var PhoneInput = React26.forwardRef(
|
|
|
1863
1881
|
hint,
|
|
1864
1882
|
hideHint,
|
|
1865
1883
|
placeholder,
|
|
1866
|
-
size = "
|
|
1884
|
+
size = "lg",
|
|
1867
1885
|
disabled = false,
|
|
1868
1886
|
status = "default",
|
|
1869
1887
|
...rest
|
|
@@ -2192,32 +2210,36 @@ import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
|
2192
2210
|
var searchTextVariants = cva17("truncate", {
|
|
2193
2211
|
variants: {
|
|
2194
2212
|
size: {
|
|
2195
|
-
|
|
2196
|
-
|
|
2213
|
+
sm: "paragraph-m",
|
|
2214
|
+
md: "paragraph-l",
|
|
2215
|
+
lg: "subtitle",
|
|
2216
|
+
xl: "h6-title"
|
|
2197
2217
|
}
|
|
2198
2218
|
},
|
|
2199
2219
|
defaultVariants: {
|
|
2200
|
-
size: "
|
|
2220
|
+
size: "lg"
|
|
2201
2221
|
}
|
|
2202
2222
|
});
|
|
2203
2223
|
var iconWrapperVariants2 = cva17("flex items-center justify-center shrink-0 text-(--icon-primary)", {
|
|
2204
2224
|
variants: {
|
|
2205
2225
|
size: {
|
|
2206
|
-
|
|
2207
|
-
|
|
2226
|
+
sm: "size-4 [&>svg]:size-4",
|
|
2227
|
+
md: "size-5 [&>svg]:size-5",
|
|
2228
|
+
lg: "size-5 [&>svg]:size-5",
|
|
2229
|
+
xl: "size-6 [&>svg]:size-6"
|
|
2208
2230
|
},
|
|
2209
2231
|
disabled: {
|
|
2210
2232
|
true: "text-(--icon-primary-disabled)"
|
|
2211
2233
|
}
|
|
2212
2234
|
},
|
|
2213
2235
|
defaultVariants: {
|
|
2214
|
-
size: "
|
|
2236
|
+
size: "lg"
|
|
2215
2237
|
}
|
|
2216
2238
|
});
|
|
2217
2239
|
var SearchInput = (props) => {
|
|
2218
2240
|
const {
|
|
2219
2241
|
placeholder = "Search...",
|
|
2220
|
-
size = "
|
|
2242
|
+
size = "lg",
|
|
2221
2243
|
disabled,
|
|
2222
2244
|
className,
|
|
2223
2245
|
leadingIcon,
|
|
@@ -2266,10 +2288,16 @@ SearchInput.displayName = "SearchInput";
|
|
|
2266
2288
|
import * as React29 from "react";
|
|
2267
2289
|
import { jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2268
2290
|
var wrapperBase2 = "flex flex-col gap-2 items-start";
|
|
2291
|
+
var isRangeProps = (props) => {
|
|
2292
|
+
return Array.isArray(props.value) || Array.isArray(props.defaultValue);
|
|
2293
|
+
};
|
|
2294
|
+
var toArray = (value) => {
|
|
2295
|
+
if (value === void 0) return void 0;
|
|
2296
|
+
return Array.isArray(value) ? value : [value];
|
|
2297
|
+
};
|
|
2269
2298
|
var Slider = (props) => {
|
|
2270
2299
|
const {
|
|
2271
2300
|
display = "flat",
|
|
2272
|
-
type = "single",
|
|
2273
2301
|
tooltipPlacement = "top",
|
|
2274
2302
|
tooltipFormatter,
|
|
2275
2303
|
showPercentage = true,
|
|
@@ -2279,11 +2307,11 @@ var Slider = (props) => {
|
|
|
2279
2307
|
disabled = false,
|
|
2280
2308
|
value,
|
|
2281
2309
|
defaultValue,
|
|
2282
|
-
onValueChange,
|
|
2283
2310
|
className
|
|
2284
2311
|
} = props;
|
|
2312
|
+
const isRange = isRangeProps(props);
|
|
2285
2313
|
const isControlled = value !== void 0;
|
|
2286
|
-
const expectedLength =
|
|
2314
|
+
const expectedLength = isRange ? 2 : 1;
|
|
2287
2315
|
const normalizeArray = React29.useCallback(
|
|
2288
2316
|
(arr, fallback) => {
|
|
2289
2317
|
if (!arr || arr.length === 0) return fallback;
|
|
@@ -2297,22 +2325,25 @@ var Slider = (props) => {
|
|
|
2297
2325
|
[expectedLength, max]
|
|
2298
2326
|
);
|
|
2299
2327
|
const defaultInternal = React29.useMemo(() => {
|
|
2300
|
-
|
|
2301
|
-
if (
|
|
2328
|
+
const defaultValueArray = toArray(defaultValue);
|
|
2329
|
+
if (defaultValueArray) return normalizeArray(defaultValueArray, []);
|
|
2330
|
+
if (isRange) return [min, Math.min(min + (max - min) / 4, max)];
|
|
2302
2331
|
return [min + (max - min) / 3];
|
|
2303
|
-
}, [defaultValue, min, max,
|
|
2332
|
+
}, [defaultValue, min, max, isRange, normalizeArray]);
|
|
2304
2333
|
const [internalValue, setInternalValue] = React29.useState(
|
|
2305
|
-
() => normalizeArray(isControlled ? value : defaultInternal, defaultInternal)
|
|
2334
|
+
() => normalizeArray(isControlled ? toArray(value) : defaultInternal, defaultInternal)
|
|
2306
2335
|
);
|
|
2307
2336
|
React29.useEffect(() => {
|
|
2308
2337
|
if (isControlled) {
|
|
2309
2338
|
setInternalValue(
|
|
2310
|
-
(current2) => normalizeArray(value, current2.length ? current2 : defaultInternal)
|
|
2339
|
+
(current2) => normalizeArray(toArray(value), current2.length ? current2 : defaultInternal)
|
|
2311
2340
|
);
|
|
2312
2341
|
}
|
|
2313
2342
|
}, [isControlled, value, normalizeArray, defaultInternal]);
|
|
2314
2343
|
const current = internalValue;
|
|
2315
2344
|
const trackRef = React29.useRef(null);
|
|
2345
|
+
const [draggingThumbIndex, setDraggingThumbIndex] = React29.useState(null);
|
|
2346
|
+
const [hoveredThumbIndex, setHoveredThumbIndex] = React29.useState(null);
|
|
2316
2347
|
const clamp = (val) => {
|
|
2317
2348
|
if (val < min) return min;
|
|
2318
2349
|
if (val > max) return max;
|
|
@@ -2322,13 +2353,13 @@ var Slider = (props) => {
|
|
|
2322
2353
|
if (!isControlled) {
|
|
2323
2354
|
setInternalValue((prev) => {
|
|
2324
2355
|
const clamped = prev.map((v) => clamp(v));
|
|
2325
|
-
if (
|
|
2356
|
+
if (isRange && clamped.length === 2 && step > 0) {
|
|
2326
2357
|
return enforceMinGap(clamped, prev);
|
|
2327
2358
|
}
|
|
2328
2359
|
return clamped;
|
|
2329
2360
|
});
|
|
2330
2361
|
}
|
|
2331
|
-
}, [isControlled, min, max]);
|
|
2362
|
+
}, [isControlled, min, max, isRange]);
|
|
2332
2363
|
const snap = (val) => {
|
|
2333
2364
|
const range = max - min;
|
|
2334
2365
|
if (range <= 0 || step <= 0) return clamp(val);
|
|
@@ -2336,7 +2367,7 @@ var Slider = (props) => {
|
|
|
2336
2367
|
return clamp(min + stepsFromMin * step);
|
|
2337
2368
|
};
|
|
2338
2369
|
const enforceMinGap = (next, prev) => {
|
|
2339
|
-
if (
|
|
2370
|
+
if (!isRange || next.length !== 2 || step <= 0) return next;
|
|
2340
2371
|
let [low, high] = next;
|
|
2341
2372
|
const [prevLow, prevHigh] = prev.length === 2 ? prev : next;
|
|
2342
2373
|
if (low > high) {
|
|
@@ -2361,13 +2392,17 @@ var Slider = (props) => {
|
|
|
2361
2392
|
};
|
|
2362
2393
|
const updateValue = (next) => {
|
|
2363
2394
|
let normalized = normalizeArray(next, current);
|
|
2364
|
-
if (
|
|
2395
|
+
if (isRange && normalized.length === 2) {
|
|
2365
2396
|
normalized = enforceMinGap(normalized, current);
|
|
2366
2397
|
}
|
|
2367
2398
|
if (!isControlled) {
|
|
2368
2399
|
setInternalValue(normalized);
|
|
2369
2400
|
}
|
|
2370
|
-
|
|
2401
|
+
if (isRangeProps(props)) {
|
|
2402
|
+
props.onValueChange?.([normalized[0] ?? min, normalized[1] ?? max]);
|
|
2403
|
+
} else {
|
|
2404
|
+
props.onValueChange?.(normalized[0] ?? min);
|
|
2405
|
+
}
|
|
2371
2406
|
};
|
|
2372
2407
|
const getSnappedValueFromClientX = (clientX, track) => {
|
|
2373
2408
|
const rect = track.getBoundingClientRect();
|
|
@@ -2380,10 +2415,11 @@ var Slider = (props) => {
|
|
|
2380
2415
|
if (disabled) return;
|
|
2381
2416
|
const track = trackRef.current;
|
|
2382
2417
|
if (!track) return;
|
|
2418
|
+
setDraggingThumbIndex(thumbIndex);
|
|
2383
2419
|
const handlePointerMove = (event) => {
|
|
2384
2420
|
if (disabled) return;
|
|
2385
2421
|
const snapped = getSnappedValueFromClientX(event.clientX, track);
|
|
2386
|
-
if (
|
|
2422
|
+
if (isRange && current.length === 2) {
|
|
2387
2423
|
const [a, b] = current;
|
|
2388
2424
|
if (thumbIndex === 0) {
|
|
2389
2425
|
updateValue([snapped, b]);
|
|
@@ -2397,9 +2433,11 @@ var Slider = (props) => {
|
|
|
2397
2433
|
const handlePointerUp = () => {
|
|
2398
2434
|
window.removeEventListener("pointermove", handlePointerMove);
|
|
2399
2435
|
window.removeEventListener("pointerup", handlePointerUp);
|
|
2436
|
+
window.removeEventListener("pointercancel", handlePointerUp);
|
|
2437
|
+
setDraggingThumbIndex(null);
|
|
2400
2438
|
};
|
|
2401
2439
|
const initialSnapped = getSnappedValueFromClientX(clientX, track);
|
|
2402
|
-
if (
|
|
2440
|
+
if (isRange && current.length === 2) {
|
|
2403
2441
|
const [a, b] = current;
|
|
2404
2442
|
if (thumbIndex === 0) {
|
|
2405
2443
|
updateValue([initialSnapped, b]);
|
|
@@ -2411,6 +2449,7 @@ var Slider = (props) => {
|
|
|
2411
2449
|
}
|
|
2412
2450
|
window.addEventListener("pointermove", handlePointerMove);
|
|
2413
2451
|
window.addEventListener("pointerup", handlePointerUp);
|
|
2452
|
+
window.addEventListener("pointercancel", handlePointerUp);
|
|
2414
2453
|
};
|
|
2415
2454
|
const handleTrackPointerDown = (event) => {
|
|
2416
2455
|
if (disabled) return;
|
|
@@ -2419,7 +2458,7 @@ var Slider = (props) => {
|
|
|
2419
2458
|
if (!track) return;
|
|
2420
2459
|
const snapped = getSnappedValueFromClientX(event.clientX, track);
|
|
2421
2460
|
let thumbIndex = 0;
|
|
2422
|
-
if (
|
|
2461
|
+
if (isRange && current.length === 2) {
|
|
2423
2462
|
const [a, b] = current;
|
|
2424
2463
|
const distToA = Math.abs(snapped - a);
|
|
2425
2464
|
const distToB = Math.abs(snapped - b);
|
|
@@ -2457,7 +2496,7 @@ var Slider = (props) => {
|
|
|
2457
2496
|
event.preventDefault();
|
|
2458
2497
|
}
|
|
2459
2498
|
};
|
|
2460
|
-
const [primary, secondary] =
|
|
2499
|
+
const [primary, secondary] = isRange && current.length === 2 ? [current[0], current[1]] : [current[0], void 0];
|
|
2461
2500
|
const valueToPercent = (val) => {
|
|
2462
2501
|
if (val === void 0) return 0;
|
|
2463
2502
|
if (max === min) return 0;
|
|
@@ -2490,7 +2529,7 @@ var Slider = (props) => {
|
|
|
2490
2529
|
return formatNumber(value2);
|
|
2491
2530
|
};
|
|
2492
2531
|
const formatNumericLabel = () => {
|
|
2493
|
-
if (
|
|
2532
|
+
if (isRange && secondary !== void 0) {
|
|
2494
2533
|
if (!tooltipFormatter && showPercentage && display === "numeric") {
|
|
2495
2534
|
const first = formatNumber(valueToPercent(primary));
|
|
2496
2535
|
const second = formatNumber(valueToPercent(secondary));
|
|
@@ -2503,10 +2542,14 @@ var Slider = (props) => {
|
|
|
2503
2542
|
const trackHeight = 32;
|
|
2504
2543
|
const thumbWidth = 18;
|
|
2505
2544
|
const thumbRadius = thumbWidth / 2;
|
|
2506
|
-
const renderTooltipBubble = (key, percent, labelText) => /* @__PURE__ */ jsx31(
|
|
2545
|
+
const renderTooltipBubble = (key, percent, labelText, isVisible) => /* @__PURE__ */ jsx31(
|
|
2507
2546
|
"div",
|
|
2508
2547
|
{
|
|
2509
|
-
className:
|
|
2548
|
+
className: cn(
|
|
2549
|
+
"absolute -translate-x-1/2 flex flex-col items-center",
|
|
2550
|
+
"transition-[opacity,transform] duration-150",
|
|
2551
|
+
isVisible ? "opacity-100 scale-100 pointer-events-auto" : "opacity-0 scale-95 pointer-events-none"
|
|
2552
|
+
),
|
|
2510
2553
|
style: {
|
|
2511
2554
|
left: `${percent}%`,
|
|
2512
2555
|
bottom: isTooltipAbove ? "100%" : void 0,
|
|
@@ -2517,17 +2560,14 @@ var Slider = (props) => {
|
|
|
2517
2560
|
children: /* @__PURE__ */ jsxs21(
|
|
2518
2561
|
"div",
|
|
2519
2562
|
{
|
|
2520
|
-
className: cn(
|
|
2521
|
-
"relative rounded-4 shadow-card-md px-(--space-8) py-(--space-4)",
|
|
2522
|
-
disabled ? "bg-(--background-primary-disabled)" : "bg-(--background-neutral)"
|
|
2523
|
-
),
|
|
2563
|
+
className: cn("relative rounded-4 shadow-card-md px-(--space-8) py-(--space-4) bg-(--background-tooltip)"),
|
|
2524
2564
|
children: [
|
|
2525
2565
|
/* @__PURE__ */ jsx31(
|
|
2526
2566
|
"p",
|
|
2527
2567
|
{
|
|
2528
2568
|
className: cn(
|
|
2529
2569
|
"paragraph-s",
|
|
2530
|
-
disabled ? "text-
|
|
2570
|
+
disabled ? "text-secondary" : "text-primary"
|
|
2531
2571
|
),
|
|
2532
2572
|
children: labelText
|
|
2533
2573
|
}
|
|
@@ -2536,8 +2576,7 @@ var Slider = (props) => {
|
|
|
2536
2576
|
"div",
|
|
2537
2577
|
{
|
|
2538
2578
|
className: cn(
|
|
2539
|
-
"absolute left-1/2 -translate-x-1/2 w-2 h-2 rotate-45",
|
|
2540
|
-
disabled ? "bg-(--background-primary-disabled)" : "bg-(--background-neutral)",
|
|
2579
|
+
"absolute left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-(--background-tooltip)",
|
|
2541
2580
|
isTooltipAbove ? "-bottom-1" : "-top-1"
|
|
2542
2581
|
)
|
|
2543
2582
|
}
|
|
@@ -2550,6 +2589,7 @@ var Slider = (props) => {
|
|
|
2550
2589
|
);
|
|
2551
2590
|
const renderHandle = (index, percent, ariaValueText) => {
|
|
2552
2591
|
const val = index === 0 ? primary : secondary;
|
|
2592
|
+
const isDragging = draggingThumbIndex === index;
|
|
2553
2593
|
return /* @__PURE__ */ jsx31(
|
|
2554
2594
|
"button",
|
|
2555
2595
|
{
|
|
@@ -2563,12 +2603,21 @@ var Slider = (props) => {
|
|
|
2563
2603
|
tabIndex: disabled ? -1 : 0,
|
|
2564
2604
|
className: cn(
|
|
2565
2605
|
"absolute -translate-x-1/2 flex items-center justify-center",
|
|
2566
|
-
"h-8 w-
|
|
2606
|
+
"h-8 w-4.5 rounded-4",
|
|
2607
|
+
"transition-shadow duration-150",
|
|
2608
|
+
!disabled && (isDragging ? "shadow-[0_0_0_12px_var(--slider-halo-color)]" : "hover:shadow-[0_0_0_8px_var(--slider-halo-color)]"),
|
|
2567
2609
|
disabled ? "bg-(--icon-primary-disabled) cursor-default" : "bg-(--icon-primary-hover) outline-none focus-visible:shadow-[0_0_0_var(--focus-ring-spread)_var(--focus-primary)] cursor-pointer"
|
|
2568
2610
|
),
|
|
2569
2611
|
style: {
|
|
2570
2612
|
left: `${percent}%`,
|
|
2571
|
-
top: `calc(50% - ${trackHeight / 2}px)
|
|
2613
|
+
top: `calc(50% - ${trackHeight / 2}px)`,
|
|
2614
|
+
["--slider-halo-color"]: "color-mix(in srgb, var(--color-brand) 10%, transparent)"
|
|
2615
|
+
},
|
|
2616
|
+
onPointerEnter: () => {
|
|
2617
|
+
setHoveredThumbIndex(index);
|
|
2618
|
+
},
|
|
2619
|
+
onPointerLeave: () => {
|
|
2620
|
+
setHoveredThumbIndex((prev) => prev === index ? null : prev);
|
|
2572
2621
|
},
|
|
2573
2622
|
onPointerDown: (event) => {
|
|
2574
2623
|
if (disabled) return;
|
|
@@ -2583,8 +2632,18 @@ var Slider = (props) => {
|
|
|
2583
2632
|
};
|
|
2584
2633
|
return /* @__PURE__ */ jsx31("div", { className: wrapperBase2, children: /* @__PURE__ */ jsxs21("div", { className: cn("w-full flex flex-col gap-1", className), children: [
|
|
2585
2634
|
/* @__PURE__ */ jsxs21("div", { className: "relative w-full", children: [
|
|
2586
|
-
showTooltip && primary !== void 0 && renderTooltipBubble(
|
|
2587
|
-
|
|
2635
|
+
showTooltip && primary !== void 0 && renderTooltipBubble(
|
|
2636
|
+
"primary",
|
|
2637
|
+
primaryPercent,
|
|
2638
|
+
formatDisplayValue(primary),
|
|
2639
|
+
hoveredThumbIndex === 0 || draggingThumbIndex === 0
|
|
2640
|
+
),
|
|
2641
|
+
showTooltip && isRange && secondary !== void 0 && renderTooltipBubble(
|
|
2642
|
+
"secondary",
|
|
2643
|
+
secondaryPercent,
|
|
2644
|
+
formatDisplayValue(secondary),
|
|
2645
|
+
hoveredThumbIndex === 1 || draggingThumbIndex === 1
|
|
2646
|
+
),
|
|
2588
2647
|
/* @__PURE__ */ jsxs21(
|
|
2589
2648
|
"div",
|
|
2590
2649
|
{
|
|
@@ -2610,7 +2669,7 @@ var Slider = (props) => {
|
|
|
2610
2669
|
}
|
|
2611
2670
|
),
|
|
2612
2671
|
renderHandle(0, primaryPercent, formatDisplayValue(primary)),
|
|
2613
|
-
|
|
2672
|
+
isRange && secondary !== void 0 && renderHandle(1, secondaryPercent, formatDisplayValue(secondary))
|
|
2614
2673
|
]
|
|
2615
2674
|
}
|
|
2616
2675
|
)
|
|
@@ -2820,12 +2879,14 @@ import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
|
2820
2879
|
var inputTextVariants2 = cva18("truncate", {
|
|
2821
2880
|
variants: {
|
|
2822
2881
|
size: {
|
|
2823
|
-
|
|
2824
|
-
|
|
2882
|
+
sm: "paragraph-m",
|
|
2883
|
+
md: "paragraph-l",
|
|
2884
|
+
lg: "subtitle",
|
|
2885
|
+
xl: "h6-title"
|
|
2825
2886
|
}
|
|
2826
2887
|
},
|
|
2827
2888
|
defaultVariants: {
|
|
2828
|
-
size: "
|
|
2889
|
+
size: "lg"
|
|
2829
2890
|
}
|
|
2830
2891
|
});
|
|
2831
2892
|
var iconWrapperVariants3 = cva18(
|
|
@@ -2833,15 +2894,17 @@ var iconWrapperVariants3 = cva18(
|
|
|
2833
2894
|
{
|
|
2834
2895
|
variants: {
|
|
2835
2896
|
size: {
|
|
2836
|
-
|
|
2837
|
-
|
|
2897
|
+
sm: "size-4 [&>svg]:size-4",
|
|
2898
|
+
md: "size-5 [&>svg]:size-5",
|
|
2899
|
+
lg: "size-5 [&>svg]:size-5",
|
|
2900
|
+
xl: "size-6 [&>svg]:size-6"
|
|
2838
2901
|
},
|
|
2839
2902
|
disabled: {
|
|
2840
2903
|
true: "text-(--icon-primary-disabled)"
|
|
2841
2904
|
}
|
|
2842
2905
|
},
|
|
2843
2906
|
defaultVariants: {
|
|
2844
|
-
size: "
|
|
2907
|
+
size: "lg"
|
|
2845
2908
|
}
|
|
2846
2909
|
}
|
|
2847
2910
|
);
|
|
@@ -2851,7 +2914,7 @@ var TextInput = (props) => {
|
|
|
2851
2914
|
hint,
|
|
2852
2915
|
hideHint,
|
|
2853
2916
|
placeholder = "Placeholder text",
|
|
2854
|
-
size = "
|
|
2917
|
+
size = "lg",
|
|
2855
2918
|
status = "default",
|
|
2856
2919
|
disabled = false,
|
|
2857
2920
|
className,
|
|
@@ -3040,21 +3103,22 @@ var WebsiteInput = (props) => {
|
|
|
3040
3103
|
hierarchy = "leading",
|
|
3041
3104
|
protocolLabel = "http://",
|
|
3042
3105
|
icon,
|
|
3043
|
-
size = "
|
|
3106
|
+
size = "lg",
|
|
3044
3107
|
disabled,
|
|
3045
3108
|
className,
|
|
3046
3109
|
...rest
|
|
3047
3110
|
} = props;
|
|
3048
3111
|
const isLeading = hierarchy === "leading";
|
|
3112
|
+
const spanHeightClass = size === "xl" ? "[&>span]:h-14!" : size === "lg" ? "[&>span]:h-11!" : size === "md" ? "[&>span]:h-10!" : "[&>span]:h-8!";
|
|
3049
3113
|
const baseClass = cn(
|
|
3050
3114
|
"[&>span]:w-[unset] hover:bg-[unset]",
|
|
3051
3115
|
!disabled && "[&:not(:focus-within):hover]:shadow-[0_0_0_var(--focus-ring-spread)_var(--background-secondary-hover)]",
|
|
3052
3116
|
disabled && "bg-[unset] hover:shadow-none hover:border-(--border-secondary-disabled) border-(--border-secondary-disabled)",
|
|
3053
|
-
|
|
3117
|
+
spanHeightClass
|
|
3054
3118
|
);
|
|
3055
3119
|
const addonTextClass = cn(
|
|
3056
3120
|
"flex mb-0!",
|
|
3057
|
-
size === "
|
|
3121
|
+
size === "xl" ? "paragraph-m" : size === "sm" ? "paragraph-m" : "paragraph-s",
|
|
3058
3122
|
disabled ? "text-primary-disabled" : "text-primary group-hover:text-(--color-primary-hover) group-focus-within:text-(--color-primary-focus)"
|
|
3059
3123
|
);
|
|
3060
3124
|
const baseAddonClass = cn(
|
|
@@ -3067,7 +3131,7 @@ var WebsiteInput = (props) => {
|
|
|
3067
3131
|
);
|
|
3068
3132
|
const iconWrapperClass = cn(
|
|
3069
3133
|
"flex items-center justify-center shrink-0",
|
|
3070
|
-
size === "
|
|
3134
|
+
size === "xl" ? "[&>svg]:w-6 [&>svg]:h-6" : size === "sm" ? "[&>svg]:w-4 [&>svg]:h-4" : "[&>svg]:w-5 [&>svg]:h-5",
|
|
3071
3135
|
disabled ? "text-(--icon-primary-disabled)" : "text-(--icon-primary) group-hover:text-(--icon-primary-hover) group-focus-within:text-(--icon-primary-focus)"
|
|
3072
3136
|
);
|
|
3073
3137
|
const leadingAddon = /* @__PURE__ */ jsxs25("div", { className: baseAddonClass, children: [
|