@bestow-ui/react 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/dist/{chunk-VH7JW6N7.js → chunk-VQ45DNC3.js} +18 -2
- package/dist/chunk-VQ45DNC3.js.map +1 -0
- package/dist/client.js +459 -303
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +526 -337
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +57 -10
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +98 -9
- package/dist/index.d.ts +98 -9
- package/dist/shared.js +19 -1
- package/dist/shared.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-VH7JW6N7.js.map +0 -1
package/dist/client.js
CHANGED
|
@@ -18,11 +18,12 @@ import {
|
|
|
18
18
|
mergeThemes,
|
|
19
19
|
parseISODate,
|
|
20
20
|
phoneNumberMaxDigits,
|
|
21
|
+
presetRange,
|
|
21
22
|
themeClass,
|
|
22
23
|
themeToStyle,
|
|
23
24
|
toISODate,
|
|
24
25
|
visuallyHidden
|
|
25
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-VQ45DNC3.js";
|
|
26
27
|
|
|
27
28
|
// src/theme/ThemeProvider.tsx
|
|
28
29
|
import { createContext, forwardRef, useContext, useMemo } from "react";
|
|
@@ -863,7 +864,7 @@ var AmountInput = /* @__PURE__ */ forwardRef11(
|
|
|
863
864
|
return digits;
|
|
864
865
|
};
|
|
865
866
|
const toRaw = (amount) => amount === null || amount === void 0 ? "" : String(Math.floor(Math.abs(amount)));
|
|
866
|
-
const
|
|
867
|
+
const field4 = useFormattedInput({
|
|
867
868
|
isControlled: "value" in props,
|
|
868
869
|
value: toRaw(value3),
|
|
869
870
|
defaultValue: toRaw(defaultValue),
|
|
@@ -873,7 +874,7 @@ var AmountInput = /* @__PURE__ */ forwardRef11(
|
|
|
873
874
|
isMeaningful: isDigit,
|
|
874
875
|
inputRef
|
|
875
876
|
});
|
|
876
|
-
const reading = showKoreanAmount &&
|
|
877
|
+
const reading = showKoreanAmount && field4.raw !== "" ? formatKoreanAmount(Number(field4.raw), unit2) : null;
|
|
877
878
|
return /* @__PURE__ */ jsx13(
|
|
878
879
|
TextField,
|
|
879
880
|
{
|
|
@@ -881,10 +882,10 @@ var AmountInput = /* @__PURE__ */ forwardRef11(
|
|
|
881
882
|
label: label6,
|
|
882
883
|
placeholder,
|
|
883
884
|
inputMode: "numeric",
|
|
884
|
-
value:
|
|
885
|
-
onChange:
|
|
885
|
+
value: field4.display,
|
|
886
|
+
onChange: field4.onChange,
|
|
886
887
|
onKeyDown: (event) => {
|
|
887
|
-
|
|
888
|
+
field4.onKeyDown(event);
|
|
888
889
|
onKeyDown?.(event);
|
|
889
890
|
},
|
|
890
891
|
endAdornment: unit2,
|
|
@@ -995,10 +996,10 @@ var separator = "_18t8ztt4";
|
|
|
995
996
|
|
|
996
997
|
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
997
998
|
import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
998
|
-
var Breadcrumb = /* @__PURE__ */ forwardRef14(function Breadcrumb2({ items: items2, linkAs, separator:
|
|
999
|
+
var Breadcrumb = /* @__PURE__ */ forwardRef14(function Breadcrumb2({ items: items2, linkAs, separator: separator4, "aria-label": ariaLabelProp, className, ...rest }, ref) {
|
|
999
1000
|
const m = useMessages();
|
|
1000
1001
|
const ariaLabel = ariaLabelProp ?? m.breadcrumb ?? "\uC774\uB3D9 \uACBD\uB85C";
|
|
1001
|
-
const sep =
|
|
1002
|
+
const sep = separator4 ?? /* @__PURE__ */ jsx16(ChevronRightIcon, { size: 14 });
|
|
1002
1003
|
return /* @__PURE__ */ jsx16("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsx16("ol", { className: list2, children: items2.map((item9, index) => {
|
|
1003
1004
|
const isCurrent = index === items2.length - 1;
|
|
1004
1005
|
return /* @__PURE__ */ jsxs14("li", { className: item3, children: [
|
|
@@ -1035,7 +1036,7 @@ var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
|
|
|
1035
1036
|
const label6 = labelProp ?? m.businessNumber ?? "\uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638";
|
|
1036
1037
|
const incompleteText = m.businessNumberIncomplete ?? "10\uC790\uB9AC\uB97C \uBAA8\uB450 \uC785\uB825\uD574 \uC8FC\uC138\uC694.";
|
|
1037
1038
|
const [touched, setTouched] = useState4(false);
|
|
1038
|
-
const
|
|
1039
|
+
const field4 = useFormattedInput({
|
|
1039
1040
|
isControlled: "value" in props,
|
|
1040
1041
|
value: value3,
|
|
1041
1042
|
defaultValue,
|
|
@@ -1045,8 +1046,8 @@ var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
|
|
|
1045
1046
|
isMeaningful: isDigit2,
|
|
1046
1047
|
inputRef
|
|
1047
1048
|
});
|
|
1048
|
-
const complete =
|
|
1049
|
-
const autoInvalid = validate &&
|
|
1049
|
+
const complete = field4.raw.length === 10;
|
|
1050
|
+
const autoInvalid = validate && field4.raw.length > 0 && (complete ? !isValidBusinessNumber(field4.raw) : touched);
|
|
1050
1051
|
const showAuto = autoInvalid && error === void 0;
|
|
1051
1052
|
return /* @__PURE__ */ jsx17(
|
|
1052
1053
|
TextField,
|
|
@@ -1055,10 +1056,10 @@ var BusinessNumberInput = /* @__PURE__ */ forwardRef15(
|
|
|
1055
1056
|
label: label6,
|
|
1056
1057
|
placeholder,
|
|
1057
1058
|
inputMode: "numeric",
|
|
1058
|
-
value:
|
|
1059
|
-
onChange:
|
|
1059
|
+
value: field4.display,
|
|
1060
|
+
onChange: field4.onChange,
|
|
1060
1061
|
onKeyDown: (event) => {
|
|
1061
|
-
|
|
1062
|
+
field4.onKeyDown(event);
|
|
1062
1063
|
onKeyDown?.(event);
|
|
1063
1064
|
},
|
|
1064
1065
|
onBlur: (event) => {
|
|
@@ -1300,6 +1301,7 @@ var toggle2 = "c2pbq71 c2pbq70";
|
|
|
1300
1301
|
|
|
1301
1302
|
// src/components/Combobox/Combobox.tsx
|
|
1302
1303
|
import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1304
|
+
var NO_RESULTS_ANNOUNCE_DELAY = 800;
|
|
1303
1305
|
var defaultFilter = (option2, query) => option2.label.toLowerCase().includes(query.trim().toLowerCase());
|
|
1304
1306
|
var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
1305
1307
|
const {
|
|
@@ -1425,6 +1427,14 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1425
1427
|
document.getElementById(optionId(activeIndex))?.scrollIntoView?.({ block: "nearest" });
|
|
1426
1428
|
}, [open, activeIndex]);
|
|
1427
1429
|
const hasOptions = filtered.length > 0;
|
|
1430
|
+
const noResults = open && !disabled && !hasOptions;
|
|
1431
|
+
const [announcedFor, setAnnouncedFor] = useState6(void 0);
|
|
1432
|
+
useEffect5(() => {
|
|
1433
|
+
if (!noResults) return;
|
|
1434
|
+
const timer2 = setTimeout(() => setAnnouncedFor(query), NO_RESULTS_ANNOUNCE_DELAY);
|
|
1435
|
+
return () => clearTimeout(timer2);
|
|
1436
|
+
}, [noResults, query]);
|
|
1437
|
+
const announceNoResults = noResults && announcedFor === query;
|
|
1428
1438
|
return /* @__PURE__ */ jsxs16("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
1429
1439
|
label6 && /* @__PURE__ */ jsxs16("label", { id: labelId, htmlFor: inputId, className: label, children: [
|
|
1430
1440
|
label6,
|
|
@@ -1554,10 +1564,14 @@ var Combobox = /* @__PURE__ */ forwardRef18(function Combobox2(props, ref) {
|
|
|
1554
1564
|
);
|
|
1555
1565
|
})
|
|
1556
1566
|
}
|
|
1557
|
-
) :
|
|
1567
|
+
) : (
|
|
1568
|
+
// 스크린리더 알림은 아래의 항상 있는 status 영역이 맡는다 (여기는 화면 표시만)
|
|
1569
|
+
/* @__PURE__ */ jsx20("div", { className: empty, children: emptyMessage })
|
|
1570
|
+
)
|
|
1558
1571
|
}
|
|
1559
1572
|
) })
|
|
1560
1573
|
] }),
|
|
1574
|
+
/* @__PURE__ */ jsx20("span", { role: "status", className: visuallyHidden, children: announceNoResults ? emptyMessage : "" }),
|
|
1561
1575
|
name && /* @__PURE__ */ jsx20("input", { type: "hidden", name, value: selectedValue ?? "" }),
|
|
1562
1576
|
helperText3 && /* @__PURE__ */ jsx20("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1563
1577
|
] });
|
|
@@ -1680,7 +1694,7 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1680
1694
|
lastEmitted.current = iso;
|
|
1681
1695
|
onValueChange?.(iso);
|
|
1682
1696
|
};
|
|
1683
|
-
const
|
|
1697
|
+
const field4 = useFormattedInput({
|
|
1684
1698
|
isControlled: false,
|
|
1685
1699
|
value: void 0,
|
|
1686
1700
|
defaultValue: (isControlled ? value3 : defaultValue)?.replace(/\D/g, ""),
|
|
@@ -1693,8 +1707,8 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1693
1707
|
isMeaningful: isDigit3,
|
|
1694
1708
|
inputRef
|
|
1695
1709
|
});
|
|
1696
|
-
const textIso = toIso(
|
|
1697
|
-
const { setRaw } =
|
|
1710
|
+
const textIso = toIso(field4.raw);
|
|
1711
|
+
const { setRaw } = field4;
|
|
1698
1712
|
useEffect6(() => {
|
|
1699
1713
|
if (!isControlled) return;
|
|
1700
1714
|
const next = value3 ?? "";
|
|
@@ -1706,8 +1720,8 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1706
1720
|
setRaw(next.replace(/\D/g, ""));
|
|
1707
1721
|
}, [value3]);
|
|
1708
1722
|
const date = parseISODate(textIso);
|
|
1709
|
-
const complete =
|
|
1710
|
-
const autoError = complete ? !date ? invalidText : isUnavailable(date) ? unavailableText : null : touched &&
|
|
1723
|
+
const complete = field4.raw.length === 8;
|
|
1724
|
+
const autoError = complete ? !date ? invalidText : isUnavailable(date) ? unavailableText : null : touched && field4.raw.length > 0 ? incompleteText : null;
|
|
1711
1725
|
const showAuto = autoError !== null && error === void 0;
|
|
1712
1726
|
const selectedIso = date && !isUnavailable(date) ? textIso : "";
|
|
1713
1727
|
return /* @__PURE__ */ jsxs18(Fragment4, { children: [
|
|
@@ -1720,9 +1734,9 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1720
1734
|
placeholder,
|
|
1721
1735
|
inputMode: "numeric",
|
|
1722
1736
|
autoComplete: "off",
|
|
1723
|
-
value:
|
|
1724
|
-
onChange:
|
|
1725
|
-
onKeyDown:
|
|
1737
|
+
value: field4.display,
|
|
1738
|
+
onChange: field4.onChange,
|
|
1739
|
+
onKeyDown: field4.onKeyDown,
|
|
1726
1740
|
onBlur: () => setTouched(true),
|
|
1727
1741
|
error: error ?? autoError !== null,
|
|
1728
1742
|
helperText: showAuto ? autoError : helperText3,
|
|
@@ -1766,6 +1780,129 @@ var DatePicker = /* @__PURE__ */ forwardRef19(
|
|
|
1766
1780
|
}
|
|
1767
1781
|
);
|
|
1768
1782
|
|
|
1783
|
+
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
1784
|
+
import { forwardRef as forwardRef20, useId as useId7, useState as useState8 } from "react";
|
|
1785
|
+
|
|
1786
|
+
// src/components/DateRangePicker/DateRangePicker.css.ts
|
|
1787
|
+
var field2 = "_17277dh3";
|
|
1788
|
+
var fields = "_17277dh2";
|
|
1789
|
+
var fieldset3 = "_17277dh0";
|
|
1790
|
+
var legend3 = "_17277dh1";
|
|
1791
|
+
var presets = "_17277dh5";
|
|
1792
|
+
var separator2 = "_17277dh4";
|
|
1793
|
+
|
|
1794
|
+
// src/components/DateRangePicker/DateRangePicker.tsx
|
|
1795
|
+
import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1796
|
+
var DateRangePicker = /* @__PURE__ */ forwardRef20(
|
|
1797
|
+
function DateRangePicker2(props, ref) {
|
|
1798
|
+
const {
|
|
1799
|
+
value: value3,
|
|
1800
|
+
defaultValue,
|
|
1801
|
+
onValueChange,
|
|
1802
|
+
label: label6,
|
|
1803
|
+
startLabel: startLabelProp,
|
|
1804
|
+
endLabel: endLabelProp,
|
|
1805
|
+
presets: presets2,
|
|
1806
|
+
min,
|
|
1807
|
+
max,
|
|
1808
|
+
isDateDisabled,
|
|
1809
|
+
isHoliday,
|
|
1810
|
+
today,
|
|
1811
|
+
helperText: helperText3,
|
|
1812
|
+
error,
|
|
1813
|
+
required,
|
|
1814
|
+
disabled,
|
|
1815
|
+
startName,
|
|
1816
|
+
endName,
|
|
1817
|
+
id,
|
|
1818
|
+
className
|
|
1819
|
+
} = props;
|
|
1820
|
+
const m = useMessages();
|
|
1821
|
+
const generatedId = useId7();
|
|
1822
|
+
const baseId = id ?? generatedId;
|
|
1823
|
+
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
1824
|
+
const isClient = useIsClient();
|
|
1825
|
+
const isControlled = "value" in props;
|
|
1826
|
+
const [inner, setInner] = useState8(defaultValue ?? { start: "", end: "" });
|
|
1827
|
+
const range3 = isControlled ? value3 ?? { start: "", end: "" } : inner;
|
|
1828
|
+
const update = (next) => {
|
|
1829
|
+
if (next.start === range3.start && next.end === range3.end) return;
|
|
1830
|
+
if (!isControlled) setInner(next);
|
|
1831
|
+
onValueChange?.(next);
|
|
1832
|
+
};
|
|
1833
|
+
const todayIso = () => today ?? toISODate(/* @__PURE__ */ new Date());
|
|
1834
|
+
const startLabel = startLabelProp ?? m.dateRangeStart ?? "\uC2DC\uC791\uC77C";
|
|
1835
|
+
const endLabel = endLabelProp ?? m.dateRangeEnd ?? "\uC885\uB8CC\uC77C";
|
|
1836
|
+
const common = { isDateDisabled, isHoliday, today, disabled, required, fullWidth: true };
|
|
1837
|
+
return /* @__PURE__ */ jsxs19(
|
|
1838
|
+
"fieldset",
|
|
1839
|
+
{
|
|
1840
|
+
ref,
|
|
1841
|
+
id,
|
|
1842
|
+
className: cx(fieldset3, className),
|
|
1843
|
+
"aria-describedby": helperId,
|
|
1844
|
+
"data-invalid": error || void 0,
|
|
1845
|
+
children: [
|
|
1846
|
+
label6 && /* @__PURE__ */ jsxs19("legend", { className: legend3, children: [
|
|
1847
|
+
label6,
|
|
1848
|
+
required && /* @__PURE__ */ jsx23("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
1849
|
+
] }),
|
|
1850
|
+
/* @__PURE__ */ jsxs19("div", { className: fields, children: [
|
|
1851
|
+
/* @__PURE__ */ jsx23("div", { className: field2, children: /* @__PURE__ */ jsx23(
|
|
1852
|
+
DatePicker,
|
|
1853
|
+
{
|
|
1854
|
+
...common,
|
|
1855
|
+
id: `${baseId}-start`,
|
|
1856
|
+
label: startLabel,
|
|
1857
|
+
value: range3.start,
|
|
1858
|
+
onValueChange: (start) => update({ ...range3, start }),
|
|
1859
|
+
min,
|
|
1860
|
+
max: range3.end || max,
|
|
1861
|
+
name: startName,
|
|
1862
|
+
error: error || void 0
|
|
1863
|
+
}
|
|
1864
|
+
) }),
|
|
1865
|
+
/* @__PURE__ */ jsx23("span", { className: separator2, "aria-hidden": true, children: "~" }),
|
|
1866
|
+
/* @__PURE__ */ jsx23("div", { className: field2, children: /* @__PURE__ */ jsx23(
|
|
1867
|
+
DatePicker,
|
|
1868
|
+
{
|
|
1869
|
+
...common,
|
|
1870
|
+
id: `${baseId}-end`,
|
|
1871
|
+
label: endLabel,
|
|
1872
|
+
value: range3.end,
|
|
1873
|
+
onValueChange: (end2) => update({ ...range3, end: end2 }),
|
|
1874
|
+
min: range3.start || min,
|
|
1875
|
+
max,
|
|
1876
|
+
name: endName,
|
|
1877
|
+
error: error || void 0
|
|
1878
|
+
}
|
|
1879
|
+
) })
|
|
1880
|
+
] }),
|
|
1881
|
+
presets2 && presets2.length > 0 && /* @__PURE__ */ jsx23("div", { role: "group", "aria-label": m.dateRangePresets ?? "\uBE60\uB978 \uC120\uD0DD", className: presets, children: presets2.map((preset) => {
|
|
1882
|
+
const target = isClient ? presetRange(preset, todayIso()) : null;
|
|
1883
|
+
const pressed = !!target && target.start === range3.start && target.end === range3.end;
|
|
1884
|
+
return /* @__PURE__ */ jsx23(
|
|
1885
|
+
Button,
|
|
1886
|
+
{
|
|
1887
|
+
type: "button",
|
|
1888
|
+
size: "sm",
|
|
1889
|
+
variant: pressed ? "soft" : "outline",
|
|
1890
|
+
color: pressed ? "primary" : "neutral",
|
|
1891
|
+
"aria-pressed": pressed,
|
|
1892
|
+
disabled,
|
|
1893
|
+
onClick: () => update(presetRange(preset, todayIso())),
|
|
1894
|
+
children: preset.label
|
|
1895
|
+
},
|
|
1896
|
+
preset.label
|
|
1897
|
+
);
|
|
1898
|
+
}) }),
|
|
1899
|
+
helperText3 && /* @__PURE__ */ jsx23("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
1900
|
+
]
|
|
1901
|
+
}
|
|
1902
|
+
);
|
|
1903
|
+
}
|
|
1904
|
+
);
|
|
1905
|
+
|
|
1769
1906
|
// src/components/Drawer/Drawer.tsx
|
|
1770
1907
|
import * as Dialog2 from "@radix-ui/react-dialog";
|
|
1771
1908
|
import { XIcon as XIcon5 } from "@bestow-ui/icons";
|
|
@@ -1783,7 +1920,7 @@ var overlay2 = "nmobyv0";
|
|
|
1783
1920
|
var title4 = "nmobyvv";
|
|
1784
1921
|
|
|
1785
1922
|
// src/components/Drawer/Drawer.tsx
|
|
1786
|
-
import { jsx as
|
|
1923
|
+
import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1787
1924
|
function Drawer({
|
|
1788
1925
|
open,
|
|
1789
1926
|
defaultOpen,
|
|
@@ -1802,11 +1939,11 @@ function Drawer({
|
|
|
1802
1939
|
const portal2 = usePortalProps();
|
|
1803
1940
|
const m = useMessages();
|
|
1804
1941
|
const focus = useReturnFocus(Boolean(trigger4));
|
|
1805
|
-
return /* @__PURE__ */
|
|
1806
|
-
trigger4 && /* @__PURE__ */
|
|
1807
|
-
/* @__PURE__ */
|
|
1808
|
-
/* @__PURE__ */
|
|
1809
|
-
/* @__PURE__ */
|
|
1942
|
+
return /* @__PURE__ */ jsxs20(Dialog2.Root, { open, defaultOpen, onOpenChange, children: [
|
|
1943
|
+
trigger4 && /* @__PURE__ */ jsx24(Dialog2.Trigger, { asChild: true, children: trigger4 }),
|
|
1944
|
+
/* @__PURE__ */ jsxs20(Dialog2.Portal, { children: [
|
|
1945
|
+
/* @__PURE__ */ jsx24(Dialog2.Overlay, { className: cx(portal2.className, overlay2), style: portal2.style }),
|
|
1946
|
+
/* @__PURE__ */ jsxs20(
|
|
1810
1947
|
Dialog2.Content,
|
|
1811
1948
|
{
|
|
1812
1949
|
className: cx(portal2.className, content8({ side, size }), className),
|
|
@@ -1817,15 +1954,15 @@ function Drawer({
|
|
|
1817
1954
|
onCloseAutoFocus: focus.onCloseAutoFocus,
|
|
1818
1955
|
...description7 ? {} : { "aria-describedby": void 0 },
|
|
1819
1956
|
children: [
|
|
1820
|
-
/* @__PURE__ */
|
|
1821
|
-
/* @__PURE__ */
|
|
1822
|
-
/* @__PURE__ */
|
|
1823
|
-
description7 && /* @__PURE__ */
|
|
1957
|
+
/* @__PURE__ */ jsxs20("div", { className: header5, children: [
|
|
1958
|
+
/* @__PURE__ */ jsxs20("div", { className: headings2, children: [
|
|
1959
|
+
/* @__PURE__ */ jsx24(Dialog2.Title, { className: title4, children: title6 }),
|
|
1960
|
+
description7 && /* @__PURE__ */ jsx24(Dialog2.Description, { className: description3, children: description7 })
|
|
1824
1961
|
] }),
|
|
1825
|
-
!hideCloseButton && /* @__PURE__ */
|
|
1962
|
+
!hideCloseButton && /* @__PURE__ */ jsx24(Dialog2.Close, { asChild: true, children: /* @__PURE__ */ jsx24(IconButton, { "aria-label": m.close ?? "\uB2EB\uAE30", size: "sm", className: closeButton4, children: /* @__PURE__ */ jsx24(XIcon5, {}) }) })
|
|
1826
1963
|
] }),
|
|
1827
|
-
children && /* @__PURE__ */
|
|
1828
|
-
footer5 && /* @__PURE__ */
|
|
1964
|
+
children && /* @__PURE__ */ jsx24("div", { className: body2, children }),
|
|
1965
|
+
footer5 && /* @__PURE__ */ jsx24("div", { className: footer2, children: footer5 })
|
|
1829
1966
|
]
|
|
1830
1967
|
}
|
|
1831
1968
|
)
|
|
@@ -1835,7 +1972,7 @@ function Drawer({
|
|
|
1835
1972
|
var DrawerClose = Dialog2.Close;
|
|
1836
1973
|
|
|
1837
1974
|
// src/components/ErrorSummary/ErrorSummary.tsx
|
|
1838
|
-
import { forwardRef as
|
|
1975
|
+
import { forwardRef as forwardRef21, useEffect as useEffect7, useId as useId8, useRef as useRef10 } from "react";
|
|
1839
1976
|
|
|
1840
1977
|
// src/components/ErrorSummary/ErrorSummary.css.ts
|
|
1841
1978
|
var link3 = "_1cdophv2";
|
|
@@ -1843,17 +1980,17 @@ var list3 = "_1cdophv1";
|
|
|
1843
1980
|
var root7 = "_1cdophv0";
|
|
1844
1981
|
|
|
1845
1982
|
// src/components/ErrorSummary/ErrorSummary.tsx
|
|
1846
|
-
import { jsx as
|
|
1847
|
-
var ErrorSummary = /* @__PURE__ */
|
|
1983
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1984
|
+
var ErrorSummary = /* @__PURE__ */ forwardRef21(function ErrorSummary2({ errors: errors2, title: title6, focusKey, className, ...rest }, ref) {
|
|
1848
1985
|
const m = useMessages();
|
|
1849
|
-
const titleId =
|
|
1986
|
+
const titleId = useId8();
|
|
1850
1987
|
const rootRef = useRef10(null);
|
|
1851
1988
|
const hasErrors = errors2.length > 0;
|
|
1852
1989
|
useEffect7(() => {
|
|
1853
1990
|
if (hasErrors) rootRef.current?.focus();
|
|
1854
1991
|
}, [focusKey, hasErrors]);
|
|
1855
1992
|
if (!hasErrors) return null;
|
|
1856
|
-
return /* @__PURE__ */
|
|
1993
|
+
return /* @__PURE__ */ jsx25(
|
|
1857
1994
|
"div",
|
|
1858
1995
|
{
|
|
1859
1996
|
ref: mergeRefs(ref, rootRef),
|
|
@@ -1861,12 +1998,12 @@ var ErrorSummary = /* @__PURE__ */ forwardRef20(function ErrorSummary2({ errors:
|
|
|
1861
1998
|
"aria-labelledby": titleId,
|
|
1862
1999
|
className: cx(root7, className),
|
|
1863
2000
|
...rest,
|
|
1864
|
-
children: /* @__PURE__ */
|
|
2001
|
+
children: /* @__PURE__ */ jsx25(
|
|
1865
2002
|
Alert,
|
|
1866
2003
|
{
|
|
1867
2004
|
color: "danger",
|
|
1868
|
-
title: /* @__PURE__ */
|
|
1869
|
-
children: /* @__PURE__ */
|
|
2005
|
+
title: /* @__PURE__ */ jsx25("span", { id: titleId, children: title6 ?? m.errorSummaryTitle?.(errors2.length) ?? `\uC785\uB825\uD55C \uB0B4\uC6A9\uC5D0 \uACE0\uCE60 \uACF3\uC774 ${errors2.length}\uAC1C \uC788\uC5B4\uC694` }),
|
|
2006
|
+
children: /* @__PURE__ */ jsx25("ul", { className: list3, children: errors2.map((error) => /* @__PURE__ */ jsx25("li", { children: /* @__PURE__ */ jsx25(
|
|
1870
2007
|
"a",
|
|
1871
2008
|
{
|
|
1872
2009
|
href: `#${error.id}`,
|
|
@@ -1884,7 +2021,7 @@ var ErrorSummary = /* @__PURE__ */ forwardRef20(function ErrorSummary2({ errors:
|
|
|
1884
2021
|
});
|
|
1885
2022
|
|
|
1886
2023
|
// src/components/FileUpload/FileUpload.tsx
|
|
1887
|
-
import { forwardRef as
|
|
2024
|
+
import { forwardRef as forwardRef22, useEffect as useEffect8, useId as useId9, useRef as useRef11, useState as useState9 } from "react";
|
|
1888
2025
|
import { FileIcon, UploadIcon, XIcon as XIcon6 } from "@bestow-ui/icons";
|
|
1889
2026
|
|
|
1890
2027
|
// src/components/FileUpload/FileUpload.css.ts
|
|
@@ -1900,7 +2037,8 @@ var list4 = "r2jefr4";
|
|
|
1900
2037
|
var root8 = "r2jefr0";
|
|
1901
2038
|
|
|
1902
2039
|
// src/components/FileUpload/FileUpload.tsx
|
|
1903
|
-
import { jsx as
|
|
2040
|
+
import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2041
|
+
var REMOVED_ANNOUNCE_DELAY = 500;
|
|
1904
2042
|
function formatSize(bytes) {
|
|
1905
2043
|
if (bytes < 1024) return `${bytes} B`;
|
|
1906
2044
|
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(bytes < 10 * 1024 ? 1 : 0)} KB`;
|
|
@@ -1916,7 +2054,7 @@ function matchesAccept(file, accept) {
|
|
|
1916
2054
|
}
|
|
1917
2055
|
var NO_FILES = [];
|
|
1918
2056
|
var sameFile = (a, b) => a.name === b.name && a.size === b.size && a.lastModified === b.lastModified;
|
|
1919
|
-
var FileUpload = /* @__PURE__ */
|
|
2057
|
+
var FileUpload = /* @__PURE__ */ forwardRef22(function FileUpload2(props, ref) {
|
|
1920
2058
|
const {
|
|
1921
2059
|
value: value3,
|
|
1922
2060
|
defaultValue,
|
|
@@ -1937,12 +2075,12 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
1937
2075
|
} = props;
|
|
1938
2076
|
const m = useMessages();
|
|
1939
2077
|
const isControlled = "value" in props;
|
|
1940
|
-
const [innerFiles, setInnerFiles] =
|
|
2078
|
+
const [innerFiles, setInnerFiles] = useState9(defaultValue ?? []);
|
|
1941
2079
|
const files = isControlled ? value3 ?? NO_FILES : innerFiles;
|
|
1942
|
-
const [rejections, setRejections] =
|
|
1943
|
-
const [announcement, setAnnouncement] =
|
|
1944
|
-
const [dragging, setDragging] =
|
|
1945
|
-
const generatedId =
|
|
2080
|
+
const [rejections, setRejections] = useState9([]);
|
|
2081
|
+
const [announcement, setAnnouncement] = useState9("");
|
|
2082
|
+
const [dragging, setDragging] = useState9(false);
|
|
2083
|
+
const generatedId = useId9();
|
|
1946
2084
|
const baseId = id ?? generatedId;
|
|
1947
2085
|
const labelId = label6 ? `${baseId}-label` : void 0;
|
|
1948
2086
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
@@ -1951,6 +2089,8 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
1951
2089
|
const selectButtonRef = useRef11(null);
|
|
1952
2090
|
const removeButtonRefs = useRef11([]);
|
|
1953
2091
|
const focusAfterRemove = useRef11(null);
|
|
2092
|
+
const announceTimer = useRef11(void 0);
|
|
2093
|
+
useEffect8(() => () => clearTimeout(announceTimer.current), []);
|
|
1954
2094
|
const selectLabel = m.fileSelect ?? "\uD30C\uC77C \uC120\uD0DD";
|
|
1955
2095
|
const reasonText = (rejection) => {
|
|
1956
2096
|
const fileName2 = rejection.file.name;
|
|
@@ -1959,10 +2099,16 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
1959
2099
|
if (rejection.reason === "type") return m.fileTypeNotAllowed?.(fileName2) ?? `${fileName2}: \uC62C\uB9B4 \uC218 \uC5C6\uB294 \uD615\uC2DD\uC774\uC5D0\uC694.`;
|
|
1960
2100
|
return m.fileTooMany?.(maxFiles ?? 0) ?? `\uD30C\uC77C\uC740 ${maxFiles}\uAC1C\uAE4C\uC9C0 \uC62C\uB9B4 \uC218 \uC788\uC5B4\uC694.`;
|
|
1961
2101
|
};
|
|
1962
|
-
const
|
|
2102
|
+
const announce = (message, delay = 0) => {
|
|
2103
|
+
clearTimeout(announceTimer.current);
|
|
2104
|
+
if (delay === 0) return setAnnouncement(message);
|
|
2105
|
+
setAnnouncement("");
|
|
2106
|
+
announceTimer.current = setTimeout(() => setAnnouncement(message), delay);
|
|
2107
|
+
};
|
|
2108
|
+
const commit = (next, message, delay = 0) => {
|
|
1963
2109
|
if (!isControlled) setInnerFiles(next);
|
|
1964
2110
|
onValueChange?.(next);
|
|
1965
|
-
|
|
2111
|
+
announce(message, delay);
|
|
1966
2112
|
};
|
|
1967
2113
|
const addFiles = (incoming) => {
|
|
1968
2114
|
if (disabled || incoming.length === 0) return;
|
|
@@ -1983,14 +2129,14 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
1983
2129
|
const summary = m.filesSelected?.(next.length) ?? `\uD30C\uC77C ${next.length}\uAC1C \uC120\uD0DD\uB428`;
|
|
1984
2130
|
const errors2 = [...new Set(rejected.map(reasonText))].join(" ");
|
|
1985
2131
|
if (accepted.length > 0) commit(next, [summary, errors2].filter(Boolean).join(" "));
|
|
1986
|
-
else
|
|
2132
|
+
else announce(errors2);
|
|
1987
2133
|
};
|
|
1988
2134
|
const removeAt = (index) => {
|
|
1989
2135
|
const removed = files[index];
|
|
1990
2136
|
const next = files.filter((_, i) => i !== index);
|
|
1991
2137
|
focusAfterRemove.current = Math.min(index, next.length - 1);
|
|
1992
2138
|
setRejections([]);
|
|
1993
|
-
commit(next, m.fileRemoved?.(removed.name) ?? `${removed.name} \uC0AD\uC81C\uB428
|
|
2139
|
+
commit(next, m.fileRemoved?.(removed.name) ?? `${removed.name} \uC0AD\uC81C\uB428`, REMOVED_ANNOUNCE_DELAY);
|
|
1994
2140
|
};
|
|
1995
2141
|
useEffect8(() => {
|
|
1996
2142
|
if (focusAfterRemove.current === null) return;
|
|
@@ -2013,12 +2159,12 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
2013
2159
|
event.preventDefault();
|
|
2014
2160
|
setDragging(over);
|
|
2015
2161
|
};
|
|
2016
|
-
return /* @__PURE__ */
|
|
2017
|
-
label6 && /* @__PURE__ */
|
|
2162
|
+
return /* @__PURE__ */ jsxs21("div", { ref, className: cx(field, root8, className), children: [
|
|
2163
|
+
label6 && /* @__PURE__ */ jsxs21("span", { id: labelId, className: label, children: [
|
|
2018
2164
|
label6,
|
|
2019
|
-
required && /* @__PURE__ */
|
|
2165
|
+
required && /* @__PURE__ */ jsx26("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2020
2166
|
] }),
|
|
2021
|
-
/* @__PURE__ */
|
|
2167
|
+
/* @__PURE__ */ jsxs21(
|
|
2022
2168
|
"div",
|
|
2023
2169
|
{
|
|
2024
2170
|
role: "group",
|
|
@@ -2038,8 +2184,8 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
2038
2184
|
if (!disabled) addFiles(Array.from(event.dataTransfer.files));
|
|
2039
2185
|
},
|
|
2040
2186
|
children: [
|
|
2041
|
-
/* @__PURE__ */
|
|
2042
|
-
/* @__PURE__ */
|
|
2187
|
+
/* @__PURE__ */ jsx26("span", { className: dropIcon, "aria-hidden": true, children: /* @__PURE__ */ jsx26(UploadIcon, { size: 24 }) }),
|
|
2188
|
+
/* @__PURE__ */ jsx26(
|
|
2043
2189
|
Button,
|
|
2044
2190
|
{
|
|
2045
2191
|
ref: selectButtonRef,
|
|
@@ -2052,8 +2198,8 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
2052
2198
|
children: selectLabel
|
|
2053
2199
|
}
|
|
2054
2200
|
),
|
|
2055
|
-
/* @__PURE__ */
|
|
2056
|
-
/* @__PURE__ */
|
|
2201
|
+
/* @__PURE__ */ jsx26("span", { className: dropHint, children: m.fileDropHint ?? "\uB610\uB294 \uC5EC\uAE30\uB85C \uB04C\uC5B4\uB2E4 \uB193\uC73C\uC138\uC694" }),
|
|
2202
|
+
/* @__PURE__ */ jsx26(
|
|
2057
2203
|
"input",
|
|
2058
2204
|
{
|
|
2059
2205
|
ref: inputRef,
|
|
@@ -2076,11 +2222,11 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
2076
2222
|
]
|
|
2077
2223
|
}
|
|
2078
2224
|
),
|
|
2079
|
-
files.length > 0 && /* @__PURE__ */
|
|
2080
|
-
/* @__PURE__ */
|
|
2081
|
-
/* @__PURE__ */
|
|
2082
|
-
/* @__PURE__ */
|
|
2083
|
-
/* @__PURE__ */
|
|
2225
|
+
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: [
|
|
2226
|
+
/* @__PURE__ */ jsx26("span", { className: fileIcon, "aria-hidden": true, children: /* @__PURE__ */ jsx26(FileIcon, { size: 16 }) }),
|
|
2227
|
+
/* @__PURE__ */ jsx26("span", { className: fileName, children: file.name }),
|
|
2228
|
+
/* @__PURE__ */ jsx26("span", { id: `${baseId}-size-${index}`, className: fileSize, children: formatSize(file.size) }),
|
|
2229
|
+
/* @__PURE__ */ jsx26(
|
|
2084
2230
|
IconButton,
|
|
2085
2231
|
{
|
|
2086
2232
|
ref: (node) => {
|
|
@@ -2088,22 +2234,23 @@ var FileUpload = /* @__PURE__ */ forwardRef21(function FileUpload2(props, ref) {
|
|
|
2088
2234
|
},
|
|
2089
2235
|
size: "sm",
|
|
2090
2236
|
"aria-label": m.fileRemove?.(file.name) ?? `${file.name} \uC0AD\uC81C`,
|
|
2237
|
+
"aria-describedby": `${baseId}-size-${index}`,
|
|
2091
2238
|
disabled,
|
|
2092
2239
|
onClick: () => removeAt(index),
|
|
2093
|
-
children: /* @__PURE__ */
|
|
2240
|
+
children: /* @__PURE__ */ jsx26(XIcon6, {})
|
|
2094
2241
|
}
|
|
2095
2242
|
)
|
|
2096
2243
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }),
|
|
2097
|
-
rejections.length > 0 && /* @__PURE__ */
|
|
2098
|
-
helperText3 && /* @__PURE__ */
|
|
2099
|
-
/* @__PURE__ */
|
|
2244
|
+
rejections.length > 0 && /* @__PURE__ */ jsx26("ul", { id: errorsId, className: errors, children: [...new Set(rejections.map(reasonText))].map((text3) => /* @__PURE__ */ jsx26("li", { children: text3 }, text3)) }),
|
|
2245
|
+
helperText3 && /* @__PURE__ */ jsx26("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
2246
|
+
/* @__PURE__ */ jsx26("div", { role: "status", className: visuallyHidden, children: announcement })
|
|
2100
2247
|
] });
|
|
2101
2248
|
});
|
|
2102
2249
|
|
|
2103
2250
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
2104
2251
|
import * as RadixMenu from "@radix-ui/react-dropdown-menu";
|
|
2105
2252
|
import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon3, MinusIcon } from "@bestow-ui/icons";
|
|
2106
|
-
import { forwardRef as
|
|
2253
|
+
import { forwardRef as forwardRef23 } from "react";
|
|
2107
2254
|
|
|
2108
2255
|
// src/components/DropdownMenu/DropdownMenu.css.ts
|
|
2109
2256
|
var content9 = "_1d7ahux0";
|
|
@@ -2114,20 +2261,20 @@ var indicatorInner = "_1d7ahux8";
|
|
|
2114
2261
|
var item6 = "_1d7ahux1";
|
|
2115
2262
|
var label2 = "_1d7ahux5";
|
|
2116
2263
|
var radioDot = "_1d7ahux9";
|
|
2117
|
-
var
|
|
2264
|
+
var separator3 = "_1d7ahux6";
|
|
2118
2265
|
var shortcut = "_1d7ahux4";
|
|
2119
2266
|
var subChevron = "_1d7ahuxb";
|
|
2120
2267
|
var subTrigger = "_1d7ahuxa";
|
|
2121
2268
|
|
|
2122
2269
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
2123
|
-
import { jsx as
|
|
2270
|
+
import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2124
2271
|
var DropdownMenu = RadixMenu.Root;
|
|
2125
2272
|
var DropdownMenuTrigger = RadixMenu.Trigger;
|
|
2126
2273
|
var DropdownMenuGroup = RadixMenu.Group;
|
|
2127
|
-
var DropdownMenuContent = /* @__PURE__ */
|
|
2274
|
+
var DropdownMenuContent = /* @__PURE__ */ forwardRef23(
|
|
2128
2275
|
function DropdownMenuContent2({ className, style, side = "bottom", align = "start", sideOffset = 4, collisionPadding = 8, ...rest }, ref) {
|
|
2129
2276
|
const portal2 = usePortalProps();
|
|
2130
|
-
return /* @__PURE__ */
|
|
2277
|
+
return /* @__PURE__ */ jsx27(RadixMenu.Portal, { children: /* @__PURE__ */ jsx27(
|
|
2131
2278
|
RadixMenu.Content,
|
|
2132
2279
|
{
|
|
2133
2280
|
ref,
|
|
@@ -2142,56 +2289,56 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef22(
|
|
|
2142
2289
|
) });
|
|
2143
2290
|
}
|
|
2144
2291
|
);
|
|
2145
|
-
var DropdownMenuItem = /* @__PURE__ */
|
|
2292
|
+
var DropdownMenuItem = /* @__PURE__ */ forwardRef23(
|
|
2146
2293
|
function DropdownMenuItem2({ icon: icon6, shortcut: shortcut2, color = "neutral", className, children, ...rest }, ref) {
|
|
2147
|
-
return /* @__PURE__ */
|
|
2148
|
-
icon6 && /* @__PURE__ */
|
|
2294
|
+
return /* @__PURE__ */ jsxs22(RadixMenu.Item, { ref, className: cx(item6, color === "danger" && danger, className), ...rest, children: [
|
|
2295
|
+
icon6 && /* @__PURE__ */ jsx27("span", { className: icon4, "aria-hidden": true, children: icon6 }),
|
|
2149
2296
|
children,
|
|
2150
|
-
shortcut2 && /* @__PURE__ */
|
|
2297
|
+
shortcut2 && /* @__PURE__ */ jsx27("span", { className: shortcut, "aria-hidden": true, children: shortcut2 })
|
|
2151
2298
|
] });
|
|
2152
2299
|
}
|
|
2153
2300
|
);
|
|
2154
|
-
var DropdownMenuLabel = /* @__PURE__ */
|
|
2301
|
+
var DropdownMenuLabel = /* @__PURE__ */ forwardRef23(
|
|
2155
2302
|
function DropdownMenuLabel2({ className, ...rest }, ref) {
|
|
2156
|
-
return /* @__PURE__ */
|
|
2303
|
+
return /* @__PURE__ */ jsx27(RadixMenu.Label, { ref, className: cx(label2, className), ...rest });
|
|
2157
2304
|
}
|
|
2158
2305
|
);
|
|
2159
|
-
var DropdownMenuSeparator = /* @__PURE__ */
|
|
2306
|
+
var DropdownMenuSeparator = /* @__PURE__ */ forwardRef23(
|
|
2160
2307
|
function DropdownMenuSeparator2({ className, ...rest }, ref) {
|
|
2161
|
-
return /* @__PURE__ */
|
|
2308
|
+
return /* @__PURE__ */ jsx27(RadixMenu.Separator, { ref, className: cx(separator3, className), ...rest });
|
|
2162
2309
|
}
|
|
2163
2310
|
);
|
|
2164
|
-
var DropdownMenuCheckboxItem = /* @__PURE__ */
|
|
2311
|
+
var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef23(
|
|
2165
2312
|
function DropdownMenuCheckboxItem2({ className, children, ...rest }, ref) {
|
|
2166
|
-
return /* @__PURE__ */
|
|
2167
|
-
/* @__PURE__ */
|
|
2313
|
+
return /* @__PURE__ */ jsxs22(RadixMenu.CheckboxItem, { ref, className: cx(item6, className), ...rest, children: [
|
|
2314
|
+
/* @__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 }) }) }),
|
|
2168
2315
|
children
|
|
2169
2316
|
] });
|
|
2170
2317
|
}
|
|
2171
2318
|
);
|
|
2172
2319
|
var DropdownMenuRadioGroup = RadixMenu.RadioGroup;
|
|
2173
|
-
var DropdownMenuRadioItem = /* @__PURE__ */
|
|
2320
|
+
var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef23(
|
|
2174
2321
|
function DropdownMenuRadioItem2({ className, children, ...rest }, ref) {
|
|
2175
|
-
return /* @__PURE__ */
|
|
2176
|
-
/* @__PURE__ */
|
|
2322
|
+
return /* @__PURE__ */ jsxs22(RadixMenu.RadioItem, { ref, className: cx(item6, className), ...rest, children: [
|
|
2323
|
+
/* @__PURE__ */ jsx27("span", { className: indicator, "aria-hidden": true, children: /* @__PURE__ */ jsx27(RadixMenu.ItemIndicator, { className: indicatorInner, children: /* @__PURE__ */ jsx27("span", { className: radioDot }) }) }),
|
|
2177
2324
|
children
|
|
2178
2325
|
] });
|
|
2179
2326
|
}
|
|
2180
2327
|
);
|
|
2181
2328
|
var DropdownMenuSub = RadixMenu.Sub;
|
|
2182
|
-
var DropdownMenuSubTrigger = /* @__PURE__ */
|
|
2329
|
+
var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef23(
|
|
2183
2330
|
function DropdownMenuSubTrigger2({ icon: icon6, className, children, ...rest }, ref) {
|
|
2184
|
-
return /* @__PURE__ */
|
|
2185
|
-
icon6 && /* @__PURE__ */
|
|
2331
|
+
return /* @__PURE__ */ jsxs22(RadixMenu.SubTrigger, { ref, className: cx(item6, subTrigger, className), ...rest, children: [
|
|
2332
|
+
icon6 && /* @__PURE__ */ jsx27("span", { className: icon4, "aria-hidden": true, children: icon6 }),
|
|
2186
2333
|
children,
|
|
2187
|
-
/* @__PURE__ */
|
|
2334
|
+
/* @__PURE__ */ jsx27("span", { className: subChevron, "aria-hidden": true, children: /* @__PURE__ */ jsx27(ChevronRightIcon3, { size: 16 }) })
|
|
2188
2335
|
] });
|
|
2189
2336
|
}
|
|
2190
2337
|
);
|
|
2191
|
-
var DropdownMenuSubContent = /* @__PURE__ */
|
|
2338
|
+
var DropdownMenuSubContent = /* @__PURE__ */ forwardRef23(
|
|
2192
2339
|
function DropdownMenuSubContent2({ className, style, sideOffset = 4, alignOffset = -5, collisionPadding = 8, ...rest }, ref) {
|
|
2193
2340
|
const portal2 = usePortalProps();
|
|
2194
|
-
return /* @__PURE__ */
|
|
2341
|
+
return /* @__PURE__ */ jsx27(RadixMenu.Portal, { children: /* @__PURE__ */ jsx27(
|
|
2195
2342
|
RadixMenu.SubContent,
|
|
2196
2343
|
{
|
|
2197
2344
|
ref,
|
|
@@ -2207,7 +2354,7 @@ var DropdownMenuSubContent = /* @__PURE__ */ forwardRef22(
|
|
|
2207
2354
|
);
|
|
2208
2355
|
|
|
2209
2356
|
// src/components/NumberInput/NumberInput.tsx
|
|
2210
|
-
import { forwardRef as
|
|
2357
|
+
import { forwardRef as forwardRef24, useEffect as useEffect9, useId as useId10, useRef as useRef12, useState as useState10 } from "react";
|
|
2211
2358
|
import { MinusIcon as MinusIcon2, PlusIcon } from "@bestow-ui/icons";
|
|
2212
2359
|
|
|
2213
2360
|
// src/components/NumberInput/NumberInput.css.ts
|
|
@@ -2218,12 +2365,12 @@ var stepper = /* @__PURE__ */ _7a46811({ defaultClassName: "_1vq2qhv3", variantC
|
|
|
2218
2365
|
var unit = "_1vq2qhv2";
|
|
2219
2366
|
|
|
2220
2367
|
// src/components/NumberInput/NumberInput.tsx
|
|
2221
|
-
import { Fragment as Fragment5, jsx as
|
|
2368
|
+
import { Fragment as Fragment5, jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2222
2369
|
var MAX_DIGITS2 = 15;
|
|
2223
2370
|
var isMeaningful = (char) => /[\d.-]/.test(char);
|
|
2224
2371
|
var decimalsOf = (n) => Number.isFinite(n) ? String(n).split(".")[1]?.length ?? 0 : 0;
|
|
2225
2372
|
var parse = (raw) => /\d/.test(raw) ? Number(raw) : null;
|
|
2226
|
-
var NumberInput = /* @__PURE__ */
|
|
2373
|
+
var NumberInput = /* @__PURE__ */ forwardRef24(
|
|
2227
2374
|
function NumberInput2(props, ref) {
|
|
2228
2375
|
const {
|
|
2229
2376
|
value: value3,
|
|
@@ -2250,7 +2397,7 @@ var NumberInput = /* @__PURE__ */ forwardRef23(
|
|
|
2250
2397
|
const isControlled = "value" in props;
|
|
2251
2398
|
const m = useMessages();
|
|
2252
2399
|
const inputRef = useRef12(null);
|
|
2253
|
-
const generatedId =
|
|
2400
|
+
const generatedId = useId10();
|
|
2254
2401
|
const inputId = id ?? generatedId;
|
|
2255
2402
|
const precision = Math.max(0, precisionProp ?? decimalsOf(step2));
|
|
2256
2403
|
const allowNegative = min === void 0 || min < 0;
|
|
@@ -2276,7 +2423,7 @@ var NumberInput = /* @__PURE__ */ forwardRef23(
|
|
|
2276
2423
|
lastEmitted.current = next;
|
|
2277
2424
|
onValueChange?.(next);
|
|
2278
2425
|
};
|
|
2279
|
-
const
|
|
2426
|
+
const field4 = useFormattedInput({
|
|
2280
2427
|
isControlled: false,
|
|
2281
2428
|
value: void 0,
|
|
2282
2429
|
defaultValue: toRaw(isControlled ? value3 : defaultValue),
|
|
@@ -2286,17 +2433,20 @@ var NumberInput = /* @__PURE__ */ forwardRef23(
|
|
|
2286
2433
|
isMeaningful,
|
|
2287
2434
|
inputRef
|
|
2288
2435
|
});
|
|
2289
|
-
const { setRaw } =
|
|
2436
|
+
const { setRaw } = field4;
|
|
2290
2437
|
useEffect9(() => {
|
|
2291
2438
|
if (!isControlled) return;
|
|
2292
2439
|
const next = value3 ?? null;
|
|
2293
2440
|
lastEmitted.current = next;
|
|
2294
|
-
if (parse(
|
|
2441
|
+
if (parse(field4.raw) !== next) setRaw(toRaw(next));
|
|
2295
2442
|
}, [value3]);
|
|
2296
|
-
const current2 = parse(
|
|
2297
|
-
const
|
|
2443
|
+
const current2 = parse(field4.raw);
|
|
2444
|
+
const valueText = (n) => `${format2(toRaw(n))}${unit2 ?? ""}`;
|
|
2445
|
+
const [announcement, setAnnouncement] = useState10("");
|
|
2446
|
+
const setValue = (next, announce = true) => {
|
|
2298
2447
|
setRaw(toRaw(next));
|
|
2299
2448
|
emit(next);
|
|
2449
|
+
if (announce) setAnnouncement(valueText(next));
|
|
2300
2450
|
};
|
|
2301
2451
|
const stepBy = (delta) => {
|
|
2302
2452
|
if (disabled || readOnly) return;
|
|
@@ -2323,10 +2473,10 @@ var NumberInput = /* @__PURE__ */ forwardRef23(
|
|
|
2323
2473
|
event.preventDefault();
|
|
2324
2474
|
setValue(max);
|
|
2325
2475
|
} else {
|
|
2326
|
-
|
|
2476
|
+
field4.onKeyDown(event);
|
|
2327
2477
|
}
|
|
2328
2478
|
};
|
|
2329
|
-
const stepper2 = (direction) => /* @__PURE__ */
|
|
2479
|
+
const stepper2 = (direction) => /* @__PURE__ */ jsx28(
|
|
2330
2480
|
IconButton,
|
|
2331
2481
|
{
|
|
2332
2482
|
size: "sm",
|
|
@@ -2337,11 +2487,11 @@ var NumberInput = /* @__PURE__ */ forwardRef23(
|
|
|
2337
2487
|
onMouseDown: (event) => event.preventDefault(),
|
|
2338
2488
|
onClick: () => stepBy(direction * step2),
|
|
2339
2489
|
className: stepper({ size }),
|
|
2340
|
-
children: direction < 0 ? /* @__PURE__ */
|
|
2490
|
+
children: direction < 0 ? /* @__PURE__ */ jsx28(MinusIcon2, {}) : /* @__PURE__ */ jsx28(PlusIcon, {})
|
|
2341
2491
|
}
|
|
2342
2492
|
);
|
|
2343
|
-
return /* @__PURE__ */
|
|
2344
|
-
/* @__PURE__ */
|
|
2493
|
+
return /* @__PURE__ */ jsxs23(Fragment5, { children: [
|
|
2494
|
+
/* @__PURE__ */ jsx28(
|
|
2345
2495
|
TextField,
|
|
2346
2496
|
{
|
|
2347
2497
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -2352,35 +2502,40 @@ var NumberInput = /* @__PURE__ */ forwardRef23(
|
|
|
2352
2502
|
"aria-valuenow": current2 ?? void 0,
|
|
2353
2503
|
"aria-valuemin": min,
|
|
2354
2504
|
"aria-valuemax": max,
|
|
2355
|
-
"aria-valuetext": current2 === null ? void 0 :
|
|
2356
|
-
value:
|
|
2357
|
-
onChange:
|
|
2505
|
+
"aria-valuetext": current2 === null ? void 0 : valueText(current2),
|
|
2506
|
+
value: field4.display,
|
|
2507
|
+
onChange: (event) => {
|
|
2508
|
+
setAnnouncement("");
|
|
2509
|
+
field4.onChange(event);
|
|
2510
|
+
},
|
|
2358
2511
|
onKeyDown: handleKeyDown,
|
|
2359
2512
|
onBlur: (event) => {
|
|
2360
|
-
if (current2 !== null && clamp(current2) !== current2) setValue(clamp(current2));
|
|
2361
|
-
else if (current2 === null &&
|
|
2513
|
+
if (current2 !== null && clamp(current2) !== current2) setValue(clamp(current2), false);
|
|
2514
|
+
else if (current2 === null && field4.raw !== "") setRaw("");
|
|
2515
|
+
setAnnouncement("");
|
|
2362
2516
|
onBlur?.(event);
|
|
2363
2517
|
},
|
|
2364
2518
|
size,
|
|
2365
2519
|
disabled,
|
|
2366
2520
|
readOnly,
|
|
2367
2521
|
startAdornment: hideStepper ? void 0 : stepper2(-1),
|
|
2368
|
-
endAdornment: unit2 || !hideStepper ? /* @__PURE__ */
|
|
2369
|
-
unit2 && /* @__PURE__ */
|
|
2522
|
+
endAdornment: unit2 || !hideStepper ? /* @__PURE__ */ jsxs23("span", { className: end, children: [
|
|
2523
|
+
unit2 && /* @__PURE__ */ jsx28("span", { className: unit, children: unit2 }),
|
|
2370
2524
|
!hideStepper && stepper2(1)
|
|
2371
2525
|
] }) : void 0,
|
|
2372
2526
|
className: cx(input4, className),
|
|
2373
2527
|
...rest
|
|
2374
2528
|
}
|
|
2375
2529
|
),
|
|
2376
|
-
name && /* @__PURE__ */
|
|
2530
|
+
name && /* @__PURE__ */ jsx28("input", { type: "hidden", name, value: current2 === null ? "" : String(current2) }),
|
|
2531
|
+
/* @__PURE__ */ jsx28("span", { "aria-live": "assertive", "aria-atomic": "true", className: visuallyHidden, children: announcement })
|
|
2377
2532
|
] });
|
|
2378
2533
|
}
|
|
2379
2534
|
);
|
|
2380
2535
|
|
|
2381
2536
|
// src/components/Pagination/Pagination.tsx
|
|
2382
2537
|
import { ChevronLeftIcon as ChevronLeftIcon2, ChevronRightIcon as ChevronRightIcon4 } from "@bestow-ui/icons";
|
|
2383
|
-
import { forwardRef as
|
|
2538
|
+
import { forwardRef as forwardRef25, useState as useState11 } from "react";
|
|
2384
2539
|
|
|
2385
2540
|
// src/components/Pagination/getPaginationItems.ts
|
|
2386
2541
|
var range = (start, end2) => end2 < start ? [] : Array.from({ length: end2 - start + 1 }, (_, i) => start + i);
|
|
@@ -2413,8 +2568,8 @@ var item7 = /* @__PURE__ */ _7a46812({ defaultClassName: "_1iraoak1", variantCla
|
|
|
2413
2568
|
var list5 = "_1iraoak0";
|
|
2414
2569
|
|
|
2415
2570
|
// src/components/Pagination/Pagination.tsx
|
|
2416
|
-
import { jsx as
|
|
2417
|
-
var Pagination = /* @__PURE__ */
|
|
2571
|
+
import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2572
|
+
var Pagination = /* @__PURE__ */ forwardRef25(function Pagination2({
|
|
2418
2573
|
totalPages,
|
|
2419
2574
|
page: pageProp,
|
|
2420
2575
|
defaultPage = 1,
|
|
@@ -2427,7 +2582,7 @@ var Pagination = /* @__PURE__ */ forwardRef24(function Pagination2({
|
|
|
2427
2582
|
"aria-label": ariaLabelProp,
|
|
2428
2583
|
...rest
|
|
2429
2584
|
}, ref) {
|
|
2430
|
-
const [uncontrolledPage, setUncontrolledPage] =
|
|
2585
|
+
const [uncontrolledPage, setUncontrolledPage] = useState11(defaultPage);
|
|
2431
2586
|
const m = useMessages();
|
|
2432
2587
|
const ariaLabel = ariaLabelProp ?? m.pagination ?? "\uD398\uC774\uC9C0 \uD0D0\uC0C9";
|
|
2433
2588
|
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`);
|
|
@@ -2439,8 +2594,8 @@ var Pagination = /* @__PURE__ */ forwardRef24(function Pagination2({
|
|
|
2439
2594
|
onPageChange?.(next);
|
|
2440
2595
|
};
|
|
2441
2596
|
const itemClass = item7({ size });
|
|
2442
|
-
return /* @__PURE__ */
|
|
2443
|
-
/* @__PURE__ */
|
|
2597
|
+
return /* @__PURE__ */ jsx29("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsxs24("ul", { className: list5, children: [
|
|
2598
|
+
/* @__PURE__ */ jsx29("li", { children: /* @__PURE__ */ jsx29(
|
|
2444
2599
|
"button",
|
|
2445
2600
|
{
|
|
2446
2601
|
type: "button",
|
|
@@ -2448,11 +2603,11 @@ var Pagination = /* @__PURE__ */ forwardRef24(function Pagination2({
|
|
|
2448
2603
|
"aria-label": getItemLabel("previous", page - 1),
|
|
2449
2604
|
disabled: page <= 1,
|
|
2450
2605
|
onClick: () => goTo(page - 1),
|
|
2451
|
-
children: /* @__PURE__ */
|
|
2606
|
+
children: /* @__PURE__ */ jsx29(ChevronLeftIcon2, { size: 16 })
|
|
2452
2607
|
}
|
|
2453
2608
|
) }),
|
|
2454
2609
|
getPaginationItems(page, totalPages, siblingCount, boundaryCount).map(
|
|
2455
|
-
(item9) => typeof item9 === "number" ? /* @__PURE__ */
|
|
2610
|
+
(item9) => typeof item9 === "number" ? /* @__PURE__ */ jsx29("li", { children: /* @__PURE__ */ jsx29(
|
|
2456
2611
|
"button",
|
|
2457
2612
|
{
|
|
2458
2613
|
type: "button",
|
|
@@ -2462,9 +2617,9 @@ var Pagination = /* @__PURE__ */ forwardRef24(function Pagination2({
|
|
|
2462
2617
|
onClick: () => goTo(item9),
|
|
2463
2618
|
children: item9
|
|
2464
2619
|
}
|
|
2465
|
-
) }, item9) : /* @__PURE__ */
|
|
2620
|
+
) }, item9) : /* @__PURE__ */ jsx29("li", { "aria-hidden": true, className: cx(itemClass, ellipsis), children: "\u2026" }, item9)
|
|
2466
2621
|
),
|
|
2467
|
-
/* @__PURE__ */
|
|
2622
|
+
/* @__PURE__ */ jsx29("li", { children: /* @__PURE__ */ jsx29(
|
|
2468
2623
|
"button",
|
|
2469
2624
|
{
|
|
2470
2625
|
type: "button",
|
|
@@ -2472,21 +2627,21 @@ var Pagination = /* @__PURE__ */ forwardRef24(function Pagination2({
|
|
|
2472
2627
|
"aria-label": getItemLabel("next", page + 1),
|
|
2473
2628
|
disabled: page >= totalPages,
|
|
2474
2629
|
onClick: () => goTo(page + 1),
|
|
2475
|
-
children: /* @__PURE__ */
|
|
2630
|
+
children: /* @__PURE__ */ jsx29(ChevronRightIcon4, { size: 16 })
|
|
2476
2631
|
}
|
|
2477
2632
|
) })
|
|
2478
2633
|
] }) });
|
|
2479
2634
|
});
|
|
2480
2635
|
|
|
2481
2636
|
// src/components/PhoneNumberInput/PhoneNumberInput.tsx
|
|
2482
|
-
import { forwardRef as
|
|
2483
|
-
import { jsx as
|
|
2637
|
+
import { forwardRef as forwardRef26, useRef as useRef13 } from "react";
|
|
2638
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2484
2639
|
var sanitize3 = (input6) => {
|
|
2485
2640
|
const digits = input6.replace(/\D/g, "");
|
|
2486
2641
|
return digits.slice(0, phoneNumberMaxDigits(digits));
|
|
2487
2642
|
};
|
|
2488
2643
|
var isDigit4 = (char) => /\d/.test(char);
|
|
2489
|
-
var PhoneNumberInput = /* @__PURE__ */
|
|
2644
|
+
var PhoneNumberInput = /* @__PURE__ */ forwardRef26(
|
|
2490
2645
|
function PhoneNumberInput2(props, ref) {
|
|
2491
2646
|
const {
|
|
2492
2647
|
value: value3,
|
|
@@ -2500,7 +2655,7 @@ var PhoneNumberInput = /* @__PURE__ */ forwardRef25(
|
|
|
2500
2655
|
const inputRef = useRef13(null);
|
|
2501
2656
|
const m = useMessages();
|
|
2502
2657
|
const label6 = labelProp ?? m.phoneNumber ?? "\uD734\uB300\uD3F0 \uBC88\uD638";
|
|
2503
|
-
const
|
|
2658
|
+
const field4 = useFormattedInput({
|
|
2504
2659
|
isControlled: "value" in props,
|
|
2505
2660
|
value: value3,
|
|
2506
2661
|
defaultValue,
|
|
@@ -2510,7 +2665,7 @@ var PhoneNumberInput = /* @__PURE__ */ forwardRef25(
|
|
|
2510
2665
|
isMeaningful: isDigit4,
|
|
2511
2666
|
inputRef
|
|
2512
2667
|
});
|
|
2513
|
-
return /* @__PURE__ */
|
|
2668
|
+
return /* @__PURE__ */ jsx30(
|
|
2514
2669
|
TextField,
|
|
2515
2670
|
{
|
|
2516
2671
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -2519,10 +2674,10 @@ var PhoneNumberInput = /* @__PURE__ */ forwardRef25(
|
|
|
2519
2674
|
type: "tel",
|
|
2520
2675
|
inputMode: "tel",
|
|
2521
2676
|
autoComplete: "tel-national",
|
|
2522
|
-
value:
|
|
2523
|
-
onChange:
|
|
2677
|
+
value: field4.display,
|
|
2678
|
+
onChange: field4.onChange,
|
|
2524
2679
|
onKeyDown: (event) => {
|
|
2525
|
-
|
|
2680
|
+
field4.onKeyDown(event);
|
|
2526
2681
|
onKeyDown?.(event);
|
|
2527
2682
|
},
|
|
2528
2683
|
...rest
|
|
@@ -2532,7 +2687,7 @@ var PhoneNumberInput = /* @__PURE__ */ forwardRef25(
|
|
|
2532
2687
|
);
|
|
2533
2688
|
|
|
2534
2689
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
2535
|
-
import { forwardRef as
|
|
2690
|
+
import { forwardRef as forwardRef27, useId as useId11, useState as useState12 } from "react";
|
|
2536
2691
|
|
|
2537
2692
|
// src/components/RadioGroup/RadioGroup.css.ts
|
|
2538
2693
|
import { createRuntimeFn as _7a46813 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -2545,8 +2700,8 @@ var radio = /* @__PURE__ */ _7a46813({ defaultClassName: "_1w9iwjm7", variantCla
|
|
|
2545
2700
|
var text = "_1w9iwjma";
|
|
2546
2701
|
|
|
2547
2702
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
2548
|
-
import { jsx as
|
|
2549
|
-
var RadioGroup2 = /* @__PURE__ */
|
|
2703
|
+
import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2704
|
+
var RadioGroup2 = /* @__PURE__ */ forwardRef27(function RadioGroup3(props, ref) {
|
|
2550
2705
|
const {
|
|
2551
2706
|
options,
|
|
2552
2707
|
value: value3,
|
|
@@ -2565,9 +2720,9 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef26(function RadioGroup3(props, ref)
|
|
|
2565
2720
|
className
|
|
2566
2721
|
} = props;
|
|
2567
2722
|
const isControlled = "value" in props;
|
|
2568
|
-
const [innerValue, setInnerValue] =
|
|
2723
|
+
const [innerValue, setInnerValue] = useState12(defaultValue ?? "");
|
|
2569
2724
|
const current2 = isControlled ? value3 ?? "" : innerValue;
|
|
2570
|
-
const generatedId =
|
|
2725
|
+
const generatedId = useId11();
|
|
2571
2726
|
const baseId = id ?? generatedId;
|
|
2572
2727
|
const labelId = label6 ? `${baseId}-label` : void 0;
|
|
2573
2728
|
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
@@ -2578,12 +2733,12 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef26(function RadioGroup3(props, ref)
|
|
|
2578
2733
|
if (!isControlled) setInnerValue(next);
|
|
2579
2734
|
onValueChange?.(next);
|
|
2580
2735
|
};
|
|
2581
|
-
return /* @__PURE__ */
|
|
2582
|
-
label6 && /* @__PURE__ */
|
|
2736
|
+
return /* @__PURE__ */ jsxs25("div", { className: cx(field, className), children: [
|
|
2737
|
+
label6 && /* @__PURE__ */ jsxs25("span", { id: labelId, className: cx(label, groupLabel), children: [
|
|
2583
2738
|
label6,
|
|
2584
|
-
required && /* @__PURE__ */
|
|
2739
|
+
required && /* @__PURE__ */ jsx31("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2585
2740
|
] }),
|
|
2586
|
-
/* @__PURE__ */
|
|
2741
|
+
/* @__PURE__ */ jsx31(
|
|
2587
2742
|
"div",
|
|
2588
2743
|
{
|
|
2589
2744
|
ref,
|
|
@@ -2601,8 +2756,8 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef26(function RadioGroup3(props, ref)
|
|
|
2601
2756
|
const descriptionId = option2.description ? `${itemId}-description` : void 0;
|
|
2602
2757
|
const itemDisabled = disabled || option2.disabled;
|
|
2603
2758
|
const checked = option2.value === current2;
|
|
2604
|
-
return /* @__PURE__ */
|
|
2605
|
-
/* @__PURE__ */
|
|
2759
|
+
return /* @__PURE__ */ jsxs25("div", { className: option({ size }), "data-disabled": itemDisabled || void 0, children: [
|
|
2760
|
+
/* @__PURE__ */ jsx31(
|
|
2606
2761
|
"input",
|
|
2607
2762
|
{
|
|
2608
2763
|
type: "radio",
|
|
@@ -2619,20 +2774,20 @@ var RadioGroup2 = /* @__PURE__ */ forwardRef26(function RadioGroup3(props, ref)
|
|
|
2619
2774
|
className: radio({ size })
|
|
2620
2775
|
}
|
|
2621
2776
|
),
|
|
2622
|
-
/* @__PURE__ */
|
|
2623
|
-
/* @__PURE__ */
|
|
2624
|
-
option2.description && /* @__PURE__ */
|
|
2777
|
+
/* @__PURE__ */ jsxs25("span", { className: text, children: [
|
|
2778
|
+
/* @__PURE__ */ jsx31("label", { htmlFor: itemId, className: labelText, children: option2.label }),
|
|
2779
|
+
option2.description && /* @__PURE__ */ jsx31("span", { id: descriptionId, className: description4, children: option2.description })
|
|
2625
2780
|
] })
|
|
2626
2781
|
] }, option2.value);
|
|
2627
2782
|
})
|
|
2628
2783
|
}
|
|
2629
2784
|
),
|
|
2630
|
-
helperText3 && /* @__PURE__ */
|
|
2785
|
+
helperText3 && /* @__PURE__ */ jsx31("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
2631
2786
|
] });
|
|
2632
2787
|
});
|
|
2633
2788
|
|
|
2634
2789
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2635
|
-
import { forwardRef as
|
|
2790
|
+
import { forwardRef as forwardRef28, useId as useId12, useRef as useRef14, useState as useState13 } from "react";
|
|
2636
2791
|
|
|
2637
2792
|
// src/components/SegmentedControl/SegmentedControl.css.ts
|
|
2638
2793
|
import { createRuntimeFn as _7a46814 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -2641,9 +2796,9 @@ var item8 = /* @__PURE__ */ _7a46814({ defaultClassName: "_1h65mmo2", variantCla
|
|
|
2641
2796
|
var root9 = /* @__PURE__ */ _7a46814({ defaultClassName: "_1h65mmo0", variantClassNames: { fullWidth: { true: "_1h65mmo1" } }, defaultVariants: {}, compoundVariants: [] });
|
|
2642
2797
|
|
|
2643
2798
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2644
|
-
import { jsx as
|
|
2799
|
+
import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2645
2800
|
var NEXT_KEYS = { ArrowRight: 1, ArrowDown: 1, ArrowLeft: -1, ArrowUp: -1 };
|
|
2646
|
-
var SegmentedControl = /* @__PURE__ */
|
|
2801
|
+
var SegmentedControl = /* @__PURE__ */ forwardRef28(
|
|
2647
2802
|
function SegmentedControl2(props, ref) {
|
|
2648
2803
|
const {
|
|
2649
2804
|
options,
|
|
@@ -2660,9 +2815,9 @@ var SegmentedControl = /* @__PURE__ */ forwardRef27(
|
|
|
2660
2815
|
className
|
|
2661
2816
|
} = props;
|
|
2662
2817
|
const isControlled = "value" in props;
|
|
2663
|
-
const [innerValue, setInnerValue] =
|
|
2818
|
+
const [innerValue, setInnerValue] = useState13(defaultValue ?? "");
|
|
2664
2819
|
const current2 = isControlled ? value3 ?? "" : innerValue;
|
|
2665
|
-
const generatedId =
|
|
2820
|
+
const generatedId = useId12();
|
|
2666
2821
|
const labelId = label6 ? `${id ?? generatedId}-label` : void 0;
|
|
2667
2822
|
const itemRefs = useRef14([]);
|
|
2668
2823
|
const isEnabled = (index) => !disabled && !options[index]?.disabled;
|
|
@@ -2695,7 +2850,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef27(
|
|
|
2695
2850
|
itemRefs.current[target]?.focus();
|
|
2696
2851
|
select(target);
|
|
2697
2852
|
};
|
|
2698
|
-
const group = /* @__PURE__ */
|
|
2853
|
+
const group = /* @__PURE__ */ jsxs26(
|
|
2699
2854
|
"div",
|
|
2700
2855
|
{
|
|
2701
2856
|
ref,
|
|
@@ -2708,7 +2863,7 @@ var SegmentedControl = /* @__PURE__ */ forwardRef27(
|
|
|
2708
2863
|
children: [
|
|
2709
2864
|
options.map((option2, index) => {
|
|
2710
2865
|
const checked = index === checkedIndex;
|
|
2711
|
-
return /* @__PURE__ */
|
|
2866
|
+
return /* @__PURE__ */ jsxs26(
|
|
2712
2867
|
"button",
|
|
2713
2868
|
{
|
|
2714
2869
|
ref: (node) => {
|
|
@@ -2725,20 +2880,20 @@ var SegmentedControl = /* @__PURE__ */ forwardRef27(
|
|
|
2725
2880
|
onClick: () => select(index),
|
|
2726
2881
|
onKeyDown: (event) => handleKeyDown(event, index),
|
|
2727
2882
|
children: [
|
|
2728
|
-
option2.icon && /* @__PURE__ */
|
|
2883
|
+
option2.icon && /* @__PURE__ */ jsx32("span", { "aria-hidden": true, className: icon5, children: option2.icon }),
|
|
2729
2884
|
option2.label
|
|
2730
2885
|
]
|
|
2731
2886
|
},
|
|
2732
2887
|
option2.value
|
|
2733
2888
|
);
|
|
2734
2889
|
}),
|
|
2735
|
-
name && /* @__PURE__ */
|
|
2890
|
+
name && /* @__PURE__ */ jsx32("input", { type: "hidden", name, value: current2 })
|
|
2736
2891
|
]
|
|
2737
2892
|
}
|
|
2738
2893
|
);
|
|
2739
2894
|
if (!label6) return group;
|
|
2740
|
-
return /* @__PURE__ */
|
|
2741
|
-
/* @__PURE__ */
|
|
2895
|
+
return /* @__PURE__ */ jsxs26("div", { className: cx(field, className), children: [
|
|
2896
|
+
/* @__PURE__ */ jsx32("span", { id: labelId, className: label, children: label6 }),
|
|
2742
2897
|
group
|
|
2743
2898
|
] });
|
|
2744
2899
|
}
|
|
@@ -2746,10 +2901,10 @@ var SegmentedControl = /* @__PURE__ */ forwardRef27(
|
|
|
2746
2901
|
|
|
2747
2902
|
// src/components/Select/Select.tsx
|
|
2748
2903
|
import * as RadixSelect from "@radix-ui/react-select";
|
|
2749
|
-
import { forwardRef as
|
|
2904
|
+
import { forwardRef as forwardRef29, useId as useId13 } from "react";
|
|
2750
2905
|
import { CheckIcon as CheckIcon3, ChevronDownIcon as ChevronDownIcon4 } from "@bestow-ui/icons";
|
|
2751
|
-
import { jsx as
|
|
2752
|
-
var Select = /* @__PURE__ */
|
|
2906
|
+
import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2907
|
+
var Select = /* @__PURE__ */ forwardRef29(function Select2(props, ref) {
|
|
2753
2908
|
const {
|
|
2754
2909
|
options,
|
|
2755
2910
|
value: value3,
|
|
@@ -2769,16 +2924,16 @@ var Select = /* @__PURE__ */ forwardRef28(function Select2(props, ref) {
|
|
|
2769
2924
|
className
|
|
2770
2925
|
} = props;
|
|
2771
2926
|
const isControlled = "value" in props;
|
|
2772
|
-
const generatedId =
|
|
2927
|
+
const generatedId = useId13();
|
|
2773
2928
|
const triggerId = id ?? generatedId;
|
|
2774
2929
|
const helperId = helperText3 ? `${triggerId}-helper` : void 0;
|
|
2775
2930
|
const portal2 = usePortalProps();
|
|
2776
|
-
return /* @__PURE__ */
|
|
2777
|
-
label6 && /* @__PURE__ */
|
|
2931
|
+
return /* @__PURE__ */ jsxs27("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
2932
|
+
label6 && /* @__PURE__ */ jsxs27("label", { htmlFor: triggerId, className: label, children: [
|
|
2778
2933
|
label6,
|
|
2779
|
-
required && /* @__PURE__ */
|
|
2934
|
+
required && /* @__PURE__ */ jsx33("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
2780
2935
|
] }),
|
|
2781
|
-
/* @__PURE__ */
|
|
2936
|
+
/* @__PURE__ */ jsxs27(
|
|
2782
2937
|
RadixSelect.Root,
|
|
2783
2938
|
{
|
|
2784
2939
|
value: isControlled ? value3 ?? "" : void 0,
|
|
@@ -2788,7 +2943,7 @@ var Select = /* @__PURE__ */ forwardRef28(function Select2(props, ref) {
|
|
|
2788
2943
|
required,
|
|
2789
2944
|
name,
|
|
2790
2945
|
children: [
|
|
2791
|
-
/* @__PURE__ */
|
|
2946
|
+
/* @__PURE__ */ jsxs27(
|
|
2792
2947
|
RadixSelect.Trigger,
|
|
2793
2948
|
{
|
|
2794
2949
|
ref,
|
|
@@ -2799,12 +2954,12 @@ var Select = /* @__PURE__ */ forwardRef28(function Select2(props, ref) {
|
|
|
2799
2954
|
"data-invalid": error || void 0,
|
|
2800
2955
|
className: cx(root3({ size, fullWidth }), trigger2, className),
|
|
2801
2956
|
children: [
|
|
2802
|
-
/* @__PURE__ */
|
|
2803
|
-
/* @__PURE__ */
|
|
2957
|
+
/* @__PURE__ */ jsx33("span", { className: value, children: /* @__PURE__ */ jsx33(RadixSelect.Value, { placeholder }) }),
|
|
2958
|
+
/* @__PURE__ */ jsx33(RadixSelect.Icon, { className: icon3, children: /* @__PURE__ */ jsx33(ChevronDownIcon4, { size: 16 }) })
|
|
2804
2959
|
]
|
|
2805
2960
|
}
|
|
2806
2961
|
),
|
|
2807
|
-
/* @__PURE__ */
|
|
2962
|
+
/* @__PURE__ */ jsx33(RadixSelect.Portal, { children: /* @__PURE__ */ jsx33(
|
|
2808
2963
|
RadixSelect.Content,
|
|
2809
2964
|
{
|
|
2810
2965
|
position: "popper",
|
|
@@ -2812,15 +2967,15 @@ var Select = /* @__PURE__ */ forwardRef28(function Select2(props, ref) {
|
|
|
2812
2967
|
collisionPadding: 8,
|
|
2813
2968
|
className: cx(portal2.className, content5),
|
|
2814
2969
|
style: portal2.style,
|
|
2815
|
-
children: /* @__PURE__ */
|
|
2970
|
+
children: /* @__PURE__ */ jsx33(RadixSelect.Viewport, { className: viewport, children: options.map((option2) => /* @__PURE__ */ jsxs27(
|
|
2816
2971
|
RadixSelect.Item,
|
|
2817
2972
|
{
|
|
2818
2973
|
value: option2.value,
|
|
2819
2974
|
disabled: option2.disabled,
|
|
2820
2975
|
className: item4,
|
|
2821
2976
|
children: [
|
|
2822
|
-
/* @__PURE__ */
|
|
2823
|
-
/* @__PURE__ */
|
|
2977
|
+
/* @__PURE__ */ jsx33(RadixSelect.ItemText, { children: option2.label }),
|
|
2978
|
+
/* @__PURE__ */ jsx33(RadixSelect.ItemIndicator, { className: itemIndicator, children: /* @__PURE__ */ jsx33(CheckIcon3, { size: 16 }) })
|
|
2824
2979
|
]
|
|
2825
2980
|
},
|
|
2826
2981
|
option2.value
|
|
@@ -2830,19 +2985,19 @@ var Select = /* @__PURE__ */ forwardRef28(function Select2(props, ref) {
|
|
|
2830
2985
|
]
|
|
2831
2986
|
}
|
|
2832
2987
|
),
|
|
2833
|
-
helperText3 && /* @__PURE__ */
|
|
2988
|
+
helperText3 && /* @__PURE__ */ jsx33("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
2834
2989
|
] });
|
|
2835
2990
|
});
|
|
2836
2991
|
|
|
2837
2992
|
// src/components/SkipLink/SkipLink.tsx
|
|
2838
|
-
import { forwardRef as
|
|
2993
|
+
import { forwardRef as forwardRef30 } from "react";
|
|
2839
2994
|
|
|
2840
2995
|
// src/components/SkipLink/SkipLink.css.ts
|
|
2841
2996
|
var skipLink = "_1t9jaar0";
|
|
2842
2997
|
|
|
2843
2998
|
// src/components/SkipLink/SkipLink.tsx
|
|
2844
|
-
import { jsx as
|
|
2845
|
-
var SkipLink = /* @__PURE__ */
|
|
2999
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3000
|
+
var SkipLink = /* @__PURE__ */ forwardRef30(function SkipLink2({ href = "#main", className, children, onClick, ...rest }, ref) {
|
|
2846
3001
|
const m = useMessages();
|
|
2847
3002
|
const handleClick = (event) => {
|
|
2848
3003
|
onClick?.(event);
|
|
@@ -2854,16 +3009,16 @@ var SkipLink = /* @__PURE__ */ forwardRef29(function SkipLink2({ href = "#main",
|
|
|
2854
3009
|
target.focus();
|
|
2855
3010
|
target.scrollIntoView?.({ block: "start" });
|
|
2856
3011
|
};
|
|
2857
|
-
return /* @__PURE__ */
|
|
3012
|
+
return /* @__PURE__ */ jsx34("a", { ref, href, className: cx(skipLink, className), onClick: handleClick, ...rest, children: children ?? m.skipToContent ?? "\uBCF8\uBB38 \uBC14\uB85C\uAC00\uAE30" });
|
|
2858
3013
|
});
|
|
2859
3014
|
|
|
2860
3015
|
// src/components/Slider/Slider.tsx
|
|
2861
3016
|
import * as RadixSlider from "@radix-ui/react-slider";
|
|
2862
|
-
import { forwardRef as
|
|
3017
|
+
import { forwardRef as forwardRef31, useId as useId14, useState as useState14 } from "react";
|
|
2863
3018
|
|
|
2864
3019
|
// src/components/Slider/Slider.css.ts
|
|
2865
3020
|
import { createRuntimeFn as _7a46815 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
2866
|
-
var
|
|
3021
|
+
var field3 = "_126mzjm0";
|
|
2867
3022
|
var header6 = "_126mzjm1";
|
|
2868
3023
|
var helperText2 = "_126mzjm4";
|
|
2869
3024
|
var label3 = "_126mzjm2";
|
|
@@ -2874,8 +3029,8 @@ var track = /* @__PURE__ */ _7a46815({ defaultClassName: "_126mzjm8", variantCla
|
|
|
2874
3029
|
var value2 = "_126mzjm3";
|
|
2875
3030
|
|
|
2876
3031
|
// src/components/Slider/Slider.tsx
|
|
2877
|
-
import { jsx as
|
|
2878
|
-
var Slider = /* @__PURE__ */
|
|
3032
|
+
import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3033
|
+
var Slider = /* @__PURE__ */ forwardRef31(function Slider2(props, ref) {
|
|
2879
3034
|
const {
|
|
2880
3035
|
value: value3,
|
|
2881
3036
|
defaultValue,
|
|
@@ -2896,12 +3051,12 @@ var Slider = /* @__PURE__ */ forwardRef30(function Slider2(props, ref) {
|
|
|
2896
3051
|
} = props;
|
|
2897
3052
|
const m = useMessages();
|
|
2898
3053
|
const thumbLabels = thumbLabelsProp ?? [m.rangeStart ?? "\uCD5C\uC18C", m.rangeEnd ?? "\uCD5C\uB300"];
|
|
2899
|
-
const generatedId =
|
|
3054
|
+
const generatedId = useId14();
|
|
2900
3055
|
const baseId = id ?? generatedId;
|
|
2901
3056
|
const labelId = `${baseId}-label`;
|
|
2902
3057
|
const helperId = `${baseId}-helper`;
|
|
2903
3058
|
const isControlled = "value" in props;
|
|
2904
|
-
const [innerValue, setInnerValue] =
|
|
3059
|
+
const [innerValue, setInnerValue] = useState14(defaultValue ?? [min]);
|
|
2905
3060
|
const current2 = isControlled ? value3 ?? [min] : innerValue;
|
|
2906
3061
|
const isRange = current2.length > 1;
|
|
2907
3062
|
const handleChange = (next) => {
|
|
@@ -2909,12 +3064,12 @@ var Slider = /* @__PURE__ */ forwardRef30(function Slider2(props, ref) {
|
|
|
2909
3064
|
onValueChange?.(next);
|
|
2910
3065
|
};
|
|
2911
3066
|
const valueText = current2.map(formatValue).join(" \u2013 ");
|
|
2912
|
-
return /* @__PURE__ */
|
|
2913
|
-
(label6 || showValue) && /* @__PURE__ */
|
|
2914
|
-
label6 && /* @__PURE__ */
|
|
2915
|
-
showValue && /* @__PURE__ */
|
|
3067
|
+
return /* @__PURE__ */ jsxs28("div", { className: cx(field3, className), children: [
|
|
3068
|
+
(label6 || showValue) && /* @__PURE__ */ jsxs28("div", { className: header6, children: [
|
|
3069
|
+
label6 && /* @__PURE__ */ jsx35("span", { id: labelId, className: label3, children: label6 }),
|
|
3070
|
+
showValue && /* @__PURE__ */ jsx35("span", { className: value2, "aria-hidden": true, children: valueText })
|
|
2916
3071
|
] }),
|
|
2917
|
-
/* @__PURE__ */
|
|
3072
|
+
/* @__PURE__ */ jsxs28(
|
|
2918
3073
|
RadixSlider.Root,
|
|
2919
3074
|
{
|
|
2920
3075
|
ref,
|
|
@@ -2927,10 +3082,10 @@ var Slider = /* @__PURE__ */ forwardRef30(function Slider2(props, ref) {
|
|
|
2927
3082
|
className: root10({ size }),
|
|
2928
3083
|
...rest,
|
|
2929
3084
|
children: [
|
|
2930
|
-
/* @__PURE__ */
|
|
3085
|
+
/* @__PURE__ */ jsx35(RadixSlider.Track, { className: track({ size }), children: /* @__PURE__ */ jsx35(RadixSlider.Range, { className: range2 }) }),
|
|
2931
3086
|
current2.map((thumbValue, index) => {
|
|
2932
3087
|
const thumbLabelId = `${baseId}-thumb-${index}`;
|
|
2933
|
-
return /* @__PURE__ */
|
|
3088
|
+
return /* @__PURE__ */ jsx35(
|
|
2934
3089
|
RadixSlider.Thumb,
|
|
2935
3090
|
{
|
|
2936
3091
|
className: thumb({ size }),
|
|
@@ -2945,16 +3100,16 @@ var Slider = /* @__PURE__ */ forwardRef30(function Slider2(props, ref) {
|
|
|
2945
3100
|
]
|
|
2946
3101
|
}
|
|
2947
3102
|
),
|
|
2948
|
-
isRange && current2.map((_, index) => /* @__PURE__ */
|
|
3103
|
+
isRange && current2.map((_, index) => /* @__PURE__ */ jsxs28("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
|
|
2949
3104
|
label6 ? "" : ariaLabel ? `${ariaLabel} ` : "",
|
|
2950
3105
|
thumbLabels[index] ?? `${index + 1}`
|
|
2951
3106
|
] }, index)),
|
|
2952
|
-
helperText3 && /* @__PURE__ */
|
|
3107
|
+
helperText3 && /* @__PURE__ */ jsx35("span", { id: helperId, className: helperText2, children: helperText3 })
|
|
2953
3108
|
] });
|
|
2954
3109
|
});
|
|
2955
3110
|
|
|
2956
3111
|
// src/components/Stepper/Stepper.tsx
|
|
2957
|
-
import { forwardRef as
|
|
3112
|
+
import { forwardRef as forwardRef32 } from "react";
|
|
2958
3113
|
import { CheckIcon as CheckIcon4 } from "@bestow-ui/icons";
|
|
2959
3114
|
|
|
2960
3115
|
// src/components/Stepper/Stepper.css.ts
|
|
@@ -2967,10 +3122,10 @@ var step = /* @__PURE__ */ _7a46816({ defaultClassName: "kervhm3", variantClassN
|
|
|
2967
3122
|
var text2 = /* @__PURE__ */ _7a46816({ defaultClassName: "kervhma", variantClassNames: { orientation: { horizontal: "kervhmb", vertical: "kervhmc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
2968
3123
|
|
|
2969
3124
|
// src/components/Stepper/Stepper.tsx
|
|
2970
|
-
import { jsx as
|
|
2971
|
-
var Stepper = /* @__PURE__ */
|
|
3125
|
+
import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3126
|
+
var Stepper = /* @__PURE__ */ forwardRef32(function Stepper2({ steps, current: current2, orientation = "horizontal", "aria-label": ariaLabel, className, ...rest }, ref) {
|
|
2972
3127
|
const m = useMessages();
|
|
2973
|
-
return /* @__PURE__ */
|
|
3128
|
+
return /* @__PURE__ */ jsx36(
|
|
2974
3129
|
"ol",
|
|
2975
3130
|
{
|
|
2976
3131
|
ref,
|
|
@@ -2979,24 +3134,24 @@ var Stepper = /* @__PURE__ */ forwardRef31(function Stepper2({ steps, current: c
|
|
|
2979
3134
|
...rest,
|
|
2980
3135
|
children: steps.map((step2, index) => {
|
|
2981
3136
|
const status = index < current2 ? "complete" : index === current2 ? "current" : "upcoming";
|
|
2982
|
-
return /* @__PURE__ */
|
|
3137
|
+
return /* @__PURE__ */ jsxs29(
|
|
2983
3138
|
"li",
|
|
2984
3139
|
{
|
|
2985
3140
|
className: step({ orientation }),
|
|
2986
3141
|
"data-status": status,
|
|
2987
3142
|
"aria-current": status === "current" ? "step" : void 0,
|
|
2988
3143
|
children: [
|
|
2989
|
-
/* @__PURE__ */
|
|
2990
|
-
/* @__PURE__ */
|
|
2991
|
-
/* @__PURE__ */
|
|
3144
|
+
/* @__PURE__ */ jsx36("span", { className: indicator2({ status }), "aria-hidden": true, children: status === "complete" ? /* @__PURE__ */ jsx36(CheckIcon4, { size: 16, strokeWidth: 2.5 }) : index + 1 }),
|
|
3145
|
+
/* @__PURE__ */ jsxs29("span", { className: text2({ orientation }), children: [
|
|
3146
|
+
/* @__PURE__ */ jsxs29("span", { className: label4({ status }), children: [
|
|
2992
3147
|
step2.label,
|
|
2993
|
-
status === "complete" && /* @__PURE__ */
|
|
3148
|
+
status === "complete" && /* @__PURE__ */ jsxs29("span", { className: visuallyHidden, children: [
|
|
2994
3149
|
" (",
|
|
2995
3150
|
m.stepCompleted ?? "\uC644\uB8CC",
|
|
2996
3151
|
")"
|
|
2997
3152
|
] })
|
|
2998
3153
|
] }),
|
|
2999
|
-
step2.description && /* @__PURE__ */
|
|
3154
|
+
step2.description && /* @__PURE__ */ jsx36("span", { className: description5, children: step2.description })
|
|
3000
3155
|
] })
|
|
3001
3156
|
]
|
|
3002
3157
|
},
|
|
@@ -3009,7 +3164,7 @@ var Stepper = /* @__PURE__ */ forwardRef31(function Stepper2({ steps, current: c
|
|
|
3009
3164
|
|
|
3010
3165
|
// src/components/Switch/Switch.tsx
|
|
3011
3166
|
import * as RadixSwitch from "@radix-ui/react-switch";
|
|
3012
|
-
import { forwardRef as
|
|
3167
|
+
import { forwardRef as forwardRef33, useId as useId15 } from "react";
|
|
3013
3168
|
|
|
3014
3169
|
// src/components/Switch/Switch.css.ts
|
|
3015
3170
|
import { createRuntimeFn as _7a46817 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -3019,12 +3174,12 @@ var thumb2 = /* @__PURE__ */ _7a46817({ defaultClassName: "o33ul26", variantClas
|
|
|
3019
3174
|
var track2 = /* @__PURE__ */ _7a46817({ defaultClassName: "o33ul23", variantClassNames: { size: { sm: "o33ul24", md: "o33ul25" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
3020
3175
|
|
|
3021
3176
|
// src/components/Switch/Switch.tsx
|
|
3022
|
-
import { jsx as
|
|
3023
|
-
var Switch = /* @__PURE__ */
|
|
3024
|
-
const generatedId =
|
|
3177
|
+
import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3178
|
+
var Switch = /* @__PURE__ */ forwardRef33(function Switch2({ label: label6, size, id, className, disabled, "aria-label": ariaLabel, ...rest }, ref) {
|
|
3179
|
+
const generatedId = useId15();
|
|
3025
3180
|
const switchId = id ?? generatedId;
|
|
3026
|
-
return /* @__PURE__ */
|
|
3027
|
-
/* @__PURE__ */
|
|
3181
|
+
return /* @__PURE__ */ jsxs30("span", { className: cx(root12({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
3182
|
+
/* @__PURE__ */ jsx37(
|
|
3028
3183
|
RadixSwitch.Root,
|
|
3029
3184
|
{
|
|
3030
3185
|
ref,
|
|
@@ -3033,19 +3188,19 @@ var Switch = /* @__PURE__ */ forwardRef32(function Switch2({ label: label6, size
|
|
|
3033
3188
|
"aria-label": ariaLabel,
|
|
3034
3189
|
className: track2({ size }),
|
|
3035
3190
|
...rest,
|
|
3036
|
-
children: /* @__PURE__ */
|
|
3191
|
+
children: /* @__PURE__ */ jsx37(RadixSwitch.Thumb, { className: thumb2({ size }) })
|
|
3037
3192
|
}
|
|
3038
3193
|
),
|
|
3039
|
-
label6 && /* @__PURE__ */
|
|
3194
|
+
label6 && /* @__PURE__ */ jsx37("label", { htmlFor: switchId, className: label5, children: label6 })
|
|
3040
3195
|
] });
|
|
3041
3196
|
});
|
|
3042
3197
|
|
|
3043
3198
|
// src/components/Table/Table.tsx
|
|
3044
3199
|
import {
|
|
3045
3200
|
createContext as createContext3,
|
|
3046
|
-
forwardRef as
|
|
3201
|
+
forwardRef as forwardRef34,
|
|
3047
3202
|
useContext as useContext3,
|
|
3048
|
-
useId as
|
|
3203
|
+
useId as useId16
|
|
3049
3204
|
} from "react";
|
|
3050
3205
|
import { ArrowDownIcon, ArrowUpIcon } from "@bestow-ui/icons";
|
|
3051
3206
|
|
|
@@ -3069,10 +3224,10 @@ var striped = "l3ploy6";
|
|
|
3069
3224
|
var table = "l3ploy1";
|
|
3070
3225
|
|
|
3071
3226
|
// src/components/Table/Table.tsx
|
|
3072
|
-
import { Fragment as Fragment6, jsx as
|
|
3227
|
+
import { Fragment as Fragment6, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3073
3228
|
var TableSizeContext = /* @__PURE__ */ createContext3("md");
|
|
3074
3229
|
var TableSectionContext = /* @__PURE__ */ createContext3("body");
|
|
3075
|
-
var Table = /* @__PURE__ */
|
|
3230
|
+
var Table = /* @__PURE__ */ forwardRef34(function Table2({
|
|
3076
3231
|
size = "md",
|
|
3077
3232
|
striped: striped2,
|
|
3078
3233
|
stickyHeader: stickyHeader2,
|
|
@@ -3084,8 +3239,8 @@ var Table = /* @__PURE__ */ forwardRef33(function Table2({
|
|
|
3084
3239
|
children,
|
|
3085
3240
|
...rest
|
|
3086
3241
|
}, ref) {
|
|
3087
|
-
const captionId =
|
|
3088
|
-
return /* @__PURE__ */
|
|
3242
|
+
const captionId = useId16();
|
|
3243
|
+
return /* @__PURE__ */ jsx38(TableSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx38(
|
|
3089
3244
|
"div",
|
|
3090
3245
|
{
|
|
3091
3246
|
className: cx(container, containerClassName),
|
|
@@ -3094,7 +3249,7 @@ var Table = /* @__PURE__ */ forwardRef33(function Table2({
|
|
|
3094
3249
|
role: "region",
|
|
3095
3250
|
"aria-labelledby": caption2 ? captionId : void 0,
|
|
3096
3251
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
3097
|
-
children: /* @__PURE__ */
|
|
3252
|
+
children: /* @__PURE__ */ jsxs31(
|
|
3098
3253
|
"table",
|
|
3099
3254
|
{
|
|
3100
3255
|
ref,
|
|
@@ -3102,7 +3257,7 @@ var Table = /* @__PURE__ */ forwardRef33(function Table2({
|
|
|
3102
3257
|
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
3103
3258
|
...rest,
|
|
3104
3259
|
children: [
|
|
3105
|
-
caption2 && /* @__PURE__ */
|
|
3260
|
+
caption2 && /* @__PURE__ */ jsx38("caption", { id: captionId, className: caption, children: caption2 }),
|
|
3106
3261
|
children
|
|
3107
3262
|
]
|
|
3108
3263
|
}
|
|
@@ -3110,31 +3265,31 @@ var Table = /* @__PURE__ */ forwardRef33(function Table2({
|
|
|
3110
3265
|
}
|
|
3111
3266
|
) });
|
|
3112
3267
|
});
|
|
3113
|
-
var TableHeader = /* @__PURE__ */
|
|
3268
|
+
var TableHeader = /* @__PURE__ */ forwardRef34(
|
|
3114
3269
|
function TableHeader2({ className, ...rest }, ref) {
|
|
3115
|
-
return /* @__PURE__ */
|
|
3270
|
+
return /* @__PURE__ */ jsx38(TableSectionContext.Provider, { value: "header", children: /* @__PURE__ */ jsx38("thead", { ref, className: cx(header7, className), ...rest }) });
|
|
3116
3271
|
}
|
|
3117
3272
|
);
|
|
3118
|
-
var TableBody = /* @__PURE__ */
|
|
3273
|
+
var TableBody = /* @__PURE__ */ forwardRef34(
|
|
3119
3274
|
function TableBody2({ className, ...rest }, ref) {
|
|
3120
|
-
return /* @__PURE__ */
|
|
3275
|
+
return /* @__PURE__ */ jsx38(TableSectionContext.Provider, { value: "body", children: /* @__PURE__ */ jsx38("tbody", { ref, className: cx(body3, className), ...rest }) });
|
|
3121
3276
|
}
|
|
3122
3277
|
);
|
|
3123
|
-
var TableFooter = /* @__PURE__ */
|
|
3278
|
+
var TableFooter = /* @__PURE__ */ forwardRef34(
|
|
3124
3279
|
function TableFooter2({ className, ...rest }, ref) {
|
|
3125
|
-
return /* @__PURE__ */
|
|
3280
|
+
return /* @__PURE__ */ jsx38(TableSectionContext.Provider, { value: "footer", children: /* @__PURE__ */ jsx38("tfoot", { ref, className: cx(footer3, className), ...rest }) });
|
|
3126
3281
|
}
|
|
3127
3282
|
);
|
|
3128
|
-
var TableRow = /* @__PURE__ */
|
|
3129
|
-
return /* @__PURE__ */
|
|
3283
|
+
var TableRow = /* @__PURE__ */ forwardRef34(function TableRow2({ selected, className, ...rest }, ref) {
|
|
3284
|
+
return /* @__PURE__ */ jsx38("tr", { ref, className: cx(row3, className), "data-state": selected ? "selected" : void 0, ...rest });
|
|
3130
3285
|
});
|
|
3131
|
-
var TableHead = /* @__PURE__ */
|
|
3286
|
+
var TableHead = /* @__PURE__ */ forwardRef34(function TableHead2({ align, sortDirection, onSort, scope, className, children, ...rest }, ref) {
|
|
3132
3287
|
const size = useContext3(TableSizeContext);
|
|
3133
3288
|
const section = useContext3(TableSectionContext);
|
|
3134
3289
|
const sortable = onSort !== void 0;
|
|
3135
3290
|
const direction = sortDirection ?? "none";
|
|
3136
3291
|
const SortIcon = direction === "descending" ? ArrowDownIcon : ArrowUpIcon;
|
|
3137
|
-
return /* @__PURE__ */
|
|
3292
|
+
return /* @__PURE__ */ jsx38(
|
|
3138
3293
|
"th",
|
|
3139
3294
|
{
|
|
3140
3295
|
ref,
|
|
@@ -3146,17 +3301,17 @@ var TableHead = /* @__PURE__ */ forwardRef33(function TableHead2({ align, sortDi
|
|
|
3146
3301
|
className
|
|
3147
3302
|
),
|
|
3148
3303
|
...rest,
|
|
3149
|
-
children: sortable ? /* @__PURE__ */
|
|
3304
|
+
children: sortable ? /* @__PURE__ */ jsxs31("button", { type: "button", className: sortButton, onClick: onSort, children: [
|
|
3150
3305
|
children,
|
|
3151
|
-
/* @__PURE__ */
|
|
3306
|
+
/* @__PURE__ */ jsx38(SortIcon, { size: 14, className: sortIcon, "data-active": direction !== "none", "aria-hidden": true })
|
|
3152
3307
|
] }) : children
|
|
3153
3308
|
}
|
|
3154
3309
|
);
|
|
3155
3310
|
});
|
|
3156
|
-
var TableCell = /* @__PURE__ */
|
|
3311
|
+
var TableCell = /* @__PURE__ */ forwardRef34(function TableCell2({ align, className, ...rest }, ref) {
|
|
3157
3312
|
const size = useContext3(TableSizeContext);
|
|
3158
3313
|
const section = useContext3(TableSectionContext);
|
|
3159
|
-
return /* @__PURE__ */
|
|
3314
|
+
return /* @__PURE__ */ jsx38(
|
|
3160
3315
|
"td",
|
|
3161
3316
|
{
|
|
3162
3317
|
ref,
|
|
@@ -3165,17 +3320,17 @@ var TableCell = /* @__PURE__ */ forwardRef33(function TableCell2({ align, classN
|
|
|
3165
3320
|
}
|
|
3166
3321
|
);
|
|
3167
3322
|
});
|
|
3168
|
-
var TableEmpty = /* @__PURE__ */
|
|
3169
|
-
return /* @__PURE__ */
|
|
3323
|
+
var TableEmpty = /* @__PURE__ */ forwardRef34(function TableEmpty2({ colSpan, className, children, ...rest }, ref) {
|
|
3324
|
+
return /* @__PURE__ */ jsx38(TableRow, { children: /* @__PURE__ */ jsx38(TableCell, { ref, colSpan, className: cx(emptyCell, className), ...rest, children: /* @__PURE__ */ jsx38("div", { className: emptyContent, children }) }) });
|
|
3170
3325
|
});
|
|
3171
3326
|
function TableSkeleton({ rows = 5, columns }) {
|
|
3172
|
-
return /* @__PURE__ */
|
|
3327
|
+
return /* @__PURE__ */ jsx38(Fragment6, { children: Array.from({ length: rows }, (_, row5) => /* @__PURE__ */ jsx38(TableRow, { "aria-hidden": true, children: Array.from({ length: columns }, (_2, column) => /* @__PURE__ */ jsx38(TableCell, { children: /* @__PURE__ */ jsx38(Skeleton, { width: column === 0 ? "60%" : "80%" }) }, column)) }, row5)) });
|
|
3173
3328
|
}
|
|
3174
3329
|
|
|
3175
3330
|
// src/components/Table/useTableSelection.ts
|
|
3176
|
-
import { useCallback, useState as
|
|
3331
|
+
import { useCallback, useState as useState15 } from "react";
|
|
3177
3332
|
function useTableSelection(initial = []) {
|
|
3178
|
-
const [selected, setSelected] =
|
|
3333
|
+
const [selected, setSelected] = useState15(initial);
|
|
3179
3334
|
const isSelected = useCallback((id) => selected.includes(id), [selected]);
|
|
3180
3335
|
const toggle3 = useCallback((id, checked) => {
|
|
3181
3336
|
setSelected((prev) => {
|
|
@@ -3205,7 +3360,7 @@ function useTableSelection(initial = []) {
|
|
|
3205
3360
|
|
|
3206
3361
|
// src/components/Tabs/Tabs.tsx
|
|
3207
3362
|
import * as RadixTabs from "@radix-ui/react-tabs";
|
|
3208
|
-
import { createContext as createContext4, forwardRef as
|
|
3363
|
+
import { createContext as createContext4, forwardRef as forwardRef35, useContext as useContext4 } from "react";
|
|
3209
3364
|
|
|
3210
3365
|
// src/components/Tabs/Tabs.css.ts
|
|
3211
3366
|
import { createRuntimeFn as _7a46819 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
@@ -3215,31 +3370,31 @@ var root13 = "fvhbtd0";
|
|
|
3215
3370
|
var trigger3 = /* @__PURE__ */ _7a46819({ 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"]] });
|
|
3216
3371
|
|
|
3217
3372
|
// src/components/Tabs/Tabs.tsx
|
|
3218
|
-
import { jsx as
|
|
3373
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
3219
3374
|
var TabsStyleContext = /* @__PURE__ */ createContext4({ variant: "line", size: "md" });
|
|
3220
|
-
var Tabs = /* @__PURE__ */
|
|
3375
|
+
var Tabs = /* @__PURE__ */ forwardRef35(function Tabs2({ variant = "line", size = "md", className, ...props }, ref) {
|
|
3221
3376
|
const controlled = "value" in props ? { value: props.value ?? "" } : {};
|
|
3222
|
-
return /* @__PURE__ */
|
|
3377
|
+
return /* @__PURE__ */ jsx39(TabsStyleContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx39(RadixTabs.Root, { ref, className: cx(root13, className), ...props, ...controlled }) });
|
|
3223
3378
|
});
|
|
3224
|
-
var TabsList = /* @__PURE__ */
|
|
3379
|
+
var TabsList = /* @__PURE__ */ forwardRef35(function TabsList2({ className, ...rest }, ref) {
|
|
3225
3380
|
const { variant } = useContext4(TabsStyleContext);
|
|
3226
|
-
return /* @__PURE__ */
|
|
3381
|
+
return /* @__PURE__ */ jsx39(RadixTabs.List, { ref, className: cx(list6({ variant }), className), ...rest });
|
|
3227
3382
|
});
|
|
3228
|
-
var TabsTrigger = /* @__PURE__ */
|
|
3383
|
+
var TabsTrigger = /* @__PURE__ */ forwardRef35(function TabsTrigger2({ className, ...rest }, ref) {
|
|
3229
3384
|
const { variant, size } = useContext4(TabsStyleContext);
|
|
3230
|
-
return /* @__PURE__ */
|
|
3385
|
+
return /* @__PURE__ */ jsx39(RadixTabs.Trigger, { ref, className: cx(trigger3({ variant, size }), className), ...rest });
|
|
3231
3386
|
});
|
|
3232
|
-
var TabsContent = /* @__PURE__ */
|
|
3233
|
-
return /* @__PURE__ */
|
|
3387
|
+
var TabsContent = /* @__PURE__ */ forwardRef35(function TabsContent2({ className, ...rest }, ref) {
|
|
3388
|
+
return /* @__PURE__ */ jsx39(RadixTabs.Content, { ref, className: cx(content10, className), ...rest });
|
|
3234
3389
|
});
|
|
3235
3390
|
|
|
3236
3391
|
// src/components/Textarea/Textarea.tsx
|
|
3237
3392
|
import {
|
|
3238
|
-
forwardRef as
|
|
3393
|
+
forwardRef as forwardRef36,
|
|
3239
3394
|
useCallback as useCallback2,
|
|
3240
|
-
useId as
|
|
3395
|
+
useId as useId17,
|
|
3241
3396
|
useRef as useRef15,
|
|
3242
|
-
useState as
|
|
3397
|
+
useState as useState16
|
|
3243
3398
|
} from "react";
|
|
3244
3399
|
|
|
3245
3400
|
// src/components/Textarea/Textarea.css.ts
|
|
@@ -3251,8 +3406,8 @@ var footer4 = "_1koawa8";
|
|
|
3251
3406
|
var textarea = /* @__PURE__ */ _7a46820({ defaultClassName: "_1koawa0", variantClassNames: { size: { sm: "_1koawa1", md: "_1koawa2", lg: "_1koawa3" }, resize: { none: "_1koawa4", vertical: "_1koawa5", both: "_1koawa6" } }, defaultVariants: { size: "md", resize: "vertical" }, compoundVariants: [] });
|
|
3252
3407
|
|
|
3253
3408
|
// src/components/Textarea/Textarea.tsx
|
|
3254
|
-
import { jsx as
|
|
3255
|
-
var Textarea = /* @__PURE__ */
|
|
3409
|
+
import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3410
|
+
var Textarea = /* @__PURE__ */ forwardRef36(function Textarea2({
|
|
3256
3411
|
label: label6,
|
|
3257
3412
|
helperText: helperText3,
|
|
3258
3413
|
error,
|
|
@@ -3273,11 +3428,11 @@ var Textarea = /* @__PURE__ */ forwardRef35(function Textarea2({
|
|
|
3273
3428
|
"aria-describedby": ariaDescribedBy,
|
|
3274
3429
|
...rest
|
|
3275
3430
|
}, ref) {
|
|
3276
|
-
const generatedId =
|
|
3431
|
+
const generatedId = useId17();
|
|
3277
3432
|
const textareaId = id ?? generatedId;
|
|
3278
3433
|
const helperId = helperText3 ? `${textareaId}-helper` : void 0;
|
|
3279
3434
|
const innerRef = useRef15(null);
|
|
3280
|
-
const [uncontrolledLength, setUncontrolledLength] =
|
|
3435
|
+
const [uncontrolledLength, setUncontrolledLength] = useState16(() => String(defaultValue ?? "").length);
|
|
3281
3436
|
const length = value3 !== void 0 ? String(value3).length : uncontrolledLength;
|
|
3282
3437
|
const fitHeight = useCallback2(() => {
|
|
3283
3438
|
const el = innerRef.current;
|
|
@@ -3292,12 +3447,12 @@ var Textarea = /* @__PURE__ */ forwardRef35(function Textarea2({
|
|
|
3292
3447
|
fitHeight();
|
|
3293
3448
|
onChange?.(event);
|
|
3294
3449
|
};
|
|
3295
|
-
return /* @__PURE__ */
|
|
3296
|
-
label6 && /* @__PURE__ */
|
|
3450
|
+
return /* @__PURE__ */ jsxs32("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
3451
|
+
label6 && /* @__PURE__ */ jsxs32("label", { htmlFor: textareaId, className: label, children: [
|
|
3297
3452
|
label6,
|
|
3298
|
-
required && /* @__PURE__ */
|
|
3453
|
+
required && /* @__PURE__ */ jsx40("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
3299
3454
|
] }),
|
|
3300
|
-
/* @__PURE__ */
|
|
3455
|
+
/* @__PURE__ */ jsx40(
|
|
3301
3456
|
"textarea",
|
|
3302
3457
|
{
|
|
3303
3458
|
ref: mergeRefs(innerRef, ref),
|
|
@@ -3319,16 +3474,16 @@ var Textarea = /* @__PURE__ */ forwardRef35(function Textarea2({
|
|
|
3319
3474
|
...rest
|
|
3320
3475
|
}
|
|
3321
3476
|
),
|
|
3322
|
-
(helperText3 || showCount) && /* @__PURE__ */
|
|
3323
|
-
helperText3 && /* @__PURE__ */
|
|
3324
|
-
showCount && /* @__PURE__ */
|
|
3477
|
+
(helperText3 || showCount) && /* @__PURE__ */ jsxs32("div", { className: footer4, children: [
|
|
3478
|
+
helperText3 && /* @__PURE__ */ jsx40("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
3479
|
+
showCount && /* @__PURE__ */ jsx40("span", { className: cx(count, maxLength !== void 0 && length >= maxLength && countOver), children: maxLength !== void 0 ? `${length}/${maxLength}` : length })
|
|
3325
3480
|
] })
|
|
3326
3481
|
] });
|
|
3327
3482
|
});
|
|
3328
3483
|
|
|
3329
3484
|
// src/components/Toast/Toast.tsx
|
|
3330
3485
|
import * as RadixToast from "@radix-ui/react-toast";
|
|
3331
|
-
import { createContext as createContext5, useCallback as useCallback3, useContext as useContext5, useMemo as useMemo4, useRef as useRef16, useState as
|
|
3486
|
+
import { createContext as createContext5, useCallback as useCallback3, useContext as useContext5, useMemo as useMemo4, useRef as useRef16, useState as useState17 } from "react";
|
|
3332
3487
|
import { XIcon as XIcon7 } from "@bestow-ui/icons";
|
|
3333
3488
|
|
|
3334
3489
|
// src/components/Toast/Toast.css.ts
|
|
@@ -3341,13 +3496,13 @@ var toast = /* @__PURE__ */ _7a46821({ defaultClassName: "_1g11zvx1", variantCla
|
|
|
3341
3496
|
var viewport2 = "_1g11zvx0";
|
|
3342
3497
|
|
|
3343
3498
|
// src/components/Toast/Toast.tsx
|
|
3344
|
-
import { jsx as
|
|
3499
|
+
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3345
3500
|
var REMOVE_DELAY = 500;
|
|
3346
3501
|
var ToastContext = /* @__PURE__ */ createContext5(null);
|
|
3347
3502
|
function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
3348
3503
|
const m = useMessages();
|
|
3349
3504
|
const label6 = labelProp ?? m.notifications ?? "\uC54C\uB9BC";
|
|
3350
|
-
const [toasts, setToasts] =
|
|
3505
|
+
const [toasts, setToasts] = useState17([]);
|
|
3351
3506
|
const nextId = useRef16(0);
|
|
3352
3507
|
const portal2 = usePortalProps();
|
|
3353
3508
|
const toast2 = useCallback3((options) => {
|
|
@@ -3361,9 +3516,9 @@ function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
|
3361
3516
|
setTimeout(() => setToasts((prev) => prev.filter((t) => t.open || !isTarget(t))), REMOVE_DELAY);
|
|
3362
3517
|
}, []);
|
|
3363
3518
|
const value3 = useMemo4(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
|
|
3364
|
-
return /* @__PURE__ */
|
|
3519
|
+
return /* @__PURE__ */ jsx41(ToastContext.Provider, { value: value3, children: /* @__PURE__ */ jsxs33(RadixToast.Provider, { duration, label: label6, swipeDirection: "right", children: [
|
|
3365
3520
|
children,
|
|
3366
|
-
toasts.map(({ id, open, title: title6, description: description7, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */
|
|
3521
|
+
toasts.map(({ id, open, title: title6, description: description7, color, duration: itemDuration, action: action3 }) => /* @__PURE__ */ jsxs33(
|
|
3367
3522
|
RadixToast.Root,
|
|
3368
3523
|
{
|
|
3369
3524
|
open,
|
|
@@ -3373,15 +3528,15 @@ function ToastProvider({ children, duration = 5e3, label: labelProp }) {
|
|
|
3373
3528
|
},
|
|
3374
3529
|
className: toast({ color }),
|
|
3375
3530
|
children: [
|
|
3376
|
-
/* @__PURE__ */
|
|
3377
|
-
description7 && /* @__PURE__ */
|
|
3378
|
-
action3 && /* @__PURE__ */
|
|
3379
|
-
/* @__PURE__ */
|
|
3531
|
+
/* @__PURE__ */ jsx41(RadixToast.Title, { className: title5, children: title6 }),
|
|
3532
|
+
description7 && /* @__PURE__ */ jsx41(RadixToast.Description, { className: description6, children: description7 }),
|
|
3533
|
+
action3 && /* @__PURE__ */ jsx41(RadixToast.Action, { asChild: true, altText: action3.altText ?? action3.label, className: action2, children: /* @__PURE__ */ jsx41(Button, { size: "sm", variant: "soft", color: "neutral", onClick: action3.onClick, children: action3.label }) }),
|
|
3534
|
+
/* @__PURE__ */ jsx41(RadixToast.Close, { className: close, "aria-label": m.close ?? "\uB2EB\uAE30", children: /* @__PURE__ */ jsx41(XIcon7, { size: 16 }) })
|
|
3380
3535
|
]
|
|
3381
3536
|
},
|
|
3382
3537
|
id
|
|
3383
3538
|
)),
|
|
3384
|
-
/* @__PURE__ */
|
|
3539
|
+
/* @__PURE__ */ jsx41(RadixToast.Viewport, { className: cx(portal2.className, viewport2), style: portal2.style })
|
|
3385
3540
|
] }) });
|
|
3386
3541
|
}
|
|
3387
3542
|
function useToast() {
|
|
@@ -3398,7 +3553,7 @@ var arrow2 = "z7rufs1";
|
|
|
3398
3553
|
var content11 = "z7rufs0";
|
|
3399
3554
|
|
|
3400
3555
|
// src/components/Tooltip/Tooltip.tsx
|
|
3401
|
-
import { jsx as
|
|
3556
|
+
import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3402
3557
|
function Tooltip({
|
|
3403
3558
|
content: content12,
|
|
3404
3559
|
children,
|
|
@@ -3413,9 +3568,9 @@ function Tooltip({
|
|
|
3413
3568
|
}) {
|
|
3414
3569
|
const portal2 = usePortalProps();
|
|
3415
3570
|
if (disabled || content12 == null || content12 === "") return children;
|
|
3416
|
-
return /* @__PURE__ */
|
|
3417
|
-
/* @__PURE__ */
|
|
3418
|
-
/* @__PURE__ */
|
|
3571
|
+
return /* @__PURE__ */ jsx42(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ jsxs34(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
|
|
3572
|
+
/* @__PURE__ */ jsx42(RadixTooltip.Trigger, { asChild: true, children }),
|
|
3573
|
+
/* @__PURE__ */ jsx42(RadixTooltip.Portal, { children: /* @__PURE__ */ jsxs34(
|
|
3419
3574
|
RadixTooltip.Content,
|
|
3420
3575
|
{
|
|
3421
3576
|
side,
|
|
@@ -3426,7 +3581,7 @@ function Tooltip({
|
|
|
3426
3581
|
style: portal2.style,
|
|
3427
3582
|
children: [
|
|
3428
3583
|
content12,
|
|
3429
|
-
/* @__PURE__ */
|
|
3584
|
+
/* @__PURE__ */ jsx42(RadixTooltip.Arrow, { className: arrow2, width: 10, height: 5 })
|
|
3430
3585
|
]
|
|
3431
3586
|
}
|
|
3432
3587
|
) })
|
|
@@ -3434,7 +3589,7 @@ function Tooltip({
|
|
|
3434
3589
|
}
|
|
3435
3590
|
|
|
3436
3591
|
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
3437
|
-
import { forwardRef as
|
|
3592
|
+
import { forwardRef as forwardRef37, useEffect as useEffect10, useId as useId18, useRef as useRef17, useState as useState18 } from "react";
|
|
3438
3593
|
|
|
3439
3594
|
// src/components/VerificationCodeInput/VerificationCodeInput.css.ts
|
|
3440
3595
|
var input5 = "ea01812";
|
|
@@ -3444,9 +3599,9 @@ var slots = "ea01811";
|
|
|
3444
3599
|
var timer = "ea01814";
|
|
3445
3600
|
|
|
3446
3601
|
// src/components/VerificationCodeInput/VerificationCodeInput.tsx
|
|
3447
|
-
import { jsx as
|
|
3602
|
+
import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3448
3603
|
var formatTime = (seconds) => `${String(Math.floor(seconds / 60)).padStart(2, "0")}:${String(seconds % 60).padStart(2, "0")}`;
|
|
3449
|
-
var VerificationCodeInput = /* @__PURE__ */
|
|
3604
|
+
var VerificationCodeInput = /* @__PURE__ */ forwardRef37(
|
|
3450
3605
|
function VerificationCodeInput2(props, ref) {
|
|
3451
3606
|
const {
|
|
3452
3607
|
length = 6,
|
|
@@ -3473,17 +3628,17 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef36(
|
|
|
3473
3628
|
const label6 = labelProp ?? m.verificationCode ?? "\uC778\uC99D\uBC88\uD638";
|
|
3474
3629
|
const resendText = resendTextProp ?? m.resend ?? "\uC7AC\uC804\uC1A1";
|
|
3475
3630
|
const expiredText = expiredTextProp ?? m.verificationExpired ?? "\uC778\uC99D \uC2DC\uAC04\uC774 \uC9C0\uB0AC\uC5B4\uC694. \uC7AC\uC804\uC1A1\uD574 \uC8FC\uC138\uC694.";
|
|
3476
|
-
const generatedId =
|
|
3631
|
+
const generatedId = useId18();
|
|
3477
3632
|
const inputId = id ?? generatedId;
|
|
3478
3633
|
const helperId = `${inputId}-helper`;
|
|
3479
3634
|
const statusId = `${inputId}-status`;
|
|
3480
3635
|
const inputRef = useRef17(null);
|
|
3481
3636
|
const isControlled = "value" in props;
|
|
3482
|
-
const [innerValue, setInnerValue] =
|
|
3637
|
+
const [innerValue, setInnerValue] = useState18(defaultValue ?? "");
|
|
3483
3638
|
const code = (isControlled ? value3 ?? "" : innerValue).slice(0, length);
|
|
3484
|
-
const [focused, setFocused] =
|
|
3485
|
-
const [endAt, setEndAt] =
|
|
3486
|
-
const [remaining, setRemaining] =
|
|
3639
|
+
const [focused, setFocused] = useState18(false);
|
|
3640
|
+
const [endAt, setEndAt] = useState18(() => expiresIn ? Date.now() + expiresIn * 1e3 : null);
|
|
3641
|
+
const [remaining, setRemaining] = useState18(expiresIn ?? 0);
|
|
3487
3642
|
const expired = expiresIn !== void 0 && remaining <= 0;
|
|
3488
3643
|
const onExpireRef = useRef17(onExpire);
|
|
3489
3644
|
useEffect10(() => {
|
|
@@ -3524,17 +3679,17 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef36(
|
|
|
3524
3679
|
};
|
|
3525
3680
|
const description7 = helperText3 ?? m.verificationCodeHint?.(length, type) ?? `${length}\uC790\uB9AC ${type === "numeric" ? "\uC22B\uC790" : "\uBB38\uC790"}\uB97C \uC785\uB825\uD558\uC138\uC694.`;
|
|
3526
3681
|
const activeIndex = Math.min(code.length, length - 1);
|
|
3527
|
-
return /* @__PURE__ */
|
|
3682
|
+
return /* @__PURE__ */ jsxs35(
|
|
3528
3683
|
"div",
|
|
3529
3684
|
{
|
|
3530
3685
|
className: cx(field, className),
|
|
3531
3686
|
"data-invalid": error || void 0,
|
|
3532
3687
|
"data-disabled": disabled || void 0,
|
|
3533
3688
|
children: [
|
|
3534
|
-
/* @__PURE__ */
|
|
3535
|
-
/* @__PURE__ */
|
|
3536
|
-
/* @__PURE__ */
|
|
3537
|
-
/* @__PURE__ */
|
|
3689
|
+
/* @__PURE__ */ jsx43("label", { htmlFor: inputId, className: label, children: label6 }),
|
|
3690
|
+
/* @__PURE__ */ jsxs35("div", { className: row4, children: [
|
|
3691
|
+
/* @__PURE__ */ jsxs35("div", { className: slots, children: [
|
|
3692
|
+
/* @__PURE__ */ jsx43(
|
|
3538
3693
|
"input",
|
|
3539
3694
|
{
|
|
3540
3695
|
ref: mergeRefs(ref, inputRef),
|
|
@@ -3554,7 +3709,7 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef36(
|
|
|
3554
3709
|
className: input5
|
|
3555
3710
|
}
|
|
3556
3711
|
),
|
|
3557
|
-
Array.from({ length }, (_, index) => /* @__PURE__ */
|
|
3712
|
+
Array.from({ length }, (_, index) => /* @__PURE__ */ jsx43(
|
|
3558
3713
|
"div",
|
|
3559
3714
|
{
|
|
3560
3715
|
className: slot,
|
|
@@ -3565,12 +3720,12 @@ var VerificationCodeInput = /* @__PURE__ */ forwardRef36(
|
|
|
3565
3720
|
index
|
|
3566
3721
|
))
|
|
3567
3722
|
] }),
|
|
3568
|
-
expiresIn !== void 0 && /* @__PURE__ */
|
|
3569
|
-
onResend && /* @__PURE__ */
|
|
3723
|
+
expiresIn !== void 0 && /* @__PURE__ */ jsx43("span", { role: "timer", className: timer, children: formatTime(remaining) }),
|
|
3724
|
+
onResend && /* @__PURE__ */ jsx43(Button, { size: "sm", variant: "outline", color: "neutral", onClick: resend, disabled, children: resendText })
|
|
3570
3725
|
] }),
|
|
3571
|
-
/* @__PURE__ */
|
|
3572
|
-
/* @__PURE__ */
|
|
3573
|
-
name && /* @__PURE__ */
|
|
3726
|
+
/* @__PURE__ */ jsx43("p", { id: helperId, className: helperText({ error }), children: description7 }),
|
|
3727
|
+
/* @__PURE__ */ jsx43("p", { id: statusId, role: "status", className: helperText({ error: true }), children: expired ? expiredText : "" }),
|
|
3728
|
+
name && /* @__PURE__ */ jsx43("input", { type: "hidden", name, value: code })
|
|
3574
3729
|
]
|
|
3575
3730
|
}
|
|
3576
3731
|
);
|
|
@@ -3591,6 +3746,7 @@ export {
|
|
|
3591
3746
|
Checkbox,
|
|
3592
3747
|
Combobox,
|
|
3593
3748
|
DatePicker,
|
|
3749
|
+
DateRangePicker,
|
|
3594
3750
|
Drawer,
|
|
3595
3751
|
DrawerClose,
|
|
3596
3752
|
DropdownMenu,
|