@bestow-ui/react 1.5.0 → 1.6.1
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 +12 -3
- package/dist/{chunk-VQ45DNC3.js → chunk-NKLDAXUR.js} +2 -77
- package/dist/chunk-NKLDAXUR.js.map +1 -0
- package/dist/client.js +481 -311
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +518 -406
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +77 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +40 -45
- package/dist/index.d.ts +40 -45
- package/dist/shared.js +10 -6
- package/dist/shared.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-VQ45DNC3.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -76,6 +76,7 @@ __export(src_exports, {
|
|
|
76
76
|
LocaleProvider: () => LocaleProvider,
|
|
77
77
|
Modal: () => Modal,
|
|
78
78
|
ModalClose: () => ModalClose,
|
|
79
|
+
NativeSelect: () => NativeSelect,
|
|
79
80
|
NumberInput: () => NumberInput,
|
|
80
81
|
Pagination: () => Pagination,
|
|
81
82
|
PhoneNumberInput: () => PhoneNumberInput,
|
|
@@ -113,19 +114,19 @@ __export(src_exports, {
|
|
|
113
114
|
Typography: () => Typography,
|
|
114
115
|
VerificationCodeInput: () => VerificationCodeInput,
|
|
115
116
|
VisuallyHidden: () => VisuallyHidden,
|
|
116
|
-
composeExtraAddress: () => composeExtraAddress,
|
|
117
|
+
composeExtraAddress: () => import_korean_utils.composeExtraAddress,
|
|
117
118
|
contrastRatio: () => contrastRatio,
|
|
118
119
|
createIntentColors: () => createIntentColors,
|
|
119
120
|
createTheme: () => createTheme,
|
|
120
121
|
dateRangePresets: () => dateRangePresets,
|
|
121
122
|
en: () => en,
|
|
122
123
|
focusField: () => focusField,
|
|
123
|
-
formatBusinessNumber: () => formatBusinessNumber,
|
|
124
|
-
formatKoreanAmount: () => formatKoreanAmount,
|
|
125
|
-
formatKoreanDate: () => formatKoreanDate,
|
|
126
|
-
formatPhoneNumber: () => formatPhoneNumber,
|
|
124
|
+
formatBusinessNumber: () => import_korean_utils2.formatBusinessNumber,
|
|
125
|
+
formatKoreanAmount: () => import_korean_utils2.formatKoreanAmount,
|
|
126
|
+
formatKoreanDate: () => import_korean_utils2.formatKoreanDate,
|
|
127
|
+
formatPhoneNumber: () => import_korean_utils2.formatPhoneNumber,
|
|
127
128
|
hasAllRequiredAgreements: () => hasAllRequiredAgreements,
|
|
128
|
-
isValidBusinessNumber: () => isValidBusinessNumber,
|
|
129
|
+
isValidBusinessNumber: () => import_korean_utils2.isValidBusinessNumber,
|
|
129
130
|
kakaoPostcodeProvider: () => kakaoPostcodeProvider,
|
|
130
131
|
parseISODate: () => parseISODate,
|
|
131
132
|
presetRange: () => presetRange,
|
|
@@ -423,62 +424,8 @@ var en = {
|
|
|
423
424
|
dateIncomplete: "Enter the date as YYYY-MM-DD."
|
|
424
425
|
};
|
|
425
426
|
|
|
426
|
-
// src/
|
|
427
|
-
var
|
|
428
|
-
function phoneNumberMaxDigits(digits) {
|
|
429
|
-
if (digits.startsWith("02")) return 10;
|
|
430
|
-
if (/^1[568]/.test(digits)) return 8;
|
|
431
|
-
return 11;
|
|
432
|
-
}
|
|
433
|
-
function formatPhoneNumber(input6) {
|
|
434
|
-
const d = onlyDigits(input6).slice(0, phoneNumberMaxDigits(onlyDigits(input6)));
|
|
435
|
-
if (d.startsWith("02")) {
|
|
436
|
-
if (d.length <= 2) return d;
|
|
437
|
-
if (d.length <= 5) return `${d.slice(0, 2)}-${d.slice(2)}`;
|
|
438
|
-
if (d.length <= 9) return `${d.slice(0, 2)}-${d.slice(2, 5)}-${d.slice(5)}`;
|
|
439
|
-
return `${d.slice(0, 2)}-${d.slice(2, 6)}-${d.slice(6)}`;
|
|
440
|
-
}
|
|
441
|
-
if (/^1[568]/.test(d)) {
|
|
442
|
-
return d.length <= 4 ? d : `${d.slice(0, 4)}-${d.slice(4)}`;
|
|
443
|
-
}
|
|
444
|
-
if (d.length <= 3) return d;
|
|
445
|
-
if (d.length <= 6) return `${d.slice(0, 3)}-${d.slice(3)}`;
|
|
446
|
-
if (d.length <= 10) return `${d.slice(0, 3)}-${d.slice(3, 6)}-${d.slice(6)}`;
|
|
447
|
-
return `${d.slice(0, 3)}-${d.slice(3, 7)}-${d.slice(7)}`;
|
|
448
|
-
}
|
|
449
|
-
function formatBusinessNumber(input6) {
|
|
450
|
-
const d = onlyDigits(input6).slice(0, 10);
|
|
451
|
-
if (d.length <= 3) return d;
|
|
452
|
-
if (d.length <= 5) return `${d.slice(0, 3)}-${d.slice(3)}`;
|
|
453
|
-
return `${d.slice(0, 3)}-${d.slice(3, 5)}-${d.slice(5)}`;
|
|
454
|
-
}
|
|
455
|
-
function isValidBusinessNumber(input6) {
|
|
456
|
-
const d = onlyDigits(input6);
|
|
457
|
-
if (d.length !== 10) return false;
|
|
458
|
-
const weights = [1, 3, 7, 1, 3, 7, 1, 3, 5];
|
|
459
|
-
const digits = [...d].map(Number);
|
|
460
|
-
let sum = weights.reduce((acc, w, i) => acc + w * digits[i], 0);
|
|
461
|
-
sum += Math.floor(digits[8] * 5 / 10);
|
|
462
|
-
return (10 - sum % 10) % 10 === digits[9];
|
|
463
|
-
}
|
|
464
|
-
function formatKoreanAmount(amount, unit2 = "\uC6D0") {
|
|
465
|
-
const n = Math.floor(Math.abs(amount));
|
|
466
|
-
if (n === 0) return `0${unit2}`;
|
|
467
|
-
const units = [
|
|
468
|
-
{ value: 1e12, label: "\uC870" },
|
|
469
|
-
{ value: 1e8, label: "\uC5B5" },
|
|
470
|
-
{ value: 1e4, label: "\uB9CC" },
|
|
471
|
-
{ value: 1, label: "" }
|
|
472
|
-
];
|
|
473
|
-
let rest = n;
|
|
474
|
-
const parts = [];
|
|
475
|
-
for (const u of units) {
|
|
476
|
-
const q = Math.floor(rest / u.value);
|
|
477
|
-
rest %= u.value;
|
|
478
|
-
if (q > 0) parts.push(`${q.toLocaleString("ko-KR")}${u.label}`);
|
|
479
|
-
}
|
|
480
|
-
return `${amount < 0 ? "-" : ""}${parts.join(" ")}${unit2}`;
|
|
481
|
-
}
|
|
427
|
+
// src/shared.ts
|
|
428
|
+
var import_korean_utils2 = require("@bestow-ui/korean-utils");
|
|
482
429
|
|
|
483
430
|
// src/utils/date.ts
|
|
484
431
|
var pad = (n) => String(n).padStart(2, "0");
|
|
@@ -516,13 +463,9 @@ function getCalendarWeeks(year, month) {
|
|
|
516
463
|
const start = addDays(first, -first.getDay());
|
|
517
464
|
return Array.from({ length: 6 }, (_, week) => Array.from({ length: 7 }, (_2, day2) => addDays(start, week * 7 + day2)));
|
|
518
465
|
}
|
|
519
|
-
var KOREAN_WEEKDAYS = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
|
|
520
|
-
function formatKoreanDate(date, withWeekday = true) {
|
|
521
|
-
const base = `${date.getFullYear()}\uB144 ${date.getMonth() + 1}\uC6D4 ${date.getDate()}\uC77C`;
|
|
522
|
-
return withWeekday ? `${base} ${KOREAN_WEEKDAYS[date.getDay()]}\uC694\uC77C` : base;
|
|
523
|
-
}
|
|
524
466
|
|
|
525
467
|
// src/components/AddressInput/addressProviders.ts
|
|
468
|
+
var import_korean_utils = require("@bestow-ui/korean-utils");
|
|
526
469
|
var KAKAO_POSTCODE_SRC = "https://t1.kakaocdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js";
|
|
527
470
|
var loading = null;
|
|
528
471
|
function loadKakaoPostcode() {
|
|
@@ -546,13 +489,6 @@ function loadKakaoPostcode() {
|
|
|
546
489
|
}));
|
|
547
490
|
return loading;
|
|
548
491
|
}
|
|
549
|
-
function composeExtraAddress(data) {
|
|
550
|
-
if (data.userSelectedType !== "R") return "";
|
|
551
|
-
const parts = [];
|
|
552
|
-
if (data.bname && /[동로가]$/.test(data.bname)) parts.push(data.bname);
|
|
553
|
-
if (data.buildingName && data.apartment === "Y") parts.push(data.buildingName);
|
|
554
|
-
return parts.length ? ` (${parts.join(", ")})` : "";
|
|
555
|
-
}
|
|
556
492
|
var kakaoPostcodeProvider = async (container2, onSelect) => {
|
|
557
493
|
const Postcode = await loadKakaoPostcode();
|
|
558
494
|
new Postcode({
|
|
@@ -560,7 +496,7 @@ var kakaoPostcodeProvider = async (container2, onSelect) => {
|
|
|
560
496
|
height: "100%",
|
|
561
497
|
oncomplete: (data) => {
|
|
562
498
|
const address = data.userSelectedType === "R" ? data.roadAddress : data.jibunAddress || data.autoJibunAddress || "";
|
|
563
|
-
onSelect({ zonecode: data.zonecode, address, extraAddress: composeExtraAddress(data) });
|
|
499
|
+
onSelect({ zonecode: data.zonecode, address, extraAddress: (0, import_korean_utils.composeExtraAddress)(data) });
|
|
564
500
|
}
|
|
565
501
|
}).embed(container2);
|
|
566
502
|
};
|
|
@@ -1582,7 +1518,7 @@ var Alert = /* @__PURE__ */ (0, import_react21.forwardRef)(function Alert2({
|
|
|
1582
1518
|
variant,
|
|
1583
1519
|
color = "primary",
|
|
1584
1520
|
title: title6,
|
|
1585
|
-
icon:
|
|
1521
|
+
icon: icon8,
|
|
1586
1522
|
action: action3,
|
|
1587
1523
|
onClose,
|
|
1588
1524
|
closeLabel: closeLabelProp,
|
|
@@ -1593,7 +1529,7 @@ var Alert = /* @__PURE__ */ (0, import_react21.forwardRef)(function Alert2({
|
|
|
1593
1529
|
const m = useMessages();
|
|
1594
1530
|
const closeLabel = closeLabelProp ?? m.close ?? "\uB2EB\uAE30";
|
|
1595
1531
|
const DefaultIcon = defaultIcons[color];
|
|
1596
|
-
const iconNode =
|
|
1532
|
+
const iconNode = icon8 === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DefaultIcon, { size: 18 }) : icon8;
|
|
1597
1533
|
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { ref, className: cx(alert({ variant, color }), className), ...rest, children: [
|
|
1598
1534
|
iconNode !== false && iconNode !== null && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: icon3, "aria-hidden": true, children: iconNode }),
|
|
1599
1535
|
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: content4, children: [
|
|
@@ -1607,6 +1543,7 @@ var Alert = /* @__PURE__ */ (0, import_react21.forwardRef)(function Alert2({
|
|
|
1607
1543
|
|
|
1608
1544
|
// src/components/AmountInput/AmountInput.tsx
|
|
1609
1545
|
var import_react24 = require("react");
|
|
1546
|
+
var import_korean_utils3 = require("@bestow-ui/korean-utils");
|
|
1610
1547
|
|
|
1611
1548
|
// src/utils/useFormattedInput.ts
|
|
1612
1549
|
var import_react23 = require("react");
|
|
@@ -1721,7 +1658,7 @@ var AmountInput = /* @__PURE__ */ (0, import_react24.forwardRef)(
|
|
|
1721
1658
|
isMeaningful: isDigit,
|
|
1722
1659
|
inputRef
|
|
1723
1660
|
});
|
|
1724
|
-
const reading = showKoreanAmount && field4.raw !== "" ? formatKoreanAmount(Number(field4.raw), unit2) : null;
|
|
1661
|
+
const reading = showKoreanAmount && field4.raw !== "" ? (0, import_korean_utils3.formatKoreanAmount)(Number(field4.raw), unit2) : null;
|
|
1725
1662
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
1726
1663
|
TextField,
|
|
1727
1664
|
{
|
|
@@ -1857,11 +1794,26 @@ var Breadcrumb = /* @__PURE__ */ (0, import_react27.forwardRef)(function Breadcr
|
|
|
1857
1794
|
});
|
|
1858
1795
|
|
|
1859
1796
|
// src/components/BusinessNumberInput/BusinessNumberInput.tsx
|
|
1797
|
+
var import_react29 = require("react");
|
|
1798
|
+
var import_korean_utils4 = require("@bestow-ui/korean-utils");
|
|
1799
|
+
|
|
1800
|
+
// src/utils/useDelayedAnnouncement.ts
|
|
1860
1801
|
var import_react28 = require("react");
|
|
1802
|
+
var ANNOUNCE_DELAY = 800;
|
|
1803
|
+
function useDelayedAnnouncement(message, delay = ANNOUNCE_DELAY) {
|
|
1804
|
+
const [announced, setAnnounced] = (0, import_react28.useState)("");
|
|
1805
|
+
(0, import_react28.useEffect)(() => {
|
|
1806
|
+
const timer2 = setTimeout(() => setAnnounced(message), message ? delay : 0);
|
|
1807
|
+
return () => clearTimeout(timer2);
|
|
1808
|
+
}, [message, delay]);
|
|
1809
|
+
return message && announced === message ? message : "";
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1812
|
+
// src/components/BusinessNumberInput/BusinessNumberInput.tsx
|
|
1861
1813
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1862
1814
|
var sanitize = (input6) => input6.replace(/\D/g, "").slice(0, 10);
|
|
1863
1815
|
var isDigit2 = (char) => /\d/.test(char);
|
|
1864
|
-
var BusinessNumberInput = /* @__PURE__ */ (0,
|
|
1816
|
+
var BusinessNumberInput = /* @__PURE__ */ (0, import_react29.forwardRef)(
|
|
1865
1817
|
function BusinessNumberInput2(props, ref) {
|
|
1866
1818
|
const {
|
|
1867
1819
|
value: value4,
|
|
@@ -1877,60 +1829,65 @@ var BusinessNumberInput = /* @__PURE__ */ (0, import_react28.forwardRef)(
|
|
|
1877
1829
|
onKeyDown,
|
|
1878
1830
|
...rest
|
|
1879
1831
|
} = props;
|
|
1880
|
-
const inputRef = (0,
|
|
1832
|
+
const inputRef = (0, import_react29.useRef)(null);
|
|
1881
1833
|
const m = useMessages();
|
|
1882
1834
|
const invalidText = invalidTextProp ?? m.businessNumberInvalid ?? "\uC62C\uBC14\uB978 \uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638\uAC00 \uC544\uB2C8\uC5D0\uC694. \uBC88\uD638\uB97C \uB2E4\uC2DC \uD655\uC778\uD574 \uC8FC\uC138\uC694.";
|
|
1883
1835
|
const label7 = labelProp ?? m.businessNumber ?? "\uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638";
|
|
1884
1836
|
const incompleteText = m.businessNumberIncomplete ?? "10\uC790\uB9AC\uB97C \uBAA8\uB450 \uC785\uB825\uD574 \uC8FC\uC138\uC694.";
|
|
1885
|
-
const [touched, setTouched] = (0,
|
|
1837
|
+
const [touched, setTouched] = (0, import_react29.useState)(false);
|
|
1886
1838
|
const field4 = useFormattedInput({
|
|
1887
1839
|
isControlled: "value" in props,
|
|
1888
1840
|
value: value4,
|
|
1889
1841
|
defaultValue,
|
|
1890
|
-
onValueChange: (digits) => onValueChange?.(digits, digits.length === 10 ? isValidBusinessNumber(digits) : null),
|
|
1842
|
+
onValueChange: (digits) => onValueChange?.(digits, digits.length === 10 ? (0, import_korean_utils4.isValidBusinessNumber)(digits) : null),
|
|
1891
1843
|
sanitize,
|
|
1892
|
-
format: formatBusinessNumber,
|
|
1844
|
+
format: import_korean_utils4.formatBusinessNumber,
|
|
1893
1845
|
isMeaningful: isDigit2,
|
|
1894
1846
|
inputRef
|
|
1895
1847
|
});
|
|
1896
1848
|
const complete = field4.raw.length === 10;
|
|
1897
|
-
const autoInvalid = validate && field4.raw.length > 0 && (complete ? !isValidBusinessNumber(field4.raw) : touched);
|
|
1849
|
+
const autoInvalid = validate && field4.raw.length > 0 && (complete ? !(0, import_korean_utils4.isValidBusinessNumber)(field4.raw) : touched);
|
|
1898
1850
|
const showAuto = autoInvalid && error === void 0;
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
field4.
|
|
1910
|
-
onKeyDown
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
onBlur
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1851
|
+
const announcement = useDelayedAnnouncement(showAuto && complete ? invalidText : "");
|
|
1852
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
|
|
1853
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1854
|
+
TextField,
|
|
1855
|
+
{
|
|
1856
|
+
ref: mergeRefs(ref, inputRef),
|
|
1857
|
+
label: label7,
|
|
1858
|
+
placeholder,
|
|
1859
|
+
inputMode: "numeric",
|
|
1860
|
+
value: field4.display,
|
|
1861
|
+
onChange: field4.onChange,
|
|
1862
|
+
onKeyDown: (event) => {
|
|
1863
|
+
field4.onKeyDown(event);
|
|
1864
|
+
onKeyDown?.(event);
|
|
1865
|
+
},
|
|
1866
|
+
onBlur: (event) => {
|
|
1867
|
+
setTouched(true);
|
|
1868
|
+
onBlur?.(event);
|
|
1869
|
+
},
|
|
1870
|
+
error: error ?? autoInvalid,
|
|
1871
|
+
helperText: showAuto ? complete ? invalidText : incompleteText : helperText3,
|
|
1872
|
+
...rest
|
|
1873
|
+
}
|
|
1874
|
+
),
|
|
1875
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { role: "status", className: visuallyHidden, children: announcement })
|
|
1876
|
+
] });
|
|
1921
1877
|
}
|
|
1922
1878
|
);
|
|
1923
1879
|
|
|
1924
1880
|
// src/components/Calendar/Calendar.tsx
|
|
1925
|
-
var
|
|
1881
|
+
var import_react32 = require("react");
|
|
1926
1882
|
var import_icons9 = require("@bestow-ui/icons");
|
|
1883
|
+
var import_korean_utils5 = require("@bestow-ui/korean-utils");
|
|
1927
1884
|
|
|
1928
1885
|
// src/utils/useIsClient.ts
|
|
1929
|
-
var
|
|
1886
|
+
var import_react30 = require("react");
|
|
1930
1887
|
var subscribeNothing = () => () => {
|
|
1931
1888
|
};
|
|
1932
1889
|
function useIsClient() {
|
|
1933
|
-
return (0,
|
|
1890
|
+
return (0, import_react30.useSyncExternalStore)(
|
|
1934
1891
|
subscribeNothing,
|
|
1935
1892
|
() => true,
|
|
1936
1893
|
() => false
|
|
@@ -1938,7 +1895,7 @@ function useIsClient() {
|
|
|
1938
1895
|
}
|
|
1939
1896
|
|
|
1940
1897
|
// src/components/IconButton/IconButton.tsx
|
|
1941
|
-
var
|
|
1898
|
+
var import_react31 = require("react");
|
|
1942
1899
|
|
|
1943
1900
|
// src/components/IconButton/IconButton.css.ts
|
|
1944
1901
|
var import_createRuntimeFn17 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -1946,7 +1903,7 @@ var iconButton = /* @__PURE__ */ (0, import_createRuntimeFn17.createRuntimeFn)({
|
|
|
1946
1903
|
|
|
1947
1904
|
// src/components/IconButton/IconButton.tsx
|
|
1948
1905
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1949
|
-
var IconButton = /* @__PURE__ */ (0,
|
|
1906
|
+
var IconButton = /* @__PURE__ */ (0, import_react31.forwardRef)(function IconButton2({ variant = "ghost", color = "neutral", size, loading: loading2, className, children, ...rest }, ref) {
|
|
1950
1907
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1951
1908
|
Button,
|
|
1952
1909
|
{
|
|
@@ -1973,7 +1930,7 @@ var weekday = "_1qyq67b4";
|
|
|
1973
1930
|
|
|
1974
1931
|
// src/components/Calendar/Calendar.tsx
|
|
1975
1932
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1976
|
-
var Calendar = /* @__PURE__ */ (0,
|
|
1933
|
+
var Calendar = /* @__PURE__ */ (0, import_react32.forwardRef)(function Calendar2(props, ref) {
|
|
1977
1934
|
const {
|
|
1978
1935
|
value: value4,
|
|
1979
1936
|
defaultValue,
|
|
@@ -1991,12 +1948,12 @@ var Calendar = /* @__PURE__ */ (0, import_react31.forwardRef)(function Calendar2
|
|
|
1991
1948
|
const m = useMessages();
|
|
1992
1949
|
const prevMonthLabel = prevMonthLabelProp ?? m.previousMonth ?? "\uC774\uC804 \uB2EC";
|
|
1993
1950
|
const nextMonthLabel = nextMonthLabelProp ?? m.nextMonth ?? "\uB2E4\uC74C \uB2EC";
|
|
1994
|
-
const weekdaysShort = m.weekdaysShort ?? KOREAN_WEEKDAYS;
|
|
1995
|
-
const weekdaysLong = m.weekdaysLong ?? KOREAN_WEEKDAYS.map((name) => `${name}\uC694\uC77C`);
|
|
1996
|
-
const headingId = (0,
|
|
1997
|
-
const gridRef = (0,
|
|
1951
|
+
const weekdaysShort = m.weekdaysShort ?? import_korean_utils5.KOREAN_WEEKDAYS;
|
|
1952
|
+
const weekdaysLong = m.weekdaysLong ?? import_korean_utils5.KOREAN_WEEKDAYS.map((name) => `${name}\uC694\uC77C`);
|
|
1953
|
+
const headingId = (0, import_react32.useId)();
|
|
1954
|
+
const gridRef = (0, import_react32.useRef)(null);
|
|
1998
1955
|
const isControlled = "value" in props;
|
|
1999
|
-
const [innerValue, setInnerValue] = (0,
|
|
1956
|
+
const [innerValue, setInnerValue] = (0, import_react32.useState)(defaultValue ?? "");
|
|
2000
1957
|
const selected = parseISODate(isControlled ? value4 : innerValue);
|
|
2001
1958
|
const isClient = useIsClient();
|
|
2002
1959
|
const today = parseISODate(todayProp) ?? (isClient ? /* @__PURE__ */ new Date() : null);
|
|
@@ -2008,16 +1965,16 @@ var Calendar = /* @__PURE__ */ (0, import_react31.forwardRef)(function Calendar2
|
|
|
2008
1965
|
return date;
|
|
2009
1966
|
};
|
|
2010
1967
|
const isDisabled = (date) => minDate !== null && compareDays(date, minDate) < 0 || maxDate !== null && compareDays(date, maxDate) > 0 || !!isDateDisabled?.(date);
|
|
2011
|
-
const [focusedState, setFocused] = (0,
|
|
1968
|
+
const [focusedState, setFocused] = (0, import_react32.useState)(null);
|
|
2012
1969
|
const base = selected ?? today;
|
|
2013
1970
|
const focused = focusedState ?? (base ? clamp(base) : null);
|
|
2014
|
-
const moveFocus = (0,
|
|
1971
|
+
const moveFocus = (0, import_react32.useRef)(initialFocus ?? false);
|
|
2015
1972
|
const selectedIso = selected ? toISODate(selected) : "";
|
|
2016
|
-
(0,
|
|
1973
|
+
(0, import_react32.useEffect)(() => {
|
|
2017
1974
|
const date = parseISODate(selectedIso);
|
|
2018
1975
|
if (date) setFocused((prev) => isSameDay(prev, date) ? prev : date);
|
|
2019
1976
|
}, [selectedIso]);
|
|
2020
|
-
(0,
|
|
1977
|
+
(0, import_react32.useEffect)(() => {
|
|
2021
1978
|
if (!moveFocus.current || !focused) return;
|
|
2022
1979
|
moveFocus.current = false;
|
|
2023
1980
|
gridRef.current?.querySelector(`[data-date="${toISODate(focused)}"]`)?.focus();
|
|
@@ -2026,7 +1983,7 @@ var Calendar = /* @__PURE__ */ (0, import_react31.forwardRef)(function Calendar2
|
|
|
2026
1983
|
moveFocus.current = true;
|
|
2027
1984
|
setFocused(clamp(date));
|
|
2028
1985
|
};
|
|
2029
|
-
const
|
|
1986
|
+
const select2 = (date) => {
|
|
2030
1987
|
if (isDisabled(date)) return;
|
|
2031
1988
|
const iso = toISODate(date);
|
|
2032
1989
|
if (!isControlled) setInnerValue(iso);
|
|
@@ -2109,7 +2066,7 @@ var Calendar = /* @__PURE__ */ (0, import_react31.forwardRef)(function Calendar2
|
|
|
2109
2066
|
"aria-label": label7,
|
|
2110
2067
|
"aria-current": isToday ? "date" : void 0,
|
|
2111
2068
|
"aria-disabled": disabled || void 0,
|
|
2112
|
-
onClick: () =>
|
|
2069
|
+
onClick: () => select2(date),
|
|
2113
2070
|
onFocus: () => !isSameDay(date, focused) && setFocused(date),
|
|
2114
2071
|
children: date.getDate()
|
|
2115
2072
|
}
|
|
@@ -2121,7 +2078,7 @@ var Calendar = /* @__PURE__ */ (0, import_react31.forwardRef)(function Calendar2
|
|
|
2121
2078
|
|
|
2122
2079
|
// src/components/Combobox/Combobox.tsx
|
|
2123
2080
|
var Popover = __toESM(require("@radix-ui/react-popover"), 1);
|
|
2124
|
-
var
|
|
2081
|
+
var import_react33 = require("react");
|
|
2125
2082
|
var import_icons10 = require("@bestow-ui/icons");
|
|
2126
2083
|
|
|
2127
2084
|
// src/components/Select/Select.css.ts
|
|
@@ -2141,9 +2098,8 @@ var toggle2 = "c2pbq71 c2pbq70";
|
|
|
2141
2098
|
|
|
2142
2099
|
// src/components/Combobox/Combobox.tsx
|
|
2143
2100
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2144
|
-
var NO_RESULTS_ANNOUNCE_DELAY = 800;
|
|
2145
2101
|
var defaultFilter = (option2, query) => option2.label.toLowerCase().includes(query.trim().toLowerCase());
|
|
2146
|
-
var Combobox = /* @__PURE__ */ (0,
|
|
2102
|
+
var Combobox = /* @__PURE__ */ (0, import_react33.forwardRef)(function Combobox2(props, ref) {
|
|
2147
2103
|
const {
|
|
2148
2104
|
options,
|
|
2149
2105
|
value: value4,
|
|
@@ -2171,23 +2127,23 @@ var Combobox = /* @__PURE__ */ (0, import_react32.forwardRef)(function Combobox2
|
|
|
2171
2127
|
const emptyMessage = emptyMessageProp ?? m.noResults ?? "\uACB0\uACFC\uAC00 \uC5C6\uC5B4\uC694";
|
|
2172
2128
|
const toggleLabel = toggleLabelProp ?? m.openList ?? "\uBAA9\uB85D \uC5F4\uAE30";
|
|
2173
2129
|
const clearLabel = clearLabelProp ?? m.clearSelection ?? "\uC120\uD0DD \uC9C0\uC6B0\uAE30";
|
|
2174
|
-
const generatedId = (0,
|
|
2130
|
+
const generatedId = (0, import_react33.useId)();
|
|
2175
2131
|
const inputId = id ?? generatedId;
|
|
2176
2132
|
const labelId = `${inputId}-label`;
|
|
2177
2133
|
const listId = `${inputId}-listbox`;
|
|
2178
2134
|
const helperId = helperText3 ? `${inputId}-helper` : void 0;
|
|
2179
2135
|
const optionId = (index) => `${inputId}-option-${index}`;
|
|
2180
2136
|
const portal2 = usePortalProps();
|
|
2181
|
-
const inputRef = (0,
|
|
2182
|
-
const anchorRef = (0,
|
|
2137
|
+
const inputRef = (0, import_react33.useRef)(null);
|
|
2138
|
+
const anchorRef = (0, import_react33.useRef)(null);
|
|
2183
2139
|
const isControlled = "value" in props;
|
|
2184
|
-
const [innerValue, setInnerValue] = (0,
|
|
2140
|
+
const [innerValue, setInnerValue] = (0, import_react33.useState)(defaultValue);
|
|
2185
2141
|
const selectedValue = isControlled ? value4 : innerValue;
|
|
2186
2142
|
const selectedOption = options.find((o) => o.value === selectedValue);
|
|
2187
|
-
const [open, setOpen] = (0,
|
|
2188
|
-
const [query, setQuery] = (0,
|
|
2189
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
2190
|
-
const filtered = (0,
|
|
2143
|
+
const [open, setOpen] = (0, import_react33.useState)(false);
|
|
2144
|
+
const [query, setQuery] = (0, import_react33.useState)(null);
|
|
2145
|
+
const [activeIndex, setActiveIndex] = (0, import_react33.useState)(-1);
|
|
2146
|
+
const filtered = (0, import_react33.useMemo)(() => query ? options.filter((o) => filter(o, query)) : options, [options, filter, query]);
|
|
2191
2147
|
const inputText = query ?? selectedOption?.label ?? "";
|
|
2192
2148
|
const firstEnabled = (list7, from = 0, step2 = 1) => {
|
|
2193
2149
|
for (let i = from; i >= 0 && i < list7.length; i += step2) if (!list7[i].disabled) return i;
|
|
@@ -2213,7 +2169,7 @@ var Combobox = /* @__PURE__ */ (0, import_react32.forwardRef)(function Combobox2
|
|
|
2213
2169
|
if (query === "" && selectedValue) clearSelection();
|
|
2214
2170
|
reset();
|
|
2215
2171
|
};
|
|
2216
|
-
const
|
|
2172
|
+
const select2 = (option2) => {
|
|
2217
2173
|
if (option2.disabled) return;
|
|
2218
2174
|
if (!isControlled) setInnerValue(option2.value);
|
|
2219
2175
|
if (option2.value !== selectedValue) onValueChange?.(option2.value);
|
|
@@ -2247,7 +2203,7 @@ var Combobox = /* @__PURE__ */ (0, import_react32.forwardRef)(function Combobox2
|
|
|
2247
2203
|
if (open) {
|
|
2248
2204
|
event.preventDefault();
|
|
2249
2205
|
const option2 = filtered[activeIndex];
|
|
2250
|
-
if (option2)
|
|
2206
|
+
if (option2) select2(option2);
|
|
2251
2207
|
else close2();
|
|
2252
2208
|
}
|
|
2253
2209
|
break;
|
|
@@ -2262,16 +2218,16 @@ var Combobox = /* @__PURE__ */ (0, import_react32.forwardRef)(function Combobox2
|
|
|
2262
2218
|
break;
|
|
2263
2219
|
}
|
|
2264
2220
|
};
|
|
2265
|
-
(0,
|
|
2221
|
+
(0, import_react33.useEffect)(() => {
|
|
2266
2222
|
if (!open || activeIndex < 0) return;
|
|
2267
2223
|
document.getElementById(optionId(activeIndex))?.scrollIntoView?.({ block: "nearest" });
|
|
2268
2224
|
}, [open, activeIndex]);
|
|
2269
2225
|
const hasOptions = filtered.length > 0;
|
|
2270
2226
|
const noResults = open && !disabled && !hasOptions;
|
|
2271
|
-
const [announcedFor, setAnnouncedFor] = (0,
|
|
2272
|
-
(0,
|
|
2227
|
+
const [announcedFor, setAnnouncedFor] = (0, import_react33.useState)(void 0);
|
|
2228
|
+
(0, import_react33.useEffect)(() => {
|
|
2273
2229
|
if (!noResults) return;
|
|
2274
|
-
const timer2 = setTimeout(() => setAnnouncedFor(query),
|
|
2230
|
+
const timer2 = setTimeout(() => setAnnouncedFor(query), ANNOUNCE_DELAY);
|
|
2275
2231
|
return () => clearTimeout(timer2);
|
|
2276
2232
|
}, [noResults, query]);
|
|
2277
2233
|
const announceNoResults = noResults && announcedFor === query;
|
|
@@ -2393,7 +2349,7 @@ var Combobox = /* @__PURE__ */ (0, import_react32.forwardRef)(function Combobox2
|
|
|
2393
2349
|
className: item5,
|
|
2394
2350
|
onMouseDown: (event) => event.preventDefault(),
|
|
2395
2351
|
onMouseMove: () => !option2.disabled && setActiveIndex(index),
|
|
2396
|
-
onClick: () =>
|
|
2352
|
+
onClick: () => select2(option2),
|
|
2397
2353
|
children: [
|
|
2398
2354
|
option2.label,
|
|
2399
2355
|
isSelected && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: itemIndicator, "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_icons10.CheckIcon, { size: 16 }) })
|
|
@@ -2418,13 +2374,13 @@ var Combobox = /* @__PURE__ */ (0, import_react32.forwardRef)(function Combobox2
|
|
|
2418
2374
|
});
|
|
2419
2375
|
|
|
2420
2376
|
// src/components/DatePicker/DatePicker.tsx
|
|
2421
|
-
var
|
|
2377
|
+
var import_react35 = require("react");
|
|
2422
2378
|
var import_icons12 = require("@bestow-ui/icons");
|
|
2423
2379
|
|
|
2424
2380
|
// src/components/Popover/Popover.tsx
|
|
2425
2381
|
var RadixPopover = __toESM(require("@radix-ui/react-popover"), 1);
|
|
2426
2382
|
var import_icons11 = require("@bestow-ui/icons");
|
|
2427
|
-
var
|
|
2383
|
+
var import_react34 = require("react");
|
|
2428
2384
|
|
|
2429
2385
|
// src/components/Popover/Popover.css.ts
|
|
2430
2386
|
var arrow = "_1j99p8x4";
|
|
@@ -2454,7 +2410,7 @@ function Popover2({
|
|
|
2454
2410
|
}) {
|
|
2455
2411
|
const portal2 = usePortalProps();
|
|
2456
2412
|
const m = useMessages();
|
|
2457
|
-
const titleId = (0,
|
|
2413
|
+
const titleId = (0, import_react34.useId)();
|
|
2458
2414
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(RadixPopover.Root, { open, defaultOpen, onOpenChange, modal, children: [
|
|
2459
2415
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadixPopover.Trigger, { asChild: true, children }),
|
|
2460
2416
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadixPopover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
@@ -2488,7 +2444,7 @@ var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
|
2488
2444
|
var sanitize2 = (input6) => input6.replace(/\D/g, "").slice(0, 8);
|
|
2489
2445
|
var format = (digits) => digits.length <= 4 ? digits : digits.length <= 6 ? `${digits.slice(0, 4)}-${digits.slice(4)}` : `${digits.slice(0, 4)}-${digits.slice(4, 6)}-${digits.slice(6)}`;
|
|
2490
2446
|
var isDigit3 = (char) => /\d/.test(char);
|
|
2491
|
-
var DatePicker = /* @__PURE__ */ (0,
|
|
2447
|
+
var DatePicker = /* @__PURE__ */ (0, import_react35.forwardRef)(
|
|
2492
2448
|
function DatePicker2(props, ref) {
|
|
2493
2449
|
const {
|
|
2494
2450
|
value: value4,
|
|
@@ -2514,17 +2470,17 @@ var DatePicker = /* @__PURE__ */ (0, import_react34.forwardRef)(
|
|
|
2514
2470
|
id,
|
|
2515
2471
|
className
|
|
2516
2472
|
} = props;
|
|
2517
|
-
const inputRef = (0,
|
|
2473
|
+
const inputRef = (0, import_react35.useRef)(null);
|
|
2518
2474
|
const m = useMessages();
|
|
2519
2475
|
const label7 = labelProp ?? m.date ?? "\uB0A0\uC9DC";
|
|
2520
2476
|
const calendarLabel = calendarLabelProp ?? m.openCalendar ?? "\uB2EC\uB825 \uC5F4\uAE30";
|
|
2521
2477
|
const invalidText = invalidTextProp ?? m.dateInvalid ?? "\uC62C\uBC14\uB978 \uB0A0\uC9DC\uAC00 \uC544\uB2C8\uC5D0\uC694.";
|
|
2522
2478
|
const unavailableText = unavailableTextProp ?? m.dateUnavailable ?? "\uACE0\uB97C \uC218 \uC5C6\uB294 \uB0A0\uC9DC\uC608\uC694.";
|
|
2523
2479
|
const incompleteText = incompleteTextProp ?? m.dateIncomplete ?? "\uB0A0\uC9DC\uB97C YYYY-MM-DD \uD615\uC2DD\uC73C\uB85C \uC785\uB825\uD574 \uC8FC\uC138\uC694.";
|
|
2524
|
-
const [open, setOpen] = (0,
|
|
2525
|
-
const [touched, setTouched] = (0,
|
|
2480
|
+
const [open, setOpen] = (0, import_react35.useState)(false);
|
|
2481
|
+
const [touched, setTouched] = (0, import_react35.useState)(false);
|
|
2526
2482
|
const isControlled = "value" in props;
|
|
2527
|
-
const lastEmitted = (0,
|
|
2483
|
+
const lastEmitted = (0, import_react35.useRef)(isControlled ? value4 ?? "" : defaultValue ?? "");
|
|
2528
2484
|
const minDate = parseISODate(min);
|
|
2529
2485
|
const maxDate = parseISODate(max);
|
|
2530
2486
|
const toIso = (digits) => digits.length === 8 ? `${digits.slice(0, 4)}-${digits.slice(4, 6)}-${digits.slice(6)}` : "";
|
|
@@ -2549,7 +2505,7 @@ var DatePicker = /* @__PURE__ */ (0, import_react34.forwardRef)(
|
|
|
2549
2505
|
});
|
|
2550
2506
|
const textIso = toIso(field4.raw);
|
|
2551
2507
|
const { setRaw } = field4;
|
|
2552
|
-
(0,
|
|
2508
|
+
(0, import_react35.useEffect)(() => {
|
|
2553
2509
|
if (!isControlled) return;
|
|
2554
2510
|
const next = value4 ?? "";
|
|
2555
2511
|
lastEmitted.current = next;
|
|
@@ -2563,6 +2519,7 @@ var DatePicker = /* @__PURE__ */ (0, import_react34.forwardRef)(
|
|
|
2563
2519
|
const complete = field4.raw.length === 8;
|
|
2564
2520
|
const autoError = complete ? !date ? invalidText : isUnavailable(date) ? unavailableText : null : touched && field4.raw.length > 0 ? incompleteText : null;
|
|
2565
2521
|
const showAuto = autoError !== null && error === void 0;
|
|
2522
|
+
const announcement = useDelayedAnnouncement(showAuto && complete ? autoError ?? "" : "");
|
|
2566
2523
|
const selectedIso = date && !isUnavailable(date) ? textIso : "";
|
|
2567
2524
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
2568
2525
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
@@ -2615,13 +2572,14 @@ var DatePicker = /* @__PURE__ */ (0, import_react34.forwardRef)(
|
|
|
2615
2572
|
)
|
|
2616
2573
|
}
|
|
2617
2574
|
),
|
|
2575
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { role: "status", className: visuallyHidden, children: announcement }),
|
|
2618
2576
|
name && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("input", { type: "hidden", name, value: selectedIso })
|
|
2619
2577
|
] });
|
|
2620
2578
|
}
|
|
2621
2579
|
);
|
|
2622
2580
|
|
|
2623
2581
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
2624
|
-
var
|
|
2582
|
+
var import_react36 = require("react");
|
|
2625
2583
|
|
|
2626
2584
|
// src/components/DateRangePicker/DateRangePicker.css.ts
|
|
2627
2585
|
var field2 = "_17277dh3";
|
|
@@ -2633,7 +2591,7 @@ var separator2 = "_17277dh4";
|
|
|
2633
2591
|
|
|
2634
2592
|
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
2635
2593
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
2636
|
-
var DateRangePicker = /* @__PURE__ */ (0,
|
|
2594
|
+
var DateRangePicker = /* @__PURE__ */ (0, import_react36.forwardRef)(
|
|
2637
2595
|
function DateRangePicker2(props, ref) {
|
|
2638
2596
|
const {
|
|
2639
2597
|
value: value4,
|
|
@@ -2658,12 +2616,12 @@ var DateRangePicker = /* @__PURE__ */ (0, import_react35.forwardRef)(
|
|
|
2658
2616
|
className
|
|
2659
2617
|
} = props;
|
|
2660
2618
|
const m = useMessages();
|
|
2661
|
-
const generatedId = (0,
|
|
2619
|
+
const generatedId = (0, import_react36.useId)();
|
|
2662
2620
|
const baseId = id ?? generatedId;
|
|
2663
2621
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
2664
2622
|
const isClient = useIsClient();
|
|
2665
2623
|
const isControlled = "value" in props;
|
|
2666
|
-
const [inner, setInner] = (0,
|
|
2624
|
+
const [inner, setInner] = (0, import_react36.useState)(defaultValue ?? { start: "", end: "" });
|
|
2667
2625
|
const range3 = isControlled ? value4 ?? { start: "", end: "" } : inner;
|
|
2668
2626
|
const update = (next) => {
|
|
2669
2627
|
if (next.start === range3.start && next.end === range3.end) return;
|
|
@@ -2812,7 +2770,7 @@ function Drawer({
|
|
|
2812
2770
|
var DrawerClose = Dialog2.Close;
|
|
2813
2771
|
|
|
2814
2772
|
// src/components/ErrorSummary/ErrorSummary.tsx
|
|
2815
|
-
var
|
|
2773
|
+
var import_react37 = require("react");
|
|
2816
2774
|
|
|
2817
2775
|
// src/components/ErrorSummary/ErrorSummary.css.ts
|
|
2818
2776
|
var link3 = "_1cdophv2";
|
|
@@ -2821,12 +2779,12 @@ var root9 = "_1cdophv0";
|
|
|
2821
2779
|
|
|
2822
2780
|
// src/components/ErrorSummary/ErrorSummary.tsx
|
|
2823
2781
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2824
|
-
var ErrorSummary = /* @__PURE__ */ (0,
|
|
2782
|
+
var ErrorSummary = /* @__PURE__ */ (0, import_react37.forwardRef)(function ErrorSummary2({ errors: errors2, title: title6, focusKey, className, ...rest }, ref) {
|
|
2825
2783
|
const m = useMessages();
|
|
2826
|
-
const titleId = (0,
|
|
2827
|
-
const rootRef = (0,
|
|
2784
|
+
const titleId = (0, import_react37.useId)();
|
|
2785
|
+
const rootRef = (0, import_react37.useRef)(null);
|
|
2828
2786
|
const hasErrors = errors2.length > 0;
|
|
2829
|
-
(0,
|
|
2787
|
+
(0, import_react37.useEffect)(() => {
|
|
2830
2788
|
if (hasErrors) rootRef.current?.focus();
|
|
2831
2789
|
}, [focusKey, hasErrors]);
|
|
2832
2790
|
if (!hasErrors) return null;
|
|
@@ -2861,7 +2819,7 @@ var ErrorSummary = /* @__PURE__ */ (0, import_react36.forwardRef)(function Error
|
|
|
2861
2819
|
});
|
|
2862
2820
|
|
|
2863
2821
|
// src/components/FileUpload/FileUpload.tsx
|
|
2864
|
-
var
|
|
2822
|
+
var import_react38 = require("react");
|
|
2865
2823
|
var import_icons14 = require("@bestow-ui/icons");
|
|
2866
2824
|
|
|
2867
2825
|
// src/components/FileUpload/FileUpload.css.ts
|
|
@@ -2894,7 +2852,7 @@ function matchesAccept(file, accept) {
|
|
|
2894
2852
|
}
|
|
2895
2853
|
var NO_FILES = [];
|
|
2896
2854
|
var sameFile = (a, b) => a.name === b.name && a.size === b.size && a.lastModified === b.lastModified;
|
|
2897
|
-
var FileUpload = /* @__PURE__ */ (0,
|
|
2855
|
+
var FileUpload = /* @__PURE__ */ (0, import_react38.forwardRef)(function FileUpload2(props, ref) {
|
|
2898
2856
|
const {
|
|
2899
2857
|
value: value4,
|
|
2900
2858
|
defaultValue,
|
|
@@ -2915,22 +2873,22 @@ var FileUpload = /* @__PURE__ */ (0, import_react37.forwardRef)(function FileUpl
|
|
|
2915
2873
|
} = props;
|
|
2916
2874
|
const m = useMessages();
|
|
2917
2875
|
const isControlled = "value" in props;
|
|
2918
|
-
const [innerFiles, setInnerFiles] = (0,
|
|
2876
|
+
const [innerFiles, setInnerFiles] = (0, import_react38.useState)(defaultValue ?? []);
|
|
2919
2877
|
const files = isControlled ? value4 ?? NO_FILES : innerFiles;
|
|
2920
|
-
const [rejections, setRejections] = (0,
|
|
2921
|
-
const [announcement, setAnnouncement] = (0,
|
|
2922
|
-
const [dragging, setDragging] = (0,
|
|
2923
|
-
const generatedId = (0,
|
|
2878
|
+
const [rejections, setRejections] = (0, import_react38.useState)([]);
|
|
2879
|
+
const [announcement, setAnnouncement] = (0, import_react38.useState)("");
|
|
2880
|
+
const [dragging, setDragging] = (0, import_react38.useState)(false);
|
|
2881
|
+
const generatedId = (0, import_react38.useId)();
|
|
2924
2882
|
const baseId = id ?? generatedId;
|
|
2925
2883
|
const labelId = label7 ? `${baseId}-label` : void 0;
|
|
2926
2884
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
2927
2885
|
const errorsId = rejections.length > 0 ? `${baseId}-errors` : void 0;
|
|
2928
|
-
const inputRef = (0,
|
|
2929
|
-
const selectButtonRef = (0,
|
|
2930
|
-
const removeButtonRefs = (0,
|
|
2931
|
-
const focusAfterRemove = (0,
|
|
2932
|
-
const announceTimer = (0,
|
|
2933
|
-
(0,
|
|
2886
|
+
const inputRef = (0, import_react38.useRef)(null);
|
|
2887
|
+
const selectButtonRef = (0, import_react38.useRef)(null);
|
|
2888
|
+
const removeButtonRefs = (0, import_react38.useRef)([]);
|
|
2889
|
+
const focusAfterRemove = (0, import_react38.useRef)(null);
|
|
2890
|
+
const announceTimer = (0, import_react38.useRef)(void 0);
|
|
2891
|
+
(0, import_react38.useEffect)(() => () => clearTimeout(announceTimer.current), []);
|
|
2934
2892
|
const selectLabel = m.fileSelect ?? "\uD30C\uC77C \uC120\uD0DD";
|
|
2935
2893
|
const reasonText = (rejection) => {
|
|
2936
2894
|
const fileName2 = rejection.file.name;
|
|
@@ -2978,13 +2936,13 @@ var FileUpload = /* @__PURE__ */ (0, import_react37.forwardRef)(function FileUpl
|
|
|
2978
2936
|
setRejections([]);
|
|
2979
2937
|
commit(next, m.fileRemoved?.(removed.name) ?? `${removed.name} \uC0AD\uC81C\uB428`, REMOVED_ANNOUNCE_DELAY);
|
|
2980
2938
|
};
|
|
2981
|
-
(0,
|
|
2939
|
+
(0, import_react38.useEffect)(() => {
|
|
2982
2940
|
if (focusAfterRemove.current === null) return;
|
|
2983
2941
|
const target = focusAfterRemove.current;
|
|
2984
2942
|
focusAfterRemove.current = null;
|
|
2985
2943
|
(target >= 0 ? removeButtonRefs.current[target] : selectButtonRef.current)?.focus();
|
|
2986
2944
|
}, [files]);
|
|
2987
|
-
(0,
|
|
2945
|
+
(0, import_react38.useEffect)(() => {
|
|
2988
2946
|
const input6 = inputRef.current;
|
|
2989
2947
|
if (!name || !input6 || typeof DataTransfer === "undefined") return;
|
|
2990
2948
|
try {
|
|
@@ -3090,7 +3048,7 @@ var FileUpload = /* @__PURE__ */ (0, import_react37.forwardRef)(function FileUpl
|
|
|
3090
3048
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
3091
3049
|
var RadixMenu = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
|
|
3092
3050
|
var import_icons15 = require("@bestow-ui/icons");
|
|
3093
|
-
var
|
|
3051
|
+
var import_react39 = require("react");
|
|
3094
3052
|
|
|
3095
3053
|
// src/components/DropdownMenu/DropdownMenu.css.ts
|
|
3096
3054
|
var content9 = "_1d7ahux0";
|
|
@@ -3111,7 +3069,7 @@ var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
|
3111
3069
|
var DropdownMenu = RadixMenu.Root;
|
|
3112
3070
|
var DropdownMenuTrigger = RadixMenu.Trigger;
|
|
3113
3071
|
var DropdownMenuGroup = RadixMenu.Group;
|
|
3114
|
-
var DropdownMenuContent = /* @__PURE__ */ (0,
|
|
3072
|
+
var DropdownMenuContent = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
3115
3073
|
function DropdownMenuContent2({ className, style, side = "bottom", align = "start", sideOffset = 4, collisionPadding = 8, ...rest }, ref) {
|
|
3116
3074
|
const portal2 = usePortalProps();
|
|
3117
3075
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadixMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
@@ -3129,26 +3087,26 @@ var DropdownMenuContent = /* @__PURE__ */ (0, import_react38.forwardRef)(
|
|
|
3129
3087
|
) });
|
|
3130
3088
|
}
|
|
3131
3089
|
);
|
|
3132
|
-
var DropdownMenuItem = /* @__PURE__ */ (0,
|
|
3133
|
-
function DropdownMenuItem2({ icon:
|
|
3090
|
+
var DropdownMenuItem = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
3091
|
+
function DropdownMenuItem2({ icon: icon8, shortcut: shortcut2, color = "neutral", className, children, ...rest }, ref) {
|
|
3134
3092
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(RadixMenu.Item, { ref, className: cx(item7, color === "danger" && danger, className), ...rest, children: [
|
|
3135
|
-
|
|
3093
|
+
icon8 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: icon5, "aria-hidden": true, children: icon8 }),
|
|
3136
3094
|
children,
|
|
3137
3095
|
shortcut2 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: shortcut, "aria-hidden": true, children: shortcut2 })
|
|
3138
3096
|
] });
|
|
3139
3097
|
}
|
|
3140
3098
|
);
|
|
3141
|
-
var DropdownMenuLabel = /* @__PURE__ */ (0,
|
|
3099
|
+
var DropdownMenuLabel = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
3142
3100
|
function DropdownMenuLabel2({ className, ...rest }, ref) {
|
|
3143
3101
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadixMenu.Label, { ref, className: cx(label3, className), ...rest });
|
|
3144
3102
|
}
|
|
3145
3103
|
);
|
|
3146
|
-
var DropdownMenuSeparator = /* @__PURE__ */ (0,
|
|
3104
|
+
var DropdownMenuSeparator = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
3147
3105
|
function DropdownMenuSeparator2({ className, ...rest }, ref) {
|
|
3148
3106
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadixMenu.Separator, { ref, className: cx(separator3, className), ...rest });
|
|
3149
3107
|
}
|
|
3150
3108
|
);
|
|
3151
|
-
var DropdownMenuCheckboxItem = /* @__PURE__ */ (0,
|
|
3109
|
+
var DropdownMenuCheckboxItem = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
3152
3110
|
function DropdownMenuCheckboxItem2({ className, children, ...rest }, ref) {
|
|
3153
3111
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(RadixMenu.CheckboxItem, { ref, className: cx(item7, className), ...rest, children: [
|
|
3154
3112
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: indicator2, "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadixMenu.ItemIndicator, { className: indicatorInner, children: rest.checked === "indeterminate" ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_icons15.MinusIcon, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_icons15.CheckIcon, { size: 16 }) }) }),
|
|
@@ -3157,7 +3115,7 @@ var DropdownMenuCheckboxItem = /* @__PURE__ */ (0, import_react38.forwardRef)(
|
|
|
3157
3115
|
}
|
|
3158
3116
|
);
|
|
3159
3117
|
var DropdownMenuRadioGroup = RadixMenu.RadioGroup;
|
|
3160
|
-
var DropdownMenuRadioItem = /* @__PURE__ */ (0,
|
|
3118
|
+
var DropdownMenuRadioItem = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
3161
3119
|
function DropdownMenuRadioItem2({ className, children, ...rest }, ref) {
|
|
3162
3120
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(RadixMenu.RadioItem, { ref, className: cx(item7, className), ...rest, children: [
|
|
3163
3121
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: indicator2, "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadixMenu.ItemIndicator, { className: indicatorInner, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: radioDot }) }) }),
|
|
@@ -3166,16 +3124,16 @@ var DropdownMenuRadioItem = /* @__PURE__ */ (0, import_react38.forwardRef)(
|
|
|
3166
3124
|
}
|
|
3167
3125
|
);
|
|
3168
3126
|
var DropdownMenuSub = RadixMenu.Sub;
|
|
3169
|
-
var DropdownMenuSubTrigger = /* @__PURE__ */ (0,
|
|
3170
|
-
function DropdownMenuSubTrigger2({ icon:
|
|
3127
|
+
var DropdownMenuSubTrigger = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
3128
|
+
function DropdownMenuSubTrigger2({ icon: icon8, className, children, ...rest }, ref) {
|
|
3171
3129
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(RadixMenu.SubTrigger, { ref, className: cx(item7, subTrigger, className), ...rest, children: [
|
|
3172
|
-
|
|
3130
|
+
icon8 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: icon5, "aria-hidden": true, children: icon8 }),
|
|
3173
3131
|
children,
|
|
3174
3132
|
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: subChevron, "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_icons15.ChevronRightIcon, { size: 16 }) })
|
|
3175
3133
|
] });
|
|
3176
3134
|
}
|
|
3177
3135
|
);
|
|
3178
|
-
var DropdownMenuSubContent = /* @__PURE__ */ (0,
|
|
3136
|
+
var DropdownMenuSubContent = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
3179
3137
|
function DropdownMenuSubContent2({ className, style, sideOffset = 4, alignOffset = -5, collisionPadding = 8, ...rest }, ref) {
|
|
3180
3138
|
const portal2 = usePortalProps();
|
|
3181
3139
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadixMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
@@ -3194,7 +3152,7 @@ var DropdownMenuSubContent = /* @__PURE__ */ (0, import_react38.forwardRef)(
|
|
|
3194
3152
|
);
|
|
3195
3153
|
|
|
3196
3154
|
// src/components/NumberInput/NumberInput.tsx
|
|
3197
|
-
var
|
|
3155
|
+
var import_react40 = require("react");
|
|
3198
3156
|
var import_icons16 = require("@bestow-ui/icons");
|
|
3199
3157
|
|
|
3200
3158
|
// src/components/NumberInput/NumberInput.css.ts
|
|
@@ -3210,7 +3168,7 @@ var MAX_DIGITS2 = 15;
|
|
|
3210
3168
|
var isMeaningful = (char) => /[\d.-]/.test(char);
|
|
3211
3169
|
var decimalsOf = (n) => Number.isFinite(n) ? String(n).split(".")[1]?.length ?? 0 : 0;
|
|
3212
3170
|
var parse = (raw) => /\d/.test(raw) ? Number(raw) : null;
|
|
3213
|
-
var NumberInput = /* @__PURE__ */ (0,
|
|
3171
|
+
var NumberInput = /* @__PURE__ */ (0, import_react40.forwardRef)(
|
|
3214
3172
|
function NumberInput2(props, ref) {
|
|
3215
3173
|
const {
|
|
3216
3174
|
value: value4,
|
|
@@ -3236,8 +3194,8 @@ var NumberInput = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
|
3236
3194
|
} = props;
|
|
3237
3195
|
const isControlled = "value" in props;
|
|
3238
3196
|
const m = useMessages();
|
|
3239
|
-
const inputRef = (0,
|
|
3240
|
-
const generatedId = (0,
|
|
3197
|
+
const inputRef = (0, import_react40.useRef)(null);
|
|
3198
|
+
const generatedId = (0, import_react40.useId)();
|
|
3241
3199
|
const inputId = id ?? generatedId;
|
|
3242
3200
|
const precision = Math.max(0, precisionProp ?? decimalsOf(step2));
|
|
3243
3201
|
const allowNegative = min === void 0 || min < 0;
|
|
@@ -3257,7 +3215,7 @@ var NumberInput = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
|
3257
3215
|
const [, sign = "", int = "", rest2 = ""] = raw.match(/^(-?)(\d*)(.*)$/) ?? [];
|
|
3258
3216
|
return `${sign}${int ? Number(int).toLocaleString("ko-KR") : ""}${rest2}`;
|
|
3259
3217
|
};
|
|
3260
|
-
const lastEmitted = (0,
|
|
3218
|
+
const lastEmitted = (0, import_react40.useRef)(parse(toRaw(isControlled ? value4 : defaultValue)));
|
|
3261
3219
|
const emit = (next) => {
|
|
3262
3220
|
if (next === lastEmitted.current) return;
|
|
3263
3221
|
lastEmitted.current = next;
|
|
@@ -3274,7 +3232,7 @@ var NumberInput = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
|
3274
3232
|
inputRef
|
|
3275
3233
|
});
|
|
3276
3234
|
const { setRaw } = field4;
|
|
3277
|
-
(0,
|
|
3235
|
+
(0, import_react40.useEffect)(() => {
|
|
3278
3236
|
if (!isControlled) return;
|
|
3279
3237
|
const next = value4 ?? null;
|
|
3280
3238
|
lastEmitted.current = next;
|
|
@@ -3282,7 +3240,7 @@ var NumberInput = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
|
3282
3240
|
}, [value4]);
|
|
3283
3241
|
const current2 = parse(field4.raw);
|
|
3284
3242
|
const valueText = (n) => `${format2(toRaw(n))}${unit2 ?? ""}`;
|
|
3285
|
-
const [announcement, setAnnouncement] = (0,
|
|
3243
|
+
const [announcement, setAnnouncement] = (0, import_react40.useState)("");
|
|
3286
3244
|
const setValue = (next, announce = true) => {
|
|
3287
3245
|
setRaw(toRaw(next));
|
|
3288
3246
|
emit(next);
|
|
@@ -3375,7 +3333,7 @@ var NumberInput = /* @__PURE__ */ (0, import_react39.forwardRef)(
|
|
|
3375
3333
|
|
|
3376
3334
|
// src/components/Pagination/Pagination.tsx
|
|
3377
3335
|
var import_icons17 = require("@bestow-ui/icons");
|
|
3378
|
-
var
|
|
3336
|
+
var import_react41 = require("react");
|
|
3379
3337
|
|
|
3380
3338
|
// src/components/Pagination/getPaginationItems.ts
|
|
3381
3339
|
var range = (start, end2) => end2 < start ? [] : Array.from({ length: end2 - start + 1 }, (_, i) => start + i);
|
|
@@ -3409,7 +3367,7 @@ var list5 = "_1iraoak0";
|
|
|
3409
3367
|
|
|
3410
3368
|
// src/components/Pagination/Pagination.tsx
|
|
3411
3369
|
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3412
|
-
var Pagination = /* @__PURE__ */ (0,
|
|
3370
|
+
var Pagination = /* @__PURE__ */ (0, import_react41.forwardRef)(function Pagination2({
|
|
3413
3371
|
totalPages,
|
|
3414
3372
|
page: pageProp,
|
|
3415
3373
|
defaultPage = 1,
|
|
@@ -3422,7 +3380,7 @@ var Pagination = /* @__PURE__ */ (0, import_react40.forwardRef)(function Paginat
|
|
|
3422
3380
|
"aria-label": ariaLabelProp,
|
|
3423
3381
|
...rest
|
|
3424
3382
|
}, ref) {
|
|
3425
|
-
const [uncontrolledPage, setUncontrolledPage] = (0,
|
|
3383
|
+
const [uncontrolledPage, setUncontrolledPage] = (0, import_react41.useState)(defaultPage);
|
|
3426
3384
|
const m = useMessages();
|
|
3427
3385
|
const ariaLabel = ariaLabelProp ?? m.pagination ?? "\uD398\uC774\uC9C0 \uD0D0\uC0C9";
|
|
3428
3386
|
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`);
|
|
@@ -3474,14 +3432,15 @@ var Pagination = /* @__PURE__ */ (0, import_react40.forwardRef)(function Paginat
|
|
|
3474
3432
|
});
|
|
3475
3433
|
|
|
3476
3434
|
// src/components/PhoneNumberInput/PhoneNumberInput.tsx
|
|
3477
|
-
var
|
|
3435
|
+
var import_react42 = require("react");
|
|
3436
|
+
var import_korean_utils6 = require("@bestow-ui/korean-utils");
|
|
3478
3437
|
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
3479
3438
|
var sanitize3 = (input6) => {
|
|
3480
3439
|
const digits = input6.replace(/\D/g, "");
|
|
3481
|
-
return digits.slice(0, phoneNumberMaxDigits(digits));
|
|
3440
|
+
return digits.slice(0, (0, import_korean_utils6.phoneNumberMaxDigits)(digits));
|
|
3482
3441
|
};
|
|
3483
3442
|
var isDigit4 = (char) => /\d/.test(char);
|
|
3484
|
-
var PhoneNumberInput = /* @__PURE__ */ (0,
|
|
3443
|
+
var PhoneNumberInput = /* @__PURE__ */ (0, import_react42.forwardRef)(
|
|
3485
3444
|
function PhoneNumberInput2(props, ref) {
|
|
3486
3445
|
const {
|
|
3487
3446
|
value: value4,
|
|
@@ -3492,7 +3451,7 @@ var PhoneNumberInput = /* @__PURE__ */ (0, import_react41.forwardRef)(
|
|
|
3492
3451
|
onKeyDown,
|
|
3493
3452
|
...rest
|
|
3494
3453
|
} = props;
|
|
3495
|
-
const inputRef = (0,
|
|
3454
|
+
const inputRef = (0, import_react42.useRef)(null);
|
|
3496
3455
|
const m = useMessages();
|
|
3497
3456
|
const label7 = labelProp ?? m.phoneNumber ?? "\uD734\uB300\uD3F0 \uBC88\uD638";
|
|
3498
3457
|
const field4 = useFormattedInput({
|
|
@@ -3501,7 +3460,7 @@ var PhoneNumberInput = /* @__PURE__ */ (0, import_react41.forwardRef)(
|
|
|
3501
3460
|
defaultValue,
|
|
3502
3461
|
onValueChange,
|
|
3503
3462
|
sanitize: sanitize3,
|
|
3504
|
-
format: formatPhoneNumber,
|
|
3463
|
+
format: import_korean_utils6.formatPhoneNumber,
|
|
3505
3464
|
isMeaningful: isDigit4,
|
|
3506
3465
|
inputRef
|
|
3507
3466
|
});
|
|
@@ -3527,7 +3486,7 @@ var PhoneNumberInput = /* @__PURE__ */ (0, import_react41.forwardRef)(
|
|
|
3527
3486
|
);
|
|
3528
3487
|
|
|
3529
3488
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
3530
|
-
var
|
|
3489
|
+
var import_react43 = require("react");
|
|
3531
3490
|
|
|
3532
3491
|
// src/components/RadioGroup/RadioGroup.css.ts
|
|
3533
3492
|
var import_createRuntimeFn21 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -3541,7 +3500,7 @@ var text = "_1w9iwjma";
|
|
|
3541
3500
|
|
|
3542
3501
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
3543
3502
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3544
|
-
var RadioGroup2 = /* @__PURE__ */ (0,
|
|
3503
|
+
var RadioGroup2 = /* @__PURE__ */ (0, import_react43.forwardRef)(function RadioGroup3(props, ref) {
|
|
3545
3504
|
const {
|
|
3546
3505
|
options,
|
|
3547
3506
|
value: value4,
|
|
@@ -3560,9 +3519,9 @@ var RadioGroup2 = /* @__PURE__ */ (0, import_react42.forwardRef)(function RadioG
|
|
|
3560
3519
|
className
|
|
3561
3520
|
} = props;
|
|
3562
3521
|
const isControlled = "value" in props;
|
|
3563
|
-
const [innerValue, setInnerValue] = (0,
|
|
3522
|
+
const [innerValue, setInnerValue] = (0, import_react43.useState)(defaultValue ?? "");
|
|
3564
3523
|
const current2 = isControlled ? value4 ?? "" : innerValue;
|
|
3565
|
-
const generatedId = (0,
|
|
3524
|
+
const generatedId = (0, import_react43.useId)();
|
|
3566
3525
|
const baseId = id ?? generatedId;
|
|
3567
3526
|
const labelId = label7 ? `${baseId}-label` : void 0;
|
|
3568
3527
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
@@ -3627,7 +3586,7 @@ var RadioGroup2 = /* @__PURE__ */ (0, import_react42.forwardRef)(function RadioG
|
|
|
3627
3586
|
});
|
|
3628
3587
|
|
|
3629
3588
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
3630
|
-
var
|
|
3589
|
+
var import_react44 = require("react");
|
|
3631
3590
|
|
|
3632
3591
|
// src/components/SegmentedControl/SegmentedControl.css.ts
|
|
3633
3592
|
var import_createRuntimeFn22 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
@@ -3638,7 +3597,7 @@ var root11 = /* @__PURE__ */ (0, import_createRuntimeFn22.createRuntimeFn)({ def
|
|
|
3638
3597
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
3639
3598
|
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
3640
3599
|
var NEXT_KEYS = { ArrowRight: 1, ArrowDown: 1, ArrowLeft: -1, ArrowUp: -1 };
|
|
3641
|
-
var SegmentedControl = /* @__PURE__ */ (0,
|
|
3600
|
+
var SegmentedControl = /* @__PURE__ */ (0, import_react44.forwardRef)(
|
|
3642
3601
|
function SegmentedControl2(props, ref) {
|
|
3643
3602
|
const {
|
|
3644
3603
|
options,
|
|
@@ -3655,13 +3614,13 @@ var SegmentedControl = /* @__PURE__ */ (0, import_react43.forwardRef)(
|
|
|
3655
3614
|
className
|
|
3656
3615
|
} = props;
|
|
3657
3616
|
const isControlled = "value" in props;
|
|
3658
|
-
const [innerValue, setInnerValue] = (0,
|
|
3617
|
+
const [innerValue, setInnerValue] = (0, import_react44.useState)(defaultValue ?? "");
|
|
3659
3618
|
const current2 = isControlled ? value4 ?? "" : innerValue;
|
|
3660
|
-
const generatedId = (0,
|
|
3619
|
+
const generatedId = (0, import_react44.useId)();
|
|
3661
3620
|
const labelId = label7 ? `${id ?? generatedId}-label` : void 0;
|
|
3662
|
-
const itemRefs = (0,
|
|
3621
|
+
const itemRefs = (0, import_react44.useRef)([]);
|
|
3663
3622
|
const isEnabled = (index) => !disabled && !options[index]?.disabled;
|
|
3664
|
-
const
|
|
3623
|
+
const select2 = (index) => {
|
|
3665
3624
|
const next = options[index].value;
|
|
3666
3625
|
if (next === current2) return;
|
|
3667
3626
|
if (!isControlled) setInnerValue(next);
|
|
@@ -3688,7 +3647,7 @@ var SegmentedControl = /* @__PURE__ */ (0, import_react43.forwardRef)(
|
|
|
3688
3647
|
if (target < 0) return;
|
|
3689
3648
|
event.preventDefault();
|
|
3690
3649
|
itemRefs.current[target]?.focus();
|
|
3691
|
-
|
|
3650
|
+
select2(target);
|
|
3692
3651
|
};
|
|
3693
3652
|
const group = /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
3694
3653
|
"div",
|
|
@@ -3717,7 +3676,7 @@ var SegmentedControl = /* @__PURE__ */ (0, import_react43.forwardRef)(
|
|
|
3717
3676
|
"data-state": checked ? "checked" : "unchecked",
|
|
3718
3677
|
"data-disabled": isEnabled(index) ? void 0 : "",
|
|
3719
3678
|
className: item9({ size, fullWidth }),
|
|
3720
|
-
onClick: () =>
|
|
3679
|
+
onClick: () => select2(index),
|
|
3721
3680
|
onKeyDown: (event) => handleKeyDown(event, index),
|
|
3722
3681
|
children: [
|
|
3723
3682
|
option2.icon && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { "aria-hidden": true, className: icon6, children: option2.icon }),
|
|
@@ -3739,12 +3698,91 @@ var SegmentedControl = /* @__PURE__ */ (0, import_react43.forwardRef)(
|
|
|
3739
3698
|
}
|
|
3740
3699
|
);
|
|
3741
3700
|
|
|
3742
|
-
// src/components/
|
|
3743
|
-
var
|
|
3744
|
-
var import_react44 = require("react");
|
|
3701
|
+
// src/components/NativeSelect/NativeSelect.tsx
|
|
3702
|
+
var import_react45 = require("react");
|
|
3745
3703
|
var import_icons18 = require("@bestow-ui/icons");
|
|
3704
|
+
|
|
3705
|
+
// src/components/NativeSelect/NativeSelect.css.ts
|
|
3706
|
+
var import_createRuntimeFn23 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
3707
|
+
var icon7 = /* @__PURE__ */ (0, import_createRuntimeFn23.createRuntimeFn)({ defaultClassName: "_5silym5", variantClassNames: { size: { sm: "_5silym6", md: "_5silym7", lg: "_5silym8" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3708
|
+
var select = /* @__PURE__ */ (0, import_createRuntimeFn23.createRuntimeFn)({ defaultClassName: "_5silym1", variantClassNames: { size: { sm: "_5silym2", md: "_5silym3", lg: "_5silym4" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3709
|
+
var wrapper = "_5silym0";
|
|
3710
|
+
|
|
3711
|
+
// src/components/NativeSelect/NativeSelect.tsx
|
|
3746
3712
|
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
3747
|
-
var
|
|
3713
|
+
var NativeSelect = /* @__PURE__ */ (0, import_react45.forwardRef)(function NativeSelect2({
|
|
3714
|
+
options,
|
|
3715
|
+
onValueChange,
|
|
3716
|
+
onChange,
|
|
3717
|
+
placeholder,
|
|
3718
|
+
label: label7,
|
|
3719
|
+
helperText: helperText3,
|
|
3720
|
+
error,
|
|
3721
|
+
size,
|
|
3722
|
+
fullWidth,
|
|
3723
|
+
required,
|
|
3724
|
+
disabled,
|
|
3725
|
+
id,
|
|
3726
|
+
value: value4,
|
|
3727
|
+
defaultValue,
|
|
3728
|
+
className,
|
|
3729
|
+
children,
|
|
3730
|
+
"aria-describedby": ariaDescribedBy,
|
|
3731
|
+
...rest
|
|
3732
|
+
}, ref) {
|
|
3733
|
+
const generatedId = (0, import_react45.useId)();
|
|
3734
|
+
const selectId = id ?? generatedId;
|
|
3735
|
+
const helperId = helperText3 ? `${selectId}-helper` : void 0;
|
|
3736
|
+
const handleChange = (event) => {
|
|
3737
|
+
onChange?.(event);
|
|
3738
|
+
onValueChange?.(event.target.value);
|
|
3739
|
+
};
|
|
3740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
3741
|
+
label7 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("label", { htmlFor: selectId, className: label2, children: [
|
|
3742
|
+
label7,
|
|
3743
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
3744
|
+
] }),
|
|
3745
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
3746
|
+
"span",
|
|
3747
|
+
{
|
|
3748
|
+
className: cx(root5({ size, fullWidth }), wrapper),
|
|
3749
|
+
"data-invalid": error || void 0,
|
|
3750
|
+
"data-disabled": disabled || void 0,
|
|
3751
|
+
children: [
|
|
3752
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
3753
|
+
"select",
|
|
3754
|
+
{
|
|
3755
|
+
ref,
|
|
3756
|
+
id: selectId,
|
|
3757
|
+
value: value4,
|
|
3758
|
+
defaultValue: value4 === void 0 && defaultValue === void 0 && placeholder !== void 0 ? "" : defaultValue,
|
|
3759
|
+
onChange: handleChange,
|
|
3760
|
+
required,
|
|
3761
|
+
disabled,
|
|
3762
|
+
"aria-invalid": error || void 0,
|
|
3763
|
+
"aria-describedby": cx(helperId, ariaDescribedBy) || void 0,
|
|
3764
|
+
className: cx(select({ size }), className),
|
|
3765
|
+
...rest,
|
|
3766
|
+
children: [
|
|
3767
|
+
placeholder !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("option", { value: "", disabled: true, children: placeholder }),
|
|
3768
|
+
options ? options.map((option2) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("option", { value: option2.value, disabled: option2.disabled, children: option2.label }, option2.value)) : children
|
|
3769
|
+
]
|
|
3770
|
+
}
|
|
3771
|
+
),
|
|
3772
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_icons18.ChevronDownIcon, { size: 16, className: icon7({ size }) })
|
|
3773
|
+
]
|
|
3774
|
+
}
|
|
3775
|
+
),
|
|
3776
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
3777
|
+
] });
|
|
3778
|
+
});
|
|
3779
|
+
|
|
3780
|
+
// src/components/Select/Select.tsx
|
|
3781
|
+
var RadixSelect = __toESM(require("@radix-ui/react-select"), 1);
|
|
3782
|
+
var import_react46 = require("react");
|
|
3783
|
+
var import_icons19 = require("@bestow-ui/icons");
|
|
3784
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
3785
|
+
var Select = /* @__PURE__ */ (0, import_react46.forwardRef)(function Select2(props, ref) {
|
|
3748
3786
|
const {
|
|
3749
3787
|
options,
|
|
3750
3788
|
value: value4,
|
|
@@ -3764,16 +3802,16 @@ var Select = /* @__PURE__ */ (0, import_react44.forwardRef)(function Select2(pro
|
|
|
3764
3802
|
className
|
|
3765
3803
|
} = props;
|
|
3766
3804
|
const isControlled = "value" in props;
|
|
3767
|
-
const generatedId = (0,
|
|
3805
|
+
const generatedId = (0, import_react46.useId)();
|
|
3768
3806
|
const triggerId = id ?? generatedId;
|
|
3769
3807
|
const helperId = helperText3 ? `${triggerId}-helper` : void 0;
|
|
3770
3808
|
const portal2 = usePortalProps();
|
|
3771
|
-
return /* @__PURE__ */ (0,
|
|
3772
|
-
label7 && /* @__PURE__ */ (0,
|
|
3809
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
3810
|
+
label7 && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("label", { htmlFor: triggerId, className: label2, children: [
|
|
3773
3811
|
label7,
|
|
3774
|
-
required && /* @__PURE__ */ (0,
|
|
3812
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
3775
3813
|
] }),
|
|
3776
|
-
/* @__PURE__ */ (0,
|
|
3814
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
3777
3815
|
RadixSelect.Root,
|
|
3778
3816
|
{
|
|
3779
3817
|
value: isControlled ? value4 ?? "" : void 0,
|
|
@@ -3783,7 +3821,7 @@ var Select = /* @__PURE__ */ (0, import_react44.forwardRef)(function Select2(pro
|
|
|
3783
3821
|
required,
|
|
3784
3822
|
name,
|
|
3785
3823
|
children: [
|
|
3786
|
-
/* @__PURE__ */ (0,
|
|
3824
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
3787
3825
|
RadixSelect.Trigger,
|
|
3788
3826
|
{
|
|
3789
3827
|
ref,
|
|
@@ -3794,12 +3832,12 @@ var Select = /* @__PURE__ */ (0, import_react44.forwardRef)(function Select2(pro
|
|
|
3794
3832
|
"data-invalid": error || void 0,
|
|
3795
3833
|
className: cx(root5({ size, fullWidth }), trigger2, className),
|
|
3796
3834
|
children: [
|
|
3797
|
-
/* @__PURE__ */ (0,
|
|
3798
|
-
/* @__PURE__ */ (0,
|
|
3835
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: value2, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(RadixSelect.Value, { placeholder }) }),
|
|
3836
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(RadixSelect.Icon, { className: icon4, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_icons19.ChevronDownIcon, { size: 16 }) })
|
|
3799
3837
|
]
|
|
3800
3838
|
}
|
|
3801
3839
|
),
|
|
3802
|
-
/* @__PURE__ */ (0,
|
|
3840
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(RadixSelect.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
3803
3841
|
RadixSelect.Content,
|
|
3804
3842
|
{
|
|
3805
3843
|
position: "popper",
|
|
@@ -3807,15 +3845,15 @@ var Select = /* @__PURE__ */ (0, import_react44.forwardRef)(function Select2(pro
|
|
|
3807
3845
|
collisionPadding: 8,
|
|
3808
3846
|
className: cx(portal2.className, content5),
|
|
3809
3847
|
style: portal2.style,
|
|
3810
|
-
children: /* @__PURE__ */ (0,
|
|
3848
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(RadixSelect.Viewport, { className: viewport, children: options.map((option2) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
3811
3849
|
RadixSelect.Item,
|
|
3812
3850
|
{
|
|
3813
3851
|
value: option2.value,
|
|
3814
3852
|
disabled: option2.disabled,
|
|
3815
3853
|
className: item5,
|
|
3816
3854
|
children: [
|
|
3817
|
-
/* @__PURE__ */ (0,
|
|
3818
|
-
/* @__PURE__ */ (0,
|
|
3855
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(RadixSelect.ItemText, { children: option2.label }),
|
|
3856
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(RadixSelect.ItemIndicator, { className: itemIndicator, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_icons19.CheckIcon, { size: 16 }) })
|
|
3819
3857
|
]
|
|
3820
3858
|
},
|
|
3821
3859
|
option2.value
|
|
@@ -3825,19 +3863,19 @@ var Select = /* @__PURE__ */ (0, import_react44.forwardRef)(function Select2(pro
|
|
|
3825
3863
|
]
|
|
3826
3864
|
}
|
|
3827
3865
|
),
|
|
3828
|
-
helperText3 && /* @__PURE__ */ (0,
|
|
3866
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
3829
3867
|
] });
|
|
3830
3868
|
});
|
|
3831
3869
|
|
|
3832
3870
|
// src/components/SkipLink/SkipLink.tsx
|
|
3833
|
-
var
|
|
3871
|
+
var import_react47 = require("react");
|
|
3834
3872
|
|
|
3835
3873
|
// src/components/SkipLink/SkipLink.css.ts
|
|
3836
3874
|
var skipLink = "_1t9jaar0";
|
|
3837
3875
|
|
|
3838
3876
|
// src/components/SkipLink/SkipLink.tsx
|
|
3839
|
-
var
|
|
3840
|
-
var SkipLink = /* @__PURE__ */ (0,
|
|
3877
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
3878
|
+
var SkipLink = /* @__PURE__ */ (0, import_react47.forwardRef)(function SkipLink2({ href = "#main", className, children, onClick, ...rest }, ref) {
|
|
3841
3879
|
const m = useMessages();
|
|
3842
3880
|
const handleClick = (event) => {
|
|
3843
3881
|
onClick?.(event);
|
|
@@ -3849,28 +3887,28 @@ var SkipLink = /* @__PURE__ */ (0, import_react45.forwardRef)(function SkipLink2
|
|
|
3849
3887
|
target.focus();
|
|
3850
3888
|
target.scrollIntoView?.({ block: "start" });
|
|
3851
3889
|
};
|
|
3852
|
-
return /* @__PURE__ */ (0,
|
|
3890
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("a", { ref, href, className: cx(skipLink, className), onClick: handleClick, ...rest, children: children ?? m.skipToContent ?? "\uBCF8\uBB38 \uBC14\uB85C\uAC00\uAE30" });
|
|
3853
3891
|
});
|
|
3854
3892
|
|
|
3855
3893
|
// src/components/Slider/Slider.tsx
|
|
3856
3894
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"), 1);
|
|
3857
|
-
var
|
|
3895
|
+
var import_react48 = require("react");
|
|
3858
3896
|
|
|
3859
3897
|
// src/components/Slider/Slider.css.ts
|
|
3860
|
-
var
|
|
3898
|
+
var import_createRuntimeFn24 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
3861
3899
|
var field3 = "_126mzjm0";
|
|
3862
3900
|
var header8 = "_126mzjm1";
|
|
3863
3901
|
var helperText2 = "_126mzjm4";
|
|
3864
3902
|
var label4 = "_126mzjm2";
|
|
3865
3903
|
var range2 = "_126mzjmb";
|
|
3866
|
-
var root12 = /* @__PURE__ */ (0,
|
|
3867
|
-
var thumb = /* @__PURE__ */ (0,
|
|
3868
|
-
var track2 = /* @__PURE__ */ (0,
|
|
3904
|
+
var root12 = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defaultClassName: "_126mzjm5", variantClassNames: { size: { sm: "_126mzjm6", md: "_126mzjm7" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3905
|
+
var thumb = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defaultClassName: "_126mzjmc", variantClassNames: { size: { sm: "_126mzjmd", md: "_126mzjme" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3906
|
+
var track2 = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defaultClassName: "_126mzjm8", variantClassNames: { size: { sm: "_126mzjm9", md: "_126mzjma" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3869
3907
|
var value3 = "_126mzjm3";
|
|
3870
3908
|
|
|
3871
3909
|
// src/components/Slider/Slider.tsx
|
|
3872
|
-
var
|
|
3873
|
-
var Slider = /* @__PURE__ */ (0,
|
|
3910
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
3911
|
+
var Slider = /* @__PURE__ */ (0, import_react48.forwardRef)(function Slider2(props, ref) {
|
|
3874
3912
|
const {
|
|
3875
3913
|
value: value4,
|
|
3876
3914
|
defaultValue,
|
|
@@ -3891,12 +3929,12 @@ var Slider = /* @__PURE__ */ (0, import_react46.forwardRef)(function Slider2(pro
|
|
|
3891
3929
|
} = props;
|
|
3892
3930
|
const m = useMessages();
|
|
3893
3931
|
const thumbLabels = thumbLabelsProp ?? [m.rangeStart ?? "\uCD5C\uC18C", m.rangeEnd ?? "\uCD5C\uB300"];
|
|
3894
|
-
const generatedId = (0,
|
|
3932
|
+
const generatedId = (0, import_react48.useId)();
|
|
3895
3933
|
const baseId = id ?? generatedId;
|
|
3896
3934
|
const labelId = `${baseId}-label`;
|
|
3897
3935
|
const helperId = `${baseId}-helper`;
|
|
3898
3936
|
const isControlled = "value" in props;
|
|
3899
|
-
const [innerValue, setInnerValue] = (0,
|
|
3937
|
+
const [innerValue, setInnerValue] = (0, import_react48.useState)(defaultValue ?? [min]);
|
|
3900
3938
|
const current2 = isControlled ? value4 ?? [min] : innerValue;
|
|
3901
3939
|
const isRange = current2.length > 1;
|
|
3902
3940
|
const handleChange = (next) => {
|
|
@@ -3904,12 +3942,12 @@ var Slider = /* @__PURE__ */ (0, import_react46.forwardRef)(function Slider2(pro
|
|
|
3904
3942
|
onValueChange?.(next);
|
|
3905
3943
|
};
|
|
3906
3944
|
const valueText = current2.map(formatValue).join(" \u2013 ");
|
|
3907
|
-
return /* @__PURE__ */ (0,
|
|
3908
|
-
(label7 || showValue) && /* @__PURE__ */ (0,
|
|
3909
|
-
label7 && /* @__PURE__ */ (0,
|
|
3910
|
-
showValue && /* @__PURE__ */ (0,
|
|
3945
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: cx(field3, className), children: [
|
|
3946
|
+
(label7 || showValue) && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: header8, children: [
|
|
3947
|
+
label7 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { id: labelId, className: label4, children: label7 }),
|
|
3948
|
+
showValue && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: value3, "aria-hidden": true, children: valueText })
|
|
3911
3949
|
] }),
|
|
3912
|
-
/* @__PURE__ */ (0,
|
|
3950
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
3913
3951
|
RadixSlider.Root,
|
|
3914
3952
|
{
|
|
3915
3953
|
ref,
|
|
@@ -3922,10 +3960,10 @@ var Slider = /* @__PURE__ */ (0, import_react46.forwardRef)(function Slider2(pro
|
|
|
3922
3960
|
className: root12({ size }),
|
|
3923
3961
|
...rest,
|
|
3924
3962
|
children: [
|
|
3925
|
-
/* @__PURE__ */ (0,
|
|
3963
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(RadixSlider.Track, { className: track2({ size }), children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(RadixSlider.Range, { className: range2 }) }),
|
|
3926
3964
|
current2.map((thumbValue, index) => {
|
|
3927
3965
|
const thumbLabelId = `${baseId}-thumb-${index}`;
|
|
3928
|
-
return /* @__PURE__ */ (0,
|
|
3966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
3929
3967
|
RadixSlider.Thumb,
|
|
3930
3968
|
{
|
|
3931
3969
|
className: thumb({ size }),
|
|
@@ -3940,32 +3978,32 @@ var Slider = /* @__PURE__ */ (0, import_react46.forwardRef)(function Slider2(pro
|
|
|
3940
3978
|
]
|
|
3941
3979
|
}
|
|
3942
3980
|
),
|
|
3943
|
-
isRange && current2.map((_, index) => /* @__PURE__ */ (0,
|
|
3981
|
+
isRange && current2.map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
|
|
3944
3982
|
label7 ? "" : ariaLabel ? `${ariaLabel} ` : "",
|
|
3945
3983
|
thumbLabels[index] ?? `${index + 1}`
|
|
3946
3984
|
] }, index)),
|
|
3947
|
-
helperText3 && /* @__PURE__ */ (0,
|
|
3985
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { id: helperId, className: helperText2, children: helperText3 })
|
|
3948
3986
|
] });
|
|
3949
3987
|
});
|
|
3950
3988
|
|
|
3951
3989
|
// src/components/Stepper/Stepper.tsx
|
|
3952
|
-
var
|
|
3953
|
-
var
|
|
3990
|
+
var import_react49 = require("react");
|
|
3991
|
+
var import_icons20 = require("@bestow-ui/icons");
|
|
3954
3992
|
|
|
3955
3993
|
// src/components/Stepper/Stepper.css.ts
|
|
3956
|
-
var
|
|
3994
|
+
var import_createRuntimeFn25 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
3957
3995
|
var description6 = "kervhmh";
|
|
3958
|
-
var indicator3 = /* @__PURE__ */ (0,
|
|
3959
|
-
var label5 = /* @__PURE__ */ (0,
|
|
3960
|
-
var root13 = /* @__PURE__ */ (0,
|
|
3961
|
-
var step = /* @__PURE__ */ (0,
|
|
3962
|
-
var text2 = /* @__PURE__ */ (0,
|
|
3996
|
+
var indicator3 = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "kervhm6", variantClassNames: { status: { complete: "kervhm7", current: "kervhm8", upcoming: "kervhm9" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3997
|
+
var label5 = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "kervhmd", variantClassNames: { status: { complete: "kervhme", current: "kervhmf", upcoming: "kervhmg" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3998
|
+
var root13 = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "kervhm0", variantClassNames: { orientation: { horizontal: "kervhm1", vertical: "kervhm2" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
|
|
3999
|
+
var step = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "kervhm3", variantClassNames: { orientation: { horizontal: "kervhm4", vertical: "kervhm5" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
|
|
4000
|
+
var text2 = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "kervhma", variantClassNames: { orientation: { horizontal: "kervhmb", vertical: "kervhmc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
3963
4001
|
|
|
3964
4002
|
// src/components/Stepper/Stepper.tsx
|
|
3965
|
-
var
|
|
3966
|
-
var Stepper = /* @__PURE__ */ (0,
|
|
4003
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
4004
|
+
var Stepper = /* @__PURE__ */ (0, import_react49.forwardRef)(function Stepper2({ steps, current: current2, orientation = "horizontal", "aria-label": ariaLabel, className, ...rest }, ref) {
|
|
3967
4005
|
const m = useMessages();
|
|
3968
|
-
return /* @__PURE__ */ (0,
|
|
4006
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
3969
4007
|
"ol",
|
|
3970
4008
|
{
|
|
3971
4009
|
ref,
|
|
@@ -3974,24 +4012,24 @@ var Stepper = /* @__PURE__ */ (0, import_react47.forwardRef)(function Stepper2({
|
|
|
3974
4012
|
...rest,
|
|
3975
4013
|
children: steps.map((step2, index) => {
|
|
3976
4014
|
const status = index < current2 ? "complete" : index === current2 ? "current" : "upcoming";
|
|
3977
|
-
return /* @__PURE__ */ (0,
|
|
4015
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
3978
4016
|
"li",
|
|
3979
4017
|
{
|
|
3980
4018
|
className: step({ orientation }),
|
|
3981
4019
|
"data-status": status,
|
|
3982
4020
|
"aria-current": status === "current" ? "step" : void 0,
|
|
3983
4021
|
children: [
|
|
3984
|
-
/* @__PURE__ */ (0,
|
|
3985
|
-
/* @__PURE__ */ (0,
|
|
3986
|
-
/* @__PURE__ */ (0,
|
|
4022
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: indicator3({ status }), "aria-hidden": true, children: status === "complete" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_icons20.CheckIcon, { size: 16, strokeWidth: 2.5 }) : index + 1 }),
|
|
4023
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: text2({ orientation }), children: [
|
|
4024
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: label5({ status }), children: [
|
|
3987
4025
|
step2.label,
|
|
3988
|
-
status === "complete" && /* @__PURE__ */ (0,
|
|
4026
|
+
status === "complete" && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: visuallyHidden, children: [
|
|
3989
4027
|
" (",
|
|
3990
4028
|
m.stepCompleted ?? "\uC644\uB8CC",
|
|
3991
4029
|
")"
|
|
3992
4030
|
] })
|
|
3993
4031
|
] }),
|
|
3994
|
-
step2.description && /* @__PURE__ */ (0,
|
|
4032
|
+
step2.description && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: description6, children: step2.description })
|
|
3995
4033
|
] })
|
|
3996
4034
|
]
|
|
3997
4035
|
},
|
|
@@ -4003,47 +4041,120 @@ var Stepper = /* @__PURE__ */ (0, import_react47.forwardRef)(function Stepper2({
|
|
|
4003
4041
|
});
|
|
4004
4042
|
|
|
4005
4043
|
// src/components/Switch/Switch.tsx
|
|
4006
|
-
var
|
|
4007
|
-
var import_react48 = require("react");
|
|
4044
|
+
var import_react50 = require("react");
|
|
4008
4045
|
|
|
4009
4046
|
// src/components/Switch/Switch.css.ts
|
|
4010
|
-
var
|
|
4011
|
-
var
|
|
4012
|
-
var
|
|
4013
|
-
var
|
|
4014
|
-
var
|
|
4047
|
+
var import_createRuntimeFn26 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
4048
|
+
var bubbleInput = /* @__PURE__ */ (0, import_createRuntimeFn26.createRuntimeFn)({ defaultClassName: "o33ul29", variantClassNames: { size: { sm: "o33ul2a", md: "o33ul2b" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
4049
|
+
var label6 = "o33ul2c";
|
|
4050
|
+
var root14 = /* @__PURE__ */ (0, import_createRuntimeFn26.createRuntimeFn)({ defaultClassName: "o33ul20", variantClassNames: { size: { sm: "o33ul21", md: "o33ul22" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
4051
|
+
var thumb2 = /* @__PURE__ */ (0, import_createRuntimeFn26.createRuntimeFn)({ defaultClassName: "o33ul26", variantClassNames: { size: { sm: "o33ul27", md: "o33ul28" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
4052
|
+
var track3 = /* @__PURE__ */ (0, import_createRuntimeFn26.createRuntimeFn)({ defaultClassName: "o33ul23", variantClassNames: { size: { sm: "o33ul24", md: "o33ul25" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
4015
4053
|
|
|
4016
4054
|
// src/components/Switch/Switch.tsx
|
|
4017
|
-
var
|
|
4018
|
-
|
|
4019
|
-
|
|
4055
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
4056
|
+
function setNativeChecked(input6, checked) {
|
|
4057
|
+
Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "checked")?.set?.call(input6, checked);
|
|
4058
|
+
}
|
|
4059
|
+
var Switch = /* @__PURE__ */ (0, import_react50.forwardRef)(function Switch2({
|
|
4060
|
+
label: label7,
|
|
4061
|
+
size,
|
|
4062
|
+
id,
|
|
4063
|
+
className,
|
|
4064
|
+
disabled,
|
|
4065
|
+
required,
|
|
4066
|
+
name,
|
|
4067
|
+
value: value4 = "on",
|
|
4068
|
+
checked: checkedProp,
|
|
4069
|
+
defaultChecked,
|
|
4070
|
+
onCheckedChange,
|
|
4071
|
+
"aria-label": ariaLabel
|
|
4072
|
+
}, ref) {
|
|
4073
|
+
const generatedId = (0, import_react50.useId)();
|
|
4020
4074
|
const switchId = id ?? generatedId;
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4075
|
+
const [uncontrolled, setUncontrolled] = (0, import_react50.useState)(defaultChecked ?? false);
|
|
4076
|
+
const isControlled = checkedProp !== void 0;
|
|
4077
|
+
const checked = isControlled ? checkedProp : uncontrolled;
|
|
4078
|
+
const buttonRef = (0, import_react50.useRef)(null);
|
|
4079
|
+
const inputRef = (0, import_react50.useRef)(null);
|
|
4080
|
+
const [inForm, setInForm] = (0, import_react50.useState)(true);
|
|
4081
|
+
const userToggled = (0, import_react50.useRef)(false);
|
|
4082
|
+
const setChecked = (next) => {
|
|
4083
|
+
if (!isControlled) setUncontrolled(next);
|
|
4084
|
+
if (next !== checked) onCheckedChange?.(next);
|
|
4085
|
+
};
|
|
4086
|
+
const setCheckedRef = (0, import_react50.useRef)(setChecked);
|
|
4087
|
+
setCheckedRef.current = setChecked;
|
|
4088
|
+
(0, import_react50.useEffect)(() => {
|
|
4089
|
+
const form = buttonRef.current?.form;
|
|
4090
|
+
setInForm(!!form);
|
|
4091
|
+
if (!form) return;
|
|
4092
|
+
const initial = checked;
|
|
4093
|
+
const onReset = () => setCheckedRef.current(initial);
|
|
4094
|
+
form.addEventListener("reset", onReset);
|
|
4095
|
+
return () => form.removeEventListener("reset", onReset);
|
|
4096
|
+
}, []);
|
|
4097
|
+
(0, import_react50.useEffect)(() => {
|
|
4098
|
+
const input6 = inputRef.current;
|
|
4099
|
+
if (!input6 || input6.checked === checked) return;
|
|
4100
|
+
setNativeChecked(input6, checked);
|
|
4101
|
+
if (userToggled.current) input6.dispatchEvent(new Event("click", { bubbles: true }));
|
|
4102
|
+
userToggled.current = false;
|
|
4103
|
+
}, [checked]);
|
|
4104
|
+
const handleClick = (event) => {
|
|
4105
|
+
userToggled.current = true;
|
|
4106
|
+
setChecked(!checked);
|
|
4107
|
+
if (inForm) event.stopPropagation();
|
|
4108
|
+
};
|
|
4109
|
+
const state = checked ? "checked" : "unchecked";
|
|
4110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: cx(root14({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
4111
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4112
|
+
"button",
|
|
4024
4113
|
{
|
|
4025
|
-
ref,
|
|
4114
|
+
ref: mergeRefs(ref, buttonRef),
|
|
4115
|
+
type: "button",
|
|
4116
|
+
role: "switch",
|
|
4026
4117
|
id: switchId,
|
|
4027
|
-
|
|
4118
|
+
"aria-checked": checked,
|
|
4119
|
+
"aria-required": required,
|
|
4028
4120
|
"aria-label": ariaLabel,
|
|
4121
|
+
"data-state": state,
|
|
4122
|
+
"data-disabled": disabled ? "" : void 0,
|
|
4123
|
+
disabled,
|
|
4124
|
+
value: value4,
|
|
4029
4125
|
className: track3({ size }),
|
|
4030
|
-
|
|
4031
|
-
children: /* @__PURE__ */ (0,
|
|
4126
|
+
onClick: handleClick,
|
|
4127
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: thumb2({ size }), "data-state": state, "data-disabled": disabled ? "" : void 0 })
|
|
4032
4128
|
}
|
|
4033
4129
|
),
|
|
4034
|
-
|
|
4130
|
+
inForm && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4131
|
+
"input",
|
|
4132
|
+
{
|
|
4133
|
+
ref: inputRef,
|
|
4134
|
+
type: "checkbox",
|
|
4135
|
+
"aria-hidden": true,
|
|
4136
|
+
tabIndex: -1,
|
|
4137
|
+
defaultChecked: checked,
|
|
4138
|
+
required,
|
|
4139
|
+
disabled,
|
|
4140
|
+
name,
|
|
4141
|
+
value: value4,
|
|
4142
|
+
className: bubbleInput({ size })
|
|
4143
|
+
}
|
|
4144
|
+
),
|
|
4145
|
+
label7 && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("label", { htmlFor: switchId, className: label6, children: label7 })
|
|
4035
4146
|
] });
|
|
4036
4147
|
});
|
|
4037
4148
|
|
|
4038
4149
|
// src/components/Table/Table.tsx
|
|
4039
|
-
var
|
|
4040
|
-
var
|
|
4150
|
+
var import_react51 = require("react");
|
|
4151
|
+
var import_icons21 = require("@bestow-ui/icons");
|
|
4041
4152
|
|
|
4042
4153
|
// src/components/Table/Table.css.ts
|
|
4043
|
-
var
|
|
4154
|
+
var import_createRuntimeFn27 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
4044
4155
|
var body4 = "l3ploy5";
|
|
4045
4156
|
var caption = "l3ploy2";
|
|
4046
|
-
var cell2 = /* @__PURE__ */ (0,
|
|
4157
|
+
var cell2 = /* @__PURE__ */ (0, import_createRuntimeFn27.createRuntimeFn)({ defaultClassName: "l3ploy9", variantClassNames: { size: { sm: "l3ploya", md: "l3ployb" }, align: { left: "l3ployc", center: "l3ployd", right: "l3ploye" } }, defaultVariants: { size: "md", align: "left" }, compoundVariants: [] });
|
|
4047
4158
|
var container = "l3ploy0";
|
|
4048
4159
|
var emptyCell = "l3ployj";
|
|
4049
4160
|
var emptyContent = "l3ployk";
|
|
@@ -4059,10 +4170,10 @@ var striped = "l3ploy6";
|
|
|
4059
4170
|
var table = "l3ploy1";
|
|
4060
4171
|
|
|
4061
4172
|
// src/components/Table/Table.tsx
|
|
4062
|
-
var
|
|
4063
|
-
var TableSizeContext = /* @__PURE__ */ (0,
|
|
4064
|
-
var TableSectionContext = /* @__PURE__ */ (0,
|
|
4065
|
-
var Table = /* @__PURE__ */ (0,
|
|
4173
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
4174
|
+
var TableSizeContext = /* @__PURE__ */ (0, import_react51.createContext)("md");
|
|
4175
|
+
var TableSectionContext = /* @__PURE__ */ (0, import_react51.createContext)("body");
|
|
4176
|
+
var Table = /* @__PURE__ */ (0, import_react51.forwardRef)(function Table2({
|
|
4066
4177
|
size = "md",
|
|
4067
4178
|
striped: striped2,
|
|
4068
4179
|
stickyHeader: stickyHeader2,
|
|
@@ -4074,8 +4185,8 @@ var Table = /* @__PURE__ */ (0, import_react49.forwardRef)(function Table2({
|
|
|
4074
4185
|
children,
|
|
4075
4186
|
...rest
|
|
4076
4187
|
}, ref) {
|
|
4077
|
-
const captionId = (0,
|
|
4078
|
-
return /* @__PURE__ */ (0,
|
|
4188
|
+
const captionId = (0, import_react51.useId)();
|
|
4189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TableSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4079
4190
|
"div",
|
|
4080
4191
|
{
|
|
4081
4192
|
className: cx(container, containerClassName),
|
|
@@ -4084,7 +4195,7 @@ var Table = /* @__PURE__ */ (0, import_react49.forwardRef)(function Table2({
|
|
|
4084
4195
|
role: "region",
|
|
4085
4196
|
"aria-labelledby": caption2 ? captionId : void 0,
|
|
4086
4197
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
4087
|
-
children: /* @__PURE__ */ (0,
|
|
4198
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
4088
4199
|
"table",
|
|
4089
4200
|
{
|
|
4090
4201
|
ref,
|
|
@@ -4092,7 +4203,7 @@ var Table = /* @__PURE__ */ (0, import_react49.forwardRef)(function Table2({
|
|
|
4092
4203
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
4093
4204
|
...rest,
|
|
4094
4205
|
children: [
|
|
4095
|
-
caption2 && /* @__PURE__ */ (0,
|
|
4206
|
+
caption2 && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("caption", { id: captionId, className: caption, children: caption2 }),
|
|
4096
4207
|
children
|
|
4097
4208
|
]
|
|
4098
4209
|
}
|
|
@@ -4100,31 +4211,31 @@ var Table = /* @__PURE__ */ (0, import_react49.forwardRef)(function Table2({
|
|
|
4100
4211
|
}
|
|
4101
4212
|
) });
|
|
4102
4213
|
});
|
|
4103
|
-
var TableHeader = /* @__PURE__ */ (0,
|
|
4214
|
+
var TableHeader = /* @__PURE__ */ (0, import_react51.forwardRef)(
|
|
4104
4215
|
function TableHeader2({ className, ...rest }, ref) {
|
|
4105
|
-
return /* @__PURE__ */ (0,
|
|
4216
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TableSectionContext.Provider, { value: "header", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("thead", { ref, className: cx(header9, className), ...rest }) });
|
|
4106
4217
|
}
|
|
4107
4218
|
);
|
|
4108
|
-
var TableBody = /* @__PURE__ */ (0,
|
|
4219
|
+
var TableBody = /* @__PURE__ */ (0, import_react51.forwardRef)(
|
|
4109
4220
|
function TableBody2({ className, ...rest }, ref) {
|
|
4110
|
-
return /* @__PURE__ */ (0,
|
|
4221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TableSectionContext.Provider, { value: "body", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tbody", { ref, className: cx(body4, className), ...rest }) });
|
|
4111
4222
|
}
|
|
4112
4223
|
);
|
|
4113
|
-
var TableFooter = /* @__PURE__ */ (0,
|
|
4224
|
+
var TableFooter = /* @__PURE__ */ (0, import_react51.forwardRef)(
|
|
4114
4225
|
function TableFooter2({ className, ...rest }, ref) {
|
|
4115
|
-
return /* @__PURE__ */ (0,
|
|
4226
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TableSectionContext.Provider, { value: "footer", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tfoot", { ref, className: cx(footer4, className), ...rest }) });
|
|
4116
4227
|
}
|
|
4117
4228
|
);
|
|
4118
|
-
var TableRow = /* @__PURE__ */ (0,
|
|
4119
|
-
return /* @__PURE__ */ (0,
|
|
4229
|
+
var TableRow = /* @__PURE__ */ (0, import_react51.forwardRef)(function TableRow2({ selected, className, ...rest }, ref) {
|
|
4230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tr", { ref, className: cx(row3, className), "data-state": selected ? "selected" : void 0, ...rest });
|
|
4120
4231
|
});
|
|
4121
|
-
var TableHead = /* @__PURE__ */ (0,
|
|
4122
|
-
const size = (0,
|
|
4123
|
-
const section = (0,
|
|
4232
|
+
var TableHead = /* @__PURE__ */ (0, import_react51.forwardRef)(function TableHead2({ align, sortDirection, onSort, scope, className, children, ...rest }, ref) {
|
|
4233
|
+
const size = (0, import_react51.useContext)(TableSizeContext);
|
|
4234
|
+
const section = (0, import_react51.useContext)(TableSectionContext);
|
|
4124
4235
|
const sortable = onSort !== void 0;
|
|
4125
4236
|
const direction = sortDirection ?? "none";
|
|
4126
|
-
const SortIcon = direction === "descending" ?
|
|
4127
|
-
return /* @__PURE__ */ (0,
|
|
4237
|
+
const SortIcon = direction === "descending" ? import_icons21.ArrowDownIcon : import_icons21.ArrowUpIcon;
|
|
4238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4128
4239
|
"th",
|
|
4129
4240
|
{
|
|
4130
4241
|
ref,
|
|
@@ -4136,17 +4247,17 @@ var TableHead = /* @__PURE__ */ (0, import_react49.forwardRef)(function TableHea
|
|
|
4136
4247
|
className
|
|
4137
4248
|
),
|
|
4138
4249
|
...rest,
|
|
4139
|
-
children: sortable ? /* @__PURE__ */ (0,
|
|
4250
|
+
children: sortable ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("button", { type: "button", className: sortButton, onClick: onSort, children: [
|
|
4140
4251
|
children,
|
|
4141
|
-
/* @__PURE__ */ (0,
|
|
4252
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SortIcon, { size: 14, className: sortIcon, "data-active": direction !== "none", "aria-hidden": true })
|
|
4142
4253
|
] }) : children
|
|
4143
4254
|
}
|
|
4144
4255
|
);
|
|
4145
4256
|
});
|
|
4146
|
-
var TableCell = /* @__PURE__ */ (0,
|
|
4147
|
-
const size = (0,
|
|
4148
|
-
const section = (0,
|
|
4149
|
-
return /* @__PURE__ */ (0,
|
|
4257
|
+
var TableCell = /* @__PURE__ */ (0, import_react51.forwardRef)(function TableCell2({ align, className, ...rest }, ref) {
|
|
4258
|
+
const size = (0, import_react51.useContext)(TableSizeContext);
|
|
4259
|
+
const section = (0, import_react51.useContext)(TableSectionContext);
|
|
4260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4150
4261
|
"td",
|
|
4151
4262
|
{
|
|
4152
4263
|
ref,
|
|
@@ -4155,26 +4266,26 @@ var TableCell = /* @__PURE__ */ (0, import_react49.forwardRef)(function TableCel
|
|
|
4155
4266
|
}
|
|
4156
4267
|
);
|
|
4157
4268
|
});
|
|
4158
|
-
var TableEmpty = /* @__PURE__ */ (0,
|
|
4159
|
-
return /* @__PURE__ */ (0,
|
|
4269
|
+
var TableEmpty = /* @__PURE__ */ (0, import_react51.forwardRef)(function TableEmpty2({ colSpan, className, children, ...rest }, ref) {
|
|
4270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TableCell, { ref, colSpan, className: cx(emptyCell, className), ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: emptyContent, children }) }) });
|
|
4160
4271
|
});
|
|
4161
4272
|
function TableSkeleton({ rows = 5, columns }) {
|
|
4162
|
-
return /* @__PURE__ */ (0,
|
|
4273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: Array.from({ length: rows }, (_, row5) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TableRow, { "aria-hidden": true, children: Array.from({ length: columns }, (_2, column) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TableCell, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Skeleton, { width: column === 0 ? "60%" : "80%" }) }, column)) }, row5)) });
|
|
4163
4274
|
}
|
|
4164
4275
|
|
|
4165
4276
|
// src/components/Table/useTableSelection.ts
|
|
4166
|
-
var
|
|
4277
|
+
var import_react52 = require("react");
|
|
4167
4278
|
function useTableSelection(initial = []) {
|
|
4168
|
-
const [selected, setSelected] = (0,
|
|
4169
|
-
const isSelected = (0,
|
|
4170
|
-
const toggle3 = (0,
|
|
4279
|
+
const [selected, setSelected] = (0, import_react52.useState)(initial);
|
|
4280
|
+
const isSelected = (0, import_react52.useCallback)((id) => selected.includes(id), [selected]);
|
|
4281
|
+
const toggle3 = (0, import_react52.useCallback)((id, checked) => {
|
|
4171
4282
|
setSelected((prev) => {
|
|
4172
4283
|
const on = checked ?? !prev.includes(id);
|
|
4173
4284
|
if (on) return prev.includes(id) ? prev : [...prev, id];
|
|
4174
4285
|
return prev.filter((value4) => value4 !== id);
|
|
4175
4286
|
});
|
|
4176
4287
|
}, []);
|
|
4177
|
-
const clear2 = (0,
|
|
4288
|
+
const clear2 = (0, import_react52.useCallback)(() => setSelected([]), []);
|
|
4178
4289
|
const selectAllProps = (pageIds) => {
|
|
4179
4290
|
const all2 = pageIds.length > 0 && pageIds.every((id) => selected.includes(id));
|
|
4180
4291
|
const some = pageIds.some((id) => selected.includes(id));
|
|
@@ -4195,48 +4306,48 @@ function useTableSelection(initial = []) {
|
|
|
4195
4306
|
|
|
4196
4307
|
// src/components/Tabs/Tabs.tsx
|
|
4197
4308
|
var RadixTabs = __toESM(require("@radix-ui/react-tabs"), 1);
|
|
4198
|
-
var
|
|
4309
|
+
var import_react53 = require("react");
|
|
4199
4310
|
|
|
4200
4311
|
// src/components/Tabs/Tabs.css.ts
|
|
4201
|
-
var
|
|
4312
|
+
var import_createRuntimeFn28 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
4202
4313
|
var content10 = "fvhbtdb";
|
|
4203
|
-
var list6 = /* @__PURE__ */ (0,
|
|
4314
|
+
var list6 = /* @__PURE__ */ (0, import_createRuntimeFn28.createRuntimeFn)({ defaultClassName: "fvhbtd1", variantClassNames: { variant: { line: "fvhbtd2", soft: "fvhbtd3" } }, defaultVariants: { variant: "line" }, compoundVariants: [] });
|
|
4204
4315
|
var root15 = "fvhbtd0";
|
|
4205
|
-
var trigger3 = /* @__PURE__ */ (0,
|
|
4316
|
+
var trigger3 = /* @__PURE__ */ (0, import_createRuntimeFn28.createRuntimeFn)({ 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"]] });
|
|
4206
4317
|
|
|
4207
4318
|
// src/components/Tabs/Tabs.tsx
|
|
4208
|
-
var
|
|
4209
|
-
var TabsStyleContext = /* @__PURE__ */ (0,
|
|
4210
|
-
var Tabs = /* @__PURE__ */ (0,
|
|
4319
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
4320
|
+
var TabsStyleContext = /* @__PURE__ */ (0, import_react53.createContext)({ variant: "line", size: "md" });
|
|
4321
|
+
var Tabs = /* @__PURE__ */ (0, import_react53.forwardRef)(function Tabs2({ variant = "line", size = "md", className, ...props }, ref) {
|
|
4211
4322
|
const controlled = "value" in props ? { value: props.value ?? "" } : {};
|
|
4212
|
-
return /* @__PURE__ */ (0,
|
|
4323
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TabsStyleContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(RadixTabs.Root, { ref, className: cx(root15, className), ...props, ...controlled }) });
|
|
4213
4324
|
});
|
|
4214
|
-
var TabsList = /* @__PURE__ */ (0,
|
|
4215
|
-
const { variant } = (0,
|
|
4216
|
-
return /* @__PURE__ */ (0,
|
|
4325
|
+
var TabsList = /* @__PURE__ */ (0, import_react53.forwardRef)(function TabsList2({ className, ...rest }, ref) {
|
|
4326
|
+
const { variant } = (0, import_react53.useContext)(TabsStyleContext);
|
|
4327
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(RadixTabs.List, { ref, className: cx(list6({ variant }), className), ...rest });
|
|
4217
4328
|
});
|
|
4218
|
-
var TabsTrigger = /* @__PURE__ */ (0,
|
|
4219
|
-
const { variant, size } = (0,
|
|
4220
|
-
return /* @__PURE__ */ (0,
|
|
4329
|
+
var TabsTrigger = /* @__PURE__ */ (0, import_react53.forwardRef)(function TabsTrigger2({ className, ...rest }, ref) {
|
|
4330
|
+
const { variant, size } = (0, import_react53.useContext)(TabsStyleContext);
|
|
4331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(RadixTabs.Trigger, { ref, className: cx(trigger3({ variant, size }), className), ...rest });
|
|
4221
4332
|
});
|
|
4222
|
-
var TabsContent = /* @__PURE__ */ (0,
|
|
4223
|
-
return /* @__PURE__ */ (0,
|
|
4333
|
+
var TabsContent = /* @__PURE__ */ (0, import_react53.forwardRef)(function TabsContent2({ className, ...rest }, ref) {
|
|
4334
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(RadixTabs.Content, { ref, className: cx(content10, className), ...rest });
|
|
4224
4335
|
});
|
|
4225
4336
|
|
|
4226
4337
|
// src/components/Textarea/Textarea.tsx
|
|
4227
|
-
var
|
|
4338
|
+
var import_react54 = require("react");
|
|
4228
4339
|
|
|
4229
4340
|
// src/components/Textarea/Textarea.css.ts
|
|
4230
|
-
var
|
|
4341
|
+
var import_createRuntimeFn29 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
4231
4342
|
var count = "_1koawa9";
|
|
4232
4343
|
var countOver = "_1koawaa";
|
|
4233
4344
|
var defaultWidth = "_1koawa7";
|
|
4234
4345
|
var footer5 = "_1koawa8";
|
|
4235
|
-
var textarea = /* @__PURE__ */ (0,
|
|
4346
|
+
var textarea = /* @__PURE__ */ (0, import_createRuntimeFn29.createRuntimeFn)({ defaultClassName: "_1koawa0", variantClassNames: { size: { sm: "_1koawa1", md: "_1koawa2", lg: "_1koawa3" }, resize: { none: "_1koawa4", vertical: "_1koawa5", both: "_1koawa6" } }, defaultVariants: { size: "md", resize: "vertical" }, compoundVariants: [] });
|
|
4236
4347
|
|
|
4237
4348
|
// src/components/Textarea/Textarea.tsx
|
|
4238
|
-
var
|
|
4239
|
-
var Textarea = /* @__PURE__ */ (0,
|
|
4349
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
4350
|
+
var Textarea = /* @__PURE__ */ (0, import_react54.forwardRef)(function Textarea2({
|
|
4240
4351
|
label: label7,
|
|
4241
4352
|
helperText: helperText3,
|
|
4242
4353
|
error,
|
|
@@ -4257,13 +4368,13 @@ var Textarea = /* @__PURE__ */ (0, import_react52.forwardRef)(function Textarea2
|
|
|
4257
4368
|
"aria-describedby": ariaDescribedBy,
|
|
4258
4369
|
...rest
|
|
4259
4370
|
}, ref) {
|
|
4260
|
-
const generatedId = (0,
|
|
4371
|
+
const generatedId = (0, import_react54.useId)();
|
|
4261
4372
|
const textareaId = id ?? generatedId;
|
|
4262
4373
|
const helperId = helperText3 ? `${textareaId}-helper` : void 0;
|
|
4263
|
-
const innerRef = (0,
|
|
4264
|
-
const [uncontrolledLength, setUncontrolledLength] = (0,
|
|
4374
|
+
const innerRef = (0, import_react54.useRef)(null);
|
|
4375
|
+
const [uncontrolledLength, setUncontrolledLength] = (0, import_react54.useState)(() => String(defaultValue ?? "").length);
|
|
4265
4376
|
const length = value4 !== void 0 ? String(value4).length : uncontrolledLength;
|
|
4266
|
-
const fitHeight = (0,
|
|
4377
|
+
const fitHeight = (0, import_react54.useCallback)(() => {
|
|
4267
4378
|
const el = innerRef.current;
|
|
4268
4379
|
if (!autoResize || !el) return;
|
|
4269
4380
|
el.style.height = "auto";
|
|
@@ -4276,12 +4387,12 @@ var Textarea = /* @__PURE__ */ (0, import_react52.forwardRef)(function Textarea2
|
|
|
4276
4387
|
fitHeight();
|
|
4277
4388
|
onChange?.(event);
|
|
4278
4389
|
};
|
|
4279
|
-
return /* @__PURE__ */ (0,
|
|
4280
|
-
label7 && /* @__PURE__ */ (0,
|
|
4390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
4391
|
+
label7 && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("label", { htmlFor: textareaId, className: label2, children: [
|
|
4281
4392
|
label7,
|
|
4282
|
-
required && /* @__PURE__ */ (0,
|
|
4393
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
4283
4394
|
] }),
|
|
4284
|
-
/* @__PURE__ */ (0,
|
|
4395
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4285
4396
|
"textarea",
|
|
4286
4397
|
{
|
|
4287
4398
|
ref: mergeRefs(innerRef, ref),
|
|
@@ -4303,51 +4414,51 @@ var Textarea = /* @__PURE__ */ (0, import_react52.forwardRef)(function Textarea2
|
|
|
4303
4414
|
...rest
|
|
4304
4415
|
}
|
|
4305
4416
|
),
|
|
4306
|
-
(helperText3 || showCount) && /* @__PURE__ */ (0,
|
|
4307
|
-
helperText3 && /* @__PURE__ */ (0,
|
|
4308
|
-
showCount && /* @__PURE__ */ (0,
|
|
4417
|
+
(helperText3 || showCount) && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: footer5, children: [
|
|
4418
|
+
helperText3 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
4419
|
+
showCount && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: cx(count, maxLength !== void 0 && length >= maxLength && countOver), children: maxLength !== void 0 ? `${length}/${maxLength}` : length })
|
|
4309
4420
|
] })
|
|
4310
4421
|
] });
|
|
4311
4422
|
});
|
|
4312
4423
|
|
|
4313
4424
|
// src/components/Toast/Toast.tsx
|
|
4314
4425
|
var RadixToast = __toESM(require("@radix-ui/react-toast"), 1);
|
|
4315
|
-
var
|
|
4316
|
-
var
|
|
4426
|
+
var import_react55 = require("react");
|
|
4427
|
+
var import_icons22 = require("@bestow-ui/icons");
|
|
4317
4428
|
|
|
4318
4429
|
// src/components/Toast/Toast.css.ts
|
|
4319
|
-
var
|
|
4430
|
+
var import_createRuntimeFn30 = require("@vanilla-extract/recipes/createRuntimeFn");
|
|
4320
4431
|
var action2 = "_1g11zvx9";
|
|
4321
4432
|
var close = "_1g11zvxa";
|
|
4322
4433
|
var description7 = "_1g11zvx8";
|
|
4323
4434
|
var title5 = "_1g11zvx7";
|
|
4324
|
-
var toast = /* @__PURE__ */ (0,
|
|
4435
|
+
var toast = /* @__PURE__ */ (0, import_createRuntimeFn30.createRuntimeFn)({ defaultClassName: "_1g11zvx1", variantClassNames: { color: { primary: "_1g11zvx2", neutral: "_1g11zvx3", success: "_1g11zvx4", warning: "_1g11zvx5", danger: "_1g11zvx6" } }, defaultVariants: { color: "neutral" }, compoundVariants: [] });
|
|
4325
4436
|
var viewport2 = "_1g11zvx0";
|
|
4326
4437
|
|
|
4327
4438
|
// src/components/Toast/Toast.tsx
|
|
4328
|
-
var
|
|
4439
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
4329
4440
|
var REMOVE_DELAY = 500;
|
|
4330
|
-
var ToastContext = /* @__PURE__ */ (0,
|
|
4441
|
+
var ToastContext = /* @__PURE__ */ (0, import_react55.createContext)(null);
|
|
4331
4442
|
function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
4332
4443
|
const m = useMessages();
|
|
4333
4444
|
const label7 = labelProp ?? m.notifications ?? "\uC54C\uB9BC";
|
|
4334
|
-
const [toasts, setToasts] = (0,
|
|
4335
|
-
const nextId = (0,
|
|
4445
|
+
const [toasts, setToasts] = (0, import_react55.useState)([]);
|
|
4446
|
+
const nextId = (0, import_react55.useRef)(0);
|
|
4336
4447
|
const portal2 = usePortalProps();
|
|
4337
|
-
const toast2 = (0,
|
|
4448
|
+
const toast2 = (0, import_react55.useCallback)((options) => {
|
|
4338
4449
|
const id = nextId.current++;
|
|
4339
4450
|
setToasts((prev) => [...prev, { ...options, id, open: true }]);
|
|
4340
4451
|
return id;
|
|
4341
4452
|
}, []);
|
|
4342
|
-
const dismiss = (0,
|
|
4453
|
+
const dismiss = (0, import_react55.useCallback)((id) => {
|
|
4343
4454
|
const isTarget = (t) => id === void 0 || t.id === id;
|
|
4344
4455
|
setToasts((prev) => prev.map((t) => isTarget(t) ? { ...t, open: false } : t));
|
|
4345
4456
|
setTimeout(() => setToasts((prev) => prev.filter((t) => t.open || !isTarget(t))), REMOVE_DELAY);
|
|
4346
4457
|
}, []);
|
|
4347
|
-
const value4 = (0,
|
|
4348
|
-
return /* @__PURE__ */ (0,
|
|
4458
|
+
const value4 = (0, import_react55.useMemo)(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
|
|
4459
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ToastContext.Provider, { value: value4, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(RadixToast.Provider, { duration, label: label7, swipeDirection: "right", children: [
|
|
4349
4460
|
children,
|
|
4350
|
-
toasts.map(({ id, open, title: title6, description: description8, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */ (0,
|
|
4461
|
+
toasts.map(({ id, open, title: title6, description: description8, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
4351
4462
|
RadixToast.Root,
|
|
4352
4463
|
{
|
|
4353
4464
|
open,
|
|
@@ -4357,19 +4468,19 @@ function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
|
4357
4468
|
},
|
|
4358
4469
|
className: toast({ color }),
|
|
4359
4470
|
children: [
|
|
4360
|
-
/* @__PURE__ */ (0,
|
|
4361
|
-
description8 && /* @__PURE__ */ (0,
|
|
4362
|
-
action3 && /* @__PURE__ */ (0,
|
|
4363
|
-
/* @__PURE__ */ (0,
|
|
4471
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadixToast.Title, { className: title5, children: title6 }),
|
|
4472
|
+
description8 && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadixToast.Description, { className: description7, children: description8 }),
|
|
4473
|
+
action3 && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadixToast.Action, { asChild: true, altText: action3.altText ?? action3.label, className: action2, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, { size: "sm", variant: "soft", color: "neutral", onClick: action3.onClick, children: action3.label }) }),
|
|
4474
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadixToast.Close, { className: close, "aria-label": m.close ?? "\uB2EB\uAE30", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_icons22.XIcon, { size: 16 }) })
|
|
4364
4475
|
]
|
|
4365
4476
|
},
|
|
4366
4477
|
id
|
|
4367
4478
|
)),
|
|
4368
|
-
/* @__PURE__ */ (0,
|
|
4479
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadixToast.Viewport, { className: cx(portal2.className, viewport2), style: portal2.style })
|
|
4369
4480
|
] }) });
|
|
4370
4481
|
}
|
|
4371
4482
|
function useToast() {
|
|
4372
|
-
const context = (0,
|
|
4483
|
+
const context = (0, import_react55.useContext)(ToastContext);
|
|
4373
4484
|
if (!context) throw new Error("useToast \uB294 ToastProvider \uC548\uC5D0\uC11C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4.");
|
|
4374
4485
|
return context;
|
|
4375
4486
|
}
|
|
@@ -4382,7 +4493,7 @@ var arrow2 = "z7rufs1";
|
|
|
4382
4493
|
var content11 = "z7rufs0";
|
|
4383
4494
|
|
|
4384
4495
|
// src/components/Tooltip/Tooltip.tsx
|
|
4385
|
-
var
|
|
4496
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
4386
4497
|
function Tooltip({
|
|
4387
4498
|
content: content12,
|
|
4388
4499
|
children,
|
|
@@ -4397,9 +4508,9 @@ function Tooltip({
|
|
|
4397
4508
|
}) {
|
|
4398
4509
|
const portal2 = usePortalProps();
|
|
4399
4510
|
if (disabled || content12 == null || content12 === "") return children;
|
|
4400
|
-
return /* @__PURE__ */ (0,
|
|
4401
|
-
/* @__PURE__ */ (0,
|
|
4402
|
-
/* @__PURE__ */ (0,
|
|
4511
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
|
|
4512
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(RadixTooltip.Trigger, { asChild: true, children }),
|
|
4513
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(RadixTooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
4403
4514
|
RadixTooltip.Content,
|
|
4404
4515
|
{
|
|
4405
4516
|
side,
|
|
@@ -4410,7 +4521,7 @@ function Tooltip({
|
|
|
4410
4521
|
style: portal2.style,
|
|
4411
4522
|
children: [
|
|
4412
4523
|
content12,
|
|
4413
|
-
/* @__PURE__ */ (0,
|
|
4524
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(RadixTooltip.Arrow, { className: arrow2, width: 10, height: 5 })
|
|
4414
4525
|
]
|
|
4415
4526
|
}
|
|
4416
4527
|
) })
|
|
@@ -4418,7 +4529,7 @@ function Tooltip({
|
|
|
4418
4529
|
}
|
|
4419
4530
|
|
|
4420
4531
|
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
4421
|
-
var
|
|
4532
|
+
var import_react56 = require("react");
|
|
4422
4533
|
|
|
4423
4534
|
// src/components/VerificationCodeInput/VerificationCodeInput.css.ts
|
|
4424
4535
|
var input5 = "ea01812";
|
|
@@ -4428,9 +4539,9 @@ var slots = "ea01811";
|
|
|
4428
4539
|
var timer = "ea01814";
|
|
4429
4540
|
|
|
4430
4541
|
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
4431
|
-
var
|
|
4542
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
4432
4543
|
var formatTime = (seconds) => `${String(Math.floor(seconds / 60)).padStart(2, "0")}:${String(seconds % 60).padStart(2, "0")}`;
|
|
4433
|
-
var VerificationCodeInput = /* @__PURE__ */ (0,
|
|
4544
|
+
var VerificationCodeInput = /* @__PURE__ */ (0, import_react56.forwardRef)(
|
|
4434
4545
|
function VerificationCodeInput2(props, ref) {
|
|
4435
4546
|
const {
|
|
4436
4547
|
length = 6,
|
|
@@ -4457,23 +4568,23 @@ var VerificationCodeInput = /* @__PURE__ */ (0, import_react54.forwardRef)(
|
|
|
4457
4568
|
const label7 = labelProp ?? m.verificationCode ?? "\uC778\uC99D\uBC88\uD638";
|
|
4458
4569
|
const resendText = resendTextProp ?? m.resend ?? "\uC7AC\uC804\uC1A1";
|
|
4459
4570
|
const expiredText = expiredTextProp ?? m.verificationExpired ?? "\uC778\uC99D \uC2DC\uAC04\uC774 \uC9C0\uB0AC\uC5B4\uC694. \uC7AC\uC804\uC1A1\uD574 \uC8FC\uC138\uC694.";
|
|
4460
|
-
const generatedId = (0,
|
|
4571
|
+
const generatedId = (0, import_react56.useId)();
|
|
4461
4572
|
const inputId = id ?? generatedId;
|
|
4462
4573
|
const helperId = `${inputId}-helper`;
|
|
4463
4574
|
const statusId = `${inputId}-status`;
|
|
4464
|
-
const inputRef = (0,
|
|
4575
|
+
const inputRef = (0, import_react56.useRef)(null);
|
|
4465
4576
|
const isControlled = "value" in props;
|
|
4466
|
-
const [innerValue, setInnerValue] = (0,
|
|
4577
|
+
const [innerValue, setInnerValue] = (0, import_react56.useState)(defaultValue ?? "");
|
|
4467
4578
|
const code = (isControlled ? value4 ?? "" : innerValue).slice(0, length);
|
|
4468
|
-
const [focused, setFocused] = (0,
|
|
4469
|
-
const [endAt, setEndAt] = (0,
|
|
4470
|
-
const [remaining, setRemaining] = (0,
|
|
4579
|
+
const [focused, setFocused] = (0, import_react56.useState)(false);
|
|
4580
|
+
const [endAt, setEndAt] = (0, import_react56.useState)(() => expiresIn ? Date.now() + expiresIn * 1e3 : null);
|
|
4581
|
+
const [remaining, setRemaining] = (0, import_react56.useState)(expiresIn ?? 0);
|
|
4471
4582
|
const expired = expiresIn !== void 0 && remaining <= 0;
|
|
4472
|
-
const onExpireRef = (0,
|
|
4473
|
-
(0,
|
|
4583
|
+
const onExpireRef = (0, import_react56.useRef)(onExpire);
|
|
4584
|
+
(0, import_react56.useEffect)(() => {
|
|
4474
4585
|
onExpireRef.current = onExpire;
|
|
4475
4586
|
});
|
|
4476
|
-
(0,
|
|
4587
|
+
(0, import_react56.useEffect)(() => {
|
|
4477
4588
|
if (endAt === null) return;
|
|
4478
4589
|
const tick = () => {
|
|
4479
4590
|
const left = Math.max(0, Math.ceil((endAt - Date.now()) / 1e3));
|
|
@@ -4508,17 +4619,17 @@ var VerificationCodeInput = /* @__PURE__ */ (0, import_react54.forwardRef)(
|
|
|
4508
4619
|
};
|
|
4509
4620
|
const description8 = helperText3 ?? m.verificationCodeHint?.(length, type) ?? `${length}\uC790\uB9AC ${type === "numeric" ? "\uC22B\uC790" : "\uBB38\uC790"}\uB97C \uC785\uB825\uD558\uC138\uC694.`;
|
|
4510
4621
|
const activeIndex = Math.min(code.length, length - 1);
|
|
4511
|
-
return /* @__PURE__ */ (0,
|
|
4622
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
4512
4623
|
"div",
|
|
4513
4624
|
{
|
|
4514
4625
|
className: cx(field, className),
|
|
4515
4626
|
"data-invalid": error || void 0,
|
|
4516
4627
|
"data-disabled": disabled || void 0,
|
|
4517
4628
|
children: [
|
|
4518
|
-
/* @__PURE__ */ (0,
|
|
4519
|
-
/* @__PURE__ */ (0,
|
|
4520
|
-
/* @__PURE__ */ (0,
|
|
4521
|
-
/* @__PURE__ */ (0,
|
|
4629
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("label", { htmlFor: inputId, className: label2, children: label7 }),
|
|
4630
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: row4, children: [
|
|
4631
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: slots, children: [
|
|
4632
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
4522
4633
|
"input",
|
|
4523
4634
|
{
|
|
4524
4635
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -4538,7 +4649,7 @@ var VerificationCodeInput = /* @__PURE__ */ (0, import_react54.forwardRef)(
|
|
|
4538
4649
|
className: input5
|
|
4539
4650
|
}
|
|
4540
4651
|
),
|
|
4541
|
-
Array.from({ length }, (_, index) => /* @__PURE__ */ (0,
|
|
4652
|
+
Array.from({ length }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
4542
4653
|
"div",
|
|
4543
4654
|
{
|
|
4544
4655
|
className: slot,
|
|
@@ -4549,12 +4660,12 @@ var VerificationCodeInput = /* @__PURE__ */ (0, import_react54.forwardRef)(
|
|
|
4549
4660
|
index
|
|
4550
4661
|
))
|
|
4551
4662
|
] }),
|
|
4552
|
-
expiresIn !== void 0 && /* @__PURE__ */ (0,
|
|
4553
|
-
onResend && /* @__PURE__ */ (0,
|
|
4663
|
+
expiresIn !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { role: "timer", className: timer, children: formatTime(remaining) }),
|
|
4664
|
+
onResend && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Button, { size: "sm", variant: "outline", color: "neutral", onClick: resend, disabled, children: resendText })
|
|
4554
4665
|
] }),
|
|
4555
|
-
/* @__PURE__ */ (0,
|
|
4556
|
-
/* @__PURE__ */ (0,
|
|
4557
|
-
name && /* @__PURE__ */ (0,
|
|
4666
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { id: helperId, className: helperText({ error }), children: description8 }),
|
|
4667
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { id: statusId, role: "status", className: helperText({ error: true }), children: expired ? expiredText : "" }),
|
|
4668
|
+
name && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("input", { type: "hidden", name, value: code })
|
|
4558
4669
|
]
|
|
4559
4670
|
}
|
|
4560
4671
|
);
|
|
@@ -4607,6 +4718,7 @@ var VerificationCodeInput = /* @__PURE__ */ (0, import_react54.forwardRef)(
|
|
|
4607
4718
|
LocaleProvider,
|
|
4608
4719
|
Modal,
|
|
4609
4720
|
ModalClose,
|
|
4721
|
+
NativeSelect,
|
|
4610
4722
|
NumberInput,
|
|
4611
4723
|
Pagination,
|
|
4612
4724
|
PhoneNumberInput,
|