@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/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/utils/koreanFormat.ts
427
- var onlyDigits = (input6) => input6.replace(/\D/g, "");
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: icon7,
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 = icon7 === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DefaultIcon, { size: 18 }) : icon7;
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, import_react28.forwardRef)(
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, import_react28.useRef)(null);
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, import_react28.useState)(false);
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
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1900
- TextField,
1901
- {
1902
- ref: mergeRefs(ref, inputRef),
1903
- label: label7,
1904
- placeholder,
1905
- inputMode: "numeric",
1906
- value: field4.display,
1907
- onChange: field4.onChange,
1908
- onKeyDown: (event) => {
1909
- field4.onKeyDown(event);
1910
- onKeyDown?.(event);
1911
- },
1912
- onBlur: (event) => {
1913
- setTouched(true);
1914
- onBlur?.(event);
1915
- },
1916
- error: error ?? autoInvalid,
1917
- helperText: showAuto ? complete ? invalidText : incompleteText : helperText3,
1918
- ...rest
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 import_react31 = require("react");
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 import_react29 = require("react");
1886
+ var import_react30 = require("react");
1930
1887
  var subscribeNothing = () => () => {
1931
1888
  };
1932
1889
  function useIsClient() {
1933
- return (0, import_react29.useSyncExternalStore)(
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 import_react30 = require("react");
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, import_react30.forwardRef)(function IconButton2({ variant = "ghost", color = "neutral", size, loading: loading2, className, children, ...rest }, ref) {
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, import_react31.forwardRef)(function Calendar2(props, ref) {
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, import_react31.useId)();
1997
- const gridRef = (0, import_react31.useRef)(null);
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, import_react31.useState)(defaultValue ?? "");
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, import_react31.useState)(null);
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, import_react31.useRef)(initialFocus ?? false);
1971
+ const moveFocus = (0, import_react32.useRef)(initialFocus ?? false);
2015
1972
  const selectedIso = selected ? toISODate(selected) : "";
2016
- (0, import_react31.useEffect)(() => {
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, import_react31.useEffect)(() => {
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 select = (date) => {
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: () => select(date),
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 import_react32 = require("react");
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, import_react32.forwardRef)(function Combobox2(props, ref) {
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, import_react32.useId)();
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, import_react32.useRef)(null);
2182
- const anchorRef = (0, import_react32.useRef)(null);
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, import_react32.useState)(defaultValue);
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, import_react32.useState)(false);
2188
- const [query, setQuery] = (0, import_react32.useState)(null);
2189
- const [activeIndex, setActiveIndex] = (0, import_react32.useState)(-1);
2190
- const filtered = (0, import_react32.useMemo)(() => query ? options.filter((o) => filter(o, query)) : options, [options, filter, query]);
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 select = (option2) => {
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) select(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, import_react32.useEffect)(() => {
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, import_react32.useState)(void 0);
2272
- (0, import_react32.useEffect)(() => {
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), NO_RESULTS_ANNOUNCE_DELAY);
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: () => select(option2),
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 import_react34 = require("react");
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 import_react33 = require("react");
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, import_react33.useId)();
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, import_react34.forwardRef)(
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, import_react34.useRef)(null);
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, import_react34.useState)(false);
2525
- const [touched, setTouched] = (0, import_react34.useState)(false);
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, import_react34.useRef)(isControlled ? value4 ?? "" : defaultValue ?? "");
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, import_react34.useEffect)(() => {
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 import_react35 = require("react");
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, import_react35.forwardRef)(
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, import_react35.useId)();
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, import_react35.useState)(defaultValue ?? { start: "", end: "" });
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 import_react36 = require("react");
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, import_react36.forwardRef)(function ErrorSummary2({ errors: errors2, title: title6, focusKey, className, ...rest }, ref) {
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, import_react36.useId)();
2827
- const rootRef = (0, import_react36.useRef)(null);
2784
+ const titleId = (0, import_react37.useId)();
2785
+ const rootRef = (0, import_react37.useRef)(null);
2828
2786
  const hasErrors = errors2.length > 0;
2829
- (0, import_react36.useEffect)(() => {
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 import_react37 = require("react");
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, import_react37.forwardRef)(function FileUpload2(props, ref) {
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, import_react37.useState)(defaultValue ?? []);
2876
+ const [innerFiles, setInnerFiles] = (0, import_react38.useState)(defaultValue ?? []);
2919
2877
  const files = isControlled ? value4 ?? NO_FILES : innerFiles;
2920
- const [rejections, setRejections] = (0, import_react37.useState)([]);
2921
- const [announcement, setAnnouncement] = (0, import_react37.useState)("");
2922
- const [dragging, setDragging] = (0, import_react37.useState)(false);
2923
- const generatedId = (0, import_react37.useId)();
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, import_react37.useRef)(null);
2929
- const selectButtonRef = (0, import_react37.useRef)(null);
2930
- const removeButtonRefs = (0, import_react37.useRef)([]);
2931
- const focusAfterRemove = (0, import_react37.useRef)(null);
2932
- const announceTimer = (0, import_react37.useRef)(void 0);
2933
- (0, import_react37.useEffect)(() => () => clearTimeout(announceTimer.current), []);
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, import_react37.useEffect)(() => {
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, import_react37.useEffect)(() => {
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 import_react38 = require("react");
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, import_react38.forwardRef)(
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, import_react38.forwardRef)(
3133
- function DropdownMenuItem2({ icon: icon7, shortcut: shortcut2, color = "neutral", className, children, ...rest }, ref) {
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
- icon7 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: icon5, "aria-hidden": true, children: icon7 }),
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, import_react38.forwardRef)(
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, import_react38.forwardRef)(
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, import_react38.forwardRef)(
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, import_react38.forwardRef)(
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, import_react38.forwardRef)(
3170
- function DropdownMenuSubTrigger2({ icon: icon7, className, children, ...rest }, ref) {
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
- icon7 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: icon5, "aria-hidden": true, children: icon7 }),
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, import_react38.forwardRef)(
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 import_react39 = require("react");
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, import_react39.forwardRef)(
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, import_react39.useRef)(null);
3240
- const generatedId = (0, import_react39.useId)();
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, import_react39.useRef)(parse(toRaw(isControlled ? value4 : defaultValue)));
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, import_react39.useEffect)(() => {
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, import_react39.useState)("");
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 import_react40 = require("react");
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, import_react40.forwardRef)(function Pagination2({
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, import_react40.useState)(defaultPage);
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 import_react41 = require("react");
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, import_react41.forwardRef)(
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, import_react41.useRef)(null);
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 import_react42 = require("react");
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, import_react42.forwardRef)(function RadioGroup3(props, ref) {
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, import_react42.useState)(defaultValue ?? "");
3522
+ const [innerValue, setInnerValue] = (0, import_react43.useState)(defaultValue ?? "");
3564
3523
  const current2 = isControlled ? value4 ?? "" : innerValue;
3565
- const generatedId = (0, import_react42.useId)();
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 import_react43 = require("react");
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, import_react43.forwardRef)(
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, import_react43.useState)(defaultValue ?? "");
3617
+ const [innerValue, setInnerValue] = (0, import_react44.useState)(defaultValue ?? "");
3659
3618
  const current2 = isControlled ? value4 ?? "" : innerValue;
