@bestow-ui/react 1.4.0 → 1.6.0
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/README.md +10 -4
- package/dist/{chunk-TIFI6ZQU.js → chunk-NKLDAXUR.js} +3 -78
- package/dist/chunk-NKLDAXUR.js.map +1 -0
- package/dist/client.js +395 -213
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +428 -302
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +82 -6
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +46 -48
- package/dist/index.d.ts +46 -48
- package/dist/shared.js +14 -8
- package/dist/shared.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-TIFI6ZQU.js.map +0 -1
package/dist/client.js
CHANGED
|
@@ -1,29 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
|
-
KOREAN_WEEKDAYS,
|
|
4
3
|
Skeleton,
|
|
5
4
|
addDays,
|
|
6
5
|
addMonths,
|
|
7
6
|
compareDays,
|
|
8
7
|
cx,
|
|
9
8
|
focusField,
|
|
10
|
-
formatBusinessNumber,
|
|
11
|
-
formatKoreanAmount,
|
|
12
|
-
formatPhoneNumber,
|
|
13
9
|
getCalendarWeeks,
|
|
14
10
|
isSameDay,
|
|
15
11
|
isSameMonth,
|
|
16
|
-
isValidBusinessNumber,
|
|
17
12
|
kakaoPostcodeProvider,
|
|
18
13
|
mergeThemes,
|
|
19
14
|
parseISODate,
|
|
20
|
-
phoneNumberMaxDigits,
|
|
21
15
|
presetRange,
|
|
22
16
|
themeClass,
|
|
23
17
|
themeToStyle,
|
|
24
18
|
toISODate,
|
|
25
19
|
visuallyHidden
|
|
26
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-NKLDAXUR.js";
|
|
27
21
|
|
|
28
22
|
// src/theme/ThemeProvider.tsx
|
|
29
23
|
import { createContext, forwardRef, useContext, useMemo } from "react";
|
|
@@ -735,7 +729,7 @@ var Alert = /* @__PURE__ */ forwardRef10(function Alert2({
|
|
|
735
729
|
variant,
|
|
736
730
|
color = "primary",
|
|
737
731
|
title: title6,
|
|
738
|
-
icon:
|
|
732
|
+
icon: icon7,
|
|
739
733
|
action: action3,
|
|
740
734
|
onClose,
|
|
741
735
|
closeLabel: closeLabelProp,
|
|
@@ -746,7 +740,7 @@ var Alert = /* @__PURE__ */ forwardRef10(function Alert2({
|
|
|
746
740
|
const m = useMessages();
|
|
747
741
|
const closeLabel = closeLabelProp ?? m.close ?? "\uB2EB\uAE30";
|
|
748
742
|
const DefaultIcon = defaultIcons[color];
|
|
749
|
-
const iconNode =
|
|
743
|
+
const iconNode = icon7 === void 0 ? /* @__PURE__ */ jsx12(DefaultIcon, { size: 18 }) : icon7;
|
|
750
744
|
return /* @__PURE__ */ jsxs10("div", { ref, className: cx(alert({ variant, color }), className), ...rest, children: [
|
|
751
745
|
iconNode !== false && iconNode !== null && /* @__PURE__ */ jsx12("span", { className: icon2, "aria-hidden": true, children: iconNode }),
|
|
752
746
|
/* @__PURE__ */ jsxs10("div", { className: content4, children: [
|
|
@@ -760,6 +754,7 @@ var Alert = /* @__PURE__ */ forwardRef10(function Alert2({
|
|
|
760
754
|
|
|
761
755
|
// src/components/AmountInput/AmountInput.tsx
|
|
762
756
|
import { forwardRef as forwardRef11, useRef as useRef5 } from "react";
|
|
757
|
+
import { formatKoreanAmount } from "@bestow-ui/korean-utils";
|
|
763
758
|
|
|
764
759
|
// src/utils/useFormattedInput.ts
|
|
765
760
|
import { useRef as useRef4, useState as useState3 } from "react";
|
|
@@ -1011,6 +1006,7 @@ var Breadcrumb = /* @__PURE__ */ forwardRef14(function Breadcrumb2({ items: item
|
|
|
1011
1006
|
|
|
1012
1007
|
// src/components/BusinessNumberInput/BusinessNumberInput.tsx
|
|
1013
1008
|
import { forwardRef as forwardRef15, useRef as useRef6, useState as useState4 } from "react";
|
|
1009
|
+
import { formatBusinessNumber, isValidBusinessNumber } from "@bestow-ui/korean-utils";
|
|
1014
1010
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1015
1011
|
var sanitize = (input6) => input6.replace(/\D/g, "").slice(0, 10);
|
|
1016
1012
|
var isDigit2 = (char) => /\d/.test(char);
|
|
@@ -1077,6 +1073,7 @@ var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
|
|
|
1077
1073
|
// src/components/Calendar/Calendar.tsx
|
|
1078
1074
|
import { forwardRef as forwardRef17, useEffect as useEffect4, useId as useId4, useRef as useRef7, useState as useState5 } from "react";
|
|
1079
1075
|
import { ChevronLeftIcon, ChevronRightIcon as ChevronRightIcon2 } from "@bestow-ui/icons";
|
|
1076
|
+
import { KOREAN_WEEKDAYS } from "@bestow-ui/korean-utils";
|
|
1080
1077
|
|
|
1081
1078
|
// src/utils/useIsClient.ts
|
|
1082
1079
|
import { useSyncExternalStore } from "react";
|
|
@@ -1179,7 +1176,7 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
|
|
|
1179
1176
|
moveFocus.current = true;
|
|
1180
1177
|
setFocused(clamp(date));
|
|
1181
1178
|
};
|
|
1182
|
-
const
|
|
1179
|
+
const select2 = (date) => {
|
|
1183
1180
|
if (isDisabled(date)) return;
|
|
1184
1181
|
const iso = toISODate(date);
|
|
1185
1182
|
if (!isControlled) setInnerValue(iso);
|
|
@@ -1262,7 +1259,7 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
|
|
|
1262
1259
|
"aria-label": label6,
|
|
1263
1260
|
"aria-current": isToday ? "date" : void 0,
|
|
1264
1261
|
"aria-disabled": disabled || void 0,
|
|
1265
|
-
onClick: () =>
|
|
1262
|
+
onClick: () => select2(date),
|
|
1266
1263
|
onFocus: () => !isSameDay(date, focused) && setFocused(date),
|
|
1267
1264
|
children: date.getDate()
|
|
1268
1265
|
}
|
|
@@ -1301,6 +1298,7 @@ var toggle2 = "c2pbq71 c2pbq70";
|
|
|
1301
1298
|
|
|
1302
1299
|
// src/components/Combobox/Combobox.tsx
|
|
1303
1300
|
import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1301
|
+
var NO_RESULTS_ANNOUNCE_DELAY = 800;
|
|
1304
1302
|
var defaultFilter = (option2, query) => option2.label.toLowerCase().includes(query.trim().toLowerCase());
|
|
1305
1303
|
var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
1306
1304
|
const {
|
|
@@ -1372,7 +1370,7 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1372
1370
|
if (query === "" && selectedValue) clearSelection();
|
|
1373
1371
|
reset();
|
|
1374
1372
|
};
|
|
1375
|
-
const
|
|
1373
|
+
const select2 = (option2) => {
|
|
1376
1374
|
if (option2.disabled) return;
|
|
1377
1375
|
if (!isControlled) setInnerValue(option2.value);
|
|
1378
1376
|
if (option2.value !== selectedValue) onValueChange?.(option2.value);
|
|
@@ -1406,7 +1404,7 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1406
1404
|
if (open) {
|
|
1407
1405
|
event.preventDefault();
|
|
1408
1406
|
const option2 = filtered[activeIndex];
|
|
1409
|
-
if (option2)
|
|
1407
|
+
if (option2) select2(option2);
|
|
1410
1408
|
else close2();
|
|
1411
1409
|
}
|
|
1412
1410
|
break;
|
|
@@ -1426,6 +1424,14 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1426
1424
|
document.getElementById(optionId(activeIndex))?.scrollIntoView?.({ block: "nearest" });
|
|
1427
1425
|
}, [open, activeIndex]);
|
|
1428
1426
|
const hasOptions = filtered.length > 0;
|
|
1427
|
+
const noResults = open && !disabled && !hasOptions;
|
|
1428
|
+
const [announcedFor, setAnnouncedFor] = useState6(void 0);
|
|
1429
|
+
useEffect5(() => {
|
|
1430
|
+
if (!noResults) return;
|
|
1431
|
+
const timer2 = setTimeout(() => setAnnouncedFor(query), NO_RESULTS_ANNOUNCE_DELAY);
|
|
1432
|
+
return () => clearTimeout(timer2);
|
|
1433
|
+
}, [noResults, query]);
|
|
1434
|
+
const announceNoResults = noResults && announcedFor === query;
|
|
1429
1435
|
return /* @__PURE__ */ jsxs16("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
1430
1436
|
label6 && /* @__PURE__ */ jsxs16("label", { id: labelId, htmlFor: inputId, className: label, children: [
|
|
1431
1437
|
label6,
|
|
@@ -1544,7 +1550,7 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1544
1550
|
className: item4,
|
|
1545
1551
|
onMouseDown: (event) => event.preventDefault(),
|
|
1546
1552
|
onMouseMove: () => !option2.disabled && setActiveIndex(index),
|
|
1547
|
-
onClick: () =>
|
|
1553
|
+
onClick: () => select2(option2),
|
|
1548
1554
|
children: [
|
|
1549
1555
|
option2.label,
|
|
1550
1556
|
isSelected && /* @__PURE__ */ jsx20("span", { className: itemIndicator, "aria-hidden": true, children: /* @__PURE__ */ jsx20(CheckIcon, { size: 16 }) })
|
|
@@ -1555,10 +1561,14 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1555
1561
|
);
|
|
1556
1562
|
})
|
|
1557
1563
|
}
|
|
1558
|
-
) :
|
|
1564
|
+
) : (
|
|
1565
|
+
// 스크린리더 알림은 아래의 항상 있는 status 영역이 맡는다 (여기는 화면 표시만)
|
|
1566
|
+
/* @__PURE__ */ jsx20("div", { className: empty, children: emptyMessage })
|
|
1567
|
+
)
|
|
1559
1568
|
}
|
|
1560
1569
|
) })
|
|
1561
1570
|
] }),
|
|
1571
|
+
/* @__PURE__ */ jsx20("span", { role: "status", className: visuallyHidden, children: announceNoResults ? emptyMessage : "" }),
|
|
1562
1572
|
name && /* @__PURE__ */ jsx20("input", { type: "hidden", name, value: selectedValue ?? "" }),
|
|
1563
1573
|
helperText3 && /* @__PURE__ */ jsx20("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1564
1574
|
] });
|
|
@@ -2025,6 +2035,7 @@ var root8 = "r2jefr0";
|
|
|
2025
2035
|
|
|
2026
2036
|
// src/components/FileUpload/FileUpload.tsx
|
|
2027
2037
|
import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2038
|
+
var REMOVED_ANNOUNCE_DELAY = 500;
|
|
2028
2039
|
function formatSize(bytes) {
|
|
2029
2040
|
if (bytes < 1024) return `${bytes} B`;
|
|
2030
2041
|
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(bytes < 10 * 1024 ? 1 : 0)} KB`;
|
|
@@ -2075,6 +2086,8 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2075
2086
|
const selectButtonRef = useRef11(null);
|
|
2076
2087
|
const removeButtonRefs = useRef11([]);
|
|
2077
2088
|
const focusAfterRemove = useRef11(null);
|
|
2089
|
+
const announceTimer = useRef11(void 0);
|
|
2090
|
+
useEffect8(() => () => clearTimeout(announceTimer.current), []);
|
|
2078
2091
|
const selectLabel = m.fileSelect ?? "\uD30C\uC77C \uC120\uD0DD";
|
|
2079
2092
|
const reasonText = (rejection) => {
|
|
2080
2093
|
const fileName2 = rejection.file.name;
|
|
@@ -2083,10 +2096,16 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2083
2096
|
if (rejection.reason === "type") return m.fileTypeNotAllowed?.(fileName2) ?? `${fileName2}: \uC62C\uB9B4 \uC218 \uC5C6\uB294 \uD615\uC2DD\uC774\uC5D0\uC694.`;
|
|
2084
2097
|
return m.fileTooMany?.(maxFiles ?? 0) ?? `\uD30C\uC77C\uC740 ${maxFiles}\uAC1C\uAE4C\uC9C0 \uC62C\uB9B4 \uC218 \uC788\uC5B4\uC694.`;
|
|
2085
2098
|
};
|
|
2086
|
-
const
|
|
2099
|
+
const announce = (message, delay = 0) => {
|
|
2100
|
+
clearTimeout(announceTimer.current);
|
|
2101
|
+
if (delay === 0) return setAnnouncement(message);
|
|
2102
|
+
setAnnouncement("");
|
|
2103
|
+
announceTimer.current = setTimeout(() => setAnnouncement(message), delay);
|
|
2104
|
+
};
|
|
2105
|
+
const commit = (next, message, delay = 0) => {
|
|
2087
2106
|
if (!isControlled) setInnerFiles(next);
|
|
2088
2107
|
onValueChange?.(next);
|
|
2089
|
-
|
|
2108
|
+
announce(message, delay);
|
|
2090
2109
|
};
|
|
2091
2110
|
const addFiles = (incoming) => {
|
|
2092
2111
|
if (disabled || incoming.length === 0) return;
|
|
@@ -2107,14 +2126,14 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2107
2126
|
const summary = m.filesSelected?.(next.length) ?? `\uD30C\uC77C ${next.length}\uAC1C \uC120\uD0DD\uB428`;
|
|
2108
2127
|
const errors2 = [...new Set(rejected.map(reasonText))].join(" ");
|
|
2109
2128
|
if (accepted.length > 0) commit(next, [summary, errors2].filter(Boolean).join(" "));
|
|
2110
|
-
else
|
|
2129
|
+
else announce(errors2);
|
|
2111
2130
|
};
|
|
2112
2131
|
const removeAt = (index) => {
|
|
2113
2132
|
const removed = files[index];
|
|
2114
2133
|
const next = files.filter((_, i) => i !== index);
|
|
2115
2134
|
focusAfterRemove.current = Math.min(index, next.length - 1);
|
|
2116
2135
|
setRejections([]);
|
|
2117
|
-
commit(next, m.fileRemoved?.(removed.name) ?? `${removed.name} \uC0AD\uC81C\uB428
|
|
2136
|
+
commit(next, m.fileRemoved?.(removed.name) ?? `${removed.name} \uC0AD\uC81C\uB428`, REMOVED_ANNOUNCE_DELAY);
|
|
2118
2137
|
};
|
|
2119
2138
|
useEffect8(() => {
|
|
2120
2139
|
if (focusAfterRemove.current === null) return;
|
|
@@ -2203,7 +2222,7 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2203
2222
|
files.length > 0 && /* @__PURE__ */ jsx26("ul", { "aria-label": m.fileList ?? "\uC120\uD0DD\uD55C \uD30C\uC77C", className: list4, children: files.map((file, index) => /* @__PURE__ */ jsxs21("li", { className: item5, children: [
|
|
2204
2223
|
/* @__PURE__ */ jsx26("span", { className: fileIcon, "aria-hidden": true, children: /* @__PURE__ */ jsx26(FileIcon, { size: 16 }) }),
|
|
2205
2224
|
/* @__PURE__ */ jsx26("span", { className: fileName, children: file.name }),
|
|
2206
|
-
/* @__PURE__ */ jsx26("span", { className: fileSize, children: formatSize(file.size) }),
|
|
2225
|
+
/* @__PURE__ */ jsx26("span", { id: `${baseId}-size-${index}`, className: fileSize, children: formatSize(file.size) }),
|
|
2207
2226
|
/* @__PURE__ */ jsx26(
|
|
2208
2227
|
IconButton,
|
|
2209
2228
|
{
|
|
@@ -2212,6 +2231,7 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
|
2212
2231
|
},
|
|
2213
2232
|
size: "sm",
|
|
2214
2233
|
"aria-label": m.fileRemove?.(file.name) ?? `${file.name} \uC0AD\uC81C`,
|
|
2234
|
+
"aria-describedby": `${baseId}-size-${index}`,
|
|
2215
2235
|
disabled,
|
|
2216
2236
|
onClick: () => removeAt(index),
|
|
2217
2237
|
children: /* @__PURE__ */ jsx26(XIcon6, {})
|
|
@@ -2267,9 +2287,9 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef23(
|
|
|
2267
2287
|
}
|
|
2268
2288
|
);
|
|
2269
2289
|
var DropdownMenuItem = /* @__PURE__ */ forwardRef23(
|
|
2270
|
-
function DropdownMenuItem2({ icon:
|
|
2290
|
+
function DropdownMenuItem2({ icon: icon7, shortcut: shortcut2, color = "neutral", className, children, ...rest }, ref) {
|
|
2271
2291
|
return /* @__PURE__ */ jsxs22(RadixMenu.Item, { ref, className: cx(item6, color === "danger" && danger, className), ...rest, children: [
|
|
2272
|
-
|
|
2292
|
+
icon7 && /* @__PURE__ */ jsx27("span", { className: icon4, "aria-hidden": true, children: icon7 }),
|
|
2273
2293
|
children,
|
|
2274
2294
|
shortcut2 && /* @__PURE__ */ jsx27("span", { className: shortcut, "aria-hidden": true, children: shortcut2 })
|
|
2275
2295
|
] });
|
|
@@ -2304,9 +2324,9 @@ var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef23(
|
|
|
2304
2324
|
);
|
|
2305
2325
|
var DropdownMenuSub = RadixMenu.Sub;
|
|
2306
2326
|
var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef23(
|
|
2307
|
-
function DropdownMenuSubTrigger2({ icon:
|
|
2327
|
+
function DropdownMenuSubTrigger2({ icon: icon7, className, children, ...rest }, ref) {
|
|
2308
2328
|
return /* @__PURE__ */ jsxs22(RadixMenu.SubTrigger, { ref, className: cx(item6, subTrigger, className), ...rest, children: [
|
|
2309
|
-
|
|
2329
|
+
icon7 && /* @__PURE__ */ jsx27("span", { className: icon4, "aria-hidden": true, children: icon7 }),
|
|
2310
2330
|
children,
|
|
2311
2331
|
/* @__PURE__ */ jsx27("span", { className: subChevron, "aria-hidden": true, children: /* @__PURE__ */ jsx27(ChevronRightIcon3, { size: 16 }) })
|
|
2312
2332
|
] });
|
|
@@ -2331,7 +2351,7 @@ var DropdownMenuSubContent = /* @__PURE__ */ forwardRef23(
|
|
|
2331
2351
|
);
|
|
2332
2352
|
|
|
2333
2353
|
// src/components/NumberInput/NumberInput.tsx
|
|
2334
|
-
import { forwardRef as forwardRef24, useEffect as useEffect9, useId as useId10, useRef as useRef12 } from "react";
|
|
2354
|
+
import { forwardRef as forwardRef24, useEffect as useEffect9, useId as useId10, useRef as useRef12, useState as useState10 } from "react";
|
|
2335
2355
|
import { MinusIcon as MinusIcon2, PlusIcon } from "@bestow-ui/icons";
|
|
2336
2356
|
|
|
2337
2357
|
// src/components/NumberInput/NumberInput.css.ts
|
|
@@ -2418,9 +2438,12 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
|
2418
2438
|
if (parse(field4.raw) !== next) setRaw(toRaw(next));
|
|
2419
2439
|
}, [value3]);
|
|
2420
2440
|
const current2 = parse(field4.raw);
|
|
2421
|
-
const
|
|
2441
|
+
const valueText = (n) => `${format2(toRaw(n))}${unit2 ?? ""}`;
|
|
2442
|
+
const [announcement, setAnnouncement] = useState10("");
|
|
2443
|
+
const setValue = (next, announce = true) => {
|
|
2422
2444
|
setRaw(toRaw(next));
|
|
2423
2445
|
emit(next);
|
|
2446
|
+
if (announce) setAnnouncement(valueText(next));
|
|
2424
2447
|
};
|
|
2425
2448
|
const stepBy = (delta) => {
|
|
2426
2449
|
if (disabled || readOnly) return;
|
|
@@ -2476,13 +2499,17 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
|
2476
2499
|
"aria-valuenow": current2 ?? void 0,
|
|
2477
2500
|
"aria-valuemin": min,
|
|
2478
2501
|
"aria-valuemax": max,
|
|
2479
|
-
"aria-valuetext": current2 === null ? void 0 :
|
|
2502
|
+
"aria-valuetext": current2 === null ? void 0 : valueText(current2),
|
|
2480
2503
|
value: field4.display,
|
|
2481
|
-
onChange:
|
|
2504
|
+
onChange: (event) => {
|
|
2505
|
+
setAnnouncement("");
|
|
2506
|
+
field4.onChange(event);
|
|
2507
|
+
},
|
|
2482
2508
|
onKeyDown: handleKeyDown,
|
|
2483
2509
|
onBlur: (event) => {
|
|
2484
|
-
if (current2 !== null && clamp(current2) !== current2) setValue(clamp(current2));
|
|
2510
|
+
if (current2 !== null && clamp(current2) !== current2) setValue(clamp(current2), false);
|
|
2485
2511
|
else if (current2 === null && field4.raw !== "") setRaw("");
|
|
2512
|
+
setAnnouncement("");
|
|
2486
2513
|
onBlur?.(event);
|
|
2487
2514
|
},
|
|
2488
2515
|
size,
|
|
@@ -2497,14 +2524,15 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
|
2497
2524
|
...rest
|
|
2498
2525
|
}
|
|
2499
2526
|
),
|
|
2500
|
-
name && /* @__PURE__ */ jsx28("input", { type: "hidden", name, value: current2 === null ? "" : String(current2) })
|
|
2527
|
+
name && /* @__PURE__ */ jsx28("input", { type: "hidden", name, value: current2 === null ? "" : String(current2) }),
|
|
2528
|
+
/* @__PURE__ */ jsx28("span", { "aria-live": "assertive", "aria-atomic": "true", className: visuallyHidden, children: announcement })
|
|
2501
2529
|
] });
|
|
2502
2530
|
}
|
|
2503
2531
|
);
|
|
2504
2532
|
|
|
2505
2533
|
// src/components/Pagination/Pagination.tsx
|
|
2506
2534
|
import { ChevronLeftIcon as ChevronLeftIcon2, ChevronRightIcon as ChevronRightIcon4 } from "@bestow-ui/icons";
|
|
2507
|
-
import { forwardRef as forwardRef25, useState as
|
|
2535
|
+
import { forwardRef as forwardRef25, useState as useState11 } from "react";
|
|
2508
2536
|
|
|
2509
2537
|
// src/components/Pagination/getPaginationItems.ts
|
|
2510
2538
|
var range = (start, end2) => end2 < start ? [] : Array.from({ length: end2 - start + 1 }, (_, i) => start + i);
|
|
@@ -2551,7 +2579,7 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
|
|
|
2551
2579
|
"aria-label": ariaLabelProp,
|
|
2552
2580
|
...rest
|
|
2553
2581
|
}, ref) {
|
|
2554
|
-
const [uncontrolledPage, setUncontrolledPage] =
|
|
2582
|
+
const [uncontrolledPage, setUncontrolledPage] = useState11(defaultPage);
|
|
2555
2583
|
const m = useMessages();
|
|
2556
2584
|
const ariaLabel = ariaLabelProp ?? m.pagination ?? "\uD398\uC774\uC9C0 \uD0D0\uC0C9";
|
|
2557
2585
|
const getItemLabel = getItemLabelProp ?? ((type, n) => type === "previous" ? m.paginationPrevious ?? "\uC774\uC804 \uD398\uC774\uC9C0" : type === "next" ? m.paginationNext ?? "\uB2E4\uC74C \uD398\uC774\uC9C0" : m.paginationPage?.(n) ?? `${n} \uD398\uC774\uC9C0`);
|
|
@@ -2604,6 +2632,7 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
|
|
|
2604
2632
|
|
|
2605
2633
|
// src/components/PhoneNumberInput/PhoneNumberInput.tsx
|
|
2606
2634
|
import { forwardRef as forwardRef26, useRef as useRef13 } from "react";
|
|
2635
|
+
import { formatPhoneNumber, phoneNumberMaxDigits } from "@bestow-ui/korean-utils";
|
|
2607
2636
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2608
2637
|
var sanitize3 = (input6) => {
|
|
2609
2638
|
const digits = input6.replace(/\D/g, "");
|
|
@@ -2656,7 +2685,7 @@ var PhoneNumberInput = /* @__PURE__ */ forwardRef26(
|
|
|
2656
2685
|
);
|
|
2657
2686
|
|
|
2658
2687
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
2659
|
-
import { forwardRef as forwardRef27, useId as useId11, useState as
|
|
2688
|
+
import { forwardRef as forwardRef27, useId as useId11, useState as useState12 } from "react";
|
|
2660
2689
|
|
|
2661
2690
|
// src/components/RadioGroup/RadioGroup.css.ts
|
|
2662
2691
|
import { createRuntimeFn as _7a46813 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -2689,7 +2718,7 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
|
|
|
2689
2718
|
className
|
|
2690
2719
|
} = props;
|
|
2691
2720
|
const isControlled = "value" in props;
|
|
2692
|
-
const [innerValue, setInnerValue] =
|
|
2721
|
+
const [innerValue, setInnerValue] = useState12(defaultValue ?? "");
|
|
2693
2722
|
const current2 = isControlled ? value3 ?? "" : innerValue;
|
|
2694
2723
|
const generatedId = useId11();
|
|
2695
2724
|
const baseId = id ?? generatedId;
|
|
@@ -2756,7 +2785,7 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
|
|
|
2756
2785
|
});
|
|
2757
2786
|
|
|
2758
2787
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2759
|
-
import { forwardRef as forwardRef28, useId as useId12, useRef as useRef14, useState as
|
|
2788
|
+
import { forwardRef as forwardRef28, useId as useId12, useRef as useRef14, useState as useState13 } from "react";
|
|
2760
2789
|
|
|
2761
2790
|
// src/components/SegmentedControl/SegmentedControl.css.ts
|
|
2762
2791
|
import { createRuntimeFn as _7a46814 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -2784,13 +2813,13 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2784
2813
|
className
|
|
2785
2814
|
} = props;
|
|
2786
2815
|
const isControlled = "value" in props;
|
|
2787
|
-
const [innerValue, setInnerValue] =
|
|
2816
|
+
const [innerValue, setInnerValue] = useState13(defaultValue ?? "");
|
|
2788
2817
|
const current2 = isControlled ? value3 ?? "" : innerValue;
|
|
2789
2818
|
const generatedId = useId12();
|
|
2790
2819
|
const labelId = label6 ? `${id ?? generatedId}-label` : void 0;
|
|
2791
2820
|
const itemRefs = useRef14([]);
|
|
2792
2821
|
const isEnabled = (index) => !disabled && !options[index]?.disabled;
|
|
2793
|
-
const
|
|
2822
|
+
const select2 = (index) => {
|
|
2794
2823
|
const next = options[index].value;
|
|
2795
2824
|
if (next === current2) return;
|
|
2796
2825
|
if (!isControlled) setInnerValue(next);
|
|
@@ -2817,7 +2846,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2817
2846
|
if (target < 0) return;
|
|
2818
2847
|
event.preventDefault();
|
|
2819
2848
|
itemRefs.current[target]?.focus();
|
|
2820
|
-
|
|
2849
|
+
select2(target);
|
|
2821
2850
|
};
|
|
2822
2851
|
const group = /* @__PURE__ */ jsxs26(
|
|
2823
2852
|
"div",
|
|
@@ -2846,7 +2875,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2846
2875
|
"data-state": checked ? "checked" : "unchecked",
|
|
2847
2876
|
"data-disabled": isEnabled(index) ? void 0 : "",
|
|
2848
2877
|
className: item8({ size, fullWidth }),
|
|
2849
|
-
onClick: () =>
|
|
2878
|
+
onClick: () => select2(index),
|
|
2850
2879
|
onKeyDown: (event) => handleKeyDown(event, index),
|
|
2851
2880
|
children: [
|
|
2852
2881
|
option2.icon && /* @__PURE__ */ jsx32("span", { "aria-hidden": true, className: icon5, children: option2.icon }),
|
|
@@ -2868,12 +2897,91 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
|
2868
2897
|
}
|
|
2869
2898
|
);
|
|
2870
2899
|
|
|
2871
|
-
// src/components/
|
|
2872
|
-
import * as RadixSelect from "@radix-ui/react-select";
|
|
2900
|
+
// src/components/NativeSelect/NativeSelect.tsx
|
|
2873
2901
|
import { forwardRef as forwardRef29, useId as useId13 } from "react";
|
|
2874
|
-
import {
|
|
2902
|
+
import { ChevronDownIcon as ChevronDownIcon4 } from "@bestow-ui/icons";
|
|
2903
|
+
|
|
2904
|
+
// src/components/NativeSelect/NativeSelect.css.ts
|
|
2905
|
+
import { createRuntimeFn as _7a46815 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
2906
|
+
var icon6 = /* @__PURE__ */ _7a46815({ defaultClassName: "_5silym5", variantClassNames: { size: { sm: "_5silym6", md: "_5silym7", lg: "_5silym8" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
2907
|
+
var select = /* @__PURE__ */ _7a46815({ defaultClassName: "_5silym1", variantClassNames: { size: { sm: "_5silym2", md: "_5silym3", lg: "_5silym4" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
2908
|
+
var wrapper = "_5silym0";
|
|
2909
|
+
|
|
2910
|
+
// src/components/NativeSelect/NativeSelect.tsx
|
|
2875
2911
|
import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2876
|
-
var
|
|
2912
|
+
var NativeSelect = /* @__PURE__ */ forwardRef29(function NativeSelect2({
|
|
2913
|
+
options,
|
|
2914
|
+
onValueChange,
|
|
2915
|
+
onChange,
|
|
2916
|
+
placeholder,
|
|
2917
|
+
label: label6,
|
|
2918
|
+
helperText: helperText3,
|
|
2919
|
+
error,
|
|
2920
|
+
size,
|
|
2921
|
+
fullWidth,
|
|
2922
|
+
required,
|
|
2923
|
+
disabled,
|
|
2924
|
+
id,
|
|
2925
|
+
value: value3,
|
|
2926
|
+
defaultValue,
|
|
2927
|
+
className,
|
|
2928
|
+
children,
|
|
2929
|
+
"aria-describedby": ariaDescribedBy,
|
|
2930
|
+
...rest
|
|
2931
|
+
}, ref) {
|
|
2932
|
+
const generatedId = useId13();
|
|
2933
|
+
const selectId = id ?? generatedId;
|
|
2934
|
+
const helperId = helperText3 ? `${selectId}-helper` : void 0;
|
|
2935
|
+
const handleChange = (event) => {
|
|
2936
|
+
onChange?.(event);
|
|
2937
|
+
onValueChange?.(event.target.value);
|
|
2938
|
+
};
|
|
2939
|
+
return /* @__PURE__ */ jsxs27("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
2940
|
+
label6 && /* @__PURE__ */ jsxs27("label", { htmlFor: selectId, className: label, children: [
|
|
2941
|
+
label6,
|
|
2942
|
+
required && /* @__PURE__ */ jsx33("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2943
|
+
] }),
|
|
2944
|
+
/* @__PURE__ */ jsxs27(
|
|
2945
|
+
"span",
|
|
2946
|
+
{
|
|
2947
|
+
className: cx(root3({ size, fullWidth }), wrapper),
|
|
2948
|
+
"data-invalid": error || void 0,
|
|
2949
|
+
"data-disabled": disabled || void 0,
|
|
2950
|
+
children: [
|
|
2951
|
+
/* @__PURE__ */ jsxs27(
|
|
2952
|
+
"select",
|
|
2953
|
+
{
|
|
2954
|
+
ref,
|
|
2955
|
+
id: selectId,
|
|
2956
|
+
value: value3,
|
|
2957
|
+
defaultValue: value3 === void 0 && defaultValue === void 0 && placeholder !== void 0 ? "" : defaultValue,
|
|
2958
|
+
onChange: handleChange,
|
|
2959
|
+
required,
|
|
2960
|
+
disabled,
|
|
2961
|
+
"aria-invalid": error || void 0,
|
|
2962
|
+
"aria-describedby": cx(helperId, ariaDescribedBy) || void 0,
|
|
2963
|
+
className: cx(select({ size }), className),
|
|
2964
|
+
...rest,
|
|
2965
|
+
children: [
|
|
2966
|
+
placeholder !== void 0 && /* @__PURE__ */ jsx33("option", { value: "", disabled: true, children: placeholder }),
|
|
2967
|
+
options ? options.map((option2) => /* @__PURE__ */ jsx33("option", { value: option2.value, disabled: option2.disabled, children: option2.label }, option2.value)) : children
|
|
2968
|
+
]
|
|
2969
|
+
}
|
|
2970
|
+
),
|
|
2971
|
+
/* @__PURE__ */ jsx33(ChevronDownIcon4, { size: 16, className: icon6({ size }) })
|
|
2972
|
+
]
|
|
2973
|
+
}
|
|
2974
|
+
),
|
|
2975
|
+
helperText3 && /* @__PURE__ */ jsx33("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
2976
|
+
] });
|
|
2977
|
+
});
|
|
2978
|
+
|
|
2979
|
+
// src/components/Select/Select.tsx
|
|
2980
|
+
import * as RadixSelect from "@radix-ui/react-select";
|
|
2981
|
+
import { forwardRef as forwardRef30, useId as useId14 } from "react";
|
|
2982
|
+
import { CheckIcon as CheckIcon3, ChevronDownIcon as ChevronDownIcon5 } from "@bestow-ui/icons";
|
|
2983
|
+
import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2984
|
+
var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
|
|
2877
2985
|
const {
|
|
2878
2986
|
options,
|
|
2879
2987
|
value: value3,
|
|
@@ -2893,16 +3001,16 @@ var Select = /* @__PURE__ */ forwardRef29(function Select2(props, ref) {
|
|
|
2893
3001
|
className
|
|
2894
3002
|
} = props;
|
|
2895
3003
|
const isControlled = "value" in props;
|
|
2896
|
-
const generatedId =
|
|
3004
|
+
const generatedId = useId14();
|
|
2897
3005
|
const triggerId = id ?? generatedId;
|
|
2898
3006
|
const helperId = helperText3 ? `${triggerId}-helper` : void 0;
|
|
2899
3007
|
const portal2 = usePortalProps();
|
|
2900
|
-
return /* @__PURE__ */
|
|
2901
|
-
label6 && /* @__PURE__ */
|
|
3008
|
+
return /* @__PURE__ */ jsxs28("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
3009
|
+
label6 && /* @__PURE__ */ jsxs28("label", { htmlFor: triggerId, className: label, children: [
|
|
2902
3010
|
label6,
|
|
2903
|
-
required && /* @__PURE__ */
|
|
3011
|
+
required && /* @__PURE__ */ jsx34("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2904
3012
|
] }),
|
|
2905
|
-
/* @__PURE__ */
|
|
3013
|
+
/* @__PURE__ */ jsxs28(
|
|
2906
3014
|
RadixSelect.Root,
|
|
2907
3015
|
{
|
|
2908
3016
|
value: isControlled ? value3 ?? "" : void 0,
|
|
@@ -2912,7 +3020,7 @@ var Select = /* @__PURE__ */ forwardRef29(function Select2(props, ref) {
|
|
|
2912
3020
|
required,
|
|
2913
3021
|
name,
|
|
2914
3022
|
children: [
|
|
2915
|
-
/* @__PURE__ */
|
|
3023
|
+
/* @__PURE__ */ jsxs28(
|
|
2916
3024
|
RadixSelect.Trigger,
|
|
2917
3025
|
{
|
|
2918
3026
|
ref,
|
|
@@ -2923,12 +3031,12 @@ var Select = /* @__PURE__ */ forwardRef29(function Select2(props, ref) {
|
|
|
2923
3031
|
"data-invalid": error || void 0,
|
|
2924
3032
|
className: cx(root3({ size, fullWidth }), trigger2, className),
|
|
2925
3033
|
children: [
|
|
2926
|
-
/* @__PURE__ */
|
|
2927
|
-
/* @__PURE__ */
|
|
3034
|
+
/* @__PURE__ */ jsx34("span", { className: value, children: /* @__PURE__ */ jsx34(RadixSelect.Value, { placeholder }) }),
|
|
3035
|
+
/* @__PURE__ */ jsx34(RadixSelect.Icon, { className: icon3, children: /* @__PURE__ */ jsx34(ChevronDownIcon5, { size: 16 }) })
|
|
2928
3036
|
]
|
|
2929
3037
|
}
|
|
2930
3038
|
),
|
|
2931
|
-
/* @__PURE__ */
|
|
3039
|
+
/* @__PURE__ */ jsx34(RadixSelect.Portal, { children: /* @__PURE__ */ jsx34(
|
|
2932
3040
|
RadixSelect.Content,
|
|
2933
3041
|
{
|
|
2934
3042
|
position: "popper",
|
|
@@ -2936,15 +3044,15 @@ var Select = /* @__PURE__ */ forwardRef29(function Select2(props, ref) {
|
|
|
2936
3044
|
collisionPadding: 8,
|
|
2937
3045
|
className: cx(portal2.className, content5),
|
|
2938
3046
|
style: portal2.style,
|
|
2939
|
-
children: /* @__PURE__ */
|
|
3047
|
+
children: /* @__PURE__ */ jsx34(RadixSelect.Viewport, { className: viewport, children: options.map((option2) => /* @__PURE__ */ jsxs28(
|
|
2940
3048
|
RadixSelect.Item,
|
|
2941
3049
|
{
|
|
2942
3050
|
value: option2.value,
|
|
2943
3051
|
disabled: option2.disabled,
|
|
2944
3052
|
className: item4,
|
|
2945
3053
|
children: [
|
|
2946
|
-
/* @__PURE__ */
|
|
2947
|
-
/* @__PURE__ */
|
|
3054
|
+
/* @__PURE__ */ jsx34(RadixSelect.ItemText, { children: option2.label }),
|
|
3055
|
+
/* @__PURE__ */ jsx34(RadixSelect.ItemIndicator, { className: itemIndicator, children: /* @__PURE__ */ jsx34(CheckIcon3, { size: 16 }) })
|
|
2948
3056
|
]
|
|
2949
3057
|
},
|
|
2950
3058
|
option2.value
|
|
@@ -2954,19 +3062,19 @@ var Select = /* @__PURE__ */ forwardRef29(function Select2(props, ref) {
|
|
|
2954
3062
|
]
|
|
2955
3063
|
}
|
|
2956
3064
|
),
|
|
2957
|
-
helperText3 && /* @__PURE__ */
|
|
3065
|
+
helperText3 && /* @__PURE__ */ jsx34("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
2958
3066
|
] });
|
|
2959
3067
|
});
|
|
2960
3068
|
|
|
2961
3069
|
// src/components/SkipLink/SkipLink.tsx
|
|
2962
|
-
import { forwardRef as
|
|
3070
|
+
import { forwardRef as forwardRef31 } from "react";
|
|
2963
3071
|
|
|
2964
3072
|
// src/components/SkipLink/SkipLink.css.ts
|
|
2965
3073
|
var skipLink = "_1t9jaar0";
|
|
2966
3074
|
|
|
2967
3075
|
// src/components/SkipLink/SkipLink.tsx
|
|
2968
|
-
import { jsx as
|
|
2969
|
-
var SkipLink = /* @__PURE__ */
|
|
3076
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
3077
|
+
var SkipLink = /* @__PURE__ */ forwardRef31(function SkipLink2({ href = "#main", className, children, onClick, ...rest }, ref) {
|
|
2970
3078
|
const m = useMessages();
|
|
2971
3079
|
const handleClick = (event) => {
|
|
2972
3080
|
onClick?.(event);
|
|
@@ -2978,28 +3086,28 @@ var SkipLink = /* @__PURE__ */ forwardRef30(function SkipLink2({ href = "#main",
|
|
|
2978
3086
|
target.focus();
|
|
2979
3087
|
target.scrollIntoView?.({ block: "start" });
|
|
2980
3088
|
};
|
|
2981
|
-
return /* @__PURE__ */
|
|
3089
|
+
return /* @__PURE__ */ jsx35("a", { ref, href, className: cx(skipLink, className), onClick: handleClick, ...rest, children: children ?? m.skipToContent ?? "\uBCF8\uBB38 \uBC14\uB85C\uAC00\uAE30" });
|
|
2982
3090
|
});
|
|
2983
3091
|
|
|
2984
3092
|
// src/components/Slider/Slider.tsx
|
|
2985
3093
|
import * as RadixSlider from "@radix-ui/react-slider";
|
|
2986
|
-
import { forwardRef as
|
|
3094
|
+
import { forwardRef as forwardRef32, useId as useId15, useState as useState14 } from "react";
|
|
2987
3095
|
|
|
2988
3096
|
// src/components/Slider/Slider.css.ts
|
|
2989
|
-
import { createRuntimeFn as
|
|
3097
|
+
import { createRuntimeFn as _7a46816 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
2990
3098
|
var field3 = "_126mzjm0";
|
|
2991
3099
|
var header6 = "_126mzjm1";
|
|
2992
3100
|
var helperText2 = "_126mzjm4";
|
|
2993
3101
|
var label3 = "_126mzjm2";
|
|
2994
3102
|
var range2 = "_126mzjmb";
|
|
2995
|
-
var root10 = /* @__PURE__ */
|
|
2996
|
-
var thumb = /* @__PURE__ */
|
|
2997
|
-
var track = /* @__PURE__ */
|
|
3103
|
+
var root10 = /* @__PURE__ */ _7a46816({ defaultClassName: "_126mzjm5", variantClassNames: { size: { sm: "_126mzjm6", md: "_126mzjm7" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3104
|
+
var thumb = /* @__PURE__ */ _7a46816({ defaultClassName: "_126mzjmc", variantClassNames: { size: { sm: "_126mzjmd", md: "_126mzjme" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3105
|
+
var track = /* @__PURE__ */ _7a46816({ defaultClassName: "_126mzjm8", variantClassNames: { size: { sm: "_126mzjm9", md: "_126mzjma" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
2998
3106
|
var value2 = "_126mzjm3";
|
|
2999
3107
|
|
|
3000
3108
|
// src/components/Slider/Slider.tsx
|
|
3001
|
-
import { jsx as
|
|
3002
|
-
var Slider = /* @__PURE__ */
|
|
3109
|
+
import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3110
|
+
var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
|
|
3003
3111
|
const {
|
|
3004
3112
|
value: value3,
|
|
3005
3113
|
defaultValue,
|
|
@@ -3020,12 +3128,12 @@ var Slider = /* @__PURE__ */ forwardRef31(function Slider2(props, ref) {
|
|
|
3020
3128
|
} = props;
|
|
3021
3129
|
const m = useMessages();
|
|
3022
3130
|
const thumbLabels = thumbLabelsProp ?? [m.rangeStart ?? "\uCD5C\uC18C", m.rangeEnd ?? "\uCD5C\uB300"];
|
|
3023
|
-
const generatedId =
|
|
3131
|
+
const generatedId = useId15();
|
|
3024
3132
|
const baseId = id ?? generatedId;
|
|
3025
3133
|
const labelId = `${baseId}-label`;
|
|
3026
3134
|
const helperId = `${baseId}-helper`;
|
|
3027
3135
|
const isControlled = "value" in props;
|
|
3028
|
-
const [innerValue, setInnerValue] =
|
|
3136
|
+
const [innerValue, setInnerValue] = useState14(defaultValue ?? [min]);
|
|
3029
3137
|
const current2 = isControlled ? value3 ?? [min] : innerValue;
|
|
3030
3138
|
const isRange = current2.length > 1;
|
|
3031
3139
|
const handleChange = (next) => {
|
|
@@ -3033,12 +3141,12 @@ var Slider = /* @__PURE__ */ forwardRef31(function Slider2(props, ref) {
|
|
|
3033
3141
|
onValueChange?.(next);
|
|
3034
3142
|
};
|
|
3035
3143
|
const valueText = current2.map(formatValue).join(" \u2013 ");
|
|
3036
|
-
return /* @__PURE__ */
|
|
3037
|
-
(label6 || showValue) && /* @__PURE__ */
|
|
3038
|
-
label6 && /* @__PURE__ */
|
|
3039
|
-
showValue && /* @__PURE__ */
|
|
3144
|
+
return /* @__PURE__ */ jsxs29("div", { className: cx(field3, className), children: [
|
|
3145
|
+
(label6 || showValue) && /* @__PURE__ */ jsxs29("div", { className: header6, children: [
|
|
3146
|
+
label6 && /* @__PURE__ */ jsx36("span", { id: labelId, className: label3, children: label6 }),
|
|
3147
|
+
showValue && /* @__PURE__ */ jsx36("span", { className: value2, "aria-hidden": true, children: valueText })
|
|
3040
3148
|
] }),
|
|
3041
|
-
/* @__PURE__ */
|
|
3149
|
+
/* @__PURE__ */ jsxs29(
|
|
3042
3150
|
RadixSlider.Root,
|
|
3043
3151
|
{
|
|
3044
3152
|
ref,
|
|
@@ -3051,10 +3159,10 @@ var Slider = /* @__PURE__ */ forwardRef31(function Slider2(props, ref) {
|
|
|
3051
3159
|
className: root10({ size }),
|
|
3052
3160
|
...rest,
|
|
3053
3161
|
children: [
|
|
3054
|
-
/* @__PURE__ */
|
|
3162
|
+
/* @__PURE__ */ jsx36(RadixSlider.Track, { className: track({ size }), children: /* @__PURE__ */ jsx36(RadixSlider.Range, { className: range2 }) }),
|
|
3055
3163
|
current2.map((thumbValue, index) => {
|
|
3056
3164
|
const thumbLabelId = `${baseId}-thumb-${index}`;
|
|
3057
|
-
return /* @__PURE__ */
|
|
3165
|
+
return /* @__PURE__ */ jsx36(
|
|
3058
3166
|
RadixSlider.Thumb,
|
|
3059
3167
|
{
|
|
3060
3168
|
className: thumb({ size }),
|
|
@@ -3069,32 +3177,32 @@ var Slider = /* @__PURE__ */ forwardRef31(function Slider2(props, ref) {
|
|
|
3069
3177
|
]
|
|
3070
3178
|
}
|
|
3071
3179
|
),
|
|
3072
|
-
isRange && current2.map((_, index) => /* @__PURE__ */
|
|
3180
|
+
isRange && current2.map((_, index) => /* @__PURE__ */ jsxs29("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
|
|
3073
3181
|
label6 ? "" : ariaLabel ? `${ariaLabel} ` : "",
|
|
3074
3182
|
thumbLabels[index] ?? `${index + 1}`
|
|
3075
3183
|
] }, index)),
|
|
3076
|
-
helperText3 && /* @__PURE__ */
|
|
3184
|
+
helperText3 && /* @__PURE__ */ jsx36("span", { id: helperId, className: helperText2, children: helperText3 })
|
|
3077
3185
|
] });
|
|
3078
3186
|
});
|
|
3079
3187
|
|
|
3080
3188
|
// src/components/Stepper/Stepper.tsx
|
|
3081
|
-
import { forwardRef as
|
|
3189
|
+
import { forwardRef as forwardRef33 } from "react";
|
|
3082
3190
|
import { CheckIcon as CheckIcon4 } from "@bestow-ui/icons";
|
|
3083
3191
|
|
|
3084
3192
|
// src/components/Stepper/Stepper.css.ts
|
|
3085
|
-
import { createRuntimeFn as
|
|
3193
|
+
import { createRuntimeFn as _7a46817 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3086
3194
|
var description5 = "kervhmh";
|
|
3087
|
-
var indicator2 = /* @__PURE__ */
|
|
3088
|
-
var label4 = /* @__PURE__ */
|
|
3089
|
-
var root11 = /* @__PURE__ */
|
|
3090
|
-
var step = /* @__PURE__ */
|
|
3091
|
-
var text2 = /* @__PURE__ */
|
|
3195
|
+
var indicator2 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhm6", variantClassNames: { status: { complete: "kervhm7", current: "kervhm8", upcoming: "kervhm9" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3196
|
+
var label4 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhmd", variantClassNames: { status: { complete: "kervhme", current: "kervhmf", upcoming: "kervhmg" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3197
|
+
var root11 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhm0", variantClassNames: { orientation: { horizontal: "kervhm1", vertical: "kervhm2" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
|
|
3198
|
+
var step = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhm3", variantClassNames: { orientation: { horizontal: "kervhm4", vertical: "kervhm5" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
|
|
3199
|
+
var text2 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhma", variantClassNames: { orientation: { horizontal: "kervhmb", vertical: "kervhmc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3092
3200
|
|
|
3093
3201
|
// src/components/Stepper/Stepper.tsx
|
|
3094
|
-
import { jsx as
|
|
3095
|
-
var Stepper = /* @__PURE__ */
|
|
3202
|
+
import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3203
|
+
var Stepper = /* @__PURE__ */ forwardRef33(function Stepper2({ steps, current: current2, orientation = "horizontal", "aria-label": ariaLabel, className, ...rest }, ref) {
|
|
3096
3204
|
const m = useMessages();
|
|
3097
|
-
return /* @__PURE__ */
|
|
3205
|
+
return /* @__PURE__ */ jsx37(
|
|
3098
3206
|
"ol",
|
|
3099
3207
|
{
|
|
3100
3208
|
ref,
|
|
@@ -3103,24 +3211,24 @@ var Stepper = /* @__PURE__ */ forwardRef32(function Stepper2({ steps, current: c
|
|
|
3103
3211
|
...rest,
|
|
3104
3212
|
children: steps.map((step2, index) => {
|
|
3105
3213
|
const status = index < current2 ? "complete" : index === current2 ? "current" : "upcoming";
|
|
3106
|
-
return /* @__PURE__ */
|
|
3214
|
+
return /* @__PURE__ */ jsxs30(
|
|
3107
3215
|
"li",
|
|
3108
3216
|
{
|
|
3109
3217
|
className: step({ orientation }),
|
|
3110
3218
|
"data-status": status,
|
|
3111
3219
|
"aria-current": status === "current" ? "step" : void 0,
|
|
3112
3220
|
children: [
|
|
3113
|
-
/* @__PURE__ */
|
|
3114
|
-
/* @__PURE__ */
|
|
3115
|
-
/* @__PURE__ */
|
|
3221
|
+
/* @__PURE__ */ jsx37("span", { className: indicator2({ status }), "aria-hidden": true, children: status === "complete" ? /* @__PURE__ */ jsx37(CheckIcon4, { size: 16, strokeWidth: 2.5 }) : index + 1 }),
|
|
3222
|
+
/* @__PURE__ */ jsxs30("span", { className: text2({ orientation }), children: [
|
|
3223
|
+
/* @__PURE__ */ jsxs30("span", { className: label4({ status }), children: [
|
|
3116
3224
|
step2.label,
|
|
3117
|
-
status === "complete" && /* @__PURE__ */
|
|
3225
|
+
status === "complete" && /* @__PURE__ */ jsxs30("span", { className: visuallyHidden, children: [
|
|
3118
3226
|
" (",
|
|
3119
3227
|
m.stepCompleted ?? "\uC644\uB8CC",
|
|
3120
3228
|
")"
|
|
3121
3229
|
] })
|
|
3122
3230
|
] }),
|
|
3123
|
-
step2.description && /* @__PURE__ */
|
|
3231
|
+
step2.description && /* @__PURE__ */ jsx37("span", { className: description5, children: step2.description })
|
|
3124
3232
|
] })
|
|
3125
3233
|
]
|
|
3126
3234
|
},
|
|
@@ -3132,52 +3240,125 @@ var Stepper = /* @__PURE__ */ forwardRef32(function Stepper2({ steps, current: c
|
|
|
3132
3240
|
});
|
|
3133
3241
|
|
|
3134
3242
|
// src/components/Switch/Switch.tsx
|
|
3135
|
-
import
|
|
3136
|
-
import { forwardRef as forwardRef33, useId as useId15 } from "react";
|
|
3243
|
+
import { forwardRef as forwardRef34, useEffect as useEffect10, useId as useId16, useRef as useRef15, useState as useState15 } from "react";
|
|
3137
3244
|
|
|
3138
3245
|
// src/components/Switch/Switch.css.ts
|
|
3139
|
-
import { createRuntimeFn as
|
|
3140
|
-
var
|
|
3141
|
-
var
|
|
3142
|
-
var
|
|
3143
|
-
var
|
|
3246
|
+
import { createRuntimeFn as _7a46818 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3247
|
+
var bubbleInput = /* @__PURE__ */ _7a46818({ defaultClassName: "o33ul29", variantClassNames: { size: { sm: "o33ul2a", md: "o33ul2b" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3248
|
+
var label5 = "o33ul2c";
|
|
3249
|
+
var root12 = /* @__PURE__ */ _7a46818({ defaultClassName: "o33ul20", variantClassNames: { size: { sm: "o33ul21", md: "o33ul22" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3250
|
+
var thumb2 = /* @__PURE__ */ _7a46818({ defaultClassName: "o33ul26", variantClassNames: { size: { sm: "o33ul27", md: "o33ul28" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3251
|
+
var track2 = /* @__PURE__ */ _7a46818({ defaultClassName: "o33ul23", variantClassNames: { size: { sm: "o33ul24", md: "o33ul25" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3144
3252
|
|
|
3145
3253
|
// src/components/Switch/Switch.tsx
|
|
3146
|
-
import { jsx as
|
|
3147
|
-
|
|
3148
|
-
|
|
3254
|
+
import { jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3255
|
+
function setNativeChecked(input6, checked) {
|
|
3256
|
+
Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "checked")?.set?.call(input6, checked);
|
|
3257
|
+
}
|
|
3258
|
+
var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
|
|
3259
|
+
label: label6,
|
|
3260
|
+
size,
|
|
3261
|
+
id,
|
|
3262
|
+
className,
|
|
3263
|
+
disabled,
|
|
3264
|
+
required,
|
|
3265
|
+
name,
|
|
3266
|
+
value: value3 = "on",
|
|
3267
|
+
checked: checkedProp,
|
|
3268
|
+
defaultChecked,
|
|
3269
|
+
onCheckedChange,
|
|
3270
|
+
"aria-label": ariaLabel
|
|
3271
|
+
}, ref) {
|
|
3272
|
+
const generatedId = useId16();
|
|
3149
3273
|
const switchId = id ?? generatedId;
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3274
|
+
const [uncontrolled, setUncontrolled] = useState15(defaultChecked ?? false);
|
|
3275
|
+
const isControlled = checkedProp !== void 0;
|
|
3276
|
+
const checked = isControlled ? checkedProp : uncontrolled;
|
|
3277
|
+
const buttonRef = useRef15(null);
|
|
3278
|
+
const inputRef = useRef15(null);
|
|
3279
|
+
const [inForm, setInForm] = useState15(true);
|
|
3280
|
+
const userToggled = useRef15(false);
|
|
3281
|
+
const setChecked = (next) => {
|
|
3282
|
+
if (!isControlled) setUncontrolled(next);
|
|
3283
|
+
if (next !== checked) onCheckedChange?.(next);
|
|
3284
|
+
};
|
|
3285
|
+
const setCheckedRef = useRef15(setChecked);
|
|
3286
|
+
setCheckedRef.current = setChecked;
|
|
3287
|
+
useEffect10(() => {
|
|
3288
|
+
const form = buttonRef.current?.form;
|
|
3289
|
+
setInForm(!!form);
|
|
3290
|
+
if (!form) return;
|
|
3291
|
+
const initial = checked;
|
|
3292
|
+
const onReset = () => setCheckedRef.current(initial);
|
|
3293
|
+
form.addEventListener("reset", onReset);
|
|
3294
|
+
return () => form.removeEventListener("reset", onReset);
|
|
3295
|
+
}, []);
|
|
3296
|
+
useEffect10(() => {
|
|
3297
|
+
const input6 = inputRef.current;
|
|
3298
|
+
if (!input6 || input6.checked === checked) return;
|
|
3299
|
+
setNativeChecked(input6, checked);
|
|
3300
|
+
if (userToggled.current) input6.dispatchEvent(new Event("click", { bubbles: true }));
|
|
3301
|
+
userToggled.current = false;
|
|
3302
|
+
}, [checked]);
|
|
3303
|
+
const handleClick = (event) => {
|
|
3304
|
+
userToggled.current = true;
|
|
3305
|
+
setChecked(!checked);
|
|
3306
|
+
if (inForm) event.stopPropagation();
|
|
3307
|
+
};
|
|
3308
|
+
const state = checked ? "checked" : "unchecked";
|
|
3309
|
+
return /* @__PURE__ */ jsxs31("span", { className: cx(root12({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
3310
|
+
/* @__PURE__ */ jsx38(
|
|
3311
|
+
"button",
|
|
3153
3312
|
{
|
|
3154
|
-
ref,
|
|
3313
|
+
ref: mergeRefs(ref, buttonRef),
|
|
3314
|
+
type: "button",
|
|
3315
|
+
role: "switch",
|
|
3155
3316
|
id: switchId,
|
|
3156
|
-
|
|
3317
|
+
"aria-checked": checked,
|
|
3318
|
+
"aria-required": required,
|
|
3157
3319
|
"aria-label": ariaLabel,
|
|
3320
|
+
"data-state": state,
|
|
3321
|
+
"data-disabled": disabled ? "" : void 0,
|
|
3322
|
+
disabled,
|
|
3323
|
+
value: value3,
|
|
3158
3324
|
className: track2({ size }),
|
|
3159
|
-
|
|
3160
|
-
children: /* @__PURE__ */
|
|
3325
|
+
onClick: handleClick,
|
|
3326
|
+
children: /* @__PURE__ */ jsx38("span", { className: thumb2({ size }), "data-state": state, "data-disabled": disabled ? "" : void 0 })
|
|
3327
|
+
}
|
|
3328
|
+
),
|
|
3329
|
+
inForm && /* @__PURE__ */ jsx38(
|
|
3330
|
+
"input",
|
|
3331
|
+
{
|
|
3332
|
+
ref: inputRef,
|
|
3333
|
+
type: "checkbox",
|
|
3334
|
+
"aria-hidden": true,
|
|
3335
|
+
tabIndex: -1,
|
|
3336
|
+
defaultChecked: checked,
|
|
3337
|
+
required,
|
|
3338
|
+
disabled,
|
|
3339
|
+
name,
|
|
3340
|
+
value: value3,
|
|
3341
|
+
className: bubbleInput({ size })
|
|
3161
3342
|
}
|
|
3162
3343
|
),
|
|
3163
|
-
label6 && /* @__PURE__ */
|
|
3344
|
+
label6 && /* @__PURE__ */ jsx38("label", { htmlFor: switchId, className: label5, children: label6 })
|
|
3164
3345
|
] });
|
|
3165
3346
|
});
|
|
3166
3347
|
|
|
3167
3348
|
// src/components/Table/Table.tsx
|
|
3168
3349
|
import {
|
|
3169
3350
|
createContext as createContext3,
|
|
3170
|
-
forwardRef as
|
|
3351
|
+
forwardRef as forwardRef35,
|
|
3171
3352
|
useContext as useContext3,
|
|
3172
|
-
useId as
|
|
3353
|
+
useId as useId17
|
|
3173
3354
|
} from "react";
|
|
3174
3355
|
import { ArrowDownIcon, ArrowUpIcon } from "@bestow-ui/icons";
|
|
3175
3356
|
|
|
3176
3357
|
// src/components/Table/Table.css.ts
|
|
3177
|
-
import { createRuntimeFn as
|
|
3358
|
+
import { createRuntimeFn as _7a46819 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3178
3359
|
var body3 = "l3ploy5";
|
|
3179
3360
|
var caption = "l3ploy2";
|
|
3180
|
-
var cell2 = /* @__PURE__ */
|
|
3361
|
+
var cell2 = /* @__PURE__ */ _7a46819({ defaultClassName: "l3ploy9", variantClassNames: { size: { sm: "l3ploya", md: "l3ployb" }, align: { left: "l3ployc", center: "l3ployd", right: "l3ploye" } }, defaultVariants: { size: "md", align: "left" }, compoundVariants: [] });
|
|
3181
3362
|
var container = "l3ploy0";
|
|
3182
3363
|
var emptyCell = "l3ployj";
|
|
3183
3364
|
var emptyContent = "l3ployk";
|
|
@@ -3193,10 +3374,10 @@ var striped = "l3ploy6";
|
|
|
3193
3374
|
var table = "l3ploy1";
|
|
3194
3375
|
|
|
3195
3376
|
// src/components/Table/Table.tsx
|
|
3196
|
-
import { Fragment as Fragment6, jsx as
|
|
3377
|
+
import { Fragment as Fragment6, jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3197
3378
|
var TableSizeContext = /* @__PURE__ */ createContext3("md");
|
|
3198
3379
|
var TableSectionContext = /* @__PURE__ */ createContext3("body");
|
|
3199
|
-
var Table = /* @__PURE__ */
|
|
3380
|
+
var Table = /* @__PURE__ */ forwardRef35(function Table2({
|
|
3200
3381
|
size = "md",
|
|
3201
3382
|
striped: striped2,
|
|
3202
3383
|
stickyHeader: stickyHeader2,
|
|
@@ -3208,8 +3389,8 @@ var Table = /* @__PURE__ */ forwardRef34(function Table2({
|
|
|
3208
3389
|
children,
|
|
3209
3390
|
...rest
|
|
3210
3391
|
}, ref) {
|
|
3211
|
-
const captionId =
|
|
3212
|
-
return /* @__PURE__ */
|
|
3392
|
+
const captionId = useId17();
|
|
3393
|
+
return /* @__PURE__ */ jsx39(TableSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx39(
|
|
3213
3394
|
"div",
|
|
3214
3395
|
{
|
|
3215
3396
|
className: cx(container, containerClassName),
|
|
@@ -3218,7 +3399,7 @@ var Table = /* @__PURE__ */ forwardRef34(function Table2({
|
|
|
3218
3399
|
role: "region",
|
|
3219
3400
|
"aria-labelledby": caption2 ? captionId : void 0,
|
|
3220
3401
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
3221
|
-
children: /* @__PURE__ */
|
|
3402
|
+
children: /* @__PURE__ */ jsxs32(
|
|
3222
3403
|
"table",
|
|
3223
3404
|
{
|
|
3224
3405
|
ref,
|
|
@@ -3226,7 +3407,7 @@ var Table = /* @__PURE__ */ forwardRef34(function Table2({
|
|
|
3226
3407
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
3227
3408
|
...rest,
|
|
3228
3409
|
children: [
|
|
3229
|
-
caption2 && /* @__PURE__ */
|
|
3410
|
+
caption2 && /* @__PURE__ */ jsx39("caption", { id: captionId, className: caption, children: caption2 }),
|
|
3230
3411
|
children
|
|
3231
3412
|
]
|
|
3232
3413
|
}
|
|
@@ -3234,31 +3415,31 @@ var Table = /* @__PURE__ */ forwardRef34(function Table2({
|
|
|
3234
3415
|
}
|
|
3235
3416
|
) });
|
|
3236
3417
|
});
|
|
3237
|
-
var TableHeader = /* @__PURE__ */
|
|
3418
|
+
var TableHeader = /* @__PURE__ */ forwardRef35(
|
|
3238
3419
|
function TableHeader2({ className, ...rest }, ref) {
|
|
3239
|
-
return /* @__PURE__ */
|
|
3420
|
+
return /* @__PURE__ */ jsx39(TableSectionContext.Provider, { value: "header", children: /* @__PURE__ */ jsx39("thead", { ref, className: cx(header7, className), ...rest }) });
|
|
3240
3421
|
}
|
|
3241
3422
|
);
|
|
3242
|
-
var TableBody = /* @__PURE__ */
|
|
3423
|
+
var TableBody = /* @__PURE__ */ forwardRef35(
|
|
3243
3424
|
function TableBody2({ className, ...rest }, ref) {
|
|
3244
|
-
return /* @__PURE__ */
|
|
3425
|
+
return /* @__PURE__ */ jsx39(TableSectionContext.Provider, { value: "body", children: /* @__PURE__ */ jsx39("tbody", { ref, className: cx(body3, className), ...rest }) });
|
|
3245
3426
|
}
|
|
3246
3427
|
);
|
|
3247
|
-
var TableFooter = /* @__PURE__ */
|
|
3428
|
+
var TableFooter = /* @__PURE__ */ forwardRef35(
|
|
3248
3429
|
function TableFooter2({ className, ...rest }, ref) {
|
|
3249
|
-
return /* @__PURE__ */
|
|
3430
|
+
return /* @__PURE__ */ jsx39(TableSectionContext.Provider, { value: "footer", children: /* @__PURE__ */ jsx39("tfoot", { ref, className: cx(footer3, className), ...rest }) });
|
|
3250
3431
|
}
|
|
3251
3432
|
);
|
|
3252
|
-
var TableRow = /* @__PURE__ */
|
|
3253
|
-
return /* @__PURE__ */
|
|
3433
|
+
var TableRow = /* @__PURE__ */ forwardRef35(function TableRow2({ selected, className, ...rest }, ref) {
|
|
3434
|
+
return /* @__PURE__ */ jsx39("tr", { ref, className: cx(row3, className), "data-state": selected ? "selected" : void 0, ...rest });
|
|
3254
3435
|
});
|
|
3255
|
-
var TableHead = /* @__PURE__ */
|
|
3436
|
+
var TableHead = /* @__PURE__ */ forwardRef35(function TableHead2({ align, sortDirection, onSort, scope, className, children, ...rest }, ref) {
|
|
3256
3437
|
const size = useContext3(TableSizeContext);
|
|
3257
3438
|
const section = useContext3(TableSectionContext);
|
|
3258
3439
|
const sortable = onSort !== void 0;
|
|
3259
3440
|
const direction = sortDirection ?? "none";
|
|
3260
3441
|
const SortIcon = direction === "descending" ? ArrowDownIcon : ArrowUpIcon;
|
|
3261
|
-
return /* @__PURE__ */
|
|
3442
|
+
return /* @__PURE__ */ jsx39(
|
|
3262
3443
|
"th",
|
|
3263
3444
|
{
|
|
3264
3445
|
ref,
|
|
@@ -3270,17 +3451,17 @@ var TableHead = /* @__PURE__ */ forwardRef34(function TableHead2({ align, sortDi
|
|
|
3270
3451
|
className
|
|
3271
3452
|
),
|
|
3272
3453
|
...rest,
|
|
3273
|
-
children: sortable ? /* @__PURE__ */
|
|
3454
|
+
children: sortable ? /* @__PURE__ */ jsxs32("button", { type: "button", className: sortButton, onClick: onSort, children: [
|
|
3274
3455
|
children,
|
|
3275
|
-
/* @__PURE__ */
|
|
3456
|
+
/* @__PURE__ */ jsx39(SortIcon, { size: 14, className: sortIcon, "data-active": direction !== "none", "aria-hidden": true })
|
|
3276
3457
|
] }) : children
|
|
3277
3458
|
}
|
|
3278
3459
|
);
|
|
3279
3460
|
});
|
|
3280
|
-
var TableCell = /* @__PURE__ */
|
|
3461
|
+
var TableCell = /* @__PURE__ */ forwardRef35(function TableCell2({ align, className, ...rest }, ref) {
|
|
3281
3462
|
const size = useContext3(TableSizeContext);
|
|
3282
3463
|
const section = useContext3(TableSectionContext);
|
|
3283
|
-
return /* @__PURE__ */
|
|
3464
|
+
return /* @__PURE__ */ jsx39(
|
|
3284
3465
|
"td",
|
|
3285
3466
|
{
|
|
3286
3467
|
ref,
|
|
@@ -3289,17 +3470,17 @@ var TableCell = /* @__PURE__ */ forwardRef34(function TableCell2({ align, classN
|
|
|
3289
3470
|
}
|
|
3290
3471
|
);
|
|
3291
3472
|
});
|
|
3292
|
-
var TableEmpty = /* @__PURE__ */
|
|
3293
|
-
return /* @__PURE__ */
|
|
3473
|
+
var TableEmpty = /* @__PURE__ */ forwardRef35(function TableEmpty2({ colSpan, className, children, ...rest }, ref) {
|
|
3474
|
+
return /* @__PURE__ */ jsx39(TableRow, { children: /* @__PURE__ */ jsx39(TableCell, { ref, colSpan, className: cx(emptyCell, className), ...rest, children: /* @__PURE__ */ jsx39("div", { className: emptyContent, children }) }) });
|
|
3294
3475
|
});
|
|
3295
3476
|
function TableSkeleton({ rows = 5, columns }) {
|
|
3296
|
-
return /* @__PURE__ */
|
|
3477
|
+
return /* @__PURE__ */ jsx39(Fragment6, { children: Array.from({ length: rows }, (_, row5) => /* @__PURE__ */ jsx39(TableRow, { "aria-hidden": true, children: Array.from({ length: columns }, (_2, column) => /* @__PURE__ */ jsx39(TableCell, { children: /* @__PURE__ */ jsx39(Skeleton, { width: column === 0 ? "60%" : "80%" }) }, column)) }, row5)) });
|
|
3297
3478
|
}
|
|
3298
3479
|
|
|
3299
3480
|
// src/components/Table/useTableSelection.ts
|
|
3300
|
-
import { useCallback, useState as
|
|
3481
|
+
import { useCallback, useState as useState16 } from "react";
|
|
3301
3482
|
function useTableSelection(initial = []) {
|
|
3302
|
-
const [selected, setSelected] =
|
|
3483
|
+
const [selected, setSelected] = useState16(initial);
|
|
3303
3484
|
const isSelected = useCallback((id) => selected.includes(id), [selected]);
|
|
3304
3485
|
const toggle3 = useCallback((id, checked) => {
|
|
3305
3486
|
setSelected((prev) => {
|
|
@@ -3329,54 +3510,54 @@ function useTableSelection(initial = []) {
|
|
|
3329
3510
|
|
|
3330
3511
|
// src/components/Tabs/Tabs.tsx
|
|
3331
3512
|
import * as RadixTabs from "@radix-ui/react-tabs";
|
|
3332
|
-
import { createContext as createContext4, forwardRef as
|
|
3513
|
+
import { createContext as createContext4, forwardRef as forwardRef36, useContext as useContext4 } from "react";
|
|
3333
3514
|
|
|
3334
3515
|
// src/components/Tabs/Tabs.css.ts
|
|
3335
|
-
import { createRuntimeFn as
|
|
3516
|
+
import { createRuntimeFn as _7a46820 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3336
3517
|
var content10 = "fvhbtdb";
|
|
3337
|
-
var list6 = /* @__PURE__ */
|
|
3518
|
+
var list6 = /* @__PURE__ */ _7a46820({ defaultClassName: "fvhbtd1", variantClassNames: { variant: { line: "fvhbtd2", soft: "fvhbtd3" } }, defaultVariants: { variant: "line" }, compoundVariants: [] });
|
|
3338
3519
|
var root13 = "fvhbtd0";
|
|
3339
|
-
var trigger3 = /* @__PURE__ */
|
|
3520
|
+
var trigger3 = /* @__PURE__ */ _7a46820({ defaultClassName: "fvhbtd4", variantClassNames: { variant: { line: "fvhbtd5", soft: "fvhbtd6" }, size: { sm: "fvhbtd7", md: "fvhbtd8" } }, defaultVariants: { variant: "line", size: "md" }, compoundVariants: [[{ variant: "soft", size: "sm" }, "fvhbtd9"], [{ variant: "soft", size: "md" }, "fvhbtda"]] });
|
|
3340
3521
|
|
|
3341
3522
|
// src/components/Tabs/Tabs.tsx
|
|
3342
|
-
import { jsx as
|
|
3523
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3343
3524
|
var TabsStyleContext = /* @__PURE__ */ createContext4({ variant: "line", size: "md" });
|
|
3344
|
-
var Tabs = /* @__PURE__ */
|
|
3525
|
+
var Tabs = /* @__PURE__ */ forwardRef36(function Tabs2({ variant = "line", size = "md", className, ...props }, ref) {
|
|
3345
3526
|
const controlled = "value" in props ? { value: props.value ?? "" } : {};
|
|
3346
|
-
return /* @__PURE__ */
|
|
3527
|
+
return /* @__PURE__ */ jsx40(TabsStyleContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx40(RadixTabs.Root, { ref, className: cx(root13, className), ...props, ...controlled }) });
|
|
3347
3528
|
});
|
|
3348
|
-
var TabsList = /* @__PURE__ */
|
|
3529
|
+
var TabsList = /* @__PURE__ */ forwardRef36(function TabsList2({ className, ...rest }, ref) {
|
|
3349
3530
|
const { variant } = useContext4(TabsStyleContext);
|
|
3350
|
-
return /* @__PURE__ */
|
|
3531
|
+
return /* @__PURE__ */ jsx40(RadixTabs.List, { ref, className: cx(list6({ variant }), className), ...rest });
|
|
3351
3532
|
});
|
|
3352
|
-
var TabsTrigger = /* @__PURE__ */
|
|
3533
|
+
var TabsTrigger = /* @__PURE__ */ forwardRef36(function TabsTrigger2({ className, ...rest }, ref) {
|
|
3353
3534
|
const { variant, size } = useContext4(TabsStyleContext);
|
|
3354
|
-
return /* @__PURE__ */
|
|
3535
|
+
return /* @__PURE__ */ jsx40(RadixTabs.Trigger, { ref, className: cx(trigger3({ variant, size }), className), ...rest });
|
|
3355
3536
|
});
|
|
3356
|
-
var TabsContent = /* @__PURE__ */
|
|
3357
|
-
return /* @__PURE__ */
|
|
3537
|
+
var TabsContent = /* @__PURE__ */ forwardRef36(function TabsContent2({ className, ...rest }, ref) {
|
|
3538
|
+
return /* @__PURE__ */ jsx40(RadixTabs.Content, { ref, className: cx(content10, className), ...rest });
|
|
3358
3539
|
});
|
|
3359
3540
|
|
|
3360
3541
|
// src/components/Textarea/Textarea.tsx
|
|
3361
3542
|
import {
|
|
3362
|
-
forwardRef as
|
|
3543
|
+
forwardRef as forwardRef37,
|
|
3363
3544
|
useCallback as useCallback2,
|
|
3364
|
-
useId as
|
|
3365
|
-
useRef as
|
|
3366
|
-
useState as
|
|
3545
|
+
useId as useId18,
|
|
3546
|
+
useRef as useRef16,
|
|
3547
|
+
useState as useState17
|
|
3367
3548
|
} from "react";
|
|
3368
3549
|
|
|
3369
3550
|
// src/components/Textarea/Textarea.css.ts
|
|
3370
|
-
import { createRuntimeFn as
|
|
3551
|
+
import { createRuntimeFn as _7a46821 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3371
3552
|
var count = "_1koawa9";
|
|
3372
3553
|
var countOver = "_1koawaa";
|
|
3373
3554
|
var defaultWidth = "_1koawa7";
|
|
3374
3555
|
var footer4 = "_1koawa8";
|
|
3375
|
-
var textarea = /* @__PURE__ */
|
|
3556
|
+
var textarea = /* @__PURE__ */ _7a46821({ defaultClassName: "_1koawa0", variantClassNames: { size: { sm: "_1koawa1", md: "_1koawa2", lg: "_1koawa3" }, resize: { none: "_1koawa4", vertical: "_1koawa5", both: "_1koawa6" } }, defaultVariants: { size: "md", resize: "vertical" }, compoundVariants: [] });
|
|
3376
3557
|
|
|
3377
3558
|
// src/components/Textarea/Textarea.tsx
|
|
3378
|
-
import { jsx as
|
|
3379
|
-
var Textarea = /* @__PURE__ */
|
|
3559
|
+
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3560
|
+
var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
|
|
3380
3561
|
label: label6,
|
|
3381
3562
|
helperText: helperText3,
|
|
3382
3563
|
error,
|
|
@@ -3397,11 +3578,11 @@ var Textarea = /* @__PURE__ */ forwardRef36(function Textarea2({
|
|
|
3397
3578
|
"aria-describedby": ariaDescribedBy,
|
|
3398
3579
|
...rest
|
|
3399
3580
|
}, ref) {
|
|
3400
|
-
const generatedId =
|
|
3581
|
+
const generatedId = useId18();
|
|
3401
3582
|
const textareaId = id ?? generatedId;
|
|
3402
3583
|
const helperId = helperText3 ? `${textareaId}-helper` : void 0;
|
|
3403
|
-
const innerRef =
|
|
3404
|
-
const [uncontrolledLength, setUncontrolledLength] =
|
|
3584
|
+
const innerRef = useRef16(null);
|
|
3585
|
+
const [uncontrolledLength, setUncontrolledLength] = useState17(() => String(defaultValue ?? "").length);
|
|
3405
3586
|
const length = value3 !== void 0 ? String(value3).length : uncontrolledLength;
|
|
3406
3587
|
const fitHeight = useCallback2(() => {
|
|
3407
3588
|
const el = innerRef.current;
|
|
@@ -3416,12 +3597,12 @@ var Textarea = /* @__PURE__ */ forwardRef36(function Textarea2({
|
|
|
3416
3597
|
fitHeight();
|
|
3417
3598
|
onChange?.(event);
|
|
3418
3599
|
};
|
|
3419
|
-
return /* @__PURE__ */
|
|
3420
|
-
label6 && /* @__PURE__ */
|
|
3600
|
+
return /* @__PURE__ */ jsxs33("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
3601
|
+
label6 && /* @__PURE__ */ jsxs33("label", { htmlFor: textareaId, className: label, children: [
|
|
3421
3602
|
label6,
|
|
3422
|
-
required && /* @__PURE__ */
|
|
3603
|
+
required && /* @__PURE__ */ jsx41("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
3423
3604
|
] }),
|
|
3424
|
-
/* @__PURE__ */
|
|
3605
|
+
/* @__PURE__ */ jsx41(
|
|
3425
3606
|
"textarea",
|
|
3426
3607
|
{
|
|
3427
3608
|
ref: mergeRefs(innerRef, ref),
|
|
@@ -3443,36 +3624,36 @@ var Textarea = /* @__PURE__ */ forwardRef36(function Textarea2({
|
|
|
3443
3624
|
...rest
|
|
3444
3625
|
}
|
|
3445
3626
|
),
|
|
3446
|
-
(helperText3 || showCount) && /* @__PURE__ */
|
|
3447
|
-
helperText3 && /* @__PURE__ */
|
|
3448
|
-
showCount && /* @__PURE__ */
|
|
3627
|
+
(helperText3 || showCount) && /* @__PURE__ */ jsxs33("div", { className: footer4, children: [
|
|
3628
|
+
helperText3 && /* @__PURE__ */ jsx41("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
3629
|
+
showCount && /* @__PURE__ */ jsx41("span", { className: cx(count, maxLength !== void 0 && length >= maxLength && countOver), children: maxLength !== void 0 ? `${length}/${maxLength}` : length })
|
|
3449
3630
|
] })
|
|
3450
3631
|
] });
|
|
3451
3632
|
});
|
|
3452
3633
|
|
|
3453
3634
|
// src/components/Toast/Toast.tsx
|
|
3454
3635
|
import * as RadixToast from "@radix-ui/react-toast";
|
|
3455
|
-
import { createContext as createContext5, useCallback as useCallback3, useContext as useContext5, useMemo as useMemo4, useRef as
|
|
3636
|
+
import { createContext as createContext5, useCallback as useCallback3, useContext as useContext5, useMemo as useMemo4, useRef as useRef17, useState as useState18 } from "react";
|
|
3456
3637
|
import { XIcon as XIcon7 } from "@bestow-ui/icons";
|
|
3457
3638
|
|
|
3458
3639
|
// src/components/Toast/Toast.css.ts
|
|
3459
|
-
import { createRuntimeFn as
|
|
3640
|
+
import { createRuntimeFn as _7a46822 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
3460
3641
|
var action2 = "_1g11zvx9";
|
|
3461
3642
|
var close = "_1g11zvxa";
|
|
3462
3643
|
var description6 = "_1g11zvx8";
|
|
3463
3644
|
var title5 = "_1g11zvx7";
|
|
3464
|
-
var toast = /* @__PURE__ */
|
|
3645
|
+
var toast = /* @__PURE__ */ _7a46822({ defaultClassName: "_1g11zvx1", variantClassNames: { color: { primary: "_1g11zvx2", neutral: "_1g11zvx3", success: "_1g11zvx4", warning: "_1g11zvx5", danger: "_1g11zvx6" } }, defaultVariants: { color: "neutral" }, compoundVariants: [] });
|
|
3465
3646
|
var viewport2 = "_1g11zvx0";
|
|
3466
3647
|
|
|
3467
3648
|
// src/components/Toast/Toast.tsx
|
|
3468
|
-
import { jsx as
|
|
3649
|
+
import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3469
3650
|
var REMOVE_DELAY = 500;
|
|
3470
3651
|
var ToastContext = /* @__PURE__ */ createContext5(null);
|
|
3471
3652
|
function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
3472
3653
|
const m = useMessages();
|
|
3473
3654
|
const label6 = labelProp ?? m.notifications ?? "\uC54C\uB9BC";
|
|
3474
|
-
const [toasts, setToasts] =
|
|
3475
|
-
const nextId =
|
|
3655
|
+
const [toasts, setToasts] = useState18([]);
|
|
3656
|
+
const nextId = useRef17(0);
|
|
3476
3657
|
const portal2 = usePortalProps();
|
|
3477
3658
|
const toast2 = useCallback3((options) => {
|
|
3478
3659
|
const id = nextId.current++;
|
|
@@ -3485,9 +3666,9 @@ function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
|
3485
3666
|
setTimeout(() => setToasts((prev) => prev.filter((t) => t.open || !isTarget(t))), REMOVE_DELAY);
|
|
3486
3667
|
}, []);
|
|
3487
3668
|
const value3 = useMemo4(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
|
|
3488
|
-
return /* @__PURE__ */
|
|
3669
|
+
return /* @__PURE__ */ jsx42(ToastContext.Provider, { value: value3, children: /* @__PURE__ */ jsxs34(RadixToast.Provider, { duration, label: label6, swipeDirection: "right", children: [
|
|
3489
3670
|
children,
|
|
3490
|
-
toasts.map(({ id, open, title: title6, description: description7, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */
|
|
3671
|
+
toasts.map(({ id, open, title: title6, description: description7, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */ jsxs34(
|
|
3491
3672
|
RadixToast.Root,
|
|
3492
3673
|
{
|
|
3493
3674
|
open,
|
|
@@ -3497,15 +3678,15 @@ function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
|
3497
3678
|
},
|
|
3498
3679
|
className: toast({ color }),
|
|
3499
3680
|
children: [
|
|
3500
|
-
/* @__PURE__ */
|
|
3501
|
-
description7 && /* @__PURE__ */
|
|
3502
|
-
action3 && /* @__PURE__ */
|
|
3503
|
-
/* @__PURE__ */
|
|
3681
|
+
/* @__PURE__ */ jsx42(RadixToast.Title, { className: title5, children: title6 }),
|
|
3682
|
+
description7 && /* @__PURE__ */ jsx42(RadixToast.Description, { className: description6, children: description7 }),
|
|
3683
|
+
action3 && /* @__PURE__ */ jsx42(RadixToast.Action, { asChild: true, altText: action3.altText ?? action3.label, className: action2, children: /* @__PURE__ */ jsx42(Button, { size: "sm", variant: "soft", color: "neutral", onClick: action3.onClick, children: action3.label }) }),
|
|
3684
|
+
/* @__PURE__ */ jsx42(RadixToast.Close, { className: close, "aria-label": m.close ?? "\uB2EB\uAE30", children: /* @__PURE__ */ jsx42(XIcon7, { size: 16 }) })
|
|
3504
3685
|
]
|
|
3505
3686
|
},
|
|
3506
3687
|
id
|
|
3507
3688
|
)),
|
|
3508
|
-
/* @__PURE__ */
|
|
3689
|
+
/* @__PURE__ */ jsx42(RadixToast.Viewport, { className: cx(portal2.className, viewport2), style: portal2.style })
|
|
3509
3690
|
] }) });
|
|
3510
3691
|
}
|
|
3511
3692
|
function useToast() {
|
|
@@ -3522,7 +3703,7 @@ var arrow2 = "z7rufs1";
|
|
|
3522
3703
|
var content11 = "z7rufs0";
|
|
3523
3704
|
|
|
3524
3705
|
// src/components/Tooltip/Tooltip.tsx
|
|
3525
|
-
import { jsx as
|
|
3706
|
+
import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3526
3707
|
function Tooltip({
|
|
3527
3708
|
content: content12,
|
|
3528
3709
|
children,
|
|
@@ -3537,9 +3718,9 @@ function Tooltip({
|
|
|
3537
3718
|
}) {
|
|
3538
3719
|
const portal2 = usePortalProps();
|
|
3539
3720
|
if (disabled || content12 == null || content12 === "") return children;
|
|
3540
|
-
return /* @__PURE__ */
|
|
3541
|
-
/* @__PURE__ */
|
|
3542
|
-
/* @__PURE__ */
|
|
3721
|
+
return /* @__PURE__ */ jsx43(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ jsxs35(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
|
|
3722
|
+
/* @__PURE__ */ jsx43(RadixTooltip.Trigger, { asChild: true, children }),
|
|
3723
|
+
/* @__PURE__ */ jsx43(RadixTooltip.Portal, { children: /* @__PURE__ */ jsxs35(
|
|
3543
3724
|
RadixTooltip.Content,
|
|
3544
3725
|
{
|
|
3545
3726
|
side,
|
|
@@ -3550,7 +3731,7 @@ function Tooltip({
|
|
|
3550
3731
|
style: portal2.style,
|
|
3551
3732
|
children: [
|
|
3552
3733
|
content12,
|
|
3553
|
-
/* @__PURE__ */
|
|
3734
|
+
/* @__PURE__ */ jsx43(RadixTooltip.Arrow, { className: arrow2, width: 10, height: 5 })
|
|
3554
3735
|
]
|
|
3555
3736
|
}
|
|
3556
3737
|
) })
|
|
@@ -3558,7 +3739,7 @@ function Tooltip({
|
|
|
3558
3739
|
}
|
|
3559
3740
|
|
|
3560
3741
|
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
3561
|
-
import { forwardRef as
|
|
3742
|
+
import { forwardRef as forwardRef38, useEffect as useEffect11, useId as useId19, useRef as useRef18, useState as useState19 } from "react";
|
|
3562
3743
|
|
|
3563
3744
|
// src/components/VerificationCodeInput/VerificationCodeInput.css.ts
|
|
3564
3745
|
var input5 = "ea01812";
|
|
@@ -3568,9 +3749,9 @@ var slots = "ea01811";
|
|
|
3568
3749
|
var timer = "ea01814";
|
|
3569
3750
|
|
|
3570
3751
|
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
3571
|
-
import { jsx as
|
|
3752
|
+
import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
3572
3753
|
var formatTime = (seconds) => `${String(Math.floor(seconds / 60)).padStart(2, "0")}:${String(seconds % 60).padStart(2, "0")}`;
|
|
3573
|
-
var VerificationCodeInput = /* @__PURE__ */
|
|
3754
|
+
var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
|
|
3574
3755
|
function VerificationCodeInput2(props, ref) {
|
|
3575
3756
|
const {
|
|
3576
3757
|
length = 6,
|
|
@@ -3597,23 +3778,23 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef37(
|
|
|
3597
3778
|
const label6 = labelProp ?? m.verificationCode ?? "\uC778\uC99D\uBC88\uD638";
|
|
3598
3779
|
const resendText = resendTextProp ?? m.resend ?? "\uC7AC\uC804\uC1A1";
|
|
3599
3780
|
const expiredText = expiredTextProp ?? m.verificationExpired ?? "\uC778\uC99D \uC2DC\uAC04\uC774 \uC9C0\uB0AC\uC5B4\uC694. \uC7AC\uC804\uC1A1\uD574 \uC8FC\uC138\uC694.";
|
|
3600
|
-
const generatedId =
|
|
3781
|
+
const generatedId = useId19();
|
|
3601
3782
|
const inputId = id ?? generatedId;
|
|
3602
3783
|
const helperId = `${inputId}-helper`;
|
|
3603
3784
|
const statusId = `${inputId}-status`;
|
|
3604
|
-
const inputRef =
|
|
3785
|
+
const inputRef = useRef18(null);
|
|
3605
3786
|
const isControlled = "value" in props;
|
|
3606
|
-
const [innerValue, setInnerValue] =
|
|
3787
|
+
const [innerValue, setInnerValue] = useState19(defaultValue ?? "");
|
|
3607
3788
|
const code = (isControlled ? value3 ?? "" : innerValue).slice(0, length);
|
|
3608
|
-
const [focused, setFocused] =
|
|
3609
|
-
const [endAt, setEndAt] =
|
|
3610
|
-
const [remaining, setRemaining] =
|
|
3789
|
+
const [focused, setFocused] = useState19(false);
|
|
3790
|
+
const [endAt, setEndAt] = useState19(() => expiresIn ? Date.now() + expiresIn * 1e3 : null);
|
|
3791
|
+
const [remaining, setRemaining] = useState19(expiresIn ?? 0);
|
|
3611
3792
|
const expired = expiresIn !== void 0 && remaining <= 0;
|
|
3612
|
-
const onExpireRef =
|
|
3613
|
-
|
|
3793
|
+
const onExpireRef = useRef18(onExpire);
|
|
3794
|
+
useEffect11(() => {
|
|
3614
3795
|
onExpireRef.current = onExpire;
|
|
3615
3796
|
});
|
|
3616
|
-
|
|
3797
|
+
useEffect11(() => {
|
|
3617
3798
|
if (endAt === null) return;
|
|
3618
3799
|
const tick = () => {
|
|
3619
3800
|
const left = Math.max(0, Math.ceil((endAt - Date.now()) / 1e3));
|
|
@@ -3648,17 +3829,17 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef37(
|
|
|
3648
3829
|
};
|
|
3649
3830
|
const description7 = helperText3 ?? m.verificationCodeHint?.(length, type) ?? `${length}\uC790\uB9AC ${type === "numeric" ? "\uC22B\uC790" : "\uBB38\uC790"}\uB97C \uC785\uB825\uD558\uC138\uC694.`;
|
|
3650
3831
|
const activeIndex = Math.min(code.length, length - 1);
|
|
3651
|
-
return /* @__PURE__ */
|
|
3832
|
+
return /* @__PURE__ */ jsxs36(
|
|
3652
3833
|
"div",
|
|
3653
3834
|
{
|
|
3654
3835
|
className: cx(field, className),
|
|
3655
3836
|
"data-invalid": error || void 0,
|
|
3656
3837
|
"data-disabled": disabled || void 0,
|
|
3657
3838
|
children: [
|
|
3658
|
-
/* @__PURE__ */
|
|
3659
|
-
/* @__PURE__ */
|
|
3660
|
-
/* @__PURE__ */
|
|
3661
|
-
/* @__PURE__ */
|
|
3839
|
+
/* @__PURE__ */ jsx44("label", { htmlFor: inputId, className: label, children: label6 }),
|
|
3840
|
+
/* @__PURE__ */ jsxs36("div", { className: row4, children: [
|
|
3841
|
+
/* @__PURE__ */ jsxs36("div", { className: slots, children: [
|
|
3842
|
+
/* @__PURE__ */ jsx44(
|
|
3662
3843
|
"input",
|
|
3663
3844
|
{
|
|
3664
3845
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -3678,7 +3859,7 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef37(
|
|
|
3678
3859
|
className: input5
|
|
3679
3860
|
}
|
|
3680
3861
|
),
|
|
3681
|
-
Array.from({ length }, (_, index) => /* @__PURE__ */
|
|
3862
|
+
Array.from({ length }, (_, index) => /* @__PURE__ */ jsx44(
|
|
3682
3863
|
"div",
|
|
3683
3864
|
{
|
|
3684
3865
|
className: slot,
|
|
@@ -3689,12 +3870,12 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef37(
|
|
|
3689
3870
|
index
|
|
3690
3871
|
))
|
|
3691
3872
|
] }),
|
|
3692
|
-
expiresIn !== void 0 && /* @__PURE__ */
|
|
3693
|
-
onResend && /* @__PURE__ */
|
|
3873
|
+
expiresIn !== void 0 && /* @__PURE__ */ jsx44("span", { role: "timer", className: timer, children: formatTime(remaining) }),
|
|
3874
|
+
onResend && /* @__PURE__ */ jsx44(Button, { size: "sm", variant: "outline", color: "neutral", onClick: resend, disabled, children: resendText })
|
|
3694
3875
|
] }),
|
|
3695
|
-
/* @__PURE__ */
|
|
3696
|
-
/* @__PURE__ */
|
|
3697
|
-
name && /* @__PURE__ */
|
|
3876
|
+
/* @__PURE__ */ jsx44("p", { id: helperId, className: helperText({ error }), children: description7 }),
|
|
3877
|
+
/* @__PURE__ */ jsx44("p", { id: statusId, role: "status", className: helperText({ error: true }), children: expired ? expiredText : "" }),
|
|
3878
|
+
name && /* @__PURE__ */ jsx44("input", { type: "hidden", name, value: code })
|
|
3698
3879
|
]
|
|
3699
3880
|
}
|
|
3700
3881
|
);
|
|
@@ -3739,6 +3920,7 @@ export {
|
|
|
3739
3920
|
LocaleProvider,
|
|
3740
3921
|
Modal,
|
|
3741
3922
|
ModalClose,
|
|
3923
|
+
NativeSelect,
|
|
3742
3924
|
NumberInput,
|
|
3743
3925
|
Pagination,
|
|
3744
3926
|
PhoneNumberInput,
|