@bestow-ui/react 1.6.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/client.js CHANGED
@@ -1005,9 +1005,23 @@ var Breadcrumb = /* @__PURE__ */ forwardRef14(function Breadcrumb2({ items: item
1005
1005
  });
1006
1006
 
1007
1007
  // src/components/BusinessNumberInput/BusinessNumberInput.tsx
1008
- import { forwardRef as forwardRef15, useRef as useRef6, useState as useState4 } from "react";
1008
+ import { forwardRef as forwardRef15, useRef as useRef6, useState as useState5 } from "react";
1009
1009
  import { formatBusinessNumber, isValidBusinessNumber } from "@bestow-ui/korean-utils";
1010
- import { jsx as jsx17 } from "react/jsx-runtime";
1010
+
1011
+ // src/utils/useDelayedAnnouncement.ts
1012
+ import { useEffect as useEffect4, useState as useState4 } from "react";
1013
+ var ANNOUNCE_DELAY = 800;
1014
+ function useDelayedAnnouncement(message, delay = ANNOUNCE_DELAY) {
1015
+ const [announced, setAnnounced] = useState4("");
1016
+ useEffect4(() => {
1017
+ const timer2 = setTimeout(() => setAnnounced(message), message ? delay : 0);
1018
+ return () => clearTimeout(timer2);
1019
+ }, [message, delay]);
1020
+ return message && announced === message ? message : "";
1021
+ }
1022
+
1023
+ // src/components/BusinessNumberInput/BusinessNumberInput.tsx
1024
+ import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
1011
1025
  var sanitize = (input6) => input6.replace(/\D/g, "").slice(0, 10);
1012
1026
  var isDigit2 = (char) => /\d/.test(char);
1013
1027
  var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
@@ -1031,7 +1045,7 @@ var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
1031
1045
  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.";
1032
1046
  const label6 = labelProp ?? m.businessNumber ?? "\uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638";
1033
1047
  const incompleteText = m.businessNumberIncomplete ?? "10\uC790\uB9AC\uB97C \uBAA8\uB450 \uC785\uB825\uD574 \uC8FC\uC138\uC694.";
1034
- const [touched, setTouched] = useState4(false);
1048
+ const [touched, setTouched] = useState5(false);
1035
1049
  const field4 = useFormattedInput({
1036
1050
  isControlled: "value" in props,
1037
1051
  value: value3,
@@ -1045,33 +1059,37 @@ var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
1045
1059
  const complete = field4.raw.length === 10;
1046
1060
  const autoInvalid = validate && field4.raw.length > 0 && (complete ? !isValidBusinessNumber(field4.raw) : touched);
1047
1061
  const showAuto = autoInvalid && error === void 0;
1048
- return /* @__PURE__ */ jsx17(
1049
- TextField,
1050
- {
1051
- ref: mergeRefs(ref, inputRef),
1052
- label: label6,
1053
- placeholder,
1054
- inputMode: "numeric",
1055
- value: field4.display,
1056
- onChange: field4.onChange,
1057
- onKeyDown: (event) => {
1058
- field4.onKeyDown(event);
1059
- onKeyDown?.(event);
1060
- },
1061
- onBlur: (event) => {
1062
- setTouched(true);
1063
- onBlur?.(event);
1064
- },
1065
- error: error ?? autoInvalid,
1066
- helperText: showAuto ? complete ? invalidText : incompleteText : helperText3,
1067
- ...rest
1068
- }
1069
- );
1062
+ const announcement = useDelayedAnnouncement(showAuto && complete ? invalidText : "");
1063
+ return /* @__PURE__ */ jsxs15(Fragment4, { children: [
1064
+ /* @__PURE__ */ jsx17(
1065
+ TextField,
1066
+ {
1067
+ ref: mergeRefs(ref, inputRef),
1068
+ label: label6,
1069
+ placeholder,
1070
+ inputMode: "numeric",
1071
+ value: field4.display,
1072
+ onChange: field4.onChange,
1073
+ onKeyDown: (event) => {
1074
+ field4.onKeyDown(event);
1075
+ onKeyDown?.(event);
1076
+ },
1077
+ onBlur: (event) => {
1078
+ setTouched(true);
1079
+ onBlur?.(event);
1080
+ },
1081
+ error: error ?? autoInvalid,
1082
+ helperText: showAuto ? complete ? invalidText : incompleteText : helperText3,
1083
+ ...rest
1084
+ }
1085
+ ),
1086
+ /* @__PURE__ */ jsx17("span", { role: "status", className: visuallyHidden, children: announcement })
1087
+ ] });
1070
1088
  }
1071
1089
  );
1072
1090
 
1073
1091
  // src/components/Calendar/Calendar.tsx
1074
- import { forwardRef as forwardRef17, useEffect as useEffect4, useId as useId4, useRef as useRef7, useState as useState5 } from "react";
1092
+ import { forwardRef as forwardRef17, useEffect as useEffect5, useId as useId4, useRef as useRef7, useState as useState6 } from "react";
1075
1093
  import { ChevronLeftIcon, ChevronRightIcon as ChevronRightIcon2 } from "@bestow-ui/icons";
1076
1094
  import { KOREAN_WEEKDAYS } from "@bestow-ui/korean-utils";
1077
1095
 
@@ -1122,7 +1140,7 @@ var root6 = "_1qyq67b0";
1122
1140
  var weekday = "_1qyq67b4";
1123
1141
 
1124
1142
  // src/components/Calendar/Calendar.tsx
1125
- import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
1143
+ import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
1126
1144
  var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
1127
1145
  const {
1128
1146
  value: value3,
@@ -1146,7 +1164,7 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
1146
1164
  const headingId = useId4();
1147
1165
  const gridRef = useRef7(null);
1148
1166
  const isControlled = "value" in props;
1149
- const [innerValue, setInnerValue] = useState5(defaultValue ?? "");
1167
+ const [innerValue, setInnerValue] = useState6(defaultValue ?? "");
1150
1168
  const selected = parseISODate(isControlled ? value3 : innerValue);
1151
1169
  const isClient = useIsClient();
1152
1170
  const today = parseISODate(todayProp) ?? (isClient ? /* @__PURE__ */ new Date() : null);
@@ -1158,16 +1176,16 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
1158
1176
  return date;
1159
1177
  };
1160
1178
  const isDisabled = (date) => minDate !== null && compareDays(date, minDate) < 0 || maxDate !== null && compareDays(date, maxDate) > 0 || !!isDateDisabled?.(date);
1161
- const [focusedState, setFocused] = useState5(null);
1179
+ const [focusedState, setFocused] = useState6(null);
1162
1180
  const base = selected ?? today;
1163
1181
  const focused = focusedState ?? (base ? clamp(base) : null);
1164
1182
  const moveFocus = useRef7(initialFocus ?? false);
1165
1183
  const selectedIso = selected ? toISODate(selected) : "";
1166
- useEffect4(() => {
1184
+ useEffect5(() => {
1167
1185
  const date = parseISODate(selectedIso);
1168
1186
  if (date) setFocused((prev) => isSameDay(prev, date) ? prev : date);
1169
1187
  }, [selectedIso]);
1170
- useEffect4(() => {
1188
+ useEffect5(() => {
1171
1189
  if (!moveFocus.current || !focused) return;
1172
1190
  moveFocus.current = false;
1173
1191
  gridRef.current?.querySelector(`[data-date="${toISODate(focused)}"]`)?.focus();
@@ -1207,8 +1225,8 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
1207
1225
  ) : [];
1208
1226
  const canPrev = !!visible && (!minDate || compareDays(new Date(visible.getFullYear(), visible.getMonth(), 0), minDate) >= 0);
1209
1227
  const canNext = !!visible && (!maxDate || compareDays(new Date(visible.getFullYear(), visible.getMonth() + 1, 1), maxDate) <= 0);
1210
- return /* @__PURE__ */ jsxs15("div", { ref, className: cx(root6, className), children: [
1211
- /* @__PURE__ */ jsxs15("div", { className: header3, children: [
1228
+ return /* @__PURE__ */ jsxs16("div", { ref, className: cx(root6, className), children: [
1229
+ /* @__PURE__ */ jsxs16("div", { className: header3, children: [
1212
1230
  /* @__PURE__ */ jsx19(
1213
1231
  IconButton,
1214
1232
  {
@@ -1231,7 +1249,7 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
1231
1249
  }
1232
1250
  )
1233
1251
  ] }),
1234
- /* @__PURE__ */ jsxs15("table", { ref: gridRef, role: "grid", "aria-labelledby": headingId, className: grid, onKeyDown: handleKeyDown, children: [
1252
+ /* @__PURE__ */ jsxs16("table", { ref: gridRef, role: "grid", "aria-labelledby": headingId, className: grid, onKeyDown: handleKeyDown, children: [
1235
1253
  /* @__PURE__ */ jsx19("thead", { children: /* @__PURE__ */ jsx19("tr", { children: weekdaysShort.map((name, index) => /* @__PURE__ */ jsx19("th", { scope: "col", abbr: weekdaysLong[index], className: weekday, "data-weekday": index, children: name }, index)) }) }),
1236
1254
  /* @__PURE__ */ jsx19("tbody", { children: weeks.map((week) => /* @__PURE__ */ jsx19("tr", { children: week.map((date) => {
1237
1255
  const iso = toISODate(date);
@@ -1273,11 +1291,11 @@ var Calendar = /* @__PURE__ */ forwardRef17(function Calendar2(props, ref) {
1273
1291
  import * as Popover from "@radix-ui/react-popover";
1274
1292
  import {
1275
1293
  forwardRef as forwardRef18,
1276
- useEffect as useEffect5,
1294
+ useEffect as useEffect6,
1277
1295
  useId as useId5,
1278
1296
  useMemo as useMemo3,
1279
1297
  useRef as useRef8,
1280
- useState as useState6
1298
+ useState as useState7
1281
1299
  } from "react";
1282
1300
  import { CheckIcon, ChevronDownIcon as ChevronDownIcon3, XIcon as XIcon3 } from "@bestow-ui/icons";
1283
1301
 
@@ -1297,8 +1315,7 @@ var empty = "c2pbq74";
1297
1315
  var toggle2 = "c2pbq71 c2pbq70";
1298
1316
 
1299
1317
  // src/components/Combobox/Combobox.tsx
1300
- import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
1301
- var NO_RESULTS_ANNOUNCE_DELAY = 800;
1318
+ import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
1302
1319
  var defaultFilter = (option2, query) => option2.label.toLowerCase().includes(query.trim().toLowerCase());
1303
1320
  var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
1304
1321
  const {
@@ -1338,12 +1355,12 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
1338
1355
  const inputRef = useRef8(null);
1339
1356
  const anchorRef = useRef8(null);
1340
1357
  const isControlled = "value" in props;
1341
- const [innerValue, setInnerValue] = useState6(defaultValue);
1358
+ const [innerValue, setInnerValue] = useState7(defaultValue);
1342
1359
  const selectedValue = isControlled ? value3 : innerValue;
1343
1360
  const selectedOption = options.find((o) => o.value === selectedValue);
1344
- const [open, setOpen] = useState6(false);
1345
- const [query, setQuery] = useState6(null);
1346
- const [activeIndex, setActiveIndex] = useState6(-1);
1361
+ const [open, setOpen] = useState7(false);
1362
+ const [query, setQuery] = useState7(null);
1363
+ const [activeIndex, setActiveIndex] = useState7(-1);
1347
1364
  const filtered = useMemo3(() => query ? options.filter((o) => filter(o, query)) : options, [options, filter, query]);
1348
1365
  const inputText = query ?? selectedOption?.label ?? "";
1349
1366
  const firstEnabled = (list7, from = 0, step2 = 1) => {
@@ -1419,26 +1436,26 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
1419
1436
  break;
1420
1437
  }
1421
1438
  };
1422
- useEffect5(() => {
1439
+ useEffect6(() => {
1423
1440
  if (!open || activeIndex < 0) return;
1424
1441
  document.getElementById(optionId(activeIndex))?.scrollIntoView?.({ block: "nearest" });
1425
1442
  }, [open, activeIndex]);
1426
1443
  const hasOptions = filtered.length > 0;
1427
1444
  const noResults = open && !disabled && !hasOptions;
1428
- const [announcedFor, setAnnouncedFor] = useState6(void 0);
1429
- useEffect5(() => {
1445
+ const [announcedFor, setAnnouncedFor] = useState7(void 0);
1446
+ useEffect6(() => {
1430
1447
  if (!noResults) return;
1431
- const timer2 = setTimeout(() => setAnnouncedFor(query), NO_RESULTS_ANNOUNCE_DELAY);
1448
+ const timer2 = setTimeout(() => setAnnouncedFor(query), ANNOUNCE_DELAY);
1432
1449
  return () => clearTimeout(timer2);
1433
1450
  }, [noResults, query]);
1434
1451
  const announceNoResults = noResults && announcedFor === query;
1435
- return /* @__PURE__ */ jsxs16("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
1436
- label6 && /* @__PURE__ */ jsxs16("label", { id: labelId, htmlFor: inputId, className: label, children: [
1452
+ return /* @__PURE__ */ jsxs17("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
1453
+ label6 && /* @__PURE__ */ jsxs17("label", { id: labelId, htmlFor: inputId, className: label, children: [
1437
1454
  label6,
1438
1455
  required && /* @__PURE__ */ jsx20("span", { className: requiredMark, "aria-hidden": true, children: "*" })
1439
1456
  ] }),
1440
- /* @__PURE__ */ jsxs16(Popover.Root, { open: open && !disabled, onOpenChange: (next) => next ? openList() : close2(), children: [
1441
- /* @__PURE__ */ jsx20(Popover.Anchor, { asChild: true, children: /* @__PURE__ */ jsxs16(
1457
+ /* @__PURE__ */ jsxs17(Popover.Root, { open: open && !disabled, onOpenChange: (next) => next ? openList() : close2(), children: [
1458
+ /* @__PURE__ */ jsx20(Popover.Anchor, { asChild: true, children: /* @__PURE__ */ jsxs17(
1442
1459
  "div",
1443
1460
  {
1444
1461
  ref: anchorRef,
@@ -1537,7 +1554,7 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
1537
1554
  return (
1538
1555
  // aria-activedescendant 패턴: 포커스·키보드는 입력창이 맡고 항목은 포커스를 받지 않는다 (WAI-ARIA combobox)
1539
1556
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/interactive-supports-focus
1540
- /* @__PURE__ */ jsxs16(
1557
+ /* @__PURE__ */ jsxs17(
1541
1558
  "div",
1542
1559
  {
1543
1560
  id: optionId(index),
@@ -1575,7 +1592,7 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
1575
1592
  });
1576
1593
 
1577
1594
  // src/components/DatePicker/DatePicker.tsx
1578
- import { forwardRef as forwardRef19, useEffect as useEffect6, useRef as useRef9, useState as useState7 } from "react";
1595
+ import { forwardRef as forwardRef19, useEffect as useEffect7, useRef as useRef9, useState as useState8 } from "react";
1579
1596
  import { CalendarIcon } from "@bestow-ui/icons";
1580
1597
 
1581
1598
  // src/components/Popover/Popover.tsx
@@ -1591,7 +1608,7 @@ var header4 = "_1j99p8x1";
1591
1608
  var title3 = "_1j99p8x2";
1592
1609
 
1593
1610
  // src/components/Popover/Popover.tsx
1594
- import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
1611
+ import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
1595
1612
  function Popover2({
1596
1613
  content: content12,
1597
1614
  children,
@@ -1612,9 +1629,9 @@ function Popover2({
1612
1629
  const portal2 = usePortalProps();
1613
1630
  const m = useMessages();
1614
1631
  const titleId = useId6();
1615
- return /* @__PURE__ */ jsxs17(RadixPopover.Root, { open, defaultOpen, onOpenChange, modal, children: [
1632
+ return /* @__PURE__ */ jsxs18(RadixPopover.Root, { open, defaultOpen, onOpenChange, modal, children: [
1616
1633
  /* @__PURE__ */ jsx21(RadixPopover.Trigger, { asChild: true, children }),
1617
- /* @__PURE__ */ jsx21(RadixPopover.Portal, { children: /* @__PURE__ */ jsxs17(
1634
+ /* @__PURE__ */ jsx21(RadixPopover.Portal, { children: /* @__PURE__ */ jsxs18(
1618
1635
  RadixPopover.Content,
1619
1636
  {
1620
1637
  side,
@@ -1627,7 +1644,7 @@ function Popover2({
1627
1644
  className: cx(portal2.className, content7, className),
1628
1645
  style: { ...portal2.style, ...style },
1629
1646
  children: [
1630
- (title6 || showClose) && /* @__PURE__ */ jsxs17("div", { className: header4, children: [
1647
+ (title6 || showClose) && /* @__PURE__ */ jsxs18("div", { className: header4, children: [
1631
1648
  title6 && /* @__PURE__ */ jsx21("h2", { id: titleId, className: title3, children: title6 }),
1632
1649
  showClose && /* @__PURE__ */ jsx21(RadixPopover.Close, { className: closeButton3, "aria-label": m.close ?? "\uB2EB\uAE30", children: /* @__PURE__ */ jsx21(XIcon4, { size: 16 }) })
1633
1650
  ] }),
@@ -1641,7 +1658,7 @@ function Popover2({
1641
1658
  var PopoverClose = RadixPopover.Close;
1642
1659
 
1643
1660
  // src/components/DatePicker/DatePicker.tsx
1644
- import { Fragment as Fragment4, jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
1661
+ import { Fragment as Fragment5, jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
1645
1662
  var sanitize2 = (input6) => input6.replace(/\D/g, "").slice(0, 8);
1646
1663
  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)}`;
1647
1664
  var isDigit3 = (char) => /\d/.test(char);
@@ -1678,8 +1695,8 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
1678
1695
  const invalidText = invalidTextProp ?? m.dateInvalid ?? "\uC62C\uBC14\uB978 \uB0A0\uC9DC\uAC00 \uC544\uB2C8\uC5D0\uC694.";
1679
1696
  const unavailableText = unavailableTextProp ?? m.dateUnavailable ?? "\uACE0\uB97C \uC218 \uC5C6\uB294 \uB0A0\uC9DC\uC608\uC694.";
1680
1697
  const incompleteText = incompleteTextProp ?? m.dateIncomplete ?? "\uB0A0\uC9DC\uB97C YYYY-MM-DD \uD615\uC2DD\uC73C\uB85C \uC785\uB825\uD574 \uC8FC\uC138\uC694.";
1681
- const [open, setOpen] = useState7(false);
1682
- const [touched, setTouched] = useState7(false);
1698
+ const [open, setOpen] = useState8(false);
1699
+ const [touched, setTouched] = useState8(false);
1683
1700
  const isControlled = "value" in props;
1684
1701
  const lastEmitted = useRef9(isControlled ? value3 ?? "" : defaultValue ?? "");
1685
1702
  const minDate = parseISODate(min);
@@ -1706,7 +1723,7 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
1706
1723
  });
1707
1724
  const textIso = toIso(field4.raw);
1708
1725
  const { setRaw } = field4;
1709
- useEffect6(() => {
1726
+ useEffect7(() => {
1710
1727
  if (!isControlled) return;
1711
1728
  const next = value3 ?? "";
1712
1729
  lastEmitted.current = next;
@@ -1720,8 +1737,9 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
1720
1737
  const complete = field4.raw.length === 8;
1721
1738
  const autoError = complete ? !date ? invalidText : isUnavailable(date) ? unavailableText : null : touched && field4.raw.length > 0 ? incompleteText : null;
1722
1739
  const showAuto = autoError !== null && error === void 0;
1740
+ const announcement = useDelayedAnnouncement(showAuto && complete ? autoError ?? "" : "");
1723
1741
  const selectedIso = date && !isUnavailable(date) ? textIso : "";
1724
- return /* @__PURE__ */ jsxs18(Fragment4, { children: [
1742
+ return /* @__PURE__ */ jsxs19(Fragment5, { children: [
1725
1743
  /* @__PURE__ */ jsx22(
1726
1744
  TextField,
1727
1745
  {
@@ -1772,13 +1790,14 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
1772
1790
  )
1773
1791
  }
1774
1792
  ),
1793
+ /* @__PURE__ */ jsx22("span", { role: "status", className: visuallyHidden, children: announcement }),
1775
1794
  name && /* @__PURE__ */ jsx22("input", { type: "hidden", name, value: selectedIso })
1776
1795
  ] });
1777
1796
  }
1778
1797
  );
1779
1798
 
1780
1799
  // src/components/DateRangePicker/DateRangePicker.tsx
1781
- import { forwardRef as forwardRef20, useId as useId7, useState as useState8 } from "react";
1800
+ import { forwardRef as forwardRef20, useId as useId7, useState as useState9 } from "react";
1782
1801
 
1783
1802
  // src/components/DateRangePicker/DateRangePicker.css.ts
1784
1803
  var field2 = "_17277dh3";
@@ -1789,7 +1808,7 @@ var presets = "_17277dh5";
1789
1808
  var separator2 = "_17277dh4";
1790
1809
 
1791
1810
  // src/components/DateRangePicker/DateRangePicker.tsx
1792
- import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
1811
+ import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
1793
1812
  var DateRangePicker = /* @__PURE__ */ forwardRef20(
1794
1813
  function DateRangePicker2(props, ref) {
1795
1814
  const {
@@ -1820,7 +1839,7 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
1820
1839
  const helperId = helperText3 ? `${baseId}-helper` : void 0;
1821
1840
  const isClient = useIsClient();
1822
1841
  const isControlled = "value" in props;
1823
- const [inner, setInner] = useState8(defaultValue ?? { start: "", end: "" });
1842
+ const [inner, setInner] = useState9(defaultValue ?? { start: "", end: "" });
1824
1843
  const range3 = isControlled ? value3 ?? { start: "", end: "" } : inner;
1825
1844
  const update = (next) => {
1826
1845
  if (next.start === range3.start && next.end === range3.end) return;
@@ -1831,7 +1850,7 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
1831
1850
  const startLabel = startLabelProp ?? m.dateRangeStart ?? "\uC2DC\uC791\uC77C";
1832
1851
  const endLabel = endLabelProp ?? m.dateRangeEnd ?? "\uC885\uB8CC\uC77C";
1833
1852
  const common = { isDateDisabled, isHoliday, today, disabled, required, fullWidth: true };
1834
- return /* @__PURE__ */ jsxs19(
1853
+ return /* @__PURE__ */ jsxs20(
1835
1854
  "fieldset",
1836
1855
  {
1837
1856
  ref,
@@ -1840,11 +1859,11 @@ var DateRangePicker = /* @__PURE__ */ forwardRef20(
1840
1859
  "aria-describedby": helperId,
1841
1860
  "data-invalid": error || void 0,
1842
1861
  children: [
1843
- label6 && /* @__PURE__ */ jsxs19("legend", { className: legend3, children: [
1862
+ label6 && /* @__PURE__ */ jsxs20("legend", { className: legend3, children: [
1844
1863
  label6,
1845
1864
  required && /* @__PURE__ */ jsx23("span", { className: requiredMark, "aria-hidden": true, children: "*" })
1846
1865
  ] }),
1847
- /* @__PURE__ */ jsxs19("div", { className: fields, children: [
1866
+ /* @__PURE__ */ jsxs20("div", { className: fields, children: [
1848
1867
  /* @__PURE__ */ jsx23("div", { className: field2, children: /* @__PURE__ */ jsx23(
1849
1868
  DatePicker,
1850
1869
  {
@@ -1917,7 +1936,7 @@ var overlay2 = "nmobyv0";
1917
1936
  var title4 = "nmobyvv";
1918
1937
 
1919
1938
  // src/components/Drawer/Drawer.tsx
1920
- import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
1939
+ import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
1921
1940
  function Drawer({
1922
1941
  open,
1923
1942
  defaultOpen,
@@ -1936,11 +1955,11 @@ function Drawer({
1936
1955
  const portal2 = usePortalProps();
1937
1956
  const m = useMessages();
1938
1957
  const focus = useReturnFocus(Boolean(trigger4));
1939
- return /* @__PURE__ */ jsxs20(Dialog2.Root, { open, defaultOpen, onOpenChange, children: [
1958
+ return /* @__PURE__ */ jsxs21(Dialog2.Root, { open, defaultOpen, onOpenChange, children: [
1940
1959
  trigger4 && /* @__PURE__ */ jsx24(Dialog2.Trigger, { asChild: true, children: trigger4 }),
1941
- /* @__PURE__ */ jsxs20(Dialog2.Portal, { children: [
1960
+ /* @__PURE__ */ jsxs21(Dialog2.Portal, { children: [
1942
1961
  /* @__PURE__ */ jsx24(Dialog2.Overlay, { className: cx(portal2.className, overlay2), style: portal2.style }),
1943
- /* @__PURE__ */ jsxs20(
1962
+ /* @__PURE__ */ jsxs21(
1944
1963
  Dialog2.Content,
1945
1964
  {
1946
1965
  className: cx(portal2.className, content8({ side, size }), className),
@@ -1951,8 +1970,8 @@ function Drawer({
1951
1970
  onCloseAutoFocus: focus.onCloseAutoFocus,
1952
1971
  ...description7 ? {} : { "aria-describedby": void 0 },
1953
1972
  children: [
1954
- /* @__PURE__ */ jsxs20("div", { className: header5, children: [
1955
- /* @__PURE__ */ jsxs20("div", { className: headings2, children: [
1973
+ /* @__PURE__ */ jsxs21("div", { className: header5, children: [
1974
+ /* @__PURE__ */ jsxs21("div", { className: headings2, children: [
1956
1975
  /* @__PURE__ */ jsx24(Dialog2.Title, { className: title4, children: title6 }),
1957
1976
  description7 && /* @__PURE__ */ jsx24(Dialog2.Description, { className: description3, children: description7 })
1958
1977
  ] }),
@@ -1969,7 +1988,7 @@ function Drawer({
1969
1988
  var DrawerClose = Dialog2.Close;
1970
1989
 
1971
1990
  // src/components/ErrorSummary/ErrorSummary.tsx
1972
- import { forwardRef as forwardRef21, useEffect as useEffect7, useId as useId8, useRef as useRef10 } from "react";
1991
+ import { forwardRef as forwardRef21, useEffect as useEffect8, useId as useId8, useRef as useRef10 } from "react";
1973
1992
 
1974
1993
  // src/components/ErrorSummary/ErrorSummary.css.ts
1975
1994
  var link3 = "_1cdophv2";
@@ -1983,7 +2002,7 @@ var ErrorSummary = /* @__PURE__ */ forwardRef21(function ErrorSummary2({ errors:
1983
2002
  const titleId = useId8();
1984
2003
  const rootRef = useRef10(null);
1985
2004
  const hasErrors = errors2.length > 0;
1986
- useEffect7(() => {
2005
+ useEffect8(() => {
1987
2006
  if (hasErrors) rootRef.current?.focus();
1988
2007
  }, [focusKey, hasErrors]);
1989
2008
  if (!hasErrors) return null;
@@ -2018,7 +2037,7 @@ var ErrorSummary = /* @__PURE__ */ forwardRef21(function ErrorSummary2({ errors:
2018
2037
  });
2019
2038
 
2020
2039
  // src/components/FileUpload/FileUpload.tsx
2021
- import { forwardRef as forwardRef22, useEffect as useEffect8, useId as useId9, useRef as useRef11, useState as useState9 } from "react";
2040
+ import { forwardRef as forwardRef22, useEffect as useEffect9, useId as useId9, useRef as useRef11, useState as useState10 } from "react";
2022
2041
  import { FileIcon, UploadIcon, XIcon as XIcon6 } from "@bestow-ui/icons";
2023
2042
 
2024
2043
  // src/components/FileUpload/FileUpload.css.ts
@@ -2034,7 +2053,7 @@ var list4 = "r2jefr4";
2034
2053
  var root8 = "r2jefr0";
2035
2054
 
2036
2055
  // src/components/FileUpload/FileUpload.tsx
2037
- import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
2056
+ import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
2038
2057
  var REMOVED_ANNOUNCE_DELAY = 500;
2039
2058
  function formatSize(bytes) {
2040
2059
  if (bytes < 1024) return `${bytes} B`;
@@ -2072,11 +2091,11 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
2072
2091
  } = props;
2073
2092
  const m = useMessages();
2074
2093
  const isControlled = "value" in props;
2075
- const [innerFiles, setInnerFiles] = useState9(defaultValue ?? []);
2094
+ const [innerFiles, setInnerFiles] = useState10(defaultValue ?? []);
2076
2095
  const files = isControlled ? value3 ?? NO_FILES : innerFiles;
2077
- const [rejections, setRejections] = useState9([]);
2078
- const [announcement, setAnnouncement] = useState9("");
2079
- const [dragging, setDragging] = useState9(false);
2096
+ const [rejections, setRejections] = useState10([]);
2097
+ const [announcement, setAnnouncement] = useState10("");
2098
+ const [dragging, setDragging] = useState10(false);
2080
2099
  const generatedId = useId9();
2081
2100
  const baseId = id ?? generatedId;
2082
2101
  const labelId = label6 ? `${baseId}-label` : void 0;
@@ -2087,7 +2106,7 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
2087
2106
  const removeButtonRefs = useRef11([]);
2088
2107
  const focusAfterRemove = useRef11(null);
2089
2108
  const announceTimer = useRef11(void 0);
2090
- useEffect8(() => () => clearTimeout(announceTimer.current), []);
2109
+ useEffect9(() => () => clearTimeout(announceTimer.current), []);
2091
2110
  const selectLabel = m.fileSelect ?? "\uD30C\uC77C \uC120\uD0DD";
2092
2111
  const reasonText = (rejection) => {
2093
2112
  const fileName2 = rejection.file.name;
@@ -2135,13 +2154,13 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
2135
2154
  setRejections([]);
2136
2155
  commit(next, m.fileRemoved?.(removed.name) ?? `${removed.name} \uC0AD\uC81C\uB428`, REMOVED_ANNOUNCE_DELAY);
2137
2156
  };
2138
- useEffect8(() => {
2157
+ useEffect9(() => {
2139
2158
  if (focusAfterRemove.current === null) return;
2140
2159
  const target = focusAfterRemove.current;
2141
2160
  focusAfterRemove.current = null;
2142
2161
  (target >= 0 ? removeButtonRefs.current[target] : selectButtonRef.current)?.focus();
2143
2162
  }, [files]);
2144
- useEffect8(() => {
2163
+ useEffect9(() => {
2145
2164
  const input6 = inputRef.current;
2146
2165
  if (!name || !input6 || typeof DataTransfer === "undefined") return;
2147
2166
  try {
@@ -2156,12 +2175,12 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
2156
2175
  event.preventDefault();
2157
2176
  setDragging(over);
2158
2177
  };
2159
- return /* @__PURE__ */ jsxs21("div", { ref, className: cx(field, root8, className), children: [
2160
- label6 && /* @__PURE__ */ jsxs21("span", { id: labelId, className: label, children: [
2178
+ return /* @__PURE__ */ jsxs22("div", { ref, className: cx(field, root8, className), children: [
2179
+ label6 && /* @__PURE__ */ jsxs22("span", { id: labelId, className: label, children: [
2161
2180
  label6,
2162
2181
  required && /* @__PURE__ */ jsx26("span", { className: requiredMark, "aria-hidden": true, children: "*" })
2163
2182
  ] }),
2164
- /* @__PURE__ */ jsxs21(
2183
+ /* @__PURE__ */ jsxs22(
2165
2184
  "div",
2166
2185
  {
2167
2186
  role: "group",
@@ -2219,7 +2238,7 @@ var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
2219
2238
  ]
2220
2239
  }
2221
2240
  ),
2222
- files.length > 0 && /* @__PURE__ */ jsx26("ul", { "aria-label": m.fileList ?? "\uC120\uD0DD\uD55C \uD30C\uC77C", className: list4, children: files.map((file, index) => /* @__PURE__ */ jsxs21("li", { className: item5, children: [
2241
+ files.length > 0 && /* @__PURE__ */ jsx26("ul", { "aria-label": m.fileList ?? "\uC120\uD0DD\uD55C \uD30C\uC77C", className: list4, children: files.map((file, index) => /* @__PURE__ */ jsxs22("li", { className: item5, children: [
2223
2242
  /* @__PURE__ */ jsx26("span", { className: fileIcon, "aria-hidden": true, children: /* @__PURE__ */ jsx26(FileIcon, { size: 16 }) }),
2224
2243
  /* @__PURE__ */ jsx26("span", { className: fileName, children: file.name }),
2225
2244
  /* @__PURE__ */ jsx26("span", { id: `${baseId}-size-${index}`, className: fileSize, children: formatSize(file.size) }),
@@ -2264,7 +2283,7 @@ var subChevron = "_1d7ahuxb";
2264
2283
  var subTrigger = "_1d7ahuxa";
2265
2284
 
2266
2285
  // src/components/DropdownMenu/DropdownMenu.tsx
2267
- import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
2286
+ import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
2268
2287
  var DropdownMenu = RadixMenu.Root;
2269
2288
  var DropdownMenuTrigger = RadixMenu.Trigger;
2270
2289
  var DropdownMenuGroup = RadixMenu.Group;
@@ -2288,7 +2307,7 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef23(
2288
2307
  );
2289
2308
  var DropdownMenuItem = /* @__PURE__ */ forwardRef23(
2290
2309
  function DropdownMenuItem2({ icon: icon7, shortcut: shortcut2, color = "neutral", className, children, ...rest }, ref) {
2291
- return /* @__PURE__ */ jsxs22(RadixMenu.Item, { ref, className: cx(item6, color === "danger" && danger, className), ...rest, children: [
2310
+ return /* @__PURE__ */ jsxs23(RadixMenu.Item, { ref, className: cx(item6, color === "danger" && danger, className), ...rest, children: [
2292
2311
  icon7 && /* @__PURE__ */ jsx27("span", { className: icon4, "aria-hidden": true, children: icon7 }),
2293
2312
  children,
2294
2313
  shortcut2 && /* @__PURE__ */ jsx27("span", { className: shortcut, "aria-hidden": true, children: shortcut2 })
@@ -2307,7 +2326,7 @@ var DropdownMenuSeparator = /* @__PURE__ */ forwardRef23(
2307
2326
  );
2308
2327
  var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef23(
2309
2328
  function DropdownMenuCheckboxItem2({ className, children, ...rest }, ref) {
2310
- return /* @__PURE__ */ jsxs22(RadixMenu.CheckboxItem, { ref, className: cx(item6, className), ...rest, children: [
2329
+ return /* @__PURE__ */ jsxs23(RadixMenu.CheckboxItem, { ref, className: cx(item6, className), ...rest, children: [
2311
2330
  /* @__PURE__ */ jsx27("span", { className: indicator, "aria-hidden": true, children: /* @__PURE__ */ jsx27(RadixMenu.ItemIndicator, { className: indicatorInner, children: rest.checked === "indeterminate" ? /* @__PURE__ */ jsx27(MinusIcon, { size: 16 }) : /* @__PURE__ */ jsx27(CheckIcon2, { size: 16 }) }) }),
2312
2331
  children
2313
2332
  ] });
@@ -2316,7 +2335,7 @@ var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef23(
2316
2335
  var DropdownMenuRadioGroup = RadixMenu.RadioGroup;
2317
2336
  var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef23(
2318
2337
  function DropdownMenuRadioItem2({ className, children, ...rest }, ref) {
2319
- return /* @__PURE__ */ jsxs22(RadixMenu.RadioItem, { ref, className: cx(item6, className), ...rest, children: [
2338
+ return /* @__PURE__ */ jsxs23(RadixMenu.RadioItem, { ref, className: cx(item6, className), ...rest, children: [
2320
2339
  /* @__PURE__ */ jsx27("span", { className: indicator, "aria-hidden": true, children: /* @__PURE__ */ jsx27(RadixMenu.ItemIndicator, { className: indicatorInner, children: /* @__PURE__ */ jsx27("span", { className: radioDot }) }) }),
2321
2340
  children
2322
2341
  ] });
@@ -2325,7 +2344,7 @@ var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef23(
2325
2344
  var DropdownMenuSub = RadixMenu.Sub;
2326
2345
  var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef23(
2327
2346
  function DropdownMenuSubTrigger2({ icon: icon7, className, children, ...rest }, ref) {
2328
- return /* @__PURE__ */ jsxs22(RadixMenu.SubTrigger, { ref, className: cx(item6, subTrigger, className), ...rest, children: [
2347
+ return /* @__PURE__ */ jsxs23(RadixMenu.SubTrigger, { ref, className: cx(item6, subTrigger, className), ...rest, children: [
2329
2348
  icon7 && /* @__PURE__ */ jsx27("span", { className: icon4, "aria-hidden": true, children: icon7 }),
2330
2349
  children,
2331
2350
  /* @__PURE__ */ jsx27("span", { className: subChevron, "aria-hidden": true, children: /* @__PURE__ */ jsx27(ChevronRightIcon3, { size: 16 }) })
@@ -2351,7 +2370,7 @@ var DropdownMenuSubContent = /* @__PURE__ */ forwardRef23(
2351
2370
  );
2352
2371
 
2353
2372
  // src/components/NumberInput/NumberInput.tsx
2354
- import { forwardRef as forwardRef24, useEffect as useEffect9, useId as useId10, useRef as useRef12, useState as useState10 } from "react";
2373
+ import { forwardRef as forwardRef24, useEffect as useEffect10, useId as useId10, useRef as useRef12, useState as useState11 } from "react";
2355
2374
  import { MinusIcon as MinusIcon2, PlusIcon } from "@bestow-ui/icons";
2356
2375
 
2357
2376
  // src/components/NumberInput/NumberInput.css.ts
@@ -2362,7 +2381,7 @@ var stepper = /* @__PURE__ */ _7a46811({ defaultClassName: "_1vq2qhv3", variantC
2362
2381
  var unit = "_1vq2qhv2";
2363
2382
 
2364
2383
  // src/components/NumberInput/NumberInput.tsx
2365
- import { Fragment as Fragment5, jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
2384
+ import { Fragment as Fragment6, jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
2366
2385
  var MAX_DIGITS2 = 15;
2367
2386
  var isMeaningful = (char) => /[\d.-]/.test(char);
2368
2387
  var decimalsOf = (n) => Number.isFinite(n) ? String(n).split(".")[1]?.length ?? 0 : 0;
@@ -2431,7 +2450,7 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
2431
2450
  inputRef
2432
2451
  });
2433
2452
  const { setRaw } = field4;
2434
- useEffect9(() => {
2453
+ useEffect10(() => {
2435
2454
  if (!isControlled) return;
2436
2455
  const next = value3 ?? null;
2437
2456
  lastEmitted.current = next;
@@ -2439,7 +2458,7 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
2439
2458
  }, [value3]);
2440
2459
  const current2 = parse(field4.raw);
2441
2460
  const valueText = (n) => `${format2(toRaw(n))}${unit2 ?? ""}`;
2442
- const [announcement, setAnnouncement] = useState10("");
2461
+ const [announcement, setAnnouncement] = useState11("");
2443
2462
  const setValue = (next, announce = true) => {
2444
2463
  setRaw(toRaw(next));
2445
2464
  emit(next);
@@ -2487,7 +2506,7 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
2487
2506
  children: direction < 0 ? /* @__PURE__ */ jsx28(MinusIcon2, {}) : /* @__PURE__ */ jsx28(PlusIcon, {})
2488
2507
  }
2489
2508
  );
2490
- return /* @__PURE__ */ jsxs23(Fragment5, { children: [
2509
+ return /* @__PURE__ */ jsxs24(Fragment6, { children: [
2491
2510
  /* @__PURE__ */ jsx28(
2492
2511
  TextField,
2493
2512
  {
@@ -2516,7 +2535,7 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
2516
2535
  disabled,
2517
2536
  readOnly,
2518
2537
  startAdornment: hideStepper ? void 0 : stepper2(-1),
2519
- endAdornment: unit2 || !hideStepper ? /* @__PURE__ */ jsxs23("span", { className: end, children: [
2538
+ endAdornment: unit2 || !hideStepper ? /* @__PURE__ */ jsxs24("span", { className: end, children: [
2520
2539
  unit2 && /* @__PURE__ */ jsx28("span", { className: unit, children: unit2 }),
2521
2540
  !hideStepper && stepper2(1)
2522
2541
  ] }) : void 0,
@@ -2532,7 +2551,7 @@ var NumberInput = /* @__PURE__ */ forwardRef24(
2532
2551
 
2533
2552
  // src/components/Pagination/Pagination.tsx
2534
2553
  import { ChevronLeftIcon as ChevronLeftIcon2, ChevronRightIcon as ChevronRightIcon4 } from "@bestow-ui/icons";
2535
- import { forwardRef as forwardRef25, useState as useState11 } from "react";
2554
+ import { forwardRef as forwardRef25, useState as useState12 } from "react";
2536
2555
 
2537
2556
  // src/components/Pagination/getPaginationItems.ts
2538
2557
  var range = (start, end2) => end2 < start ? [] : Array.from({ length: end2 - start + 1 }, (_, i) => start + i);
@@ -2565,7 +2584,7 @@ var item7 = /* @__PURE__ */ _7a46812({ defaultClassName: "_1iraoak1", variantCla
2565
2584
  var list5 = "_1iraoak0";
2566
2585
 
2567
2586
  // src/components/Pagination/Pagination.tsx
2568
- import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
2587
+ import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
2569
2588
  var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
2570
2589
  totalPages,
2571
2590
  page: pageProp,
@@ -2579,7 +2598,7 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
2579
2598
  "aria-label": ariaLabelProp,
2580
2599
  ...rest
2581
2600
  }, ref) {
2582
- const [uncontrolledPage, setUncontrolledPage] = useState11(defaultPage);
2601
+ const [uncontrolledPage, setUncontrolledPage] = useState12(defaultPage);
2583
2602
  const m = useMessages();
2584
2603
  const ariaLabel = ariaLabelProp ?? m.pagination ?? "\uD398\uC774\uC9C0 \uD0D0\uC0C9";
2585
2604
  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`);
@@ -2591,7 +2610,7 @@ var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
2591
2610
  onPageChange?.(next);
2592
2611
  };
2593
2612
  const itemClass = item7({ size });
2594
- return /* @__PURE__ */ jsx29("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsxs24("ul", { className: list5, children: [
2613
+ return /* @__PURE__ */ jsx29("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsxs25("ul", { className: list5, children: [
2595
2614
  /* @__PURE__ */ jsx29("li", { children: /* @__PURE__ */ jsx29(
2596
2615
  "button",
2597
2616
  {
@@ -2685,7 +2704,7 @@ var PhoneNumberInput = /* @__PURE__ */ forwardRef26(
2685
2704
  );
2686
2705
 
2687
2706
  // src/components/RadioGroup/RadioGroup.tsx
2688
- import { forwardRef as forwardRef27, useId as useId11, useState as useState12 } from "react";
2707
+ import { forwardRef as forwardRef27, useId as useId11, useState as useState13 } from "react";
2689
2708
 
2690
2709
  // src/components/RadioGroup/RadioGroup.css.ts
2691
2710
  import { createRuntimeFn as _7a46813 } from "@vanilla-extract/recipes/createRuntimeFn";
@@ -2698,7 +2717,7 @@ var radio = /* @__PURE__ */ _7a46813({ defaultClassName: "_1w9iwjm7", variantCla
2698
2717
  var text = "_1w9iwjma";
2699
2718
 
2700
2719
  // src/components/RadioGroup/RadioGroup.tsx
2701
- import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
2720
+ import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
2702
2721
  var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref) {
2703
2722
  const {
2704
2723
  options,
@@ -2718,7 +2737,7 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
2718
2737
  className
2719
2738
  } = props;
2720
2739
  const isControlled = "value" in props;
2721
- const [innerValue, setInnerValue] = useState12(defaultValue ?? "");
2740
+ const [innerValue, setInnerValue] = useState13(defaultValue ?? "");
2722
2741
  const current2 = isControlled ? value3 ?? "" : innerValue;
2723
2742
  const generatedId = useId11();
2724
2743
  const baseId = id ?? generatedId;
@@ -2731,8 +2750,8 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
2731
2750
  if (!isControlled) setInnerValue(next);
2732
2751
  onValueChange?.(next);
2733
2752
  };
2734
- return /* @__PURE__ */ jsxs25("div", { className: cx(field, className), children: [
2735
- label6 && /* @__PURE__ */ jsxs25("span", { id: labelId, className: cx(label, groupLabel), children: [
2753
+ return /* @__PURE__ */ jsxs26("div", { className: cx(field, className), children: [
2754
+ label6 && /* @__PURE__ */ jsxs26("span", { id: labelId, className: cx(label, groupLabel), children: [
2736
2755
  label6,
2737
2756
  required && /* @__PURE__ */ jsx31("span", { className: requiredMark, "aria-hidden": true, children: "*" })
2738
2757
  ] }),
@@ -2754,7 +2773,7 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
2754
2773
  const descriptionId = option2.description ? `${itemId}-description` : void 0;
2755
2774
  const itemDisabled = disabled || option2.disabled;
2756
2775
  const checked = option2.value === current2;
2757
- return /* @__PURE__ */ jsxs25("div", { className: option({ size }), "data-disabled": itemDisabled || void 0, children: [
2776
+ return /* @__PURE__ */ jsxs26("div", { className: option({ size }), "data-disabled": itemDisabled || void 0, children: [
2758
2777
  /* @__PURE__ */ jsx31(
2759
2778
  "input",
2760
2779
  {
@@ -2772,7 +2791,7 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
2772
2791
  className: radio({ size })
2773
2792
  }
2774
2793
  ),
2775
- /* @__PURE__ */ jsxs25("span", { className: text, children: [
2794
+ /* @__PURE__ */ jsxs26("span", { className: text, children: [
2776
2795
  /* @__PURE__ */ jsx31("label", { htmlFor: itemId, className: labelText, children: option2.label }),
2777
2796
  option2.description && /* @__PURE__ */ jsx31("span", { id: descriptionId, className: description4, children: option2.description })
2778
2797
  ] })
@@ -2785,7 +2804,7 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref)
2785
2804
  });
2786
2805
 
2787
2806
  // src/components/SegmentedControl/SegmentedControl.tsx
2788
- import { forwardRef as forwardRef28, useId as useId12, useRef as useRef14, useState as useState13 } from "react";
2807
+ import { forwardRef as forwardRef28, useId as useId12, useRef as useRef14, useState as useState14 } from "react";
2789
2808
 
2790
2809
  // src/components/SegmentedControl/SegmentedControl.css.ts
2791
2810
  import { createRuntimeFn as _7a46814 } from "@vanilla-extract/recipes/createRuntimeFn";
@@ -2794,7 +2813,7 @@ var item8 = /* @__PURE__ */ _7a46814({ defaultClassName: "_1h65mmo2", variantCla
2794
2813
  var root9 = /* @__PURE__ */ _7a46814({ defaultClassName: "_1h65mmo0", variantClassNames: { fullWidth: { true: "_1h65mmo1" } }, defaultVariants: {}, compoundVariants: [] });
2795
2814
 
2796
2815
  // src/components/SegmentedControl/SegmentedControl.tsx
2797
- import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
2816
+ import { jsx as jsx32, jsxs as jsxs27 } from "react/jsx-runtime";
2798
2817
  var NEXT_KEYS = { ArrowRight: 1, ArrowDown: 1, ArrowLeft: -1, ArrowUp: -1 };
2799
2818
  var SegmentedControl = /* @__PURE__ */ forwardRef28(
2800
2819
  function SegmentedControl2(props, ref) {
@@ -2813,7 +2832,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
2813
2832
  className
2814
2833
  } = props;
2815
2834
  const isControlled = "value" in props;
2816
- const [innerValue, setInnerValue] = useState13(defaultValue ?? "");
2835
+ const [innerValue, setInnerValue] = useState14(defaultValue ?? "");
2817
2836
  const current2 = isControlled ? value3 ?? "" : innerValue;
2818
2837
  const generatedId = useId12();
2819
2838
  const labelId = label6 ? `${id ?? generatedId}-label` : void 0;
@@ -2848,7 +2867,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
2848
2867
  itemRefs.current[target]?.focus();
2849
2868
  select2(target);
2850
2869
  };
2851
- const group = /* @__PURE__ */ jsxs26(
2870
+ const group = /* @__PURE__ */ jsxs27(
2852
2871
  "div",
2853
2872
  {
2854
2873
  ref,
@@ -2861,7 +2880,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
2861
2880
  children: [
2862
2881
  options.map((option2, index) => {
2863
2882
  const checked = index === checkedIndex;
2864
- return /* @__PURE__ */ jsxs26(
2883
+ return /* @__PURE__ */ jsxs27(
2865
2884
  "button",
2866
2885
  {
2867
2886
  ref: (node) => {
@@ -2890,7 +2909,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef28(
2890
2909
  }
2891
2910
  );
2892
2911
  if (!label6) return group;
2893
- return /* @__PURE__ */ jsxs26("div", { className: cx(field, className), children: [
2912
+ return /* @__PURE__ */ jsxs27("div", { className: cx(field, className), children: [
2894
2913
  /* @__PURE__ */ jsx32("span", { id: labelId, className: label, children: label6 }),
2895
2914
  group
2896
2915
  ] });
@@ -2908,7 +2927,7 @@ var select = /* @__PURE__ */ _7a46815({ defaultClassName: "_5silym1", variantCla
2908
2927
  var wrapper = "_5silym0";
2909
2928
 
2910
2929
  // src/components/NativeSelect/NativeSelect.tsx
2911
- import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
2930
+ import { jsx as jsx33, jsxs as jsxs28 } from "react/jsx-runtime";
2912
2931
  var NativeSelect = /* @__PURE__ */ forwardRef29(function NativeSelect2({
2913
2932
  options,
2914
2933
  onValueChange,
@@ -2936,19 +2955,19 @@ var NativeSelect = /* @__PURE__ */ forwardRef29(function NativeSelect2({
2936
2955
  onChange?.(event);
2937
2956
  onValueChange?.(event.target.value);
2938
2957
  };
2939
- return /* @__PURE__ */ jsxs27("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
2940
- label6 && /* @__PURE__ */ jsxs27("label", { htmlFor: selectId, className: label, children: [
2958
+ return /* @__PURE__ */ jsxs28("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
2959
+ label6 && /* @__PURE__ */ jsxs28("label", { htmlFor: selectId, className: label, children: [
2941
2960
  label6,
2942
2961
  required && /* @__PURE__ */ jsx33("span", { className: requiredMark, "aria-hidden": true, children: "*" })
2943
2962
  ] }),
2944
- /* @__PURE__ */ jsxs27(
2963
+ /* @__PURE__ */ jsxs28(
2945
2964
  "span",
2946
2965
  {
2947
2966
  className: cx(root3({ size, fullWidth }), wrapper),
2948
2967
  "data-invalid": error || void 0,
2949
2968
  "data-disabled": disabled || void 0,
2950
2969
  children: [
2951
- /* @__PURE__ */ jsxs27(
2970
+ /* @__PURE__ */ jsxs28(
2952
2971
  "select",
2953
2972
  {
2954
2973
  ref,
@@ -2980,7 +2999,7 @@ var NativeSelect = /* @__PURE__ */ forwardRef29(function NativeSelect2({
2980
2999
  import * as RadixSelect from "@radix-ui/react-select";
2981
3000
  import { forwardRef as forwardRef30, useId as useId14 } from "react";
2982
3001
  import { CheckIcon as CheckIcon3, ChevronDownIcon as ChevronDownIcon5 } from "@bestow-ui/icons";
2983
- import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
3002
+ import { jsx as jsx34, jsxs as jsxs29 } from "react/jsx-runtime";
2984
3003
  var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
2985
3004
  const {
2986
3005
  options,
@@ -3005,12 +3024,12 @@ var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
3005
3024
  const triggerId = id ?? generatedId;
3006
3025
  const helperId = helperText3 ? `${triggerId}-helper` : void 0;
3007
3026
  const portal2 = usePortalProps();
3008
- return /* @__PURE__ */ jsxs28("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
3009
- label6 && /* @__PURE__ */ jsxs28("label", { htmlFor: triggerId, className: label, children: [
3027
+ return /* @__PURE__ */ jsxs29("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
3028
+ label6 && /* @__PURE__ */ jsxs29("label", { htmlFor: triggerId, className: label, children: [
3010
3029
  label6,
3011
3030
  required && /* @__PURE__ */ jsx34("span", { className: requiredMark, "aria-hidden": true, children: "*" })
3012
3031
  ] }),
3013
- /* @__PURE__ */ jsxs28(
3032
+ /* @__PURE__ */ jsxs29(
3014
3033
  RadixSelect.Root,
3015
3034
  {
3016
3035
  value: isControlled ? value3 ?? "" : void 0,
@@ -3020,7 +3039,7 @@ var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
3020
3039
  required,
3021
3040
  name,
3022
3041
  children: [
3023
- /* @__PURE__ */ jsxs28(
3042
+ /* @__PURE__ */ jsxs29(
3024
3043
  RadixSelect.Trigger,
3025
3044
  {
3026
3045
  ref,
@@ -3044,7 +3063,7 @@ var Select = /* @__PURE__ */ forwardRef30(function Select2(props, ref) {
3044
3063
  collisionPadding: 8,
3045
3064
  className: cx(portal2.className, content5),
3046
3065
  style: portal2.style,
3047
- children: /* @__PURE__ */ jsx34(RadixSelect.Viewport, { className: viewport, children: options.map((option2) => /* @__PURE__ */ jsxs28(
3066
+ children: /* @__PURE__ */ jsx34(RadixSelect.Viewport, { className: viewport, children: options.map((option2) => /* @__PURE__ */ jsxs29(
3048
3067
  RadixSelect.Item,
3049
3068
  {
3050
3069
  value: option2.value,
@@ -3091,7 +3110,7 @@ var SkipLink = /* @__PURE__ */ forwardRef31(function SkipLink2({ href = "#main",
3091
3110
 
3092
3111
  // src/components/Slider/Slider.tsx
3093
3112
  import * as RadixSlider from "@radix-ui/react-slider";
3094
- import { forwardRef as forwardRef32, useId as useId15, useState as useState14 } from "react";
3113
+ import { forwardRef as forwardRef32, useId as useId15, useState as useState15 } from "react";
3095
3114
 
3096
3115
  // src/components/Slider/Slider.css.ts
3097
3116
  import { createRuntimeFn as _7a46816 } from "@vanilla-extract/recipes/createRuntimeFn";
@@ -3106,7 +3125,7 @@ var track = /* @__PURE__ */ _7a46816({ defaultClassName: "_126mzjm8", variantCla
3106
3125
  var value2 = "_126mzjm3";
3107
3126
 
3108
3127
  // src/components/Slider/Slider.tsx
3109
- import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
3128
+ import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
3110
3129
  var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
3111
3130
  const {
3112
3131
  value: value3,
@@ -3133,7 +3152,7 @@ var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
3133
3152
  const labelId = `${baseId}-label`;
3134
3153
  const helperId = `${baseId}-helper`;
3135
3154
  const isControlled = "value" in props;
3136
- const [innerValue, setInnerValue] = useState14(defaultValue ?? [min]);
3155
+ const [innerValue, setInnerValue] = useState15(defaultValue ?? [min]);
3137
3156
  const current2 = isControlled ? value3 ?? [min] : innerValue;
3138
3157
  const isRange = current2.length > 1;
3139
3158
  const handleChange = (next) => {
@@ -3141,12 +3160,12 @@ var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
3141
3160
  onValueChange?.(next);
3142
3161
  };
3143
3162
  const valueText = current2.map(formatValue).join(" \u2013 ");
3144
- return /* @__PURE__ */ jsxs29("div", { className: cx(field3, className), children: [
3145
- (label6 || showValue) && /* @__PURE__ */ jsxs29("div", { className: header6, children: [
3163
+ return /* @__PURE__ */ jsxs30("div", { className: cx(field3, className), children: [
3164
+ (label6 || showValue) && /* @__PURE__ */ jsxs30("div", { className: header6, children: [
3146
3165
  label6 && /* @__PURE__ */ jsx36("span", { id: labelId, className: label3, children: label6 }),
3147
3166
  showValue && /* @__PURE__ */ jsx36("span", { className: value2, "aria-hidden": true, children: valueText })
3148
3167
  ] }),
3149
- /* @__PURE__ */ jsxs29(
3168
+ /* @__PURE__ */ jsxs30(
3150
3169
  RadixSlider.Root,
3151
3170
  {
3152
3171
  ref,
@@ -3177,7 +3196,7 @@ var Slider = /* @__PURE__ */ forwardRef32(function Slider2(props, ref) {
3177
3196
  ]
3178
3197
  }
3179
3198
  ),
3180
- isRange && current2.map((_, index) => /* @__PURE__ */ jsxs29("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
3199
+ isRange && current2.map((_, index) => /* @__PURE__ */ jsxs30("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
3181
3200
  label6 ? "" : ariaLabel ? `${ariaLabel} ` : "",
3182
3201
  thumbLabels[index] ?? `${index + 1}`
3183
3202
  ] }, index)),
@@ -3199,7 +3218,7 @@ var step = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhm3", variantClassN
3199
3218
  var text2 = /* @__PURE__ */ _7a46817({ defaultClassName: "kervhma", variantClassNames: { orientation: { horizontal: "kervhmb", vertical: "kervhmc" } }, defaultVariants: {}, compoundVariants: [] });
3200
3219
 
3201
3220
  // src/components/Stepper/Stepper.tsx
3202
- import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
3221
+ import { jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
3203
3222
  var Stepper = /* @__PURE__ */ forwardRef33(function Stepper2({ steps, current: current2, orientation = "horizontal", "aria-label": ariaLabel, className, ...rest }, ref) {
3204
3223
  const m = useMessages();
3205
3224
  return /* @__PURE__ */ jsx37(
@@ -3211,7 +3230,7 @@ var Stepper = /* @__PURE__ */ forwardRef33(function Stepper2({ steps, current: c
3211
3230
  ...rest,
3212
3231
  children: steps.map((step2, index) => {
3213
3232
  const status = index < current2 ? "complete" : index === current2 ? "current" : "upcoming";
3214
- return /* @__PURE__ */ jsxs30(
3233
+ return /* @__PURE__ */ jsxs31(
3215
3234
  "li",
3216
3235
  {
3217
3236
  className: step({ orientation }),
@@ -3219,10 +3238,10 @@ var Stepper = /* @__PURE__ */ forwardRef33(function Stepper2({ steps, current: c
3219
3238
  "aria-current": status === "current" ? "step" : void 0,
3220
3239
  children: [
3221
3240
  /* @__PURE__ */ jsx37("span", { className: indicator2({ status }), "aria-hidden": true, children: status === "complete" ? /* @__PURE__ */ jsx37(CheckIcon4, { size: 16, strokeWidth: 2.5 }) : index + 1 }),
3222
- /* @__PURE__ */ jsxs30("span", { className: text2({ orientation }), children: [
3223
- /* @__PURE__ */ jsxs30("span", { className: label4({ status }), children: [
3241
+ /* @__PURE__ */ jsxs31("span", { className: text2({ orientation }), children: [
3242
+ /* @__PURE__ */ jsxs31("span", { className: label4({ status }), children: [
3224
3243
  step2.label,
3225
- status === "complete" && /* @__PURE__ */ jsxs30("span", { className: visuallyHidden, children: [
3244
+ status === "complete" && /* @__PURE__ */ jsxs31("span", { className: visuallyHidden, children: [
3226
3245
  " (",
3227
3246
  m.stepCompleted ?? "\uC644\uB8CC",
3228
3247
  ")"
@@ -3240,7 +3259,7 @@ var Stepper = /* @__PURE__ */ forwardRef33(function Stepper2({ steps, current: c
3240
3259
  });
3241
3260
 
3242
3261
  // src/components/Switch/Switch.tsx
3243
- import { forwardRef as forwardRef34, useEffect as useEffect10, useId as useId16, useRef as useRef15, useState as useState15 } from "react";
3262
+ import { forwardRef as forwardRef34, useEffect as useEffect11, useId as useId16, useRef as useRef15, useState as useState16 } from "react";
3244
3263
 
3245
3264
  // src/components/Switch/Switch.css.ts
3246
3265
  import { createRuntimeFn as _7a46818 } from "@vanilla-extract/recipes/createRuntimeFn";
@@ -3251,7 +3270,7 @@ var thumb2 = /* @__PURE__ */ _7a46818({ defaultClassName: "o33ul26", variantClas
3251
3270
  var track2 = /* @__PURE__ */ _7a46818({ defaultClassName: "o33ul23", variantClassNames: { size: { sm: "o33ul24", md: "o33ul25" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
3252
3271
 
3253
3272
  // src/components/Switch/Switch.tsx
3254
- import { jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
3273
+ import { jsx as jsx38, jsxs as jsxs32 } from "react/jsx-runtime";
3255
3274
  function setNativeChecked(input6, checked) {
3256
3275
  Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "checked")?.set?.call(input6, checked);
3257
3276
  }
@@ -3271,12 +3290,12 @@ var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
3271
3290
  }, ref) {
3272
3291
  const generatedId = useId16();
3273
3292
  const switchId = id ?? generatedId;
3274
- const [uncontrolled, setUncontrolled] = useState15(defaultChecked ?? false);
3293
+ const [uncontrolled, setUncontrolled] = useState16(defaultChecked ?? false);
3275
3294
  const isControlled = checkedProp !== void 0;
3276
3295
  const checked = isControlled ? checkedProp : uncontrolled;
3277
3296
  const buttonRef = useRef15(null);
3278
3297
  const inputRef = useRef15(null);
3279
- const [inForm, setInForm] = useState15(true);
3298
+ const [inForm, setInForm] = useState16(true);
3280
3299
  const userToggled = useRef15(false);
3281
3300
  const setChecked = (next) => {
3282
3301
  if (!isControlled) setUncontrolled(next);
@@ -3284,7 +3303,7 @@ var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
3284
3303
  };
3285
3304
  const setCheckedRef = useRef15(setChecked);
3286
3305
  setCheckedRef.current = setChecked;
3287
- useEffect10(() => {
3306
+ useEffect11(() => {
3288
3307
  const form = buttonRef.current?.form;
3289
3308
  setInForm(!!form);
3290
3309
  if (!form) return;
@@ -3293,7 +3312,7 @@ var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
3293
3312
  form.addEventListener("reset", onReset);
3294
3313
  return () => form.removeEventListener("reset", onReset);
3295
3314
  }, []);
3296
- useEffect10(() => {
3315
+ useEffect11(() => {
3297
3316
  const input6 = inputRef.current;
3298
3317
  if (!input6 || input6.checked === checked) return;
3299
3318
  setNativeChecked(input6, checked);
@@ -3306,7 +3325,7 @@ var Switch = /* @__PURE__ */ forwardRef34(function Switch2({
3306
3325
  if (inForm) event.stopPropagation();
3307
3326
  };
3308
3327
  const state = checked ? "checked" : "unchecked";
3309
- return /* @__PURE__ */ jsxs31("span", { className: cx(root12({ size }), className), "data-disabled": disabled || void 0, children: [
3328
+ return /* @__PURE__ */ jsxs32("span", { className: cx(root12({ size }), className), "data-disabled": disabled || void 0, children: [
3310
3329
  /* @__PURE__ */ jsx38(
3311
3330
  "button",
3312
3331
  {
@@ -3374,7 +3393,7 @@ var striped = "l3ploy6";
3374
3393
  var table = "l3ploy1";
3375
3394
 
3376
3395
  // src/components/Table/Table.tsx
3377
- import { Fragment as Fragment6, jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
3396
+ import { Fragment as Fragment7, jsx as jsx39, jsxs as jsxs33 } from "react/jsx-runtime";
3378
3397
  var TableSizeContext = /* @__PURE__ */ createContext3("md");
3379
3398
  var TableSectionContext = /* @__PURE__ */ createContext3("body");
3380
3399
  var Table = /* @__PURE__ */ forwardRef35(function Table2({
@@ -3399,7 +3418,7 @@ var Table = /* @__PURE__ */ forwardRef35(function Table2({
3399
3418
  role: "region",
3400
3419
  "aria-labelledby": caption2 ? captionId : void 0,
3401
3420
  "aria-label": caption2 ? void 0 : ariaLabel,
3402
- children: /* @__PURE__ */ jsxs32(
3421
+ children: /* @__PURE__ */ jsxs33(
3403
3422
  "table",
3404
3423
  {
3405
3424
  ref,
@@ -3451,7 +3470,7 @@ var TableHead = /* @__PURE__ */ forwardRef35(function TableHead2({ align, sortDi
3451
3470
  className
3452
3471
  ),
3453
3472
  ...rest,
3454
- children: sortable ? /* @__PURE__ */ jsxs32("button", { type: "button", className: sortButton, onClick: onSort, children: [
3473
+ children: sortable ? /* @__PURE__ */ jsxs33("button", { type: "button", className: sortButton, onClick: onSort, children: [
3455
3474
  children,
3456
3475
  /* @__PURE__ */ jsx39(SortIcon, { size: 14, className: sortIcon, "data-active": direction !== "none", "aria-hidden": true })
3457
3476
  ] }) : children
@@ -3474,13 +3493,13 @@ var TableEmpty = /* @__PURE__ */ forwardRef35(function TableEmpty2({ colSpan, cl
3474
3493
  return /* @__PURE__ */ jsx39(TableRow, { children: /* @__PURE__ */ jsx39(TableCell, { ref, colSpan, className: cx(emptyCell, className), ...rest, children: /* @__PURE__ */ jsx39("div", { className: emptyContent, children }) }) });
3475
3494
  });
3476
3495
  function TableSkeleton({ rows = 5, columns }) {
3477
- return /* @__PURE__ */ jsx39(Fragment6, { children: Array.from({ length: rows }, (_, row5) => /* @__PURE__ */ jsx39(TableRow, { "aria-hidden": true, children: Array.from({ length: columns }, (_2, column) => /* @__PURE__ */ jsx39(TableCell, { children: /* @__PURE__ */ jsx39(Skeleton, { width: column === 0 ? "60%" : "80%" }) }, column)) }, row5)) });
3496
+ return /* @__PURE__ */ jsx39(Fragment7, { children: Array.from({ length: rows }, (_, row5) => /* @__PURE__ */ jsx39(TableRow, { "aria-hidden": true, children: Array.from({ length: columns }, (_2, column) => /* @__PURE__ */ jsx39(TableCell, { children: /* @__PURE__ */ jsx39(Skeleton, { width: column === 0 ? "60%" : "80%" }) }, column)) }, row5)) });
3478
3497
  }
3479
3498
 
3480
3499
  // src/components/Table/useTableSelection.ts
3481
- import { useCallback, useState as useState16 } from "react";
3500
+ import { useCallback, useState as useState17 } from "react";
3482
3501
  function useTableSelection(initial = []) {
3483
- const [selected, setSelected] = useState16(initial);
3502
+ const [selected, setSelected] = useState17(initial);
3484
3503
  const isSelected = useCallback((id) => selected.includes(id), [selected]);
3485
3504
  const toggle3 = useCallback((id, checked) => {
3486
3505
  setSelected((prev) => {
@@ -3544,7 +3563,7 @@ import {
3544
3563
  useCallback as useCallback2,
3545
3564
  useId as useId18,
3546
3565
  useRef as useRef16,
3547
- useState as useState17
3566
+ useState as useState18
3548
3567
  } from "react";
3549
3568
 
3550
3569
  // src/components/Textarea/Textarea.css.ts
@@ -3556,7 +3575,7 @@ var footer4 = "_1koawa8";
3556
3575
  var textarea = /* @__PURE__ */ _7a46821({ defaultClassName: "_1koawa0", variantClassNames: { size: { sm: "_1koawa1", md: "_1koawa2", lg: "_1koawa3" }, resize: { none: "_1koawa4", vertical: "_1koawa5", both: "_1koawa6" } }, defaultVariants: { size: "md", resize: "vertical" }, compoundVariants: [] });
3557
3576
 
3558
3577
  // src/components/Textarea/Textarea.tsx
3559
- import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
3578
+ import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
3560
3579
  var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
3561
3580
  label: label6,
3562
3581
  helperText: helperText3,
@@ -3582,7 +3601,7 @@ var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
3582
3601
  const textareaId = id ?? generatedId;
3583
3602
  const helperId = helperText3 ? `${textareaId}-helper` : void 0;
3584
3603
  const innerRef = useRef16(null);
3585
- const [uncontrolledLength, setUncontrolledLength] = useState17(() => String(defaultValue ?? "").length);
3604
+ const [uncontrolledLength, setUncontrolledLength] = useState18(() => String(defaultValue ?? "").length);
3586
3605
  const length = value3 !== void 0 ? String(value3).length : uncontrolledLength;
3587
3606
  const fitHeight = useCallback2(() => {
3588
3607
  const el = innerRef.current;
@@ -3597,8 +3616,8 @@ var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
3597
3616
  fitHeight();
3598
3617
  onChange?.(event);
3599
3618
  };
3600
- return /* @__PURE__ */ jsxs33("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
3601
- label6 && /* @__PURE__ */ jsxs33("label", { htmlFor: textareaId, className: label, children: [
3619
+ return /* @__PURE__ */ jsxs34("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
3620
+ label6 && /* @__PURE__ */ jsxs34("label", { htmlFor: textareaId, className: label, children: [
3602
3621
  label6,
3603
3622
  required && /* @__PURE__ */ jsx41("span", { className: requiredMark, "aria-hidden": true, children: "*" })
3604
3623
  ] }),
@@ -3624,7 +3643,7 @@ var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
3624
3643
  ...rest
3625
3644
  }
3626
3645
  ),
3627
- (helperText3 || showCount) && /* @__PURE__ */ jsxs33("div", { className: footer4, children: [
3646
+ (helperText3 || showCount) && /* @__PURE__ */ jsxs34("div", { className: footer4, children: [
3628
3647
  helperText3 && /* @__PURE__ */ jsx41("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
3629
3648
  showCount && /* @__PURE__ */ jsx41("span", { className: cx(count, maxLength !== void 0 && length >= maxLength && countOver), children: maxLength !== void 0 ? `${length}/${maxLength}` : length })
3630
3649
  ] })
@@ -3633,7 +3652,7 @@ var Textarea = /* @__PURE__ */ forwardRef37(function Textarea2({
3633
3652
 
3634
3653
  // src/components/Toast/Toast.tsx
3635
3654
  import * as RadixToast from "@radix-ui/react-toast";
3636
- import { createContext as createContext5, useCallback as useCallback3, useContext as useContext5, useMemo as useMemo4, useRef as useRef17, useState as useState18 } from "react";
3655
+ import { createContext as createContext5, useCallback as useCallback3, useContext as useContext5, useMemo as useMemo4, useRef as useRef17, useState as useState19 } from "react";
3637
3656
  import { XIcon as XIcon7 } from "@bestow-ui/icons";
3638
3657
 
3639
3658
  // src/components/Toast/Toast.css.ts
@@ -3646,13 +3665,13 @@ var toast = /* @__PURE__ */ _7a46822({ defaultClassName: "_1g11zvx1", variantCla
3646
3665
  var viewport2 = "_1g11zvx0";
3647
3666
 
3648
3667
  // src/components/Toast/Toast.tsx
3649
- import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
3668
+ import { jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
3650
3669
  var REMOVE_DELAY = 500;
3651
3670
  var ToastContext = /* @__PURE__ */ createContext5(null);
3652
3671
  function ToastProvider({ children, duration = 5e3, label: labelProp }) {
3653
3672
  const m = useMessages();
3654
3673
  const label6 = labelProp ?? m.notifications ?? "\uC54C\uB9BC";
3655
- const [toasts, setToasts] = useState18([]);
3674
+ const [toasts, setToasts] = useState19([]);
3656
3675
  const nextId = useRef17(0);
3657
3676
  const portal2 = usePortalProps();
3658
3677
  const toast2 = useCallback3((options) => {
@@ -3666,9 +3685,9 @@ function ToastProvider({ children, duration = 5e3, label: labelProp }) {
3666
3685
  setTimeout(() => setToasts((prev) => prev.filter((t) => t.open || !isTarget(t))), REMOVE_DELAY);
3667
3686
  }, []);
3668
3687
  const value3 = useMemo4(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
3669
- return /* @__PURE__ */ jsx42(ToastContext.Provider, { value: value3, children: /* @__PURE__ */ jsxs34(RadixToast.Provider, { duration, label: label6, swipeDirection: "right", children: [
3688
+ return /* @__PURE__ */ jsx42(ToastContext.Provider, { value: value3, children: /* @__PURE__ */ jsxs35(RadixToast.Provider, { duration, label: label6, swipeDirection: "right", children: [
3670
3689
  children,
3671
- toasts.map(({ id, open, title: title6, description: description7, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */ jsxs34(
3690
+ toasts.map(({ id, open, title: title6, description: description7, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */ jsxs35(
3672
3691
  RadixToast.Root,
3673
3692
  {
3674
3693
  open,
@@ -3703,7 +3722,7 @@ var arrow2 = "z7rufs1";
3703
3722
  var content11 = "z7rufs0";
3704
3723
 
3705
3724
  // src/components/Tooltip/Tooltip.tsx
3706
- import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
3725
+ import { jsx as jsx43, jsxs as jsxs36 } from "react/jsx-runtime";
3707
3726
  function Tooltip({
3708
3727
  content: content12,
3709
3728
  children,
@@ -3718,9 +3737,9 @@ function Tooltip({
3718
3737
  }) {
3719
3738
  const portal2 = usePortalProps();
3720
3739
  if (disabled || content12 == null || content12 === "") return children;
3721
- return /* @__PURE__ */ jsx43(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ jsxs35(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
3740
+ return /* @__PURE__ */ jsx43(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ jsxs36(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
3722
3741
  /* @__PURE__ */ jsx43(RadixTooltip.Trigger, { asChild: true, children }),
3723
- /* @__PURE__ */ jsx43(RadixTooltip.Portal, { children: /* @__PURE__ */ jsxs35(
3742
+ /* @__PURE__ */ jsx43(RadixTooltip.Portal, { children: /* @__PURE__ */ jsxs36(
3724
3743
  RadixTooltip.Content,
3725
3744
  {
3726
3745
  side,
@@ -3739,7 +3758,7 @@ function Tooltip({
3739
3758
  }
3740
3759
 
3741
3760
  // src/components/VerificationCodeInput/VerificationCodeInput.tsx
3742
- import { forwardRef as forwardRef38, useEffect as useEffect11, useId as useId19, useRef as useRef18, useState as useState19 } from "react";
3761
+ import { forwardRef as forwardRef38, useEffect as useEffect12, useId as useId19, useRef as useRef18, useState as useState20 } from "react";
3743
3762
 
3744
3763
  // src/components/VerificationCodeInput/VerificationCodeInput.css.ts
3745
3764
  var input5 = "ea01812";
@@ -3749,7 +3768,7 @@ var slots = "ea01811";
3749
3768
  var timer = "ea01814";
3750
3769
 
3751
3770
  // src/components/VerificationCodeInput/VerificationCodeInput.tsx
3752
- import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime";
3771
+ import { jsx as jsx44, jsxs as jsxs37 } from "react/jsx-runtime";
3753
3772
  var formatTime = (seconds) => `${String(Math.floor(seconds / 60)).padStart(2, "0")}:${String(seconds % 60).padStart(2, "0")}`;
3754
3773
  var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
3755
3774
  function VerificationCodeInput2(props, ref) {
@@ -3784,17 +3803,17 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
3784
3803
  const statusId = `${inputId}-status`;
3785
3804
  const inputRef = useRef18(null);
3786
3805
  const isControlled = "value" in props;
3787
- const [innerValue, setInnerValue] = useState19(defaultValue ?? "");
3806
+ const [innerValue, setInnerValue] = useState20(defaultValue ?? "");
3788
3807
  const code = (isControlled ? value3 ?? "" : innerValue).slice(0, length);
3789
- const [focused, setFocused] = useState19(false);
3790
- const [endAt, setEndAt] = useState19(() => expiresIn ? Date.now() + expiresIn * 1e3 : null);
3791
- const [remaining, setRemaining] = useState19(expiresIn ?? 0);
3808
+ const [focused, setFocused] = useState20(false);
3809
+ const [endAt, setEndAt] = useState20(() => expiresIn ? Date.now() + expiresIn * 1e3 : null);
3810
+ const [remaining, setRemaining] = useState20(expiresIn ?? 0);
3792
3811
  const expired = expiresIn !== void 0 && remaining <= 0;
3793
3812
  const onExpireRef = useRef18(onExpire);
3794
- useEffect11(() => {
3813
+ useEffect12(() => {
3795
3814
  onExpireRef.current = onExpire;
3796
3815
  });
3797
- useEffect11(() => {
3816
+ useEffect12(() => {
3798
3817
  if (endAt === null) return;
3799
3818
  const tick = () => {
3800
3819
  const left = Math.max(0, Math.ceil((endAt - Date.now()) / 1e3));
@@ -3829,7 +3848,7 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
3829
3848
  };
3830
3849
  const description7 = helperText3 ?? m.verificationCodeHint?.(length, type) ?? `${length}\uC790\uB9AC ${type === "numeric" ? "\uC22B\uC790" : "\uBB38\uC790"}\uB97C \uC785\uB825\uD558\uC138\uC694.`;
3831
3850
  const activeIndex = Math.min(code.length, length - 1);
3832
- return /* @__PURE__ */ jsxs36(
3851
+ return /* @__PURE__ */ jsxs37(
3833
3852
  "div",
3834
3853
  {
3835
3854
  className: cx(field, className),
@@ -3837,8 +3856,8 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef38(
3837
3856
  "data-disabled": disabled || void 0,
3838
3857
  children: [
3839
3858
  /* @__PURE__ */ jsx44("label", { htmlFor: inputId, className: label, children: label6 }),
3840
- /* @__PURE__ */ jsxs36("div", { className: row4, children: [
3841
- /* @__PURE__ */ jsxs36("div", { className: slots, children: [
3859
+ /* @__PURE__ */ jsxs37("div", { className: row4, children: [
3860
+ /* @__PURE__ */ jsxs37("div", { className: slots, children: [
3842
3861
  /* @__PURE__ */ jsx44(
3843
3862
  "input",
3844
3863
  {