3660
- const generatedId = (0, import_react43.useId)();
3619
+ const generatedId = (0, import_react44.useId)();
3661
3620
  const labelId = label7 ? `${id ?? generatedId}-label` : void 0;
3662
- const itemRefs = (0, import_react43.useRef)([]);
3621
+ const itemRefs = (0, import_react44.useRef)([]);
3663
3622
  const isEnabled = (index) => !disabled && !options[index]?.disabled;
3664
- const select = (index) => {
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
- select(target);
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: () => select(index),
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/Select/Select.tsx
3743
- var RadixSelect = __toESM(require("@radix-ui/react-select"), 1);
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 Select = /* @__PURE__ */ (0, import_react44.forwardRef)(function Select2(props, ref) {
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, import_react44.useId)();
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, import_jsx_runtime42.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
3772
- label7 && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("label", { htmlFor: triggerId, className: label2, children: [
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, import_jsx_runtime42.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
3812
+ required && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
3775
3813
  ] }),
3776
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
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, import_jsx_runtime42.jsxs)(
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, import_jsx_runtime42.jsx)("span", { className: value2, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(RadixSelect.Value, { placeholder }) }),
3798
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(RadixSelect.Icon, { className: icon4, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_icons18.ChevronDownIcon, { size: 16 }) })
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, import_jsx_runtime42.jsx)(RadixSelect.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
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, import_jsx_runtime42.jsx)(RadixSelect.Viewport, { className: viewport, children: options.map((option2) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
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, import_jsx_runtime42.jsx)(RadixSelect.ItemText, { children: option2.label }),
3818
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(RadixSelect.ItemIndicator, { className: itemIndicator, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_icons18.CheckIcon, { size: 16 }) })
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, import_jsx_runtime42.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 })
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 import_react45 = require("react");
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 import_jsx_runtime43 = require("react/jsx-runtime");
3840
- var SkipLink = /* @__PURE__ */ (0, import_react45.forwardRef)(function SkipLink2({ href = "#main", className, children, onClick, ...rest }, ref) {
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, import_jsx_runtime43.jsx)("a", { ref, href, className: cx(skipLink, className), onClick: handleClick, ...rest, children: children ?? m.skipToContent ?? "\uBCF8\uBB38 \uBC14\uB85C\uAC00\uAE30" });
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 import_react46 = require("react");
3895
+ var import_react48 = require("react");
3858
3896
 
3859
3897
  // src/components/Slider/Slider.css.ts
3860
- var import_createRuntimeFn23 = require("@vanilla-extract/recipes/createRuntimeFn");
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, import_createRuntimeFn23.createRuntimeFn)({ defaultClassName: "_126mzjm5", variantClassNames: { size: { sm: "_126mzjm6", md: "_126mzjm7" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
3867
- var thumb = /* @__PURE__ */ (0, import_createRuntimeFn23.createRuntimeFn)({ defaultClassName: "_126mzjmc", variantClassNames: { size: { sm: "_126mzjmd", md: "_126mzjme" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
3868
- var track2 = /* @__PURE__ */ (0, import_createRuntimeFn23.createRuntimeFn)({ defaultClassName: "_126mzjm8", variantClassNames: { size: { sm: "_126mzjm9", md: "_126mzjma" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
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 import_jsx_runtime44 = require("react/jsx-runtime");
3873
- var Slider = /* @__PURE__ */ (0, import_react46.forwardRef)(function Slider2(props, ref) {
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, import_react46.useId)();
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, import_react46.useState)(defaultValue ?? [min]);
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, import_jsx_runtime44.jsxs)("div", { className: cx(field3, className), children: [
3908
- (label7 || showValue) && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: header8, children: [
3909
- label7 && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { id: labelId, className: label4, children: label7 }),
3910
- showValue && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: value3, "aria-hidden": true, children: valueText })
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, import_jsx_runtime44.jsxs)(
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, import_jsx_runtime44.jsx)(RadixSlider.Track, { className: track2({ size }), children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(RadixSlider.Range, { className: range2 }) }),
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, import_jsx_runtime44.jsx)(
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, import_jsx_runtime44.jsxs)("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
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, import_jsx_runtime44.jsx)("span", { id: helperId, className: helperText2, children: helperText3 })
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 import_react47 = require("react");
3953
- var import_icons19 = require("@bestow-ui/icons");
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 import_createRuntimeFn24 = require("@vanilla-extract/recipes/createRuntimeFn");
3994
+ var import_createRuntimeFn25 = require("@vanilla-extract/recipes/createRuntimeFn");
3957
3995
  var description6 = "kervhmh";
3958
- var indicator3 = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defaultClassName: "kervhm6", variantClassNames: { status: { complete: "kervhm7", current: "kervhm8", upcoming: "kervhm9" } }, defaultVariants: {}, compoundVariants: [] });
3959
- var label5 = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defaultClassName: "kervhmd", variantClassNames: { status: { complete: "kervhme", current: "kervhmf", upcoming: "kervhmg" } }, defaultVariants: {}, compoundVariants: [] });
3960
- var root13 = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defaultClassName: "kervhm0", variantClassNames: { orientation: { horizontal: "kervhm1", vertical: "kervhm2" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
3961
- var step = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defaultClassName: "kervhm3", variantClassNames: { orientation: { horizontal: "kervhm4", vertical: "kervhm5" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
3962
- var text2 = /* @__PURE__ */ (0, import_createRuntimeFn24.createRuntimeFn)({ defaultClassName: "kervhma", variantClassNames: { orientation: { horizontal: "kervhmb", vertical: "kervhmc" } }, defaultVariants: {}, compoundVariants: [] });
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 import_jsx_runtime45 = require("react/jsx-runtime");
3966
- var Stepper = /* @__PURE__ */ (0, import_react47.forwardRef)(function Stepper2({ steps, current: current2, orientation = "horizontal", "aria-label": ariaLabel, className, ...rest }, ref) {
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, import_jsx_runtime45.jsx)(
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, import_jsx_runtime45.jsxs)(
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, import_jsx_runtime45.jsx)("span", { className: indicator3({ status }), "aria-hidden": true, children: status === "complete" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_icons19.CheckIcon, { size: 16, strokeWidth: 2.5 }) : index + 1 }),
3985
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: text2({ orientation }), children: [
3986
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: label5({ status }), children: [
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, import_jsx_runtime45.jsxs)("span", { className: visuallyHidden, children: [
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, import_jsx_runtime45.jsx)("span", { className: description6, children: step2.description })
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 RadixSwitch = __toESM(require("@radix-ui/react-switch"), 1);
4007
- var import_react48 = require("react");
4044
+ var import_react50 = require("react");
4008
4045
 
4009
4046
  // src/components/Switch/Switch.css.ts
4010
- var import_createRuntimeFn25 = require("@vanilla-extract/recipes/createRuntimeFn");
4011
- var label6 = "o33ul29";
4012
- var root14 = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "o33ul20", variantClassNames: { size: { sm: "o33ul21", md: "o33ul22" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
4013
- var thumb2 = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "o33ul26", variantClassNames: { size: { sm: "o33ul27", md: "o33ul28" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
4014
- var track3 = /* @__PURE__ */ (0, import_createRuntimeFn25.createRuntimeFn)({ defaultClassName: "o33ul23", variantClassNames: { size: { sm: "o33ul24", md: "o33ul25" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
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 import_jsx_runtime46 = require("react/jsx-runtime");
4018
- var Switch = /* @__PURE__ */ (0, import_react48.forwardRef)(function Switch2({ label: label7, size, id, className, disabled, "aria-label": ariaLabel, ...rest }, ref) {
4019
- const generatedId = (0, import_react48.useId)();
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
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("span", { className: cx(root14({ size }), className), "data-disabled": disabled || void 0, children: [
4022
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
4023
- RadixSwitch.Root,
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
- disabled,
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
- ...rest,
4031
- children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(RadixSwitch.Thumb, { className: thumb2({ size }) })
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
- label7 && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("label", { htmlFor: switchId, className: label6, children: label7 })
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 import_react49 = require("react");
4040
- var import_icons20 = require("@bestow-ui/icons");
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 import_createRuntimeFn26 = require("@vanilla-extract/recipes/createRuntimeFn");
4154
+ var import_createRuntimeFn27 = require("@vanilla-extract/recipes/createRuntimeFn");
4044
4155
  var body4 = "l3ploy5";
4045
4156
  var caption = "l3ploy2";
4046
- var cell2 = /* @__PURE__ */ (0, import_createRuntimeFn26.createRuntimeFn)({ defaultClassName: "l3ploy9", variantClassNames: { size: { sm: "l3ploya", md: "l3ployb" }, align: { left: "l3ployc", center: "l3ployd", right: "l3ploye" } }, defaultVariants: { size: "md", align: "left" }, compoundVariants: [] });
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 import_jsx_runtime47 = require("react/jsx-runtime");
4063
- var TableSizeContext = /* @__PURE__ */ (0, import_react49.createContext)("md");
4064
- var TableSectionContext = /* @__PURE__ */ (0, import_react49.createContext)("body");
4065
- var Table = /* @__PURE__ */ (0, import_react49.forwardRef)(function Table2({
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, import_react49.useId)();
4078
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TableSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
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, import_jsx_runtime47.jsxs)(
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, import_jsx_runtime47.jsx)("caption", { id: captionId, className: caption, children: caption2 }),
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, import_react49.forwardRef)(
4214
+ var TableHeader = /* @__PURE__ */ (0, import_react51.forwardRef)(
4104
4215
  function TableHeader2({ className, ...rest }, ref) {
4105
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TableSectionContext.Provider, { value: "header", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("thead", { ref, className: cx(header9, className), ...rest }) });
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, import_react49.forwardRef)(
4219
+ var TableBody = /* @__PURE__ */ (0, import_react51.forwardRef)(
4109
4220
  function TableBody2({ className, ...rest }, ref) {
4110
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TableSectionContext.Provider, { value: "body", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("tbody", { ref, className: cx(body4, className), ...rest }) });
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, import_react49.forwardRef)(
4224
+ var TableFooter = /* @__PURE__ */ (0, import_react51.forwardRef)(
4114
4225
  function TableFooter2({ className, ...rest }, ref) {
4115
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TableSectionContext.Provider, { value: "footer", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("tfoot", { ref, className: cx(footer4, className), ...rest }) });
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, import_react49.forwardRef)(function TableRow2({ selected, className, ...rest }, ref) {
4119
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("tr", { ref, className: cx(row3, className), "data-state": selected ? "selected" : void 0, ...rest });
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, import_react49.forwardRef)(function TableHead2({ align, sortDirection, onSort, scope, className, children, ...rest }, ref) {
4122
- const size = (0, import_react49.useContext)(TableSizeContext);
4123
- const section = (0, import_react49.useContext)(TableSectionContext);
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" ? import_icons20.ArrowDownIcon : import_icons20.ArrowUpIcon;
4127
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
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, import_jsx_runtime47.jsxs)("button", { type: "button", className: sortButton, onClick: onSort, children: [
4250
+ children: sortable ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("button", { type: "button", className: sortButton, onClick: onSort, children: [
4140
4251
  children,
4141
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SortIcon, { size: 14, className: sortIcon, "data-active": direction !== "none", "aria-hidden": true })
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, import_react49.forwardRef)(function TableCell2({ align, className, ...rest }, ref) {
4147
- const size = (0, import_react49.useContext)(TableSizeContext);
4148
- const section = (0, import_react49.useContext)(TableSectionContext);
4149
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
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, import_react49.forwardRef)(function TableEmpty2({ colSpan, className, children, ...rest }, ref) {
4159
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TableCell, { ref, colSpan, className: cx(emptyCell, className), ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: emptyContent, children }) }) });
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, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children: Array.from({ length: rows }, (_, row5) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TableRow, { "aria-hidden": true, children: Array.from({ length: columns }, (_2, column) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TableCell, { children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Skeleton, { width: column === 0 ? "60%" : "80%" }) }, column)) }, row5)) });
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 import_react50 = require("react");
4277
+ var import_react52 = require("react");
4167
4278
  function useTableSelection(initial = []) {
4168
- const [selected, setSelected] = (0, import_react50.useState)(initial);
4169
- const isSelected = (0, import_react50.useCallback)((id) => selected.includes(id), [selected]);
4170
- const toggle3 = (0, import_react50.useCallback)((id, checked) => {
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, import_react50.useCallback)(() => setSelected([]), []);
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 import_react51 = require("react");
4309
+ var import_react53 = require("react");
4199
4310
 
4200
4311
  // src/components/Tabs/Tabs.css.ts
4201
- var import_createRuntimeFn27 = require("@vanilla-extract/recipes/createRuntimeFn");
4312
+ var import_createRuntimeFn28 = require("@vanilla-extract/recipes/createRuntimeFn");
4202
4313
  var content10 = "fvhbtdb";
4203
- var list6 = /* @__PURE__ */ (0, import_createRuntimeFn27.createRuntimeFn)({ defaultClassName: "fvhbtd1", variantClassNames: { variant: { line: "fvhbtd2", soft: "fvhbtd3" } }, defaultVariants: { variant: "line" }, compoundVariants: [] });
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, import_createRuntimeFn27.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"]] });
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 import_jsx_runtime48 = require("react/jsx-runtime");
4209
- var TabsStyleContext = /* @__PURE__ */ (0, import_react51.createContext)({ variant: "line", size: "md" });
4210
- var Tabs = /* @__PURE__ */ (0, import_react51.forwardRef)(function Tabs2({ variant = "line", size = "md", className, ...props }, ref) {
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, import_jsx_runtime48.jsx)(TabsStyleContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(RadixTabs.Root, { ref, className: cx(root15, className), ...props, ...controlled }) });
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, import_react51.forwardRef)(function TabsList2({ className, ...rest }, ref) {
4215
- const { variant } = (0, import_react51.useContext)(TabsStyleContext);
4216
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(RadixTabs.List, { ref, className: cx(list6({ variant }), className), ...rest });
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, import_react51.forwardRef)(function TabsTrigger2({ className, ...rest }, ref) {
4219
- const { variant, size } = (0, import_react51.useContext)(TabsStyleContext);
4220
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(RadixTabs.Trigger, { ref, className: cx(trigger3({ variant, size }), className), ...rest });
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, import_react51.forwardRef)(function TabsContent2({ className, ...rest }, ref) {
4223
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(RadixTabs.Content, { ref, className: cx(content10, className), ...rest });
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 import_react52 = require("react");
4338
+ var import_react54 = require("react");
4228
4339
 
4229
4340
  // src/components/Textarea/Textarea.css.ts
4230
- var import_createRuntimeFn28 = require("@vanilla-extract/recipes/createRuntimeFn");
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, import_createRuntimeFn28.createRuntimeFn)({ defaultClassName: "_1koawa0", variantClassNames: { size: { sm: "_1koawa1", md: "_1koawa2", lg: "_1koawa3" }, resize: { none: "_1koawa4", vertical: "_1koawa5", both: "_1koawa6" } }, defaultVariants: { size: "md", resize: "vertical" }, compoundVariants: [] });
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 import_jsx_runtime49 = require("react/jsx-runtime");
4239
- var Textarea = /* @__PURE__ */ (0, import_react52.forwardRef)(function Textarea2({
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, import_react52.useId)();
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, import_react52.useRef)(null);
4264
- const [uncontrolledLength, setUncontrolledLength] = (0, import_react52.useState)(() => String(defaultValue ?? "").length);
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, import_react52.useCallback)(() => {
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, import_jsx_runtime49.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
4280
- label7 && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("label", { htmlFor: textareaId, className: label2, children: [
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, import_jsx_runtime49.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
4393
+ required && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
4283
4394
  ] }),
4284
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
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, import_jsx_runtime49.jsxs)("div", { className: footer5, children: [
4307
- helperText3 && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
4308
- showCount && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: cx(count, maxLength !== void 0 && length >= maxLength && countOver), children: maxLength !== void 0 ? `${length}/${maxLength}` : length })
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 import_react53 = require("react");
4316
- var import_icons21 = require("@bestow-ui/icons");
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 import_createRuntimeFn29 = require("@vanilla-extract/recipes/createRuntimeFn");
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, import_createRuntimeFn29.createRuntimeFn)({ defaultClassName: "_1g11zvx1", variantClassNames: { color: { primary: "_1g11zvx2", neutral: "_1g11zvx3", success: "_1g11zvx4", warning: "_1g11zvx5", danger: "_1g11zvx6" } }, defaultVariants: { color: "neutral" }, compoundVariants: [] });
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 import_jsx_runtime50 = require("react/jsx-runtime");
4439
+ var import_jsx_runtime51 = require("react/jsx-runtime");
4329
4440
  var REMOVE_DELAY = 500;
4330
- var ToastContext = /* @__PURE__ */ (0, import_react53.createContext)(null);
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, import_react53.useState)([]);
4335
- const nextId = (0, import_react53.useRef)(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, import_react53.useCallback)((options) => {
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, import_react53.useCallback)((id) => {
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, import_react53.useMemo)(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
4348
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ToastContext.Provider, { value: value4, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(RadixToast.Provider, { duration, label: label7, swipeDirection: "right", children: [
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, import_jsx_runtime50.jsxs)(
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, import_jsx_runtime50.jsx)(RadixToast.Title, { className: title5, children: title6 }),
4361
- description8 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(RadixToast.Description, { className: description7, children: description8 }),
4362
- action3 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(RadixToast.Action, { asChild: true, altText: action3.altText ?? action3.label, className: action2, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { size: "sm", variant: "soft", color: "neutral", onClick: action3.onClick, children: action3.label }) }),
4363
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(RadixToast.Close, { className: close, "aria-label": m.close ?? "\uB2EB\uAE30", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons21.XIcon, { size: 16 }) })
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, import_jsx_runtime50.jsx)(RadixToast.Viewport, { className: cx(portal2.className, viewport2), style: portal2.style })
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, import_react53.useContext)(ToastContext);
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 import_jsx_runtime51 = require("react/jsx-runtime");
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, import_jsx_runtime51.jsx)(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
4401
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadixTooltip.Trigger, { asChild: true, children }),
4402
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(RadixTooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
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, import_jsx_runtime51.jsx)(RadixTooltip.Arrow, { className: arrow2, width: 10, height: 5 })
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 import_react54 = require("react");
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 import_jsx_runtime52 = require("react/jsx-runtime");
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, import_react54.forwardRef)(
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, import_react54.useId)();
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, import_react54.useRef)(null);
4575
+ const inputRef = (0, import_react56.useRef)(null);
4465
4576
  const isControlled = "value" in props;
4466
- const [innerValue, setInnerValue] = (0, import_react54.useState)(defaultValue ?? "");
4577
+ const [innerValue, setInnerValue] = (0, import_react56.useState)(defaultValue ?? "");
4467
4578
  const code = (isControlled ? value4 ?? "" : innerValue).slice(0, length);
4468
- const [focused, setFocused] = (0, import_react54.useState)(false);
4469
- const [endAt, setEndAt] = (0, import_react54.useState)(() => expiresIn ? Date.now() + expiresIn * 1e3 : null);
4470
- const [remaining, setRemaining] = (0, import_react54.useState)(expiresIn ?? 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, import_react54.useRef)(onExpire);
4473
- (0, import_react54.useEffect)(() => {
4583
+ const onExpireRef = (0, import_react56.useRef)(onExpire);
4584
+ (0, import_react56.useEffect)(() => {
4474
4585
  onExpireRef.current = onExpire;
4475
4586
  });
4476
- (0, import_react54.useEffect)(() => {
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, import_jsx_runtime52.jsxs)(
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, import_jsx_runtime52.jsx)("label", { htmlFor: inputId, className: label2, children: label7 }),
4519
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: row4, children: [
4520
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: slots, children: [
4521
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
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, import_jsx_runtime52.jsx)(
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, import_jsx_runtime52.jsx)("span", { role: "timer", className: timer, children: formatTime(remaining) }),
4553
- onResend && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { size: "sm", variant: "outline", color: "neutral", onClick: resend, disabled, children: resendText })
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, import_jsx_runtime52.jsx)("p", { id: helperId, className: helperText({ error }), children: description8 }),
4556
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { id: statusId, role: "status", className: helperText({ error: true }), children: expired ? expiredText : "" }),
4557
- name && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("input", { type: "hidden", name, value: code })
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,